9P by GN⁺ 1일전 | ★ favorite | 댓글 1개
  • 82세의 Ken Thompson이 Unix 운영체제의 탄생 초기와 Bell Labs 시절의 자유로운 실험 문화를 회상
  • 그는 Multics 프로젝트 실패 이후 남은 컴퓨터를 활용해 우연히 Unix의 핵심 구조를 구축하게 된 과정을 설명
  • Unix 개발팀은 PDP-11을 확보해 비공식적으로 운영체제를 발전시켰으며, 내부의 유머와 동료애로 가득한 “Unix Room”을 형성
  • Bell Labs의 개방적 환경은 C 언어와 Unix의 성장, 그리고 이후 Go 언어 개발로 이어지는 협업 문화의 기반이 됨
  • Thompson은 Unix가 ‘오픈소스 이전의 개방성’을 실천한 공동체적 실험이었다고 강조하며, 그 정신이 현대 기술 문화에 남아 있다고 평가

Unix의 탄생과 Bell Labs의 실험 문화

  • Ken Thompson은 1960년대 중반 Bell Labs에서 Multics 프로젝트에 참여했으나, 시스템이 “크고 느리고 비싸며 실패가 예정된 프로젝트”였다고 회상
    • Multics 종료 후 남은 대형 컴퓨터를 활용해 자신의 실험을 이어가며 데이터 저장장치 CRAM과 드럼 메모리를 개선하려 시도
    • 메모리 읽기 속도를 높이기 위한 실험 중, 자신도 모르게 운영체제의 형태를 갖춘 시스템을 만들게 됨
  • 그는 Bell Labs가 “운영체제 연구를 중단하라”는 지시를 내렸음에도 불구하고 비공식적으로 Unix의 기초를 완성
    • 파일시스템, 디스크 드라이버, I/O 장치 등 핵심 구성요소를 갖춘 초기 Unix가 탄생

초기 Unix 커뮤니티와 PDP-11의 등장

  • Unix의 첫 사용자들은 Dennis Ritchie, Doug McIlroy, Robert Morris, Brian Kernighan 등으로, 사용자 ID가 한 자리 숫자였을 정도로 소규모였음
    • Thompson은 Rudd Canaday와 함께 칠판 위에서 파일시스템 설계를 진행했고, Bell Labs의 전화 녹취 시스템을 활용해 문서화
  • Joe Ossanna는 Bell Labs의 관료적 절차를 우회해 PDP-11 컴퓨터를 확보, Unix 개발의 전환점을 마련
    • 명목상 “워드 프로세싱용”으로 구입된 PDP-11이 실제로는 Unix 개발의 핵심 장비로 사용
    • 특허부서 비서들이 Unix 시스템으로 문서를 작성하면서 첫 외부 사용자층이 형성

“Unix Room”과 자유로운 공동체

  • PDP-11은 Bell Labs 6층의 한 공간에 설치되었고, 이곳은 곧 ‘Unix Room’이라 불리는 개발자들의 중심지로 발전
    • 낡은 자판기와 창고를 치운 공간에 두 번째 PDP-11이 추가되며 네트워킹과 문서 조판 논의의 중심지로 변모
    • 전화선이 연결된 자체 PBX 시스템까지 갖춘 비공식 연구 허브로 기능
  • Thompson은 “Unix Room에서 자물쇠를 따고 장난을 치던 시절”을 회상
    • 주차 위반으로 부착된 ‘부트’를 훔쳐 숨기는 등 유머와 반항이 공존한 실험적 분위기 묘사
    • 보안 책임자가 “부츠를 돌려주면 비서들을 괴롭히지 않겠다”고 제안하며 협상으로 마무리된 일화 소개
  • Dennis Ritchie는 Unix를 “공동체가 형성될 수 있는 시스템”으로 표현했으며, 정기적인 ‘Unix Lunch’ 가 아이디어 교류의 장이 됨

