메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

유닉스의 탄생

세상을 바꾼 운영체제를 만든 천재들의 숨은 이야기

한빛미디어

번역서

판매중

  • 저자 : 브라이언 커니핸
  • 번역 : 하성창
  • 출간 : 2020-08-03
  • 페이지 : 328 쪽
  • ISBN : 9791162243282
  • 물류코드 :10328
  • 초급 초중급 중급 중고급 고급
4.7점 (26명)
좋아요 : 8

브라이언 커니핸이 들려주는

UNIX의 탄생과 발전 과정, 천재 개발자와 기여자들의 이야기

 

이 책은 유닉스의 역사를 기록한 책이자 유닉스 개발 현장에 있던 이들의 회고록이다. 유닉스가 무엇인지, 어떤 이유로 개발되었는지, 어떤 과정을 거쳐 발전했는지 꼼꼼하게 기록했다. 동시에 무한한 창조성을 발휘하며 수많은 가능성에 도전한 천재들의 이야기와 자유로운 연구 환경을 제공한 벨 연구소 현장도 생생하게 담았다. 이 책을 읽으며 새로운 것을 창조하고 더 나은 세상을 만드는 일의 기쁨을 함께 느껴보길 바란다. 

 

 

[책 속에서]

 

“내가 기억하는 바로는 켄, 데니스, 피터 노이만을 포함한 무리와 내가 사무실 입구에 서서 이야기하던 것으로 시작한다. 그때는 시스템에 이름이 없었기에 (내 기억이 맞는다면) 내가 라틴어 어근에 기반을 두고 멀틱스가 ‘모든 기능을 많이’ 제공하는 반면, 새로운 시스템은 어떤 기능을 기껏해야 하나 제공하므로 ‘UNICS’라고 불러야 된다고 했는데, 이는 ‘multi’를 ‘uni’로 바꾼 말장난이었다.”

__ 이름의 유래 / 83쪽

 

“유닉스 방은 그냥 재미있는 곳이었고, 항상 무슨 일이 벌어졌다. 거의 유닉스 방에서만 일하고 사무실은 좀처럼 쓰지 않는 사람도 있었고, 커피를 마시거나 대화를 나누러 하루에 몇 번씩 들르는 사람도 있었다. 동료가 무슨 일을 하는지 서로 알게 되고 공동체 의식을 키우고 유지하는 데 유닉스 방은 그야말로 엄청나게 중요한 역할을 했다.”

__ 유닉스 방 / 104쪽

 

“C 언어가 등장하면서 운영체제 전체를 고수준 언어로 작성할 수 있게 됐다. 1973년에는 유닉스를 원래 어셈블리어 형태에서 C 언어로 바꿔서 작성하는 작업이 완료됐다. 이 덕분에 시스템을 유지 보수하고 수정하기가 훨씬 용이해졌다. 또한 더 큰 진보는 운영체제를 원래 PDP-11 컴퓨터에서 다양한 아키텍처 기반의 다른 컴퓨터로 옮기는 일, 즉 이식(porting)이 가능해진 것이다. 시스템 코드 대부분이 C 언어로 작성됐으므로 운영체제를 이식하는 작업에는 C 컴파일러를 이식하는 것 이외에 많은 일이 필요하지 않았다.”

__ 인물 탐방: 데니스 리치 / 117쪽

 

더글러스는 매우 뛰어난 기술 평론가고, 새로운 프로그램이나 아이디어를 종종 처음으로 시도해보는 사람이다. 그는 가능한 한 일찍 프로그램이나 아이디어를 시험해봤고, 안목이 높았다. 덕분에 어떤 점이 좋고 어떤 부분을 수정해야 하는지 알려주는 그의 의견은 헤아릴 수 없을 만큼 귀중했다. 아이디어, 알고리즘, 프로그램, 문서에 이르기까지 거의 모든 것에 대한 조언이나 비평을 구하려고 그의 사무실을 찾는 사람들의 발걸음이 끊이지 않았다. 비야네 스트롭스트룹은 먼저 내 사무실에 잠깐 들러서 C++에 대해 논의하고 새로운 아이디어를 설명한 다음, 복도를 따라 몇 칸 옆에 있는 더글러스의 사무실로 가서 언어 설계에 대한 진지한 피드백을 받기도 했다.

__ 인물 탐방: 더글러스 매클로이 / 162쪽

 

벨 연구소의 조직 크기와 연구 규모는 어떤 기술 영역에든 다수의 전문가가 있고 그들이 종종 각 분야에서 세계를 선도하는 연구자였음을 방증했다. 게다가 연구소의 문화는 매우 협조적이고 서로 돕는 분위기였다. 누군가의 사무실에 걸어 들어가서 도움을 요청하는 것은 지극히 통상적인 절차였다. 거의 대부분의 경우 요청 받은 사람은 발 벗고 나서서 도움을 줬다. 최상급 기술 도서관도 있었는데, 하루 종일 열려 있었고 매우 다양한 저널을 구독했으며 다른 도서관에 원격으로 접근할 수 있었다. 대학교 도서관과 유사하지만 과학과 기술에 초점을 맞춘 도서관이었다.

__ 협력하는 환경 / 305쪽

 

 

[추천사]

 

“유닉스는 리눅스와 C 언어 등 수많은 운영체제와 프로그래밍 언어, 소프트웨어의 기반입니다. 그런데 이렇게 중요한 유닉스의 역사에 관해 다루는 책은 놀랍게도 국내에 별로 없었습니다. 이제 이 책 덕분에 국내 개발자들이 유닉스의 기원과 유닉스를 만든 사람들, 그 시기의 상황 등을 모두 살펴볼 수 있게 되었습니다. 유닉스 운영체제의 역사와 흐름을 이해하는 것은 앞으로 컴퓨팅의 세계가 어디로 어떻게 나아갈 것인지 생각해보는 데도 중요한 시사점을 던져줍니다. 이 책이 번역되어 정말 기쁩니다.”

__권순선, 리눅스/오픈소스 커뮤니티 KLDP 설립자, 구글 글로벌 머신러닝 생태계 프로그램 리드

 

“유닉스를 만든 걸출한 천재들과 역사적 시공간을 함께 했던 브라이언 커니핸은 Awk, AMPL 등을 설계한 훌륭한 컴퓨터 과학자이며, 『C 언어 프로그래밍』의 공동 저자이다. 그는 유닉스의 요람이었던 벨 연구소에서, 역사적 탄생을 목도하며 느꼈던 감동을 담담하고 유쾌하게 펼쳐냈다. 과장하지 않으면서도 위트 있는 글 덕분에 역사적 인물들이 한층 더 가깝게 느껴진다. 잘 알려지지 않은 수많은 비화는 흥미를 더한다. 지하철에서 버스에서 혹은 커피숍에서 한 호흡에 읽을 수 있을 만큼의 내용과 재미를 가진 책이다. 이 책을 읽는 동안 켄 톰프슨을 동료로 데니스 리치를 선배로 둔 벨 연구소의 연구원이 된 듯한 기분 좋은 환상에 취할 수 있을 것이다.”

__김명신, 한국마이크로소프트 이사

 

“이 책은 처음부터 끝까지 한 호흡에 읽어버릴 만큼 재미있고 흥미로운 이야기로 가득 차 있습니다. 특히, 유닉스의 태동이 시작된 벨 연구소 이야기는 너무나도 신기합니다. 적재적소에 인재가 등장해 필요한 무엇인가를 만들어내고, 서로의 성과를 자랑하며 발전해나가는 모습은 컴퓨터 천재들이 만들었던 초기 해커 문화를 그대로 보여줍니다.

이 책을 읽으며 유명한 천재 개발자 데니스 리치, 켄 톰프슨과 저자 브라이언 커니핸의 이야기 외에도 더글러스 매클로이와 리 맥마흔 등 숨은 조연들의 노고를 확인할 수 있어 좋았습니다. 또한 유닉스 커널뿐만 아니라, 유닉스를 유닉스답게 만드는 여러 도구가 어떤 고민을 거쳐 만들어졌는지 생생하게 느낄 수 있어서 좋았습니다.

현대 컴퓨터 하드웨어와 소프트웨어는 정말 빠른 속도로 성장하고 있습니다. 이 책에 등장하는 여러 천재들이 고민하며 만든 결과물이 없었다면, 아마 지금과는 다른 모습으로 성장했을지도 모릅니다. 작금의 컴퓨터 환경이 어떻게 시작되었는지, 또 앞으로 어떻게 발전해갈지 궁금하다면, 이 책을 읽으며 작은 단서를 찾아보길 바랍니다.”

__윤종민, GNU 프로젝트 활동가

 

“벨 연구소는 ‘70년대의 구글’, 아니 그 너머에 있는 존재다. 소위 ‘유닉스 방’에 모인 천재와 그 동료들은 열정과 우정이 가득한 분위기 속에서 운영체제와 프로그래밍 언어의 역사를 바꾼 유닉스와 C 언어를 창조했다. 50살이 넘은 유닉스와 그 진화적 후손들(BSD와 Darwin, 30살의 젊은 리눅스)은 현재 구글, 아마존의 대형 서버뿐 아니라, 손안의 작은 스마트폰 속에 자리 잡고 인류를 ‘포위’한다. 세계를 정복하리라 확신하던 MS 윈도우만이 오히려 개인용 PC에 갇혀 있는 상황이다.

천재들과 같은 건물, 같은 유닉스 방에서 함께 했던 저자는, 그토록 아름답고 유쾌했던 연구 분위기와 유닉스 같은 창조물이 다시 나올 수는 없을 거라며 아쉬워하는 한편 은근히(?) 자부심을 드러내기도 한다. 유닉스 핵심 개념과 명령을 모두 알고 있다고 자부하던 본인도, 벨 연구소 천재들이 그 하나하나를 얼마나 어렵게 혹은 얼마나 기발하게 만들어나갔는지, 서로가 어떻게 연관되는지 알아가는 재미에 밤새 미소 짓고 맞장구치며 읽었다. 나이 든 C 프로그래머들의 ‘영원한 선생님’이기도 한 저자가 다시 한번 유닉스 신화로 우리에게 찾아왔다. 과연 벨 연구소의 인간적 신화의 시대가 다시 올 수 있을까? 내 대답은 100% 저자와 같다.”

__이만용, 오픈소스놀리지(주) 대표

 

“이 아름다운 책은 데니스 리치와 브라이언 커니핸이 쓴 『C 언어 프로그래밍』에 버금가는, 모든 개발자를 위한 필독서다. 나는 이 책을 읽는 동안 5년간 일했던 뉴저지 벨 연구소 캠퍼스 풍경 속으로 돌아가 가물거리던 유닉스와 C를 눈앞에 떠올렸다. 이 책은 첫 장을 펼치면 마지막 장을 덮을 때까지 아무것도 할 수 없는 엄청난 마력을 가진 책이다. 번역의 품질도 탁월하다. 내가 언젠가 다시 책을 쓸 때, 브라이언 커니핸이 이 책에서 보여준 풍부한 사료, 흥미로운 스토리, 기술적 깊이, 간결하고 흡입력 있는 문체의 반이라도 따라갈 수 있다면 좋겠다. 모든 개발자에게 일독을 권한다.”

__임백준, 삼성리서치

브라이언 커니핸 저자

브라이언 커니핸

벨 연구소 유닉스 개발팀의 일원이며, 30년 동안 벨 연구소의 컴퓨팅 과학 연구 센터에서 일했다. 스크립트 언어인 Awk와 모델링 언어인 AMPL을 공동 개발했고, 문서 조판용 도구를 포함하여 다양한 유닉스 프로그램을 만들었다. 토론토 대학교에서 기초공학 학사 학위를, 프린스턴 대학교에서 전기공학 박사 학위를 받았다. 2000년부터 현재까지 프린스턴 대학교의 컴퓨터 과학과 교수로 재직 중이다. 『C 언어 프로그래밍』(휴먼싸이언스, 2016)과 『프로그래밍 수련법』(인사이트, 2008) 등 십여 권의 IT 서적을 공동 집필했다. 이외 저서로 『Hello, Digital World』(제이펍, 2017)가 있다.

하성창 역자

하성창

고려대학교 컴퓨터학과를 졸업했다. 삼성전자에서 소프트웨어 개발자로 일하면서 TV 및 셋톱박스용 소프트웨어 개발 프로젝트에 참여했다. 이후 LG전자에서 테크니컬 라이터로 일하면서 시스템 온 칩, 웹 엔진, 소프트웨어 플랫폼 관련 기술 문서를 작성했고, webOS 기반 오픈 소스 프로젝트용 개발자 사이트를 만드는 데 주도적인 역할을 했다. 지금은 매스웍스(MathWorks) 코리아에서 로컬라이제이션 전문가로 일하고 있다. 『Hello, Digital World』(제이펍, 2017)를 번역했다.

1장 벨 연구소

__ 벨 연구소의 자연과학 연구

__ 통신 기술과 컴퓨터 과학

__ 벨 연구소로 향하다

__ 사무실의 이웃들

__ 137 → 127 → 1127 → 11276

 

2장 유닉스 프로토타입(1969)

__ 약간의 기술적 배경

__ CTSS와 멀틱스

__ 유닉스의 기원

__ 이름의 유래

__ 인물 탐방: 켄 톰프슨

 

3장 유닉스 제1판(1971)

__ 특허출원서 생성용 유닉스

__ 유닉스 방

__ 유닉스 프로그래머 매뉴얼

__ 메모리에 대한 몇 가지 이야기

__ 인물 탐방: 데니스 리치

 

4장 유닉스 제6판(1975)

__ 파일 시스템 

__ 시스템 호출

__ 셸 

__ 파이프

__ grep

__ 정규 표현식 

__ C 프로그래밍 언어

__ 소프트웨어 도구와 랫포

__ 인물 탐방: 더글러스 매클로이

 

5장 유닉스 제7판(1976~1979)

__ 본 셸

__ Yacc, Lex, Make

__ 문서 생성 

__ Sed와 Awk

__ 다른 언어들

__ 다른 기여들

 

6장 연구소를 넘어서

__ 프로그래머 워크벤치

__ 대학교용 라이선스

__ 사용자 그룹과 유즈닉스

__ 존 라이언스의 해설서

__ 이식성

 

7장 사업화

__ 기업 분할

__ USL과 SVR4

__ UNIXTM

__ 홍보 활동

 

8장 후손

__ BSD

__ 유닉스 전쟁

__ 미닉스와 리눅스

__ 플랜 9

__ 해산

 

9장 유산

__ 기술 측면

__ 조직 측면

__ 인정과 평가

__ 역사는 반복될 수 있을까?

출판사 리뷰

 

2019년은 유닉스가 태어난 지 50년이 되는 해였습니다. 이를 맞아 저자인 브라이언 커니핸은 벨 연구소에서 유닉스의 탄생과 발전, 번성과 쇠퇴를 지켜본 유닉스 역사의 산증인으로서, 각종 자료에서 수집한 사실과 더불어 자신의 회상을 담아 이 책을 발표했습니다. 

