MINIX
MINIX는 Andrew S. Tanenbaum이 운영체제의 내부 구조와 UNIX 프로그래밍 인터페이스를 교육하기 위해 개발한 운영체제다. 1987년 공개된 초기 MINIX 1과 후속 MINIX 2는 교육용 UNIX 유사 시스템에 초점을 맞췄고, MINIX 3에서는 드라이버와 시스템 서...
| 분류 | 교육·연구용 마이크로커널 운영체제 |
|---|---|
| 개발 | Andrew S. Tanenbaum 및 MINIX 개발팀 |
| 시작 | 1987년 최초 공개 |
| 기술 계보 | 교육 목적의 독립 UNIX 유사 구현 |
| 커널·주요 구성 | MINIX 커널, MINIX 3 마이크로커널 |
| 대상 플랫폼 | x86 및 일부 ARM 시스템 |
| 주요 기능 | 사용자 모드 서버·드라이버 격리 |
| 배포·라이선스 | BSD 계열 오픈 소스 라이선스 |
| 개발 상태 | 역사적 교육·연구 운영체제, 후속 개발 |
| 참고 자료 | 공식 기술 자료 |
MINIX는 Andrew S. Tanenbaum이 운영체제의 내부 구조와 UNIX 프로그래밍 인터페이스를 교육하기 위해 개발한 운영체제다. 1987년 공개된 초기 MINIX 1과 후속 MINIX 2는 교육용 UNIX 유사 시스템에 초점을 맞췄고, MINIX 3에서는 드라이버와 시스템 서비스를 사용자 공간 프로세스로 분리해 신뢰성을 높이는 운영체제 연구가 중요해졌다. POSIX와 UNIX의 영향을 받았지만 역사적인 AT&T UNIX 커널을 그대로 재배포한 제품은 아니다.[1]
MINIX 3의 작은 마이크로커널은 인터럽트, 스케줄링과 IPC 같은 기능을 담당하고, 파일 시스템·메모리 관리자·프로세스 관리자·장치 드라이버는 보호된 사용자 공간 서버로 실행된다. 드라이버가 오류로 종료되었을 때 관련 서버를 재시작할 수 있도록 하는 설계는 운영체제 전체의 오류 전파를 줄이는 데 목적이 있다. 구성 요소 사이의 메시지 전달과 접근 권한 제한이 안정성의 중요한 기반이다.
MINIX는 1991년 Linux의 등장과 교육용 운영체제·커널 설계 논의에 역사적 영향을 미쳤지만 Linux의 원본 커널 코드가 MINIX에서 직접 갈라졌다는 뜻은 아니다. 일부 MINIX 3 사용자 공간에는 NetBSD 코드·패키지와의 호환성을 개선하려는 작업도 존재한다. 따라서 커널의 독립적인 기원, 사용자 공간의 코드 재사용, POSIX 호환성을 서로 나누어 설명하는 것이 적절하다.[2]