2008. 7. 9.

리눅스의 역사와 발전과정

리눅스의 탄생

리눅스가 등장하게 된 것을 거슬러 올라가 보면 대표적인 서버 운영체제인 유닉스가 개인용 운용체제로 거듭난 것이라 할 수 있습니다. 1991년 리누스 토발스라는 헬싱키의 대학생이 개인용 PC에서 멀티태스팅을 구현하기위한 운영체제를 연구하였고, 그 연구결과를 인터넷상에 공개해 수많은 프로그래머들이 새로운 기능을 보강하여 오늘날의 리눅스체제를 만들어 내었습니다. 그러면 여기서 리눅스의 출현과정을 자세히 살펴보겠습니다.

유닉스의 등장

리눅스의 모태가 되는 유닉스는 다중 사용자와 멀티태스킹 기능을 효과적으로 수행할 수 있는 운영체체를 만들기 위한 프로젝트에 참여한 미국 벨 연구소의 켄 톰슨 (Ken Tompson)에 의해 1969년에 개발되었습니다. 그러나 유닉스는 PDP-7 기종에 맞게 설계된 어셈블리 언어(특정한 기종에서만 사용될 수 있는 언어)였기 때문에 다른 기종의 컴퓨터에서는 해당기종의 어셈블리 언어를 이용해서 운영체제를 다시 작성해야 한다는 불편함이 있었습니다. 즉 기종간의 호환성을 만족시키고 프로그래밍 작업에 통일성과 효율성을 확보할 수 있는 방법을 모색해야 했습니다. 이러한 문제는 1971년 벨 연구소의 노력으로 해결되었는데 이들은 상이한 기종간의 이식성을 높이기 위해서 어셈블리 언어가 아닌 새로운 방식의 프로그래밍 언어를 고안하였습니다. 이 새로운 언어는 CPU와 직접 연결되는 것이 아니라 간접적인 방식으로 작성된 소스코드를 특정한 기종에 맞게 최적화시키는 과정을 통해서 실행코드로 만드는 설계구조를 가지고 있었습니다. 다시 말해서 다른 기종의 컴퓨터에서도 해당 컴퓨터에 맞게 컴파일하는 과정만으로 동일한 운영체제를 사용할 수 있게 되었던 것입니다. 어셈블리 언어로 작성되었던 유닉스는 데니스 리치가 개발한 C언어로 다시 쓰이게 되었습니다. C언어의 특징은 어셈블리 언어처럼 하드웨어를 직접 통제할 수 있을 뿐만 아니라 특정한 하드웨어에 관계없이 프로그램을 작성할 수 있는 상반된 두가지 성질을 모두 가지고 있습니다. 따라서 C언어로 작성된 소스코드는 필요할 때에 이식될 하드웨어 환경에 맞게 다시 컴파일하는 과정을 통해서 다른 기종에서도 사용될 수 있게 되었습니다.

유닉스의 진화

최초 유닉스의 본래 복적은 자료와 정보의 공유를 위한 것으로 여러 사람들이 하나의 자료를 동시에 활용할 수 있게 하는 것이었습니다. 유닉스가 계속적으로 발전할 수 있었던 이유는 벨 연구소가 대학과 연구기관에 대한 관대한 라이센스방침을 두어 이들이 유닉스를 이용한 연구 개발을 할 수 있었기 때문이었습니다. 1969년 버클리 대학에서는 유닉스에 네크워크 기능를 집중적으로 보강하는 연구를 하여 BSD라고 명명하였습니다. 통신 기능과의 결합으로 더욱 강력해진 유닉스는 보다 유력한 운영체제로서의 위치를 계속 확대해 나가게 되었습니다. 한편 AT&T에서도 System V개발하였습니다. BSD와 System V는 유닉스의 가장 중요한 버젼으로 이어져 오고 있습니다.

리눅스 탄생

한편 개인용 PC 운영체제인 MS-DOS는 워크스테이션용으로 개발된 유닉스에 비해 상대적으로 많은 한계를 갖고 있었기 때문에 유닉스를 PC버젼으로 개발하려는 노력이 있었는데, 마이크로 소프트사의 제닉스와 네덜란드 브리제 대학의 전산과 교수, 앤드류타넨바움이 만들어낸 미닉스 (MIMIX)가 있습니다. 설계초기에 유닉스를 그 모형으로 한 미닉스는 PC에서 멀티태스팅을 구현하기에 적절한 운영체제였고 학생들에게 소스코드와 함께 무료로 배포되었습니다. 그 결과 많은 사람들로부터 보다 나은 운영체제로 발전시키기 위한 제안을 받았지만 그는 그들의 제안을 받아들이지 않았습니다. 그리고 이 역할을 대신한 사람이 바로 리눅스 창시자인 헬싱키 대학의 리누즈 토발즈(Linus B.Torvalds)로 그는 유닉스의 커널을 PC에서 사용가능한 커널로 만들었습니다. 커널은 운영제체의 핵심으로 모든 작업에 우선하여 작동하는 프로그램으로 인터럽트 처리, 프로세스 관리, 메모리 관리, 파일 시스템 관리, 프로그래밍 인터페이스 제공등 운영체제의 기본적인 기능들을 제공하는 핵심부문입니다. 커널은 운영체제에서 가장 중요한 요소로 운영체제의 기능 향상은 주로 커널에서 이루어집니다. 여기서 한가지 짚고 넘어가야 할 것은 리눅스의 커널과 배포판 개념의 차이입니다. 배포판은 리눅스의 보급을 보다 손쉽고 효과적으로 하기 위해 커널과 함께 여러 가지 유용한 프로그램들을 함께 모아서 제공하는 형태를 말합니다. 커널은 리누스 토발즈를 비롯한 수 많은 개발자들에 의해 이루어지고 있습니다.