저자는 먼저 유닉스가 만들어지기 전 벨 연구소를 둘러싼 시대적 배경을 소개하고, 벨 연구소 조직 구조와 평가 체계처럼 잘 알려지지 않은 사실을 알려줍니다. 다음으로 두 인물, 켄 톰프슨과 데니스 리치를 중심으로 유닉스가 만들어지는 과정에 주목하며, 두 사람의 천재성이 어떻게 기존 기술을 한 차원 끌어올려서 운영체제의 정수를 빚어냈는지 보여줍니다. 이어서 유닉스 개발팀 관리자이자 숨은 공로자인 더그 매클로이를 재조명합니다. 위대한 업적을 일구는 데 훌륭한 멘토의 역할이 얼마나 중요한지 새삼 일깨워주는 대목입니다. 

이외에도 저자를 비롯한 조연들이 유닉스를 필두로 한 컴퓨터 기술 발전에 어떻게 기여했는지 많은 일화와 함께 소개합니다. 사실 말이 조연이지 컴퓨터 과학 분야에서 모두 쟁쟁한 인물들이라, 한 명씩 검색해보며 읽는 것도 의미 있을 것입니다.

(...)

벨 연구소 유닉스 개발팀처럼 우애 넘치고 자유로운 환경이 현실에서는(특히 요즘같이 경쟁적인 환경에서는) 매우 드물다는 점을 저는 잘 알고 있습니다. 그래도 가끔은 유닉스처럼 세대를 뛰어넘는 결과물을 낳은 이야기에서 교훈을 얻고 이상을 꿈꾸는 것도 필요하다고 봅니다. 소프트웨어 개발을 지망하는 학생부터 유닉스 시절에 대한 향수가 있는 분들까지 이 책을 재미있게 읽으셨으면 합니다. 

- 옮긴이의 말 중에서

  • 이 책은 컴퓨터 책이 아니라 역사책이다.
    • 책의 배경은 1970~80년대 AT&T Bell 연구소.
    • 당시의 벨 연구소는 튜링상과 노벨상 수상자를 배출하던 세계 최고 수준의 연구소였다.
    • 전화회사가 만든 이 연구소에서 유닉스라고 하는 컴퓨터 운영체제가 어떻게 태어났는지,
    • 어떻게 대중화되고, 사업화되고, 모회사의 운명과 함께 어떻게 스러져 갔는지,
    • 그리고 무엇을 남겼는지에 대한 역사서라고 볼 수 있다.

 

  • 생각보다 익숙한 이름의 사람들, 그리고 알고보니 유닉스에서 유래한 기능들.
    • UNIX에 대한 책인 만큼 UNIX를 중심으로 서술되며, 구글의 전 CEO 에릭 슈미트를 비롯해 놀랄만한 이름들이 자주 언급된다.
    • 그리고 C언어와 TCP/IP 프로토콜, UTF-8 인코딩을 비롯 "이것도 유닉스에서 나왔어?" 싶을 정도로 그동안 유닉스를 몰라뵌 것이 미안할만큼, 우리 삶 곳곳에 스며들어있는 유닉스의 유산을 일깨워준다.
    • 1942년생으로 1967년 벨 연구소에 입사한 브라이언 커니핸은 올해 79세. 
    • 여러 동료들과 함께 유닉스를 개발한 산 증인으로서 역사를 남긴다는 생각으로 책을 썼나 싶었다.
    • 그러나 책 전반에 묻어나오는 본인의 선배를 비롯한 동료들에 대한 존경심은 책의 집필 목적이 이들에 대한 헌사가 아닐까 싶은 생각을 하게 만든다.
    • 저자는 "The C Programming Language"의 저자인데, 내 기억이 틀리지 않다면 1997년 대학 1학년 시절 전공필수로 마지못해 들었던 C언어 수업의 교재가 저 책이었던 것 같다.

 

  • 유닉스를 몰라도 읽기에 별로 지장이 없다
    • 총 9개의 장으로 구성된 이 책 중에서 유닉스, 또는 리눅스에 대한 지식이 있으면 좋을 곳은 4장과 5장 뿐.
    • 나머지는 사람과 조직, 일에 대한 이야기라 유닉스를 몰라도 별 지장이 없다.
    • 시오노 나나미의 로마인 이야기를 읽을 때 로마 군대, 법에 대해 들어본 적이 없어도 되는 것과 비슷하다.
    • 4장과 5장은 리눅스를 사용하는 사람이 읽으면 흥미진진할 이야기가 가득하다.
    • 우리가 당연하게 사용하는 파일 시스템, 셸 스크립트 (bash라는 이름이 Bourn이라는 사람이 다시(Again) 만든 SHell 이라는 뜻이라고), 여러 명령어를 | 로 이어 연속으로 실행하는 파이프, 파일 내용을 출력하는 grep, 모든 책에 쉬운 언어라고 나와있지만 어려워서 미칠 것 같던 C언어, 소스코드를 컴파일할때 따라서 타이핑하던 Make, 파일 내용을 변경할 때 쓰는 sed 등 손가락이 외우는 명령어들의 탄생 비화가 펼쳐진다.

 

  • 한 명의 천재가 아니라 천재들이 모인 조직
    • 2차대전 당시 설립된 비밀 항공기 연구소인 스컹크 웍스(Skunk Works. 록히드 마틴의 신형 전투기 개발 TF)와도 비슷한 느낌인데, 이런 류의 책을 보면 삼국지나 수호지같은 군웅소설과 플롯이 비슷하다.
    • 해결해야 하는 문제가 있고, 어디선가 나타난 여러 영웅들이 각자의 장기를 살려 문제를 해결하는 형식.
    • 딱히 외향적이지 않을 것 같은 사람들끼리 만난지 얼마 안되어 죽마고우도 못따라갈 합을 펼치며 결과를 낸다.

 

  • 조직의 관리자 :  기술적 리더
    • 스컹크 웍스에는 켈리 존슨이 있었다. "저 스웨덴 놈 눈에는 공기가 보이나?"라는 말을 들을 만큼 도면만 보고도 항공기가 받는 양력과 공기저항으로 인한 날개의 온도 상승을 거의 정확히 예측했던 사람.
    • 그리고 벨 연구소에는 더글러스 매클로이가 있었다. "뛰어난 지적 능력과 비할 데 없는 기술적 판단력, (중략) 을 가진 리더였다. (중략) 유닉스 자체와 C, C++같은 언어, 많은 유닉스 도구가 모두 더글러스의 훌륭한 안목과 날카로운 비평 덕분에 개선됐다. (중략) 벨 연구소 관리자들은 기술적으로 유능했다."
    • 그 외에도 "벨 연구소 연구 부몬에서는 일반 관리자부터 연구소장에 이르기까지 모두 기술적인 배경을 지녔기 때문에 자신이 관리하는 조직 내부와 다른 조직에서 진행되는 일을 빈틈없이 이해했다. 부서장은 부서원들이 하는 일을 실제로 상세하게 알아야 했는데, 얼마나 대단한 일인지 주장할 목적이 아니라 다른 사람에게 그 일을 설명하고 서로 연결을 맺는 데 도움을 주기 위해서였다."
    • 이 대목이 가장 부러웠다. 실무 능력이 있는 사람을 승진시켜도 문제 없이 돌아간다는 것은 그 만큼, 또는 이상의 실무진이 받쳐주기 때문이다.
    • 상당히 많은 기업이 AI 조직을 만들면서 거듭하는 실수가 AI는 모르지만 경력이 많은 사람을 부서장으로 앉히는 것, 또는 얼마 없는 AI 경험자를 부서장으로 앉히는 것이다.
    • 전자는 문제 정의도 못하고 도움도 못 줘서 망하고, 후자는 유능한 실무자를 한 명 버리고 무능한 관리자를 한 명 만드는 식이라, AI는 하지 않고 이 사람을 괴롭히겠다는 선언과 다름없다.
    • 이런 상황에서는 단기적으로는 AI에 대해 공부할 의지가 있고 전반적으로 회사 돌아가는 분위기를 아는, 소통능력과 학습능력이 좋은 관리자를 다른 부서에서라도 데려와 세우고, 장기적으로는 AI 경험자를 관리자로 만들어도 문제가 없도록 사람을 더 뽑아야 한다.

 

  • 조직문화 
    • 우리나라에서 조직력을 강화한다고 하면 정기적인 회식과 체육대회를 빼놓을 수 없다.
    • 유닉스가 개발되던 시기 AT&T에서도 그랬던 것 같지만 유닉스 연구자들은 여기에 정 반대로 행동했다.
    • "우리는 요즘 자주 보이는 팀워크 조성 활동 같은 것에는 전혀 열의가 없었고 부정적인 반응을 보이기까지 했다. 우리 대부분은 그런 종류의 활동은 억지스럽고 무의미하고 시간 낭비라고 생각했다. 구성원이 서로 좋아하고 존중하며 서로 함께 있는 것을 즐기는 조직을 만들고 유지하는 데는 노력이 든다. 이런 조직은 경영진의 지시나 외부 컨설팅으로 만들 수 있는 것이 아니다. 좋은 조직은 함께 일하고, 때때로 함께 놀고, 다른 사람이 잘 하는 일을 인정하기를 즐기다 보면 유기적으로 자라난다."
    • 일이 좋아 모인 사람들은 같이 일을 시켜야 행복하다. 술잔과 노래방 마이크가 아니라 서로의 성과물을 존중하는 마음에서 신뢰가 생기고 친분이 싹이 트는게 순서다.
    • "멤버들은 서로 장난을 쳤고, 큰 회사에서 불가피한 관료주의에 저항하면서, 어쩌면 지나칠 정도로 즐거워했다. 앞서 배지 착용 지시를 무시한 이야기(사진을 붙이도록 되어 있는 회사 출입증에 미키마우스 사진 넣기, 가슴에 걸고 다니도록 되어 있는 신분증을 셔츠 안 가슴털에 붙여놓고 요청 받을때만 보여주기 등)를 이미 언급했다. 이외에도 윗선에서 권고한 다양한 관례와 절차 덕분에 저항할 기회가 더 있었다."
    • "사람들은 유닉스 방에 공익을 위해 음식을 놓고 가곤 했다. 어떤 사람은 고품질 초컬릿 블록 10kg을 발견해서 사람들이 조금씩 맛볼 수 있도록 놓고 갔다. 하지만 음식이 항상 그 정도 수준이었던 것은 아니다."

 

  • 협력하는 환경
    • 천재적인 개인들의 존재는 이들이 각자 일할 때보다 서로 도움을 주고 받을 때 배가된다.
    • "연구소의 문화는 매우 협조적이고 서로 돕는 분위기였다. 누군가의 사무실에 걸어 들어가서 도움을 요청하는 거은 지극히 통상적인 절차였다. 거의 대부분의 경우 요청 받은 사람은 발 벗고 나서서 도움을 줬다."
    • "(UNIX 개발팀과) 가장 가까이 있는 관련 전문가 집단은 수학 연구 센터였다. (...) 비범한 수학자들이 많았다. 당시 세계에서 가장 주목할 만한 통계학자로 알려졌던 존 투카('비트'라는 단어를 만들어 낸 사람)도 복도 바로 건너편에 있었고, 수학과 통신의 거의 모든 연구 영역에 걸쳐 범접하기 어려운 전문가들이 있었다."
    • "그들은 항상 도움을 줄 준비가 돼 있었고, 이는 기술적인 문제에 국한되지 않았다. 예를 들어 로널드 그레이엄은 뛰어난 수학자였을 뿐만 아니라 저글링 전문가였고 국제 저글링 협회의 전 회장이었다. (...) 1시간동안 그의 사무실에서 일대일로 지도를 받은 다음에 어느 정도 감을 잡았던 것 같다."
    • 유럽에서 학위하던 시절 독일 Chemnitz University에 2주간 파견을 가서 일을 한 적이 있었다. 그 그룹은 매일 아침 8시에 커피타임이 있었는데 하루를 시작하기 전에 시시껄렁한 잡담을 하는 시간이었다. 실험그룹이었기 때문에 뭐가 잘 안된다는 궁시렁도 주 레퍼토리 중 하나였다. 어느 날, 당시 교수님께서 대화 중에 갑자기 진지하게 "coffee machine should not be underestimated"라는 말씀을 하셨는데 듣자마자 무슨 말씀이신지 와 닿았다.
    • "유닉스 방은 그냥 재미있는 곳이었고, 항상 무슨 일이 벌어졌다. 거의 유닉스 방에서만 일하고 사무실은 좀처럼 쓰지 않는 사람도 있었고, 커피를 마시거나 대화를 나누러 하루에 몇 번씩 들르는 사람도 있었다. 동료가 무슨 일을 하는지 서로 알게 되고 공동체 의식을 키우고 유지하는 데 유닉스 방은 그야말로 엄청나게 중요한 역할을 했다."

 

  • 커뮤니티 환경
    • "벨 연구소 과학자들은 학술 연구 커뮤니티에도 참여해야 했다. 이는 연구할 문제와 통찰력의 또 다른 원천이 됐고, 제록스 팰로앨토 연구소나 IBM 왓슨 연구소 같은 다른 산업계 연구소에서 진행 중인 연구와 보조를 맞추는 데 도움이 됐다. (중략) 연구원이 다른 연구소에서 안식년을 보내는 양방향 교류가 이루어지기도 했다. 일례로 나는 1996년 가을을 하버드 대학교에서 학생들을 가르치면서 보냈는데, 벨 연구소에서 전체 비용을 지원해줬다. 심지어 내 연봉까지 지급해줬으므로 하버드 대학은 무료 서비스를 받은 셈이다. 1999~2000학년도 프린스턴 대학교에서도 마찬가지였다."
    • "외부에 벨 연구소를 드러내는 것은 채용뿐만 아니라 전반적인 연구 분야의 흐름을 따라가는 데 중요했다. 비밀스러운 회사는 재능 있는 인재를 끌어모으는 데 어려움을 겪었는데, 이 점은 현재도 마찬가지인 듯하다."
    • 그리고 벨 연구소는 기술 개발 뿐 아니라 교재를 상당수 출간하며 또 다른 명성을 쌓았다.
    • 자신이 개발한 프로그램을 배포하는데 문서화가 매우 중요하기 때문에 연구원들 스스로가 글쓰기를 진지하게 대했고, 서로 의견을 주고받으며 첨삭하는 문화가 있었다.
    • 학계에서 평판을 높이기 위해 경영진이 적극적으로 지지해주기도 했는데 예를 들면 6개월간 전적으로 책을 쓰는 시간을 가질 수 있었다고 한다. 저작권은 벨 연구소가 보유하고 인세는 저자가 받았다. 
    • 벨 연구소는 출판물로 쌓은 명성을 통해 더 좋은 인재를 채용할 수 있었다.

 

  • 역사 속에 이런 집단은 종종 등장한다.
    • 100년 전 파리에는 개성있는 화가집단이,
    • 같은 시기 오스트리아 빈에는 슈뢰딩거와 볼츠만을 비롯한 물리학자들이,
    • 메이지 유신 시기의 일본에는 여러 선각자들이 있었고
    • 우리 나라에도 세종과 정조대 유능한 학자들이 많았으며
    • 지금은 근 60년간 가장 인구가 적은 특정 연령대의 아이돌이 세계를 제패하고 있다.
    • 50년 전의 벨 연구소가 부러운 것은 사실이지만 우리에게, 나에게 그런 행운이 찾아오기만을 기다릴 수도 없다.
    • 어느 순간 이런 그룹에 끼었을 때 한 사람 몫을 할 수 있도록 노력할 따름이다.
  • ※ 한빛미디어 2021 도서 서평단 "나는 리뷰어다"의 일원으로 도서를 제공받아 작성한 리뷰입니다.

 

 

