"리누스 토르발스"의 두 판 사이의 차이
잔글 |
잔글 (→같이 보기) |
||
46번째 줄: | 46번째 줄: | ||
* [[깃]] | * [[깃]] | ||
− | {{인물|검토 필요 | + | {{프로그래밍 인물|검토 필요}} |
− |
2021년 8월 4일 (수) 22:52 판
![](/images/thumb/7/74/%EB%A6%AC%EB%88%85%EC%8A%A4_%EA%B8%80%EC%9E%90.png/300px-%EB%A6%AC%EB%88%85%EC%8A%A4_%EA%B8%80%EC%9E%90.png)
리누스 토르발스(Linus Torvalds)는 리눅스(Linux) 운영체제를 만든 핀란드계 미국인 소프트웨어 엔지니어이다. 특히 리눅스(Linux) 커널(kernel)의 주요 개발자다. 또한 소프트웨어 소스 코드에 대한 분산 버전 관리(DVC) 툴인 깃(Git)을 만든 인물이다. 리누스 토발즈라고 쓰기도 한다. 리누스 토르발스는 리눅스 커널로 이어지는 컴퓨터를 위한 새로운 오픈소스 운영 체제를 만든 공로를 인정받아 2012년 핀란드 기술 아카데미에서 수여하는 밀레니엄 기술상으로 야마나카 신야(Yamanaka Shinya)와 함께 영예를 안았다.[1]
생애
토르발스는 1969년 12월 28일 언론인 안나 토르발스(Anna Torvalds)와 닐스 토르발스(Nils Torvalds) 사이에서 태어났다. 헬싱키 출신의 토르발스의 가족은 핀란드에서 스웨덴어를 사용하는 소수민족이었고, 그의 부모는 1960년대 급진주의자였다고 전해진다. '리벨 코드 : 리눅스와 오픈소스 혁명(Rebel Code: Linux and the Open Source Revolution)' 책에서 리누스 토르발스 자신의 이름이 '피넛츠 만화 캐릭터의 이름을 갖다 붙인 거 같다'라고 말하지만, 리누스 토르발스의 이름은 노벨상을 수상한 미국 화학자 리너스 폴링(Linus Pauling)의 이름을 따서 지어졌다고 전해진다.[1]
리누스 토르발스는 1988년부터 1996년까지 헬싱키 대학에 다니며 엔오디에스(NODS) 연구 그룹에서 컴퓨터 과학 석사 학위를 받고 졸업했다. 1989년 여름 핀란드 육군 우시마(Uusimaa) 여단에 입대하여 핀란드의 병역 의무를 이행하기 위한 11개월 장교 양성 프로그램을 선택하면서 그의 학업 경력은 중단된다. 군대에서 그는 포병 관찰자 역할을 맡은 중위의 직위를 맡았다. 리누스 토르발스는 유닉스(Unix)의 가장 기본적인 내용만 담은 컴퓨터 과학 교수 앤드류 타넨바움(Andrew Tanenbaum)의 저서 미닉스(Minix)를 얻게 되면서 1990년에 대학 공부를 재개한다. 리누스 토르발스의 엠에스씨(MSC) 논문은 '리눅스 : 휴대용 운영체제(Linux: A Portable Operating System)' 였다.[1]
경력
- 수상
- 1998년 : EFF 파이오니어상(EFF Pioneer Award) 수상
- 2003년 : 리처드 스톨먼(Richard Stallman), 사카무라 켄(Ken Sakamura)과 함께 다케마다(Takeda Award) 사회·경제적 웰빙상 공동 수상
- 2005년 : 리드 대학(Reed College)에서 볼룸상(Vollum Award) 수상
- 2007년 : 리눅스 커널 생성 및 리눅스 운영체제 오픈소스 개발 관리 관련 공헌으로 캘리포니아 마운틴 뷰(Mountain View)에 위치한 컴퓨터 역사 박물관(Computer History Museum)의 '동료의 전당'에 헌액
- 2010년 : '정보기술 산업 선진화, 교육, 연구 향상'에 기여한 공로로 선관위로부터 씨앤씨상(C&C Prize) 수상
- 2012년 : 노벨상 수상의 영예와 맞먹는 것으로 널리 묘사되는 밀레니엄 기술상(Millennium Technology Prize) 공동 수상
- 2014년 : 컴퓨터 분야의 개념과 발전에 주요 공헌이 적어도 15년 전에 이루어진 우수자에게 수여하는 IEEE 컴퓨터 파이어니어상(IEEE Computer Pioneer Award) 수상
주요 활동
리눅스
리눅스는 대형 기종에서만 작동하던 운영체계인 유닉스(UNIX)를 386 기종의 피씨에서도 작동할 수 있게 만든 운영체계인데, 이를 가능하게 한 것이 리누스 토르발스다. 컴퓨터에 대한 리누스 토르발스의 관심은 1981년 11세의 나이로 시작됐다. 처음에는 베이직(BASIC) 언어로 프로그래밍을 했으나, 나중에는 기계 코드로 중앙처리장치(CPU)에 직접 접근을 시도했다. 이후 싱클레어 큐엘(Sinclair QL)을 구입하여 운영체제를 광범위하게 수정했다. 1991년 1월 5일에 리누스 토르발스는 아이비엠(IBM) PC의 인텔(Intel) 80386 기반 복제품을 구입하여 미닉스 복사본을 받을 수 있게 된다. 결과적으로 리눅스에서 작업을 시작할 수 있게 된다. 리눅스의 첫 시제품은 1991년 후반에 공개됐다. 버전 1.0은 1994년 3월 14일에 발매됐다. 리누스 토르발스는 1991년 스웨덴어를 사용하는 또 다른 컴퓨터과 학생인 라르스 위르제니우스(Lars Wirzenius)가 리차드 스톨만(Richard Stallman)의 소프트웨어 전문가 연설을 듣게 하기 위해 그를 공과대학에 데려갔는데, 그곳에서 리누스 토르발스는 지앤유(GNU) 프로젝트를 처음 접하게 했다. 리누스 토르발스는 자신의 리눅스 커널에 리차드 스톨만의 지앤유 지피엘(General Public License) 버전2를 사용하게 됐다.[1]
리눅스 커널의 처음은 미닉스를 위한 터미널 애뮬레이터를 작성하려는 노력에서 시작됐다. 타넨바움(Tanenbaum) 미닉스에는 필요한 프로그램이 많이 들어 있지 않아서 리누스 토르발스는 집에 있는 컴퓨터로 대학교의 유닉스 서버에 원격 접솔할 수가 없었다. 터미널 에뮬레이터(emulator)를 직접 작성하기 위해서 리누스 토르발스는 386프로세서의 로우 레벨 기능까지 파고들어야만 했다. 이 작업은 리누스 토르발스에게 지루했지만, 효과는 기대 이상이었다. 터미널 에뮬레이터를 만드는 작업은 그가 가지고 있던 컴퓨터의 하드웨어를 샅샅이 탐색하게 해줬다. 리누스 토르발스는 어셈블리어로 에뮬레이터를 작성했다. 고급 프로그래밍 언어를 쓰는 것보다 훨씬 더 복잡한 방법이었지만 리누스 토르발스는 그저 중앙처리장치(CPU)에 관해서 공부하고 싶은 목적으로 작업을 이어갔다. 미닉스 터미널 에뮬레이터를 몇 달 사이에 완전한 커널로 변모시킨 리누스 토르발스의 능력은 대단한 업적으로 전해진다. 리누스 토르발스가 혼자서 커널을 작성한 최초의 프로그래머는 아니지만 그보다 앞서 이런 일을 했던 이들은 전문 개발자이거나 컴퓨터 과학 교수들이었다. 그에 비해서 토르발스는 리눅스가 처음 모습을 드러냈을 때 아직 대학교도 일 년을 채우지 않은 상태였고, 앞에 언급한 사람들은 리누스 토르발스보다 좋은 환경을 갖춘 상태였다. 강력한 하드웨어, 복잡한 디버깅(debugging) 도구, 생각을 나눌 수 있는 현장 동료들이 리누스 토르발스에겐 없었다. 오히려 리누스 토르발스는 헬싱키에 있는 그의 아파트에서 저가 386 컴퓨터로 작업을 시작했고, 사용한 코딩 도구들도 미닉스에 포함되어 있던 것뿐이었다고 한다. 많은 지엔유 유틸리티들이 들어 있기는 하지만 벨연구소(Bell Labs), 엠아이티(MIT)와 같은 기관에서 쓰던 광범위한 소프트웨어 자원과는 견줄 수 없다고 판단한다. 이런 측면에서 리누스 토르발스는 완전하게 동작하는 커널을 만들어낸 능력을 대중은 높게 평가한다.[2]
1996년 말 트랜스메타(Transmeta)를 방문한 후, 리누스 토르발스는 1997년 2월부터 2003년 6월까지 캘리포니아에 있는 회사에 일하게 된다. 그 후 오픈소스 개발 연구소로 옮겼는데, 연구소가 자유 표준 그룹(Free Standards Group)과 합병하여 리눅스 재단이 되며 재단에서 후원을 받아 계속 일하게 된다. 2004년 6월 리누스 토르발스와 가족은 오에스디엘(OSDL)의 비버튼(Beaverton) 본사에 더 가까이 위치하기 위해 오리건주 던토프(Dunthorpe)로 이사하게 된다. 1997년부터 1999년까지, 리누스 토르발스는 '86오픈(86open)'프로젝트에 참여하여 리눅스와 유닉스의 표준 바이너리 포맷을 선택하는 데 도움을 주게 된다. 1999년, 리눅스 기반 소프트웨어의 선도적인 개발자인 레드햇(Red Hat)과 브이에이 리눅스(VA Linux)는 리누스 토르발스의 기여에 감사하여 스톡옵션(Stock Options)을 주게 된다. 같은 해 두 회사 모두 상장되었고 리누스 토르발스의 주식 가치는 일시적으로 약 2천만 달러까지 치솟게 된다. 리누스 토르발스의 마스코트는 '턱스(Tux)'라는 별명을 가진 펭귄으로, 리눅스 커널의 마스코트로 알려져 있다.[1]
리누스 토르발스는 리눅스 커널에서 버전 제어를 위해 독점적인 비트키퍼(BitKeeper) 소프트웨어를 사용한 것을 옹호했다는 이유로 비난을 받았다. 그 후 비트키퍼 대체품으로 무료 소프트웨어 깃을 개발한다. 2008년 리누스 토르발스는 당시 선호했던 파워피시 프로세서 아키텍처에 대한 지원이 상당히 좋았기 때문에 리눅스의 페도라(Fedora)배포를 이용했다고 진술한다. 페도라 사용법은 2012년 말 인터뷰에서 확인된다. 또한 종종 인식된 기능 퇴화에 대응하여 데스크톱환경에 대한 업데이트를 게시한다.[1] 리누스 토르발스는 리눅스의 명칭을 프릭스(Freax)로 하고 싶었으나, 운영체제가 에프티피(FTP) 사이트에 올릴 수 있도록 도와준 아리 렘케(Ari Lemmke)가 마음에 들어 하지 않았고, '오픈 운영체제/리눅스(openOS/Linux)'라는 이름으로 배포하길 원했다. 결론은 운영체제에 리눅스라는 이름은 리누스 토르발스가 아닌 아리 렘케가 지은 것이다.[2]
깃
깃은 커널 개발자들의 워크플로우(workflow)를 위한 도구이며, 리눅스와 같은 거대한 프로젝트에서 효율적으로 작동할 수 있도록 디자인 되어있다. 리누스 토르발스는 소스 제어 시스템을 만들 생각이 없었으나, 비트키퍼가 등장하면서 소스 제어에 대한 중요성을 느끼면서 깃을 만들게 되었다. 비트키퍼는 저장소의 로컬 사본이나 분산된 머징 개념은 상당한 진보였다. 가장 기본적인 것은 각자에게 저장소를 제공하고, 이를 독립적으로 수정할 수 있게 만드는 것이었다. 비트키퍼는 이를 통해 에스씨엠(SCM)의 가장 근본적인 문제인 '누가 코드를 바꿀 수 있는가'와 같은 정치적 논쟁을 종식시켰다. 그러나 비트키퍼는 기술적인 제약 때문에 새로 이름 짓는 게 어렵다거나 오픈소스 프로젝트가 아니라는 점 등 여러 문제로 완벽한 시스템이 아니었다. 그 결과 리눅스 핵심인 오픈소스 프로젝트에 대한 무료 혜택 제공에도 불구하고 비트키퍼는 널리 사용 되지 못했다.
또한, 앤드류 트리드겔(Andrew Tridgell), 래리 맥보이(Larry McVoy)와 함께 비트키퍼 프로토콜에 대한 리버스 엔지니어링(Reverse Engineering)을 시도했는데, 잘 되지 않으면서 더 이상 비트키퍼를 사용할 수 없겠다는 결론에 이르게 된다. 시장에 나와있는 에스씨엠 중 몇몇은 분산 시스템을 흉내낸 무언가를 보여줬지만 그 어떤것도 제대로 된것은 없었고, 성능이나 코드 안정성 혹은 워크플로우는 기대 이하였다. 이런 이유로 리누스 토르발스는 새로운 소스 제어 시스템을 개발하게 된다. [3] 깃의 작업 폴더는 전체 기록과 각 기록을 추적할 수 있는 정보를 포함하고 있는 저장소이다. 즉 자기 컴퓨터에 모든 파일을 다 받아서 하는 셈이다. 작업이 끝나면 깃 원격 저장소로 다시 발행하는데, 여기에서 메인 저장소와 합치기 전 메인 저장소와 격리시키고 따로 개발할 수 있는 가지라는 걸 만들어 가지의 개발이 완료될 시 메인 저장소와 합치고 가지는 삭제시키는 가지치기를 할 수 있으며, 또한 개발 중간중간 꼬리표를 매겨 개발을 더 수원하게 할 수 있다. 깃의 구조를 이해하면 깃의 로고 이미지가 이해될 것이다.[4]
각주
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 Linus Torvalds wikipedia - https://en.wikipedia.org/wiki/Linus_Torvalds
- ↑ 2.0 2.1 기계인간, 〈리누스 토발즈, 리눅스를 개발하다〉, 《위키랜덤미》, 2020-01-30
- ↑ leejh3224, 〈Interview with Git Creator Linus Torvalds〉, 《벨로그》, 2019-09-21
- ↑ 깃 나무위키 - https://namu.wiki/w/Git
참고자료
- Linus Torvalds wikipedia - https://en.wikipedia.org/wiki/Linus_Torvalds
- 깃 나무위키 - https://namu.wiki/w/Git
같이 보기