当前位置: 首页 > news >正文

如何学习 Linux 内核内存管理

Linux内核内存管理部分是Linux内核中第二复杂的部分,但也非常有趣。学习它的最佳方法就是阅读代码。但在不了解术语和当前 mm 部分到底发生了什么的情况下,显然不能随意开始阅读代码。因此,我想这样开始学习比较好:

  • 了解当前的 LSF/MM 进展
    关注 Linux Storage, Filesystem, and Memory-Management Summit (Linux 存储、文件系统和内存管理峰会 )。LSF/MM 是一年一度的 Linux 存储、文件系统和内存管理峰会,这是一个仅限受邀者参加的活动,人们通常会讨论下一年的计划和项目。人们还可以阅读往年的 LWN 峰会报告。一些内核开发人员也会单独撰写有关此次峰会的博客。

  • 现在,在阅读这些文档时,肯定会有很多问题。这些问题可以一些网站上找到。通常,谷歌搜索肯定会有所帮助。下面列出一些标准网站供参考:

    • (1)LinuxMM - linux-mm.org Wiki 。
    • (2)Understanding the Linux Virtual Memory Manager 这本书不错,但多少有些陈旧。边读边看代码绝对有助于理解事物是如何随着时间而变化的。
      其他书籍:《Professional Linux Kernel Architecture/深入Linux内核架构》、《Linux Kernel Development》、《Understanding the Linux Kernel》。
    • (3)从事内核 mm 部分工作的内核开发人员的博客。
    • (4)LWN.net 上的内核报道 我发现这些文章非常有用。它们是我见过的最好的文档。大多数主题,我都看到了多年来撰写的文章,这些文章有助于了解内核中的事物是如何变化的。
    • (5)内核文档 ( Kernel documentation)。
    • (6)用于测试内核MM的工具集 mmtests。

在阅读的同时,请务必查看代码并尝试理解其工作原理。在 OFTC 服务器上有一个 IRC 频道 #mm。你可以提出与内核内存管理部分相关的问题。

通常在阅读代码时,如果有不明白的地方,我会使用 “git blame”。特别是在mm 部分,开发人员习惯于写详细的提交日志(附带测试用例/程序),以便自己和其他人将来可以参考。大多数时候,我发现这些日志对理解任何代码都很有用。

最后很重要的一点是,要 play 代码。尝试通过修改代码进行实验和测试。你尝试得越多,就会理解得越多。


参考:
如何展开Linux Memory Management学习?

http://www.lryc.cn/news/209675.html

相关文章:

  • 【计算机网络】(谢希仁第八版)第一章课后习题答案
  • Operator开发之operator-sdk入门
  • RabbitMQ生产者的可靠性
  • 集群节点批量执行 shell 命令
  • fl studio21.2水果软件怎么设置中文?
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • nbcio-boot如何进行gitee第三方登录
  • 【C语言】字符函数、字符串函数与内存函数
  • 生成树协议:监控 STP 端口和交换机
  • 【黑产攻防道03】利用JS参数更新检测黑产的协议破解
  • 什么是web3.0?
  • 二、W5100S/W5500+RP2040树莓派Pico<DHCP>
  • 【开源】基于SpringBoot的天然气工程业务管理系统的设计和实现
  • 讯飞星火大模型V3.0 WebApi使用
  • 拥有DOM力量的你究竟可以干什么
  • GnuTLS recv error (-110): The TLS connection was non-properly terminated
  • Notepad++安装插件和配置快捷键
  • iOS Autolayout 约束设置【顺序】的重要性!
  • Echarts渲染不报错但是没有内容
  • 数据结构 | 算法的时间复杂度和空间复杂度【详解】
  • 高级篇之ENC编码器多机位帧同步配置详解
  • matlab simulink 四旋翼跟拍无人机仿真
  • jenkins、ant、selenium、testng搭建自动化测试框架
  • 【阅读和学习代码】VoxelNet
  • 【23种设计模式】接口隔离原则
  • 【Python机器学习】零基础掌握PartialDependenceDisplay检验、检查
  • Jmeter的接口自动化测试
  • windows c++获取开机启动项
  • 【C++初阶】类和对象——构造函数析构函数拷贝构造函数
  • Java实现SQL分页