This repository contains KeOS (KAIST Educational Operating System) project and its virtualization extension KeV (KAIST Educational Virtualization).
-
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.
- 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 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.
$ mkdir keos
$ cd keos
$ curl https://raw.githubusercontent.com/casys-kaist/keos/refs/heads/main/scripts/install-keos.sh | shKeOS 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.
- System Call – Interface between user applications and the kernel
- Memory Management – Basic memory management and user-space execution
- Advanced Memory Management – Implementation of advanced memory management
- Process Management – Advanced multi-threaded and process control
- File System – File system with Journaling
For detailed instructions and documentation, refer to the KeOS Manual.
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.
$ mkdir kev
$ cd kev
$ curl https://raw.githubusercontent.com/casys-kaist/keos/refs/heads/main/scripts/install-kev.sh | sh- KeOS
- VMCS and VMExits
- Hardware Virtualization
- Interrupt and I/O Virtualization
- Final Project
For detailed instructions and documentation, refer to the KeV Manual.
b7902a7412af5ddbe0da6399d1b89e0385d5c0bf5696ba54c35431eb98d5e37a