레거시 PC를 위한 경량 OS GentleOS 공개

by DD
1일 전
조회수 0

80186부터 i386까지의 레거시 PC(legacy PC) 플랫폼을 지원하는 이중 아키텍처 운영체제를 공개함

최소 사양으로 i386 CPU, 4MB RAM, 640x480x16 VGA 디스플레이만 요구하는 경량 설계(Lightweight Design)를 채택함

커널과 애플리케이션의 모놀리식 설계(Monolithic Architecture)로 컴파일 타임에 대부분의 구성을 결정하는 임베디드 스타일(Embedded Style)을 적용함

VGA/SVGA, PS/2 마우스, PC 스피커 등 표준 PC 주변기기(Standard PC Peripherals)만을 지원하며, 미래 계획은 버그 수정과 최적화에 한정됨

GPLv2 라이선스하에 오픈소스로 공개되어 레트로 하드웨어 및 운영체제 엔트리-level 학습(OS Learning) 용도로 활용 가능함

모놀리식 커널 설계의 철학과 트레이드오프

본 프로젝트는 모놀리식 커널(Monolithic Kernel) 구조를 채택하여 커널 모드와 사용자 모드를 분리하지 않고 단일 주소 공간에서 실행된다. 이는 마이크로커널(Microkernel) 기반 운영체제(Linux, MINIX)와는 근본적으로 다른 설계 철학을 보여주며, IPC(Inter-Process Communication) 오버헤드가 존재하지 않아 컨텍스트 스위칭 비용(Context Switching Cost) 절감이 가능하다.

장점: 커널 함수 호출이 함수 포인터 호출 수준으로 동작하여 낮은 오버헤드(Low Overhead) 구현 가능

단점: 모듈 간 결합도(Coupling)가 높아 한 모듈의 버그가 전체 시스템에 영향을 미칠 수 있음

결론: 제한된 하드웨어 자원(4MB RAM)에서 성능 최적화(Performance Optimization)를 우선시하는 선택이다.

16비트에서 32비트 전환: 보호 모드(Protected Mode)의 의미

GentleOS/32는 i386의 보호 모드(Protected Mode)를 활용하여 16비트 세그먼트 기반 주소를 넘어 선형 주소 공간(Linear Address Space)에 접근한다. 이는 640KB 메모리 장벽(Conventional Memory Barrier)을 극복하고 실제 모드(Real Mode)의 1MB 주소 한계를 넘을 수 있음을 의미한다.

게이트 디스크립터(Gate Descriptor): 콜 게이트를 통해 16비트 코드에서 32비트 커널을 호출할 수 있다.

페이지링(Paging): 선택적 메모리 보호 및 가상 메모리를 구현할 수 있다.

GDT(Global Descriptor Table): 세그먼트 권한 관리와 권한 레벨(Privilege Level) 전환을 처리한다.

이러한 전환은 x86 아키텍처의 진화(x86 Evolution)를 이해하는 핵심 과제이며, 현대 운영체제의 기반이 되는 메모리 보호 메커니즘을 배울 수 있는 교육적 가치를 지닌다.

Bare Metal 프로그래밍: BIOS 인터럽트 의존성 탈피

본 운영체제는 표준 PC 하드웨어만을 지원하되, BIOS 인터럽트(Bios Interrupt) 호출을 최소화하고 직접 하드웨어 제어(Hardware Direct Access)를 지향한다. VGA 640x480x16 모드는 그래픽 모드 전환(Graphics Mode Switching)을 통해 텍스트 모드보다 높은 해상도를 제공하며, 이는 프레임버퍼 접근(Framebuffer Access)의 기초가 된다.

키보드/마우스: PS/2 컨트롤러의 포트Mapped I/O(Port-Mapped I/O)를 직접 핸들링

PC 스피커: PIT(Programmable Interval Timer)와 PWM(Pulse Width Modulation)을 활용한 음향 출력

직렬 마우스: UART(Universal Asynchronous Receiver-Transmitter) 통신으로 레거시 프로토콜 지원

이러한 접근은 하드웨어 추상화 계층(HAL, Hardware Abstraction Layer) 없이 작성되므로 임베디드 시스템 개발 역량과 peripheral programming 이해를 요구한다.

레트로 컴퓨팅 생태계에서 hobby OS의 위상

본 프로젝트는 운영체제 엔트리-level 학습(OS Learning)레트로 컴퓨팅(Retro Computing) 커뮤니티에 기여한다. 비슷한 유형의 프로젝트로는 MenuetOS(64비트 어셈블리 중심), KolibriOS(C/FASM 혼합), SoyOS 등이 있으며, 이들은 각각 고유한 설계 철학을 가지고 있다.

커뮤니티 동기: xv6(MIT), L.os, OSTEP 등 학술적 운영체제 학습 자료와 병행하여 활용 가능

교육적 가치: 부트스트랩(Bootstrap) 과정, 인터럽트 핸들링(Interrupt Handling), 파일시스템 설계 등 핵심 개념 습득

제약 사항: 네트워킹, USB 지원 부재로 인해 실용성보다 학습용 프로젝트(Learning Project)로 평가되어야 함

결과적으로 GentleOS는 복잡한 현대 운영체제에서 숨겨진 기본 원리를 복습하고 시스템 프로그래밍 역량(System Programming Skills)을 강화하는 데 적합하다.

GentleOS - A pair of hobby OSes for vintage 32-bit and 16-bit PCs