看了看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; }