Computer >> 컴퓨터 >  >> 시스템 >> Linux

HDG 설명: UNIX란 무엇일까?

전 세계에서 가장 널리 사용되는 운영체제 세 가지는 Windows, Mac, Linux입니다. 이 세 운영체제가 언론의 주목을 독차지하며(특히 앞의 두 가지가 더 많이), 여러분이 들어본 운영체제도 아마 이 세 가지가 전부일 것입니다.

그런데 가장 인기 있는 운영체제 세 가지 중 두 가지가 사실 'UNIX'라는 시스템의 핵심 철학을 바탕으로 만들어졌다는 사실을 알고 계셨나요? 이 철학이란 여러 사용자가 동시에 하나의 메인프레임 컴퓨터에 접근할 수 있게 하는 시분할(time-sharing) 시스템의 기본 개념입니다.

HDG 설명: UNIX란 무엇일까?

1970년에 개발된 UNIX는 프로그래머만을 위한 작고 유연한 시스템으로 설계되었고, 빠르게 워크스테이션의 주력 운영체제로 자리 잡았습니다. 하지만 UNIX에 대해 여러분은 과연 얼마나 알고 있을까요?

HDG 설명: UNIX란 무엇인가?

UNIX와 UNIX 계열 운영체제는 현재 시장에서 가장 강력하고 대중적인 다중 사용자·멀티태스킹 운영체제입니다. 수년에 걸쳐 다양한 기기를 위해 여러 세대의 UNIX가 개발되었으며, 여기에는 Linux와 그 수많은 변종, Mac OS 같은 현대의 POSIX 시스템도 포함됩니다. 이토록 강력한 시스템이 그렇게 소박한 시작에서 출발했다는 사실이 믿기 어려울 정도입니다.

HDG 설명: UNIX란 무엇일까?

UNIX는 벨 전화 연구소(Bell Telephone Laboratories, 이하 벨 연구소)에서 소수의 프로그래머에 의해 개발되었으며, C 프로그래밍 언어로 작성되었습니다. 덕분에 C 컴파일러를 갖춘 사실상 모든 컴퓨터에 설치할 수 있었습니다. 이 점 하나만으로도 UNIX는 자연스러운 이식성과 유연성을 갖추게 되었고, 운영체제로서 상당히 강력한 선택지가 되었습니다.

가격이 저렴했던 것은 물론, 벨 연구소는 운영체제를 소스 코드 형태로 배포하여 누구나 이를 자신의 목적에 맞게 수정하고 커스터마이징할 수 있도록 했습니다. 이로 인해 10년 남짓한 기간 동안 수십 가지의 서로 다른 UNIX 버전이 탄생해 다양한 현장에서 운영되었습니다.

HDG 설명: UNIX란 무엇일까?

벨 연구소는 결국 1984년에 분사하게 됩니다. 그럼에도 UNIX의 표준 버전을 정의하려는 시도로 UNIX를 마케팅하기 시작했는데, 이때 개발된 표준은 지나치게 제한적이라는 평가를 받았습니다. 그중 한 사람이 바로 GNU 프로젝트를 이끈 리처드 스톨먼(Richard Stallman)입니다. GNU 프로젝트는 오늘날 우리가 아는 Linux의 기반이 되었는데, Linux는 UNIX 커널이 아닌 Linux 커널로 구성되어 있기 때문입니다.

한편 Linux는 교육용으로 만들어진 UNIX 계열 운영체제인 MINIX에서 영감을 받았습니다. 이것이 오늘날 사용되는 대부분의 운영체제에 도미노 효과를 일으킨 셈입니다. GNU/Linux는 UNIX의 설계에서 파생되었고, 이를 바탕으로 Android, Chrome OS, Steam OS, 그리고 수많은 임베디드 기기용 운영체제를 포함한 오늘날의 많은 운영체제가 Linux 기반으로 만들어졌습니다.

UNIX 표준

HDG 설명: UNIX란 무엇일까?

표준은 결국 만들어졌지만, AT&T의 어떤 기술을 기반으로 한 것은 아니었습니다. 오늘날 상표로 등록된 "UNIX"의 소유권은 The Open Group이 가지고 있으며, Single UNIX Specification 역시 마찬가지입니다. UNIX를 사용하는 모든 운영체제는 The Open Group의 인증을 받아 Single UNIX Specification을 준수해야 합니다.

The Open Group이 설명하는 내용은 다음과 같습니다:

HDG 설명: UNIX란 무엇일까?

이미지 속 링크를 직접 방문하고 싶은 분들을 위해 링크를 남겨둡니다.