이번에 익은 책은 유닉스의 탄생이라는 책이다.

 

KakaoTalk_20210720_111942805_01.jpg

 

 

 

 

제목에서 알 수 있듯이 유닉스의 탄생 배경에 대한 내용을 다루고 있으며

 

기술 서적이라기보다는 프로그래밍의 역사 서적이라고 볼 수 있을 것 같다.

 

어려운 내용이 아니므로 일요일 오후에 부담 없이 재밌게 읽기 좋은 책이다.

 

 

 

 

이 책의 구성

 

 

유닉스의 탄생

 

 

*목차

 

1. 유닉스 제1판 1971

 

2. 유닉스 제6판 1975

 

3. 유닉스 제7판 1976~1979

 

4. 연구소를 넘어서

 

5. 사업화

 

6. 후손

 

7. 유산

 

 

-벨 연구소의 천재 개발자들

 

-벨 연구소의 근무 환경, 프로그래밍 관점에서의 시대적 배경

 

-유닉스, C언어, C++ 등의 탄생 비화

 

이 책은 크게 위의 세 가지 요소를 당시 현장에서 1971~2000년도까지 근무하던 연구원이

 

자신의 관점에서 자신이 직, 간접적으로 보고 경험했던 내용을 시간순으로 풀어간 회고록에 가까운 내용이다.

 

(책을 쓴 저자에 대해 간단하게 설명을 하자면 벨 연구소에 근무하며 유닉스의 탄생을 하나부터 열까지 지켜보고, 프로그래밍의 역사와 발전 깊게 관여되어 있는 인물이다)

 

 

현대 프로그래밍은 유닉스 혹은 유닉스 기반의 운영체제와 깊은 연관이 있다.

 

유닉스는 리눅스와 C언어 등 수많은 운영체제와 프로그래밍 언어, 소프트웨어의 근간이며,

 

유닉스가 개발되지 않았다면 현대의 프로그래밍은 전혀 다른 방향으로 흘러갔을지도 모른다.

 

대학교 연구시설에서는 아직도 유닉스를 많이 사용하며, 대표적으로 애플의 맥 OS, 리눅스를 사용한 구글의 안드로이드 OS 모두 유닉스 기반이다

 

이러한 OS를 사용한 수십억 대의 디바이스는 유닉스 운영체제를 기반으로 동작하며, 방대한 유닉스 기반 운영체제의 생태계 위에서 많은 프로그램들이 동작한다.

 

이처럼 유닉스는 현대 프로그래밍 기술의 발전에 많은 영향을 미쳤다.

 

유닉스의 역사는 현대 프로그래밍의 역사라고 해도 과언이 아닌듯하다.

 

책을 읽으며 평소에도 자주 사용하는 유닉스 명령어에 대한 탄생 비화, 유닉스가 만들어질 당시 시대적 배경, 유닉스를 만드는 데 기여한 천재 개발자들의 개발 방법론과 그들이 했던 고민을 엿볼 수 있고

 

유닉스뿐만 아니라 현대 컴퓨터 기술이 어떠한 과정을 거쳐 발전하게 되었는지를 마치 내가 그 현장에 있었던 것처럼 생생하게 느낄 수 있었다.

 

또한 스티브 잡스, 빌 게이츠, 에릭 슈미트, 데니스 리치, 제임스 고슬링, 리누스 토발즈 등 한 번쯤은 들어봤을 법 한 업계 거장들의 이름도 책 중간중간에 많이 보여서 읽는 재미를 더했다.

 

1970년대 벨 연구소의 기업 문화에 대해서도 엿볼 수 있었는데, 요즘 시대에서 추구하는 개발 문화와 비교해봐도 전혀 손색이 없고, 창의성과 자유로움을 추구하며 얼마나 깨어있는 조직이었는지 알 수 있었다.

 

 

 

마지막으로

 

 

이 책을 읽고 느낀 점은 갑자기 세상에 나온 기술은 없는 것 같다는 것이다.

 

모든 기술들의 발전은 시대의 요구에 의해 점진적으로 발전해 나갔으며

 

능력 있는 개발자들이 이전 세대 기술의 문제점 및 개선점을 보완해 나가며 발전을 거듭하고,

 

새로운 아이디어가 더해지며 새로운 기술로 파생하고, 고도화되며 새로운 기술이 탄생했다는 것이다.

 

 

언어, 운영체제 등 프로그래밍 기술을 공부하다 보면 기술적인 요소보다 이 기술이 어떠한 과정을 거쳐 탄생하게 되었고, 발전하게 되었는지 궁금해지는데

 

현재 사용하는 기술의 뿌리, 그리고 그 이전 기술 그렇게 거슬러 올라가다 보면 결국 이 책이 종착점이 될 것 같다.

 

거꾸로 말하면 이 책을 읽고 프로그래밍의 역사를 알고 기술을 접한다면 기술을 이해하고 공부하는 것 이 한층 더 쉽고 재밌어질 것 같다.

 

컴퓨터공학과 학생 혹은 현업 개발자라면 이 책을 한 번쯤은 꼭 읽어봐야 한다고 생각한다.

 

시작하며

항상 감사하는 한빛미디어에서 리뷰할 도서 목록을 보내주셨다.

가만 보아하니 내가 요즘 할일이 많아서 시간이 좀 부족한데 가벼운거 없나?

해서 찾아본 책이 바로 이 책이다.

ㅋㅋㅋ

유닉스의 탄생 멋지지 않은가?

이 책은 아마도 리눅스에서 검은색 바탕에 타이핑을 쳐가면서 무언가 해봤던 사람이라면

관심있어할 만한 내용이 담겨있다.

어떤 내용들이 담겨있는가?

책은 벨 연구소에서 부터 시작한다

그렇다 벨연구소 이곳에서 나온 노벨상이 13개나 된다.

이런 전설같은 곳이다.

유닉스라는 OS가 만들어지기 까지 어떠한 일이 있었고

어떤 위대한 인물들이 있었으며 어떠한 단계로 만들어 졌는지에 대한 이야기가

나와있다.

그래서 더욱 관심있는 사람들이라면 재미있을 수 밖에 없을 것 이다.

 

AT&T의 로고 유례도 참 재미있다.

우연하게 두고간 사진을 가지고 필터링을 해서 로고처럼 만들고

아니 실제 로고로 쓰이기 까지 사실 로고 보고도 사람이라고 생각도 못했는데

그냥 웃겼다 ㅎㅎ

다양한 명령어들이 어떻게 나왔는지

man,cat,alloc,malloc

그냥 책보고 공부하면서 실습해봤던 사람이라면

진짜 별거 아닌데 재미있는 내용들이다

뭔가 기술적인 명령어들을 기술적이지 않은 내용으로 바라보게 되어 재미있다.

소설로 보는 유닉스명령어? 라는 개념이라고 해야할까?

익숙한 명령어들에 대해 처음 보는 이야기들이 매우 새로웠다.

 

계산기를 거꾸로 보면 글자처럼 보이는 알파벳들이 있는데

이것을 grep명령어로 찾아보았다는

굉장히 생각도 못해본 이런 이야기들 ㅎㅎ

마치며

유닉스든 리눅스든 접해본적이 없든 분들이라면 관심도 없겠지만

한번이라도 접해본 사람들이라면 재미있을 만한 이야기가 가득차있다.

사실 이 책을 난 제대로 다 읽지 못했지만 서평을 통해서? 진짜 재미있는 책이라는 것을

알게 되었으며 좀 시간이 여유로워질때 제대로 함 봐야겠다는 생각이 들었다.

역사 이런거 진짜 관심도 없던 나인데 이 책을 통해서 유닉스의 역사를 살짝 들춰보니

아 나도 역사에 관심있었구나? 유닉스의 역사 말이지... 이런 생각을 하게 되었다 ㅎㅎ

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

유닉스의 탄생

 

인류의 역사를 이야기 할때, 인간의 조상이 어떤 존재인지 빠지지 않고 이야기 하듯

컴퓨터의 발전사를 이야기 하기 위해서 빼놓을 수 없는 주제중 하나가 운영체제 일 것이다.

현 인류의 조상이 '호모 사피엔스' 라는 사실은 모두가 알고 있다.

그렇다면 현재 사용되고 있는 수 많은 컴퓨터들의 운영체제.

즉, 안드로이드나 맥OS(iOS)의 공통 조상도 있을까?(윈도우즈 빼고..)

있다. '유닉스' 라는 운영체제 이다.

 

오늘은 이 유닉스에 대해 다룬책 '유닉스의 탄생'에 대해 리뷰해 보려고 한다.

 

데니스 리치를 추모하며

이 책은 데니스 리치를 추모하는 글로 시작한다.

데니스 리치는 유닉스 초창기의 핵심 개발자 였고, C언어의 창시자 이다.

(사실 이 책을 읽을때 까지만 해도 데니스 리치가 유닉스 개발에 핵심 멤버일 거라고는 상상도 못했다.)

그리고 데니스 리치의 말로 서문을 시작한다.

 

"옛 추억이 위로가 되는 이유는 장미빛을 띠는 경향이 있기 때문입니다.
좋아했던일, 오래 했던 일, 더 나은 삶을 살기 위한 기술을 창조하는데 기여 했다는 기쁨이 주로 떠오릅니다."
- 데니스 리치 -

이 책이 재미있었던 이유는, 데니스의 말처럼 처음으로 컴퓨터를 접했던 즐거웠던 어린 시절의 옛 추억이 떠올랐기 때문일 것이다.

내가 처음 접했던 컴퓨터는 3.5인치 플로피 디스크로 구동되었던, AT 컴퓨터 였다.

게임 하나를 하기 위해 1년 동안 모았던 용돈을 털어, 3.5인치 디스크 10장 정도가 필요했던 게임을

학교 앞 컴퓨터 가게에서 구입(불법 복제)해 학교 컴퓨터로 돌려 보았었다.

구동하기도 어려웠지만, 구동이 되어도 잘 돌아가지는 않았다.

 

책은 원래 유닉스의 역사를 제대로 다뤄보려고 했지만,

어느 순간부터 회고록에 가깝게 변했다고 브라이언 커니핸(저자)이 말했다.

그래서 인지 따분한 사실 위주의 역사서라기 보다는,

유닉스 개발을 중심으로 그 당시의 사회 모습과 개발자들이 생각들을 옅볼 수 있는 즐거운 읽을 거리가 되었다.

 

이 책은 유닉스 탄생과 발전 과정 이 외에도 개발자라면 마음에 새겨 두어야 할 여러 가지 이야기를 해준다.

하지만 가장 내 관심을 끌었던 부분은 당시 '벨 연구소' 라는 회사의 문화와 경영진의 마인드이다.

즉, 어떻게 유닉스가 만들어 질 수 있었는지, 어떤 지원이 있었는지가 궁금했다.

브라이언도 아래와 같이 말하고 있다.

"유닉스가 어떻게 만들어졌는지 이해하려면 벨 연구소를 알아야 한다. 특히 벨 연구소가 일하는 방식과 창조적인 연구 환경을 이해해야 한다."

 

브라이언 커니핸이 말하는 벨 연구소의 문화를 요약해 보면 아래와 같을 것이다.

 - 누가 무엇을 하든 간섭하지 않으며, 스스로 자신만의 연구 주제와 공동 연구자를 찾도록 내버려 두었다.

 - 글쓰기에 대해 개발자들이 진지하게 생각하고 있었고, 경영진들은 글쓰기를 지지해 주었다.

 - 동료간의 협력 관계를 지향하는 평가 제도가 있었다.

 - 개인 사무실 외에 공유 공간(유닉스 방)을 두어 개발자들 간의 교류가 활발하게 일어 날 수 있도록 있었다.

 

 

마지막으로 개발자라면 항상 유념해 두어야 할 몇가지 내용을 정리해 본다.

1. 부적절한 재주는 프로그래밍에서 좋은 생각이 아니다. 코드를 명확하게 작성하고, 지나친 재주를 부리지 말아라.
2. 각 프로그램이 한 가지 일을 잘 하게 만들어라.
3. 모든 프로그램의 출력이 다른(아직 알려지지 않은) 프로그램의 입력이 될 것을 예상하라.
4. 소프트웨어를(심지어 운영체제라도) 일찍, 이상적으로는 수주 이내에 사용해 볼 수 있게 설계하고 구축하라. 어술픈 부분을 버리고 다시 구축하는 것을 망설이지 마라.
5. 프로그래밍 과제의 부담을 덜고자 할때 비숙련자의 도움보다는 도구를 우선적으로 사용하라.

 

복잡한 머리고 식히고 싶다면 한 번 읽어 보기를 추천한다.



유닉스의탄생.jpg

 

 

< 유닉스의 탄생 > | 브라이언 커니헨 지음 | 하성창 옮김 | 한빛미디어

 

유닉스는 대학 입학하자마자 바로 사용한 환경이어서 나한테는 매우 익숙한 환경이다. 대학원 졸업할때까지 약 10년 가까이 유닉스 환경 위주로 사용했기에 다른 사람들이 생각하는 불편함은 별로 느끼지 못하고 있다. 대학 입학 후 유닉스에 대한 대략적인 역사와 기본 개념에 대해 배우고 유닉스의 원칙에 대해 익힌 것 같다.

처음 이 책이 출간되었다는 기사를 봤을 때 꼭 한번 읽어봐야겠다는 생각을 했었다. 다른 책을 계속 읽어 있어서 책의 구입을 차일피일 미뤄왔지만 한빛미디어 <나는 리뷰어다> 활동을 통해 책을 받아 읽을 수 있게 되었다.

이 책은 유닉스의 탄생과 발전 과정에 대한 모든 것을 보여주는 책이라고 생각한다. 유닉스의 역사를 기록하면서 유닉스 개발현장에 있었던 이들과 그 시기의 상황들을 자세하게 설명한다. 그 현장에 있지 않으면 알 수 없는 세세한 내용까지 담고 있어서 일반인이라면 모르고 지나쳤을 다양한 개발 배경을 알 수 있었던 것 같다.

유닉스를 처음 개발한 벨 연구소를 소개하는 것으로 책이  시작된다. 그리고 유닉스를 개발하게 된 배경과 개발 진행 과정을 잘 설명하고 있는 것 같다. 유닉스 개발 후 대학과 기업에 라이선스하는 과정을 통해 왜 벨 연구소가 유닉스로 사업화를 제대로 할 수 없었는지도 잘 알 수 있게 되었다.

유닉스의 개발은 다양한 운영체제 및 개발 도구에 많은 영향을 미쳤다고 생각한다. 특히 많은 사람들이 사용하는 리눅스에 직접적인 영향을 줬다고  생각하고, 또한 C 언어를 필두로 한 다양한 언어 개발에도 많은 영향을 줬다. 그리고 유닉스를 사용하기 위한 모든 유틸리티 모듈이 어떻게 개발되게 되었는지도 잘 알 수 있었다.

책을 읽으며 그 당시의 벨 연구소의 개발 문화에 대해 매우 부러운  생각이 들었다. 개방적인 문화를 통해 새로운 시도가 이루어지고 그 시도를 통해 다양한 기술개발이 이루어진 것을 보면 문화가 매우 중요한 역할을 한다는 것을 새삼스럽게 느끼게 되었다. 어떻게 보면 전화통신회사인 벨 연구소에서 유닉스라는 운영체제가 개발된 것이 조금은 아이러니하지만 그 당시 벨 연구소의 연구 실적을 보면 우연히 개발된 것은 아니라는 생각이 들었다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

