看了看xv6 book的chapter 2,说是看其实就是过一遍,毕竟看不太懂,总体的概念性内容原本就已经明白了,细节性的代码分析看不懂,因此就很僵硬。。。app
而后作了hw4,好在homework仍是很简单的,毕竟已经提示的不能更明白了。ui
不过虽然简单,对于malloc的理解仍是有加深的,基本上就是说malloc执行sbrk的时候并无去alloc,等到page fault再去alloc,代码的部分我也是瞎j8写的,任何边界条件都没加,最后能经过也是走运。blog
if(tf->trapno == T_PGFLT){ uint a,b; char *mem; b = rcr2(); a = PGROUNDDOWN(b); mem = kalloc(); memset(mem, 0, PGSIZE); mappages(myproc()->pgdir, (char*)a, PGSIZE, V2P(mem), PTE_W|PTE_U) ; break; }