유닉스(Unix)는 벨 연구소의 데니스 리치(Dennis M. Ritchie)와 켄 톰슨(Ken Thompson)이 참여한 멀틱스(MULTICS) 운영체제 팀에서 개발한 운영체제이다. 멀틱스는 유닉스가 개발되기 이전의 운영체제이며 PDP-7이라는 새로운 시스템의 운영체제로 개발한 것이 유닉스(UNICS: UNiplexed Information and Computing Service)이다. 이것을 발전시켜 1973년 새로 개발한 언어 C를 이용하여 시스템 PDP-11을 위해 만든 운영체제가 유닉스(Unix)이다.

[ 그림 5.47 ]

유닉스를 만들기 위해 최초 C 언어로 작성된 소스 코드는 약 11000줄. 그 중 95%인 10000줄은 C 언어로 작성되었으며 나머지 1000줄은 어셈블리 언어로 작성되었다고 한다. 1000줄의 어셈블리 언어 코드 중에서 800줄 정도는 기계 종속적인 부분이고, 나머지 200줄은 수행 속도를 높이기 위한 목적으로 작성되었다고 한다. 이러한 이유로 유닉스는 다른 시스템에도 쉽게 적용하여 운영할 수 있는 이식성(Portability)이 좋은 운영체제로 유명하다.

[ 그림 5.48]

벨 연구소는 유닉스의 소스 코드를 공개하고 사용자들이 소스를 수정, 이용할 수 있도록 했다. 이러한 결과로 유닉스 운영체제는 대학과 연구소를 중심으로 교육용과 연구용으로 널리 사용되었으며 대항을 중심으로 유닉스 기반의 여러 버전이 나오게 되었다.

벨 연구소에서 개발한 유닉스는 계속 발전하여 시스템 V(System V)로 불려지고 있다. 유닉스의 새로운 버전 중에서 가장 먼저 나온 것이 1977년에 소개된 BSD(Berkeley Software Distribution)이다. BSD는 버클리 대학의 컴퓨터 연구소 그룹(CSRG: Computer System Reserch Group)에서 개발한 유닉스 계역의 운영체제이다.

중대형 컴퓨터를 생산하는 IBM, SUN, HP, DEC, DELL 등은 시스템 V와 BSD 버전을 이용하여 자체 상표의 유닉스를 개발하였으나, 2000년대 들어와 SUN은 오라클(Oracle)에, DEC는 HP에 합병되어 현재에는 [표 5.8]과 같은 컴퓨터 생산 업체에서 유닉스 계열의 운영체제를 출시하고 있다.

표 5.8 주요 회사의 유닉스 계열 운영체제

[ 그림 5.49 ]

유닉스 운영체제를 구성하는 주요 요소 중에 커널(Kernel)과 쉘(Shell)이 있다. 커널은 운영체제의 가장 핵심이 되는 모듈로 CPU와 주기억장치를 관리하고 시스템 호출을 처리하며 주변장치를 관리하는 기능을 포함한다. 쉘은 운영체제의 설정 환경에 따라 시스템 부팅 후 나오거나 특정한 쉘 프로그램 실행에 의하여 화면에 나타난다. 쉘은 순수 유닉스 운영체제와 사용자 사이에서 매개 역할을 하는 프로그램으로 도스와 같은 명령행 인터페이스 방식을 따른다. 쉘은 표준 UNIX 명령 인터프리터로서 사용자가 입력한 명령을 해석하여 그에 맞는 다른 프로그램을 실행시키는 유틸리티 프로그램이다. 쉘은 여러 종류가 있는데 스티븐 본(Steven Bourne)의 본쉘 (Bourne Shell,sh), 빌 조이(bill Joy)의 C 쉘(csh) 그리고 데이브 콘(Dave korn)의 콘쉘(Korn Shell, ksh)이 유명하다.

유닉스는 초기에는 명령행 기반의 운영체제였으나 1980년대 중반부터 X 윈도우 기반의 MOTIF와 OPENLOOK과 같은 유닉스용 GUI가 개발되어 사용자에게 좀 더 친화적인 그래픽 사용자 인터페이스를 제공하게 된다.

[ 그림 5.50 ]

유닉스는 버전이 매우 다양하며 크게 시스템 V 계열과 BSD 계열로 나눌 수 있는데 현재 하나로 통합되어 가고 있다. 미전신전화국(AT&T)과 선(SUN)사가 주도하는 유닉스 인터네셔널(UI: Unix International)은 시스템 V 4.1을 지원하고 있으며, IBM, DEC, HP가 주도하는 개방소프트웨어재단(OSF: Open Source Foundation)은 OFI/1이라 불리는 BSD 계열의 유닉스를 발전시켰다. 두 연합체는 POSIX(Portable Operation System Interface Based an UNIX) 위원회의 표준안을 협의하여 공통적인 표준으로 운영체제를 개선할 것으로 보인다.