아주 오랜만에, 기술 서적이 아닌 책이다. 책을 받고 그다음 날, 대략 다섯 시간에 걸쳐 다 읽었다. 재미있어서 시간 가는 줄 모르고 후루룩 읽었다. 읽으면서 좋았던 내용이나, 기록하고 싶은 문장을 인덱스로 표시했는데, 책이 인덱스로 범벅되었다.

기술적으로 어려운 내용을 포함하고 있기보다는, "유닉스가 탄생하면서 생겨난 소프트웨어들(유닉스를 포함하여)은 왜 생겨났는가?"가 담겨져 있다. 공통적으로 벨 연구소의 연구원들의 필요에 의해서 생겨났다. 처음부터 복잡한 기능을 가진 프로그램이 아니었고, 아주 작은 단위의 프로그램으로 만들어졌다. 유닉스의 탄생을 읽다보면, 불편함을 소프트웨어로 해결한 과정을 볼 수 있다. 유닉스 계열의 운영체제에서 아직도 사용되는 정말 유명한 프로그램들의 탄생 일화를 읽으니까 신기했다. 예: C언어, grep, 파이프 등

게다가 당시 벨 연구소 분위기도 엿볼 수 있다. 벨 연구소의 사진을 첨부하고 있어서, 상상하면서 읽었다. 여기선, 이런 일이 있었겠거니 하고.

가장 기억에 남는 부분은, 유닉스 제 6판 소스코드에 있는 주석을 설명하는 부분이었다. 아주 감명 깊었다. ㅋㅋㅋ

	
		
 
/* You are not expected to understand this. */
 
/* (당신이 이것을 이해할 거라고 예상하지 않습니다.) */

아무튼 이런 저런 내용을 보면서 사람 사는 게 다 거기서 거기라고 생각했다. 결국 재미있게, 내가 필요한 걸 만듦으로써 소프트웨어가 탄생한다는 걸 다시 한번 생각하게 되었다.

유닉스의 탄생은 컴퓨터 역사와 관련 있으면서, 너무 어렵지 않게 내용을 담아낸 책이다. 머리를 환기시키고 싶을 때, 아무 생각없이 읽기에 좋다.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."



여섯 번째 리뷰를 위한 도서 목록을 받고 나서 이 책의 제목을 보는 순간 그냥...너무 나도 당연하게 선택을 했다.
유닉스의 탄생이라니....저자가 브라이언 커니핸이라니....

예전 대학에서 강의 할 때 졸업반 친구들에게 기술 서적을 볼 때에는 
소설처럼 처음부터 보지 말고 목차를 잘 살펴 보라고 했다.

대부분의 프로그래밍 언어 관련 책들은 소개, 변수, 제어문, 반복문 등등의 순서로 진행 될 거고, 
최신 기술에 관한 책들의 내용은 어차피 공식 사이트의 기본적인 내용과 동일하게 시작하니,
처음부터 차근차근 보지 말고 목차 보고 필요한 부분부터 보라고.

마찬가지로 앞서 리뷰 했던 책들 역시 대부분 기술 서적이었고, 
그래서 목차를 기준으로 책의 전반적인 내용이나 수준 등에 대해서 언급 하는 정도의 리뷰를 작성 했었다.

하지만 이 책은 이전 책들처럼 가벼운 리뷰도 할 수 없을 것 같다.
소설책 리뷰 한다고 그 내용을 다 얘기 할 수는 없지 않은가!
그리고 이 책은 소설책은 아니고... 역사 서적에 가깝다고 봐야 할 것 같다.

유닉스... 
지금 내가 컴퓨터 앞에 앉아 키보드를 두드리고 있을 수 있도록 해준, 
수 많은 사람들이 사용하는 스마트폰 이라는 것이 나올 수 있게 해준... 

만약 유닉스(C언어 포함)가 없었다면 과연 우리는 지금 이 만큼의 컴퓨팅 환경을 누리고 살 수 있을까?

그런 유닉스를 만들었던 두 사람 중 한 명이 직접 쓴, 
유닉스가 만들어진 이유와 그 과정에 대한 이야기 이다.

컴퓨터나 전산학을 전공한 사람이라면 그냥 반드시 한번은 읽어 봐야 하는
마치 전공 필수 과목 같은 책이 아닐까 생각 한다.

다가올 이번 여름 휴가는 이 책 하나로 잘 보낼 것 같다.

그리고 이런 좋은 책을 리뷰어로서 볼 수 있는 기회를 제공해준 출판사에도 감사드린다.

 

제목에서 알 수 있듯 책을 읽는다고 해도 프로그래밍에 대해 배울 수 있는 책은 아니지만, 프로그래밍을 조금이라도 아는 사람들에겐 흥미있는 이야기들도 가득하다. 일단 저자부터가 The C Programming Language로 유명한 사람이고, 등장 인물들도 대부분 전설적인 개발자들이다. 개인적으로는 첫 직장에서 지금은 사라진 Sun microsystem의 SVR4에서 일을 배우고 시작했기에 해당 부분을 읽으면서 유난히 더 반가웠다. 워낙 좋은 책이고 좋은 서평도 많아서 내가 특히 인상깊었던 부분들만 몇 가지 골라봤다.

  1. 벨 연구소의 환경
    우리가 흔히 상상하는 이상적인 연구소의 모습, 지원하되 간섭하지 않는 환경을 보여준다. 이런 환경이 뒷받침되었기에 천재적인 개발자들도 마음껏 연구하고 이런 멋진 결과들을 계속 만들어냈던 거 같다. 항상 소프트웨어 개발사의 모습이 어때야 하는지 논의가 많은데, 결국 지향점은 벨 연구소에서 이미 충분히 보여준 거 같다. 공교롭게도 반독점법에 의해 AT&T가 나뉘면서 연구소도 나뉘었는데 그 이후로는 예전만 못한 모습을 보인다.
  2. 문서화
    지금이야 자료들이 많이 있고 여러가지 예시도 비교적 쉽게 찾을 수 있어서 man page를 잘 보지 않지만, 당시만 해도 검색 엔진같은 건 존재하지 않던 시절이고, 누군가에게 배우거나 책이 있지 않으면 스스로 소스코드를 읽어서 이해할 수 있어야 프로그램 사용 방법도 알 수 있던 시절이었다. 그런 환경에서 man이란 명령어로 사용방법부터 known bug까지 기술해 놓은 걸 보면 다른 모든 부분처럼 문서화에서도 선구자였다.
  3. 애자일?
    UNIX 철학의 한 가지가 소프트웨어를 가능한 빨리, 수 주 이내에 사용할 수 있게 설계하고 구축하며, 어설픈 부분을 버리고 다시 만드는 걸 망설이지 않는 것이다. 이 부분을 읽으면서 빨리 동작하는 소프트웨어를 만들고 피드백을 받아 보완을 하는 애자일 방식이 연상이 되었다. 개발 방법론도 이렇게 시작했지만, 규모가 커지면서 waterfall같은 방식으로 변했는데 결국은 다시 UNIX 철학을 바탕에 둔 애자일로 돌아왔나 싶다.

OS를 직접 개발하는 사람이 아니더라도 이런 전설적인 개발자들의 이야기는 얕게는 기분 전환에 도움이 되고, 깊게는 자신의 개발 영역에 어려운 일이 있을 때 영감을 제공할 수 있다. 개발자라면 누구에게나 추천한다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다

‘내 직업의 역사서’ - 유닉스의 탄생

나는 첫 회사에서 AIX를 다뤘다. AIX는 IBM의 UNIX 운영체제이고, 지금도 많이 사용하고 있는 UNIX OS 중 하나이다. 아무것도 모르는 쌩 신입 상태에서 처음 받은 일이 OS의 불필요 로그 삭제였던 것으로 기억한다. 당시 매주 시스템 정기 배포를 진행했는데 배포 시점에 서버에 시스템 코드를 배포하고 불필요하게 자원을 차지하는 로그파일 같은걸 삭제하는 일이었다. 내가 입사하기 전까지 이런 로그파일을 매번 사람의 손을 통해 삭제했고 나는 선배가 하던 일을 인계받아서 해야 했다. 사람의 손이 타는 일을 어떻게 자동화시킬 수 있을까 궁리했고, cron과 ksh을 사용하여 로그파일을 특정 시간에 삭제해주는 스크립트를 만들어서 해결했던 기억이 난다. 당시 UNIX는 DOS와 다를 게 없어 보였고 터미널 앞에서 뭘 해야 하는지 막막했다. 선배가 알려준 vi와 hjkl 방향키만으로 겨우 일을 처리할 수 있는 정도에서 cron과 쉘을 사용해서 끙끙거리며 간단한 프로그램을 만들고 나서 뿌듯한 기분이 들었으니 말이다. 내가 운영하는 시스템은 Java 언어 기반의 웹 서비스였지만 생각보다 UNIX와 가까이할 일이 많았다. 서비스 구동부터 OS 상태 체크, 간단한 스크립트 작성까지 이것저것 할 일이 많았는데 그럴 때마다 grep, awk 등의 프로그램을 사용하기 위해 man 명령을 수도 없이 타이핑했다. 자주 사용하지 않지만 UNIX는 나와 가까운 곳에 있었고 유명한 명령어나 VIM 같은 프로그램은 어쭙잖게 사용하곤 했다.

이 책은 유닉스의 회고록이다. 저자는 벨 연구소에서 유닉스 이전, 탄생, 이후 발전을 함께했고 awk라는 훌륭한 프로그램을 개발하기도 했다. 내가 사용하는 프로그램을 개발한 사람이 쓴 책이라니, 궁금하지 않을 수 없었다. 그리고 이 책에 등장하는 인물들은 프로그래머라면 여러 번 들어본, 이른바 네임드(named)들이다. 데니스 리치, 켄 톰슨, 비야네 스트롭 스트룹, 저자인 브라이언 커닝핸까지. 이들이 어떤 생각을 가지고 어떤 방식으로 일했는지 이 책을 읽으며 간접적으로 경험하고 나는 어떤 마음가짐을 가져야, 어떻게 일해야 좋은 엔지니어가 될까라는 고민도 해볼 수 있었다. 그리고 벨 연구소에 대해 잘 알진 못해도 이따금 들어왔는데 현세대에 많은 영향을 끼친 프로그래밍 언어인 C/C++을 비롯해서 컴퓨터의 역사의 많은 부분을 벨 연구소가 함께했기 때문이다. 나 역시 ‘도대체 벨 연구소가 어떤 곳이야?’라고 궁금해질 때도 있었지만 2020년을 살아가는 사람에게 그 시절은 먼 이야기이다. 이 책을 읽으며 찬란한 컴퓨터의 발전시기의 벨 연구소를 간접적으로나마 체험할 수 있었다. UNIX라는 이름의 유래부터 왜 운영체제를 만들었고, 어떻게 세상을 지배하게 되었는지 한 사람의 프로그래머로서 책의 모든 부분이 마치 삼국지를 읽는 것처럼 흥미로웠다.

아, 커버의 아스키 아트가 정말 마음에 든다.

 

 

유익하다. 한 달쯤 전에 C언어 입문 시작 중 우선 gcc 다운을 하라는 포스팅을 봤다. gcc가 뭔지, GNU가 뭔지 몰랐다. 이들의 존재이유가 뭔지 귀찮게 구글 서치하기 싫었다. 운영체제의 토양 격인 유닉스랑 gcc랑 gnu랑 C언어랑 다 연관 있는 거였다. 이 책 읽으면 이런 것들의 출현 배경에 관한 간단한 지식을 쉽게 딸 수 있다. unix가 탄생한 bell lab이라는 전자통신 회사 소속인 혁신적 연구소에 관한 역사책 같기도 하고, 재밌게 알 수 있다. 

유닉스의 탄생

대부분 사람들은 컴퓨터를 사용할 때 윈도우를 많이 사용할 것이다.

하지만 서버 대부분은 리눅스나 유닉스로 되어 있을 것이다.

세상에는 우리도 모르게 사용되는 유닉스 기반의 운영체제들로 가득하다.

특히 이 운영체제를 만들고, 옆에서 지켜본 분들의 책이라서 흥미가 많이 있었다.

 

항상 리눅스를 쓰면 명령어 익숙하지 않고 맨날 찾고 헤메지만, 좋은 운영체제라는 것을 느끼고 있다.

특히 클라우드로 넘어가면서 리눅스는 필수 운영체제로 좀 더 많은 사람들이 사용하는 운영체제가 되고 있다.

 

이런 시작을 볼 수 있는 책이라서 많은 흥미를 가지고 본 책이 되겠다.

좋은 조직문화가 좋은 SW 만드는게 아닐까 하는 생각이 많이 들었던 책이다.

시스템을 사용할 수 있고 어떻게 사용할 수 있는지 관리하므로 즉 운영체제는 컴퓨터 시스템을 관리하는 보스의 역할이 운영체제인데요. 많은 종류의 운영체제 중에서 다수의 사람이 공부하고 알고 있는 유닉스의 탄생에 대한 이야기를 담고 있는 저서가 있습니다.

 

'유닉스의 탄생' 저서는 UNIX의 탄생과 발전 과정들을 브라이언 커니핸이 들려주는 이야기 형식과 비슷합니다. 처음에는 유닉스가 탄생한 장소 벨 연구소에 대한 내용을 들려줍니다. 저자인 브라이언 커니핸이 30년 동안 벨 연구소의 컴퓨팅 과학 연구 센터에서 일을 하면서 있던 일들을 소설책을 읽듯이 담아내고 있습니다. 그들만의 공간에서 그들만이 알고 있는 과거 이야기들을 제3자인 독자들에게 공개함으로써 역사적 순간들을 볼 수 있는 기회입니다.

 

전체적으로 유닉스에 대한 내용을 연대적으로 나열된 느낌도 있습니다. 또한, 컴퓨터, 하드웨어, 소프트웨어, 운영체제, 프로그래밍, 프로그래밍 언어에 대한 입문 수준에서 간략한 설명들이 있어서 IT업계에서 일하고 준비하는 비전공자들에게도 알찬 정보들을 제공합니다.

 

유닉스의 역사를 기록한 저서이자 유닉스 개발 현장에 있던 이들의 회고록인 만큼 유닉스가 무엇인지? 어떤 이유로 개발되었는지? 어떤 과정으로 거쳐 발전했는지 꼼꼼하게 기록되어 있습니다. 그리고 유닉스의 내용뿐만 아니라 널리 알고 있는 프로그래밍 언어 중 하나인 C언어에 대한 이야기로 같이 다루고 있습니다. 

 

유닉스 이름의 유래에 관해서 이야기하면 초창기엔 PDP-7 운영체제에 이름 생겼는데요. 바로는 켄, 데니스, 피터 노이만을 포함한 무리와 내가 사무실 입구에 서서 이야기하던 것으로 시작합니다. 저자는 시스템에 이름이 없었기에 라틴어 어근에 기반을 두고 멀틱스가 '모든 기능을 많이' 제공한 반면, 새로운 시스템은 어떤 기능을 기껏해야 하나 제공하므로 ‘UNICS’라고 불러야 한다고 했는데, 이는 ‘multi’를 ‘uni’로 바꾼 말장난이었습니다. UNICS는 어떤 이유에서인지 Unix로 변형되었습니다. 소문상의 유닉스로 바뀐 내용은 저서에 담겨 있습니다.

 

