F/OSS Comics #13: BSD Unix 3부 – BSD Unix의 시작

F/OSS Comics #13: BSD Unix, Part 3 – The Beginning of BSD Unix

fosscomics.com ▲ 214 댓글 30 joonehur

요약

빌 조이가 BSD 테이프를 손수 부치던 시절부터 가상 메모리를 넣은 3BSD가 나오기까지를 만화로 그렸습니다.

오픈소스 역사를 그림으로 풀어 온 F/OSS Comics 연재의 13화이자 BSD Unix 편의 세 번째 이야기입니다. 1976년 켄 톰프슨이 벨 연구소로 돌아간 뒤 빌 조이와 척 헤일리가 Unix 커널을 직접 손보기 시작한 때부터 다룹니다.

왜 중요한가

  • BSD가 독립 운영체제가 아니라 기존 Unix에 얹어 쓰는 소프트웨어 묶음에서 출발했다는 점을 보여 줍니다.
  • AT&T 소스 라이선스만 있으면 테이프값과 우편료만 받고 나눠 준 방식이 버클리의 공유 전통에서 나왔다고 설명합니다.

핵심 내용

  • 대학원생 외잘프 바바오을루가 VAX용 Unix인 32/V에 가상 메모리(디스크를 써서 실제 메모리보다 큰 주소 공간을 주는 기술)를 넣었습니다.
  • 조이는 1978년 연말 휴가 내내 이 코드의 통합과 디버깅을 도왔고, 1979년 12월 3BSD가 배포되기 시작했습니다.
  • 1977년 초 첫 BSD는 Pascal 시스템과 줄 편집기(명령으로 한 줄씩 고치는 편집기) ex를 묶은 테이프였고, 약 30부가 나갔습니다.
  • vi와 C 셸을 더한 2BSD는 약 75부가 나갔고, 조이가 요청 처리부터 테이프 복사와 발송까지 혼자 맡았습니다.
  • 마지막 장면에서 DARPA(미국 국방고등연구계획국)가 Unix의 이식성과 3BSD의 배포 성과에 주목하기 시작합니다.

HN 반응

  • ex의 뿌리인 em 편집기를 두고 켄 톰프슨이 편집 중 파일 내용을 볼 필요가 없다고 했다는 일화가 소개되자, 터무니없다는 반응과 지금도 ed를 쓴다는 반론이 맞섰습니다.
  • RSS 피드가 없다는 아쉬움에 한 이용자가 기능을 추가하는 PR을 보냈고, 작가가 이를 병합해 사이트에 반영했습니다.

댓글