앞서 언급한 POSIX는 미국전기전자학회(IEEE)가 지정한 표준의 집합체입니다. POSIX는 UNIX 계열 운영체제가 제공하는 응용 프로그래밍 인터페이스(API)를 명확히 하고 통일하는 역할을 합니다.

이 덕분에 POSIX 표준에 맞춰 프로그램을 작성하면 Linux, Mac OS 등 UNIX의 방대한 파생 제품군 사이에서 이식성과 호환성을 손쉽게 확보할 수 있습니다. 반면 POSIX로 표준화되지 않은 API나 코드를 사용하면 다른 UNIX 계열 시스템으로의 이식이 점점 더 어려워집니다.

UNIX 프로그램, 시스템, 서브시스템이란?

UNIX 명령은 셸(shell)이 제공하는 명령줄 인터페이스(CLI)에서 실행됩니다. 셸은 입력된 명령을 읽어 직접 실행하거나 커널(kernel)에 전달하는 프로그램입니다.

UNIX 시스템은 '핵심 커널(core kernel)'을 중심으로 구축되며, 이 커널이 시스템 전반과 다른 프로세스들을 관리합니다. 커널은 UNIX 운영체제의 심장부로, 기반 하드웨어와 직접 상호작용하며 표준 서비스 집합을 제공합니다. 커널 서브시스템에는 프로세스 관리, 파일 관리, 메모리 관리, 네트워크 관리 등이 포함됩니다.

HDG 설명: UNIX란 무엇일까?

UNIX 프로그램은 단일 목적 수행, 상호 운용성, 표준화된 텍스트 인터페이스 사용과 같은 몇 가지 핵심 철학을 바탕으로 설계됩니다.

UNIX의 주요 특징을 정리하면 다음과 같습니다:

  • 하나의 시스템에서 서로 다른 사용자가 동일한 자원을 공유할 수 있습니다.
  • 멀티태스킹을 지원하여 각 사용자가 동시에 여러 프로세스를 실행할 수 있습니다.
  • 고급 언어로 작성된 최초의 운영체제로, 최소한의 수정만으로 다른 기기에 쉽게 이식할 수 있습니다.
  • 계층적 파일 구조를 통해 데이터에 더 쉽게 접근하고 유지 관리할 수 있습니다.
  • 내장된 네트워킹 기능으로 사용자 간 정보 교환이 용이합니다.

UNIX가 중요한 이유

HDG 설명: UNIX란 무엇일까?

Windows와 Windows 기반 시스템을 제외하면, 여러분이 접하게 되는 운영체제 대부분은 UNIX 철학을 기반으로 합니다. Mac OS X의 터미널이나 파일 시스템을 살펴보면 Linux와 놀랄 만큼 유사하다는 것을 알 수 있습니다. 둘 다 Windows와는 완전히 다른데, 이는 Linux와 Mac OS가 모두 UNIX 계열 시스템이기 때문입니다.

이 점을 이해하면 UNIX가 얼마나 중요했는지도 자연스럽게 깨닫게 됩니다. 오늘날에도 이어지는 주요 UNIX 철학 중 하나는, 단 하나의 일을 탁월한 효율성으로 수행하는 작고 모듈화된 유틸리티를 만드는 것입니다. Mac OS 터미널에 익숙해지면 Linux 터미널에도 자연스럽게 익숙해지며, 그 반대도 마찬가지입니다. 이것이 바로 UNIX의 핵심입니다.

UNIX 계열 시스템은 프로그램 간 통신에 단일 파일 시스템을 활용합니다. 반면 Windows 계열 시스템은 DOS에 의존합니다. 이것이 Windows 계열 시스템에만 드라이브 문자(C:, D: 등)가 존재하는 이유입니다. 그 외 모든 운영체제에서는 시스템의 모든 파일이 단일 디렉터리 계층 구조의 일부입니다. 이 역시 모두 UNIX 철학 덕분입니다.

HDG 설명: UNIX란 무엇일까?

UNIX는 BSD, Linux, Mac OS 같은 운영체제의 아키텍처 전반에 그 설계 의도대로 뚜렷하게 드러납니다. UNIX가 없었다면 Mac OS도 없었을 것이고, 경쟁자인 Windows를 포함한 다른 운영체제도 마찬가지였을 수 있다고 말할 수 있습니다.

물론 이는 다소 과장된 표현입니다. 하지만 오늘날 사용되는 모든 운영체제의 발전에 UNIX가 중요한 역할을 했다는 점은 인정할 수밖에 없습니다. 이것이 UNIX와 그 철학의 중요성을 보여주지 못한다면, 무엇이 그렇게 할 수 있을까요?