분산 운영체제

1980년대는 분산 컴퓨팅이 부상하던 시기이다. 비교적(?) 저가의 컴퓨터들이 등장하면서 여러 대의 컴퓨터를 엮어서 효율적으로 사용할 방법에 대한 관심이 많아졌기 때문이다. 자연스럽게 분산 컴퓨팅을 위한 운영체제에 대한 연구도 활발해졌다. 켄 톰슨은 유닉스에 대해 아쉬운 점을 다음과 같이 언급했다.

유닉스에서 가장 눈에 띄는 실수가 있다면 아마도 원격 개념을 제대로 포함하지 못한 것일 겁니다. 파일에 대한 열기-닫기-읽기-쓰기 인터페이스는 원격 기능을 포함했어야만 했습니다.​3​

그래서였는지 몰라도 톰슨과 리치는 분산 운영체제 개발에 참여했다. 시작은 톰슨이었다. 1980년대 중반부터 그는 벨 연구소의 컴퓨팅 과학 연구 센터에서 플랜Plan 9이라는 분산 운영체제를 개발했다. 이때 데니스 리치는 연구 센터장이었고 로버트 파이크Robert Pike, 브라이언 커닝핸, 비야네 스트롭스트룹Bjarne Stroustrup​‡‡​ 등이 함께 참여했다. 플랜 9은 유닉스 파일시스템을 네트워크 기반으로 확장했고, 윈도우 방식의 사용자 인터페이스를 도입했다.

플랜 9 운영체제는 1990년대에 인페르노Inferno 운영체제로 이어진다. 가장 큰 차이점이라면 가상 기계virtual machine 개념을 도입해서 다양한 하드웨어, 네트워크 환경에서도 사용할 수 있도록 설계되었다는 점이다. 인페르노는 루슨트Lucent의 네트워크 장비에 도입되기도 했으나 상업적인 성공을 거두지 못했다. 플랜 9과 인페르노는 모두 오픈소스 소프트웨어로 공개되었다.

UTF-8

플랜 9 시스템을 개발하는 과정에서 다양한 문자를 쉽게 지원하기 위해 유니코드Unicode가 도입되었다. 처음에는 ISO/IEC 표준을 채택했지만 켄 톰슨은 호환성을 유지하면서 더 확장성이 높은 UTF-8 방식을 고안해 냈다.

리눅스에 대한 언급

과거에 큰 성공을 거둔 이가 미래에 대한 예측을 틀리게 하는 경우를 우리는 왕왕 보아왔다. 켄 톰슨도 예외는 아니다. 1999년의 한 인터뷰에서 그는 리눅스의 미래에 대한 질문에 이렇게 답했다.

제가 보는 리눅스는, 마이크로소프트가 아닌 어떤 것입니다. 마이크로소프트에 대한 반발, 그 이상도 이하도 아닙니다. 장기적으로는 크게 성공할 것이라고 생각지 않습니다.​11​

데니스 리치는 박사인가? 아닌가?

데니스 리치의 약력을 소개하는 자료들을 보면 그가 1967년 혹은 1968년에 하버드 대학교에서 박사학위를 받은 것으로 나온다. 하지만 1968년에 벨연구소에 입사했을 때, 그는 박사학위를 받지 못한 상태였다고 한다. 실제로 그의 박사학위 논문은 하버드 대학교에서 찾을 수 없다. 좀 더 정확히 말하자면 그가 세상을 떠난 후에야 그의 집에서 발견되었다.​18​

데니스 리치 본인이 이를 설명하지 않고 세상을 떠났기 때문에 정확한 사실을 밝혀줄 이는 없다. 아무튼 그는 박사학위 논문을 제출하지 않은 채로 취직했고, 따라서 정식으로 박사학위를 받은 적이 없다. 하지만 무슨 이유에서인지 후에 그가 이러저러한 상을 받을 때마다 그는 ‘리치 박사’로 소개되었다.

