리눅스 (Linux)
"Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu)."
— 리누스 토르발스가 1991년 뉴스그룹에 올린 전설적인 최초 개발 선언 메일 중.
"윈도우가 일반 대중을 컴퓨터 앞에 앉혀 놓았다면, 리눅스는 전 세계 모든 클라우드 서버와 데이터 센터 뒷단에서 조용히 지구 문명과 IT 서비스를 구동하고 있다." 리눅스 커맨드라인에서 무심코 친 sudo rm -rf / --no-preserve-root 한 줄이 회사의 내년 영업이익을 공중분해 시킨다.(...)
1. 개요
리눅스는 리누스 토르발스가 1991년에 최초로 개발한 유닉스(Unix) 계열의 오픈소스 운영체제 커널이다.
처음에는 "그저 취미용 운영체제이며 GNU처럼 거대하지는 않을 것"이라던 창시자의 소박한 다짐과 달리, 소스코드를 완전히 공개하고 전 세계 천재 개발자들의 기여를 수혈받는 미친 오픈소스 생태계 폭발을 일으켰다. 오늘날 대형 서버 인프라(웹 서버), 클라우드 컴퓨팅 가상 머신, 안드로이드 스마트폰 내부, IoT 기기, 심지어 우주선과 슈퍼컴퓨터까지 지구상의 거의 모든 핵심 가동 기기들을 싹 쓸어버리며 인프라 표준의 완전무결한 왕좌로 군림하게 되었다.(...)
2. GNU/Linux의 탄생사와 Kernel vs Shell
2.1. GNU 프로젝트와의 기막힌 만남 (GNU/Linux)
자유 소프트웨어의 수호자 리처드 스톨만(Richard Stallman)이 이끌던 GNU 프로젝트는 컴파일러(GCC)나 쉘(Bash) 등 운영체제를 구성할 거의 모든 멋진 부품을 다 완성해 놓았으나, 딱 하나 운영체제의 심장부인 커널(Kernel)이 미완성이었다. 이때 혜성처럼 등장한 리누스 토르발스의 '리눅스 커널'을 GNU 소프트웨어들과 엮으면서 비로소 우리가 아는 완전한 하나의 운영체제, 즉 GNU/Linux가 비공식적으로 완성되었다.1
2.2. 운영체제의 핵심: 커널(Kernel)과 쉘(Shell)
리눅스를 깊이 배울 때 가장 먼저 접하는 뼈대는 커널과 쉘의 구조적 이원화다.
- 커널 (Kernel): 운영체제의 본체이자 뇌다. CPU 제어, 하드웨어 장치 관리, 물리 메모리 주소 할당, 시스템 호출 처리 등 하드웨어와 가장 가까운 최하단에서 동작하는 수호신이다. 일반 사용자가 절대 직접 수정하거나 제어할 수 없다.
- 쉘 (Shell): 사용자와 커널을 이어주는 통역사다. 검은색 터미널 화면에
ls,cd,grep등의 영문 명령어를 입력하면 쉘이 이를 알아듣고 커널에게 시스템 콜을 날린다. 대표적으로 Bash 쉘과 최근 개발자들에게 광적인 지지를 받는 Zsh 쉘이 있다.1
3. 오픈소스 서버 표준과 수많은 디스트리뷰션
3.1. 왜 서버 인프라는 리눅스를 고집하는가?
마이크로소프트의 윈도우 서버 라이선스는 매달 미친 듯한 라이선스 요금을 뜯어 가지만, 리눅스는 무료 라이선스(오픈소스)를 지향한다. 또한, GUI가 배제된 CLI(Command Line Interface) 전용 모드로 띄울 수 있어 서버 부팅 시 램(RAM) 소모가 단 수백 MB에 불과하다. 이로써 윈도우 OS가 갉아먹는 비싼 컴퓨팅 파워를 온전히 순수 웹 비즈니스 로직에 몰아줄 수 있으며, 완벽에 가까운 프로세스 격리와 뛰어난 네트워크 성능을 뿜어낸다.2
3.2. 리눅스 배포판(Distributions)의 스펙트럼
리눅스는 커널 형태만 제공되므로, 이를 일반 사용자가 편하게 쓸 수 있게 패키지 관리자(apt, yum)와 쉘 환경을 묶어 배포하는 배포판들이 존재한다.
- 우분투 (Ubuntu): 가장 널리 쓰이는 표준 배포판. 포럼 생태계가 막강하여 검색하면 모든 해결책이 쏟아져 나온다. 데스크톱용으로도 인기가 많다.
- CentOS / Rocky Linux: 엔터프라이즈 환경에서 매우 선호되던 안정성의 끝판왕. 레드햇(Red Hat) 진영의 라이선스 분쟁 이후 Rocky Linux 등으로 커뮤니티 힘이 이동하고 있다.
- 데비안 (Debian): 극도로 순수하고 보수적인 안정성 위주 배포판. 도커 이미지 경량화 시 기본 베이스 이미지로 자주 채택된다.
4. 리눅스 터미널의 자조적 밈과 실수담
4.1. sudo rm -rf / --no-preserve-root
모든 리눅스 개발자나 시스템 엔지니어들이 등골을 오싹하게 여기는 금기의 주문이다. 최상위 루트 디렉터리(/) 하위의 모든 폴더와 파일을 묻지도 따지지도 않고(-f), 하위의 하위까지 재귀적으로(-r) 강제 삭제하라는 무시무시한 명령어다. 실수로 테스트 서버나 운영 DB 서버에 이 명령을 날리는 순간, 그 어떠한 경고창도 없이 단 5초 만에 서버의 뇌와 영혼이 완전히 휘발하며 증발한다. 커뮤니티에서는 이 사고를 친 후 사표를 쓰고 조용히 짐을 정리해 야반도주하는 시나리오가 거의 국룰 드립으로 승화해 있다.(...)
4.2. I use Arch, by the way
해외 리눅스 마니아들이 입에 달고 사는 거만하고 귀여운 자조 드립이다. 아치 리눅스(Arch Linux)는 기본 우분투와 달리 설치 과정에서 그래픽 마법사가 전혀 없이, 검은 터미널에 파티션 나누기부터 드라이버 컴파일까지 몽땅 수동으로 해야 하는 하드코어 배포판이다. 이를 스스로 힘겹게 설치해 낸 리덕(리눅스 덕후)들이 커뮤니티 내 모든 뻘글 댓글창마다 "참고로 난 아치 리눅스 씀"이라며 자기 지식을 뽐내며 으스대는 꼴을 풍자하는 밈이다.3
5. 여담
- 리누스 토르발스의 깃(Git) 발명사: 리눅스 마스터이자 독설가인 리누스는 리눅스 커널의 수천 명 개발자가 동시에 소스 코드를 편집할 때 기존 도구(BitKeeper)가 말썽을 부리자, 열받아서 단 2주일 만에 형상관리 도구인 깃을 직접 짜버렸다. 천재가 빡치면 세상을 바꾸는 도구가 튀어나온다는 생생한 증거물이다.
- 안드로이드와 가전제품의 심장: 구글의 안드로이드 스마트폰 OS와 우리 집의 스마트 냉장고, 공유기 메인 펌웨어의 알맹이 역시 완벽하게 개량된 리눅스 커널이다. 당신이 아이폰을 쓰지 않는 이상, 매일 손가락으로 문지르고 있는 스마트폰의 실체는 사실 리눅스를 터치 GUI로 이쁘게 감싸놓은 덩어리다.
- 마이크로소프트의 태세 전환: 과거 MS의 CEO 스티브 발머는 "리눅스는 지적 재산권을 갉아먹는 암적 존재"라며 엄청난 저주를 쏟아부었으나, 세월이 흘러 클라우드 시대가 도래하자 현재 MS는 "Microsoft ❤️ Linux"를 공식 슬로건으로 내세우며 WSL(Windows Subsystem for Linux)을 개발해 윈도우 내부에서 리눅스를 완벽히 실행하도록 수혈하고 있다.
6. 관련 문서
각주
-
리누스 토르발스는 종종 GNU 프로젝트 측이 'GNU/Linux'라고 길게 안 부르고 그냥 'Linux'라고만 부르는 대중들의 행태에 불만을 터뜨릴 때 '뭐 어쩌겠냐만은...' 이라며 유쾌하게 무시하곤 한다. ↩ ↩2
-
윈도우 서버는 라이선스 요금도 요금이지만 서버 한 대 구동하는 데 최소 수 GB의 RAM을 기본 GUI 렌더링에 처먹기 때문에, 가성비 면에서 리눅스에 무참히 찢긴다. ↩
-
정작 아치 리눅스 유저들은 매주 배포판을 최신 업데이트하다가 커널이 자주 박살 나서 주말 내내 터미널을 보며 울부짖는 눈물겨운 이중성을 보인다. ↩