개요
유닉스(Unix)는 벨 연구소에서 개발한 운영 체제이다. 이 운영 체제는 대부분의 현대적인 컴퓨터 운영 체제의 원형이 되었다. 유닉스는 원래 멀틱스라는 운영 체제에 기반하여 멀티유저용 서버 운영 체제로 개발되었으나, 현재는 개인용 데스크탑과 임베디드 시스템에서도 널리 사용된다.
유닉스는 1970년대 초반 벨 연구소의 켄 톰슨과 데니스 리치에 의해 소형 컴퓨터용으로 처음 개발되었다. 이 운영 체제는 교육 및 연구 기관에서 자주 사용되며, 대화식 시분할 처리 시스템을 지원하는 범용 다중 사용자 운영 체제이다. 오늘날 유닉스 시스템의 커널을 활용하여 여러 회사와 비영리 단체들이 다양한 운영 체제를 개발하고 있다. 대부분의 현대 운영 체제는 유닉스의 영향을 받았으며, 윈도우를 제외하면 현재의 OS 중 유닉스의 영향을 받지 않은 것은 거의 없다.
분류
오래전 이야기로 에릭 레이먼드와 랍 랭글리(Rob Langley) 등은 BSD 계열, macOS 애플 계열의 Darwin, Minix, Linux, Cygwin 등 일부 동작 형태를 가진 운영 체제를 유닉스 클론이나 유닉스 유사 시스템(Unix-like)으로 언급하였다. 이들은 유닉스 계열 운영 체제를 크게 유전적 유닉스(genetic Unix), 상표 유닉스(trademark Unix), 기능적 유닉스(functional Unix)로 나누었으며, 리눅스는 유전적 유닉스와 상표 유닉스가 아니라고 분류하였다.
반면, 유닉스를 디자인한 사람들 중 한 명인 데니스 리치는 서버 시장에서 대세가 된 리눅스를 전통적인 유닉스와 함께 "켄 톰슨과 자신, 그리고 많은 사람들이 시작한 아이디어의 연속"으로 표현하며, 리눅스 현상에 대해 긍정적으로 평가하였다.
유닉스는 처음부터 다양한 시스템 사이에서 이식 가능하도록 설계되었으며, 멀티태스킹과 다중 사용자를 지원하도록 고안되었다. 유닉스 시스템은 일반 텍스트 파일, 명령행 인터프리터, 계층적인 파일 시스템, 장치 및 특정 형식의 프로세스 간 통신을 파일로 취급하는 등의 개념을 가지고 있다. 소프트웨어 공학 측면에서 유닉스는 C 언어의 사용과 유닉스 철학이 특징적이다.
유닉스(UNIX) 상표권은 오픈 그룹이 소유하고 있으며, 유닉스 소스 코드에 대한 저작권은 노벨이 보유하고 있다. SCO 그룹은 SCOsource라는 프로그램을 통해 유닉스 시스템 V Release 4(및 자체 릴리즈인 UNIX 시스템 V, Release 5)에 기반한 코드로 된 운영 체제를 사용하고자 하는 모든 기업 및 개인들에게 라이선스를 제공하고 있다.
한편, 닷컴 버블로 유닉스 사업자들 사이에 합병의 바람이 불게 되었다. 1980년대에 태어난 많은 상업 유닉스 업체들 중에서 휴렛 패커드의 HP-UX, IBM의 IBM AIX, NeXT의 NEXTSTEP (나중에 오픈스텝이 되었다가 현재는 macOS가 됨) 및 썬 마이크로시스템즈의 솔라리스 운영 체제들만이 아직도 시장에서 판매되고 있다. 디지털 이큅먼트 코퍼레이션(DEC), 데이터 제너럴(Data General), 산타 쿠르즈 오퍼레이션(현재는 Tarantella) 등은 다른 업체에 합병되거나 사업을 접었다. 또한, 리눅스와 오픈 소스 BSD의 사용이 증가함에 따라 기존의 상업 유닉스 시장이 침식되어 갔으며, 개인용 컴퓨터 시장에서 현존하는 유닉스 운영 체제는 애플의 macOS가 유일하다.
유닉스는 크게 UNIX System V 계열과 BSD 계열로 나뉜다. System V 계열은 1980년대 AT&T의 반독점법 위반으로 인한 그룹 분할 이후, AT&T에서 직접 상용으로 판매한 UNIX System V의 코드를 기반으로 한 계열이다. 2024년 기준으로 IBM AIX, HP-UX, Solaris, UnixWare 등이 있으나, 이들은 명맥만 유지하고 있으며 시장 점유율은 매우 낮다.
BSD 계열(NetBSD, FreeBSD, OpenBSD 등)은 1970년대에 갈라져 나간 파생형으로, 1990년대에 AT&T와의 소송(일명 유닉스 전쟁) 이후 AT&T에서 작성한 코드를 전부 재작성하여 현재는 AT&T의 코드 기반을 사용하지 않는다. 그러나 기초적인 권한 체계부터 모든 기반에서 BSD와 유닉스의 원형이 그대로 유지되어 이어지고 있기 때문에, 소스 코드가 유닉스와 절대 무관하지 않아 유전적 유닉스로 취급된다. 개인용 OS의 한 축을 차지하는 Apple Darwin 계열 OS(macOS, iOS 등과 그 선조인 NeXTSTEP)는 BSD 변종이다.
유닉스의 상표권을 가지고 있는 The Open Group의 Single UNIX Specification 인증을 통과하여 정식으로 'UNIX' 상표를 사용할 수 있는 운영 체제를 의미한다. BSD 계열은 유전적 유닉스이며 POSIX 표준을 준수하지만 상표 유닉스는 아니다. 인증은 정기적으로 갱신해야 하며, 갱신하지 않을 경우 상표 유닉스가 만료될 수 있다. 대표적으로 Solaris가 갱신되지 않은 케이스이다.
역사적으로 소스 코드가 AT&T 기반의 유닉스와 무관하더라도 인증을 통해 'UNIX' 상표를 사용할 수 있으며, 이런 경우 기능적 유닉스이자 상표 유닉스에 해당하지만 유전적 유닉스는 아니다. 대표적으로 IBM의 z/OS가 있다.
2024년 기준으로 Single UNIX Specification 인증을 유지 중인 운영 체제로는 macOS, IBM AIX, HP-UX, z/OS, UnixWare, OpenServer가 있으며, 그중 z/OS를 제외하면 유전적 유닉스이다. macOS와 iOS는 같은 Darwin 커널을 기반으로 하는 유전적 유닉스지만, iOS는 상표 유닉스가 아니다.
POSIX 표준 규격을 따라 유닉스의 기능이 호환되는 운영 체제를 기능적 유닉스로 분류한다. AT&T의 코드와 무관한 자체 코드로 작성되었더라도 콘솔 동작 등의 형태가 초기 유닉스와 유사하고 POSIX 표준을 거의 준수하면 기능적 유닉스로 분류된다. 대표적인 예시로는 미닉스, 리눅스 등이 있으며, 관점에 따라 BSD 계열을 Unix-like로 분류하기도 한다.
리눅스는 공식 인증을 받지는 않아 'UNIX' 상표를 사용할 수 없지만, 유닉스 계열 운영 체제 중에서 가장 성공적인 사례로 꼽히며, 데니스 리치 또한 이에 긍정적인 의견을 표했다. 리눅스에서 파생된 OS로는 안드로이드도 있다.
역사
UNIX의 역사는 벨 연구소에서 시작되었으며, 현대 운영 체제의 기초를 제공하는 중요한 시스템이다. UNIX는 시간이 지나면서 여러 변형과 상업적 버전을 통해 발전하였으며, 오늘날에도 여전히 많은 운영 체제에 영향을 미치고 있다.
Bell Labs
1960년대 후반, MIT와 벨 연구소에서 개발 시도가 있었으나, 1969년에 출시된 시분할 운영 체제 멀틱스(Multics)가 UNIX의 기원이다. 멀틱스는 여러 사용자를 동시에 지원하며 우수한 기능을 가진 운영 체제였으나, 그 크기와 복잡성으로 인해 대형 컴퓨터에서만 사용할 수 있었다. 켄 톰슨은 게임을 만들다가 미니컴퓨터를 사용하려 했으나 느린 속도 때문에 운영 체제를 수정하면서 UNIX를 개발하게 되었다.
벨 연구소가 속한 AT&T는 전화회사였고 컴퓨터 회사는 아니었기 때문에, UNIX의 실용성을 보여주기 위해서는 비싼 미니컴퓨터를 구매하고 연구개발을 계속해야 했다. 그러나 AT&T는 미국 법무부의 반독점 소송에서 패배하고 지역 전화회사로 분할되면서 IBM과 같은 컴퓨터 판매 사업을 할 수 없었다. 대신 AT&T는 문서 포매팅 시스템인 troff를 개발하였다. troff는 출판용 인쇄원고를 만들어내는 시스템으로, 기존의 인쇄원고 작성 시스템보다 훨씬 사용하기 편리했고 인기를 끌어 AT&T의 다양한 문서 작성 시스템으로 널리 사용되었다. 이 인기에 힘입어 UNIX Version 7이 일부 대학 등에 소스 코드 형태로 판매되었으며, 서울대학교 전산학과에서는 1983년에 16비트 미니컴퓨터 PDP-11에서 이 버전을 운영하였다. 이 버전은 나중에 System V로 발전하였다.
캘리포니아 대학교 버클리 캠퍼스로 넘어가면서, 가상 메모리, TCP/IP 네트워킹 기능, 스크린 에디터 등의 기능이 추가된 UNIX는 DEC VAX 780에 이식되어 BSD 계열 UNIX가 되었다. 한국의 경희대 부근 홍릉 캠퍼스에 있는 KAIST 전산학과에서는 1985년경 BSD 4.2/4.3을 운영하였다.
BSD
연구용 UNIX 5판이 버클리 대학교로 가면서 BSD가 탄생하였으며, 이는 후에 SunOS와 macOS에 큰 영향을 미쳤다.
AT&T의 분할과 UNIX 상용화
AT&T는 미국 전화 시장 독점 문제로 분할되었고, UNIX를 'UNIX System III'이라는 이름으로 상용화하였다. UNIX System III은 많은 회사에서 사용되었으며, AT&T는 후속 버전인 UNIX System IV를 연구하고 UNIX System V를 출시하였다. UNIX System V는 이후 BSD 소스 코드를 받아들여 Release 4까지 발전하였다.
Novell 시기
노벨은 AT&T로부터 'UNIX' 상표와 UNIX System V 소스 코드를 구매하였으나, 경영 문제로 인해 UNIX 상표권은 The Open Group에, 소스 코드는 SCO에 팔았다. 이 시기에 System V Release 4.2가 만들어졌다.
SCO 시기
SCO는 'OpenServer'라는 UNIX를 개발하던 중 경쟁 상대였던 UnixWare도 관리하게 되었다. 2001년 파산 후, SCO Group이 탄생하였고 UNIX System V Release 5가 이 시기에 만들어졌다.
SCO Group
SCO Group은 2011년에 별탈 없이 UnXis에 인수되었다.
Xinuos 시기
2011년에 SCO Group이 UnXis에 인수되면서 UnXis는 'Xinuos'로 이름을 변경하였다. Xinuos는 OpenServer 5와 6, UnixWare 7의 최종 버전을 출시하였고, FreeBSD 10을 기반으로 OpenServer 10을 개발하였다.
표준
POSIX
Single UNIX Specification
The Open Group과 The Austin Group이 만드는 UNIX의 표준이다. 기본적으로 POSIX가 포함되어 있다.
영향
유닉스(UNIX)는 컴퓨터 운영체제 역사에서 중요한 전환점을 제공한 운영 체제이다. 무엇보다도 유닉스는 고급 언어인 C로 작성되었고, 소스 코드가 공개되어 있어서 다른 하드웨어나 새로운 기종으로의 이식이 용이했다. 이러한 특성 덕분에 운영 체제 개발과 프로그래밍의 역사에서 큰 변화를 가져왔다.
C언어는 유닉스 시스템 프로그래밍을 위해 개발되었으며, "포터블 어셈블리"라고 불릴 정도로 효율적이면서도 이식이 쉬운 언어로 자리잡았다. 유닉스는 개발자에게 최상의 프로그래밍 환경을 제공하였고, 편리한 프로그램 도구들이 잘 발달해 있어 시스템 프로그래밍 언어의 업계 표준으로 C언어가 자리 잡게 되었다.
유닉스는 TCP/IP와 같은 네트워크 기능을 일찍부터 지원하였고, 이더넷 같은 LAN이나 인터넷 기능을 구현하기 위해 필수적인 운영 체제였다. 특히, 인터넷의 역사와 밀접한 연관이 있으며, 인터넷의 표준 인터페이스인 소켓은 BSD 유닉스에서 만들어진 개념이다. 따라서 '소켓' 하면 일반적으로 BSD 소켓을 의미한다.
서버 운영에서 강력한 CLI(명령행 인터페이스)를 제공하는 유닉스는 서버 시장에서 큰 인기를 끌었다. 리눅스는 유닉스의 POSIX 표준을 준수하며 대중적인 서버 운영 체제로 자리잡았고, BSD는 AT&T 코드 계열의 후손으로 남아 있다. 반면, 윈도우 서버는 클로즈드 소스이고 개발자 환경이 부족하여 점유율이 낮다.
현재의 유닉스와 유닉스 계열 운영 체제
2022년 현재, 유닉스를 직접 사용하는 경우는 상대적으로 적어졌다. 서버급에서는 AIX, HP-UX, Solaris 등이 여전히 존재하지만, 점유율은 매우 낮다. 슈퍼컴퓨터 분야에서는 AIX가 순위 밖으로 밀려나면서 상위 500개의 슈퍼컴퓨터 모두 리눅스를 사용하고 있다.
리눅스는 초기 출시 시점에서 다른 유닉스 계열 운영 체제들로부터 영향을 받았다. BSD는 AT&T 유닉스의 코드를 기반으로 하고 있으며, 유닉스 출시 이후 유닉스와 유사한 많은 운영 체제들이 등장했다. POSIX라는 API 표준이 이러한 운영 체제들을 표준화하는 역할을 했으며, POSIX 표준을 만족하는 것들을 유닉스 계열 운영 체제라고 한다. 오픈 소스 BSD 계열(예: NetBSD, FreeBSD, OpenBSD)은 POSIX 표준을 만족하지만 공식 인증된 UNIX는 아니다. 반면, 리눅스는 AT&T 코드베이스와는 별개로 독립적으로 개발되었으며, POSIX의 거의 모든 상세 스펙을 따르고 있다.
NeXTSTEP은 Mach 커널과 BSD를 기반으로 하여 유닉스와 밀접한 관계를 가지고 있다. macOS는 처음에는 유닉스 계열이 아니었지만, NeXTSTEP을 기반으로 OS X을 개발하며 BSD 유닉스 계열로 변모했다. Mac OS X Leopard부터는 정식 UNIX 인증을 받았고, 현재 macOS Ventura는 UNIX 03 인증을 유지하고 있다.
스마트폰 운영 체제도 유닉스의 영향을 많이 받았다. 안드로이드는 리눅스 기반이며, iOS는 BSD 변종인 OS X에서 파생되었다. 다른 유닉스 기반 운영 체제로는 타이젠, webOS, 미고, Firefox OS, 우분투 모바일 등이 있으며, 모두 리눅스 커널을 사용한다.
게임기 운영 체제에서도 유닉스 기반 운영 체제가 사용된다. 예를 들어, 플레이스테이션 3는 FreeBSD와 NetBSD의 포크로부터 만들어진 CellOS를 사용하고 있으며, 플레이스테이션 4와 5는 BSD 계열 운영 체제를 사용한다. OUYA나 NVIDIA SHIELD는 안드로이드를 기반으로 하는 게임기들이며, 모두 유닉스 계열 운영 체제이다. 반면, Xbox 시리즈는 마이크로소프트의 윈도우 기반 운영 체제를 사용한다.
Windows는 유닉스 계열이 아니지만, POSIX 표준을 따르는 서브시스템을 제공해왔다. 과거에는 SUA(Subsystem for UNIX-based Applications)를 제공하였으나, Windows 8부터 deprecated되었고 Windows 10에서는 삭제되었다. 현재는 WSL(Windows Subsystem for Linux)을 통해 리눅스 서브시스템을 제공하며, POSIX API 호출과 실제 리눅스용 바이너리를 실행할 수 있다. WSL 2는 실제 리눅스 커널을 탑재하고 있어 유닉스 기반의 운영 체제와의 호환성을 더욱 강화하고 있다.