MCPcopy Index your code
hub / github.com/casys-kaist/KeOS

github.com/casys-kaist/KeOS @v1.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1.0 ↗ · + Follow
1,990 symbols 5,060 edges 331 files 595 documented · 30%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

OS-projects

This repository contains KeOS (KAIST Educational Operating System) project and its virtualization extension KeV (KAIST Educational Virtualization).

Important Notes

  • Do not share or publish your code.

Public forks and redistribution of this repository are strictly prohibited by the project license. Any unauthorized disclosure, including public forks, will result in severe penalties, including zero credit for all projects.

  • During grading, all files except those explicitly whitelisted for each project will be replaced with the original versions.

Your implementation must compile and pass all test cases without modifying restricted files. Submissions that fail to meet these requirements may receive no credit for the affected components.

Requirements

  • Processor
  • A minimum of a 4-core x86_64 intel processor with Broadwell microarchitecture or newer is required. The CPU must also have hardware virtualization enabled.
  • Memory (RAM)
  • Minimum: 2 GiB or more
  • Optimal: 4 GiB
  • Host OS
  • Supported: Ubuntu 24.04 LTS

KeOS: KAIST Educational Operating System

KeOS is an educational project designed to help students learn core operating system concepts by implementing a minimal yet functional kernel from the ground up.

Note: KeOS is an individual project. All work must be completed independently.

getting started

$ mkdir keos
$ cd keos
$ curl https://raw.githubusercontent.com/casys-kaist/keos/refs/heads/main/scripts/install-keos.sh | sh

Projects

KeOS consists of five sequential projects, each building on the last. You will implement the concepts covered in the class on each project, reinforcing your understanding through hands-on development.

  1. System Call – Interface between user applications and the kernel
  2. Memory Management – Basic memory management and user-space execution
  3. Advanced Memory Management – Implementation of advanced memory management
  4. Process Management – Advanced multi-threaded and process control
  5. File System – File system with Journaling

For detailed instructions and documentation, refer to the KeOS Manual.


KeV: KAIST Educational Virtualization

KeV is an educational project designed to help students learn core virtualization concepts by implementing a minimal yet functional type-2 hypervisor from the KeOS project.

Note: KeV is an individual project, except for last project. Projects except the last one must be completed independently.

getting started

$ mkdir kev
$ cd kev
$ curl https://raw.githubusercontent.com/casys-kaist/keos/refs/heads/main/scripts/install-kev.sh | sh

Projects

  1. KeOS
  2. VMCS and VMExits
  3. Hardware Virtualization
  4. Interrupt and I/O Virtualization
  5. Final Project

For detailed instructions and documentation, refer to the KeV Manual.

Ignore

b7902a7412af5ddbe0da6399d1b89e0385d5c0bf5696ba54c35431eb98d5e37a

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 935
Function 634
Class 330
Enum 63
Interface 28

Languages

Rust87%
C11%
C++1%

Modules by API surface

keos/src/thread/mod.rs43 symbols
keos-projects/keos-project1/grader/src/syscall.rs40 symbols
keos/src/fs.rs36 symbols
keos-projects/keos-project3/grader/src/userprog.rs32 symbols
keos-projects/keos-project2/grader/src/userprog.rs32 symbols
keos/src/mm/page_table.rs31 symbols
keos-projects/keos-project4/grader/src/userprog.rs31 symbols
fs/simple_fs/src/lib.rs31 symbols
keos/src/channel.rs30 symbols
keos/src/mm/mod.rs28 symbols
kev-projects/kev-project2/src/ept.rs27 symbols
keos-projects/keos-project5/src/ffs/disk_layout.rs27 symbols

For agents

$ claude mcp add KeOS \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page