- 1988년 Helsinki 대학에서 만난 Lars Wirzenius와 Linus Torvalds는 Unix 서버와 Usenet을 함께 접하며 Linux로 이어질 운영체제 탐구의 출발점을 만들었음
- 1991년 Linus가 386 PC와 MINIX를 구입한 뒤 시작한 멀티태스킹 실험은 화면에
A와B를 번갈아 출력하는 작은 프로그램에서 Linux 커널로 확장됨 - 초기 커널은 키보드·시리얼 포트 드라이버, VT100 에뮬레이션, 모뎀 접속, 파일 권한, 가상 메모리를 더하며 실제로 쓸 수 있는 운영체제에 가까워짐
- 1991년 comp.os.minix 공개와 ftp.funet.fi 업로드, 1992년 GNU GPL 채택·X11 포팅·SLS 등장, 1994년 Linux 1.0 릴리스가 초기 확산의 전환점이 됨
- “크고 전문적이지 않을 것”이라는 1991년의 표현과 달리, 2023년 Linux는 수십억 기기와 모든 대륙·해양, 궤도와 화성까지 실행 범위를 넓힘
Helsinki에서 시작된 인연과 Unix 경험
- Lars Wirzenius는 1988년 가을 University of Helsinki 컴퓨터과학 과정에 입학했고, 같은 해 스웨덴어권 신입생이던 Linus Torvalds를 만남
- 첫해 말 Unix 서버 접근 권한을 얻은 뒤,
rm을rn으로 잘못 입력하면서 Usenet 리더를 우연히 발견함 - Wirzenius가 Linus에게 Usenet을 알려주면서 두 사람은 많은 시간을 들여 이를 탐색함
- 1990년 가을 군 복무 후 복학한 두 사람은 C와 Unix 프로그래밍 과목을 수강했고, Unix 커널 구조 이론도 함께 배움
- 이 과정에서 QNX, Plan 9 같은 운영체제 커널을 읽고 운영체제 설계를 토론함
386 PC와 첫 커널 실험
- 1991년 1월 Linus는 부품 조립 PC를 구입함
- CPU는 당시 비교적 고급이던 386
- RAM은 4MB
- 하드드라이브가 포함됨
- 멀티태스킹을 탐구하려면 386이 필요했고, 이전에 32비트 Motorola 68008 CPU를 가진 Sinclair QL을 사용했기 때문에 16비트 286은 선택하지 않음
- 처음 몇 달은 Prince of Persia 게임에 많은 시간을 썼고, 이후 집에서도 Unix 비슷한 환경을 쓰기 위해 MINIX를 구입함
- 게임을 끝낸 뒤 Intel 어셈블리 언어를 배우기 시작했고, 어느 날 한 태스크는
A, 다른 태스크는B를 화면에 출력하는 멀티태스킹 프로그램을 보여줌 - 이 작은 프로그램이 나중에 Linux 커널로 알려질 첫 버전이 됨
초기 커널 기능과 이름의 변화
- Linus는 프로그램을 확장하면서 대부분을 C로 작성하기 시작함
- 1991년 늦봄 Wirzenius는 Linus를 위해 C의 sprintf() 구현을 작성함
- Linus가 아직 가변 인자 목록을 쓰는 함수를 작성하는 법을 배우지 않았기 때문임
- 이 코드의 핵심은 현재 커널의 snprintf()에 남아 있음
- 초기 커널은 시간이 지나며 실제 사용에 필요한 기능을 갖춰감
- 키보드 드라이버
- 시리얼 포트 드라이버
- 화면용 VT100 터미널 이스케이프 시퀀스 에뮬레이션
- 모뎀으로 대학에 전화해 집에서 Usenet을 읽는 기능
- Linus가 실수로 하드드라이브를 이용해 대학에 전화하려 하면서, 마스터 부트 섹터가
ATDT와 대학 모뎀 풀 전화번호로 시작하게 됨 - 이 사고 이후 커널에 파일 권한이 구현됨
공개와 GPL 채택
- 1991년 8월 Linus는 comp.os.minix 뉴스그룹에서 새 커널을 처음 공개적으로 언급함
- 당시 문구에는 “free 운영체제를 만들고 있다”, “그냥 취미”, “gnu처럼 크고 전문적이지 않을 것”이라는 표현이 포함됨
- 시스템의 초기 이름은 Freax였음
- 몇 주 뒤 Linus는 ftp.funet.fi 관리자 중 한 명인 Ari Lemmke에게 첫 tar 아카이브 업로드를 요청했고, Ari가 Linux라는 이름을 선택함
- 초기 버전에는 원래 이름이 소스 파일 하나에 남아 있음
- 사람들이 새 시스템을 시험해보고 싶어 하면서 설치 방법과 지침이 필요해짐
- Linus는 PC가 하나뿐이었고 자신의 Minix 설치 위에서 Linux를 개발해왔기 때문에 실제 설치 경험이 없었음
- Wirzenius의 PC가 Linux가 처음 설치된 PC가 됨
- 초기 Linux 릴리스의 라이선스는 상업적 사용을 금지함
- 일부 초기 기여자는 자유 소프트웨어 라이선스로 바꾸자고 제안함
- 1991년 가을 Richard Stallman이 Finland를 방문했고, Wirzenius는 Linus를 Stallman 강연에 데려감
- 기여자들의 압력, Stallman 강연, Wirzenius의 설득이 합쳐져 Linus는 1992년 초 GNU GPL을 선택함
- 크리스마스 휴가 동안 Linus는 Linux에 가상 메모리를 구현했고, 메모리가 적은 저가 머신에서도 Linux가 훨씬 실용적으로 동작하게 됨
1992년: 논쟁, 데스크톱, 배포판
- 1992년은 Andrew Tanenbaum과의 유명한 논쟁으로 시작됨
- Tanenbaum은 MINIX 저자이자 대학 교수였고, Linux와 그 아키텍처에 대한 의견을 냄
- Linus도 MINIX에 대한 의견을 냄
- 이 논쟁은 flame war로 불렸지만, 되돌아보면 꽤 정중한 편이었음
- Linux의 미래 성공에 더 중요했던 사건은 X11이 Linux로 포팅된 일이었고, 1992년은 Linux 데스크톱의 해가 됨
- Wirzenius는 커널보다 커뮤니티 쪽에 기여하기로 하고 질문 답변과 문서 작성을 도움
- 짧게 운영된 Linux 뉴스레터도 만들었고, 이 뉴스레터는 Linus의 첫 인터뷰를 실음
- 이 뉴스레터는 사실상 comp.os.linux.announce 뉴스그룹으로 대체됨
- 1992년 첫 Linux 배포판인 Softlanding Linux System, 즉 SLS가 시작됨
- 이듬해 SLS는 Slackware로 이어졌고, Slackware는 Ian Murdock이 1993년 Debian을 시작하는 데 영향을 줌
- Debian은 더 커뮤니티 기반의 개발 구조를 탐구하기 위해 시작됨
대학 사무실, 네트워킹, 포팅
- 1993년 Linus와 Wirzenius는 대학 조교로 채용되어 사무실을 함께 씀
- 사무실에는 PC가 있었고 Linus가 이를 Linux 개발에 사용함
- 어느 날 Linus는 PC가 느리다고 느껴 Linux 커널 명령행 파서를 속도를 위해 어셈블리 언어로 다시 작성함
- 이 작업은 나중에 이식성을 위해 C로 다시 작성됨
- 파서의 속도는 중요하지 않았음
- 몇 년 뒤 Linus는 Quake를 며칠 동안 플레이했고, 명목상 목적은 커널 메모리 관리 스트레스 테스트였음
- 어느 시점부터 Linux는 Ethernet과 TCP/IP를 지원함
- 덕분에 모뎀 없이 Usenet을 읽을 수 있게 됨
- 초기 Linux 네트워킹 코드는 처음부터 작성되어 거친 면이 있었음
- 한때 Linux가 깨진 패킷을 보내 네트워크의 모든 Sun 머신을 중단시켰고, Sun 커널 수정이 어려워 Linux 버그가 고쳐질 때까지 대학 네트워크에서 Linux 사용이 금지됨
Linux 1.0과 이후의 확장
- 1994년 봄에는 Linux가 완성됐다고 느껴졌고, 버전 1.0 릴리스가 결정됨
- 당시 Linux는 스스로를 컴파일하고, Usenet을 읽고,
xeyes프로그램을 여러 개 동시에 실행할 수 있었음 - 릴리스 행사가 열렸고, Finnish 컴퓨터 언론과 TV 방송국 촬영팀이 참석함
- 행사 대부분은 Linux 1.0을 배경에서 의식적으로 컴파일하는 동안 Linus와 다른 사람들이 Linux가 무엇이고 어디에 좋은지 이야기하는 방식으로 진행됨
- Linus는 PC용 상용 Unix가 너무 비싸 직접 작성하는 편이 더 쉬웠다고 말함
- 1995년 Linus와 Wirzenius는 대학 소프트웨어공학 과목을 수강했고, 대규모 실습 프로젝트를 Linux 위에서 진행함
- Wirzenius는 CVS 사용을 요구함
- 이전 학생들이 NFS 공유 소스 트리에서 “이 파일을 편집 중”이라고 외치는 방식으로 버전 관리를 하는 것을 봤기 때문임
- 이 경험 때문에 Linus는 CVS를 싫어하게 되었고, 여러 해 동안 FTP 사이트에 tarball을 올리는 것 이상의 버전 관리를 거부함
- 같은 해 Linus는 DEC Alpha 머신을 받아 Linux를 처음으로 새 아키텍처에 포팅함
- 다른 사람들도 Linux를 다른 아키텍처로 포팅함
- 1997년 Linus는 졸업 후 미국으로 이동해 Transmeta에 취업함
“취미”에서 세계적 시스템으로
- 이후 Linux에는 빠진 기능들이 여전히 있었고, 사람들이 이를 계속 개발함
- “open source”라는 용어가 만들어졌고, IBM은 Linux 개발에 많은 돈을 투자함
- Netscape는 웹 브라우저 버전을 오픈소스로 공개함
- LWN은 시작 이후 이 역사 상당 부분을 주 단위로 다룸
- 1991년 Linus는 Linux가 “gnu처럼 크고 전문적이지 않을 것”이라고 썼지만, 2023년 Linux는 모든 대륙과 모든 해양, 수십억 기기, 궤도, 화성에서 실행되고 있음