Bell Labs의 개방성과 Unix의 성장

  • Thompson은 압박 없는 연구 환경과 자율성이 Unix와 C 언어의 성공을 이끌었다고 평가
    • Bell Labs는 “무엇이든 시도할 수 있는 분위기”였으며, 다양한 전공자들이 협력
  • 언어학자 Lee McMahon은 기계판독 사전과 Federalist Papers의 전자본을 확보해 Unix 개발에 기여
    • 텍스트가 편집기 ed에 들어가지 않자, Thompson은 패턴 검색 도구 grep 을 개발
  • Unix는 Bell Labs 내부에서 행정 업무와 전화 교환 시스템 등으로 확산되며 조직 전반의 핵심 인프라로 자리

오픈소스 이전의 개방 철학

  • Thompson은 Richard Stallman이 오픈소스 철학을 발전시켰지만, Unix에도 그 정신이 있었다고 언급
    • 당시 Unix는 파일 보호 기능이 있었지만, 실제로는 모든 소스 코드가 누구나 수정 가능한 상태로 유지
    • “손대면 그건 네 것”이라는 암묵적 규칙 아래, 공동 창작과 실험이 일상화된 개발 문화 형성
  • 동료 P. J. Plauger의 디렉터리에 저장된 소설 초고를 모두가 읽고 의견을 남기던 사례는 협업과 개방의 상징적 일화로 소개
    • 이러한 문화가 ‘칠판에 함께 쓰는’ 공동체적 개발 방식을 만들어 냄
  • 이후 Bell Labs의 Plan 9 프로젝트에서 나온 아이디어 일부가 UTF-8 표준으로 발전, 현대 웹의 기반이 됨

Bell Labs 이후의 여정과 Go 언어

  • Thompson은 2000년 Bell 시스템 해체 이후 Bell Labs를 떠나며 변화된 조직 문화를 언급
    • “무엇을 하는지 정당화해야 하는 분위기”가 되어 연구의 자유가 사라졌다고 평가
  • 이후 네트워크 장비 회사 Entrisphere에서 6년간 근무 후, Google로 이직
    • 당시 Entrisphere의 상사가 Google로 옮기며 Thompson을 권유했고, Eric Schmidt가 Bell Labs 시절 동료였음
  • Google에서 Android 보안 검토에 참여한 뒤, Rob Pike와 함께 Go 언어 개발팀을 구성
    • Bell Labs 시절의 협업 관계가 30년 후 새로운 프로그래밍 언어 창조로 이어진 사례로 평가

결론: 호기심과 공동체가 만든 기술 유산

  • Ken Thompson의 회상은 Unix가 단순한 기술이 아니라 자유로운 탐구와 공동체 정신의 산물임을 보여줌
  • Bell Labs의 개방적 환경은 현대 오픈소스 문화의 원형으로 작용
  • 그의 경험은 창의성과 협업이 기술 혁신의 핵심 동력임을 상기시키는 사례로 남음
