V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
sbldehanhan
V2EX  ›  Linux

Linux 内核该怎么学啊?

  •  
  •   sbldehanhan · 2023-04-12 21:53:55 +08:00 · 3198 次点击
    这是一个创建于 590 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    12 条回复    2023-05-04 17:48:15 +08:00
    vonsy
        1
    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
        2
    sbldehanhan  
    OP
       2023-04-12 22:03:43 +08:00
    @vonsy 这个我好像有,有点啃不动。
    detached
        3
    detached  
       2023-04-12 22:52:13 +08:00
    先看 mit 6.s081 跟着写写 lab
    ldyisbest
        4
    ldyisbest  
       2023-04-12 23:11:35 +08:00
    看 xv6?
    tulongtou
        5
    tulongtou  
       2023-04-12 23:13:06 +08:00
    这玩意,既然不知道怎么学,那应该也没有学的必要了。绝大部分工作用不到啊
    Gwzlchn
        6
    Gwzlchn  
       2023-04-12 23:26:31 +08:00   ❤️ 1
    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
        7
    heguangyu5  
       2023-04-13 08:11:41 +08:00
    我多年前过了一遍 linux 内核从加载到 init 进程启动的代码,做了一些笔记,供参考.

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

    虽然当时不是所有地方都搞明白了,但之后操作系统,进程,线程,内存,epoll 什么的,都不再神秘了.
    sbldehanhan
        8
    sbldehanhan  
    OP
       2023-04-13 09:19:07 +08:00
    sbldehanhan
        9
    sbldehanhan  
    OP
       2023-04-13 09:19:50 +08:00
    @Gwzlchn 感谢!
    twor2
        10
    twor2  
       2023-04-13 10:21:26 +08:00
    一边学一遍问 chatgpt
    holyliao
        11
    holyliao  
       2023-04-17 22:31:33 +08:00
    @twor2 可以
    debuggeeker
        12
    debuggeeker  
       2023-05-04 17:48:15 +08:00
    我也有同样的疑问,不知道从哪里学
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1046 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:08 · PVG 07:08 · LAX 15:08 · JFK 18:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.