TECH 으로 돌아가기
TECH HACKER NEWS 7분 읽기 35 READS

테이프에 담긴 BSD의 시작: 빌 조이와 버클리가 유닉스를 퍼뜨린 방식

테이프에 담긴 BSD의 시작: 빌 조이와 버클리가 유닉스를 퍼뜨린 방식
SOURCE IMAGE · HACKER NEWS

오늘날 수많은 서버와 네트워크 스택, 그리고 macOS에 이르기까지 그 뿌리를 더듬어 올라가면 1970년대 후반 버클리 캘리포니아대의 한 대학원생에게 닿는다. 운영체제의 역사를 다룬 F/OSS Comics 연재는 BSD 유닉스의 태동기를 돌아보며, 소프트웨어가 어떻게 '제품'이 아니라 '배포'라는 형태로 확산되었는지를 보여준다. 1976년 켄 톰프슨이 벨 연구소로 복귀한 뒤, 빌 조이와 척 헤일리는 유닉스 커널을 직접 파고들기 시작했다. 커널을 더 빠르게 다듬어 보자는 호기심에서 출발한 작업이, 결국 독자적인 유닉스 계보의 출발점이 된다.

제품이 아니라 테이프로 퍼진 소프트웨어

1977년 초 빌 조이는 파스칼 시스템과 라인 편집기 ex(em에서 발전한 편집기)를 묶어 버클리 소프트웨어 배포판, 즉 BSD를 만들었다. 초기 BSD는 그 자체로 완결된 운영체제가 아니었다. 이미 유닉스가 설치된 시스템 위에 올려 쓰는 소프트웨어 모음에 가까웠다. 첫해 동안 약 30부가 발송됐다. BSD를 받으려면 AT&T의 유닉스 소스 라이선스가 먼저 필요했고, 버클리는 테이프와 배포 비용만 청구했다. 이미 유닉스 소스 라이선스를 가진 곳이라면 사실상 테이프 값과 우편료만 내면 됐다는 뜻이다.

이 파격적으로 낮은 가격 책정은 단순한 인심이 아니었다. 버클리에는 연구용 소프트웨어를 공유해 온 전통이 있었고, 자유언론운동과 히피 문화, 반전 운동 같은 지역적 분위기가 조이의 결정에 영향을 줬다고 전해진다. 덕분에 대학과 연구기관은 적은 라이선스 비용으로 소스 코드까지 포함한 유닉스를 손에 넣을 수 있었고, 이는 시스템 확산의 발판이 됐다. 반면 AT&T는 반독점 합의에 묶여 컴퓨터 사업에 나설 수 없었고, 유닉스를 상업 제품으로 팔 수도 없었다. 거대 통신사가 묶여 있던 자리에, 대학의 배포 문화가 빈틈을 메운 셈이다.

2BSD와 한 사람의 손으로 돌아간 배포

첫 배포 이후 조이는 사용자 피드백을 반영해 파스칼 시스템을 개선했고, ex의 비주얼 모드인 vi와 C 셸 등을 함께 묶어 2BSD를 내놓았다. 이듬해 동안 약 75개의 테이프가 발송됐다. 주목할 대목은 이 과정이 거의 조이 한 사람의 손으로 돌아갔다는 점이다. 그는 버그를 고치는 데 그치지 않고 모든 배포 요청을 직접 처리하고, BSD를 테이프에 복사해 우편으로 부치는 일까지 도맡았다. 오늘날 패키지 저장소와 자동 배포 파이프라인이 담당하는 역할을, 당시에는 개인의 노동이 감당했던 것이다.

전환점은 VAX의 등장이었다. 파테만 교수 연구실이 32비트에 1메가바이트 메모리를 갖춘 VAX를 들이면서, 벨 연구소가 만든 VAX용 유닉스 32/V도 함께 들어왔다. 그러나 32/V는 VAX 하드웨어의 가상 메모리 기능을 활용하지 않았다. 프로그램의 주소 공간이 물리 메모리 크기에 묶여 있었던 것이다. 1960년대 후반 MIT에서 시작된 컴퓨터 대수 시스템 Macsyma는 식의 인수분해, 미분, 적분 같은 기호 연산을 다뤘는데, 리처드 파테만 교수의 이 작업에는 물리 메모리보다 더 큰 주소 공간이 필요했다. 가상 메모리는 디스크 저장공간을 끌어와 물리 메모리보다 큰 주소 공간을 프로그램에 제공하는 기술이다.

가상 메모리, 그리고 3BSD의 완성

이 문제를 파고든 사람이 도메니코 페라리 교수 밑에서 공부하던 대학원생 오잘프 바바오글루였다. 지도교수의 요청으로 VAX 유닉스에 가상 메모리를 추가하는 일을 맡은 그를 조이가 도와, 가상 메모리 코드를 32/V에 통합하고 디버깅했다. VAX 사용자가 적은 연말이 오히려 작업에 유리했기에, 디버깅은 1978년 말 연휴 내내 이어졌고 1979년 1월에는 대부분의 버그가 잡혔다. 이후 조이는 ex, vi, C 셸 등 2BSD 도구들을 VAX로 이식했고, 파스칼 시스템 이식은 피터 케슬러와 마셜 커크 매쿠식이 맡았다. 이 프로그램들을 32/V 표준 유틸리티, 그리고 바바오글루와 조이가 통합·디버깅한 가상 메모리 커널과 함께 묶은 결과물이 3BSD이며, 1979년 12월 배포가 시작됐다.

3BSD는 단순한 버전 업그레이드 이상의 의미를 지닌다. 1969년부터 DARPA 지원 연구기관들을 잇던 ARPANET은 각 사이트가 서로 다른 컴퓨터와 운영체제를 쓰는 탓에 소프트웨어 이식과 재작성에 큰 비용을 치르고 있었다. 이 지점에서 DARPA는 유닉스의 이식성에 주목했고, 버클리가 3BSD를 연구기관들에 성공적으로 배포한 사실에도 눈길을 돌렸다. 즉 하나의 이식 가능한 운영체제가 이기종 네트워크의 분절 문제를 완화할 수 있다는 가능성이, 정부 자금과 대학의 배포 문화를 연결하는 계기가 된 것이다.

한국의 실무자 관점에서 이 이야기는 기술 그 자체보다 확산의 메커니즘을 되새기게 한다. 소스 코드 공개, 낮은 진입 비용, 사용자 피드백을 빠르게 반영하는 반복 개선, 그리고 그것을 실제로 나르는 누군가의 책임감이 결합될 때 하나의 소프트웨어가 생태계로 자라난다는 점이다. 다만 연재가 전하는 범위는 BSD의 형성 초기까지이며, 이후 BSD가 걸어간 라이선스 분쟁이나 상용화 과정, 현대적 파생물의 분화 같은 쟁점은 여기에 담겨 있지 않다. 당시의 저가 배포가 가능했던 배경에 AT&T의 반독점 제약이라는 특수한 조건이 깔려 있었다는 점도, 오늘의 오픈소스 전략에 그대로 대입하기 전에 염두에 둘 대목이다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://fosscomics.com/posts/13.%20BSD%20Unix%20Part%203%20-...
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...