SerenityOS: 이해하기 쉽게 설계된 현대 운영 체제
Source: Dev.to
SerenityOS가 무엇인가
SerenityOS는 처음부터 오픈 소스로 개발된 범용 운영 체제입니다. 포함 내용은 다음과 같습니다:
- 자체 커널
- 자체 C 라이브러리
- 자체 파일 시스템
- 자체 GUI 스택
- 자체 애플리케이션
Linux 커널, BSD 커널, 혹은 Unix 유저랜드를 재사용하지 않으며, 따라서 SerenityOS는 배포판이나 포크가 아닌 자체적으로 포함된 시스템입니다.
SerenityOS가 존재하는 이유
대부분의 주류 운영 체제는 다음과 같은 이유로 존재합니다:
- 하드웨어 변화
- 사용자의 호환성 요구
- 기업의 안정성 요구
SerenityOS는 다른 이유로 존재합니다. 현대 OS 설계는 이해하기 어려워졌기 때문입니다. Linux, Windows, BSD 시스템은 다음을 가지고 있습니다:
- 수십 년에 걸친 하위 호환성
- 레거시 API
- 제거할 수 없는 역사적 설계 결정
SerenityOS는 간단한 질문을 던집니다:
“그 무게를 짊어지지 않고 오늘 현대 운영 체제를 설계한다면 어떨까요?”
사용자를 끌어들이려는 것이 아니라 명확성을 보존하려는 목적입니다.
커널 (간략, 중립)
SerenityOS는 명확성을 우선으로 설계된 단일 커널(monolithic kernel)을 사용합니다. 커널은:
- Unix이 아니다
- Linux가 아니다
- 내부적으로 POSIX에 얽매이지 않는다
그 역할은 단순합니다:
- 프로세스 관리
- 메모리 관리
- 기본 장치 처리
혁신을 목표로 하지 않으며, 커널은 의도적으로 보수적이고 읽기 쉬운 구조를 유지합니다.
프로세서 아키텍처
SerenityOS는 현재 x86‑64 시스템을 목표로 합니다. 이 선택은 이념이 아니라 실용성에 기반합니다. x86‑64는 다음을 제공합니다:
- 성숙한 툴링
- 예측 가능한 동작
- 좋은 가상화 지원
- 쉬운 디버깅
OS는 광범위한 하드웨어 지원보다 개발자 접근성을 우선합니다. 이식성은 가능하지만 주요 목표는 아닙니다.
파일 시스템 철학
SerenityOS는 자체 파일 시스템 SerenityFS를 사용합니다. 설계 초점은 다음과 같습니다:
- 단순성
- 정확성
- 예측 가능성
다음에 최적화되어 있지는 않습니다:
- 대용량 스토리지 어레이
- 고성능 데이터베이스
- 엔터프라이즈 워크로드
대신 파일 시스템은 다음을 목표로 합니다:
- 이해하기 쉬움
- 수정하기 안전함
- OS 개발 및 실험에 적합함
이는 전체 OS 목표와 일치합니다: 규모보다 명확성을 중시합니다.
하드웨어 요구 사항 (실용적인 관점)
SerenityOS는 최신 하드웨어를 요구하지 않습니다. 현실적인 기대 사양은 다음과 같습니다:
- CPU: x86‑64 프로세서라면 어느 것이든
- RAM: 2–4 GB면 충분
- 스토리지: 몇 기가바이트 정도
- GPU: 기본 그래픽 지원 (게임용이 아님)
다음 환경에서 잘 동작합니다:
- 가상 머신
- 테스트용 데스크톱
- 개발 환경
고성능 GPU, 게임, 무거운 멀티태스킹을 위해 설계된 것은 아닙니다.
SerenityOS를 사용하면 좋은 사람
SerenityOS는 다음과 같은 사람들에게 의미가 있습니다:
- OS 내부 동작을 직접 이해하고 싶은 사람
- 운영 체제 설계에 관심이 있는 사람
- 도구 설정보다 코드를 읽는 것을 선호하는 사람
- 레거시 복잡성이 없는 깔끔한 레퍼런스 시스템을 원하는 사람
특히 다음 대상에게 유용합니다:
- OS 학습자
- 시스템 프로그래머
- 커널, 런타임, 저수준 소프트웨어를 만드는 사람
SerenityOS가 맞지 않는 경우
SerenityOS는 다음 상황에 적합하지 않습니다:
- 일상적인 데스크톱 사용
- 게임 플레이
- 전문적인 프로덕션 워크로드
- 엔터프라이즈 환경
- 보안이 중요한 시스템
주류 운영 체제를 대체하려는 목표가 없으며, 그 또한 시도하지 않습니다.