그들만의 알고 있는 이야기들을 들려줍니다. 그 과거를 회상하게 한 상황마다 유닉스의 탄생 배경을 알아가고 사용하는 기술의 진화 과정을 이해할 수 있습니다. 그리고 기술을 어떻게 개발하고 어떤 방향으로 발전시킬지 결정한 것은 모두 실존 인물들이 있습니다. 이 저서에서 가장 큰 매력은 기술을 개발한 사람들에 대한 이야기들을 인물탐방 주제로 곳곳에서 만나 볼 수 있습니다. 

 

그중에서 2019년 5월 켄 톰프슨와 뉴저지 월 타운십에서 열린 미 동부 빈티지 컴퓨터 축제에서 허물없이 나눈 대화 내용을 유튜브(https://www.youtube.com/watch?v=EY6q5dv_B-o)에서 볼 수 있습니다. 저서에 켄 톰프슨, 데니스 리치, 더글러스 매클로이 등 다양한 사람들을 만나볼 수 있습니다.

 

파일 시스템, 시스템 호출, 셸, 파이프, 정규 표현식 등 개발하게 된 이야기들이 나와서 흥미롭습니다. 과거와 현재의 간극을 좁히는 데 도움이 될 것입니다. 이 저서는 개발 과정의 일기장을 보는 것처럼 새로운 기술을 창조하고 수많은 가능성에 대해서 도전한 개발자들의 이야기와 연구 환경, 상황 등 이야기들을 볼 수 있습니다.

이번 도서는 유닉의탄생. 유닉스는 수많은 운영체제와 프로그래밍언어, 소프트웨어 의 기반이다. 이책은 유닉스 운영체제의 역사와 흐름을 이해하기 좋은 도서이다. ​ 각을잡고 공부하면서 보는 책이 아닌 카페나 이동하면서 그냥 재밌는소설을 읽듯이 흐름대로 읽기좋은 책이다. ​ ​ 내용은 이렇다 유닉스가 만들어지기전 벨연구소부터 켄톰프슨과 데니스리치를 중심으로 유닉스가만들어지는 과정, 더그매클로이를 재조명한다. 그 외에도 저자를 비롯한 다른 사람들이 유닉스로 한 컴퓨터기술발전에 어떤기여를 했는지 많은 일화와 함께 소개하고 끝으로 다른 운영체제로 파생되고 진화하면서 쇠락의 길이 접어드는 과정을 설명하면서 끝이난다. ​ 대학교때도 유닉스는 서버용으로만 한두번 본것같은 기억이난다. 윈도우로만 할줄알았지 기반이 유닉스라는 것도 아마 몰랐던거 같다. ​ 책을 읽으면서 책속의 장면이 상상되기도 하고 이해가 되기도 하고 그랬다. IT업계에서 일하는 사람들은 꼭 한번 봤응면 좋을것 같은 책이다. ​ 프로그래밍을 조금이라도 배웠다면 잘 이해할수있을거고, 아니어도 대략적인 흐름을 이해할 수있으니 유닉스의 역사를 알고싶은 일반인이나 프로그래밍 하는사람에게 추천한다.

지금 이렇게 노트북을 이용해서 블로그에 글을 올릴 수 있는 것도, 스마트폰으로 카톡을 할 수 있는 것도 기반에는 운영체제가 있기 때문에 가능한 것입니다.

우리가 대부분 컴퓨터에서 주로 사용하고 있는 윈도우 운영체제는 1985년에 갓 개발되었습니다.

그렇다면 운영체제의 아버지라 불리는 유닉스는 어떨까요, 무려 1969년입니다.  

유닉스가 낯설다면 공개 운영체제인 리눅스는요? 안드로이드는 잘 아시지 않나요?

다 유닉스로부터 파생된 운영체제입니다. 

 

제가 이번에 읽은 책은 유닉스를 개발한 벨 연구소에 재직했던 저자 '브라이언 커니핸'이 직접 보고 듣고 겪었던 벨 연구소의 연구원들, 유닉스를 비롯하여 세상을 바꿀 컴퓨터 기술들과 이를 개발한 천재들의 이야기를 생생하게 풀어낸 책입니다.

 

책의 목차는 다음과 같습니다.

1장. 벨연구소

   - 벨 연구소의 자연과학 연구

   - 통신 기술과 컴퓨터 과학

   - 벨 연구소로 향하다

   - 사무실의 이웃들

   - 137->127->1127->11276

 

2장. 유닉스 프로토타입(1969)

   - 약간의 기술적 배경

   - CTS와 멀틱스

   - 유닉스의 기원

   - 이름의 유래

   - 인물 탐방 : 켄 톰프슨

 

3장. 유닉스 제1판(1971)

   - 특허출원서 생성용 유닉스

   - 유닉스 방

   - 유닉스 프로그래머 매뉴얼

   - 메모리에 대한 몇 가지 이야기

   - 인물 탐방 : 데니스 리치

 

4장. 유닉스 제6판(1975)

   - 파일 시스템

   - 시스템 호출

   - 셸

   - 파이프

   - grep

   - 정규 표현식

   - C 프로그래밍 언어

   - 소프트웨어 도구와 랫포

   - 인물 탐방 : 더글라스 매클로이

 

5장. 유닉스 제7판(1976~1979)

   - 본 셸

   - Yacc, Lex, Make

   - 문서 생성

   - Sed와 Awk

   - 다른 언어들

   - 다른 기여들

 

6장. 연구소를 넘어서

   - 프로그래머 워크벤치

   - 대학교용 라이선스

   - 사용자 그룹과 유즈닉스

   - 존 라이언스의 해설서

   - 이식성

 

7장. 사업화

   - 기업 분할

   - USL과 SVR4

   - UNIX

   - 홍보 활동

 

8장. 후손

   - BSD

   - 유닉스

   - 미닉스와 리눅스

   - 플랜 9

   - 해산

 

9장. 유산

   - 기술 측면

   - 조직 측면

   - 인정과 평가

   - 역사는 반복될 수 있을까?

 

 

 

1장 '벨연구소'는 책의 지은이인 브라이언 커니헨이 실제 30년간 벨 연구소에 재직하면서 연구소의 환경과 연구 문화, 구성원들에 대하여 길지 않게 언급하고 있습니다. 기본적으로 벨 연구소는 박사과정을 밟은 사람들이 연구원이고, 각 연구원들별로 다양한 관심분야를 전문적으로 연구를 하기 때문에 다양한 분야에서의 성과를 낼 수 있었다고 합니다.

 

2장은 '유닉스 프로토타입'에 대해서 다루고 있습니다.

1960년대까지만 해도 당시에 운영체제가 각 컴퓨터 제조업체별로 특정 종류의 하드웨어에 종속되는 어셈블리어로 작성되었기 때문에, 시스템들간 공통성이 부족하고 하나의 운영체제 위에 작성된 프로그램을 다른 운영체제, 아키텍처(다른 컴퓨터)에서도 작동을 시키려면 아예 처음부터 다시 작성해야 하는 일도 부지기수였다고 한합니다.

즉, 이식성이 굉장히 떨어졌다고 합니다.

대신, 유닉스는 모든 종류의 하드웨어를 커버하는 동일한 운영체제를 제공하고, 고수준 언어로 재작성되어 프로그램 이식성이 좋은 운영체제입니다.

 

유닉스가 탄생하기 전 운영체제의 발전에 대해서도 책에서는 어렵지 않게 설명하고 있습니다. 

1960년대 이전 천공카드를 이용한 '일괄처리'에서, 1960년대 초 MIT에서 만든 전화선으로 연결하여 타자기처럼 생긴 장치에 탑재되는 '시분할처리' CTSS로 발전하여 사용자 전환이 빠르고 다른 사용자들이 있더라도 컴퓨터를 전용으로 사용하고 있는듯한 쾌적함과 높은 생산성이 있었습니다. 1964년~1969년에 이를 발전시켜 MIT 연구자들(벨 연구소 연구원들도 포함)이 '멀틱스(Multics)' 운영체제를 만들었는데, 멀틱스는 어셈블리어 수준으로 쓰여진 다른 운영체제와는 다르게 고수준 언어인 PL/I로 작성하고자 한 운영체제였습니다. 그러나, CTSS에서 발생한 많은 이슈들을 해결하려다 보니 멀틱스는 너무 복잡하고 비싼 운영체제가 되었습니다. 이 멀틱스의 복잡성에 대한 반작용으로 유닉스라는 작고 효율적인 운영체제가 탄생할 수 있었다고 책에서는 설명하고 있습니다.

 

유닉스는 켄 톰프슨이 1969년, DEC 회사에서 제작한 PDP-7 컴퓨터기종의 디스크 드라이브의 처리율을 극대화하기 위한 '디스크 스케줄링 알고리즘'을 개발하면서 알고리즘을 시험할만한 대량의 데이터를 넣을 프로그램, 즉, 처리율 등을 시험하기 위한 파일시스템을 만들다가 '코드작성 편집기', '어셈블러', '커널 오버레이' 등등을 개발하다보니 유닉스 시스템의 첫 번째 버전(당시는 PDP-7의 운영체제)을 만들어 냈다고 합니다.

 

'유닉스' 라는 이름은 멀틱스의 Multi(많은 기능 제공) 를 Uni(기껏해야 하나의 기능을 제공/처음에는 단일 사용자용 OS커널로 만듦)로 바꿔서 유닉스라고 불렀다, 라는 명명 버전과, 피터 노이만이 'UNiplexed Information and Computing Service' 의 약자로 'UNICS'라는 이름을 붙였다고 하는 버전도 있다고 합니다. Unix라고 바뀐 것은 AT&T 변호사들이 eunuchs(내시)와 발음이 유사한 Unics 를 좋아하지 않아 UNIX로 바꿨다는 소문이 있다고 합니다.

 

책에는 켄 톰프슨에 대한 인물 소개도 언급하였는데, 즐길줄 아는 천재는 정말 유쾌하고 어디서든 핵심 인력으로 세상을 바꾸는 데 기여한다는 것을 느끼게 되었습니다. 

 

지금은 고인이 된, 데니스 리치에 대해서도 언급하였는데, 데니스 리치는 멀틱스 개발 프로젝트에 참여한 경험을 바탕으로, 유닉스 운영체제 개발과 C 프로그래밍 언어를 개발한 컴퓨터 분야에 혁혁한 공을 세운 분입니다. 하드웨어 자원을 효율적으로 사용하는 C언어가 개발되어, 1973년 유닉스를 어셈블리어 형태에서 C언어 형태로 바꿔서 작성하여 이식성이 우수해졌습니다.

 

제 4장은 1975년, 유닉스 제6판에 대해 다루고 있으면서, 유닉스가 세상에 논문으로 공개되면서 기술된 특징에 대해서 쉽게 설명하였습니다.

유닉스 제1판은 1971년 PDP-11 기기에서의 특허출원서 생성용으로 개발이 되었다면, 이후 몇 년간은 6개월 정도 텀을 두고 새로운 버전이 나왔다가, 1975년 유닉스 제6판은 좀더 의미있는 버전이라고 소개하고 있습니다. 유닉스를 공개적으로 1973~74년 ACM 심포지엄에 논문으로 발표를 하였는데,

"유닉스는 DEC PDP-11/40과 11/40과 11/45 컴퓨터를 위한 범용적 다중사용자용 대화식 운영체제이다"

라고 소개하고, 유닉스의 특징들을 하나씩 소개하였습니다.

1) 파일을 계층적 디렉터리로 구조화 (cf. CTSS는 2단계 까지로 중첩 깊이 제한하는 파일시스템)

2) 운영체제가 제공하는 서비스를 이용할 수 있는 시스템 호출과, 주변 장치가 파일 시스템의 파일처럼 보이도록 처리한 부분 (장치 특성을 사용자가 몰라도 파일을 저장, 읽고 쓰기 가능)

3) 명령어 실행 및 사용자와 운영체제간 인터페이스 역할을 하는 셸 스크립트로 명령어 시퀀스 반복작업 자동화 가능

4) 프로그램을 서로 연결하는 파이프, grep(패턴검색) 등에 대한 아이디어

   (아이디어를 낸 더글러스 매클로이는 "프로그램을 정원용 호스처럼 서로 연결한다"고 표현)

 

지금은 당연하게 운영체제에서 기본으로 제공되는 기능으로 생각하는 모든 것들을 "최초"로 생각해내서 구현해낸다는 것. 그리고 실제 인식된 문제들을 이론에 대한 깊은 지식과, 이론을 효율적으로 적용하여 구현해내는 엔지니어링, 지속적으로 개선해내는 관심과 기술이 더해져 유닉스는 나날이 발전했다고 책에서는 설명합니다.

 

인물에 대해서는 유닉스의 숨은 공로자인 더글러스 매클로이를 다루고 있습니다. 메모리할당자인 MALLOC을 만들었고 그 외에 diff 등도 만들었습니다.  

 

제 5장은 1976~79년에 나온 유닉스 제7판에 대해 다루고 있습니다. 유닉스 6판이 PDP-11용 운영체제였고, 7판이 되어서 비로소 이식성이 있는 운영체제가 되었습니다. 본 셸, 배시 셸, Yacc(-> pcc로 발전), Lex, Make (-> 프로그램의 조각들이 서로 어떻게 의존되는지 기술하는 명세 언어로 컴파일을 효율적으로 해줌), sed, awk 등이 개발되어 적용되었습니다.

 

또한, 보안과 하드웨어 분야에 대해서도 파일시스템 사용자 파일 접근제어 등의 기능에 대해서도 개발 배경을 소개하고 있습니다.

 

제 6장, 7장은 유닉스가 연구소를 넘어서 사업화되고, 8장에는 유닉스의 후손(유닉스에서 파생된)인 리눅스 등에 대해서 다루고, 마지막 9장에서는 유닉스가 남긴 유산과 의미에 대해서 다루고 있습니다.

 

유닉스의 개발 과정을 소설책을 읽듯이 스토리텔링 식으로 풀어놓은 것이 굉장히 인상적이었습니다. 단순히 운영체제를 이해하는 것 뿐만 아니라, 마치 개발 과정을 현장에서 옆에서 지켜보는 것처럼(이것은 아마 저자가 실제로 벨 연구소에서 직접 보고 체험한 일을 글로 옮긴 것이라 가능하겠지만) 생생하였습니다. 최초 유닉스 설치 사용자가 10명인 초기부터, 50명 이상, 그리고 전세계적으로 사용하는 범용의 인기 운영체제가 되기까지의 과정들과 기술적인 아이디어와 고민들이 그대로 녹아들어간 책이었습니다.

 

책은 이처럼 컴퓨터 전공자라면 영감을 많이 받을 수 있는, 컴퓨터를 좋아하고 컴퓨터를 발전시킨 사람들의 아이디어와 노력을 담았습니다.

 

그리고 벨 연구소는 많은 발명과 개발이 이루어졌고, 동시에 의미있고 세상에 영향력을 주는 책들도 많이 출간하였는데, 저자는 그 이유를 벨 연구소의 글쓰기에 대한 진지한 자세와 비평, 경영진의 지지, 개발한 문서 생성 프로그램과 글쓰기 효율의 상호발전으로 꼽았습니다. 한국의 많은 연구기관에서 벨 연구소를 벤치마킹했으면 하는 바람이 드는 좋은 연구 문화라고 생각합니다.

 

