有精通 Linux 内核内存管理的老哥能说说你是怎么学这一块的知识的吗?
source link: https://www.v2ex.com/t/838115
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
目前我已经看懂了《深入理解 Linux 内核》这本书讲内存的第 2 ,8 ,9 章以及 Intel SDM 讲分段分页的部分,想继续深入研究只能靠看代码了,但我感觉看代码没有个方向,泛泛的看就只能有个很浅的了解,不知道怎么看才能达到精通的程度。
我目前的办法是从 x86 系统启动的第一行代码开始看,搞懂每一行代码到底干了什么,最近看懂了一点 x86 bios (kvmtool 的实现)的代码,但我感觉这种方式学习效率太低了,请教大佬有没有什么好办法?
tinmody 11 小时 39 分钟前
yuguorui96 11 小时 11 分钟前 via iPhone
documentzhangx66 6 小时 57 分钟前 4
所以,你要学懂某一层次的东西,可能需要掌握其上层或下层的知识才行。
到此,有两种学习方式,一种是学院派的至下而上,比如 数学 + 物理 -> 模拟电路 -> 数字电路 -> 组成原理 -> 汇编语言 -> C/C++ -> 操作系统,另一种是自上而下,比如以某种编程语言为主,来教你网络编程的书籍。两种学习方法各有优缺点,选择你喜欢的方式就好。
hello2090 5 小时 55 分钟前
detached 5 小时 6 分钟前
thedrwu 4 小时 55 分钟前 via Android
documentzhangx66 4 小时 36 分钟前
documentzhangx66 4 小时 28 分钟前
站在工作分工与快速入门的角度来看,您说的很对。
但如果是站在学习的角度,想学地透彻,就需要去学习其发展史,需要学习底层的构成,需要了解其上层的发展、应用与案例。
举个简单的例子,java 程序员,去学习如何操作文件。从您的角度来说,去谷歌一下 java 文件 io 的相关例子与代码,就能学懂。但是,当 java 同时操作海量文件时,当 java 操作不同设备上的文件时,当 java 通过不同渠道操作文件时,当 java 绕着地球一圈操作文件时,所产生的的各种性能问题、各种错误问题,要分析这些问题,如何产生,能否解决,如何解决,各种解决方案的代价如何,这就不仅仅只是 java 这一门课程能学到的。
wzxlovesy 4 小时 16 分钟前 via Android
这些功能的实现很大程度上来源于 Linux 内核,从这里你可以快速学到 page table, tlb 等等基础知识。
大致搞懂之后再去看 Linux 会容易很多。
hello2090 4 小时 12 分钟前 via iPhone
Suddoo 3 小时 46 分钟前
shayuvpn0001 3 小时 34 分钟前 1
hello2090 3 小时 11 分钟前
crackhopper 2 小时 56 分钟前
上来就用纯阅读的模式看代码,确实低效。
shayuvpn0001 2 小时 53 分钟前
hello2090 2 小时 43 分钟前
我也是 985 通讯本硕,模电数电通讯原理信号处理 DSP Verilog 都是专业课,这里面哪里有和物理有关的?振幅频率滤波器当然是数学啦。
detached 2 小时 39 分钟前
shayuvpn0001 2 小时 20 分钟前
basncy 1 小时 52 分钟前
所谓内存管理, 大约是物理内存与虚拟地址之间的各种游戏规则.
iClass 9 分钟前 via Android
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK