想学习操作系统的内存管理,有没有什么推荐?

想学习操作系统的内存管理,有没有什么推荐?
书、博客、问答什么形式都可以。

阅读 3.3k
2 个回答

我觉得可以从两个层面来回到这个问题,针对操作系统的其他特性也是一样的。

1、如果是应用开发层面的,你只是对诸如堆、栈、mallocfree等的概念和使用不清晰,建议看《unix环境高级编程》或《linux程序设计》这些书;

2、如果你想从底层实现去理解,操作系统到底如何去管理内存,我个人的经验是循序渐进:

第一步你可以去看ucos这类实时操作系统源码,里面有很简单的内存管理;参考《嵌入式实时操作系统ucos2》;
第二步你可以去看相对复杂的内存管理(包括物理地址、线性地址、MMU等概念),建议从早期版本的linux,或者国内的一些操作系统实现的书入手;参考《linux内核完全注释》、《自己动手写嵌入式操作系统》等;
第三步你再去看现在linux下的内存管理,这部分市面上可选的范围很多,很多是针对2.6或以上的内核版本,涉及到的知识点和算法会更复杂。到这个阶段源码级全部掌握不太可能(比如随便一个进程调度就是万把行代码,还很不好读懂),大致了解原理后,建议工作中用到什么深入学习什么。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进