Ken Thompson이 3주 만에 만든 Unix: 파일 열기 혁명의 시작
Learning about "The Unix Time-Sharing System"
이 글은 데니스 리치와 켄 톰슨의 논문 'The Unix Time-Sharing System'을 분석하며, Unix의 초기 역사와 그 설계 철학을 탐구합니다. 켄 톰슨이 Multics 프로젝트에서 해고된 후, PDP-7에서 3주 만에 컴파일러, 편집기, 어셈블러, 로더, 사용자 보호 기능을 포함한 운영체제를 완성한 이야기를 다룹니다. 특히, Multics의 단일 레벨 스토어와 달리 Unix가 파일과 프로그램을 분리한 혁신적인 'open' 시스템 콜의 의미를 조명합니다. 또한 'comfile'이라는 용어의 유래와 셸 스크립트의 발전 과정을 설명합니다.
Multics는 페이지 폴트가 있는 가상 메모리 시스템이었고, 데이터와 프로그램을 구분하지 않았습니다. ... 저는 데이터와 프로그램을 분리하고 싶었습니다. 데이터와 명령어는 매우 다르기 때문입니다.
- gwynforthewyn
저는 이 에세이의 작성자입니다.
제 주제는 벨 연구소가 Unix에 대해 발표한 첫 백서인 "The Unix Time-Sharing System"을 둘러싼 몇 가지 세부 사항입니다. 저는 Ken Thompson이 Multics가 끝난 후, 그가 Unix를 작성한 "거의 사용되지 않는 PDP-7"을 발견하기 전에 무엇을 하고 있었는지, Multics와 Unix에서 파일을 여는 방식의 차이, 그리고 그 백서에서 언급된 "comfile"이 무엇인지에 대해 썼습니다.
저는 AI의 도움 없이 이 글을 썼습니다. 저는 Unix 역사를 따르는 이유가 역사가 무엇인지, 그리고 그로부터 무엇을 배울 수 있는지 아는 것을 좋아하고, 다른 사람들에게 이런 멋진 세부 사항들을 보여주는 것을 좋아하기 때문입니다.
혹시 피드백이 있으시면 듣고 싶습니다 :)
- bch
> 그럼 comfile이 뭘까? 분명히 셸 스크립트겠지, 그렇지? 그럼 왜 comfile이라고 부를까? "command files"의 줄임말이야.
제 (BSD) 시스템에서 재미있게 여기는 흔적은 <foo>.S 파일입니다. "S"는 "Source"를 뜻하죠. "소스 코드"가 "어셈블리"를 의미하던 시절부터 온 것입니다. Python, zig, C++, C 등은 나중에 발명되었을 테니까요...