책을 읽으면서 새로운 것을 만들어 내는 일, 세상을 좋게 바꾸는 데 기여하는 일의 가치에 대해서도 다시금 생각하게 되었습니다. 컴퓨터를 전공하는 사람들이 이러한 가치를 느낄 수 있도록 필독서로 꼭 추천해주고 싶은 책이라고 감히 말하고 싶습니다.

KakaoTalk_20200823_231851179.jpg

 

 

리뷰

요즘 mac os를 사용하면서 리눅스에 대한 관심이 많아졌다.
항상 어떠한 개념을 공부하려면 왜 만들어졌는지, 어떻게 만들어진 것인지 알아야 한다고 생각한다. 이런 궁금증 해소 방안으로 책이 있다.
유닉스의 탄생이란 책은 궁금증을 충분히 해소시켜줄 뿐 아니라 당시의 사진으로 인해 흥미있게 읽어 나갈 수 있었다. 현재 사용하고 있는 명령어들이 어떻게 만들어졌고 그당시의 희열을 같이 느낄 수 있었던 시간이었던 것 같다.
개인적으로는 4,5 장에서 설명한 유닉스의 기능들에 대해서 설명한 부분들이 가장 재미있었다.

사진이나 내용들이 쉽게 읽을 수 있게 풀어 써서 다양한 사람들이 한번쯤 읽어봐도 괜찮을 것 같다. 

이 책이 생각났다.

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=190366924

 

 

해커, 광기의 랩소디

해커, 광기의 랩소디

www.aladin.co.kr

유닉스의 탄생을 읽으면서 생각난 책이 있다. 바로 해커, 광기의 랩소디 - 세상을 바꾼  컴퓨터 혁명의 영웅들이다.

유닉스의 탄생의 부제(세상을 바꾼 운영체제를 만든 천재들의 숨은 이야기)가 비슷한 느낌이어서 그랬을지도 모르지만 내용을 읽으면서 더더욱 그 색은 짙어졌다.

업계에 관심이 있는 사람이라면 혹은 다른 교양(?) 서들을 읽어보았다면 들어보았을 만한 책의 저자들이 수두룩하게 나온다. 흔히 고전으로도 말할 수 있는 책들의 저자들 말이다.

벨 연구소의 문화

사실 벨 연구소에 대해서 아는 건 없었다.( 이 책을 읽으면서 알게 된 게 전부 )

그럼에도 불구하고 유닉스가 어떻게 탄생되었는지 그 이야기를 듣다 보면 이렇게 세상을 바꾼 운영체제가 시작됐는구나를 경험할 수 있다.

그중에서 벨 연구소의 문화가 천재들이 세상을 바꾼 운영체제를 만들 수 있도록 크게 한몫했을 것 같다.

저자의 말에 따르면 벨 연구소에는 아주 훌륭한 문화가 있었는데 그것은 책 집필을 사측에서도 지원했다는 점이다. 

또한 연구소 사람들도 글쓰기의 중요성을 이해했고 서로의 글을 읽고 피드백을 주어 상호 보완하는 문화가 있었던 것이다.

이는 지금 시점에서도 매우 중요한 부분이다. 아마 대규모 회사에서는 사내 위키 비슷한 개념으로 정보 공유나 장애처리 등의 글들이 작성되고 있을 것이다. 이러한 정보는 다른 사람이 문제를 만났을 때 더 빠르고 효율적으로 해결할 수 있도록 도움을 주기도 한다.

개발자는 문제를 해결하는 사람

개발자로 일하고 있지만 개인적으로 개발자란 문제를 해결하는 사람이라고 생각한다.

그중에서 문제를 소프트웨어적으로 해결할 수 있는 사람으로 생각한다. 소프트웨어적으로 해결한다는 것은 사람이 해야 할 수고를 컴퓨터에게 덜어낸다는 것으로 이해하면 된다.

유닉스의 탄생과 더불어 유닉스를 사용자들이 찾게 만드는 다양한 도구들이 함께 만들어지는데 결국 이 도구들 또한 불편한 점을 개선하고자 만들어지고 그것을 더 효율적으로 해결하고자 개선되어 나아간다.

시대는 변하였지만 예나 지금이나 소프트웨어로 문제를 해결하는 것은 매 한 가지라는 이야기.

안타까운 운영

솔직하게 현재 유닉스가 엔터프라이즈급에서만 쓰인다고 얼핏 들은 이야기로만 알고 있지 어디에서 쓰이는지 잘 모른다.

오히려 유닉스 이후에 나온 리눅스는 사용해 보았으며 유닉스보다 더 많이 사용되지 않나?라고 알고 있다.

이러한 바탕에는 AT&T의 안타까운 선택들에 의한 운명이라고 받아들여야 할 것 같다.

정말 시대가 지나도 변치 않는 것 중에 하나가 정치인 거 같기도 하다. 그리고 항상 예상치 못한 변수는 튀어나오기 마련.

그럼에도 불구하고 유닉스가 남긴 것들은 많다.

이 부분은 책을 직접 읽어보면서 느끼는 게 맞을 것 같다. 정말 40년이 넘는 세월이 지났음에도 불구하고 아직까지도 그 기원에서 그대로 사용하고 있는 것들도 많고 파생된 것들이 매우 많기 때문이다.

결국 기원은 유닉스!라는 이야기로 대체할 수 있을 것 같다.

용어가 조금 낯설 수 있다.

비평(?)인가 싶지만 리눅스를 조금 다뤄 보았다면 어느 정도 불편함이 덜 하겠지만 그렇지 않다면 웬만한 유닉스의 도구들이 먼산처럼 느껴질 것이다. 


결론

역사를 재밌게 읽지 못하는 분들도 계실 거라고 생각한다. 그러나 인물에 대해 또는 저자들에 대해 조금이라도 관심이 있었다거나 한다면 들어보았을 만한 인물들이 대거 등장하며 그분들의 활약상을 느낄 수 있는 좋은 기회로 생각된다.

개발자의 교양서로써 한 번쯤 눈팅이라도 해보는 게 좋지 않을까?

안녕하세요, 괴짜 개발자 namedboy 입니다.

 

제가 오늘 리뷰할 책은 유닉스의 탄생 입니다.

 

유닉스는 운영체제 입니다. 컴퓨터 운영체제죠. 윈도우, 맥OS 같은 운영체제의 일종입니다. 다만 1970년에 만들어진 아주 오래된 운영체제 입니다.

 

유닉스의 소개는 이쯤 하고 유닉스의 탄생이란 책에 대해 얘기해보겠습니다.

 

이 책의 내용은 유닉스가 만들어지는 시기에 대한 시대적 배경부터 당사자들이 어떤 이유로 만들게 되었는지도 함께 나오는데 흥미로운 인물들 얘기도 함께 설명을 해줍니다. 유닉스에 대한 내용 외에도 각 인물들이 어떤 사람들인지에 대한 내용도 함께 볼 수 있는데 흥미로운 부분이 많습니다.

 

후반부에는 유닉스가 나온 이후에 대해 다루고 있고 어떻게 사업화하게 되었는지에 대해 마무리 합니다.

 

사실 유닉스에 대한 히스토리는 뻔하디 뻔한 부분이 있습니다. 분명 유닉스를 개발하신 분의 이야기라는 점이 굉장히 큰 장점이라고 생각합니다만, 결국 같은 얘기일테니 역사책 읽는 것과 뭐가 다를까 라는 생각도 했습니다.

 

읽다 보면서 저는 이책이 개발자라면 무조건 읽어야 하는 책이라는 생각이 들었습니다. 

그 이유는 개발자가 어떤 자세로 개발을 하는지에 대한 내용이 책에 전반적으로 담기기 때문이죠.

 

브라이언 커니핸은 유닉스를 직접 개발한 사람 중 한명입니다. 그가 쓴 이 책을 읽다 보면 어떤 방식으로 개발을 했었는지에 대해 이해할 수 있게 됩니다. 

개발자가 개발을 하기 위해 가져야 하는 소양에 대해서 설명하고 있다는 생각이 많이 들었습니다.

 

개발을 좋아하고 앞으로도 계속해서 하려고 하는 사람이라면 분명 도움이 될 책이라고 생각합니다.

 

유닉스의 탄생은 링크에서 확인하실 수 있습니다.

개인적으로 역사를 좋아한다. IT업계에 있으니까 IT와 역사를 연결하는 특별히 숨은 이야기 즉 야사(野史)를 좋아한다. 우리는 흔히 <거인의 어깨에 올라서서 더 넓은 세상을 바라보라>라는 말을 한다. 지금 우리가 사용하고 있는 컴퓨터 시스템은 우리의 선배들이 닦아놓은 기초가 있었기에 가능했다. 그 선배들은 또 그들의 선배들이 닦아놓은 기초 위에 그들의 시스템을 설계할 수 있었다. 또 그들의 선배는 또 그들의 선배들의 기초위에... 예전이었다면 슈퍼컴퓨터 정도 되는 시스템을 지금은 한 사람씩 손에 갖고 다니는 세상이 되었다. 우리의 선배들에 비하면 지금 우리가 누리고 있는 시스템은 호사가 아닐런지... 그래서 우리는 절대로 교만해서는 안된다. 그저 선배들이 닦아놓은 길을 겸손하게 걸어갈 뿐이다. 

 

이 책은 진정 세상을 바꾼 천재들의 숨은 이야기가 들어있다. 일반인들은 벨연구소라고 하면, 단순히 전화기를 발명한 벨의 이름을 따서 만들었을 것으로 생각할 수 있지만, 벨연구소는 현대 IT 초석을 만들었다고 해도 과언이 아닌 정말 위대한 연구소이다. 여기서 유닉스가 나오고 그 유닉스를 만들기 위한 언어인 C-Language가 나오게 된다. 아이폰 생산을 진두지휘한 애플의 설립자 <스티브 잡스>가 이 세상을 떴을 때 거의 비슷한 시기에 죽음을 맞이한 사람이 C-language를 만든 <데니스 리치>이다. 물론 <스티브 잡스>역시 혁신적인 아이디어와 마케팅으로 지금의 IT 환경을 한단계 더 업그레이드 시킨 인물로 그의 죽음에 당시 전세계적인 애도의 물결이 있었던 것으로 기억된다. 하지만 지금 대부분의 운영체제의 근본인 유닉스와 C-language를 만든 <데니스 리치>의 죽음에는 언론에 단 한줄 언급됐을 뿐이다. 이 책을 통해 다시 한번 이름없이 하지만 위대했던 선배들의 이야기를 따라가보자. 우리는 그 선배들이 닦아놓은 길을 겸손하게 걸어갈 뿐이다. 

지인들이 제공한 사진들이 많아서 너무 좋더라.

벨 연구소의 유대 관계가 각별하긴 했던 듯.

 

연구 부서 기술직 멤버는 모두 개인 사무실이 있었다고 하더라.

참 부럽다.

그런데 저기 갈 수 있는 사람은 모두 박사 학위자이고,

벨 연구소에서는 한 해에 2명 정도 신입 사원을 뽑았다고 한다.

 

내가 (특히 고객사에서) 겪은 척박한 현실에 한탄하다가도,

저 정도 능력자였으면 우리 나라에서도 별도 방 있는 곳에서 일하지 않았을까 하는 생각도 들었다.

 

작가님은 참 행복하게 일했던 것 같다.

벨 연구소도 이리저리 찢어지면서 예전의 모습을 간직하지 못한 것 같더라.

기술이 발달한다고 업무 환경도 좋아지지 않는 사실이 안타깝기도 했다.

 

이 책을 읽다 보니, 대학교 OT 때 유닉스 처음 접한 경험이 생각 났다.

vi 배우는데 참 많이도 버벅였지.

 

위키백과에서 unix의 역사 페이지를 봤더니, 이 책에 나온 사진도 여기 여럿 보인다.

https://en.wikipedia.org/wiki/History_of_Unix

 

 

본쉘, 배쉬 쉘, C쉘 등등 이름만 듣고서는 뭐가 먼저 나온 것인지,

무엇을 선택해야 하는지 몰랐는데,

책을 보니깐 이제 순서를 좀 알겠더라.

 

그냥 bash 계속 쓰면 될 듯.

 

책에서 글쓰기에 대해 항상 강조하는데,

나도 참 많이 공감도 가고, 글쓰기의 중요성을 매우 늦게 깨우쳐서 좀 아쉽기도 했다.

그래도 작가님 덕분에 유닉스의 역사를 쭉 훑어볼 수 있어 매우 감사했다.

덕분에 유명한 사람들(켄 톰프슨, 데니스 리치) 뿐만 아니라 조용한 리더(더글러스 매클로이)의 이야기까지 많은 부분을 잘 알게 되었다.

 

 

(모든 후기는 제 블로그에 있습니다. 문단 형식까지 복사가 안 되어 일부만 게재합니다.)

https://blog.naver.com/pcmola/222066028077

유닉스는 미닉스, 리눅스의 모태가 된 현대 운영체제의 시초라고 할 수 있는 대단한 운영체제이다. 맥OS도 기반은 유닉스에 두고 있는 것으로 알고있다.

 

 


윈도우도 유닉스에서 많은 부분을 참고하고 배워서 현재의 독자적인 운영체제로 발전했음을 추측해 볼 수 있다. 당시 시대상황의 압도적인 오픈소스 운영체제로서의 저력을 생각한다면 그것이 최선의 방법이었을 것이다. 물론 유닉스 계열과 MS계열의 운영체제는 기본적으로 파일시스템 포맷부터 여러가지 점들이 다르다.

 



세간에 이런말이 있다. 유닉스에서 파생된 리눅스에 기여할 실력이 되기만 해도 어딜가든 먹고 산다고..

 


그만큼 초기의 운영체제 역시 어셈블리로 작성되어 만만치 않았겠지만 C언어로 작성된 현대의 운영체제 역시 분석이 만만치가 않다. 책 몇권으로 담아낼 단계는 이미 오래전에 지났다.

 

 


여기서 전체는 아니지만, 유닉스에 기여한 사람들의 명단을 2장 정도 소개하고 싶다. 다들 컴퓨터 역사에 내로라 하는 인물들이다. 걍 동내에서 입상하듯이 세계적인 상을 수상하는 사람들로 보면 된다.

 


상 받고, 어 거기 적당한데 놔둬. 하고 일 할 정도의 덕후들..


 

 

 


  


AT&T 연구소들은 아래와 같이 배치되어 있었다고 한다. 존경심이 나올수 밖에 없는 인물들이 일 한 곳이라 하니 건물들도 그냥 멋있어 보인다. 희미하게 보이는 글씨에도 나타나지만 이때는 컴퓨터 공학이란게 있기 전으로 보인다. 물리학, 화학, 수학등 다양한 자연과학, 공학자들이 컴퓨터를 완성시켜 나갔던 시기라고

 


생각된다. 트랜지스터도 이곳에서 발명되지 않았던가?

 


