본문 바로가기

Linux Log

Linux는 어떻게 탄생하게 되었을까?

강의를 쭉쭉 듣는다. 리눅스를 공부하려고 했더니 탄생 과정부터 알아가는 중이다.. 이게 도움이 되려나 싶었는데 생각보다 도움이 많이 되는 거 같은 느낌이 든다. 일단 쭉 듣고 학습해보자.

"5강: 오픈소스 유닉스의 탄생" by youtube '뉴렉처'

Linux는 어떻게 탄생하게 되었을까?

 

지난 글에서는 유닉스가 어떻게 만들어졌고, 어떤 구조로 개발되었는지를 작성해보았다. 이번 시간에는 그 유닉스로부터 리눅스가 어떻게 탄생하게 됐는지를 작성해보려고 한다. 

 

서버 중심 구조의 시초

UNIX는 Work Station에 설치되고, 사용자는 단말기(terminal)를 통해 원격 접속하는 구조다. 여러 사용자가 동시에 자원을 공유하면서도 각자 독립된 작업 환경을 갖게 된 것이다. 

 

그럼 이런 UNIX로부터 어쩌다 Linux가 만들어진 것일까?

 

유닉스의 상용화

UNIX는 처음엔 연구기관과 대학에 자유롭게 배포되었지만, AT&T의 사용화 정책 이후 점점 유료 소프트웨어가 되어버린다. 각 기업들이 저마다의 UNIX를 만들며 상용 제품 경쟁에 뛰어들었고, 결과는 파편화였다.

나무위키: 유닉스 계보

  • 명령어와 구조가 다 다른 유닉스 제품들
  • 개발자는 이식성 문제로 고통받고
  • 사용자는 돈 내고도 호환이 안 되는 혼란스러운 상황

파편화된 유닉스들을 통합하기 위해 등장한 표준이 POSIX, 그리고 System V Interface Definition(SVID)이었지만 이미 시장은 시끌시끌거렸다.

항목 목적 내용 주관
POSIX 유닉스 계열 운영체제들의 호환성 표준을 만들기 위해 제정된 규칙 명령어, 시스템 호출(API), 셸 스크립트 등이 표준 인터페이스로 정의되어 있음 IEEE 정의
SVID AT&T의 유닉스 배포판인 System V의 공식 사양을 문서화 System V에서 제공하는 API, 시스템 콜, 명령어, 디렉토리 구조 등을 정리한 가이드 AT&T 정의

 

 

GNU 프로젝트: 유닉스를 다시 만들자!!

이런 상황에서 등장한 것이 GNU프로젝트다. 1983년, 리처트 스톨만은 FSF(Free Software Foundation)을 설립하여 "자유롭게 수정, 복제, 배포할 수 있는 유닉스를 새로 만들겠다"라고 선언했다. 

https://en.wikipedia.org/wiki/Richard_Stallman

그리고 실제로 GNU는 bash 셸, gcc 컴파일러, gdb 디버거, coreutils 등 유닉스에서 사용되던 대부분의 유틸리티들을 자유 소프트웨어로 재구현했다. 하지만 이 완전한 운영체제에 꼭 필요한 커널만은 만들지 못했고, GNU 커널인 HURD는 개발도 지연되고 있었다.

 

리누스 토르발즈

1991년, 핀란드 헬싱키 대학교의 대학원생 리누스 토르발즈는 인텔 80386 컴퓨터로 운영체제를 공부하고 있었다. 토르발즈가 사용하던 MINIX는 교육용으로는 괜찮았지만, 마음대로 고치거나 확장할 수 없다는 점이 불만이었다.

https://fossbytes.com/linus-torvaldss-famous-email-first-linux-announcement/

 

그래서 그는 직접 커널을 만들기 시작했고, 이 커널을 뉴스그룹에 공개하며 이렇게 썼다.

유튜버 뉴렉처 강의영상 中

(번역)


minix를 사용하고 계신 모든 분들께 안녕하세요

저는 386(486) AT 호환기를 위한 (무료) 운영체제를 만들고 있습니다. (그냥 취미로 하는 거고, gnu처럼 크고 전문적이지는 않을 거예요) 4월부터 작업해왔는데, 이제 거의 준비가 되어가고 있습니다. minix에서 사람들이 좋아하는/싫어하는 것들에 대한 피드백을 받고 싶습니다. 제 OS가 어느 정도 minix와 비슷하거든요 (실용적인 이유로 파일 시스템의 물리적 레이아웃이 같다든지 하는 것들 말입니다)... 어떤 제안이든 환영하지만, 구현하겠다고 약속은 못 드려요 :-)


Linus (torvalds@kruuna.helsinki.fi)


추신.
네—minix 코드는 전혀 사용하지 않았고, 멀티스레드 파일시스템을 가지고 있습니다. 이식 가능하지는 않습니다[오타] (386 태스크 스위칭 등을 사용해서), 아마 AT 하드디스크 외에는 지원하지 않을 겁니다. 제가 가진 게 그것뿐이라서요 :-(


출처:
Linux International 웹사이트에서 재인용 (www.li.org/linuxhistory.php)

하지만 바로 그 "취미" 프로젝트가 GNU의 빈칸을 채워주는 마지막 퍼즐이 된 것이다.

 

GNU + Linux = 오픈소스 유닉스의 완성

  • GNU가 만든 유닉스 유틸리티들
  • 리누스 토르발즈가 만든 자유로운 커널

둘이 결합되면서, 마침내 누구나 사용할 수 있는 완전한 오픈소스 운영체제가 탄생하게 된다. 이것이 우리가 지금 알고 있는 GNU/Linux다.

https://9to5linux.com/gnu-linux-libre-5-6-kernel-is-out-for-those-who-seek-100-freedom-for-their-pcs

 

GPL 라이선스 아래, 수많은 개발자들이 커널을 개선했고, 전 세계 수백만 명이 개발에 참여하게 된다. 더 이상 허가도, 로열티도 필요 없는 진짜 개방된 유닉스가 된 것이다.

 

끝내는 말

쭉 읽어보면 알겠지만, 리눅스가 처음부터 거창한 목표로 시작한 것은 아니었다. 단지 유닉스를 사용하기 불편한 상황 속에서 리눅스 커널 개발은 필연적이었다고 생각한다. 

 

그리고 지금 우리는 스마트폰, 서버, 라우터, 클라우드 등에서 매일같이 리눅스 기반의 기기 및 서비스를 사용하고 있다. 운영체제의 역사가 이렇게 길다니 계속 보고 또 봐도 신기하기도 하고 재밌네.