Linux并不是一个比windows更神秘的系统.
是的Linux没有MSDN,但Linux和相关软件的文档绝对不比MSDN要少
记得,一个看官方网站的文档,一个google.我想,大多问题都会解决的.剩下的就靠
你动手解决了.
linux入门:
没有发现什么比较好的入门书,要么太古老,要么照顾太多的放行版本,导致没有什么
实际用处.实际上,参考发行版的说明文档和使用手册往往是最好的入门书籍.这里面
也有一个关于学习linux的方法: 刚开始学的时候没有必要经常换发行版,往往学好一个
之后,其他的都不难了.
比如,你用redhat,去 http://www.redhat.com/docs/manuals/ 找资料吧
用debian的,去 http://www.debian.org/doc/
台湾有一个<鸟哥的linux私房菜>,也是不错的,如果你讨厌英文的话.不过版本稍旧
网址是 http://linux.vbird.org/ 也有中文书出版了
IBM的developer works也是一个好去处
http://www.ibm.com/developerworks/cn/index.html
再顺便说说Unix/BSD的入门书籍.
FreeBSD:
前者是一个中国FB大牛写的,后者是FreeBSD的官方文档,也有中文翻译了
http://www.freebsd.org
http://www.freebsdchina.org
Solaris:
sun的培训文档就是最好的入门书籍.推荐看英文的,中文翻译不怎么样
入门的3本是 SA239 SA299 SA399
HPUX:
HP-UX System and Network Administration V1 V2
HP-UX System and Network Fundermental
其实Sun和hp的文档都非常齐全,去官方网去看吧
http://docs.sun.com/app/docs
http://docs.hp.com/
系统编程:
系统编程的入门书籍依旧是APUE这本圣经
Advanced Programming in the UNIX Environment (unix环境高级编程)
这本书可以说自Steven写出来后,一直被誉为Unix编程入门必看书籍.你去看看Unix新闻
组
的FAQ,里面多次提到这本书说什么什么.
英文版已经出到第三版,中文版出到了第二版.不过差别不大
如果想继续深入,那么steven的两本
Unix Network Programming V1 V2
也不可以错过.别被名字欺骗了,第一卷的是老老实实的网络编程,但涉及到的IO模型分析
还
是相当精辟.第二卷其实是Unix IPC的详细介绍,做系统编程怎么可能没有IPC呢?最简单
的
pipe都属于IPC的内容.据说这套书应该是3卷的,可是斯人已逝,谁能再续写下去不清楚了
这两本书也有中文版,不过估计不好找了.
多线程总是一个惹麻烦的地方,但又是不可避免的:
Programming with POSIX(R) Threads
此书是Dave Butenhof写,是DEC的一个资深工程师,也是pthreads规范的起草人之一
这本书对pthreads可以说详尽的描述,尤其其他书比较少涉及到的多线程和信号混用
的问题.
glibc在unix/linux上几乎是标配,所以libc的文档也不可少:
http://www.gnu.org/software/libc/manual ... index.html
gcc也要学的:
http://www.gnu.org/software/gcc/onlinedocs/
gdb也是不可少的:
http://www.gnu.org/software/gdb/documentation/
还有一个是make:
<跟我一起写Makefile>
不知道哪里找? google之
记得随时要请教man,没有比这个更顺手的文档了,既然你装了linux,为什么不用呢?
vim和emacs是一定要学其中之一的,参考O'REILLY的相关书籍即可
perl么,O'REILLY的大骆驼小骆驼书就足够了
python么,
sh编程? 入门书很多,区别不大. 但是bash的深入可以参考下面这本
Advanced Bash-Scripting Guide http://www.tldp.org/LDP/abs/html/
内核:
1) Bach, Maurice. the Design of Unix Operating System
2) M. McKusick and G. Neville-Neil. the Design and Implementation of FreeBSD
Operating System
3) J. Mauro and R. McDougall. Solaris Internals: Core Kernel Architecture
4) C. Cooper and C.Moore. HP-UX 11i Internals
5) Vahalia, Uresh. Unix Internals: The New Frontiers
6) Schimmel, Curt. Unix Systems for Modern Architectures: Symmetric
Multiprocessing and Caching for Kernel Programmers.
7) A. Rubini and J. Corbet. Linux Device Drivers
8) D.Mosberger and S.Eranian. IA-64 Linux Kernel: Design and Implementation
9) R. Love. Linux Kernel Development
10) M. Cesati and Daniel P. Bovet. Understanding the Linux Kernel
其中1,2,5,6,7,8,9,10都有中文版
这些书都是关于Unix和类Unix系统的
1是关于Unix的基础教科书
2的前版是关于4.4BSD的,新版论述FreeBSD5的新进展,这本和9一起对比着看很有意思
9是关于Linux2.4/2.6的概略论述(第一版是2.4,第二版是2.6),入门看会比较轻松
3是关于Solaris的。涉及到商业系统的书总归比较少,而solaris的实现是非常稳定
高效的,了解solaris会有不少收获。本书第一版是关于solaris7/8,第二版(刚出版)
关于solaris9/10
4只听说过,没看过。。现在HPUX越来越少用了,而且用起来很不爽。。
5这本强烈推荐,书中涉及到各种版本的Unix,一本读完,各种Unix的优缺点都心中有数
了。 缺点就是太老了点,也没听说有新版本要出来。此书中文版翻译不错。不过估计
没得卖了。。
6是专门论述SMP的,有需要的人看看吧
7这本已经出了3版了。第二版是2.4,第三版式2.6的,各取所需得看吧
8如果你想了解一下怎么从x86转移到其他架构上,看看不错
10一本砖头书,与9比就是太详细,适合入门之后的精通
关于Linux的几本书,看书顺序应该是9->7->10
--
void life(){
int ret;
while( (ret = fork()) < 0);
if(0==ret) life(); else exit(0);
}
※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 202.22.249.237]
看了另一个贴,也不错的,
成为一名精通 Linux 程序设计的高级程序员一直是不少朋友孜孜以求的目标。根据中华英才网统计数据,北京地区 Linux 程序员月薪平均为 Windows 程序员的 1.8 倍、Java 程序员的 2.6 倍, Linux 程序员年终奖金平均为 Windows 程序员的 2.9 倍。同时数据显示,随着工作经验的增长, Linux 程序员与 Windows 程序员的收入差距还有扩大的趋势。Denis 认为,要学好 Linux 环境下的编程,关键是要看对、选对、学会正确的书籍。可以说,如果你选对了 Linux编程的经典书籍 , 配合你在程序设计工作中的刻苦钻研,成为一名精通 Linux 程序设计的高级程序员并非一件可望不可及的事情。但如果各位程序员朋友没有选对正确的书籍,则你的职业生涯之路就可能面临坎坷。今天,水煮鱼向各位朋友推 荐的这些书,有的是资深老前辈们当初向水煮鱼的推荐,还有的是 IBM 的内部培训指定参考书,它们都很值得各位朋友抽空认真一读。
为什么要学习 Linux 环境下的编程
Linux 是 一个开放、灵活、跨平台的操作系统,上至庞大的数据中心,下至可放于掌心中的嵌入式设备,无处没有 Linux 的身影。更为重要的是, Linux 是一个与 Unix 既一脉相承又与时俱进的系统。可以说,上世纪70年代学习的 Unix 知识和技巧,在今天仍然大有用武之地,这与 Windows 平台的开发形成了鲜明的对比。程序员不用担心今天微软出一个 .net,明天又出一个 F#,使得自己过去学习的成果付之东流。
上个星期,水煮鱼与一位 Linux 项目经理聊天过程中,这位 Linux 项目经理告诉水煮鱼,他们项目的利润非常高,急需具备一定 Linux 编程知识的程序员。他说:“其实我们对程序员的编程技巧要求也并非很高,这是可以在工作中培训和提高的,关键是很多程序员连基本的 Linux 编程思想都不了解,我怎么聘用他们呢?我们去大学招聘的时候,给本科应届生开出 8000 元的月薪,但是就是很难招到人。我拿一些经典书籍中一些经典例子来考他们,他们基本上都是一问三不知。其实,如果他们能回答上一半的问题,我还是很愿意考 虑是否聘用他们的。而对于项目相关部分的专业知识,我们有专业的内部培训,并不担心这个问题,关键是看应聘者是否具备 Linux 编程的基本思想。”
水煮鱼认为,这位项目经理朋友提到的问题还是很有代表性的。其实很多程序员朋友,只要能掌握这些书中的基础知识,是很容易脱颖而出的。事实上,项目经理他们也都很忙,并没有空去自己设计高难度的面试题目,而是直接采用经典书籍中的经典例子。
《UNIX环境高级编程》(第2版),史蒂文斯著
《UNIX环境高级编程》,推荐指数:★★★★★
在当当购买 | 在卓越购买
《UNIX环境高级编程》是 Unix/ Linux 程序员案头必备的一本书籍。可以说,Linux 程序员如果没有读过这本书,就好像基督教徒没有读过圣经一样,是很难让人理解的。这本书概括了 Linux 编程所需的一切理论框架、主要系统函数、多进程编程、乃至 Linux 网络通信。对于初学者,如果你能将《操作系统》这门课程结合着这本书来学习,试着用 Linux 程序实践《操作系统》这门书中讲的进程间通信、进程调度、进程同步等内容,相信这将是一个一举两得的事情。哦,忘了告诉大家,上次 CNN 采访 Google 总裁佩林的时候,水煮鱼看到佩林的书架上就有这本书的英文版,可见它真的是一本全球开发者必备的一本书。
《深入理解 Linux 内核》(第三版) ,博韦等著
《深入理解 Linux 内核》,推荐指数:★★★★
在当当购买 | 在卓越购买
学习 Linux ,就要学习 Linux 的精华。而 Linux 的精华,则在于 Linux 的内核。《深入理解 Linux 内核》就是一本辅助学习 Linux 内核的经典书籍。有的初学者,在没有人指导的情况下,就钻入 Linux Kernel代码的海洋中埋头苦学,结果学了半天仍然是一头雾水。当然了,在大师指导下学习就不一样了。本书以最新的 Linux 2.6 版架构为基础,分门别类地向初学者介绍了 Linux 内核的架构、编程思想、以及功能模块。相信你在本书的指导下学习,对于你读懂 Linux 操作系统的精华部分,会取得事半功倍的效果。事实上,不少知名公司招聘的题目里面,很多就出自这本书,可见它真的是论述 Linux 内核的经典书籍。
《Linux 设备驱动程序》,科波特著
《Linux 设备驱动程序》,推荐指数:★★★
在当当购买 | 在卓越购买
程序开发,高薪在 Linux ; Linux 程序员,高薪在驱动开发。可以说,水煮鱼见过的 Linux 驱动程序员,薪水在万元以下的,一个都没有。普遍观点认为, Linux 驱动开发很难学,这并不正确。初学者认为 Linux 驱动开发很难学,关键在于其没有选对正确的入门书籍。《 Linux 设备驱动程序》这本书,过去已经有多位 Linux 项目经理向水煮鱼推荐过,你要想学MOD编程,想挑战高薪职位,这本书读一读是很有必要的。当然,这本书不是一本针对初学者的书籍,初学者应首先学习前面 提到的《UNIX环境高级编程》再看这本书,你才能真正的学懂学好 Linux 驱动开发。
《嵌入式 Linux 应用开发完全手册》,韦东山著
《嵌入式 Linux 应用开发完全手册》,推荐指数:★★★
在当当购买 | 在卓越购买
要说 Linux 应用最广泛的地方,那一定是无处不在的嵌入式设备了,《嵌入式 Linux 应用开发完全手册》就是一本教会您怎样开发 Linux 嵌入式系统软件的一本好书。水煮鱼与本书作者韦东山老师曾有过一面之缘,当时韦老师正在写作这本书。这本书综合了常见的嵌入式开发经验技巧,以及常见的嵌 入式系统应用,系统移植,调试及异常处理等,内容非常丰富,是中文 Linux 领域难得的一本好书。嵌入式处理器种类繁多,韦老师着重讲了目前国内最常用的ARM系统,实用性很强,是国内嵌入式程序员不容错过的一本工具书。
《人月神话》(32周年中文纪念版),布鲁克斯著
《人月神话》,推荐指数:★★★★★
在当当购买 | 在卓越购买
水煮鱼上面为大家推荐了几本 Linux 编程经典书籍,但要问编程的最终目的是什么,那一定还是要应用到实际项目中。做项目,那就一定离不开《人月神话》这本书。《人月神话》的作者布鲁克斯,是 水煮鱼所在公司的超级大牛人,也是图灵奖的获得者。去年,他到中国访问的时候曾经表示,《人月神话》这本书,浓缩了项目实践中的正反两方面经验,是项目经 理和系统分析师必读的一本书。水煮鱼认为,各位年轻的朋友,最终还是会要管项目的,与其你临时再学习,还不如早点接触这方面的知识比较好。可以 说,Linux 的项目,对开发者的要求都很高,大家不要去跟 Windows 程序员学一些不好的习惯,特别是项目实施方面的一些不好的习惯,而应该深入体会大师的书籍。目前,《人月神话》的32周年纪念版已经上市了,有志于成为项 目经理和产品经理的人,不应该错过这本做项目的圣经。
总结
古人云:“生而知之者,上也;学而知之者,次也;困而学之,又其次也;困而不学,民斯为下矣。”水煮鱼认为,正如古人所言,对于成功的 Linux 程序员,勤奋苦读的结果,将为您的 Linux 学习之路锦上添花。对于还没有入门的投资者,尽快熟读一两本入门的 Linux 书籍,对于你少走弯路是很重要的。对于已经进入项目,但还不能熟练掌握 Linux 开发的程序员,越早补习自己缺乏的东西,您将越早受益。对于基础薄弱,又拒绝学习的程序员,或许“民斯为下矣”就将是您惨淡的结局。