MenuetOS KolibriOS: 어셈블리로 만든 비-POSIX 운영체제
Source: Dev.to
위의 링크에 포함된 전체 텍스트를 제공해 주시면, 해당 내용을 한국어로 번역해 드리겠습니다. (코드 블록, URL 및 마크다운 형식은 그대로 유지됩니다.)
Source:
이 운영 체제는 무엇인가
MenuetOS는 거의 전부가 x86 어셈블리로 작성된 독립 실행형 운영 체제입니다.
KolibriOS는 MenuetOS 개발이 둔화된 이후 같은 설계를 이어받아 시스템을 살아 있게 하고 적극적으로 유지 관리하고 있습니다.
이 둘은 다음과 같은 특성을 가진 단일 OS 계통을 이루고 있습니다:
- 네이티브 그래픽 데스크톱
- 선점형 멀티태스킹
- 기본 네트워킹
- 맞춤형 시스템 API
- Unix 또는 Linux 구성 요소 없음
이들은 Linux 배포판이 아니며, Unix 사용자 환경을 재사용하지 않고 POSIX에 의존하지도 않습니다.
왜 MenuetOS와 KolibriOS가 존재하는가
현대 대부분의 OS 설계는 다음을 전제로 합니다:
- 추상화는 비용이 적다
- 메모리는 풍부하다
- 안전성은 추가적인 계층으로 구현되어야 한다
MenuetOS는 창시자가 다른 질문에 답하고자 했기 때문에 존재합니다: 사용 가능한 운영 체제가 실제로 얼마나 작을 수 있는가?
KolibriOS는 원래 철학을 유지하면서 시스템을 실용적으로 유지함으로써 이 아이디어를 이어갑니다.
이러한 운영 체제들은 다음을 보여주기 위해 존재합니다:
- 그래픽 시스템은 수백만 줄의 코드가 필요하지 않다
- 멀티태스킹은 무거운 런타임을 필요로 하지 않는다
- 현대 하드웨어는 종종 추상화 뒤에 낭비를 숨긴다
커널
MenuetOS와 KolibriOS는 주로 어셈블리로 작성된 맞춤형 모놀리식 커널을 사용합니다. 커널은 다음을 담당합니다:
- 작업 스케줄링
- 메모리 관리
- 기본 하드웨어 접근
- 애플리케이션을 위한 시스템 콜
커널과 하드웨어 사이의 추상화는 거의 없습니다. 커널은 의도적으로 작고 직접적이며 예측 가능하도록 설계되어 성능과 단순성을 향상시키지만 이식성을 감소시킵니다.
POSIX Status
MenuetOS와 KolibriOS는 명시적으로 비‑POSIX입니다. 이들은 제공하지 않습니다:
- POSIX 시스템 호출
fork/exec프로세스 모델- Unix 신호
- Unix 권한
- POSIX 쉘 또는 유틸리티
이는 의도된 것입니다. POSIX는 최소주의보다 안전하지 않은 C‑스타일 프로그래밍과 호환성을 전제로 하지만, 이러한 운영 체제는 다음을 전제로 합니다:
- 명시적 제어
- 최소 오버헤드
- 목적에 맞게 설계된 API
프로세서 아키텍처
두 운영 체제 모두 x86 아키텍처(주로 32‑bit이며 제한적인 64‑bit 지원)를 목표로 합니다. 이 좁은 초점은 다음을 가능하게 합니다:
- 직접적인 CPU 기능 사용
- 예측 가능한 인터럽트 처리
- 매우 작은 시스템 크기
ARM이나 다른 아키텍처로의 이식성은 목표가 아니며, x86에서의 효율성을 중시합니다.
파일 시스템
MenuetOS와 KolibriOS는 간단한 맞춤 파일 시스템을 사용합니다. 설계 우선순위는 다음과 같습니다:
- 최소 메타데이터
- 낮은 오버헤드
- 빠른 접근
- 구현 용이
다음과 같은 용도로 설계되지 않았습니다:
- 저널링
- 엔터프라이즈 수준 신뢰성
- 대용량 스토리지 어레이
- 복잡한 권한 모델
파일 시스템은 OS를 지원하기 위해 존재하며, 일반적인 스토리지 플랫폼 역할을 위한 것이 아닙니다.
하드웨어 요구 사항
이 운영 체제들은 매우 낮은 하드웨어 요구 사항을 가지고 있습니다.
일반적인 기대치:
- CPU: 구형 x86 프로세서
- RAM: 수십 메가바이트
- Storage: 매우 작은 디스크 용량
- Graphics: 기본 프레임버퍼 지원
다음 환경에서도 원활히 실행됩니다:
- 구형 PC
- 가상 머신
- 최소 하드웨어 구성
이로 인해 하드웨어 재사용 및 저자원 환경에 적합합니다.
MenuetOS 또는 KolibriOS를 사용해야 하는 사람
이 운영 체제들은 다음과 같은 사람들에게 적합합니다:
- 저수준 OS 설계를 공부하는 사람
- 추상화 계층 없이 시스템을 이해하고 싶은 사람
- 코드 라인당 성능을 중시하는 사람
- 하드웨어와 가까이 작업하는 사람
- 구형 x86 머신을 재활용하고 싶은 사람
특히 다음과 같은 용도로 유용합니다:
- 학습 플랫폼
- 레퍼런스 시스템
- 실험 환경
의미가 없는 경우
MenuetOS와 KolibriOS는 다음에 적합하지 않다:
- 최신 데스크톱 워크플로
- 게임
- 엔터프라이즈 시스템
- 보안‑중요 환경
- POSIX‑의존 소프트웨어
그들은 의도적으로 호환성 및 안전 계층을 포기하고 단순성을 선택한다.
MenuetOS와 KolibriOS는 복잡성은 선택 사항임을 보여줌으로써 여전히 의미가 있다. 현대 운영체제에 반대하는 것이 아니라, 작고 명시적인 비‑POSIX OS도 여전히 존재하고 작동할 수 있음을 증명한다.