Building: cd cse451/os161 ./configure --ostree=$HOME/cse451/root cd kern/conf ./config ASST1 # Configure to the kernel you want cd ../../compile/ASST1 bmake depend # Header file stuff bmake # Compile the code bmake install # Move to root directory cd ../root sys161 kernel # Run the kernel Parts of the codebase: common/libc -- code common to all kernel and user mode kern -- kernel code kern/arch -- architecture specific code mips/locore/exception-mips1.S and trap.c mips/syscall.c kern/include and kern/include/kern -- header files with comments kern/lib -- data structures (unsynchronized) kern/main kern/main.c -- code that runs on start up kern/menu.c -- code for menu kern/proc/proc.c -- code that defines a process for later projects kern/syscall -- system calls kern/vfs -- virtual file system calls kern/vm -- dumbvm calls userland -- user level programs, built separately from the kernel userland/testbin -- user level test code for system calls run a test Running gdb: two terminals on the machine with the first run: sys161 -w kernel with the second run: cse451-gdb kernel target remote unix:.sockets/gdb