xv6 operating system kernel design from scratch in C program

practical hands-on design of the xv6 operating system kernel

Ratings: 5.00 / 5.00




Description

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.  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

What You Will Learn!

  • How to setup xv6 kernel pagetable using virtual memory adressing
  • How manage shared data memory using spin locks and sleep lock
  • How to enable timed operations in operating system using timer interrupt
  • How to enable concurrent disk access using virtio memory mapped io virtualization
  • How to generate operating systems, system calls
  • How to schedule operating systems process using round robin technique
  • How to link display and keyboard hardware using the 16550a UART

Who Should Attend!

  • beginner to expert C , C++ and kernel developers