Dennis Ritchie
(미국 컴퓨터과학자, 1941~2011 )
Unix 와 C 언어 발명 ...
Ken Thompson 등과 함께 최초의 유닉스 시스템을 개발했고, 1971년 <Unix Programmer's Manual>을 썼다. 또한 C 언어를 개발한 후 Brian Kernighan 과 함께 <The C Programming Language>를 펴냈다. 미국 뉴욕 Bronxville 태생이며 하바드에서 물리학과 응용수학을 공부했다. 1983년에 Ken Thompson 과 함께 "범용 운영체제 이론개발, 특히 유닉스 운영체제의 구현에 대한 공로" 로 튜링상을 수상했다. 1967년부터 벨 연구소 컴퓨터 연구 센터에서 일하고 있으며,현재는 루슨트 테크놀로지스의 시스템 소프트웨어 연구부장이다.
. .... '우리의 목적은 우리 자신을 위해 좋은 컴퓨팅 환경을 만드는 것이다. 그리고 다른 사람도 그것을 좋아했으면 하는 것이다. '이것은 데니스리치가 1983년 유닉스 운영체제를 개발하고 실용화한 공로로 켄 톰슨 (Kenneth Thompson) 과 함께 튜링상 수상 소감으로 했던 말이다. .... 데니스 리치는 1941년 미국 뉴욕에서 태어났다. 그의 아버지는 벨연구소의 교환시스템 공학연구소에서 책임자로 일하고 있었다. 리치는 하버드 대학에서 물리학을 전공하고 1963년에 졸업했다. 그 다음 5년 동안 같은 대학에서 응용수학을 전공하며 박사과정을 밟았다. 리치는 대학원에 다닐 때 인생의 전환점을 맞게되었는데 1960년대 시작된 MT 분할 프로젝트인 MAC 계획에 파트타임으로 일하게 된 것이다. 그는 그 후 계속 컴퓨터분야에서 일했다.1968년 리치는 벨연구소에 몸담게 됐는데 컴퓨터과학에서 흥미 있는 분야를 집중 탐구하는 것이 그의 일이었다.
켄 톰슨은 1943년 미국 뉴올리언스에서 태어났다. 어렸을 적에 그는 라디오 가게를 들락거리며 전기와 무선 라디오에 대해 많은 것을 배웠다. 그 당시 새로운 상품이 있던 트랜지스터가 개당 10달러에 팔리던 시절이었다. .... 그는 그것을 사려고 돈을 모으고있었는데 하루는 1달러 50센트에 파는 것을 보고 기뻐하며 샀다. 나중에야 아들의 취미에 관심을 가졌던 아버지가 미리 8달러 50센트를 줬다는 사실을 알게 되었다고 한다. ...... 1960년 톰슨은 캘리포니아 버클리 대학에서 전기공학을 전공한 그는 1962년 전산실의 프로그램 개발 자리를 찾아냈다. 1963년과 1964년 샌디에고의 한 회사에서 산학협동 프로그램에 참여했으며 1965년 버클리를 졸업하고 1년후 같은 학교에서 전기공학으로 석사 학위를 받았다. 하지만 졸업 이후 전기는 뒷전이었다. 오로지 컴퓨터에만 관심이 있었고, 1965년 톰슨은 벨연구소에서 일하기 시작했다.
리치와 톰슨은 벨연구소에서 만났다. 벨연구소가 멀틱스(Multics)운영체제를 포기한다는 사실이 명확해지자 그들 스스로 운영체제를 만들기로 했고, PDP-7컴퓨터를 찾아내 운영체제를 만들기 시작했다. 운영체제를 만드는 과정에서 리치와 톰슨은 우선 기계에 데이터를 저장하는 방법, 즉 파일 시스템의 구조에 대해 먼저 연구하기 시작했다. '우리는 이 파일 시스템을 위한 조작코드를 작성해야만했다.'라고 리치는 당시를 회상한다고 한다. 그래서 키보드로 타이핑해 낳은 파일 복사 또는 삭제 명령어 등이 파일에서 실제로 동작하도록 만드는 명령 해석기를 만들었다. '우리는 완전히 처음부터 시작했다. 기계 위에는 어떠한 소프트웨어도 없었다. 그리고 프로그램을 작성하는 방법은 대향 GE 컴퓨터에서 크로스 어셈블러에 의한 것이었다. 우리는 GE 컴퓨터에서 프로그램을 짜고 이를 기계에 객체 프로그램으로 바꿔 종이 테이프에 전공한 뒤 그것을 다시 PDP-7로 갖고 내려가서 작업했다.'고 리치는 말했다.
톰슨은 실제로 PDP-7의 어셈블러 역할을 했던 GE 컴퓨터에서 작은 어셈블러를 작성했다. 또한 그들은 작은 에디터도 만들었다. 그들의 작업은 정말로 아무 것도 없는 '무에서 유를 창조'하는 작업이었다. 1971년 말 유닉스 개발이 완료되면서 유닉스는 벨연구소 안팎에서 서서히 성장해나가기 시작했다. 연구소 내부에서는 여러 가지 연구용 버전틀이 라이선스 받아 사용되고 있다. 유닉스는 원래 어셈블러 언어로 작성돼 프로그램간 호환성이 없었지만 운영체제를 고급언어고 만드는 것은 비효율적이고 비실용적인 것이었다. 그래서 리치와 톰슨은 C 언어라는 새로운 고급언어를 만들기로 했다. C는 고급이면서 저차원 언어의 특성을 내포하고 있으며, 시스템 프로그래머에게는 다양한 기능을 제공했다. 리치와 톰슨은 자신들을 위해 편리한 환경을 만들겠다는 생각밖에 없었지만 결국 그들은 유닉스와 C 언어를 개발함으로써 당초 목표보다 더 많은 것을 이루어 놓았다. ..... C 와 Unix 를 만든사람들
...... 우린 멀틱스를 보고 `가능한 아주 복잡하고 암호같이 모호해서' 일반 사용자들은 아예 사용할 엄두를 내지도 못할 새로운 시스템을 설계했습니다. 그리고, 멀틱스의 패러디로 이름을 유닉스로 정했죠. 뭐 일부는 좀 비꼬는 듯한 암시를 주기 위한 이유도 있었지만요. 그 다음 데니스와 브라이언은 파스칼을 완전히 뒤섞어놓은 듯한 언어를 만들고 이름을 `A'라고 했습니다. 그 뒤 사람들이 그 언어로 진짜 중요한 프로그램을 개발하려고 시도하고 있다는 것을 알고나서 우리는 재빨리 언어를 암호화해서 더욱 사용하기 어렵게 만들었고 이 언어는 `B'언어를 거쳐 BCPL 그리고 결국 C가 되었습니다. ..... 현대의 프로그래머들이 이렇게 암호같은 문장을 허용하는 개떡같은 언어를 사용할 것이라고는 전혀 생각지 못했습니다. 그건 우리의 상식밖이었죠. 우린 실제로 이걸 소련에 팔아서 소련의 컴퓨터 과학 기술을 20년이상 퇴보하게 만들 생각이었거든요. 상상해보세요. AT&T와 아른 미국 회사들이 실제로 유닉스와 C를 사용하려고 발악하기 시작했을 때 우리가 얼마나 놀랐겠는지 ....... 우리의 장난을 꿰뚫어 본 사람이 있었다. 그는 Stroustroup 이라는 사람으로 우리의 장난을 꽤 재미있어 했다. 그리고 그도 우리의 놀이 동참하기 시작하였다. 그는 C를 더욱 복잡하게 만들어 도저히 사용할 수 없도록 만들기 시작했다. 그리하여 나온 것이 바로 C++ 라고 하는 언어였다. 그가 C++를 발표하자 모든 사람들은 다시 C++를 지원하려고 노력을 하기 시작했고 ANSI 에서도 표준화 연구를 위해 대거 인원이 투입되었다. 그러자 Stroustroup은 당황하기 시작하였다. 그래서 더욱 햇갈리도록 하기 위해 탬플릿을 추가하였고 예외처리도 넣었다. 그래도 사람들이 계속 따라오려고 노력을 하자 다중상속을 추가하여 컴파일러 구현을 거의 불가능하게 만들었지만 vendor들은 기를 쓰고 이를 구현하려고 노력을 하였던 것이다. ..... Unix, C 는 장난?, 유닉스 운영체제, 그리고 C 프로그래밍 언어 : 김도형
term :
Dennis Ritchie 프로그래밍 (Programming) C 튜링 상(Turing Award)
site :
Dennis Ritchie : Bell lab Computing Science Research
Ritchie, Dennis ... acm
video :
Ken Thomson and Dennis Ritchie Explain UNIX (Bell Labs) : VortexTech : 2011/04/10
The UNIX Operating System : AT&T Archives : 2012/02/22
Brian Kernighan at Bell Labs Paying Tribute to Dennis Ritchie : Alcatel-Lucent : 2012/09/11
Eric Schmidt from Google at Bell Labs Pays Tribute to Dennis Ritchie : Alcatel-Lucent : 2012/09/11