index: SEG_NULL, SEG_ASM not in the index mmu.h: funny \ alignment in mmu.h main.c: should use static int bcpu to avoid having live stack variable across the asm volatile that changes %esp and %ebp. cpus[0] -> cpus[bcpu] proc.c: as a consequence of the implementation of proc_kill, any loop calling sleep should check for p->killed and be able to break out with an error return. can swap procdump up after proc_kill and then have proc_exit and proc_wait on same sheet sched -> switch2scheduler? or just switch? factor out switching and scheduling code from process code trap.c if spin locks are ever held without cli, trap should call yield() only if nlock == 0 ide.c: synchronous disk write -> polling disk write. search for (a)synchronous; xv6 doesn't have asynchronous writes. fs.c: split all name operations off in name.c? (starting with namei but move wdir keep in fs.c) unlink . and .. should be disallowed ls.c: apply tim's patch