Skip to content

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 Threadsgrass/process.h, grass/process.c
P2: Preemptive Schedulerearth/cpu_intr.c, grass/kernel.s, part of grass/kernel.c
P3: System Call & Protectiongrass/kernel.c, library/syscall, apps/system/sys_proc.c
P4: Virtual Memoryearth/cpu_mmu.c, library/elf
P5: Serial Device Driverearth/dev_{disk,tty}.c , apps/system/sys_terminal.c
P6: File Systemlibrary/file, tools/mkfs.c, apps/system/sys_file.c
P7: Ethernet & TCP/IPapps/user/udp_hello.c
P8: Multicore & Locksearth/boot.s, earth/boot.c, apps/system/sys_shell.c

"... any person ... any study."