유닉스(UNIX)에 대해서 이해하기 전에 40여년 전의 시간으로 돌아가서 그 시대의 기술에 대해서 알아볼 필요가 있다. 그 시대의 컴퓨터는 집을 꽉 채우거나 심하면 운동 경기장만한 크기를 가지고 있었다. 크기보다 더 큰 문제는 컴퓨터마다 운영체제(OS)가 달랐다는 점이다. 특정 시스템에서 돌아가는 소프트웨어는 반드시 커스터마이즈 과정을 거쳐야 했으며 한 시스템에서 돌아가는 프로그램은 다른 시스템에서는 동작하지 않았다. 또한 어떤 시스템으로 작업을 수행할 수 있는 기술자가 다른 시스템을 다룰 수 있는 것이 아니었다.
또한 컴퓨터는 굉장히 고가의 기기였으며 한 시스템을 구입하여 사용자들이 작동법을 익혔다 하더라도 추가적인 비용이 드는 구조였다. 컴퓨팅 파워를 사용하기 위해서는 막대한 비용이 소요되었다. 기술적으로 진보가 이루어지지 않았으므로 그러한 사이즈의 컴퓨터를 가지고 작업을 이후로도 십 몇년 동안이나 더 해야만 했었다.
그러던 중 1969년에 AT&T의 Bell 연구소에 근무하는 데니스리치(Dennis Ritchie)를 포함한 기술자팀이 이러한 호환성 문제를 해결하기 위해서 작업을 시작하였다. 이들은 MULTICS라는 운영 체제(1964년에 개발된 시분할 개념을 도입한 초기 운영 체제)의 여러 개념을 구현해 보기 위해 켄톰슨(Ken Thomson)과 함께 PDP-7이라는 컴퓨터 시스템을 이용하여 새로운 운영 체제를 만들기 시작하였다.
[그림 1] Dennis Ritchie with the PDP-7
이들이 개발하는 운영체제는 다음과 같은 사항들을 지향했다.
간결하면서도 명쾌하다.
어셈블리어 대신 C언어로 작성한다.
코드를 재사용할 수 있어야 한다.
벨연구소 개발자들은 그들의 프로젝트를 “UNIX”라고 명명했으며 1972년에 PDP-11/45기종으로 초기의 유닉스를 이식하면서 OS를 C 언어로 다시 작성하였다.
코드의 재사용성은 매우 중요한 개념이다. 그 당시 시판되는 모든 컴퓨터 시스템들은 그 시스템에서만 사용되는 프로그램을 이용하였다. 반면 유닉스는 커널(kernel)이라고 불리는 작은 부분의 시스템 적용 코드만 요구되었다. 유닉스 운영 체제와 모든 기능들은 이러한 커널 위에 구축되었으며 고수준 언어인 C언어로 개발되었다. C언어 자체가 유닉스 시스템을 개발하기 위한 목적으로 만들어졌다. 이러한 새로운 기술로 인해 서로 다른 컴퓨터 시스템을 동작시키는 운영 체제가 훨씬 더 용이하게 만들어 질 수 있었다. 더불어서 C언어도 대표적인 프로그래밍 언어로 자리매김되었다. 그리고 1979년에 유닉스 7번째 버전 V7 이 발표되었으며 이는 모든 현존하는 유닉스 시스템의 대부격이 되었다.
소프트웨어 판매사들은 이러한 신기술을 재빨리 채용하여 추가적인 노력없이도 열 배 이상의 소프트웨어를 팔아치울 수 있었다. 사용자는 시스템이 바뀌어도 추가적인 교육이나 노력없이도 작업을 계속할 수 있었다. 유닉스는 서로 다른 기종에 같은 사용자 환경을 성공적으로 제공하였다.
그 다음 20여년이 지나는 동안에도 유닉스 개발은 계속되었다. 다양한 기능이 추가되었고 하드웨어나 소프트웨어 판매사들은 그들의 제품에 유닉스를 지원하게 되었다. 초창기에는 유닉스는 메인프레임(mainframe)이나 미니컴퓨터(minicomputer - 서버나 워크스테이션)에 적용되었다. (여기서의 미니컴퓨터는 중소형 시스템을 지칭하는 것이고 현재의 PC는 마이크로컴퓨터에 해당된다.) 일반인이 유닉스 시스템을 접하려면 대학 연구소에서 일하던가 정부 기관이나 대형 금융회사 같은 곳에서 일을 해야만 했다.
유닉스가 유명해지자 유닉스를 모방한 많은 운영체제들이 나타났는데, 이들을 표준화하기 위해 POSIX라는 표준이 등장했다. POSIX 표준을 만족하는 것들을 유닉스 계열 운영체제라고 한다. 리눅스, Mac OS X가 대표적인 유닉스 계열 운영체제이다. 대부분의 리눅스 배포판들은 POSIX의 거의 모든 상세스펙을 따르고 있다.
소형 컴퓨터들이 그 이후에 개발되었으며 80년대 후반에는 많은 사람들이 가정용 컴퓨터(PC)를 갖게 되었다. 그 시점에서는 PC를 위한 몇몇 유닉스가 있었지만 무료로 자유롭게 사용할 수 있는 운영 체제는 없었고 속도가 매우 느렸다. 그래서 많은 이들인 MS DOS 나 윈도우즈3.1 을 사용하였다.