요즘 리눅스는 어디에나 있습니다. 그 최종 증거는 바로 윈도우에서 찾을 수 있습니다. 마이크로소프트가 WSL 2(Windows Subsystem for Linux 2)를 출시하면서 자사 운영체제에 리눅스 커널을 함께 탑재하고 있기 때문입니다. 얼마 전까지만 해도 이런 일은 에이프릴 풀스 데이 장난처럼 여겨졌을 것입니다.
리눅스가 인터넷의 상당 부분을 지탱하는 기반이 되었지만, 무에서 유를 창조한 것은 아닙니다. 리눅스 이전에는 유닉스가 있었고, 리눅스가 오늘날의 인기를 누릴 수 있었던 것은 1970년대, 심지어 1960년대에 탄생한 아이디어들의 공덕입니다.
유닉스란 무엇인가?
유닉스는 단순함을 추구하지만, 정확히 무엇인지 설명하기는 쉽지 않습니다. 최초의 유닉스는 AT&T의 운영체제였지만, 오늘날 UNIX 상표권은 The Open Group이 보유하고 있습니다. 또한 유닉스는 하나의 운영체제 계열 전체를 지칭하는 분류로도 사용됩니다.
그리고 '유닉스 철학'이라는 개념도 있습니다. 이는 유닉스 프로그램이 따라야 할 일반적인 지침으로, 핵심은 각 프로그램이 한 가지 일을 잘해야 한다는 것입니다. 모든 기능을 욱여 넣기보다, 유닉스 도구는 자신의 역할만 충실히 수행하고, 그 출력이 다른 프로그램의 입력으로 매끄럽게 연결될 수 있어야 합니다.
현재 다양한 유닉스 변종들이 무료 및 상용 형태로 존재합니다.
리눅스란 무엇인가?
리눅스 역시 생각보다 정의하기 까다로운 용어입니다. 엄밀히 말하면 완전한 리눅스 배포판은 '유닉스 계열(Unix-like)' 운영체제이지만, 이것은 시작에 불과합니다.
많은 사람들이 리눅스를 GNU/Linux라고 더 정확하게 불러야 하는 것의 줄임말로 사용합니다. 리눅스 자체는 커널일 뿐이며, 커널은 운영체제에서 핵심 연산을 수행하고 하드웨어와 통신하는 부분입니다. 이 커널 위에서 실행되는 핵심 유틸리티들 역시 그만큼 중요합니다.
GNU는 "GNU's Not Unix"의 재귀 약자입니다. GNU 프로젝트에는 원조 유닉스 코드가 하나도 포함되어 있지 않지만, 유닉스 운영체제에서 기대할 수 있는 모든 유틸리티를 제공합니다. 이것이 유닉스와 리눅스의 핵심적인 차이점 중 하나입니다.
유닉스 vs 리눅스: 간략한 역사
흥미롭게도 유닉스의 창시자들조차 처음부터 완전한 시스템을 만든 것은 아닙니다. 켄 톰슨(Ken Thompson)과 데니스 리치(Dennis Ritchie)는 더 이전의 운영체제인 멀틱스(Multics)에서 영감을 받았습니다. 벨 연구소에서 이 두 사람은 해당 운영체제의 개념들을 가져와 C 언어로 자신들의 시스템을 새로 작성했는데, C 언어는 리치가 직접 설계하고 개발에 참여한 언어입니다.
유닉스는 오픈소스 소프트웨어가 아니었습니다. AT&T는 상용 라이선스를 판매했지만, 유닉스를 연구한 곳은 AT&T만이 아니었습니다. 버클리의 학자들은 처음에 BSD(Berkeley Software Distribution)라는 확장 패키지를 개발했고, 결국 BSD는 완전한 독립형 유닉스로 성장했습니다.
1980년대부터 1990년대에 걸쳐 여러 회사들이 자체 유닉스 제품을 판매하기 시작했습니다. IBM의 AIX, 썬의 솔라리스(Solaris), 그리고 나중에 SCO UNIX가 된 제닉스(Xenix) 등이 대표적입니다.
세계를 사로잡은 리눅스
다양한 유닉스 제품 외에도 여러 유닉스 계열 변종들이 존재했습니다. 그중 하나가 학술용으로 개발된 미닉스(MINIX)였습니다. 헬싱키의 소프트웨어 개발자 리누스 토르발즈(Linus Torvalds)는 미닉스의 한계에 답답함을 느꼈고, 자신이 새로 구입한 PC의 성능을 제대로 활용할 수 있는 유사한 커널을 만들기로 결심합니다.
같은 시기에 리처드 스톨먼(Richard Stallman)은 커널을 찾고 있었습니다. 그는 1983년 GNU 프로젝트를 시작해 다양한 유닉스 유틸리티의 자유로운 대체품들을 만들어 왔지만, 당시 그에게 없던 것은 바로 자유롭게 사용할 수 있는 오픈소스 커널이었습니다. 토르발즈는 이미 자신의 커널과 함께 GNU 유틸리티를 사용하고 있었고, 결국 다른 사용자들도 그렇게 되었습니다.
리눅스는 빠르게 폭넓은 관심을 받았습니다. 1990년대 중반까지 이 프로젝트는 폭발적인 인기를 얻었는데, 그 이유는 커널과 GNU 도구 세트 모두 처음부터 무료로 설계되었기 때문입니다. 다른 자유 유닉스 운영체제들이 등장했음에도, 유닉스 초창기 20년간의 상업적 성격은 그들 위에 그늘로 드리워 있었습니다. 이는 오늘날까지 유닉스 대 리눅스 경쟁 구도에 영향을 미치고 있습니다.
오늘날 유닉스는 어떻게, 어디에 사용되는가?
현재 인기야말로 리눅스와 유닉스의 가장 큰 차이점이라 할 수 있습니다. 그렇다 해도, 리눅스와 비슷한 소프트웨어를 실행할 수 있는 무료 유닉스 배포판들이 존재합니다. 가장 인기 있는 두 가지는 FreeBSD와 OpenBSD로, 이름에서 알 수 있듯이 둘 다 BSD 계열의 변종입니다.
그리고 물론 애플이 있습니다. 요즘 구매하는 어떤 애플 기기든, 맥북, 아이폰, 심지어 애플 워치까지 유닉스 계열 운영체제를 기반으로 동작합니다. 아이폰이나 애플 워치에서는 사용하면서 이를 알아차리기 어렵지만, 맥 컴퓨터에서는 이야기가 다릅니다.
맥 터미널(Terminal) 앱을 실행하기만 하면 ls, pwd 같은 표준 유닉스 유틸리티는 물론 vim 같은 강력한 편집기까지 자유롭게 사용할 수 있습니다. 이러한 도구들을 잘 활용하면 생산성을 크게 높일 수 있습니다.
리눅스는 어디에나 있다
리눅스는 어디에나 있지만, 눈에 잘 띄지 않을 뿐입니다. 세계에서 가장 인기 있는 모바일 운영체제인 안드로이드는 리눅스의 포크(fork)입니다. 일상적으로 사용할 때는 느낄 수 없지만, 그 이면에는 모바일 기기에 맞게 수정된 리눅스 커널 버전이 탑재되어 있습니다.
인터넷의 상당 부분 역시 리눅스 위에서 돌아갑니다. 윈도우와 유닉스 변종이 일부 서버를 구동하지만, 압도적으로 많은 서버가 리눅스 배포판을 사용합니다. 이는 운영체제가 무료라는 점 때문이기도 하지만, 무엇보다 견고성이 뛰어나 다운타임이 적기 때문입니다. 유닉스가 덜 안정적이라는 뜻은 결코 아니지만, 리눅스의 압도적인 인기 덕분에 유닉스 대 리눅스 선택에서 대부분의 사람들은 리눅스를 고릅니다.
최근 몇 년간 리눅스의 가장 주목받은 등장 중 하나는 바로 WSL(Windows Subsystem for Linux)입니다. 이를 통해 윈도우 환경에서 리눅스 유틸리티를 실행할 수 있으며, 웹 개발자와 소프트웨어 엔지니어에게 큰 도움이 됩니다.
유닉스나 리눅스를 처음 시작하시나요?
유닉스나 리눅스 기반으로 컴퓨터를 사용하는 것은 그 어느 때보다 쉬워졌습니다. 윈도우는 핵심에서 리눅스를 구동하지 않지만, 윈도우 위에 리눅스를 올려 실행하는 것은 충분히 가능합니다. 또한 구매하는 어떤 애플 기기에도 유닉스 변종이 핵심에 내장되어 있습니다.
컴퓨터에서 '진짜' 리눅스를 경험하고 싶다면 그것도 어렵지 않습니다. 수많은 리눅스 배포판 중 하나를 직접 설치하면 됩니다. 리눅스가 미리 설치된 컴퓨터를 선호한다면, 검증된 리눅스 노트북 목록을 참고해 선택하는 것도 좋은 방법입니다.