안녕하세요.
UNIX에 대해 배우기 시작했습니다.
항상 프로그래밍을 공부하면서 UNIX/Linux등은 항상 불가사의한 세계였습니다. 일반적으로 개발할 때는 IDE에서 Run버튼을 통해 프로그램을 실행할 수 있고, 일반 운영체제 상에서는 GUI상에 보이는 아이콘을 클릭하면 어플리케이션을 실행할 수 있었습니다. 그러나 그러한 유저 인터페이스가 제공되지 않는 상황에서는 명령어 기반의 인터페이스인 CLI에서 프로그램을 실행하는 명령어를 직접 입력해야했습니다. 그리고 그 명령어의 세계는 일반적인 프로그래밍 언어의 문법과는 완전히 달랐습니다. 그래서 항상 이 CLI기반의 운영체제에 관심이 많았고, 그 세계의 마법 주문은 어떠한 방식으로 이루어지는지 배워야할 필요가 있다고 생각했습니다.
UNIX는 가장 원초적인 운영체제 중 하나로써, 1969년 Bell Labs라는 사내 연구실에서 개발되어 1980대 말에 표준화되었다. AT&T라는 미국 정부가 최대주주였던 통신회사에서 군사용으로 개발한 운영체제였습니다. 정부가 주인인 기업이었으므로 UNIX를 상업용으로 풀어 팔지 못하게했습니다. 그때 AT&T는 UNIX를 무료로 시중에 제공하였고 덕분에 대학등 교육 기관에서도 활용할 수 있게되었습니다.
그때 UNIX를 다루었던 이들이 졸업후 산업에 나와 여러 버전의 UNIX를 자신의 입맛에 맞게 만들었습니다. 현재 소프트웨어에서 크게 통용되고 있는 패러다임인 오픈소스(Open-Source) 움직임의 시초라고 볼 수 있습니다.AT&T는 이후 1989년 C 언어가 대세가되어과는 과정에서 대부분의 kernel이 C로 다시 쓰여졌고, 이는 운영체제에 상관없이 C언어 라이브러리를 지원하는 그 어떤 디바이스에서도 UNIX를 사용할 수 있게 만들었습니다. 이때 발표된 버전이 System V로써, 상업용 UNIX의 표준이되었고, 이후 다른 회사들이 해당 UNIX를 기반으로 여러 상업용 UNIX 버전을 내놓기 시작했습니다.
UNIX의 역사를 배워보니, 오픈소스 소프트웨어가 이렇게 오래전에 시작되었다는 것이 매우 놀라웠고, 이 것이 C언의 발전과 궤를 같이 해온 점이 매우 흥미로웠습니다. 운영체제에 상관없이 C언어를 지원하는 디바이스에서 모두 실행될 수 있도록 크로스플랫폼(Cross-Platform)의 개념이 이때부터 시작되었다는 것도 인상적 이었습니다. 생각보다 우리가 당연시 여기는 지금의 기술들이 수십년전부터 시작되었다는 사실에 다시 한번 놀라게 되었습니다.
그 동안 잘 알지 못했던 UNIX의 정체와 간략한 역사를 다룬 글을 공유합니다.