나는 컴퓨터 공학과가 물리, 수학등의 학과에서 따로 분리된 것이 조금은 유감이다. 컴퓨터의 기반은 자연과학에 있고 자연과학과 컴퓨터를 함께 배우는게 좋다고 생각한다. 물론 데니스 리치가 수학에만 골몰 했다면 현재의 C언어는 나오지 않았을 것이고 유닉스의 발전은 한참 늦어졌을 것이지만 이건 예외로 해두고 싶다.



유닉스의 기원은 켄 톰프슨이 게임 만들려다가 이거저거 최적화하고 다듬다 보니 파일 시스템을 만들고 그렇게 이거 저거 추가하다 보니 시작된 것으로 알고있다. 참 대단한 사람이라 생각된다. 일단 행동하라 라는 말은 이런 사람들에게 정말 잘 어울리는 단어라고 생각한다. 


 

켄 톰프슨과 데니스 리치가 함께 연구실에 있는 사진이다. 간지가 제대로 난다.


 


아래는 희미하게 찍혔지만 빌 조이의 사진이다. 빌 조이는 TCP/IP 스펙 명세서에 맞추어 소켓 인터페이스를 유닉스에 추가했다. 이게 추가했다고 하면 단순히 메뉴얼 보고 뭔가 작업했다고 생각할 수 있는데 대단히 어려운 작업이다. 기업체가 달려들어서 장기간에 걸쳐 전전긍긍하며 만든 인터페이스 보다 성능이 좋아서 지금도 잘 쓰이고 있다고 알고 있다. 빌 조이는 이후 Vim 에디터도 개발했다.



아래는 리누즈 토르발즈의 사진이다. 그냥 재미로 유닉스를 기반으로 만들었다고 하는 리눅스는 현재 전 세계의 수많은 서버 컴퓨터에서 사용되고 있다. 무료 OS이고 강력하고 안정적이다. 기존 소스 관리 저장소가 유료화 되어 마이그레이션할 저장소를 고민하고 찾다가 맘에 드는게 도저히 없어 새로 Git이란 저장소를 만들어 버렸고 그 시간이 2주밖에 안 걸렸다는 얘기는 매우 유명하다. 그 정도 실력을 갖추고 있으면 왜 고민을 했는지 조금 의문이 든다. 그냥 본인이 처음부터 만들어 버리면 되었을 걸..그래도 가급적 역사가 있는 안정성이 확보된 저장소를 더 선호했으리라 추측해 본다.


현대에 있어 유닉스는 거대한 멋진 OS로 성장했음은 분명하다. 이에 파생된 BSD, 리눅스, 맥OS 들도 모두 성공했다. 유닉스의 발전은 이 한권의 책에 다 담아내지 못할 만큼 많은 에피소드가 있었음에 분명하다.

 


일단 소스코드 양이 어마무시 하다. 운영체제를 개발한다는 것은 매우 매력적인 일이다. 현대에 있어 운영체제는 더 이상 독자적으로 개발할 수 있는 영역을 지난지 오래라고 볼 수 있다. 물론 슈퍼 루키가 맘먹고 덤벼들면 그건 또 다른 이야기다. 어쨋든 상용 수준의 OS 개발이 이전보다 쉽지 않아진건 사실이다. 더군다나 디바이스 생태계, 소프트웨어 생태계가 구축되어 대중의 인기를 얻어야 계속해서 수명을 이어가기에도 유리하다.

 

 

 


이 책을 통해 유닉스의 발전 과정을 소설을 읽듯이 재밌게 읽을 수 있었다. 쉘 스크립트나 유닉스의 유명한 명령어들이 1주일 단위로 하나씩 탄생하는 과정을 읽을때 마다 놀라움을 감출 수 없었다. 이런게 진정한 오픈소스 생태계 개발의 이데아가 아닌가 싶을 정도로 감동했다.

 

 


앞으로 유닉스, 리눅스와 관련된 운영체제들을 배우고 이해하려고 노력해야 겠다고 생각이 들었다. 그 첫 걸음으로 교육용 운영체제로 개발된 미닉스를 이해하는 것을 시작으로 하면 어떨까란 의문을 갖고 이만 리뷰를 마치고자 한다.

IMG_0527.JPG

 

 

컴퓨터공학을 배우면서 유닉스 운영체제를 배운적이 있다. 유닉스 운영체제의 명령어들, 유틸리티 사용법, 쉘 프로그래밍 등등 운영체제 상에서의 프로그램 개발 방법 등을 배우고 실습했었다. 당시에는 그저 유닉스가 벨 연구소에서 만들어진 운영체제라는 생각만 했을 뿐 누가 어떤 생각을 가지고 만들었는지에 대해서는 생각해보지 못했다. 나이가 들고 IT 실무를 경험하면서 유닉스라는 운영체제가 얼마나 대단하고 많이 쓰이고 있는지 체감할 수 있었다. 그런 와중에 만난 책이 한빛미디어에서 나온 '유닉스의 탄생'이다. 부제가 '세상을 바꾼 운영체제를 만든 천재들의 숨은 이야기'인데 유닉스 개발에 참여했던 저자가 보고 듣고 경험한 것들을 잘 정리해 들려준다.

책 초반 부에는 벨 연구소가 어떤 곳이고 어떤 일을 하는지 저자가 일하면서 겪었던 경험들을 소개해 준다. AT&T사의 안정적인 자금 지원으로 벨 연구소의 연구원들은 단기간에 결과를 내기 못하더라도 자유롭게 탐구 할 수 있었다고 한다. 이러한 환경 덕분에 유닉스도 탄생한 것이 아닐까 생각된다.

다음 챕터들에서는 유닉스 프로토타입부터 7판까지의 중요한 특징들을 소개한다. 유닉스의 기원과 이름의 유래와 유닉스 개발팀이 사용한 유닉스의 방에 대해서도 이야기하고 있다. 유닉스의 중요한 특징인 파일 시스템과 셸 그리고 C언어 등을 소개하면서 오늘날 프로그래밍에 얼마나 영향을 많이 끼쳤는지 느낄 수 있다.

중간 중간 인물 탐방이라는 소챕터가 있는데 유닉스 개발에 중대한 역할을 했던 켄 톰프슨, 데니스 리치, 더글러스 매클로이에 대해 길진 않지만 그 인물들이 어떤 사람들이었는지 알아가기에 충분히 잘 요약되어 있다.

책 후반부에는 유닉스의 성공에 대해 여러가지 측면에서 설명한다.

개인적으로 리눅스를 좋아하는데 그 아버지 격인 유닉스에 대해 이렇게 재밌게 읽을 수 있는 책이 나와 기쁘게 읽었고 주변 프로그래머들에게 추천할 만한 그런 책인 것 같다.

 


[한줄평]

유닉스에 관심이 있다면 힙한 UNIX의 탄생과 발전 과정을 알수 있다.


[목차구성]

1장 벨 연구소

2장 유닉스 프로토타입(1969)

3장 유닉스 제1판(1971)

4장 유닉스 제6판(1975)

5장 유닉스 제7판(1976~1979)

6장 연구소를 넘어서

7장 사업화

8장 후손

9장 유산


[기억에 남은 글]

“내가 기억하는 바로는 켄, 데니스, 피터 노이만을 포함한 무리와 내가 사무실 입구에 서서 이야기하던 것으로 시작한다. 그때는 시스템에 이름이 없었기에 (내 기억이 맞는다면) 내가 라틴어 어근에 기반을 두고 멀틱스가 ‘모든 기능을 많이’ 제공하는 반면, 새로운 시스템은 어떤 기능을 기껏해야 하나 제공하므로 ‘UNICS’라고 불러야 된다고 했는데, 이는 ‘multi’를 ‘uni’로 바꾼 말장난이었다.”

--- p.83 「이름의 유래」 중에서

 

“유닉스 방은 그냥 재미있는 곳이었고, 항상 무슨 일이 벌어졌다. 거의 유닉스 방에서만 일하고 사무실은 좀처럼 쓰지 않는 사람도 있었고, 커피를 마시거나 대화를 나누러 하루에 몇 번씩 들르는 사람도 있었다. 동료가 무슨 일을 하는지 서로 알게 되고 공동체 의식을 키우고 유지하는 데 유닉스 방은 그야말로 엄청나게 중요한 역할을 했다.”

--- p.104 「유닉스 방」 중에서

 

“C 언어가 등장하면서 운영체제 전체를 고수준 언어로 작성할 수 있게 됐다. 1973년에는 유닉스를 원래 어셈블리어 형태에서 C 언어로 바꿔서 작성하는 작업이 완료됐다. 이 덕분에 시스템을 유지 보수하고 수정하기가 훨씬 용이해졌다. 또한 더 큰 진보는 운영체제를 원래 PDP-11 컴퓨터에서 다양한 아키텍처 기반의 다른 컴퓨터로 옮기는 일, 즉 이식(porting)이 가능해진 것이다. 시스템 코드 대부분이 C 언어로 작성됐으므로 운영체제를 이식하는 작업에는 C 컴파일러를 이식하는 것 이외에 많은 일이 필요하지 않았다.”

--- p.117 「인물 탐방: 데니스 리치」 중에서

 

더글러스는 매우 뛰어난 기술 평론가고, 새로운 프로그램이나 아이디어를 종종 처음으로 시도해보는 사람이다. 그는 가능한 한 일찍 프로그램이나 아이디어를 시험해봤고, 안목이 높았다. 덕분에 어떤 점이 좋고 어떤 부분을 수정해야 하는지 알려주는 그의 의견은 헤아릴 수 없을 만큼 귀중했다. 아이디어, 알고리즘, 프로그램, 문서에 이르기까지 거의 모든 것에 대한 조언이나 비평을 구하려고 그의 사무실을 찾는 사람들의 발걸음이 끊이지 않았다. 비야네 스트롭스트룹은 먼저 내 사무실에 잠깐 들러서 C++에 대해 논의하고 새로운 아이디어를 설명한 다음, 복도를 따라 몇 칸 옆에 있는 더글러스의 사무실로 가서 언어 설계에 대한 진지한 피드백을 받기도 했다.

--- p.162 「인물 탐방: 더글러스 매클로이」 중에서

 

벨 연구소의 조직 크기와 연구 규모는 어떤 기술 영역에든 다수의 전문가가 있고 그들이 종종 각 분야에서 세계를 선도하는 연구자였음을 방증했다. 게다가 연구소의 문화는 매우 협조적이고 서로 돕는 분위기였다. 누군가의 사무실에 걸어 들어가서 도움을 요청하는 것은 지극히 통상적인 절차였다. 거의 대부분의 경우 요청 받은 사람은 발 벗고 나서서 도움을 줬다. 최상급 기술 도서관도 있었는데, 하루 종일 열려 있었고 매우 다양한 저널을 구독했으며 다른 도서관에 원격으로 접근할 수 있었다. 대학교 도서관과 유사하지만 과학과 기술에 초점을 맞춘 도서관이었다.

--- p.305 「협력하는 환경」 중에서


[서평]

요즘은 운영체제가 윈도우, 맥, 리눅스 세가지 분류로 나누어집니다. 앞의 세개의 운영체제의 뿌리를 따라가다 보면 유닉스라는 운영체제를 만나게 됩니다. 유닉스는 현재의 운영체제에 큰 영향을 주었다고 생각합니다. 아마 유닉스가 나오지 않았다면 지금의 운영체제가 어떻게 달라졌을까? 생각을 해봅니다. 이책에서 유닉스가 만들어지기 전 벨 연구소의 시대적 배경과 문화등 외부에 알려지지 않은 내부자만 아는 사실을 다루고 있습니다. 켄 톰프슨과 데니스 리치를 중심으로 유닉스가 어떻게 만들어 지는지 세세하게 다루고 있어 두 사람의 천재성을 엿볼 수 있습니다. 그리고 벨 연구소의 유닉스 개발팀의 일화와 유닉스의 성장 쇠퇴 전과정을 볼수 습니다. 소프트웨어 지망생과 옛날 유닉스 시절에 대한 향수가 있는 분이라면 이책에서 옛날에는 그랬지 하면서 이책을 재밌게 읽을수 있을 거라 생각합니다. 이책은 실용서가 아닌 교양서로 서버 개발자가 아니라도 이책을 읽는데 크게 무리가 없을거라 생각합니다. 유닉스의 역사에 대해서 관심이 있는 분이라면 한번쯤 읽어 보시면 좋을거라 생각합니다.



한빛 미디어 <나는 리뷰어다> 7월!

오랜만에 리뷰어를 하게 되었습니다. 이번에는 유닉스의 역사가 담긴 책을 선택했습니다. (8월인데 왜 7월이냐면 7월 도서이지만 8월까지 작성하는 것이므로... 타이틀은 7월입니다.)

 

브라이언 커니핸이 들려주는 UNIX의 탄생과 발전 과정, 천재 개발자와 기여자들의 이야기

『유닉스의 탄생』은 유닉스의 역사를 기록한 책이자 유닉스 개발 현장에 있던 이들의 회고록이다. 유닉스가 무엇인지, 어떤 이유로 개발되었는지, 어떤 과정을 거쳐 발전했는지 꼼꼼하게 기록했다. 동시에 무한한 창조성을 발휘하며 수많은 가능성에 도전한 천재들의 이야기와 자유로운 연구 환경을 제공한 벨 연구소 현장도 생생하게 담았다. 이 책을 읽으며 새로운 것을 창조하고 더 나은 세상을 만드는 일의 기쁨을 함께 느껴보길 바란다.


유닉스를 만들기까지

이 책은 제목에서 강조하듯이 유닉스의 탄생이 담겨있다. 간간히 적힌 낯익은 이름들이 꽤나 반갑기도 했다. 컴퓨터는 주판부터 시작해 지금의 개인용 컴퓨터까지 발전했는데, 유닉스는 그 컴퓨터 안에 들어가는 OS의 한 종류다.

유닉스는 대부분의 현대적 컴퓨터 운영체제의 원형이 된 OS로 우리가 손에서 뗄 수 없는 안드로이드, iOS도 유닉스를 기반으로 만들어졌다.

유닉스는 켄 톰프슨과 데니스 리치를 중심으로 많은 사람들의 손을 거쳤고 유닉스의 특징이자 많이 사용하는 파이프grep 등을 개발하게 된 이야기도 함께 담여있어 명령어를 쓸 때마다 기억이 나게 된다.

특히 저자는 전공 수업 때 많이 들은 리처드 해밍(해밍 부호 개발), 비야네 스트롭스트룹 (C++ 개발), 데니스 리치 (C, 유닉스 개발) 등과 함께 일하거나 이야기를 나눈 이야기를 읽으면서 신기하기도 했다. (마치 전설 속 이야기 같다.)

또 벨 연구소의 에피소드가 함께 있어 책을 읽는 데 한층 재미를 더했다.

 

기술 뒤에 사람있어요

앱 개발을 할 때 작은 기능 하나를 만드는 데도 몇 명이 함께 하게 된다. (기획-디자인-서버-클라이언트, 각 1명씩 해도 4명이다.)

유닉스와 같이 대형 프로그램을 만드는 데는 더 많은 인력과 회사의 지원이 있어야 할 것이다. 또 함께 일하는 사람들이 얼마나 잘 융합되서 하는지.. 최상의 팀으로 만들어진 덕에 유닉스가 이런 결과를 낳게 된 것이 아닐까 생각했다.

조직은 어때야 해! 라고 직접적으로 적힌 것은 없지만 책을 읽으면서 느끼게 됐다.

