MMOS · RISC-V · Rust

작은 운영체제를 직접 만들어 봅니다.

MMOS는 RISC-V와 Rust로 운영체제를 구현하고 실제 실행 결과를 확인하는 프로젝트입니다. 제1권 『직접 만들며 배우는 RISC-V 운영체제』는 커널 부팅에서 시작해 파일시스템의 사용자 프로그램을 실행하고 셸에서 명령을 입력하기까지 다룹니다.

8부 · 54장
부팅부터 사용자 셸까지
112절
구현 단계별 설명
코드 태그
책에서 실습 코드로 이동
mmos.boot

momo operating system

코드를 실행하면서 운영체제의 동작을 확인합니다.

부팅, 트랩, 주소 변환, 파일 읽기, 프로세스 실행을 차례로 구현합니다. 새 기능을 추가할 때마다 테스트와 QEMU 실행 결과로 동작을 확인하고, 다음 단계에 필요한 기능을 살펴봅니다.

Foundation OS · Volume 01

부팅부터 사용자 셸까지 만드는 제1권

『직접 만들며 배우는 RISC-V 운영체제』의 부제는 ‘부팅부터 사용자 셸까지, 작은 운영체제 만들기’입니다. 작은 커널을 실제로 실행하면서 운영체제의 주요 기능을 더해 갑니다. 알라딘과 북큐브에서 책을 구매할 수 있으며, 다른 온라인 서점은 등록되는 대로 안내합니다.

RISC-V 칩 위의 공룡이 그려진 직접 만들며 배우는 RISC-V 운영체제 표지
8부
구현 흐름개발 환경에서 Foundation OS 완성까지
54장
주제별 구성관련 구현 단계를 한 장에서 설명
112절
코드와 검증동작 변화와 확인 방법을 따라가기
책 구매
알라딘 · 북큐브다른 온라인 서점은 등록 후 안내

부팅과 메모리

CPU가 커널을 실행할 때까지

OpenSBI와 U-Boot를 거쳐 커널을 시작하고, UART 출력으로 실행 상태를 확인합니다. 사용자 모드와 트랩, Sv39 페이지 테이블을 구성합니다.

  • 커널 진입점과 초기 스택
  • 트랩·시스템콜 처리
  • 가상 주소와 물리 프레임 매핑

장치와 프로세스

파일을 읽고 여러 작업을 실행하기까지

블록 장치와 VFS·ext4로 파일을 읽고, 파일 디스크립터와 콘솔 입출력을 연결합니다. 스케줄링, 주소 공간 전환, 프로세스 생성과 종료도 다룹니다.

  • 저장장치에서 /sbin/init 읽기
  • 블로킹 I/O와 태스크 전환
  • 프로세스 생명주기와 대기

사용자 프로그램

ELF를 실행하고 셸에서 입력받기까지

ELF 로더와 execve로 프로그램 이미지를 바꾸고, CRT·최소 libc·stdio를 구성합니다. 콘솔 입력을 사용자 프로그램에 전달해 최소 셸을 실행합니다.

  • 사용자 스택과 실행 인자
  • 공유 객체와 런타임 ABI
  • 부트 파일시스템과 셸 실행 확인

Book contents

8부 54장 112절의 구성

부와 장의 흐름을 먼저 살펴보고, 필요한 주제의 절을 찾아 읽을 수 있습니다. EPUB은 읽는 기기에 따라 쪽수가 달라져 목차에 고정 쪽번호를 사용하지 않습니다.

상세 목차 보기

Read the code

책의 코드 태그로 구현을 찾아갑니다.

PDF에서는 절과 연결된 태그를 꼬릿말에, EPUB에서는 절 제목 아래에 표시합니다. 태그를 따라 해당 시점의 실습 코드를 열 수 있습니다.

태그 예시p08c48s02n01

8부 48장 2절의 첫 번째 코드 체크포인트

실습 저장소에서 태그를 받은 뒤 해당 체크포인트로 이동합니다. 같은 절에 여러 체크포인트가 있으면 끝 번호가 n02, n03으로 이어집니다.

git fetch --tags
git switch --detach p08c48s02n01
mmos-practice 저장소 열기

MMOS book series

Foundation에서 시작해 MMOS를 확장합니다.

제1권에서 작은 운영체제를 만들고, 제2권에서 이를 실행할 가상 디바이스 플랫폼을 다룹니다. 이후 마이크로커널과 용도별 프로파일은 설계·기획 단계입니다.

  1. 01

    Foundation · 원고 완성

    RISC-V OS Foundations

    부팅, 메모리, 파일시스템, 프로세스, 사용자 셸까지 구현합니다.

  2. 02

    Platform · 원고 완성

    MMOS Virtual Device Platform

    OS 이미지를 패키지로 묶고 가상 디바이스에서 실행합니다.

  3. 03

    Reference · 설계 예정

    MMOS Reference Microkernel

    커널의 역할을 줄이고 서비스와의 통신·자원 접근 방식을 설계합니다.

  4. 04

    Generic · 계획

    MMOS Generic Profile

    일반적인 앱 실행에 필요한 파일시스템, 네트워크, 화면 서비스를 계획합니다.

  5. 05

    Agentic · 계획

    MMOS Agentic Profile

    에이전트의 도구 사용을 권한과 기록으로 통제하는 방식을 계획합니다.

  6. 06

    Safety · 계획

    MMOS Safety Profile

    정해진 자원과 실행 시간 안에서 안전 요구를 검증하는 구성을 계획합니다.

  7. 07

    Mixed · 계획

    MMOS Mixed-Criticality Profile

    서로 다른 안전 요구를 가진 작업 사이의 간섭을 다루는 구성을 계획합니다.

Who this is for

직접 실행하며 운영체제를 배우고 싶은 사람에게

Continue with MMOS

코드를 보고, MMOS에 관해 이야기해 주세요.

책은 알라딘과 북큐브에서 구매할 수 있습니다. 다른 온라인 서점의 구매 링크도 등록되는 대로 추가하겠습니다. 실습 코드는 GitHub에서 확인하고, 책과 MMOS 프로젝트에 관한 질문과 의견은 포럼에 남길 수 있습니다.