-
반응형
GNU라는 단체가 FSF(Free Software Foundation) 재단을 설립하면서 무료 유닉스 개발에 착수한다. GNU는 리처드 스톨만(Richard Stallman)을 중심으로 설립됐는데 시간이 흘러 수백만 명이 참여하는 프로젝트로 규모가 커진다. 그래서 유닉스 유틸리티와 같은 유닉스 기능을 다시 구현하게 됐는데 기존의 유닉스보다 더 완성도 높은 코드로 만들어지게 된다. 이처럼 유닉스 유틸리티를 하나씩 구현하면서 유닉스를 구성하는 소프트웨어를 만들기 시작한다.
유닉스라는 프로그램을 구조적 관점에서 보면 유닉스를 구동하는 핵심 코어인 유닉스 커널이 있고, 그 위에서 실행되는 유닉스 유틸리티가 있다. 유닉스 유틸리티는 여러 개발자들이 모여 어느 정도 완성도를 높여서 개발했다. 하지만 유닉스 커널을 제대로 만들기가 어렵다는 문제가 발생하였고 한동안 유닉스 커널 개발이 정체된다.
1992년 : AT&T와 BSD 간의 유닉스 소송
그런데 GNU에서만 무료 유닉스 개발을 시도한 것은 아니었다. 유닉스가 개발되던 초기에는 유닉스 코드를 대학 연구소에 배포했었다. 그중 UC 버클리에 속한 BSD(Berkely Software Distribution) 개발자들이 기존 유닉스 코드를 재해석해서 1989년 후반 유닉스 커널을 포함한 무료 유닉스를 완성한다. BSD 개발자는 AT&T에서 배포한 유닉스 코드를 다시 작성해서 'Net/1'이라는 이름으로 무료로 소스코드를 배포라게 된다. 이후 1991년에는 코드 완성도를 높여서 'Net/2'를 공개한다. 그런데 1992년 AT&T는 UC 버클리에 소송을 걸게 된다. 소송의 이유는 다음과 같다.
- AT&T 내부 자료를 이용해 배포한 BSD 유닉스인 Net/2는 AT&T의 저작권을 침해했다.
1992년부터 시작된 AT&T와 BSD 간의 소송을 '유닉스 전쟁(Unix War)'이라고 부르기도 한다. 소송은 1994년까지 진행됐는데, AT&T USL(Unix System Laboratory)이 노벨에 팔린 후에 AT&T는 소송을 취하하게 된다. 소송이 진행되는 동안 US 버클리에서 BSD 유닉스 개발은 정체되고 만다.
1. 1991년 : 리누스 토발즈의 등장
비슷한 시기에 무료 유닉스를 만들고자 하는 움직임이 있었다. 그 주인공은 리누스 토발즈(Linus Torvalds) 이다. 핀란드의 헬싱키 대학에 재학 중이던 리누스 토발즈는 GNU 시스템에 적합한 커널을 직접 개발하기 시작해서 1991년 8월 25일 GNU 커널을 어느 정도 완성한 다음 comp.os.minix라는 뉴스그룹에 다음과 같은 글을 올린다.
Date : 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and professinal like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat(same physical layout of the file-system(due to practical reasons) among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)
- GNU 무료 운영체제를 개발 중이며, 인텔 칩 i386에서 구동된다.
초기 버전인 0.01은 지금과 비교하면 기본적인 커널 기능만 지원했다. 또한 실행도 되지 않았다. 그 후 0.02 공식 버전을 발표했는데, BASH(GNU Bourne Again Shell)와 GCC(G-NU C 컴파일러) 정도만 실행 가능한 수준이었다. 이듬해 3월, 리눅스는 0.95로 버전이 업그레이드 됐고, 다음과 같은 기능을 지원했다.
인텔 x86 칩에서 그래픽 사용자 인터페이스를 추가
그런데 그 당시 스톨만과 FSF 단체는 허드(Hurd)를 GNU 커널로 개발하고 있었다. 생각보다 허드 개발이 진척되지 않아 고민 끝에 다음과 같은 결정을 내린다.
- 리누스 토발즈가 개발한 유닉스 커널을 GNU 커널로 채택하자.
이 과정에서 탄생한 것이 리눅스이며, 기존 GNU 유틸리티와 커널이 결합해 GNU는 완성된 구조를 이루게 되었다.
반응형