리눅스 초기 시대 (2023)
(lwn.net)- 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는 모든 대륙과 모든 해양, 수십억 기기, 궤도, 화성에서 실행되고 있음
댓글과 토론
Hacker News 의견들
-
재미있네요. 1992년에 Linux 0.98부터 쓰기 시작했음
모뎀으로 여러 게시판에 접속하면서 전화번호를 걸고 다니는 게 꼭 "WarGames" 주인공 같았음
처음으로ppp를 써서 진짜 인터넷에 붙던 날도 아직 기억남. 시행착오 끝에www.linux.org에ping을 보냈고, 호스트 이름이 해석되고 응답이 돌아왔을 때 한동안 말이 안 나오다가 “와”밖에 못 했음- 첫 인터넷 연결은 셸 계정에서 slirp를 쓰는 방식이었음. slirp는 원격 셸 머신에서 사용자 공간으로 도는 CSLIP 에뮬레이터였음
그때는 다중 사용자 셸 머신이 꽤 흔했고, 초기 ISP 중 일부는 그런 식으로 인터넷 접속을 제공했음
내가 쓰던 곳은 Internet Access Cincinnati라는 ISP였고, 각 사용자에게 SunOS(Solaris 이전)를 돌리는 Sun Sparc 10의 셸을 줬음. POP 이메일과 웹에서 접근 가능한~username홈 폴더도 받았음
- 첫 인터넷 연결은 셸 계정에서 slirp를 쓰는 방식이었음. slirp는 원격 셸 머신에서 사용자 공간으로 도는 CSLIP 에뮬레이터였음
-
Linux가 이 세상에서 유일하게 안정적으로 믿을 수 있는 것이 된 게 묘함. 켜면 시간이 갈수록 나쁜 의도 없이 더 좋아질 거라는 걸 알 수 있음
- 요즘엔 이게 정말 중요함. 새 기술이나 운영체제 대부분은 뭔가 의도가 있어 보이고, iPhone을 사라거나 오피스 구독을 하라는 식으로 나를 “밀어붙이려” 함
그런 면에서 Linux는 숨통이 트임. 토스터는 그냥 빵만 구우면 됨. 어떤 빵을 사야 하는지까지 말해주길 원하지 않음 - 90년대 중후반에는 데스크톱 컴퓨터와 하드웨어를 사기 전에 조사를 많이 해야 했던 시기가 기억남. 이 특정 네트워크 카드는 지원될까, 이 그래픽 카드는 X11에서 동작할까 같은 것들임
당시 절대 동작하지 않을 것 같던 WinModem 때문에 생긴 트라우마와 편집증이었을지도 모름
그런데 2000년대 초쯤부터는 중고 Zip 드라이브든 웹캠이든 새 하드웨어는 Linux가 지원하겠지라고 가정하는 세계로 바뀐 듯함
지금도 무작위 메인보드나 하드웨어 장난감을 겁 없이 사고 대체로 동작할 거라 생각함. 지금까지 운이 좋았지만, 이건 드라이버 개발자들의 공이 큼
커널에 단 한 번 풀 리퀘스트를 보내 특정 SD 카드 종류를 인식하는 매직 넘버만 추가하는 개발자 같은 사람들이 모두에게 큰 이득을 줌 - 어떤 우물도 오염될 수 있음. Linux는 사람들의 가치관과 실력에 의존하고, 둘 다 시간이 지나며 약해지지 않는다는 보장은 없음
전후 시민사회, 경제, 외교의 발전이 인류 역사에서 예외였던 것과 비슷함
지금의 현실이 보호나 지속적인 유지 노력 없이 영원히 이어질 거라고 가정하는 건 위험함 - 이게 Linus 개인의 영향 때문일까 걱정됨. 아직도 가끔 Linus가 나서서 질서를 잡아야 할 때가 있음
그가 은퇴한 뒤에도 계속 좋아지는 궤적을 유지할지는 확신하기 어려움 - 오픈 소스이면서도 자원이 풍부한 대형 사용자들이 너무 많아, 모두에게 개선하는 편이 이득인 적절한 조합임
이 특정한 경우에는 공유지의 비극이 거꾸로 작동하는 것 같음
이런 사회·경제적 동학과 게임 이론을 연구해서 재현하려고 해봐야 함. 누군가는 Linux가 어떻게 “공유지의 비극이 아닌 것”을 구현하는지로 게임 이론 박사 논문을 써야 함
- 요즘엔 이게 정말 중요함. 새 기술이나 운영체제 대부분은 뭔가 의도가 있어 보이고, iPhone을 사라거나 오피스 구독을 하라는 식으로 나를 “밀어붙이려” 함
-
Linux가 없는 세계를 겪어본 적 없을 만큼 어리지만, Linux 탄생 시점과는 가까워서 관련자 상당수가 아직 살아 있다는 게 묘한 느낌임
내 직업 인생 대부분이 어떤 식으로든 Linux를 중심으로 돌아갔고, 12살쯤부터의 삶 전체도 그랬음. 내 삶에 끼친 영향을 생각하면 꽤 놀라움- 컴퓨터 과학 전체 분야에 대해서도 비슷하게 느낌. 창시자들 상당수가 내 삶의 꽤 긴 기간 동안 살아 있었다는 게 이상함
Claude Shannon 2001, Edsger Dijkstra 2012, John McCarthy 2011, Niklaus Wirth 2024, Konrad Zuse 1995, Alonzo Church 1995, Jim Gray 2007/2012, Grace Hopper 1992
Alan Turing도 살해당하지 않았다면 내 생애 동안 살아 있을 수 있었음
2015년에 세상을 떠난 Friedrich L. Baur는 내가 다니던 대학에 아직 사무실이 있었고, 그 앞을 자주 지나며 이름표를 보고 이게 현실인가 싶었음
다행히 Donald Knuth는 아직 우리 곁에 있음 - 고전 광고 "Linux is a 10 year old boy"도 있음
https://www.youtube.com/watch?v=x7ozaFbqg00 - 무슨 뜻인지 알겠음. iPhone 없는 세상을 상상하기도 어려움
- 컴퓨터 과학 전체 분야에 대해서도 비슷하게 느낌. 창시자들 상당수가 내 삶의 꽤 긴 기간 동안 살아 있었다는 게 이상함
-
“더 중요하게는 X11 시스템이 Linux로 포팅되면서 1992년이 Linux 데스크톱의 해가 되었다”니, 드디어 Linux 데스크톱의 해가 확정됐네요 :)
좋은 글임 -
Linux 초창기가 잘 기억남. 90년대 중반 University of Waterloo에서 관심이 꽤 많았지만, 설치 문제나 특정 시스템에서 안정적으로 돌리는 문제에 대한 얘기도 많았음
당시 어떤 운영체제든 드물지 않은 일이긴 했지만, 직접 커널을 컴파일하고 XFree86과 씨름해야 하던 시절이었음
Red Hat 같은 배포판이 그런 걱정을 짧은 시간 안에 크게 줄였고, 전반적으로 훨씬 쉽게 만들어줬음. 문서도 훌륭했음
1990년대 후반에는 대학에서 Red Hat이 Solaris, AIX, IRIX만큼 흔해졌지만, 여전히 대부분은 Solaris보다 못하다고 봤음. 지금은 RHEL이 그곳에서 쓰이는 주된 *nix 시스템이고, 일부는 Debian을 씀- XF86Config modeline HOWTO 덕분에 CRT 컨트롤러가 어떻게 동작하는지 배웠음
- 최근 가상 머신에 Solaris를 설치해봤는데, 설치 프로그램을 보자마자 내가 기억하고 있는 줄도 몰랐던 Red Hat 파생판 설치 프로그램의 기억이 선명하게 돌아왔음
당시 상용 Unix에 관여할 만큼 나이가 많진 않았지만, 돌이켜봐도 Red Hat은 자신들이 누구를 겨냥하는지 아주 분명히 알고 있었던 것 같음 - 당시 큰 대학들의 흐름과도 맞는 것 같음. Alpha가 단종되어 가던 때를 기억하는데, 거기에 Red Hat을 다시 설치하면서 연구자들의 일상용 시스템으로 Linux가 더 힘을 얻었음
-
오늘 배운 것: Linus는 스웨덴어를 쓰는 핀란드인이고, 그런 집단이 실제로 있음
이 소리는 1994년부터 머릿속에서 계속 맴돌고 있음
[https://en.wikipedia.org/wiki/File:Linus-linux.ogg](https://en.wikipedia.org/wiki/File:Linus-linux.ogg)- 맞음, 그는 핀란드의 스웨덴계 소수민족에 속함. HN에 있는 사람들은 다 알고 있는 줄 알았음
- 와, 나중에는 영어 발음이 꽤 달라진 것 같음
- 고전 자료임. 나도 찾고 있었음. 당시 FTP 사이트에
linus.au라는 파일이 있었던 게 기억남
.ogg는 그때 아직 없었으니 아마 원본이었을 것 같고, 영어가 아닌 버전도 있었음(핀란드어였나?)
어떻게든 살아남아서 다행임
-
함께 읽을 만한 책: Just for Fun
https://www.amazon.com/Just-Fun-Story-Accidental-Revolutiona...- 10년쯤 전에 읽었음. 짧게 읽히지만 강력 추천함
-
인생의 대부분 동안 이런 기술적 성취는 손댈 수 없는 천재들의 작품처럼 보였음
그런데 이 이야기를 읽고 나니, 서로의 탐구를 지탱하는 장기적인 우정과 재정적·사회적 안정의 가치도 잘 드러남- 나쁜 예임. Linus는 천재임
-
Linux 초창기를 생각할 때 자주 떠오르는 건 경쟁자들임. 글에는 “상용 Unix가 너무 비싸서 직접 쓰는 편이 쉬웠다”는 내용이 나오고, 대체로 맞는 말임
하지만 Coherent Unix도 있었음. 당시 잡지 뒷표지 전체 광고로 99달러에 팔리던 게 기억남. 살까 말까 늘 고민했음
Coherent의 큰 단점 중 하나는 네트워킹이 없다는 점이었음. 그러다 Linux가 나왔고, 놀랄 만큼 짧은 시간 안에 Linux가 Coherent를 앞질렀으며 Coherent는 하룻밤 사이 사라진 것처럼 보였음
https://en.wikipedia.org/wiki/Coherent_(operating_system)- 1990년 12월 리뷰[1]를 읽어보면 그렇게 대단해 보이진 않음
“Coherent는 Unix의 뿌리에 충실하며, 근거리 통신망, 그래픽 사용자 인터페이스, 메뉴, 마우스, 그리고 오늘날 DOS 사용자와 Unix 사용자가 현대 소프트웨어에서 기대하게 된 많은 편의 기능을 피한다”고 되어 있음
이어서 “Coherent로 Unix를 배우는 길은 울퉁불퉁할 것”이고 “Coherent로 소규모 사업을 자동화하는 것도 현실적이지 않다”고 함
Coherent는 폐쇄 소스라서, Linux처럼 불완전한 시스템을 가져다 개선에 참여할 수 없었음. 초기 Linux가 사람들을 끌어들인 건 당시 Linux가 훌륭해서가 아니라, 사람들이 이런 작업을 좋아했기 때문임
99달러는 지금 가치로 약 230달러임. 예전엔 소프트웨어가 전반적으로 더 비쌌다는 건 알지만, 장난감처럼 써볼 뼈대뿐인 운영체제에 230달러는 Enterprise Unix™® 가격에 비해서만 “싼” 편임
[1]: https://books.google.ie/books?id=JZxkO0PpksUC&pg=PT61&redir_... - 나는 Coherent 고객이었고 꽤 좋았음.
kermit으로 직장의 Sun 시스템에 전화를 걸면 그쪽에서 다시 전화해주게 해서 통화료를 피하곤 했음
그렇게 USENET과 일반 인터넷 접속을 얻었음. 재미있는 시절이었음. 회사가 접은 건 아쉽지만, 솔직히 1995년쯤에는 이미 방향이 뻔해졌음
접은 뒤에는 Slackware로 옮겼고, 지금도 쓰고 있음. 그 당시 Linux는 거의 매일 바뀌고 있었음
Coherent에는 Linux가 못 하던 기능이 하나 있었는데, USENET에 물어보니 며칠 안에 누군가 패치를 줬음. 386sx에서 흑백 카드와 VGA 카드로 모니터 2대를 쓰게 해주는 패치였고, Coherent가 하던 것과 같았음
2000년대에 Fortune 500 기업들이 끼어들기 전에는 사람들이 훨씬 더 접근 가능했음 - BSD들도 거의 같은 시기에 등장하고 있었고, 특히 386BSD[1]가 있었음. Linus는 초기에 그것이 가능했다면 아마 Linux를 만들지 않았을 것이라고 말한 것으로 유명함[2]
386BSD의 첫 릴리스가 1992년이었으니, 여기서는 1~2년 정도의 짧은 시간 창을 말하는 셈임. 물론 FreeBSD와 NetBSD도 곧이어 거기서 갈라져 나왔음
[1] https://en.wikipedia.org/wiki/386BSD
[2] https://www.antman.se/abc-klubben/linux/linuxdoc/linus.html - 1987년부터 i386 PC에서 386/ix[1]를 돌렸고, 1992년 말에 386BSD 0.1로, 1993년쯤에는 FreeBSD로 옮겼음
[1] https://en.wikipedia.org/wiki/Interactive_Systems_Corporatio... - 1994년에 FreeBSD를 설치했던 기억이 남. 13살에게
startx로 내 컴퓨터에 Unix 같은 환경이 뜨는 건 정말 멋졌음
FreeBSD가 Linux보다 더 낫다고 느꼈지만, 다른 많은 경우처럼 앱 가용성이 승부를 갈랐음
- 1990년 12월 리뷰[1]를 읽어보면 그렇게 대단해 보이진 않음
-
2003년에 나온 Linux 관련 훌륭한 다큐멘터리가 있음. 제목은 Revolution OS이고 강력 추천함
https://www.youtube.com/watch?v=k0RYQVkQmWU- Linux와 GNU에 관한 다큐멘터리 중 내가 본 최고였음