Unix유닉스
1969년 미국 벨 연구소(Bell Labs)에서 켄 톰프슨(Ken Thompson)과 데니스 리치(Dennis Ritchie)가 개발한 운영체제. 멀티태스킹과 다중 사용자를 지원하는 최초의 실용적 OS 중 하나로, 이후 수십 년간 운영체제 설계의 기준이 됐다. 오늘날 직접 사용되는 경우는 드물지만, 리눅스·macOS·Android를 포함한 현대 OS 대부분이 유닉스 철학과 인터페이스를 계승한다.
탄생과 역사
유닉스의 출발점은 1960년대 말 멀틱스(Multics) 프로젝트의 실패다. 벨 연구소가 멀틱스 개발에서 손을 떼자, 켄 톰프슨은 자신이 만든 게임 "스페이스 트래블"을 실행하기 위해 버려진 PDP-7 컴퓨터에 새 OS를 올렸다. 이것이 유닉스의 원형이다.
1973년 데니스 리치가 새로 설계한 C 언어로 유닉스 커널을 재작성하면서 역사적 전환점이 찾아왔다. 어셈블리 대신 고급 언어로 작성된 최초의 OS가 된 덕분에, 유닉스는 하드웨어 아키텍처에 관계없이 이식될 수 있었다. 이후 AT&T는 대학에 유닉스 소스 코드를 무상 배포했고, UC 버클리는 이를 발전시켜 BSD(Berkeley Software Distribution)를 만들었다.
1980~90년대 들어 상용 유닉스 파생판이 쏟아졌다. HP의 HP-UX, IBM의 AIX, Sun Microsystems의 Solaris, SGI의 IRIX 등이 대표적이다. 동시에 유닉스 시스템 간 호환성 문제가 심각해지자 IEEE가 POSIX(Portable Operating System Interface) 표준을 제정했다. 오늘날 리눅스·macOS를 포함한 유닉스 계열 OS는 이 표준을 준수한다.
핵심 철학
유닉스 철학은 소프트웨어 설계에 여전히 강력한 영향을 미친다.
모든 것은 파일이다(Everything is a file) — 일반 파일, 디렉터리, 하드웨어 장치, 네트워크 소켓, 프로세스 간 통신까지 모두 파일 인터페이스로 다룬다. 하드디스크는 /dev/sda, 터미널은 /dev/tty, 난수 생성기는 /dev/random으로 접근한다. 덕분에 하나의 일관된 API(open/read/write/close)로 시스템 자원을 조작할 수 있다.
하나의 프로그램은 하나의 일만 잘 한다(Do one thing and do it well) — ls는 파일 목록만, grep은 패턴 검색만, wc는 글자 수 세기만 담당한다. 기능을 최소 단위로 쪼갠 덕분에 각 도구는 단순하고 신뢰할 수 있다.
파이프로 조합한다(Compose with pipes) — 작은 도구들을 | 로 연결해 복잡한 작업을 수행한다. 아파치 로그에서 404를 가장 많이 낸 IP 상위 10개를 뽑는 작업도 cat, grep, awk, sort, uniq를 파이프로 연결하면 한 줄로 끝난다. 각 도구는 표준 입출력(stdin/stdout)으로 통신하므로 조합이 자유롭다.
텍스트 스트림을 범용 인터페이스로 쓴다 — 설정 파일, 로그, 명령 출력이 모두 사람이 읽을 수 있는 텍스트다. sed, awk, grep 같은 텍스트 처리 도구가 시스템 전반에서 동작할 수 있는 이유다.
주요 유닉스 계열 OS
| OS | 기반 | 현황 |
|---|---|---|
| macOS | BSD / Darwin(XNU 커널) | 애플 제품 탑재, 현역 |
| FreeBSD | BSD | 서버·임베디드, PlayStation OS의 기반 |
| OpenBSD | BSD | 보안 최우선, OpenSSH 원산지 |
| NetBSD | BSD | 극단적 이식성, 임베디드 |
| Solaris / illumos | AT&T SVR4 | Oracle Solaris(상용), illumos(오픈소스 후속) |
| AIX | IBM SVR4 | IBM Power 서버용 |
| HP-UX | AT&T SVR4 | HP Integrity 서버용, 점차 퇴역 |
| 리눅스 | 유닉스 계열(비파생) | 서버 96% 점유, 사실상 현대 유닉스 표준 |
순수 UNIX 인증(The Open Group 공식 인증)을 받은 현역 OS는 macOS, AIX, HP-UX 정도다. 리눅스는 인증을 받지 않았지만 POSIX 호환성으로 사실상 동등하게 취급된다.
유닉스와 리눅스의 차이
리눅스는 유닉스에서 코드를 가져오지 않았다. 1991년 리누스 토르발스가 유닉스 인터페이스를 보고 처음부터 새로 작성한 커널이다. GNU 프로젝트의 도구들(bash, gcc, glibc 등)과 결합해 완전한 OS가 됐다. 법적으로는 유닉스가 아니지만, API·명령어·파일 구조·철학 면에서 유닉스와 사실상 동일하다.
| 항목 | 유닉스 | 리눅스 |
|---|---|---|
| 코드 기원 | AT&T 원본 코드 계통 | 독립 구현(클린룸) |
| 라이선스 | 상용 또는 BSD | GPL (오픈소스) |
| UNIX 인증 | 일부 상용판 보유 | 없음 (POSIX 호환) |
| 현재 서버 점유율 | 낮음 | ~96% |
| 대표 사례 | macOS, AIX, Solaris | Ubuntu, RHEL, Alpine |
