유닉스

최근 수정 시각:

분류


1. 개요2. 역사3. 영향4. 관련 문서


파일:external/upload.wikimedia.org/640px-Unix_history-simple.svg.png

Unix

1. 개요[편집]

유닉스(Unix)는 대부분의 현대적 컴퓨터 운영 체제의 원형이 된 OS이다. 현대의 윈도우 계열이 아닌 리눅스, 안드로이드, macOS, iOS 등의 많은 운영 체제가 유닉스를 그 뿌리로 하고 있다. 원래는 멀티유저용 서버 운영체제이나 현재는 개인용 데스크탑이나 임베디드용으로도 쓰인다.

2. 역사[편집]

1960년대 후반 MIT 대학과 벨 연구소에서 개발을 시도했던 시분할 운영 체제 멀틱스(Multics)가 그 기원이다. 멀틱스는 여러 사용자를 동시에 지원하고 기능이 많은 우수한 운영체제였으나 많은 실험적 첨단 기능을 가지다보니 대단히 크고 복잡한 운영체제였고 무엇보다 GE/Honeywell의 비싼 대형 컴퓨터에만 돌아갔다. 그러다가 데니스 리치는 게임을 만들다가 선배한테 들켜서 비교적 작은 미니컴퓨터가지고[1] 게임을 할려고 했지만... 미니컴퓨터가 너무 느린 탓에 운영 체제를 수정하다가 유닉스를 만들게 된다.

하지만 벨 연구소가 속한 AT&T는 전화회사이지 컴퓨터회사는 아니므로 그 당시론 상당히 비싼 미니컴퓨터를 사서 운영체제 연구개발을 계속하려면 뭔가 회사에 도움이 될만한 실용적인 결과물을 내어 유닉스 운영체제의 실용성을 보여야 했다. 그래서 만든 게 troff라는 문서 포매팅 시스템. CAT라는 영문사진식자기(phototypesetter)로 출판용 인쇄원고(camera-ready copy)를 만들어 내는 이 시스템은 기존의 인쇄원고 작성 시스템보다 월등히 사용이 편리하고 인기가 높아 AT&T회사 내의 각종 문서작성 전용 시스템(Document Workbench, DWB)으로 널리 보급되었다. 이렇게 높은 실용성과 편리함의 인기에 힘임어 Version 7이 일부 대학 등에 소스 코드 형태로 판매되었다. 한국의 서울대학교 전산학과에도 1983년경 16비트 미니컴퓨터 PDP-11에서 이 버전을 운영하였다. 이게 발전한 게 흔히 System V라고 널리 알려진 AT&T 혈통의 Unix.

또한 UCB(University of California, Berkeley)로 건너가서는 가상메모리와 TCP/IP Networking 기능과 스크린에디터 등 각종 편리한 기능이 더해지고 그 당시 인기가 높았던 32비트 미니컴퓨터 DEC VAX 780 이식되어서 소위 BSD 혈통의 Unix가 된다. 한국에서도 1985년경 당시 경희대 부근 홍릉 캠퍼스에 있던 KAIST 전산학과에서 BSD 4.2/4.3을 운영하였다.

3. 영향[편집]

컴퓨터 운영 체제 역사상 가장 중요한 운영 체제라고 할 수 있다. 무엇보다도 운영 체제가 대부분 고급 언어인 C언어로 쓰여져 있었고 소스 코드를 쉽게 구할 수 있어서 다른 컴퓨터 하드웨어나 새로운 기종에 적은 노력으로도 쉽게 이식할 수 있었다. 그래서 그 당시 매우 다양하던 새로운 컴퓨터들의 운영체제로 채용되었고 이를 기반으로 그 이후에 발전된 현대의 컴퓨터의 운영체제는 윈도우 계열을 제외하면 대부분 유닉스의 변종이나 그 자손이라고 볼 수 있다.

유닉스를 기점으로 운영체제 개발의 역사 및 프로그래밍의 역사가 크게 변하게 된다. C언어 자체가 Unix 시스템 프로그래밍을 하기 위해 만들어졌고 그 결과 "포터블 어셈블리"라고 불릴 정도로 컴팩트하면서도 매우 효율적이고 이식이 쉬운 언어였다. 또 유닉스는 기본으로 바로 프로그램을 할 수 있는 최상의 환경을 제공하였다. 각종 편리한 프로그램 도구가 잘 발달해서 프로그래머들이 개발하기에 가장 편리한 환경으로 발전하였다. 그래서 C언어도 시스템 프로그래밍 언어의 업계 표준이 된다.

