参考《操作系统真想还原》开发操作系统过程中遇到的那些BUG

       在《操作系统真想还原》这本书中,几乎没有用到什么算法,但是有非常多的细节需要注意,很多深邃的思想都藏在简单的代码当中,即便是照抄,如果你不理解的话,往后如果遇到bug,想要回头再找bug,那仿佛是大海捞针,所以前期一定要一步一个脚印,每一行代码都要弄懂,这个真的非常重要,即便我的确是这样做的,但我也遇到了很多bug,在开发过程中,写代码的速度和找BUG的速度几乎是五五开,很多时候都是今天写了几个函数文件,明天就开始找这几个函数文件的BUG,当然,如果没有BUG可找,那也很难将学到东西深深印入脑海,所以啊,尽管BUG很讨厌,但是它确确实实的能够让你学的知识更加牢固。

BUG一

      分享一个我找了几乎两天的BUG,

      是这样的,在我看来,操作系统的第一个跨越性阶段是实现打印函数,而打印函数是在很早期完成的,那时候甚至还没实现中断管理,更谈不上用户进程,不过那时候已经完成了二级分页,在《操作系统真相还原》这本书中,最大寻址为4GB,内核二级页表的高1GB是用来给内核自己使用的,低3GB是给用户使用的,在实现了分页机制之后,内核自己也需要使用虚拟地址,因此内核代码中使用的地址都是以0xc0000000开头的,从这个地址开始的1MB对应着真实物理地址的1MB,但是内核为了方便兼容实现二级分页之前的代码,将虚拟地址的0x000000 - 0x100000也对应到了真实物理地址的1MB,所以0xc0000000 - 0xc0100000和0x000000 - 0x100000这两段虚拟地址都对应着真是物理地址的1MB。因此打印函

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值