zoukankan      html  css  js  c++  java
  • 转了一圈,再读LKD

    这些年看了不少内核方面的书,感觉还是 Robert Love 所著 LKD 《Linux Kernel Development》在原理方面讲述得更为透彻一些。有人说这本书“浅显易懂”,某不以为然,这本书的确“易懂”,但并不“浅显”。要把纷繁复杂的内核写得“易懂”是很不容易的,很考验作者的表述能力。

    与LKD相比,Wolfgang Mauerer 所著《Professional Linux Kernel Architechture》则是内容非常全面的大部头,全书1370页,面面俱到。但这本书读起来感觉不爽,似乎内核的每个方面都谈了一下,但都不太透彻,有种隔靴搔痒和罗列事实的感觉,文字干巴巴的,不如LKD讲解得那么生动。把这本书当字典,有问题的时候查一下,也还不错。这本书最出彩的地方是它的附录,尤其是附录C,重点讲了GNU C编译器内核的数据结构与技巧,这部分内容很值得一读。

    内核方面的另一部经典是《Understanding the Linux Kernel》,写得也非常好,也是个大部头,942页。不过我这里只有chm格式的电子版,我最讨厌的格式。早年曾经买过翻译过来的纸版,现在不知道扔到哪里去了,那时候很傻很天真,很难找到英文的原著,读翻译过来的书,读不懂以为自己水平不济,其实是翻译的有问题。不过仔细想想也不能全怪翻译,英文原著读多了,设想若是自己翻译也好不到哪儿去,有些术语,翻译成中文总觉得不对味儿。比如Context译成“上下文”就很不好,拗口又难以确切表达原意,译成“语境”似乎好些,但又不太对,毕竟不是在写文章而是在写代码,也许应该译成“码境”?翻译是需要好的中文功底的,前清的秀才们死绝了以后,中文科技词汇的翻译总是赶不上老外们的“语言创新”,类似“代数”“正弦”之类的译法,也只有前清的秀才们能想出来。现在计算机方面的新著每年都有大批面世,有能力读懂的人没时间去琢磨翻译,所以只剩下一些老师带着几个似懂非懂的研究生“攒译著”,几个人每人译一章,前后的术语都统一不起来,这种译著,能读懂的才是神仙。好在现在电子版的英文原著铺天盖地,很容易入手。混IT这一行,英文能力真的很关键。

    驱动程序方面有两部经典,一本是 Sreekrishnan 所著《Essential Linux Device Drivers》,另一本是LDD《Linux Device Drivers》,LDD更容易读懂,但ELDD内容更全面。还有一本 Jerry Cooperstein 所著《Writing Linux Device Drivers》,其中的课后练习很值得做一做。

    内核方面的书籍,国人也有不错的著作,任桥伟的《Linux 内核修炼之道》很值得一读,作者的系列帖子《Linux那些事儿》诙谐幽默,拥趸不少。

    驱动程序方面,宋宝华所著《Linux设备驱动开发详解》也不错,作者还自己设计了一套LDD6410开发板,搞嵌入式开发的话,这本书还是值得一读的。

  • 相关阅读:
    typedef 函数指针的使用(含例子)
    关于计算机与MCU通信及MAX232、CH340T与PL2303的区别
    CH340电路设计
    USB转串口CH340接线方法
    开漏输出、推挽输出的区别
    STM32位带操作
    STM32启动文件:startup_stm32f10x_hd.s等启动文件的简单描述
    浮点数在内存中的存储方式
    stm32启动地址
    STM32三种启动模式 boot0 boot1
  • 原文地址:https://www.cnblogs.com/brep/p/4278265.html
Copyright © 2011-2022 走看看