UNIX

 




1. 개요
2. 분류
4. 표준
5. 영향
7. 미래
8. 관련 문서

[image]

1. 개요


유닉스(Unix)는 벨 연구소에서 개발한 운영 체제로, 대부분의 현대적 컴퓨터 운영 체제의 원형이 되었다. 윈도우를 제외한 리눅스, 안드로이드, macOS, iOS 등의 대부분의 운영 체제가 유닉스를 그 뿌리로 하고 있다. 원래는 멀티유저용 서버 운영체제이나 현재는 개인용 데스크탑이나 임베디드용으로도 쓰인다.

2. 분류


유닉스를 개발한 사람들 가운데 한 명인 데니스 리치는 많은 사용자가 리눅스를 유닉스라고 생각하지만 공식적으로는 유닉스라고 언급하지 않는다고 설명하였다.[1]
에릭 레이먼드와 랍 랭글리(Rob Langley)는 Unix(유닉스)에는 '유전적 유닉스' '상표 유닉스' '기능적 유닉스' 세 가지 종류가 있다고 언급하였는 데, 이 중 기능적 유닉스는 Unix-like(유닉스계열)이라 불리고 있다.
(1) 유전적 유닉스
유닉스 운영체제의 소스코드를 기반으로 하는 순수 유닉스 운영체제이다. 대표적으로 macOS, iOS가 이에 속한다.
(2) 상표 유닉스
소스코드가 유닉스와 무관함에도 '유닉스' 상표 사용이 허락된 운영체제이다. 대표적으로 IBM의 z/OS가 있다.
(3) 기능적 유닉스
유전적 유닉스과 달리 소스코드가 유닉스와 무관하며, 유닉스 상표 사용도 허락받지 못했지만 기능적으로 유닉스와 유사한 운영체제를 일컫는다.
Unix-like(유닉스계열)이라 부르며, 대표적으로 리눅스, 미닉스가 있다.

3. 역사


문서 참고

4. 표준



4.1. POSIX


문서 참고

4.2. Single UNIX Specification


문서 참고

5. 영향


