본문 바로가기

코드^학습/메모한 지식

리눅스 커널 심층분석 0x002

1_ 리눅스 커널의 개요

◆ 리눅스의 개발

 유닉스는 벨 연구소의 실패작인 멀티 유저 운영체제 프로젝트, 멀틱스(Multics)로부터 태어났다.

멀틱스 프로젝트가 종료되었을 때 벨 연구소 사람들은 원했던 결과물을 얻지 못했는데


1969년 여름, 벨 연구소에서 파일 시스템을 하나 만들게 된다. 이것을 당시 기계어로 만든 PDP-7이란 기기에 구현하는데. 이것을 다시 PDP-11로 포팅되고, 1973년 당시에 파격적이었던 C언어로 재작성된다. 이것이 바로 유닉스에 이식성을 부여하는 계기가 된다.

 그 이후에 버클리 대학에서 만들어진 BSD란게 있고 오늘날에는 FreeBSD, NetBSD, OpenBSD 등의 시스템으로 이어지면서 계속 개발되고 있다.


 유닉스 시스템은 독창적이면서도 수년에 걸친 개선/발전 과정을 통하여 매우 강력한 운영체제로 거듭났다. 다른 많은 OS들이 수많은 시스템 콜을 사용하는데 반하여, 유닉스는 데이터와 디바이스르를 조작하는데 open, read, write, octl, close로 단순화했다.


 리눅스는 1991년 Linus Torvalds에 의해 개발된 운영체제로, 개발 초기에는 그 당시 최신 기종이었던 Intel 80386 프로세서를 탑재한 컴퓨터를 위한 운영체제였다. 당시 헬싱키 대학의 학생이었던 리누스는 무료로 쓸 수 있는 유닉스 시스템이 없다는 사실이 불만이었다. 그래서 직접 작성하기 시작했다. 그의 작업은 학교에 있는 유닉스 시스템에 연결하기 위한 터미널 에뮬레이터에서부터 시작됐다. 이 에뮬레이터가 공개되면서 리눅스의 역사가 시작하게 된다.

 오늘날 리눅스는 유닉스를 모방한 운영체제이지만 유닉스와는 다르다. 유닉스에서 많은 개념을 차용했지만 유닉스를 직접 차용하진 않고 있다. 그리고 여러 기여자에 의해 만들어진 리눅스는 배포할 때는 소스코드 포함한 결과물을 공개해야한다.(이게 아마 GPL인가 하는 라이선스일 것이다.) 리눅스 시스템의 기본은 C 라이브러리, 컴파일러, toochain, login, shell과 같은 기본 시스템 유틸리티이다. 그러나 리눅스는 현대적인 X 윈도우 시스템과 그놈(GNOME)과 같은 데스크탑 환경을 제공한다.