UNIX의 역사에 대해서 알아보자
UNIX는 고급언어(C언어)로 작성된 최초의 커널, 즉 운영체제이다.
커널을 중심으로 shell, application, library, utility 들이 하드웨어와 소통할 수 있다.
과거에는 커널을 어셈블리어로 작성했는데 최초로 C로 작성한 것이 UNIX라는 것이다.
그리고 우리가 흔히 윈도우에서 사용하는 hierarchical file system 즉 루트 (/) 디렉토리로부터 계층적으로 파일을 관리하는 시스템이 UNIX에서 처음 개발된 것이다.
UNIX는 모든 것을 파일로 취급한다는 것이 특징이다. 이 특징으로 인해서 하드웨어가 달라도 적용할 수 있는 Portable(이식성)이 높으며, Interactive(대화식), Time-shared(시분할 시스템), Multi-tasking(여러 프로세스), Multi-user(여러 사용자) 등의 특징이 있다.
UNIX시스템 이전에는 어땠을까?
인공지능의 아버지라 불리는 1955년 John McCarthy가 운영체제에 중요한 Time-shared 시분할 시스템을 최초로 고안한 사람이다. 이 사람이 시분할 시스템을 적용하기 위해 CTSS(Compatible Time-Sharing System)를 개발하면서 비록 실패했지만, 인재를 양성했고, 그렇게 양성한 인재가 후에 UNIX를 개발하게 되는 이야기이다.
1969~1971년 경 John McCarthy의 MULTICS 연구를 함께했던 인재인 Ken Thompson이 Space Travel이라는 게임 소프트웨어를 토이 프로젝트로 만들게 되었는데, 여기서 불편함을 느낌 Ken Thompson이 MULTICS 연구과정에서의 지식으로 운영체제를 만들기로 결심한다.
이 당시 기기였던 PDP7으로, Ken Thompson은 Dennis Ritchie와 함께 'hierarchical file system', 'computer processes', 'device files', 'command-line interpreter' 등 유틸리티들을 개발했고, Brian Kernighan와 함께 UNIX의 시초인 UNICS를 만들게 되었다.
처음에는 UNIX를 어셈블러로 작성하였는데, 이식성도 좋지 않았고, 여러모로 좋지 않았다. UNIX를 만든 AT&T 연구실은 이 UNIX를 무료 라이센스로 배포 해버렸다.
1973년 Ken Thompson이 작성한 B언어를 발전시켜 Dennis Ritchie가 C언어 컴파일러를 만들었다. 그후 Ken Thompson이 팀을 꾸려 기본 UNIX 커널을 어셈블러에서 C로 바꾸었다.
1974년 Thompson과 Ritchie는 ACM에 UNIX를 발표했고, 1977년 UC-Berkeley에서 이 UNIX에 대해서 Bill joy가 자체적으로 BSD(Berkeley Software Distribution)을 개발하여 vi, shell, curses 도구들이 생겨났다.
1982년에 UNIX는 크게 두 갈래 AT&T와 BSD 버전으로 발전한다. 1983에는 4.2BSD버전이 나오면서 TCP/IP와 socket API가 배포된다. 또한 미국에서 AT&T 기업이 쪼개지며 Unix System V를 상업화하기 시작한다. Thompson와 Ritchie는 UNIX 개발 공로로 튜링상을 받게 된다.
1984년에 UNIX는 BSD, Unix System V, AIX, Ultrix, Zenix 등 버전이 많아져 호환성면에서 문제가 생기자, 표준화를 위해 X/Open 컨소시엄이 설립된다.
1985년에는 Andrew Tanenbaum 교수가 MINIX라는 초소형 UNIX 운영체제를 만들어 OS 교재를 작성했는데, 이 MINIX 교재를 Linus Torvalds가 숙지하고 개발한 것이 Linux 커널이다.
1987년에는 드디어 X/Open에서 표준화를 시도하여 Xenix, BSD, SunOS, System V를 System V Release 4로 통합하였다.
1988에는 또 다른 통합본인 OSF(Open Software Foundation)이 나오게 되고, 같은 해에 UNIX 표준화를 위해 UNIX International이 세워진다. IEEE에서는 POSIX로 표준화를 하였다.
1991년 Linus Torvald가 자신이 개발한 Linux를 오픈소스 제품으로 FSF(Free Software Foundation)에 등록하였다. 이 FSF는 Richard Stallman에 의해서 시작된 Copy Left(저작권 정보 공유) 재단이다. 이로써 Linux 커널은 GNU 시스템이 되는데 GNU는 "GNU(재귀적 호칭) is Not Unix"라는 뜻이다.
1993년 Unix International (UI), Open Software Foundation (OSF)가 통합되며 COSE(Common Open Software Environment)가 된다. AT&T가 UNIX를 Novell에 판매한다. Novell은 UNIX를 X/Open 컨소시엄에 넘긴다.
1994년 UI와 OSF가 OSF로 통합되고, X/Open은 System V 기반으로 Spec1170을 개발한다.
1996년 X/Open과 OSF가 Open Group으로 통합되고,
1997년 Open Group이 최종 UNIX 통합본인 Single UNIX Specification Version 2를 출시한다.
2001년 Austin Group이 Single UNIX Specification Version 3를 출시한다.
Ver 4 이후 버전들에 대해서는 https://www.unix.org/
에 자세히 나와있다.
2008년 POSIX:2008을 기반으로 UNIX 표준인 Single UNIX Specification Version 4가 만들어졌다.
역사를 그림으로 보면 이렇다.
'개발 · 컴퓨터공학' 카테고리의 다른 글
Virtual Box 설치하기 (0) | 2021.09.04 |
---|---|
네트워크 프로그래밍 - Physical Address(MAC Address), Logical Address(IP Address), Port Address (0) | 2021.09.03 |
네트워크 프로그래밍 - OSI 7 계층의 구성 (0) | 2021.09.01 |
네트워크 프로그래밍 - TCP/IP의 계층은 왜 있는가? (0) | 2021.08.31 |
Lerp와 LerpUnclamped는 뭐가 다른가? (difference of Lerp and unclamped lerp) (0) | 2021.08.16 |