码迷,mamicode.com
首页 > 系统相关 > 详细

如何展开Linux Memory Management学习?

时间:2017-12-04 17:38:57      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:实验   初学   图书   好的   attach   eal   学习   补充   经典   

Linux的进程和内存是两座大山,没有翻过这两座大山对于内核的理解始终是不完整的。

关于Linux内存管理,在开始之前做些准备工作。

 

首先bing到了Quora的《How can one really learn Linux Kernel Memory Management?》,这也是大部分初学者,或者说大部分Linux内核开发人员的疑问?

正如Vaishali Thakkar所说,最好的方法是读代码,但是面对这么庞杂的代码,往往是无从下手。Vaishali Thakkar推荐从LSF/MM论坛入手去了解年度报告,但是这些技术往往都是最前沿的。倒是下面的路径相对合适:

  1. LinuxMM - linux-mm.org Wiki
  2. Understanding the Linux Virtual Memory Manager 关于Linux内存管理的经典之作,虽然有点老2.4,但仍然有可取之处。
  3. 一些内存管理Maintainer的博客:Rik van Riel‘s home page Mel Gorman
  4. Kernel coverage at LWN.net内核开发相关细节
  5. 最方便的内核帮助文档。

其他方法还包括通过IRC channel #mm on OFTC提问,阅读代码有疑问使用‘git blame’查找对应的git,然后通过阅读注释来理解背景。

最后还可以通过修改代码或者参数来做实验,验证自己的想法。

另一位Chen Gang同样提到了Understanding the Linux Virtual Memory Manager这本书。另由于MMU是架构相关的,要想理解内存管理,不阅读MMU规格书是不可能的,对于ARM架构在官网提供了下载。同样提到了阅读代码的重要性,虽然不是立即体现出来效果,但是久而久之会起效的。另外还可以通过修改MM相关参数,来做实验;和阅读MM相关 commits。

补充一个Mel Gorman用于测试内核MM的工具集mmtests

 

在经过一些了解之后,简单做了个总结,如下:
1. 阅读ARM MMU相关资料《阅读ARM Memory(L1/L2/MMU)笔记
2. 内存管理相关图书《Understanding the Linux Virtual Memory Manager》、《奔跑吧 Linux内核》、《Professional Linux Kernel Architecture/深入Linux内核架构》、《Linux Kernel Development》、《Understanding the Linux Kernel
3. 内核代码阅读,git blame/log查看信息;内核帮助文档
4. 修改内核VM参数,进行测试;使用mmtests
 

最后,正如Chen Gang所说“MM is a tough topic”,前面的路注定不平坦。戒骄戒躁,一步一个脚印吧!

 

如何展开Linux Memory Management学习?

标签:实验   初学   图书   好的   attach   eal   学习   补充   经典   

原文地址:http://www.cnblogs.com/arnoldlu/p/7977847.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!