Linux 环境编程有什么经典教材吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ripg
V2EX    C++

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

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

    只知道 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 全称是啥?
    newbie269
        11
    newbie269  
       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     Solana     1354 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 16:45 PVG 00:45 LAX 09:45 JFK 12:45
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86