“Curriculum of Open Source University”
三百六十行,各行亦有各行的书柜,一些瞧过的书,Linux嵌入式方向,年末了,写个读后感大集合,若对大伙儿有用,鼓个掌,龙年攒人品。都是些个人观点,若有不当,看官一笑了之。
第一阶段:
《鸟哥的私房菜》
浅显易懂,边读边实践,近距离认识linux。
目标:掌握shell;
摆脱Windows的思维束缚。
《c陷阱和缺陷》/《c与指针》
在一个菜鸟自以为是的时候,此书给予的当头一棒可谓是轻重适中。
对自己的c能力及编程能力等级给予重新认定。
同时也是面试冲刺必备。
《高质量c_c++编程》
编程是门艺术:自己的思维要清晰,更要让读者看得舒服。
逐渐形成一套规范的编程风格。
《Linux内核设计与实现》
无数人士推荐的内核入门手册,简单易懂。
“麻雀虽小,五脏俱全”,先把握内核整体,便于以后各部分的深入理解。
《嵌入式Linux应用开发完全手册》
嵌入式有“硬”又有”软”,一本由硬件角度出发的驱动手册,从单片机的视角了解ARM驱动编程。
内容贴近datasheet,就是IC老了点。s3c2440作为一款经典的嵌入式入门IC已被s3c6410取代。虽然s3c6410被视为入门级,相比s3c2440性能升级了不少,复杂度也大为增加。随着处理器的不断升级,只能苦了日后还在丫丫学步的菜鸟们。
《Linux设备驱动开发详解》
从软件视角认识驱动的一本书,同样讲究实用。单就s3c2440驱动入门,此书+《嵌入式Linux应用开发完全手册》足矣。
课外阅读:
”Linux c编程系列“
不管是google还是baidu 字段“Linux c编程”,都能搜出相关书籍一胡片,我们的山寨能力不仅体现在手机、平板,在图书出版业更是炉火纯青。内容大同小异,目录千篇一律。
大体可以分为三部分:环境搭建+工具的使用,shell+gun c+arm汇编基础,linux API(文件操作、同步异步IO、多进程线程、IPC、socket通信等)。
内容组织看上去比较系统,涉及面广,注重实用性,个别深度亦有。虽是山寨,捧上一本,边读边敲,一趟下来也是获益匪浅。
《Advanced Linux Programming》
如果你是一位反对盗版,厌恶山寨的正义人事,那么推荐此书。不过,我们的山寨早已成熟多年,读罢,也未发现有何精妙之笔。
《Red Hat Enterprise Linux 6.0系统管理》
一本linux运维的LJ书。说其完全没用,但多少能有点帮助,充其量就是本手册,趁rhel6发布不久先赚笔钱之流。同样的58元人民币,相比其他,不值啊不值。
类似书籍相当泛滥。
《Advanced Bash-Scripting Guide》
高级bash脚本编程手册,对于linux服务器运维的朋友这东东是需要看几遍di。
而对于我这号,掌握三四十条shell命令,应付虾兵蟹将足以,若不行,则求助谷歌,度娘。
第二阶段:
《Git权威指南》
一本有点小废话的字典。
cvs等上古铠甲,在现代战争中已不堪一击。如果你热爱开源,那么,你需要这么一套装备。虽然上手有点小困难,但对于立志成为“海贼王”男人的你,拿下它是必须di。“vim+ctags+git”将成为你的黄金圣衣。
对于Git,引用作者的一句话:“我非常后悔没有在学习编程的第一天就开始使用版本控制”。
《熟悉binutils工具集》
一个pdf,仅仅20页,但实用性很强,可见作者之用心。
认识编译器不为人知的用法,为之后的深入理解打好基础。
《Linux设备驱动开发》
同《Linux内核设计与实现》一样, “内核四库全书”之一,无数达人推荐的内核驱动必备书籍。
06年出版,苦苦等不到第四版出炉,可能是过于经典,没必要更新的缘故。
《Unix环境高级编程》
linux环境编程的神装,从事linux编程事业的码农必备,也是上述 Linux c编程系列各山寨的原版。厚如辞海,经典到掉渣。
对于靠网络终端编程吃饭的码农们,大神Stevens的另外两套书籍《TCP/IP详解》、《UNIX网络编程》是最好膜拜一下。
只可惜英年早逝,是真的升天成了仙,但留下的著作也算是永垂不朽。
放于桌前,菜鸟只能烧香膜拜,入门者谓之字典,过槛者称其练习册。
课外阅读:
《Linux内核API完全参考手册》
内核不仅是改革开放的,也是与时俱进的。“一日patch几千行,两周出个小版本”,胆敢有人出书分析内核api?
一瞧内容,原是特定版本的个别分析。“手册”一词还算恰当,这个“完全”嘛就没有了“实事求是”的作风。
不过有一点我很是喜欢,书里不仅有api的讲解,而且有短小干练的代码实例。API的学习不是简单的讲几句就能掌握,关键还是实践。杯具的是代码可以网上下载,直接make,insmod就OK。
第三阶段:
《深入理解Linux内核》
内核不是只有driver,还有fs,mm等。此书带给你的不是量变而是质变。
代码敲的再多只是不断量变的过程,编程也不会上升为艺术;驱动看的再多也不会让你拥有敲出驱动代码的能力。
内核是个“牵一发而动全身”的禁地,从整体上把握内核运行机制,以全面的视角审视内核的内在机理,才能真正清楚驱动在内核中的地位,明白整体与局部的辩证关系。
读完此书,好比”八门遁甲“开了景门的“朝孔雀”,内存管理,文件系统,调度算法等,各个代表着一个研究方向,每一个方向都会有无数论文等着你去观摩,真是百花齐放,精彩缤纷。
选择一个方向,开“惊门”,使“ 昼虎”,在一个研究领域打出精彩一击。
《Linker && Loader》
如果c语言代表底层,它便是底层中的底层。古老的课题,古老的书,古老却有时并不意味着落伍,掌握这种古老,便是“大牛”的毕业证。
直接读此书,只会越读越困难,不免有挫败感。内容更偏向学术研究,针对linux平台,不如先找几篇有关elf文件格式的论文研读一番,比如:《ELF文件格式分析》(滕启明),再读便有豁然开朗之感。
实用性可能不强,重在精神境界的升华。
《ARM嵌入式系统开发——软件设计与优化》
编译器原理代表着码农们的底层,而此书代表的就是苦逼嵌入式工程师的底层。
“从事ARM嵌入式系统软件开发的每一位工程师的桌上都应该摆着这本书。对于初学者来说,他是一本详尽、透彻的使用指南;对于ARM专家来说,它则是一本有益的参考书。”
一本看似复杂,读来却有轻松之感的佳作,足见作者之功底。在学好《计算机组成原理》,有一定的ARM汇编经验的基础上研读此书,真是爱不释手,百看不腻。读过此书,一些乱七八糟的东西似乎开始有了调理,对ARM处理器的认识更是受益匪浅。
课外阅读:
《精通Linux设备驱动开发》
“印度阿三”的作品,内容涉及广泛,讲解有点简单。但内容广了自然就不可能太详细,对于内核驱动的老手们来说,简单的一句提示足矣,所以,谓之手册。
同样是手册,人家写的咋就觉的好嘞。
《深入Linux内核架构》
同为“字典”一本。可能是因为《深入理解Linux内核》迟迟不更新的缘故,德国人坐不住了。四年的发展内核已是面目全非,进程调度算法,内核数据结构等变化不小,不能总是抱着一本老古董啃不是?!
该书很好的诠释了德国人严谨的作风,内容丰富详尽,印刷不错,捧来倍觉厚实之感。读罢《深入理解Linux内核》再读此书,很是亲切。
《see MIPS run》
地球上的嵌入式处理器可不只ARM一种,单一的关注ARM有点狭隘主义,至少在多媒体处理方面,mips仍然是技高一筹。
一本《计算机组成原理》的mips版,有空多看看,扩展视野,以免被ARM思想垄断。
《Linux内核源代码情景分析》
下了个电子档,1500+页,内容详细到代码实例剖析,虽是2.4的内核,但还是很有启发,对作者也是心怀崇敬。
参考为宜。
《Understanding the Linux Virtual Memory Manager》
纯粹学术性的东东,基本就是《深入理解Linux内核》内存管理部分的《情景分析》。
研究内存管理达人们的必备。
《深入理解Linux网络技术内幕》
如果说《深入理解Linux内核》支撑着《Unix环境高级编程》,那么此书便支撑着《TCP/IP详解》和《UNIX网络编程》。
128元人民币,加上最后的作者介绍和O'REILLY图书广告,整整一千页!
书写的很详细且图文并茂,读完不仅要有网络功底,也确实需要些时日。
第四阶段:
《我是USB》
fudan_abc的佳作,对usb的分析具体到代码,语言诙谐,文笔不错。同《Git权威指南》,难免有点小废话,技术类图书还是直截了当,图文并茂的好。总体来说还是给予肯定,将枯燥的代码聊得似小说,可见作者对技术的理解已由理性认识上升为感性,足见功底之深厚。
《S3C2440A 32-BIT CMOS MICROCONTROLLER USER'S MANUAL》
初级datasheet,不到600页,每一章节介绍一模块,模块都很基础,功能单一,天生充当教材的材料。
课外阅读:
《S3C6410X 32-BIT CMOS MICROCONTROLLER USER'S MANUAL》
在读过S3C2440A UM之后,与之对比便对处理器的功能进化有直观体会。多媒体处理能力明显增强,相应的多媒体模块从目录中即可看出其复杂化。1300+页,看完似乎不太现实。
《s5pV210 32-BIT CMOS MICROCONTROLLER USER'S MANUAL》
作为当前正火的IC,内容架构有较大变化,功能强大,模块太多,所以目录分为几大章的结构。不仅是量的增加,内容的小有改变,例如gpio的配置会有些许不同。
页数突破2K,读完似乎不太可能。基本是用哪看哪。
《Android应用开发解密》
一本应用开发入门书,谈不上好坏,仅仅是api介绍,重在实用。书中实例代码有下,已入门者瞧瞧代码即可。
《Android技术内幕:系统卷》
大致的介绍了android的中间层和底层。很多地方限于篇幅,说一点不如不说。讲解貌似很深,但读来不知所云,内容基本网上都有,有借鉴各家博客后整理之嫌,但此风气在android各类国产书中已是司空见惯,能整理好为读者所接收也属不易。
至于对android的理解,在看过上述图书之后,android也不过只是个app而已。android的难点在于虚拟机和进程间通信的实现,而其核心就是NDK。