
Computer가 루슨트 벨 연구소에서 켄 톰프슨(Ken Thompson)을 만나 유닉스 초기 개발과 분산 컴퓨팅 작업, 소프트웨어 설계에 관한 생각을 들었다. 톰프슨은 유닉스와 Plan 9, Inferno의 공동 창작자이며, 인터뷰 당시 루슨트에서 IP 전화·데이터 서비스를 위한 PathStar Access Server 개발에 참여하고 있었다.
톰프슨은 자신이 작은 구성 요소에서 출발해 시스템을 쌓아 올리는 상향식 사고를 한다고 말했다. 복잡한 시스템을 층층이 설명하는 하향식 접근은 이해하기 어렵지만, 서로 다른 사고방식이 모두 필요하다고 덧붙였다. 그는 컴퓨터 과학에 서로 다른 관점이 줄어드는 현상을 우려하면서도, 새로운 아이디어는 낯선 시각에서 나올 수 있다고 봤다.
Plan 9와 Inferno처럼 적은 수의 추상화를 일관되게 쓰는 방식은 소수의 사람이 구현 과정에서 긴밀히 논의한 결과라고 설명했다. 벨 연구소 컴퓨팅 과학 연구 센터에는 팀이나 리더가 정해져 있지 않았고, 보통 두세 명이 관심사를 공유해 작업을 시작했다. 기술 논쟁은 대안을 실제로 만들어 시험하는 방식으로 풀곤 했다고 말했다.
유닉스의 장점으로는 open, close, read, write라는 단순한 인터페이스를 꼽았다. 이 인터페이스는 셸 구현과 이식성을 뒷받침했다. 반면 원격 파일 시스템 개념을 충분히 다루지 못한 점은 큰 누락이었으며, 그 결과 시스템 호출이 계속 늘어났다고 회고했다. 이 문제는 Plan 9에서 더 나은 방식으로 해결됐다고 평가했다.
톰프슨은 유닉스가 멀틱스의 계층형 파일 시스템에서 아이디어를 얻었지만, 데이터와 프로그램을 구분하는 쪽을 택했다고 설명했다. 유닉스 초기 버전은 멀틱스 프로젝트가 해체된 뒤 PDP-7에서 시작됐고, 이후 데니스 리치와 더그 매킬로이의 비판을 거쳐 여러 차례 다시 작성됐다. 톰프슨은 유닉스의 확산을 값싼 소형 컴퓨터의 등장과 개방형 컴퓨팅 수요에 연결하면서도, 성공에는 우연한 요소가 컸다고 봤다.
Plan 9에서는 파일 시스템을 핵심 추상화로 삼아 읽고 쓸 수 있는 대상을 계층적 이름으로 선택하고, 이를 원격 채널로 확장한다. Inferno도 비슷한 방식이며, 그 위에 Limbo 언어 인터페이스를 둔다. 톰프슨은 Limbo가 C++나 Java보다 단순하고 실용적인 언어라고 평가했지만, 언어 자체는 주로 숀 도워드(Sean Dorward)의 작업이라고 선을 그었다.
인터뷰 당시 톰프슨은 루슨트의 개발 조직과 함께 IP 기반 전화·데이터 서비스를 제공하는 PathStar Access Server를 만들고 있었다. 설정 코드는 Inferno와 Limbo로 작성했으며, 실시간 음성을 유지하면서 부하를 높이는 서비스 품질 문제도 고려해야 한다고 설명했다. 전화 기능의 복잡한 상태 처리를 위해 유한 상태 기계 생성 언어를 만들었고, 이후 제라드 홀츠만(Gerard Holzmann)이 이를 상태 검증과 테스트용 전화 모델 구성에 활용했다고 전했다.
톰프슨은 컴퓨터 과학이 성숙기에 접어들어 상품화되고 있다고 봤으며, 운영체제 분야에서는 기존 응용 프로그램과 경쟁해야 하는 높은 진입 장벽을 지적했다. 다만 새로운 패러다임의 등장을 배제하지는 않았다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요