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

大佬们在学习 Linux 内核的时候,都走的什么路线啊,能推荐一个比好的学习网站,或者视频吗?

  •  
  •   yougoUp · 2019-10-12 14:24:05 +08:00 · 8282 次点击
    这是一个创建于 1629 天前的主题,其中的信息可能已经有所发展或是发生改变。
    28 条回复    2019-10-14 08:13:21 +08:00
    misaka19000
        1
    misaka19000  
       2019-10-12 14:26:37 +08:00
    6.828
    NoKey
        2
    NoKey  
       2019-10-12 14:49:42 +08:00
    买内核相关的书,到底买哪本,去豆瓣上看评分和评论
    airfling
        3
    airfling  
       2019-10-12 15:00:48 +08:00
    你要学 linux 基础吗,我这几本鸟哥 linux 私房菜的可以便宜出给你
    PbCopy111
        4
    PbCopy111  
       2019-10-12 15:04:55 +08:00
    2004 年左右的时候,有个技术大拿自己写了一个 linux。当然他不是自己原创,只是为了学习,所以边读文档边写,就算是造了个轮子吧,后来他就成了现在的技术一哥。
    pedia0992
        5
    pedia0992  
       2019-10-12 15:21:39 +08:00
    最适合入门的内核书《 Linux 内核深度解析》
    yougoUp
        6
    yougoUp  
    OP
       2019-10-12 15:21:47 +08:00
    @misaka19000 这是什么鬼? 3.828
    yougoUp
        7
    yougoUp  
    OP
       2019-10-12 15:22:08 +08:00
    @NoKey 好的,我去看看
    yougoUp
        8
    yougoUp  
    OP
       2019-10-12 15:22:41 +08:00
    @airfling 这书我看过的,这是 Linux 基础相关的,我想学习下 Linux 内核方面的
    yougoUp
        9
    yougoUp  
    OP
       2019-10-12 15:23:07 +08:00
    @PbCopy111 有这个想法的人很多,写出来的就是大牛
    yougoUp
        10
    yougoUp  
    OP
       2019-10-12 15:23:21 +08:00
    @pedia0992 谢谢,我去看看
    hkitdog
        11
    hkitdog  
       2019-10-12 15:25:47 +08:00 via iPhone
    為什麼不直接看源碼?
    b00tyhunt3r
        12
    b00tyhunt3r  
       2019-10-12 15:32:47 +08:00 via iPhone
    the linux programing interfaces
    wuzhizhan
        13
    wuzhizhan  
       2019-10-12 15:44:40 +08:00
    惭愧,当年学了几年 linux,愣是没能学会。惭愧惭愧
    taogen
        14
    taogen  
       2019-10-12 16:03:37 +08:00 via Android
    Linux Kernel Development (3rd, 2010) by Robert Love

    Advanced Programming in the UNIX Environment (3rd, 2013) by W. Richard Stevens (APUE)

    The Art of Unix Programming (2003) by Eric S. Raymond

    The Linux Programming Interface (2010) by Michael Kerrisk

    UNIX Systems for Modern Architectures (1994) by Schimmel.
    fewtime
        15
    fewtime  
       2019-10-12 16:06:35 +08:00
    @yougoUp 应该指的是 mit 的操作系统课程 mit 6.828
    jasonyang9
        16
    jasonyang9  
       2019-10-12 16:12:19 +08:00
    补充一本:Linux Device Drivers, Third Edition

    https://lwn.net/Kernel/LDD3/
    yougoUp
        17
    yougoUp  
    OP
       2019-10-12 16:36:06 +08:00
    @cowlogli 可以,可以,我查了下,还真是啊。
    booboo
        18
    booboo  
       2019-10-12 16:41:43 +08:00
    看书,主流推荐的基本都要看,重要的概念要做到基本都熟练掌握。然后就是看代码,尤其是专注某一部分。工作中用不到,实践方面的锻炼机会就比较少。
    wangkai0351
        19
    wangkai0351  
       2019-10-12 16:45:35 +08:00
    我最近有比较完整的时间搞这个 linux 源代码,所以简单总结一下自己的经验

    #软件工具是 windows+source insight+印象笔记+linux 内核版本 0.12/1.2/2.4/2.6/3.16+VM ( ubuntu14.04.1 )
    #楼上推荐的书本对应不同的版本,还有一些直接是讲 system call 的 interface
    我认为 system call 的 interface 是一个很感性很经验化的东西,建议大致浏览一遍,至于之前没有很多的 linux C/Cpp 经验倒也没太大关系,因为你的目标是 linux kernel secret。
    建议从 net 或者 proc 或者 driver 三选一出发,刚开始不用着急速度,先培养兴趣吧,一个版本的代码看不懂,那就几个版本切换着看,diff 增量也是一种学习方式。

    #总结一下课本
    ##CPU 芯片-i386 程序员编程参考手册
    ##interface-Advanced Programming in the UNIX Environment/The Art of Unix Programming/The Linux Programming Interface/unix 网络编程 /Unix/Linux 编程实践教程( Bruce Molay )力荐
    ##版本 0.11/0.12-Linux 内核完全剖析基于 0.12 内核
    ##版本 1.2-内核网络栈实现源代码分析(曹桂平)
    ##版本 2.4-深入分析 Linux 内核源代码(陈莉君)
    ##版本 2.6-linux 内核源码剖析 tcp/ip / Linux 内核设计与实现(原书第 3 版)力荐
    ##版本 3.16-自用的 ubuntu 虚拟机练习平台

    #至于你问我,学完这个能干嘛,我也不知道。
    ysn2233
        20
    ysn2233  
       2019-10-12 16:50:50 +08:00
    Mit 6.828
    nmap
        21
    nmap  
       2019-10-12 17:33:01 +08:00
    性价比很低,花的精力很多,用处不大
    huangya
        22
    huangya  
       2019-10-12 17:46:09 +08:00 via iPhone
    @wangkai0351 unix/Linux 编程实践教程真是极好的书籍
    feather12315
        23
    feather12315  
       2019-10-12 17:50:03 +08:00
    1. 大学计算机课程:
    - 计算机组成原理
    - 微机原理
    - 操作系统
    - 计算机网络
    - 编译原理
    - 高级系统结构(《计算机体系结构——量化方法》)
    2. lwn.net
    3. linux doc
    4. man pages
    5. APUE / 《 Linux 环境编程——从应用到内核》
    6. 程序员的自我修养
    7. 各类 blog / 知识星球...


    重点:
    如果不做基础设施开发,看看 4 / 5 / 6 就行了
    jackdu
        24
    jackdu  
       2019-10-12 17:50:46 +08:00
    @airfling 你的书还卖吗,想买本鸟哥 linux 私房菜。
    liminggang
        25
    liminggang  
       2019-10-12 17:57:42 +08:00
    @jackdu 可见程序员是一个多么辛苦的职业
    0312birdzhang
        26
    0312birdzhang  
       2019-10-12 20:10:11 +08:00
    不是 kernel.org 吗?(逃
    tiedan
        27
    tiedan  
       2019-10-12 20:49:33 +08:00
    找个搞嵌入式的问问,他们对这个比较懂
    airfling
        28
    airfling  
       2019-10-14 08:13:21 +08:00
    @jackdu 可以卖给你,不过运费要你出,加我微信号详聊 echo MTgzNTYwNjE2NjQK|base64 --decode
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5298 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 09:29 · PVG 17:29 · LAX 02:29 · JFK 05:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.