원본 논문
- 이 글은 Dennis M. Ritchie - The Evolution of the Unix Time-sharing System 논문을 읽고 정리한 글입니다.
- 별도의 명시가 없으면, 본 논문에서 그림을 가져왔습니다.
B Programming Language
- 처음의 PDP-7 에서의 UNIX 는 날것의 assembly 언어로 되어 있었다고 한다.
- 그러다가 나중에는 매클로이 아저씨가 TMG 라는 컴파일러를 UNIX 에서 작동하도록 만들었는데
- 똠쓴씨가 Fortran 을 TMG 로 컴파일하도록 일주일정도 노력했지만 결과적으로는 이것은 B 언어의 탄생으로 이어졌다.
- B 언어는 인터프리팅 방식이어서 다소 느리긴 했지만, 그래도 개발이 더 편해졌다고 하더라
- 또한 syscall 을 호출하는 인터페이스도 추가돼서 system programming 도 가능해 졌다 하더라
- 추후에는 PDP-7 에서 PDP-11 을 개발하기 위한 cross-compiler 도 B 로 개발되었고 TMG 를 대체할 PDP-7 에서의 B compiler 도 B 로 개발되었다.
C Programming Language
- 하지만 PDP-11 UNIX 혹은 유틸리티들을 B 로 작성하는 것은 고려되긴 했지만 실제로 수행되지는 않았다.
- 왜냐면 B 는 인터프리팅 언어이기에 다소 느렸기 때문.
- 따라서 이러한 문제를 해결하기 위해 C 언어가 개발되었다.
- 1973년에 이르러서는 UNIX 의 커널도 C로 다시 개발되며 현대적인 형태를 갖추게 되었다.
- Multi-programming 도 도입되었고
- 내부 시스템의 구조도 더 다듬어졌다고 한다.
- 현재에는 assembler 이외에는 UNIX 의 커널 및 유틸리티 거의 전부가 C 로 개발되어 있다고 한다.