유닉스란 무엇인가?
유닉스가 무엇인지에 대한 궁금증을 시작으로 정리한 글입니다.
시작하며
지금은 맥북이 많이 대중화 되었고 우분투라는 리눅스 진영의 좋은 배포판이 많이 알려지면서 상황이 많이 호전된 것 같긴 하다. 현재 실무에서 어떤식으로 진행되고 있는지는 모르겠지만 첫 회사에 다니던 15년전 대한민국에서는 Java SI 개발자라고 한다면 윈도우즈 + 이클립스 + Spring 환경을 기본으로 실무에 투입되는 것이 기본이었다. 이를 기반으로 작업을 하는 자바 개발자들은 자연스럽게 리눅스 환경과 CLI 환경에 대한 거부감과 공포심이 무의식중에 자리 잡게 되고 해가 지날수록 기술적 격차는 더 커지게 되는 구조였다.
어쨌든 컴퓨터 계열 직장에서 생활하다보니 이따금 리눅스 계열이나 레드햇 계열 또는 POSIX와 같은 이상한 단어들을 만나는 기회가 있었다. 모두 같아 보이는데 뭐가 다르단 말인가? 당시에는 서버에 접근할 수 있는 사람도 한정적이었고 리눅스에 대한 기본 지식도 없었기 때문에 이에 대한 궁금증이 상당히 컸었다. 우분투처럼 접근하기 편한 리눅스 배포판에 대한 존재여부도 몰랐었으니 일자무식 그 자체였다. UNIX, Linux, GNU/Linux, Debian, AIX, Redhat, CentOS 정말 알 수 없는 이야기들이었다. 조금 올드하신분을 만나면 솔라리스까지 튀어나오는데 Java만 만지는 직원이 무슨 재간으로 그 깊은 뜻을 헤아리겠는가? 다 고만고만해 보이지만 막상 명령어도 미묘하게 조금씩 다르고 말하는 사람마다 기준도 중구난방이라 나를 더 미치게 만들었었다. 이 포스트는 이 이야기를 한 번 정리해보는 것을 목표로 시작했다.
커널이란?
지금 이 문서에서 정리하려고 하는 UNIX라는 것은 결국 운영체제를 말한다. 이를 논하려면 우선적으로 커널이라고 하는 것을 이해해야만 한다. 커널은 사전적인 의미로도 핵심을 뜻하며 하드웨어를 포함한 시스템 내의 모든 것을 완전히 제어하고 응용 프로그램을 수행하기 위한 여러 가지 기능을 제공하는 핵심 프로그램을 말한다. 커널은 하드웨어와 프로세스의 보안을 책임지고 한정된 시스템 자원으로 프로그램을 원활하게 실행하기 위해 시스템을 효율적으로 관리한다. 또한 하드웨어 추상화 인터페이스를 제공하여 다양한 하드웨어를 호환(하드웨어 드라이버)할 수 있도록 한다.
초창기 커널은 필수적인 것이 아니었다. 직접 하드웨어를 연결하고 불러들인 다음 실행하였으며 다른 프로그램을 실행하려면 컴퓨터의 전원을 껐다가 켜서 다시 읽어들여야만 했다. 이 방식은 당시 컴퓨터의 일반적인 운영 방식이었다. 시간이 흘러 사람들은 로더와 디버거 같은 작은 프로그램들을 컴퓨터에 상주시켜두는 것이 사용자가 원할 때 프로그램을 교체하거나 새로운 프로그램을 개발하는데 유리하다는 것을 깨달았고 실제로 이 두 프로그램은 초기 커널의 기초가 되었다.
유닉스란?
초창기
PDP-7
PDP-7은 초창기 컴퓨터로 하드웨어에 맞춤 제작된 운영체제가 함께 제공되는 방식이었다.
1970년대
AT&T사는 20세기 과학기술에 많은 기여를 한 곳이다. 우주배경복사, CCD (이미지센서), 트렌지스터, 레이저, 전파망원경 등 노벨상 수상자만해도 10명이 넘는다. 명칭이 벨 연구소 AT&T 인데 우리가 아는 전화기를 뜻하는 그 벨 전화사의 연구소이다. 이곳의 연구원이던 켄 톰프슨은 게임을 만들다가 선배한테 들키는 바람에 당시 기준의 비교적 작은 미니 컴퓨터로 게임을 하려고 했다. 근데 이 미니 컴퓨터가 너무 느려 운영체제를 수정했고 이는 유닉스의 기본 모델이 될 운영체제가 된다.
Multics And Unics
멀틱스 | 켄 톰프슨과 데니스 리치 |
---|---|
멀틱스 로고 | 켄 톰프슨과 데니스 리치 |
멀틱스는 현대의 운영체제에 큰 영향을 준 초기 시분할 운영체제의 하나이다. GE645 메인 프레임 컴퓨터의 입출력을 위한 목적으로 고안된 운영체제였으나 하드웨어 호환성, 멀티 유저, 멀티 프로세싱 등 여러가지 문제점들이 혼재하여 상업적으로는 성공하지 못했다. 켄 톰프슨과 데니스 리치1는 멀틱스 운영체제 개발을 함께 했다. 둘은 멀틱스의 실패를 통해 신규 운영체제인 유닉스에 여러가지 개선점을 적용하였다. 유닉스는 Multics의 계보를 이으며 명칭도 Unics로 사용하려 했으나 말 장난을 넣어 UNIX라고 최종 결정되었다.
전화시장을 독점하던 AT&T는 반독점소송에서 패소하는 등 복잡한 일들에 얽혀 있었고 멀틱스의 실패를 포함해 회사가 이 연구비를 지원해줄 의미도 관심도 없는 상태였다. 당시 컴퓨터 가격만 수억원에 달했는데 이것만 따져봐도 AT&T가 진행하는 거대한 프로젝트들은 막대한 연구비가 드는 일이었고 이해가 가는 결정이기도 했다.
결국 AT&T는 troff라고 하는 문서 포매팅 시스템을 유닉스의 소스 코드를 포함하여 저렴하게 판매하였다. 저가에 운영체제를 사용할 수 있다는 점에서 전세계 프로그래머들에게 큰 관심을 사면서 유닉스의 시대가 다가오는 계기가 되었다. 유닉스는 이후 당시 고수준 언어였던 C언어로 다시 고쳐써지게 되면서 이기종간 이식성을 향상시켰고 더 빠른 속도로 퍼지게 된다.
BSD의 출현
이후로 수 많은 조직들이 무료로 배포되는 유닉스를 쓰기 시작하면서 일부 굵직한 수정판들이 나오기 시작했다. 그 중에는 버클리 대학에서 작성된 BSD(Berkeley System Distribution)가 대표적인데 이 BSD 배포판은 MacOS의 조상격인 운영체제이다.
GNU의 출현
Richard Matthew Stallman
1980년대에 들어서 AT&T는 유닉스를 사용하는 사용자들에게 라이센스를 요구하기 시작했는데 리처드 스톨만(Richard Matthew Stallman)은 유닉스와 비슷하지만 모든 것을 무료로 작성하여 1983년도에 발표하기 이르렀다. GNU2는 1990년대까지 필요한 OS 구성 요소를 모두 만드는데 성공했지만 원했던 완전모듈식 자체 커널 개발은 아직이었다. 리처드 스톨만은 자유 소프트웨어3 재단의 수장이자 지금 우리가 운영체제를 무료로 사용할 수 있게 해준 사람이라해도 과언이 아니다.
무료 운영체제
운영체제를 무료로 사용한다는 것이 이해되지 않을 수 있다. 과거에는 PC를 구매한다는 것은 일반적으로 완제품을 구매하는 것이었으며 이 가격에는 운영체제와 기타 S/W 가격을 포함시켜 판매하는 것이 일반적이었다. 이러한 가격정책이 소비자가 알지 못하는 곳에서 음성적으로 이루어지고 장기간 시중에 유통되다 보니 컴퓨터에 윈도우즈가 있는 것이 바늘 가는데 실 가는 것을 넘어 바늘에 실이 일체형으로 만들어지는 것으로 인지하고 있는 사람들이 지금도 많이 있다.
대한민국도 예외는 아니었는데 2010년에나 되어서야 이러한 사실들이 널리 알려졌다. 전형적인 끼워팔기 수법으로 당시 구매자들의 배신감은 이루 말할 수 없었으나 전자제품 유통 허브였던 용산은 예나 지금이나 원성이 자자했고 끼워팔기 같은 수법은 당시 일종의 영업기술처럼 취급되어서 "에라이, 그럼 그렇지" 하고 그냥 넘어가는 분위기도 많았다.
요즘엔 랩톱을 구매하거나 조립된 완성형 PC를 구매할 때에도 쉽게 운영체제 미포함4이라는 옵션을 볼 수 있고 윈도즈 라이선스를 별도로 구매할 수 있는 항목들도 쉽게 찾아볼 수 있어서 운영체제도 돈을 받고 구매해야 하는 소프트웨어라고 쉽게 인지할 수 있게 되었다. 이것도 내 기억으로는 많은 쇼핑몰에 짧은 기간 동안 일제히 생겨났는데 말도 안 되지만 기술의 발전을 기다렸거나 또는 매출증진을 위하여 추가됐을 수도 있다. 실제로 윈도우즈 소프트웨어가 이미 있는 경우에는 하드웨어만 교체하고 기존 윈도우즈로 설치를 진행하면 추가적인 구매비용이 없기 때문이다. 더 많은 하드웨어 구매를 기대해볼 수 있다.
그러나 개인적인 생각으로는 슬프게도 국내소비자를 너무 배려해주는 "그 곳"의 성향상 이해가 안되는 판단이다. 원성이 폭발하기 전에 빠르게 대응한 것이 아닐까? 하는 의심을 지울수가 없다. 마치 취재가 시작되자..와 같은 느낌이다. 다나와나 쿠팡같은 대형 온라인 쇼핑몰이 등장하면서 유통구조를 틀어쥐게 되면서 오프라인 매장이 역사속으로 서서히 가라앉는 수순을 밟고 있던 것도 한 몫 했을 것이다. 막말로 울며 겨자먹기로 수십만원의 소프트웨어를 두번 세번 사야해도 대안도 없고 규제먹은 적도 없는데 뭐하러 소비자를 배려해야 하는가? "그 곳"을 대변하려는 것은 아니다. 나도 일반 소비자이기도 하고 너무도 잘 된 일이다.
무료 운영체제로 가장 직접적인 혜택을 받은 것은 사업자들일 것이다. 서버용 운영체제의 경우 가정용보다는 훨씬 더 높은 가격으로 책정되기 마련인데 리눅스를 사용하면 한 마디로 무료이기 때문이다. 전세계에 수 많은 서비스들이 활성화되고 사용자들이 그 서비스를 사용하면서 편의를 누릴 수 있는데 지대한 영향력을 끼친것이다.
브라우저 시장
이맘때쯤 브라우저 시장도 파도가 한 번 들이쳤다. 윈도즈 사용률이 압도적이었던 대한민국에서는 브라우저 또한 IE가 꽉 잡고 있었는데 이 IE 브라우저도 운영체제 가격에 끼워팔기를 시전하고 있었다는 것이다. 기능도 개떡같고 뻑하면 뒤져버리는 이 브라우저를 왜 돈 내고 사야 되냐는 소비자들의 원성은 점점 거세졌고 당시 시장을 무서운 속도로 잠식해가고 있던 대체 브라우저인 크롬의 등장은 이런 기세를 더욱 가속시켰다. IE 브라우저는 그렇게 노병이 되어 사라져 가는 듯싶었다.
그러나 노병은 죽지 않는다던가... 잊히지 않고 IE Edge라는 이름으로 다시 출시된 MS의 브라우저는 윈도즈 10부터 기본 소프트웨어로 설치되어 있다. 무료라고 해도 요즘엔 태생이 전부 크로미엄이라 그럴 거면 크롬 쓰고 말지 왜 이거 지우지도 못하게 만들었냐 또 원성을 사고 있다. 이것도 점점 시끄러워지면서 유럽 버전에서는 삭제 가능하지만 국내에서는 아직도 삭제를 못한다. 브라우저 시장을 포기하기에는 그 사업성이 너무 거대하기 때문에 IE Edge든 할애 비든 사파리든 자사 플랫폼에 결합된 형태로 계속 지속될 것은 분명해 보인다.
국내상황
슬프게도 국내 상황은 조금 달랐다. 온갖 웹 서비스에 ActiveX라는 전가의 보도를 꾸득꾸득 처 발라놨기 때문에 죽은 자식 부랄을 잡아뜯는 한이 있어도 손에서 놓지 않았다. 아니, 그 썩은 부랄에 얽혀있는 이해관계자가 너무 많아서 놓을 수 없게 아주 용접질을 해둔 탓일 것이다. 어쨌든 관련 사업으로 입에 풀칠이라도 해야 하는 사람들도 많을 것이고 무엇보다 돈은 돈대로 빨아먹고 문제가 생기면 사용자에게 책임을 전가시킬 수 있는 프로그램을 서슴없이 구매하는 구매자들, 규제의 부제, 그냥 욕 한 번 하고 킹쩔 수 없이 설치하고 사용하는 사용자들 등 복합적인 문제가 많기 때문일 것이다.
None ActiveX를 위해 관련 기능을 포함시킨 국제 표준인 HTML5가 본격적으로 배포되기 시작하면서 발맞춰 개발되는 최신 브라우저들이 시장을 차지하고 있었다. 그에 따라 국내에서도 좋은 영향을 기대했지만 어림도 없었다.
브라우저로 3D 게임도 돌리는 이 시대에 세계 1위 브라우저 따위로는 우리 갓한민국의 보안을 감당할 수 없으므로 브라우저 외부에 설치되고 동작하는 추가 보안 프로그램이라는 흉물을 만들고야 만다.
애국심이 저절로 고취되어 가슴이 웅장해진다. 기어코 만들어진 흉물은 공공기관, 금융권을 필두로 ActiveX를 자연스럽게 대체하며 사방팔방에 적용되어갔다. 사용자들은 여전히 고분고분 사용하며 일 터지면 빠져나가기 좋고 당한 놈만 병신되는 국내정서와 아주 잘 맞는다. 진정한 고객의 니즈를 정확히 파악한 프로그램이라고 평가하고 싶다.
구글조차 그 막대한 트래픽을 처리하면서도 어떠한 추가 프로그램이나 플러그인을 요구하지 않지만 K-웹 서비스는 구글은 상상도 못할 타의 추종을 불허하는 정말 엄청난 보안을 제공하리라. 무식한 나는 이렇게 생각할 수밖에 없다. 최근에는 우분투 사용자들이 많아진 탓인지 기어이 리눅스용 설치 프로그램까지 제공하고 필수로 요구한다. 2025년 나는 아직도 인터넷 뱅킹을 쉽고 빠르게 사용해 본 적이 없다.
Linux의 출현과 GNU/Linux의 탄생
리누스 토르발스
1991년 리누스 토르발스는 GNU 만으로 빌드 될 수 있는 단일체 커널 Linux를 발표했다. 사람들은 잘 만들어진 GNU 모듈들을 간단하고 쉬운 확장 가능한 Linux 커널에 올려 사용하기 시작했다. 무료 운영체제가 탄생한 순간이었다. 매번 Linux가 아니라 GNU/Linux라고 불러달라고 이야기 하는 이유이기도 하다.
수 많은 배포판
완전한 무료 운영체제인 GNU/Linux는 당연히 전세계로 확산되었다. 사람들은 원하는 기능을 직접 만들거나 수정하며 마음껏 사용하고 배포할 수 있었다. 그 결과 수를 헤아리기 힘들 정도로 많은 배포판들이 인터넷 여기저기에 존재한다. 이름부터 웃긴 저스틴 비버 리눅스처럼 개그용 배포판도 존재하는 걸 감안하면 더 이상 할 말이 없다.
이러한 많은 배포판은 가장 최상위 조상 격인 PDP-7으로부터 내려오는 각자의 가계도가 있다. 이 계보 중에서도 유달리 사용자가 많고 대중적으로 많이 알려진 굵직한 배포판들이 우리가 쉽게 만날 수 있는 BSD, 데비안, 우분투, 페도라와 같은 녀석들이다. 엄밀히 따지려 들면 GNU/Linux도 Unix-like로 별도의 가계도를 만들 수 있고 레드햇도 페도라 계열이라고 해야겠지만 이는 헤비메탈 계보 분류하듯 기준에 따라 중구난방이라 깊게 파고들어봤자 시간낭비다. 결국 이 궁금증은 그리 대단한게 아니고 이 계보내에서 잘 알려진 기준으로 실무편의적인 이야기에 불과한 것이었다.
- 데비안 계열: Debian, Ubuntu, Linux Mint, etc
- 레드햇 계열: Red Hat, Fedora, CentOS, Scientific Linux
- 아치 계열: ArchLinux, Hyperbola, Frugalware, Deli Linux
- 수세 계열: openSUSE, SUSE Enterprise
POSIX (Portable Operating System Interface)
모든 것은 PDP-7, UNIX로부터 시작 됐다. 그러나 세대를 거듭하다보니 이게 사촌인지 팔촌인지 호환도 되지 않고 남남으로 분류하는게 나을만큼 구분하기 어려운 것들이 생기기 시작했다. 전기전자공학자협회(IEEE)는 이 개판을 정리하기 위해 POSIX라고 하는 운영체제의 표준을 작성했다. 어떠한 운영체제라도 이 표준에 맞춰 기능을 구현하면 서로 호환이 되도록 하기 위해서 였다. 따라서, 이 표준을 모두 지원할 수 있는 운영체제라면 Unix 배포판이든 새로 만들어진 운영체제든 POSIX 계열의 운영체제라고 말할 수 있다. 실무에서 같은 걸 가지고 POSIX, Unix를 혼용하는데 틀린말은 아닌 것이다.
Footnotes
초판: 2025. 09. 17. 15:47:07
수정판: 2025. 09. 22. 13:42:58
© 2025 이 문서는 "CC BY 4.0 국제규약" 라이선스로 배포 되었습니다. 모든 권리는 저자에게 있습니다.