1991년 리누즈 토발즈에 의해 최초 리눅스 0.01버전이 제작되었을 때 리눅스의 모습은 하드디스크 드라이버와 파일 시스템 뿐 이었으며 그 기능 또한 아주 미약했습니다. 때문에 0.01버전은 발표되지도 않았으며, 최초로 공개된 0.02버전은 bash, gnu-make, gcc, compress 등을 실행 할 수 있을 정도로 발전 하였지만 이때까지도 리눅스는 교육용 이상을 가치를 갖지 못하는 단순한 형태였습니다. 그러나 인터넷에 공개되자 수많은 개발자들의 호기심을 샀고 이때부터 리눅스는 거듭나기 시작했습니다.

리눅스의 발전

여기서 짚고 가야 할 한가지 중요한 사항은 리누스 토발즈가 개발한 것은 컴퓨터를 다양하게 활용할 수 있도록 지원할 수 있는 시스템 차원의 통합적인 운영 환경을 뜻하는 것이 아니라 리눅스 커널입니다. 따라서 리눅스 운영체제는 다른 프로그래머들이 개발했다는 것을 뜻합니다
리눅스가 여타 운영체제와 다르게 엄청난 도약을 하게 된 계기는 Free Software Foundation의 회장인 리챠드 스톨만입니다. 그는 소프트웨어는 사용하는 모든 이들이 자유롭게 사용할 수 있도록 해주어야 한다는 철학을 가지고 있었습니다. 처음 그가 소프트웨어의 자유로운 공유와 배포를 주장했을 때 주위에서는 그를 멸시하고 공격했었습니다만 지금 상황은 완전히 바뀌어 있다고 할 수 있습니다. 리누즈 토발즈가 커널을 개발해 현재 리눅스 시스템에 씨를 뿌렸다면 리차드 스톨만은 그 씨가 뿌려지기 위한 환경을 개발 한 사람이라고 할 수 있습니다. 실제로 전세계 리눅서들이 리누즈 토발즈를 리눅스의 아버지, 리차드 스톨만을 리눅스의 성자라고 부르는 이유가 여기에 있습니다. 그의 얘기를 할 때 빼놓을 수 없는 얘기는 GNU선언문에 관한 것입니다. "Gnu's Not Unix"라는 전 세계적인 프로젝트 그룹은 소프트웨어의 자유정신과 상징을 나타내고 있습니다.

GNU 선언문 (The GNU Manifesto)

저작권과 사용 허가에 대한 본 사항이 명시되는 한, 어떠한 정보 매체에 의한 본문의 전재나 발췌도 허용되며 상업적 이용을 포함할 수 있는 지속적인 배포에 따른 사용상의 모든 권리는 문서의 취득자에게 조건없이 양도된다. 1993년의 개정 이후, GNU 선언문은 영구 보존문으로 남아있게 될 것이며 원문에 대한 어떠한 형태의 수정과 첨삭도 허용되지 않는다.
Original Copy: The GNU Manifesto
Copyright (C) 1985, 1993 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA
Korean Translator: Ha Jaewon 하재원
Amendment Translator: 1998 Song Changhun 송창훈 chsong@cyber.co.kr

이는 컴퓨터 소프트웨어를 상호협력에 의해 지속적으로 발전시켜 나갈 수 있는 열린 형태로 만들기 위해서, 가장 근본이 되는 프로그램인 운영체제의 상업적 독점성을 없애려고 한 시도였습니다. 다시말해 프로그램을 무료로 제공하고 프로그래머들은 입수한 프로그램을 수정하고 재배포할 수 있는 권한도 얻게 된다는 의미였습니다.

1991년 7월부터 인터넷의 미닉스 뉴스 그룹에 그의 프로젝트를 위한 여러 가지 사항들을 메일링하기 시작한 리누즈는 그 자신의 유닉스라는 의미인 LINUX를 공식적으로 발표하였습니다. 이후 수많은 전세계 프로그래머들이 인터넷을 통해서 리누즈의 프로그램에 참여하게 되었고 이로 인해 커널 이외의 많은 프로그램들이 함께 통합된 운영체제로서의 모습을 완성시킬 수 있었습니다. 그리고 마침내 리눅스는 PC환경에서 멀티태스킹을 지원하는 운영체제로 거듭나게 되었습니다.


출처 : www.linux.co.kr

댓글 없음: