The VIMIX kernel started as a xv6 fork and is a very basic Unix like OS for RISC V qemu.
Code organization of the kernel: overview_directories.
See boot_process to see how the kernel gets from the boot loader to main().
See init_overview to see how main() inits all subsystems.
Some common_objects are used in multiple subsystems. Some kernel objects are organized in in an object oriented manner.
See interrupts, IPI and timer_interrupt
See devices.
Kernel
User space
For allocating kernel memory, see memory_management. To learn how the virtual memory is layd out, see memory_map_kernel and memory_map_process.
See processes and scheduling.
The API of the user space to the kernel. See syscalls for a list of System Calls. To see how the application-kernel interaction works see calling_syscall.
Up: README
Boot: boot_process | init_overview
Subsystems: interrupts | IPI | devices | file_system | memory_management processes | scheduling | syscalls