V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ripg
V2EX  ›  C++

Linux 环境编程有什么经典教材吗

  •  
  •   ripg · 2021-03-13 18:59:20 +08:00 · 3861 次点击
    这是一个创建于 1381 天前的主题,其中的信息可能已经有所发展或是发生改变。

    只知道 apue 和 linux/unix 系统编程手册这两本书,如果想系统学习 linux 环境开发的话看什么书比较合适呢?(不限于开头两本)

    16 条回复    2021-08-04 18:57:03 +08:00
    neoblackcap
        1
    neoblackcap  
       2021-03-13 19:10:24 +08:00
    1. Linux UNIX 系统编程手册 套装上下册
    2. Linux 内核设计与实现
    shijingshijing
        2
    shijingshijing  
       2021-03-13 19:18:24 +08:00   ❤️ 1
    如果不写驱动和内核,看《 The Linux Programming Interface 》这一本就够了,虽然这一本也还是有点老,但是写 Linux 下的应用也够了。
    nightwitch
        3
    nightwitch  
       2021-03-13 19:22:35 +08:00
    简短的就 APUE 。
    大部头的就 TLPI,1500 页
    Juggernaut
        4
    Juggernaut  
       2021-03-13 19:42:40 +08:00
    APUE
    ripg
        5
    ripg  
    OP
       2021-03-13 21:23:32 +08:00 via iPhone
    @neoblackcap 感谢,TLPI 还没买,第二本明天去了解一下。
    @shijingshijing 我现在了解比较少,也还不清楚是不是要写底层到内核的程度,可能先看了 tlpi 或者 apue 之后再考虑吧。
    @nightwitch apue 已经买了,不知道 tlpi 和 apue 哪个读起来更适合我这种只懂基础的 cpp developer
    @Juggernaut 已经买好了,准备找时间好好看一下。
    nightwitch
        6
    nightwitch  
       2021-03-13 21:30:10 +08:00
    apue 只讲 posix,tlpi 除了 posix 的部分还要讲 linux 特有的部分,算是 apue 的超集吧。
    你可以先看 apue 再看 tlpi,不冲突的
    feather12315
        7
    feather12315  
       2021-03-13 21:34:55 +08:00 via Android
    apue
    man 2 / 3 page,
    Linux 环境编程--从应用到内核
    helloworld2076
        8
    helloworld2076  
       2021-03-13 21:36:05 +08:00 via iPhone
    unix 环境高级编程
    shijingshijing
        9
    shijingshijing  
       2021-03-13 21:37:00 +08:00
    @ripg 务必买英文原版,中文版的翻译不是一般的烂。
    yazoox
        10
    yazoox  
       2021-03-13 22:27:12 +08:00
    apue 全称是啥?
    willhunger
        11
    willhunger  
       2021-03-13 22:43:17 +08:00
    @yazoox #10 unix 环境高级编程
    ripg
        12
    ripg  
    OP
       2021-03-14 00:41:03 +08:00 via iPhone
    @shijingshijing tlpi 还是 apue ? apue 已经和 unix 网络编程一起到了
    shijingshijing
        13
    shijingshijing  
       2021-03-14 05:31:32 +08:00   ❤️ 2
    @ripg TLPI,其实我真觉得 APUE 可以往后放一放,个人觉得从实用角度出发,如果想透彻了解 Linux,应该按照应用->内核->驱动这个顺序看,从系统角度来看 Linux->Unix->BSD/MacOS 这个顺序来看,因为现实工作中,Linux 下的应用是最广泛的,资料最丰富的,从业人数最多的。一上来就抱着内核看,有点盲人摸象的感觉;而从写应用入手,慢慢往下深入,思考为什么这么写,操作系统这样设计的思路是什么,然后看 system call,然后再看内核,这样一步步要好很多。

    看内核之前,完整走一边 Build kernel 的过程,最好是拿一个 barebone system 从上电到启动到 Terminal 整个过程了解一下,这样也会好很多,而且一步步往前做,也有成就感。

    一上来就抱着内核看,先是各个模块,然后是架构,最后是设计思路,然后提升到操作系统理论和设计哲学,Monolithic
    vs Microkernel,我觉得我是没办法坚持下来的。
    ripg
        14
    ripg  
    OP
       2021-03-14 13:59:36 +08:00
    @nightwitch 好的,apue 已经到手了。
    @helloworld2076 看了#13 现在在考虑要用什么路线了解,反正书已经拿到手了,谢谢你。
    @yazoox unix 环境高级编程
    @shijingshijing 以前浅读过 CSAPP,虽然读过但是对计算机底层还是不熟悉,属于“喔这个我知道,但是让我细说说不出来”那种,感觉读了和没读一样,看什么时候有时间深入啃一波。linux 如果从应用开始的话内容会不会太多呢?
    ripg
        15
    ripg  
    OP
       2021-03-14 14:15:35 +08:00
    @shijingshijing 看了一眼英文版这价格,大学生有点顶不住
    jdz
        16
    jdz  
       2021-08-04 18:57:03 +08:00 via Android
    看完了《深入理解 Linux 内核》《 Linux 设计与实现》《 Linux 设备驱动程序》,然后看 apue 或 tlpi 都是行云流水
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1264 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:52 · PVG 01:52 · LAX 09:52 · JFK 12:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.