ucore 操作系统实验 lab2

Reading time ~1 minute

说句实在话,感觉lab2不算难,只要认真看给的资料应该都能完成。

lab2主要是涉及到了虚拟地址、线性地址、物理地址之间的转换。其实lab1中就用分段的段选择子虚拟地址和线性地址的转换,只是所有段选择子对应的基地址都是0,故而转换了和没转换看起来一样。

在lab2中,一切都有所改变了。最终的目标是实现:

VirtualAddress=LinearAddress=0xC0000000+PhysicalAddress

为了实现这个目标,最开始会临时修改段基址,使得:

VirtualAddress=0xC0000000+LinearAddress=0xC0000000+PhysicalAddress

而在启用了分页机制,又还没来得及恢复段基址前,甚至会出现:

VirtualAddress=0xC0000000+LinearAddress=0xC0000000+0xC0000000+PhysicalAddress

所以,整个启动段页式内存管理的过程涉及到各种地址之间的换算,只要弄明白了这一点,完成lab2的题目就压力不大了。

稍微有点麻烦的反倒不是后面几题,而是第一题,需要特别仔细,因为看起来似乎本来的程序就已经实现了要求,而事实上本来的程序对于链表的顺序没有维护,故只要加入对链表顺序的维护即可。

至于challenge,不得不说是相当麻烦,没有个几百行代码搞不定,最近实在是太忙了,没有时间,于是乎就pass了~~~

最后,还是附上lab2的实验报告和修改的代码。

lab2.zip

挂载网络文件夹后网络故障时文件操作命令卡死

挂载 NFS 或者 Samba 的时候,经常会由于网络故障导致挂载好的链接断掉。此时如果尝试进行 ls、cd、df 等各种命令,只要与此目录沾上边,就会卡住。如果使用了类似 oh-my-zsh 这种配置的,只要在网络目录中,弹出命令提示符前就会直接卡住。这个时候第一反应就是...… Continue reading

路由折腾记 第四弹

Published on September 02, 2017