좋은 조직이란 무엇인가, 어떻게 좋은 조직이 될 수 있는 가를 생각할 수 있었고 긴 여운으로 남았다.

 

"우리가 지키고자 했던 것은 그저 프로그래밍을 하기에 좋은 환경이 아니라 유대감을 형성할 수 있는 시스템이었습니다. 우리는 경험을 통해 공동 컴퓨팅의 본질이 (...) 단지 천공기 대신에 터미널로 프로그램을 입력하는 것이 아니라 밀접한 소통을 북돋우는 것이라는 점을 알았습니다."

  • 데니스 리치, 『The Evolution of the Unix Time-sharing System』, 1984년 10월

 

1595946826060-0.jpg

 

 

이번 포스트에서는 유닉스의 탄생이라는 책을 리뷰해보려 한다. 우리나라에서는 OS 플랫폼쪽에 관심이 많이 없는것이 사실이라.. 이런책이 좀 더 많이나오고 OS 관련 중요성이 더 부각되었으면 좋겠다는 생각이 든다. 아무튼, 이 책의 주 타겟 독자층은 아무래도 OS에 대해 관심이 있거나, 막 Xnix 나 OS X 을 이용하면서 그 근원이 궁금한 사람들일 것이다. 또한 대부분의 사람들이 윈도우즈로 컴퓨터를 입문하는 우리나라에서, Unix의 뿌리를 둔 OS들은 대중들에게 그렇게 익숙하지는 않을 것이다. 그러므로 이책을 접하는 대중들에게는 컴퓨터가 지금처럼 일상적으로 이용되기까지 어떤 노력들이 있었는지, 당연하게 이용하던 운영체제의 기본적 기능들이 어떻게 형성되었는지 이해하는 좋은 기회가 될 것이며, 이제 막 관심을 가지는 독자들은 막연하게 혹은 파편적으로 알고 있는 내용들을 정리하는 기회가 될 것이다.

 

리뷰를 시작하기전에, 기회가된다면 이 동영상을 보는것도 추천한다. https://www.youtube.com/watch?v=tc4ROCJYbm0 이 동영상은 벨렙이서 1980년대에 유닉스 쉘에 대해 설명한 것인데, 이 책의 저자의 브라이언 커니헨의 젊을적 댄디함(?)이 압권이다. 단순히 유닉스에 관한 것 외에 눈여겨 볼점들이 많다. 예를들면, 다리를 책상에 꼬아 올리고 무릎에 키보드를 토독이며 유닉스의 컨셉과 기능을 설명하는 모습은 지금봐도 멋있다는 것과, 다른 네임드들을 보면 예나 지금이나 시대를 불문하고 공과인들은 패션감각이 떨어지는 것을 알 수 있다. 이러한 패션테러리스트들의 사이에서 브라이언의 시대를 앞서간 스타일리시함이 빛나는 영상이다... 여담으로 눈에 띄는 댓글은, 자기가 지금까지 본 동영상중에 이렇게 많은 마법사들이 한번에 등장하는 영상은 본적이 없다는 것이었다. 등장하는 사람들이 대부분 크게 컴퓨터 공학 발전에 기여한 사람들인데, 이 책에 인물탐방에 소개된 사람도 있고 아닌 사람들도 있으니 찾아보기를 추천한다. :)

 

이 책의 구성은 장으로 되어있지만, 내용을 중심으로 크게 3개의 챕터로 나눌 수 있다. 1장부터 3장까지는 유닉스가 탄생하게된 시대적 필요성의 배경과, 그리고 유닉스 이전의 운영체제들을 이야기하고 있다. 이 부분을 좀 더 잘 이해하려면, 운영체제 자체의 본래 의미를 다시 생각해보는 것이 좋다. 시대를 관통하여 변하지 않는 운영체제의 핵심 기능은, 컴퓨터 하드웨어를 잘 이용하게 하자!는 것이다. 과거에는 컴퓨터가 오늘날처럼 보편화되어 있지 않았기 때문에, 일반 유저들은 단말 (터미널)을 통해서 거대한 컴퓨터에 접속하여 사용했다. 그러므로 많은 수의 유저들이 하나의 기기를 공유하여 사용했기 때문에, 운영체제는 하나의 컴퓨터 하드웨어를 여러명에게 각자 자신만의 기기를 활용하는 것 처럼 보여줘야 했다. 즉, 컴퓨터 하드웨어를 어러 유저에게 멀티플렉싱 하는 것인데, 멀티플렉싱 방법으로는 크게 시간과 공간에 대한 것이 있다. 시분할은 한 사람마다 컴퓨터의 최대 점유시간을 정해두고 사용하게 하며, 공간분할은 컴퓨터에 자원을 유저마다 조금씩 나눠서 사용하게 하는 것이라 보면 된다. 이러한 이해를 가지고, 이 챕터를 읽는다면 그 당시에 유닉스가 왜 파격적인 운영체제였는지 알 수 있다.

 

3개의 챕터중 두번째는 4~5장으로, 유닉스의 기능에 대한 것인데 컴퓨터 하드웨어 활용을 위한 디자인 외에, 지금 우리가 말하는 운영체제의 기능들을 유닉스가 어떻게 정립하였는지 보여준다. 일론 머스크의 스페이스X는 인공위성관련 스타링크 프로젝트와 우주선 관련 프로젝트들을 진행하고 있는데, 놀랍게 운영체제로 리눅스를 사용하고 있다 (참조 https://www.zdnet.com/article/spacex-weve-launched-32000-linux-computers-into-space-for-starlink-internet/). 리눅스는 사실상 그 뿌리가 유닉스에 있으므로, 이 오래전에 만들어진 운영체제가 최첨단 프로젝트에 사용되고 있는 것이다. 이렇게 고인물인 운영체제가 지금까지도 널리 사용되는 것은, 이때에 유닉스가 운영체제의 기능들을 얼마나 잘 정립했는지 입증하고 있다. 지금도 많이 사용되는 유닉스의 기능들을 설명하고 있으니, 이 챕터를 잘 읽어본다면 현재의 운영체제 활용에 도움이 될 것이다. 마지막으로 6~9장은, 유닉스가 상업적으로 활용되었던 과정과 왜 지금의 리눅스나 다른 후손들이 생겨나게 되었는지, 그리고 유닉스 프로젝트의 역사를 돌아보며 우리가 배워야할 점이 무엇인지 설명한다. 프로젝트 그 자체로도 엄청나게 다사다난했고, 그 명맥이 아직까지도 전세계에 큰 영향력을 가지는 프로젝트였기 때문에, 마지막 챕터도 잘 읽어보기를 추천한다.

 

전체적으로 정리를 해보자면, 전문적인 기술서적은 아니지만 편하게 교양서적처럼 읽을 수 있는 책이며, 운영체제에 관련된 일을 하는 사람들부터 일반 대중까지 누구나 읽을 수 있는 책이다. 한편으로 드는 생각은, 이런 오랜 역사와 같이 사회적인 관심을 가지고 지속적으로 투자하고 발전하니까 iOS나 안드로이드 같은 플랫폼이 미국에서 나올 수 있었다는 것과, 이런 시스템 개발의 경험을 기반으로 IT 플랫폼 관련 프로젝트들을 선도하고있다는 생각이 든다. 아무튼, 이런 거창한 것 외에도 IT가 일상에 스며들은 지금, 많은 사람들에게 흥미로운 발전과정을 설명해주는 책이라 읽어보는 것을 추천한다.

 

이 책은 유닉스의 역사를 기록한 책이고 또한 유닉스 개발 현장에 있던 벨 연구소 직원의 회고록 같은 느낌을 받습니다.

책을 읽으면서 내내 벨 연구소 내에서 직접 근무하면서 같이 고민하고 유닉스의 새로운 프로토타입을 만들어가는 과정 하나 하나를 생동감 있게 그려내 컴퓨터의 역사에 흥미를 갖는 학생이라면 이책을 읽어 볼 것을 추천 합니다.

 

이 책의 구성을 살펴 보면 다음과 같이 구성이 되어 있습니다.

1부 벨연구소

2부 유닉스프로토타입

3부 유닉스1판

4부 유닉스6판

5부 유닉스7판

6부 연구소를 넘어서

7부 사업화

8부 후손

9부 유산

 

1부 벨연구소 편에서는

세번째 튜링상 수상자인 리처드가 저자에게 말한

"사람들에게 사전과 문법 규칙을 주고서 자, 당신은 이제 훌륭한 프로그래머예요 라고 말하지"

라는 글귀가 눈에 띄이네요.

글쓰기에서 필요한 사전과 문법은 기본이지만 글쓰기 연습이 꾸준히 이루어져야 하는 것과 마찬가지로 프로그래머는 프로그래밍 언어와 문법만 가지고 훌륭한 프로그래머가 될수는 없다는 말입니다.

저와 같이 공부하고 있는 학생들도 그래서 지금도 열심히 프로그래밍에 관한 알고리즘과 수학적인 능력을 열심히 키워 나가고 있거든요.^^

2부 유닉스프로토타입편에서는

벨연구소에서 근무하던 켄톰프슨이 PDP-7의 성능을 개선하기 위해서 3주간 운영체제를 만들었던 이야기가 흥미 있었습니다.

그의 메일 내용을 살펴 보면 단 3주간에 "시분할에 가까운( 그 당시 초창기에는 완벽한 시분할이 되지는 않았던것 같네요.) exec 호출,셸,편집기와 어셈블러가 빠져서 각각 1주씩 3주만에 그 기능을 구현했다" 고 되어 있네요.

저도 프로그래밍 쪽 일을 하지만 단 3주만에 이 세가지 기능을 모두 구현했다는데 정말 대단한 분이라는 생각을 하게 되었네요.^^

3부 유닉스1판(1971) 

여기서는 유닉스가 만들어지는 계기와 데니스의 경험을 바탕으로 C언어 탄생의 역사까지도 기록이 되어 있습니다. C언어 탄생으로 운영체제를 유지보수하고 수정하는 것이 수월해 지면서 1973년에는 원래있던 유닉스를 C언어로 바꿔서 작성하는 작업이 완료 되었습니다.

4부 유닉스6판(1975)

유닉스는 대략 6개월마다 기능이 개선되었고 1975년 5월에는 획기적인 아이디어가 탑재 됩니다.

- 분리가능한 볼륨을 지원하는 계층적 파일 시스템

- 서로 호환되는 파일, 디바이스,프로세스 간 입출력

- 비동기 프로세스를 시작하는 기능

- 사용자 단위로 선택 가능한 시스템 명령어

- 십여가지 언어를 포함하는 100개 이상의 서브시스템

현재 리눅스를 다뤄보셨다면 익숙한 기능들일 텐데요. 셀스크립트나  파이프 기능과 같이 많이 사용되는 기능들이 이때 추가 되었다고 보시면 될것 같네요.

5부 유닉스7판(1979)

유닉스 7판은 6판에 비해 4년후에 발표 되었습니다.

7판에서는 리눅스사용자라면 표준 셸로 사용하고 있는 본셸(Bourne Again Shell을 뜻함) 기능 및 Yacc,Lex 컴파일러가 추가 되었는데 이러한 기능들에 대해 상세히 설명을 하고 있네요.

 

이 책을 읽다 보면 컴퓨터 초창기 천공카드로 프로그래밍 하던 시절부터 어셈블리어,포트란,C언어 등 컴퓨터의 역사에 대해 전반적으로 훑어 볼 수 있는데 실제로 벨 연구소에서 그 당시 속으로 빠져 들어가서 하나하나 개척해 나가는 생동감을 느낄 수 있을것 같네요.

이 책은

1. 리눅스 공부를 하고 계신 분들이나 리눅스 관련 자격증을 준비하고 계신 분들에게 리눅스의 전신인 유닉스를 이야기처럼 공부하다 보면 훨씬 더 이해의 폭이 넓어질것 같네요.

2. 디미고 혹은 소프트웨어 특기자 전형을 준비하는 학생들이 이 책을 읽어 본다면 컴퓨터의 흐름의 전반적인 역사를 훑어 볼 수 있기 때문에 면접시에 도움이 될것 같습니다.

3. 유닉스의 역사에 대해 알고 싶은 분들이라면 당연히 읽어 보시길 추천합니다.

장마 때문에 빗소리가 우렁찬 밤에 위대한 역사를 읽어내려갔다. 속독했다고는 하지만 주말 한 시간이 눈 깜짝할 사이에 사라졌다. 한빛미디어에서 내놓은 유닉스의 탄생이 바로 그 원인이다. 십수년간 IT 업계에서 커널 개발을 시작으로 대부분의 시간을 백엔드 개발, 인프라와 보냈다. 그리고 그 중심에는 항상 *NIX가 있었다. 그리고 개인적인 관심으로 *NIX 관련해서 여러 문헌을 읽었지만, 이 책은 인터넷에 돌아다니는 모든 관심사의 종합 본이다.

 

위대한 역사

 

 

저자인 브라이언 커니핸은 30년 동안 벨 연구소의 컴퓨팅 과학 연구 센터에서 일했는데 그가 지켜본 역사를 이 책에 녹여냈다. 어쩌면 자서전처럼 보일지도 모르는 책이지만 덤덤하게 이야기하는 역사에 소름이 끼칠 지경. 그의 과거 행적을 현재의 내가 누리고 있다. 근래에 한빛미디어에서 출간되는 책으로는 보기 드물게 용지의 질이 떨어지는데 (게다가 흑백) 이 책은 그런 건 아무래도 상관이 없다. 오히려 책 냄새조차 향기로 느껴지고, 카페 한쪽에 비치되어 있어도 어색하지 않을 듯한 비주얼. 책의 주제와 내용, 그리고 용지. 삼박자가 절묘하게 어우러져서 더할 나위 없다.

 

내용이 용지의 질을 초월한다

 

 

내용은 역사적인 이야기가 대부분이고 특히 유닉스의 여러 가지 명령어 개발의 뒷이야기가 너무 재미있게 구성되어 있다. 어쩌면 잊고 있었던 퍼즐 조각까지 다시 맞춰지는 기분이랄까. 예를 들면 Bash(Bourne-again shell)의 어원 같은 걸 외우고 다니는 사람은 없다. 특히 첫 직장생활을 Kernel Programming으로 시작했기 때문에 C 언어에 대한 이야기가 특히 재미있다. 메모리 할당에 대한 역사적인 이야기라니. 두근두근하지 않을 이유가 전혀 없지. 거기에 번역도 깔끔하다. 번역서라는 느낌을 책장을 덮을 때까지 한 번도 느끼지 못했을 지경이다. 그동안 리뷰한 책에 대해서 굳이 내용에 별점을 추가하지는 않았는데 이 책은 10점 만점에 10점. 최고다.

현대를 살아가는 개발자에게 서버는 서버요, 클라우드는 클라우드일지라도 자신이 다루고 있는 인프라에 대한 역사적인 내용까지 알아간다면 일하는 즐거움이 배가 되지 않을까? 역사를 잊은 민족에게 미래가 없다는 말까지 붙이면 과장되지만 우리가 하는 프로그래밍의 근간이 되는 역사를 교양쯤으로 생각한다면 이 책의 일독을 권한다. 개발지식이 없더라도 어렵지 않게 읽힐 것이다. 이 책의 향기에 빠져보시라.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
유닉스의 탄생
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
유닉스의 탄생
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
유닉스의 탄생
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 책0