NYCU IOC5226: Operating System Capstone 作業系統總整與實作
- Practice bare metal programming.
- Understand how to access rpi3’s peripherals.
- Set up mini UART.
- Set up mailbox.
- Implement a bootloader that loads kernel images through UART.
- Implement a simple allocator.
- Understand what’s initial ramdisk.
- Understand what’s devicetree.
- Understand what’s exception levels in Armv8-A.
- Understand what’s exception handling.
- Understand what’s interrupt.
- Understand how rpi3’s peripherals interrupt the CPU by interrupt controllers.
- Understand how to multiplex a timer.
- Understand how to concurrently handle I/O devices.
- Implement a page frame allocator.
- Implement a dynamic memory allocator.
- Implement a startup allocator.
- Understand how to create threads and user processes.
- Understand how to implement scheduler and context switch.
- Understand what’s preemption.
- Understand how to implement POSIX signals.
- Understand ARMv8-A virtual memory system architecture.
- Understand how the kernel manages memory for user processes.
- Understand how demand paging works.
- Understand how copy-on-write works.