GNU Hurd
GNU Hurd는 GNU 프로젝트에서 GNU Mach 마이크로커널 위에 UNIX 계열 운영체제 기능을 구현하기 위해 개발하는 서버 집합이다. 파일 시스템, 프로세스 관리, 인증 및 네트워크 기능 등을 여러 사용자 공간 서버로 구성하며 GNU C 라이브러리와 협력하여 프로그램에 POSIX...
| 분류 | GNU 운영체제용 다중 서버 시스템 |
|---|---|
| 개발 시작 | 1990년대 초 |
| 개발 주체 | GNU 프로젝트 |
| 기반 커널 | GNU Mach |
| 운영체제 구조 | 마이크로커널 위의 사용자 공간 서버 |
| 구현 기능 | 파일 시스템, 프로세스, 인증, 네트워크 |
| 핵심 개념 | 트랜슬레이터, 서버별 권한 분리 |
| 사용자 API | GNU C 라이브러리, POSIX |
| 대표 배포판 | Debian GNU/Hurd, Guix GNU/Hurd |
| 개발 상태 | 개발 중 |
| 공식 웹사이트 | GNU Hurd |
GNU Hurd는 GNU 프로젝트에서 GNU Mach 마이크로커널 위에 UNIX 계열 운영체제 기능을 구현하기 위해 개발하는 서버 집합이다. 파일 시스템, 프로세스 관리, 인증 및 네트워크 기능 등을 여러 사용자 공간 서버로 구성하며 GNU C 라이브러리와 협력하여 프로그램에 POSIX와 UNIX 인터페이스를 제공한다. GNU Hurd는 Mach 커널 그 자체가 아니며, Debian GNU/Hurd는 이 기술을 활용한 운영체제 배포판이다.[1]
GNU Hurd는 커널에 UNIX 운영체제 기능을 모두 구현하는 대신, Mach 위의 사용자 공간에서 여러 서버가 역할을 나누도록 설계되었다. GNU Mach가 스레드, 태스크, 메모리 및 IPC를 처리하면 Hurd의 파일 시스템·인증·프로세스 서버가 UNIX에서 기대하는 서비스를 제공한다. GNU C 라이브러리는 표준 함수 호출을 적절한 서버와의 통신으로 변환하므로 응용 프로그램이 내부 서버 배치를 직접 다룰 필요가 없다.[2]
Hurd의 트랜슬레이터는 파일이나 디렉터리 이름에 연결해 실행할 수 있는 서비스로, 파일 시스템 인터페이스를 사용하여 일반 파일과 가상 자원, 특수 서비스를 연결한다. 이러한 구조는 운영체제의 기능을 커널 밖에서 확장하고 사용자 권한으로 새로운 파일 시스템 동작을 정의하려는 연구 목표를 반영한다. Hurd 서버와 GNU Mach를 결합한 시스템은 Debian GNU/Hurd 같은 운영체제 배포판에서 실제로 사용되며, Linux 커널을 사용하는 GNU/Linux와는 시스템 아키텍처의 계보가 다르다.[3]
GNU Hurd는 UNIX 운영체제에서 보통 커널이 담당하는 기능을 여러 사용자 공간 프로그램이 제공하도록 설계되었다. 이 프로그램들은 GNU Mach의 IPC를 통해 서로 통신하며 서비스가 필요한 응용 프로그램에 파일·네트워크·프로세스 인터페이스를 제공한다. GNU C 라이브러리는 표준 UNIX 호출을 적절한 서버의 요청으로 연결한다. 따라서 Hurd는 GNU Mach 커널과 같은 의미의 이름이 아니며 두 구성 요소가 협력해야 완전한 시스템이 동작한다.[4]
Hurd의 트랜슬레이터는 파일 또는 디렉터리에 새로운 서비스 의미를 부여하는 특별한 사용자 공간 서버다. 개발자는 파일 시스템과 자원 인터페이스를 여러 방식으로 실험할 수 있으며, 시스템 관리와 응용 프로그램의 경계를 UNIX의 전통적인 모델과 다르게 구성할 수 있다. GNU Hurd는 Debian과 Guix 같은 운영체제 배포판을 통해 사용할 수 있지만 커널·드라이버와 모든 응용 프로그램의 지원 범위는 각 포트의 개발 상황에 따라 구분된다.[5]