컴퓨터 운영 체제 역사상 '''중요한 운영 체제'''였다고 할 수 있다. 무엇보다도 운영 체제가 대부분 고급 언어인 C언어로 쓰여져 있었고 소스 코드를 쉽게 구할 수 있어서 다른 컴퓨터 하드웨어나 새로운 기종에 적은 노력으로도 쉽게 이식할 수 있었다.
유닉스를 기점으로 운영체제 개발의 역사 및 프로그래밍의 역사가 크게 변하게 된다. C언어 자체가 Unix 시스템 프로그래밍을 하기 위해 만들어졌고 그 결과 "포터블 어셈블리"라고 불릴 정도로 컴팩트하면서도 매우 효율적이고 이식이 쉬운 언어였다. 또 유닉스는 기본으로 바로 프로그램을 할 수 있는 최상의 환경을 제공하였다. 각종 편리한 프로그램 도구가 잘 발달해서 프로그래머들이 개발하기에 가장 편리한 환경으로 발전하였다. 그래서 C언어도 시스템 프로그래밍 언어의 업계 표준이 된다.
TCP/IP 등 네트워크 기능도 일찍부터 가지고 있어서 이더넷 같은 LAN이나 인터넷 기능을 사용하기 위해서도 유닉스를 사용해야 했다. 그 당시는 X.25 같은 네트웍도 있었지만 유닉스와 TCP/IP가 같이 보급되며 유닉스에서 개발된 여러 편리한 네트웍 응용 기능들에 밀려났다. 오늘날 인터넷의 성공도 유닉스의 공이 크다. 인터넷의 역사와도 떼어놓을 수 없는 운영체제이다. 운영 체제가 인터넷에 접근하는 표준 인터페이스인 소켓BSD 유닉스에서 만들어진 개념이고, 따라서 일반적으로 '소켓' 하면 BSD 소켓을 가리킨다.
서버 운영에 필수적이라 할 수 있는 CLI가 상당히 강하기 때문에, 서버 시장에서는 윈도우 이상으로 인기가 좋다. 서버 시장의 대중적인 리눅스는 기능적 유닉스이며 BSD는 유전적 유닉스이다. 윈도우 서버는 클로즈드 소스이기도 하고, 윈도우라는 운영 체제 자체가 개발자를 위한 환경을 제대로 갖추지 않았다는 이유 때문에 점유율이 현저히 낮다. 윈도우가 절대 강자로 군림하는 데스크탑 시장과는 정반대라고 보면 된다.
스마트폰용 OS도 시장을 양분하다시피 하는 안드로이드(리눅스 기반)는 유닉스 계열이며 iOS(BSD 기반)는 유닉스이다. 타이젠(리눅스 기반), webOS(리눅스 기반)를 비롯하여, 취소된 프로젝트인 미고(리눅스 기반), Firefox OS(리눅스 기반), 우분투 모바일(리눅스 기반)도 모두 리눅스 커널을 사용한 운영체제이다.
유닉스 기반의 운영체제들은 현 세대 게임 콘솔용 OS에서도 크게 선방하고 있다. PS4닌텐도 스위치BSD 계열, OUYANVIDIA SHIELD 등의 수많은 안드로이드 게임기들의 운영체제 역시 유닉스에 기반을 두고 있다. 엑스박스 원은 마이크로소프트에서 만드는지라 윈도우 기반의 운영체제를 탑재하고 있다.
이후에 유닉스를 모방한 많은 운영 체제들이 나타났는데, 이들을 표준화하기 위해 '''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(aka WSL)라는 이름으로 리눅스 서브시스템을 NT 커널 내부에 장착하고 있다. 이 덕분에 POSIX API 호출은 물론, 실제 리눅스용 바이너리를 실행시킬 수도 있다. Windows 10 20H1부터는 실제 리눅스 커널이 탑재된 WSL 2를 선보일 예정이라고 하니, 마이크로소프트가 얼마나 환골탈태했는지를 보여주는 부분이라고 할 수 있겠다.
보다 자세한 것은 유닉스/MS 윈도우 문서를 참고.

6. 목록


[image]
UNIX/목록 문서 참조.

7. 미래


'''불투명하다.''' 일단 UNIX System V 계열부터 보면 Solaris는 '''사실상''' 개발이 중단되었고[4] HP-UX는 PA-RISC와 IA-64만 지원하는데 PA-RISC는 개발이 중단된지 오래고 IA-64는 인텔이 2021년에 판매와 개발을 중단할 것을 선언했다. HP-UX는 HP가 서버 아키텍쳐를 AMD64로 바꾸지 않는 이상 죽은 것과 다름없다. 그래서 미래가 밝은 건 AIX다. 솔라리스의 포크인 illumos 계열도 사용자가 적어서 불안한 실정이다.
BSD 계열을 보자. 그나마 System V보다는 낫다. 문제는 안 그래도 개발자가 부족한데 종류는 다양하다는 것. 그래도 BSD는 각자의 매력이 있는데, FreeBSD는 서버용(아파치, 넷플릭스에서 사용), NetBSD는 보안이 강해서 방화벽이나 라우터에 사용되는 등 특화된 분야에서는 리눅스보다 자주 쓰인다. [5]

8. 관련 문서



[1] The functions and behavior of the UNIX clones are so similar to those of the early (and later) versions of UNIX, in fact, that many knowledgeable users consider them to be UNIX. However, they do not have a direct lineage to the original UNIX source code, and most of them do not officially describe themselves as being UNIX. This category includes the BSDs (i.e., FreeBSD, NetBSD, OpenBSD and Darwin), Linux, MINIX, QNX and Cygwin.[2] macOS의 경우 9.x 버전까지는 유닉스 계열이 아니었으나 OS X부터 BSD Unix 계열로 다시 개발하였으며 10.5 버전 레오파드부터는 정식으로 POSIX 인증을 획득했다.[3] 심지어 Windows NT 3.5, 3.51, 4.0은 POSIX 인증을 받았다. 이는 당시 연방 정부 OS 납품조건으로 POSIX 인증을 요구했기 때문이다.[4] 11.4 버전 이후 더 이상 업데이트가 나오지 않고 있고, 오라클이 개발자들 다수를 해고했으니 사실상 개발 중단이다.[5] 리눅스에 버그가 많다는 것은 리눅스 재단도 인정한 사실이다.

분류