리치가 세상을 떠난 후에 발견된 박사논문은 컴퓨팅 이론에 관한 것으로 확인되었으며 그 분야에서 돌파구를 제시하는 상당히 중요한 내용을 담고 있다고 한다.​18​


  1. ​*​
    출처: https://dmrthesis.net/dennis-family-photos/
  2. ​†​
    출처: https://dmrthesis.net/dennis-family-photos/
  3. ​‡​
    출처: https://www.youtube.com/watch?v=XvDZLjaCJuw
  4. ​§​
    1992년에 튜링상을 수상했다.
  5. ​¶​
    2009년에 튜링상을 수상했다.
  6. ​#​
    셸(shell)이라는 용어와 개념은 멀틱스에서 가져왔다.
  7. ​**​
    이런 방식은 현재에도 mmap()이라는 시스템 함수를 통해 제공되고 있다.
  8. ​††​
    후에 프로세스보다 더 작은 단위인 쓰레드(thread)가 등장했다.
  9. ​‡‡​
    C++를 개발했다.

참고문헌

  1. 1.
    Thompson Ken. Reflections on trusting trust. ACM Turing Award Lectures.:1983. doi:10.1145/1283920.1283940
  2. 2.
    Ritchie Dennis M. Reflections on Software Research. ACM Turing Award Lectures. Published online 1984:1983. doi:10.1145/1283920.1283939
  3. 3.
    Interview with Ken Thompson. Princeton University; 1989:1. https://www.princeton.edu/~hos/mike/transcripts/thompson.htm
  4. 4.
    Interview with Dennis Ritchie (2003). Anders Jensen-Urstad. Published October 26, 2015. Accessed December 25, 2022. https://anders.unix.se/2015/10/26/interview-with-dennis-ritchie-2003
  5. 5.
    Interview with Dennis Ritchie. Princeton University. Accessed December 25, 2022. https://www.princeton.edu/~hos/mike/transcripts/ritchie.htm
  6. 6.
    Oral History of Ken Thompson, Interviewed by John Mashey. Computer History Museum; 2006:32.
  7. 7.
    Dennis M. Ritchie – A.M. Turing Award Laureate. ACM. Accessed December 25, 2022. https://amturing.acm.org/award_winners/ritchie_1506389.cfm
  8. 8.
    Operating system. Wikipedia. Accessed December 25, 2022. https://en.wikipedia.org/wiki/Operating_system
  9. 9.
    힐트직마이클 A. 저주받은 혁신의 아이콘: 제록스 팔로알토 연구소. 지식함지; 2018.
  10. 10.
    해프너케이티. 아무도 알려주지 않은 인터넷의 기원. 지식함지; 2016.
  11. 11.
    Cooke D, Urban J, Hamilton S. Unix and Beyond: An Interview with Ken Thompson. Computer. Published online May 1999:58-64. doi:10.1109/mc.1999.762801
  12. 12.
    Spacewar! Wikipedia. Accessed December 27, 2022. https://en.wikipedia.org/wiki/Spacewar!
  13. 13.
    Ritchie DM. The Evolution of the UNIX Time-sharing System. AT&T Bell Laboratories Technical Journal. Published online October 1984:1577-1593. doi:10.1002/j.1538-7305.1984.tb00054.x
  14. 14.
    Ritchie Dennis M, Thompson Ken. The UNIX time-sharing system. Commun ACM. Published online July 1974:365-375. doi:10.1145/361011.361061
  15. 15.
    찰스 바크먼 – 튜링상 수상자 시리즈. 지식함지. Accessed December 28, 2022. https://knowledgebasin.com/archives/persons/%ec%b0%b0%ec%8a%a4-%eb%b0%94%ed%81%ac%eb%a8%bc
  16. 16.
    Ritchie Dennis M. The development of the C programming language. History of programming languages—II. Published online January 1996:671-698. doi:10.1145/234286.1057834
  17. 17.
    W. Kernighan Brian, M. Ritchie Dennis. The C Programming Language. Prentice Hall PTR; 1978.
  18. 18.
    Dennis Ritchie Thesis – And the Typewriting Devices in the 1960s. DMR Thesis. Accessed May 19, 2023. https://dmrthesis.net/

1 2 3 4 5 6 7