TCP/IP 등 네트워크 기능도 일찍부터 가지고 있어서 이더넷 같은 LAN이나 인터넷 기능을 사용하기 위해서도 유닉스를 사용해야 했다. 그 당시는 X.25 같은 네트웍도 있었지만 유닉스와 TCP/IP가 같이 보급되며 유닉스에서 개발된 여러 편리한 네트웍 응용 기능들에 밀려났다. 오늘날 인터넷의 성공도 유닉스의 공이 크다. 인터넷의 역사와도 떼어놓을 수 없는 운영체제이다. 운영 체제가 인터넷에 접근하는 표준 인터페이스인 소켓BSD 유닉스에서 만들어진 개념이고, 따라서 일반적으로 '소켓' 하면 BSD 소켓을 가리킨다.

서버 운영에 필수적이라 할 수 있는 CLI가 상당히 강하기 때문에, 서버 시장에서는 윈도우 이상으로 인기가 좋다. 스마트폰용 OS도 시장을 양분하고 있는 iOS(BSD 기반)와 안드로이드(리눅스 기반)가 모두 유닉스 계열이다. 타이젠(리눅스 기반), webOS(리눅스 기반)를 비롯하여, 취소된 프로젝트인 미고(리눅스 기반), Firefox OS(리눅스 기반), 우분투 모바일(리눅스 기반)도 모두 유닉스 계열 커널을 사용한 운영체제이다.

이후에 유닉스를 모방한 많은 운영 체제들이 나타났는데, 이들을 표준화하기 위해 POSIX라는 API 표준이 등장했다. POSIX 표준을 만족하는 것들을 유닉스 계열(Unix-like) 운영체제라고 한다. 리눅스macOS[2]가 대표적인 유닉스 계열 운영체제이다. 인증 비용 문제인지, 대부분의 리눅스 배포판들은 POSIX의 거의 모든 상세스펙을 따르고 있지만 공식 인증은 아니다. NetBSD, FreeBSD, OpenBSD 같은 오픈 소스 BSD 계열도 마찬가지로 공식 인증된 Unix가 아니다. 다른 분류법도 존재한다. 예를 들어, BSD류는 공식 인증을 하지 않았지만 역사적으로 AT&T의 코드베이스와 직접적 관련이 있기 때문에 Genetic UNIX로 분류하고, 리눅스 같은 경우는 유닉스라 불릴 만한 조건을 만족하지만, AT&T의 코드베이스와 직접적 관련은 없기 때문에 Functional UNIX라 분류하는 기준도 있다. Mac OS X의 경우 POSIX 공식 인증을 받았다.

Microsoft Windows는 유닉스 계열이 아니지만 POSIX 표준을 따르는 서브시스템[3]을 제공하고 있다. 예전에는 마이크로소프트의 홈페이지에서 다운로드할 수 있는 Subsystem for UNIX-based Applications(aka SUA)라는 것을 설치하면 되었다. 이 서브시스템은 과거 FreeBSD로 돌리던 핫메일 서버를 윈도우 서버로 전환하던 과도기에 만들어 쓰던 것으로, Windows 8부터 deprecated가 되었고 Windows 10에서는 삭제되었다. Windows 7에서는 얼티밋과 엔터프라이즈 버전 한정으로 사용가능하다. 대신 Windows 10에서는 우분투의 개발사 캐노니컬과 협력하여 Windows Subsystem for Linux라는 이름으로 리눅스 서브시스템을 NT 커널 내부에 장착하고 있다. 이 덕분에 POSIX API 호출은 물론, 실제 리눅스용 바이너리를 실행시킬 수도 있다.

4. 관련 문서[편집]


[1] PDP 항목을 보면 알겠지만, 당시에 비교적 작다는거지, 그 미니가 우리가 알고 있는 작은 사이즈가 아니다[2] macOS의 경우 9.x 버전까지는 유닉스 계열이 아니었으나 OS X부터 BSD Unix 계열로 다시 개발하였으며 10.5 버전 레오파드부터는 정식으로 POSIX 인증을 획득했다.[3] 심지어 Windows NT 3.5, 3.51, 4.0은 POSIX 인증을 받았다. 이는 당시 연방 정부 OS 납품조건으로 POSIX 인증을 요구했기 때문이다.