시작함돠!!
60년대 말, Bell Telephone Laboratory는 General Electric,
MIT와 더불어 "Multics"라고 불리우는 multiuser operating
system 개발의 project를 수행하고 있었습니다. 저는 잘 모르는
어떤 사정에 의해, 69년 그 project가 취소되었는데, 그 때
Bell Lab의 몇몇 사람은, 심심함을 견디지 못하고 다른 재미있는
project를 추구했데요. 이해하기 힘들지 않나요?
그 중 Ken Thompson이란 한 사람은, Digital Equipment Corporation
사의 PDP-7이라는 computer를 발견하고 그 위에 "Space Travel"이라는
오락을 짜고 있었습니다. 어떤 오락인 지는 몰라도, text-base의
무지하게 재미없는 오락이었으리라 개인적으로 추측합니다.
근데, PDP-7의 개발환경이 구현되어 있지 않아, Honeywell 635에서
돌아가는 GECOS라는 OS에서 cross compile한 후 PDP로 들고 와서
돌려보며 program을 짜다가, 도저히 안 되겠다 싶어 Dennis Ritche
라는 사람을 꼬셔서, PDP-7에서 돌아가는 OS를 같이 개발하기
시작했습니다. 이 때, System V의 file system인 s5fs의 원형이
만들어지고, Bourn shell의 조상인 shell이라는 interpreter와
다른 유틸리티들이 만들어졌습니다. 그들은 이 OS를, Multics에
빗대어 Unix라고 불렀구요.
다음 해, Thompson과 Ritche는, 특허부서를 위한 text-processor를
위해 더 좋은 computer가 필요하다고 Bell Lab을 꼬드기어, PDP-11을
얻어냅니다. 이 위에 "ed" editor와 runoff text rendering tool을
만들지요. 요즘은 ed 쓰는 사람이 없는 것으로 알고 있습니다.
이 과정에서 Thompson은 B라고 이름지어진 interpretive language를
만들었습니다. 정말 막강한 사람이지요. 하지만 interpretor에서
돌아야하기땜에 좀 느린 것이 흠이라, Ritche가 좀 더 발전시켜
C를 만들었데요. 이 Thompson과 Ritche가 우리가 알고 있는 C의
창시자입니다. 73년도에는 이제 Unix가 이 C로 짜여지게 되는데,
이것이 Unix의 성공에 큰 영향을 끼치게 된 것이죠. 저도 73년도에
태어났습니다.
II. 발전
같은 해, Thompson과 Ritche는 "The UNIX Time Sharing System"
이라는 제목으로, ACM Symposium on Operating System에 논문도
발표 했습니다. 청중들로부터 반응이 아주 좋았데요. 근데,
1956년 이후로, Bell Lab은 anti-trust법에 걸려있어, "공중
통신사업" 이외의 분야에선 돈을 버는 것이 금지되어, 교육과
연구용으로 쓰라고 대학교에 공짜로 건네주었습니다. Berkeley의
Unix는 여기서 시작합니다.
Unix는 여러 기종에 porting이 되는데, 여기서 잠깐 Microsoft도
등장합니다. Microsoft와 Santa Cruz Operation (SCO)는 손을
잡고 Unix를 386에 porting하여 XENIX라는 이름을 주었습니다.
MS도 옛날엔 Unix로 장사했었데요. 1978년 DEC는 VAX-11이라는
32-bit computer를 내놓았는데, ㈀藪〉?porting되어 UNIX/32V
라는 OS가 또 하나 생겼습니다. 이것이 Berkeley로 보내지고
조금 향상되어 3BSD가 79년도에 등장합니다.
III. BSD
Unix가 Berkeley에 온 후, 두 대학원생 Billy Joy와 Chuck Haley는
ex라는 editor (vi의 전신이지요)와 pascal compiler 등의
유틸리티로만 구성된 package를 만들어
Berkeley Software Distribution (BSD)라 이름붙이고 50$에
팔았답니다. 교수님이 알고 계셨는 지는 저도 모릅니다. 이
안에는 job control과 command history로 유명한 csh도
들어있었구요.
78년, Berkeley는 VAX-11과 UNIX/32V를 얻었지요. 이 4 GByte의
address space를 지원할 수 있는 32-bit computer에,
physical memory는 2 MByte밖에 안 달려있었는데, Ozalp Babaoglu가
(발음은 모르겠습니다) paging에 기반한 가상 memory system을
개발하여 UNIX/32V에 붙이고 79년 3BSD를 내 놓게되지요.
이 가상 memory가 또 히트를 치게되어, 국방성이 관심을 갖고,
Berkeley의 Unix를 지원하게 됩니다. 돈이지요. DARPA project의
(Defense Advanced Research Project Agency) 주요 관심사 중
하나는, TCP/IP protocol suite가 통합되는 것이었고, 이 때부터
Unix와 Internet이 같이 성장하게 됩니다.
이후 Berkeley에서 Unix가 크게 연구되고, 새로운 버전이 계속
발표되었습니다. 이 Berkeley Unix는 Virtual Memory system,
Fast File System (FFS), Socket communication mechanism 개발,
signal system 재정립 등의 연구성과가 구현되었습니다.
80년, 4.0BSD, 81년 4.1BSD, 83년 4.2 BSD, 86년 4.3BSD,
93년 4.4BSD를 개발 후, Berkeley의 Computer Science Research
Group (CSRG)는 다음과 같은 이유로 Unix의 연구 개발을
그만 둘 것을 발표했습니다.
1. 돈이 없다.
2. BSD의 여러 특성이 이제 다른 상용 system에서도 구현되었다.
3. 작은 research group이 감당하기엔 이제 system이 너무 커졌다.
어찌됐건, Berkeley Software Design, Inc. (BSDI)라는 회사가
성립되었고, 이 회사는 4.4BSD를 상용화하고자 했습니다.
이 때 AT&T랑 몇 가지 법적인 문제를 놓고 큰 싸움이 한판
붙어 Unix의 역사에 약간의 얼룩이 생겼지요. 결과는 양쪽에서
고소를 취하하는 것으로 해결되었고 BSDI는 4.4BSD-lite를
1000$에 내 놓았습니다.
IV. System V
그 동안 AT&T도 꾸준히 Unix를 개발하여, 82년 System III,
83년 System V, 84년 System V Release 2, 87년 System V
Release 3를 발표했고, 최종 version은 System V Release 4
입니다. SVR4라고 많이 불리지요. AT&T는 System V의 유포를 적극
밀었고, 현재의 많은 Unix system들이 이 System V에 기반하고
있습니다. AT&T는 82년, 여러 법적 싸움을 거쳐, Western
Electric이라는 회사를 합병하여, 어떻게 어떻게 해서
computer 사업에 손을 댈 수 있게 되었던 것입니다.
이 System V 역시 많은 새로운 강점들을 갖추게 되었습니다.
BSD의 것과는 전혀 다른 방식의 virtual memory system인
regions architecture, shared memory, semaphore와 message
queue와 같은 interprocess communication 기능들,
remote file sharing, shared library와 STREAM framework
등이 그 예가 됩니다.
V. 상용 Unix
Unix의 인기가 높아짐에 따라, 많은 computer회사들이 덤벼
들게 되었고, 그들만의 부가가치를 갖는 많은 Unix변종들이
생겨나게 되었습니다. 변종이란 말이 좀 듣기 안 좋을 것
같은데, 원래 책에 쓰인 단어는 variant입니다.
하여간, 가장 처음으로 상용화된 Unix는 PDP-11에서 돌아가는
IS/1이라는 것이구요, 앞에서 언급되었던 MS와 SCO의 XENIX
, SCO가 혼자 후에 SVR3를 386에 porting한 SCO UNIX도
있고, IBM의 AIX, HP의 HP-UX, DEC의 ULTRIX - DEC OSF/1 -
Digital UNIX 시리즈 등도 있고, 2BSD의 이름이 귀여운
Bill Joy가 친구와 창립한 Sun Microsystems의, 4.2BSD에
기반한 SunOS도 있지요.
이들 상용 OS의 유명한 업적들을 보자면, SunOS는 다양한
file system을 지원하기 위한 vnode/vfs interface와,
Network File System (NFS지요)을 지원하고, AIX는 최초로
상용 journaling file system을 제공했고, ULTRIX는
최초로 multiprocessor system위의 Unix가 되었다는 것
등이 있습니다.
VI. Mach
Unix의 인기가 높았던 것은 그것이 작고 단순하기 때문이었는데,
새로운 기능이 추가될수록 kernel이 복잡하게만 되어갔습니다.
이에 80년대 중반, Carnegie-Mellong 대학에서 최소한의 필수
기능만을 담당하는 microkernel을 주고, 나머지 service는
user level에서 해결한다는 취지하에 탄생한 Unix가 Mach입니다.
OSF/1과 NextStep과 같은 system이 이 Mach를 기반으로 하고있구요,
Mach 3.0은 최초의 microkernel 구현이라는 의미도 갖고 있습니다.
Academic한 의미가 더 큰 작품이지요.
VII. 표준
Unix가, System V 시리즈와 BSD 시리즈 크게 두 갈래로 성장하
다보니, 거기에 각종 상용 Unix까지 각 회사가 따로 개발하다보니,
저마다 interface가 다 달라 program들이 호환이 되지 않는 것이
큰 문제가 되었습니다. 예나 지금이나 언제나의 문제이겠지요.
안 되겠다 싶으면 어떤 group이 형성되어, 표준을 정립하고자
노력했었는데, 이로는 System V Interface Definition (SVID),
IEEE의 POSIX 1003.1 또는 POSIX.1 (Portable Operating System
based on Unix의 약자라고 합니다), 그리고, computer 회사들의
표준 정립을 위한 국제적 기구인 X/Open의 X/Open Portability
Guide (XPG) 등이 있습니다.
VIII. OSF와 UI
87년, AT&T는 Sun에게 많은 특혜를 주고, Sun은 4BSD에 기반한
SunOS와는 달리 다음부턴 System V에 기반한 Unix를 만들겠다는
조건으로 둘이 손을 잡게 되었습니다. 그 결과가 AT&T의
System V Release 4이지요.
이들 둘이 붙으니, IBM, Digital, HP, Apollo 등과 같은 다른
많은 회사들이 놀라, 자기들끼리 또 힘을 합하여 Open Software
Foundation (OSF)라는 조직을 만들었습니다. 여기서 만든 OS가
Mach 2.5를 기반으로 한 OSF/1이고, 이것에선 GUI개발 API인
Motif가 유명합니다.
AT&T와 Sun도 가만히 있을 수 없어, 다른 회사들을 모아
Unix International (UI)라는 그룹을 만들어 대적하였습니다.
하지만 상황은 두 그룹 중 어느 것의 뜻대로도 잘 되지않고,
Unix가 아닌 Microsoft의 windows가 세상을 장악하게 되어버
렸습니다.
VIIII. SVR4와 그 이후
AT&T와 Sun이 같이 개발한 System V Release 4에는, Korn
shell, 향상된 STREAM, 실시간 scheduling class 등 새로운
기능이 많이 들어있었습니다.
91년 PC 기반 network operating system인 Netware로 유명한
Novell은, AT&T의 Unix System Laboratory (USL)의 일부를 사들여,
UnixWare라는, Netware를 통합한 SVR4의 desktop version을
만들어 냈습니다. 93년 USL을 마저 사들여 SVR4의 새 주인이
되었습니다.
Sun은, AT&T와 손잡던 시절 예정된 대로, SVR4에 기반한 Unix
Solaris를 94년에 내 놓았지요.
휴 ... ^^ 여담!! 하드에 보면은 AT&T 이거 붙여진거 있을 겁니다 퀀텀 하드에 ㅋㅋㅋ
구게 멀까엽 ㅡㅡ?