
Build the xv6 kernel from scratch for x86 and xv architectures, learning multiprocessor support, virtual memory with multi-level page tables, uart console drivers, and the layered file system.
Download course zipped files for xv6 operating system kernel design from scratch in C program.
Learn how kernel starts with the kernel.ld linker script and entry.s, maps memory and device drivers, and sets per-core stacks of four kilobytes from the core id.
Explain kernel virtual memory functions in xv6, including kvm init and work address, how uvm creates and maps process page tables, and how exec loads segments.
Set up trap handling by configuring supervisor and machine mode vectors and saving/restoring registers in the kernel trap. Implement timer interrupts, scheduling via yield, and sleep using ticks.
The xv6 is a multi-core processor kernel designed for educational purposes. This operating system kernel runs successfully on qemu virtual machine and has options for extending the features. In this 8hrs long course, you will learn how to write the C program code from scratch and understand several operating systems concepts used including:
1. How to initialize kernel subsystems - e.g process, memory, disk, interrupts, trap, mode.
2. You learn the different kernel operating modes - machine mode, supervisor mode, user mode and how to switch between the modes.
3. How to protect shared memory data using spin locks and sleep locks on a multi-core processor.
4. Hardware virtualization - How to link external hardware e.g keyboard and display using 16550a UART chip.
5. Virtual memory addressing and how virtual memory is mapped to physical memory.
6. How to generate system calls from user mode including how its transition ad execution in supervisor mode
7. How timed operations like sleep(), scheduling is managed in an operating system using timer interrupts.
8. Disk management techniques including buffering, bit-mapping, logging etc.
9. How hardware virtualization is used enable disk access from virtual machine to host system using VIRTIO memory mapped registers.
10. File management technique - how to store files and directories as inodes, pipes and device files on disk and in memory.
11. Process management and scheduling techniques - process creation, process allocation and process manipulation techniques