作者:徐跃海 来源:北软bbs 酷勤网收集 2007-08-12
摘要
Linux,其实是一个组装的东西:确切的说,是GNU + Linux。编程=学习Linux是个
误区。我可以告诉你,Linux是可以随意组装的,大到一个完整的操作系统:
RedHat,SuSe,小到几十兆,几十K的嵌入式系统,Linux都能胜任。所以,精通
Linux,我觉得对于你来说是有非常广阔
崇辉,
你好!我太能体会你的感受了!
我就是你那么走过来的。当时我根本不知道如何学习Linux,于是就硬着头皮看
书:《Linux情景分析》,《深入理解Linux内核》,《UNIX高级环境编程》,《Linux
Shell编程》等等等等,还有来昂式源代码分析。有些触目惊心的感觉。:-)。
我这里毫无吹嘘自己曾经看过的书,只是走的路太偏了。现在回想起来,有益也有弊。
没有人会认同在刚开始接触Linux的时候看高深的东西,比如浙大的情景分析和深
入理解Linux内核。这两本书,我不建议,也不反对,因为我就是从这里开始的。
当然,基本上我没什么看懂。不过我也可以告诉你,前几个月我做的一个项目就得
益于对Linux内存管理的理解,虽然在几年前我不知道我学到了什么。但是几年之
后,我发现我沉淀了很多。不建议,是因为太深,太理论,对你现在可能没什么帮
助。不反对,是因为这是一种沉淀。而这些,微软或者Java永远给不了你。
先谈一些自己的概念。我曾经是软院的学生,我自己感觉自己学习的时候非常的浮
躁,直到在社会上碰壁,才彻底打破那种其实没有实力的自信。我抛开软件工程宏
伟的概念不谈,软件不写代码简直扯淡,就像习武,不扎马步一定不行。对于软件
工程大概20%~30%是代码,其余是其他的概念,我没有资格去评论。只是,我们真
的可以一步登天吗?平心而论,中国的软件业处于世界中下游的水平,一定程度
上,是我们的耻辱。我们真的不需要知道os是怎么回事?我们真的不需要知道编译器?
一句话,要想自己成为一个高手,一定要多学,多看。Linux提供了平台。提高自
己的水平没什么别的方法,就是看源代码,看经典的源代码。TCP/IP总共才1000多
行(可能我记错,但是我保证不会多到哪里去)。但承载了我们的网络世界。
我想说的第一点:沉下心,不断习读源代码。
光这一点,远远不够,因为说了等于没说。
Linux,其实是一个组装的东西:确切的说,是GNU + Linux。编程=学习Linux是个
误区。我可以告诉你,Linux是可以随意组装的,大到一个完整的操作系统:
RedHat,SuSe,小到几十兆,几十K的嵌入式系统,Linux都能胜任。所以,精通
Linux,我觉得对于你来说是有非常广阔的前景,因为你操控的程度非常大。
如何理解Linux呢?简单一点说,就是理解Linux系统的方方面面---装系统。我推
荐你使用Debian Linux。因为Debian Linux不同于RedHat光盘插入分区之后就完
事,Debian Linux里面有很多自己可控的东西。你尝试一下,就知道。当然还有
Gentoo Linux。终极目标就是LFS,Linux From Scratch。就是Linux肢解安装。说
实话,如果你能顺利的做出LFS并能解决方方面面,那么你自己去开一家公司做类
似于红帽等服务型公司没有问题。
通过安装并使用上面提到的Linux,推荐用Debian Linux,你会碰到各种乱七八糟
的问题,当你一一都解决了,我个人认为,你对os的理解会非常深刻。这些和编程
无关。但是这些非常重要。一定程度上,这是系统架构方面的。这个系统,比应用
程序级别的高的多。
所以,建议你入门的时候从安装开始。目的是理解Linux的系统架构。
谈及编程,Shell,C是一定要的。我抛开现在流行的各种语言,C始终是一个经典
的东西。如果你对语言感兴趣,怎么学C,在google上搜C FAQ,把里面的问题看
看,如果你能完全弄懂,那么C就不会难倒你了。当然,其实很多公司面试的C的题
目都是从那里来的。
至于说Shell,有本书:《LINUX与UNIX SHELL编程指南》可以做为参考。你可以看,
也可以做为参考书。
我想最后,说一下关于如何学习。Linux其实是个很开放的概念。关键不是学到了
什么,而是知道怎么学。你碰到的问题,95%别人都碰到了,90%别人都已经解决
了,90%答案就在网上。
Google+关键字:搜索引擎一定要好好利用。
论坛,国内的论坛:linuxsir, linuxedian, linuxfans等等,这个我想你肯定能找到
irc:讨论工具,可以看到高手之间的交流
mail list:世界上各个角落里的人都是用这个来讨论的。很多答案就在里面,你
也可以去问问题。
交流,与人交流,不断提高。不管是什么,和几个志同道合的人交流是非常有帮助
的。(如果方便,也请分享这篇Email)
刚开始起步的时候比较难,我有时候会去蒲公英中学,如果你对Linux很感兴趣,
我想我们有机会当面交流。
希望你学习进步,将来取得自己理想的成就!