Hacker News 의견
  • 여러 성공적인 소프트웨어 프로젝트들이 공유한 창의적 협업과 높은 신뢰의 정신이 인상적임
    이런 문화는 MBA식 사고나 대기업의 관료적 환경과는 정반대의 방향임
    Unix, GNU, Linux, 초기 Python, 그리고 초기 Rockstar Games 같은 사례들이 떠오름

    • “높은 신뢰”가 있는 사회나 프로젝트, 회사에서는 많은 문제가 자연스럽게 사라짐
    • 대기업에서 오래 일하다가 작은 회사로 옮긴 경험상, 신뢰 기반 환경이 아니면 진짜로 아무것도 이루기 어려움
      관료주의가 결국 모든 걸 잠식하고, 관리자들은 벽을 세우며 비밀주의로 신뢰를 갉아먹음
      새로운 사람은 시스템을 이해하기도 어렵고, 새로운 아이디어는 시작도 못 하고 죽음
      큰 조직도 돈은 벌 수 있지만, 변화를 만들고 싶다면 신뢰가 필수적임
    • Bell Telephone 독점 시절의 Ma Bell도 거대한 대기업이었지만, 당시에는 돈이 넘쳐서 투기적 연구 프로젝트를 지원할 여유가 있었음
      지금의 VC들이 돈을 뿌리는 모습과 비슷한 분위기였음
    • 여기에 Ken Olsen의 DEC과 Sun Microsystems도 추가하고 싶음
    • Rockstar Games가 이 리스트에 있는 게 의외라서, 그 이유가 궁금함
  • 초기 Unix 사용자가 특허 비서나 행정직 직원들이었다는 점이 흥미로움
    사람들이 자발적으로 좋아서 쓰기 시작한 시스템이라, 현실적인 압박이 생겼고 그게 건강한 방향으로 작용했음
    실험적인 아이디어를 시도하더라도 실제 사용자들이 매일 쓰는 시스템을 망가뜨릴 수는 없었음
    Linux가 “그냥 취미”로 시작된 것처럼, 초기 Unix도 거대한 비전보다는 쓸모 있는 도구를 만들려는 실험에서 출발했음
    물론 Bell Labs라는 환경이 큰 이점을 줬음

  • 도난당한 보안 부츠 사건이 흥미로웠음
    공식 절차가 아니라 보안요원과의 직접 협상으로 해결된 점이 인상적임

  • Thompson이 Rudd Canaday와 함께 칠판에서 Unix 파일 시스템을 설계하고, Bell Labs의 받아쓰기 전화 서비스를 이용했다는 일화가 멋짐
    지금은 일반인도 음성 인식 서비스를 쉽게 쓰지만, 당시엔 정말 혁신적이었음
    물론 그때는 AI가 아니라 비서가 받아썼겠지만, Bell Labs의 기술력을 생각하면 완전히 불가능한 일도 아니었을 것 같음

    • 나는 글보다 말로 생각이 더 잘 정리되는 타입
      글을 쓰면 계속 수정하고 싶어져서 오히려 방해가 됨
  • 초창기 도구들이 mesg, talk처럼 커뮤니티 형성을 염두에 두고 설계된 점이 흥미로움
    반쯤 열린 구조 덕분에 다른 사람의 홈 디렉토리에 들어가서 파일을 보는 것도 가능했음

    • 하지만 그건 Unix가 아니라 ITS(Information Timesharing System) 의 철학임
      ITS는 권한 제한이 없고 협업을 장려했지만, Unix 서버는 대부분 홈 디렉토리를 0700으로 잠궜음
    • “다른 사람의 사무실에 들어가서 책상을 뒤져보는 느낌”이라는 비유가 절묘함
  • Ken과 dmr이 함께 서 있는 사진의 캡션에 “공동체가 형성될 수 있는 시스템을 만들고 싶었다”는 문구가 있음
    이는 Perl 소스 파일 상단의 《반지의 제왕》 인용문을 떠올리게 함
    관련 코드는 GitHub 링크에서 볼 수 있음

  • Ken이 Go 언어에 기여한 부분은 Git 저장소에서 모두 확인 가능함
    스포일러는 없지만 꽤 재미있는 코드들이 있음

  • 1981년 하드코어 펑크 앨범 This is Boston not LA에 수록된 “Radio UNIX USA”라는 곡의 제목이 궁금함
    가사는 Unix와 전혀 관련이 없는데, 밴드가 Boston 출신이라 MIT와의 연관성이 있을지도 모름

    • 가사에 “no balls”라는 표현이 반복되는데, Unix가 ‘eunuchs(거세된 남자)’의 말장난일 가능성이 큼
      미국 라디오 방송국의 4글자 호출부호 규칙을 패러디한 제목일 수도 있음
  • 이 글이 흥미로웠다면 Steven Levy의 《Hackers》 를 추천함
    MIT AI Lab에서 Homebrew Computer Club, 초기 게임 프로그래머까지 이어지는 해커 문화의 역사를 다룸
    나도 어릴 때 읽고 프로그래밍에 빠졌고, 지금도 스타트업에서 비슷한 협업의 즐거움을 느끼고 있음

    • Walter Isaacson의 《The Innovators》 도 꼭 읽어볼 만함
      Goodreads 링크
    • 나 역시 80년대에 《Hackers》를 읽고 실리콘밸리 프로그래머로 진로를 바꾸고, 나중엔 박사 학위를 받아 대학에서 프로그래밍을 가르치게 되었음
  • Brian Kernighan의 《Unix: A History and a Memoir》 도 훌륭한 읽을거리임