The Learning Outcomes
As we have stated at the start, the goal of this little book is to help students gain experience and confidence in creating their own operating system or similar computer systems in their future career. As illustrated in the table below, every project helps students understand how to create one piece of egos-2000. Except for 6 user applications, students have studied all the code of egos-2000 thoroughly.
Pieces of egos-2000 | |
---|---|
P0: Hello, World! | library/libc |
P1: Cooperative Threads | grass/process.h , grass/process.c |
P2: Preemptive Scheduler | earth/cpu_intr.c , grass/kernel.s , part of grass/kernel.c |
P3: System Call & Protection | grass/kernel.c , library/syscall , apps/system/sys_proc.c |
P4: Virtual Memory | earth/cpu_mmu.c , library/elf |
P5: Serial Device Driver | earth/dev_{disk,tty}.c , apps/system/sys_terminal.c |
P6: File System | library/file , tools/mkfs.c , apps/system/sys_file.c |
P7: Ethernet & TCP/IP | apps/user/udp_hello.c |
P8: Multicore & Locks | earth/boot.s , earth/boot.c , apps/system/sys_shell.c |