Unix
개요
Unix는 AT&T Bell Labs에서 개발된 멀티태스킹, 멀티유저 지원의 최초의 현대적 운영체제이다. 1969년 Ken Thompson과 Dennis Ritchie에 의해 설계되었으며, 이후 수많은 파생 운영체제의 기반이 되어 현대 OS의 철학과 구조를 정립했다.
Unix는 원래 PDP-7 컴퓨터용 실험 프로젝트로 시작되었으며, C (프로그래밍 언어)로 재작성된 최초의 운영체제로서, “이식성(Portability)”이라는 개념을 처음 도입했다. 프로세스, 파일 시스템, 입출력, 셸, 사용자 권한, 디렉터리 구조 등 오늘날 대부분의 운영체제의 기본 개념이 Unix에서 비롯되었다.
역사
- 1969년 – Ken Thompson과 Dennis Ritchie가 Bell Labs에서 Unix 개발 시작
- 1971년 – Unix 최초 버전(PDP-11용) 완성
- 1973년 – C (프로그래밍 언어)로 완전 재작성 (Unix V4)
- 1975년 – Version 6 공개, 대학 및 연구소에 확산
- 1979년 – Version 7 출시 (UNIX의 ‘표준형’)
- 1983년 – System V 계열 발표 (AT&T)
- 1984년 – BSD 계열 확산 (University of California, Berkeley)
- 1988년 – POSIX 표준화 착수
- 1991년 – Linux가 Unix 철학을 계승하여 등장
- 2000년대 이후 – macOS 및 iOS 등 NeXTSTEP 기반 Unix 계열 OS 확산
철학
Unix의 설계 철학은 다음의 세 가지로 요약된다.
- 모듈성(Modularity): 작은 프로그램이 한 가지 일을 잘하도록 설계
- 단순함(Simplicity): 불필요한 복잡성을 배제
- 텍스트 중심(Text as Interface): 데이터는 가능한 한 텍스트로 표현
- 조합 가능성(Composability): 파이프(`|`)와 리다이렉션(`>`)을 통한 명령 조합
기술적 구조
Unix는 단순하면서도 강력한 구조를 가진다.
| 계층 | 구성 요소 | 설명 |
|---|---|---|
| 하드웨어 계층 | CPU, 메모리, 입출력 장치 | 물리적 자원 |
| 커널 계층 | 프로세스, 메모리, 파일 시스템, IPC | 자원 관리 및 시스템 콜 처리 |
| 시스템 호출 계층 | open(), fork(), exec(), read(), write() 등 | 사용자 프로그램과 커널의 인터페이스 |
| 셸 계층 | sh, csh, bash 등 | 명령 해석기 |
| 사용자 계층 | 애플리케이션 및 유틸리티 | cp, ls, cat, grep, vi 등 |
주요 개념
- 모든 것은 파일이다 (Everything is a File) – 장치, 프로세스, 소켓 모두 파일 인터페이스로 접근
- 프로세스 기반 멀티태스킹 – fork/exec로 생성되는 독립 프로세스 구조
- 파일 시스템 계층 구조 (FHS) – 루트(`/`)를 중심으로 한 트리형 디렉터리
- 파이프라인 – `|` 기호를 이용해 명령 결과를 다른 명령의 입력으로 연결
- 셸(Shell) – 사용자와 커널 사이의 인터페이스 역할 수행
주요 계보
Unix는 여러 기관과 기업을 통해 다양한 파생 계열로 발전했다.
| 계열 | 대표 운영체제 | 개발 주체 |
|---|---|---|
| AT&T 계열 | System V, AIX, HP-UX, Solaris | AT&T, IBM, HP, Sun Microsystems |
| BSD 계열 | BSD, FreeBSD, NetBSD, OpenBSD, macOS | University of California, Berkeley |
| 기타 독립계열 | Xenix, IRIX, Ultrix, Tru64 | Microsoft, SGI, DEC |
표준화
Unix는 다양한 파생 버전의 호환성 문제를 해결하기 위해 1980년대 말 POSIX(Portable Operating System Interface) 표준이 제정되었다.
- POSIX.1 – 시스템 콜 및 API 표준
- POSIX.2 – 셸 및 유틸리티 표준
- Single UNIX Specification – The Open Group에서 관리하는 UNIX 상표 인증 시스템
UNIX 상표
현재 “UNIX”라는 이름은 The Open Group이 소유하며, 공식 UNIX 인증을 받은 운영체제만이 상표를 사용할 수 있다.
현대의 Unix 계열
| 분류 | 대표 OS | 비고 |
|---|---|---|
| 상용 UNIX | AIX, HP-UX, Solaris | 기업용 서버 OS |
| BSD 계열 | FreeBSD, NetBSD, OpenBSD, DragonFly BSD | 오픈소스 BSD 파생 |
| UNIX 호환 OS | Linux, macOS, QNX, MINIX | POSIX 호환 기반 운영체제 |
Unix와 Linux의 관계
Unix는 Linux의 철학적 기반이며, Linus Torvalds는 MINIX와 Unix V7의 구조에서 영향을 받아 모놀리식 커널 기반의 Linux를 개발했다.
| 항목 | Unix | Linux |
|---|---|---|
| 개발 시기 | 1969년 | 1991년 |
| 커널 구조 | 모놀리식 (후기: 하이브리드) | 모놀리식 |
| 언어 | C, 어셈블리 | C, 어셈블리 |
| 라이선스 | 상용 (AT&T) / BSD 공개버전 | GPL 오픈소스 |
| 표준화 | POSIX, SUS | POSIX 호환 |
| 주요 파생 | BSD, System V, AIX, Solaris | Ubuntu, Fedora, Debian, RHEL |
영향
- C (프로그래밍 언어)의 탄생 배경 – Unix 개발을 위해 C가 설계됨
- Linux 및 BSD의 기반
- POSIX 표준의 근원
- macOS 및 iOS의 Darwin 커널 구조
- Shell과 CLI 문화의 기원
라이선스
초기 Unix는 AT&T의 상용 라이선스로 배포되었으나, 이후 BSD가 오픈소스 버전으로 재작성함으로써 Unix 철학이 자유 소프트웨어 세계로 확산되었다.
같이 보기
참고 문헌
- “The UNIX Programming Environment” – Kernighan & Pike, 1984
- “The Design of the UNIX Operating System” – Maurice J. Bach, 1986
- “A Quarter Century of UNIX” – Peter Salus, 1994
- Bell Labs Historical Archive – Bell Labs
- The Open Group – The UNIX Certification Register