30개 표시 · 전체 30개
  1. JdeBP HN

    이 만화에 나오는 마셜 커크 맥쿠식(Marshall Kirk McKusick)은 작년 8월에도 FreeBSD에 변경 사항을 커밋하고 있었습니다.

  2. drewg123 HN

    BSDCan이나 EuroBSD 같은 BSD 컨퍼런스에 꾸준히 참석하세요.
    제가 만나 본 사람 중에 손꼽히게 좋은 분입니다. 존경하던 사람을 만났는데 알고 보니 정말 멋진 분이면 기분이 참 좋죠.

  3. pengaru HN

    맥쿠식 팬이시라면, 그분이 운영체제 수업에서 한 강의를 녹화한 시리즈가 있습니다. 저는 아주 오래전에 여럿이 모여서 VHS로 몇 편을 봤습니다. 기억하기로는 주제가 원래 지루한데도 꽤 재미있었습니다.

  4. kleiba2 HN
  5. kps HN

    https://fosscomics.com/posts/12.%20BSD%20Unix%20Part%202%20-%20The%20Birth%20of%20the%20vi%20Editor/#comic-panel-visual-mode — “비주얼 모드에서는 코딩이 훨씬 재미있어요.”

    Tek 4014¹에서 비주얼 모드로 코딩했다면 하나도 재미없었을 걸요. 그건 벡터 저장관 방식이라 화면에서 글자를 골라 지울 수가 없거든요.

    ADM-3A²를 그렸어야 했어요.

    ¹ https://w140.com/tekwiki/wiki/4014

    ² https://terminals-wiki.org/wiki/index.php/File:Lear_Siegler_ADM-3A-2.jpg

  6. alexfortin HN

    보기 좋긴 한데, RSS/Atom 피드가 없다는 게 아쉽네요. 피드 리더에 추가할 수 없으면 금방 잊어버릴 것 같아요.

  7. benrutter HN

    아, 아쉽네요! 저도 RSS 피드부터 찾아보려던 참이었거든요. 이 만화 시리즈를 좋아할 사람 중에 RSS/Atom을 쓰는 사람도 아마 꽤 많을 텐데 말이죠.

  8. pbronez HN

    이걸 위해 PR을 보냈습니다. 바이브 코딩으로 만들었는데, 작성자가 도움이 된다고 볼지 모욕으로 받아들일지 지켜봐야죠...

    https://github.com/joone/fossbook/pull/8

  9. joonehur HN

    당연히 도움이 됐습니다! PR을 머지하고 RSS를 지원하는 사이트를 배포했습니다. 기여해 주셔서 감사합니다!

  10. getfacl HN

    조만간 신화를 걷어낸 BSD 이야기를 직접 써서, 널리 퍼진 소급 날조(retcon)를 몇 가지 바로잡아야겠습니다.

  11. meekins HN

    여기에 그 디스펠 매직(dispel magic)을 살짝 풀어 주실 수 있나요?

  12. happosai HN

    페디버스(fediverse)에 이런 걸 좋아할 사람이 많을 거예요. techub.social이나 기술·FOSS 중심의 다른 마스토돈 인스턴스에 계정을 만들어 보세요.

  13. lioeters HN

    정말 좋네요. 손으로 그린 일러스트의 감성에, 컴퓨터 역사의 고전적인 이야기까지 담겨 있어요. 지금까지 나온 시리즈를 전부 보는 중인데 훌륭합니다.

    지금까지 제일 좋아하는 컷은 "진짜 프로그래머란 무엇인가?"입니다. https://fosscomics.com/posts/6.%20The%20Origin%20of%20the%20Hacker%20Culture/images/real_en.webp

  14. mixmastamyk HN

    멋지네요. 그런데 3장에서 문제를 하나 찾았습니다. 첫 문장에서 전자식 컴퓨터가 2차 세계대전 중에 있었다고 하는데, 그때는 전기기계식이었습니다. 릴레이를 썼으니까요. 진공관은 나중에 나왔고, 예를 들어 ENIAC는 전쟁이 끝난 뒤에 완성됐습니다.

  15. rjsw HN

    콜로서스는 진공관을 썼습니다.

  16. defrost HN

    아마 1941~1943년에 맥스 뉴먼(Max Newman)과 토미 플라워스(Tommy Flowers)가 만든 그보다 조금 뒤의 기계가 아니라, 1938년 추제(Zuse)의 Z3를 떠올리신 것 같습니다.

  17. Gud HN

    빌 조이는 컴퓨터 혁명의 숨은 영웅입니다.

  18. DonHopkins HN

    빌 조이의 법칙: 2^(연도-1984) 백만 명령/초(MIPS)

    https://donhopkins.medium.com/bill-joys-law-2-year-1984-million-instructions-per-second-3a8c92165cfe

    컴퓨터의 최고 속도는 해마다 두 배가 되므로 시간에 대한 간단한 함수로 나타낼 수 있다. 구체적으로 S = 2^(연도-1984)이며, 여기서 S는 각 연도에 달성한 최고 컴퓨터 속도를 MIPS 단위로 나타낸 값이다. -위키백과, 조이의 법칙(컴퓨팅)

    “C++++-=는 C++보다 조금 더 많으면서 훨씬 적은 새로운 언어다.” -빌 조이

    1991년의 이 강연에서 빌 조이는 "C++++-="라는 가상의 새 언어를 예견합니다. C++에 몇 가지를 더하고 다른 몇 가지는 뺀 언어입니다.

    “Java는 총, 칼, 몽둥이를 뺀 C++다.” -제임스 고슬링

    저는 1986년 워싱턴 DC에서 열린 Sun 사용자 그룹 행사에서 한 빌 조이의 훨씬 이전 강연도 봤습니다. 거기서 그는 자기가 만들고 싶은 가상의 언어 "C++++-="를 처음 발표했고, 이후 발표에서도 계속 그 얘기를 했습니다.

    같은 강연에서 빌이 "C나 FORTRAN으로 짠 프로그램에 대해서는 아무것도 증명할 수 없다. 그건 그냥 구문 설탕을 바른 Peek와 Poke일 뿐이다"라고 말한 것 같습니다. 빌 조이의 다른 어록은 여기 있습니다.

    https://www.donhopkins.com/home/catalog/unix-haters/slowlaris/joy-quotes.html

    1988년 10월 Educom에서 저는 Sun 부스에 있는 Sun 워크스테이션으로 NeWS, 파이 메뉴, Emacs, HyperTIES 데모를 돌아가며 지나가는 사람 누구에게나 보여 주고 있었습니다...

    https://hyperties.org/databases/playground/sun-founders-big-heads/

  19. jolmg HN

    ex와 함께 Pascal 시스템을 묶어서, em에서 발전한 줄 편집기인 ex를 ...

    em이 뭐죠? 저는 ed에서 발전한 걸로 알았는데요.

  20. nagaiaida HN
  21. stackghost HN

    참고로 'em'은 'editor for mortals(필멸자를 위한 편집기)'의 약자입니다. 제가 QMC 연구실에서 개발하던 중에 켄 톰프슨이 찾아와서 "그래, 그런 편집기를 본 적은 있는데 나는 필요성을 못 느껴. 편집하는 동안 파일의 상태를 보고 싶지는 않거든" 비슷한 말을 했고, 그래서 그렇게 이름을 붙였습니다.

    말 그대로 제정신이 아닌 의견이네요.

  22. tosti HN

    공평하게 말하면, 저도 가끔 ed로 파일을 편집해요. 특히 수백 번은 본 파일(예: /etc/ssh/sshd_config)은요.

    요즘은 다뤄야 할 코드가 몇 자릿수나 더 많잖아요. 옛날에는 직접 짠 프로그램 정도라면 그래도 괜찮았을 거예요.

  23. stackghost HN

    옛날에는 직접 짠 프로그램 정도라면 그래도 괜찮았을 거예요.

    코드가 충분히 단순해서 전체 상태를 머릿속에 한꺼번에 담을 수 있다면 어쩌면 그렇겠죠. 하지만 우리가 말하는 건 메모리 관리 루틴과 OS 커널을 짜던 사람들이에요. C로요. LSP도, 구문 강조도, 린트도 없이요.

    "하드웨어가 너무 제한적이라 그 많은 컨텍스트를 메모리에 다 올릴 수 없다"고 말하는 거라면 이해가 가요. 하지만 그런 기술 스택으로 일하면서 "지금 이 순간 내가 편집하는 코드 줄 주변의 컨텍스트를 일부러 안 보겠다"고 하는 건, 프로그래밍 언어를 몇 개를 만들었든 그냥 꽉 막힌 거예요.

  24. wdr1 HN

    잘 만드셨네요! 저는 앞의 두 편도 찾아 읽었습니다. 세 편 모두 정말 재미있게 봤습니다.

  25. lproven HN

    귀엽긴 한데, 왜 만화인가요? 만화라서 더해지는 게 없잖아요. 트윗 한 줄 분량의 텍스트 역사에 일러스트를 붙인 거지, 만화라는 매체로서의 컷 만화는 아니에요.

  26. embedding-shape HN

    사이트 이름이 fosscomics.com인데요, 전부 만화죠? 작가들이 만화를 만들고 싶어서 만화로 만든 건데, 이게 뭐가 이해하기 어려운지 모르겠네요.

    다큐멘터리 대부분도 10~15분이면 읽을 블로그 글로 쓸 수 있는데 그 매체는 계속 살아남잖아요. 무슨 미스터리라도 되나요? 아니겠죠.

  27. BikiniPrince HN

    한 52컷은 돼야 한다니까요. 1025번째 컷쯤에서는 정치도 슬쩍 끼워 넣길 바랍니다.

  28. tcnevin HN

    마음에 들어요. 크게 중요한 건 아닐 수도 있지만, 순서가 거꾸로라서 잠깐 멈칫했어요.

  29. BiscuitEater546 HN

    좋네요, 마음에 들어요.

  30. analog8374 HN

    좋은 만화네요. 그림도 좋고요.

Hacker News에서 보기 ↗