spaci***
2020-08-20

현대 운영체제의 원형인 유닉스의 역사에 관한 책. 2019년 유닉스 탄생 50주년을 맞아, 저명한 컴퓨터 과학자 브라이언 커니핸이 유닉스 탄생과 발전 과정, 천재 개발자와 기여자들의 이야기를 직접 썼다.
유닉스는 미닉스, 리눅스의 모태가 된 현대 운영체제의 시초라고 할 수 있는 대단한 운영체제이다. 맥OS도 기반은 유닉스에 두고 있는 것으로 알고있다.
윈도우도 유닉스에서 많은 부분을 참고하고 배워서 현재의 독자적인 운영체제로 발전했음을 추측해 볼 수 있다. 당시 시대상황의 압도적인 오픈소스 운영체제로서의 저력을 생각한다면 그것이 최선의 방법이었을 것이다. 물론 유닉스 계열과 MS계열의 운영체제는 기본적으로 파일시스템 포맷부터 여러가지 점들이 다르다.

세간에 이런말이 있다. 유닉스에서 파생된 리눅스에 기여할 실력이 되기만 해도 어딜가든 먹고 산다고..
그만큼 초기의 운영체제 역시 어셈블리로 작성되어 만만치 않았겠지만 C언어로 작성된 현대의 운영체제 역시 분석이 만만치가 않다. 책 몇권으로 담아낼 단계는 이미 오래전에 지났다.
여기서 전체는 아니지만, 유닉스에 기여한 사람들의 명단을 2장 정도 소개하고 싶다. 다들 컴퓨터 역사에 내로라 하는 인물들이다. 걍 동내에서 입상하듯이 세계적인 상을 수상하는 사람들로 보면 된다.
상 받고, 어 거기 적당한데 놔둬. 하고 일 할 정도의 덕후들..
AT&T 연구소들은 아래와 같이 배치되어 있었다고 한다. 존경심이 나올수 밖에 없는 인물들이 일 한 곳이라 하니 건물들도 그냥 멋있어 보인다. 희미하게 보이는 글씨에도 나타나지만 이때는 컴퓨터 공학이란게 있기 전으로 보인다. 물리학, 화학, 수학등 다양한 자연과학, 공학자들이 컴퓨터를 완성시켜 나갔던 시기라고
생각된다. 트랜지스터도 이곳에서 발명되지 않았던가?
나는 컴퓨터 공학과가 물리, 수학등의 학과에서 따로 분리된 것이 조금은 유감이다. 컴퓨터의 기반은 자연과학에 있고 자연과학과 컴퓨터를 함께 배우는게 좋다고 생각한다. 물론 데니스 리치가 수학에만 골몰 했다면 현재의 C언어는 나오지 않았을 것이고 유닉스의 발전은 한참 늦어졌을 것이지만 이건 예외로 해두고 싶다.

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

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

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

아래는 리누즈 토르발즈의 사진이다. 그냥 재미로 유닉스를 기반으로 만들었다고 하는 리눅스는 현재 전 세계의 수많은 서버 컴퓨터에서 사용되고 있다. 무료 OS이고 강력하고 안정적이다. 기존 소스 관리 저장소가 유료화 되어 마이그레이션할 저장소를 고민하고 찾다가 맘에 드는게 도저히 없어 새로 Git이란 저장소를 만들어 버렸고 그 시간이 2주밖에 안 걸렸다는 얘기는 매우 유명하다. 그 정도 실력을 갖추고 있으면 왜 고민을 했는지 조금 의문이 든다. 그냥 본인이 처음부터 만들어 버리면 되었을 걸..그래도 가급적 역사가 있는 안정성이 확보된 저장소를 더 선호했으리라 추측해 본다.
현대에 있어 유닉스는 거대한 멋진 OS로 성장했음은 분명하다. 이에 파생된 BSD, 리눅스, 맥OS 들도 모두 성공했다. 유닉스의 발전은 이 한권의 책에 다 담아내지 못할 만큼 많은 에피소드가 있었음에 분명하다.
일단 소스코드 양이 어마무시 하다. 운영체제를 개발한다는 것은 매우 매력적인 일이다. 현대에 있어 운영체제는 더 이상 독자적으로 개발할 수 있는 영역을 지난지 오래라고 볼 수 있다. 물론 슈퍼 루키가 맘먹고 덤벼들면 그건 또 다른 이야기다. 어쨋든 상용 수준의 OS 개발이 이전보다 쉽지 않아진건 사실이다. 더군다나 디바이스 생태계, 소프트웨어 생태계가 구축되어 대중의 인기를 얻어야 계속해서 수명을 이어가기에도 유리하다.
이 책을 통해 유닉스의 발전 과정을 소설을 읽듯이 재밌게 읽을 수 있었다. 쉘 스크립트나 유닉스의 유명한 명령어들이 1주일 단위로 하나씩 탄생하는 과정을 읽을때 마다 놀라움을 감출 수 없었다. 이런게 진정한 오픈소스 생태계 개발의 이데아가 아닌가 싶을 정도로 감동했다.
앞으로 유닉스, 리눅스와 관련된 운영체제들을 배우고 이해하려고 노력해야 겠다고 생각이 들었다. 그 첫 걸음으로 교육용 운영체제로 개발된 미닉스를 이해하는 것을 시작으로 하면 어떨까란 의문을 갖고 이만 리뷰를 마치고자 한다.