This repo contains five parts as a OS kernel:
- back_tracer: Used to print function calling stack, for debug use
- drivers: Timer, keyboard and console drivers implementation based on interrupt gate and trap gate
- thread_lib: User space pthread-like thread implementation, with concurrency primitives including mutex, conditional variable, semaphore and reader&writer lock
- kernel: Mini kernel that supports multiple memory space paging, preemptive multitasking, interactive shell and system calls including fork, exec, wait, vanish, yield, make_runnable, and readline
- hypervisor: A virtual environment that can host multiple guest kernel by simulating I/O devices, CPU, timer and X86 privileged instructions