Linux 内核该怎么学啊?

2023-04-12 21:53:55 +08:00
 sbldehanhan

有没有推介的视频或者书籍? 有没有比较靠谱的学习路线?

2776 次点击
所在节点    Linux
12 条回复
vonsy
2023-04-12 21:56:11 +08:00
同济大学赵炯编著的《 Linux 内核完全注释》
中文版:www.oldlinux.org/download/CLK-5.0-WithCover.pdf
英文版:www.oldlinux.org/download/ECLK-5.0-WithCover.pdf
sbldehanhan
2023-04-12 22:03:43 +08:00
@vonsy 这个我好像有,有点啃不动。
detached
2023-04-12 22:52:13 +08:00
先看 mit 6.s081 跟着写写 lab
ldyisbest
2023-04-12 23:11:35 +08:00
看 xv6?
tulongtou
2023-04-12 23:13:06 +08:00
这玩意,既然不知道怎么学,那应该也没有学的必要了。绝大部分工作用不到啊
Gwzlchn
2023-04-12 23:26:31 +08:00
1. 跟着 mit 6.s081 做完 lab ,主要学 gdb 怎么用 qemu 调试内核,还有一些 C 的语法,启动、RV ISA 相关的感觉可以跳过。
2. 南大的 ICS Lab 也不错,如果 xv6 感觉语言有困难的话,可以先看看 ICS 。
3. 熟悉了简化的内核后,可以基于 upstream kernel 写几个内核模块,比如通过 sysfs 操作 GPIO 点亮跑马灯啥的。
https://sysprog21.github.io/lkmpg/
4. 之后就看你有啥需求了,实现需求。

书大多都很老,分析代码最好跟着 upstream kernel 的代码自己一点点分析,用到啥分析啥就行。
工具的话,vscode + ripgrep + fdfind 足够了。
heguangyu5
2023-04-13 08:11:41 +08:00
我多年前过了一遍 linux 内核从加载到 init 进程启动的代码,做了一些笔记,供参考.

http://heguangyu5.github.io/my-linux/html/index.html

虽然当时不是所有地方都搞明白了,但之后操作系统,进程,线程,内存,epoll 什么的,都不再神秘了.
sbldehanhan
2023-04-13 09:19:07 +08:00
sbldehanhan
2023-04-13 09:19:50 +08:00
@Gwzlchn 感谢!
twor2
2023-04-13 10:21:26 +08:00
一边学一遍问 chatgpt
holyliao
2023-04-17 22:31:33 +08:00
@twor2 可以
debuggeeker
359 天前
我也有同样的疑问,不知道从哪里学

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/932062

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX