仅可以学到一个操作系统的实现,同时也可以学到许多系统原理以及软件工程的东东
……..
说说 linux 程序员和 windows 程序员之间的区别吧.....
有很多号称 windows 编程高手的人在 windows 上搞了几年的开发,居然不知道
makefile 是用来干什么的???他们以为会使用 vb、vc、sql 就算计算机高手了???
他们甚至不知道一个进程是怎么被
fork 的,一个可执行文件又是怎么执行的;更有甚
者,有些号称精通
vc 的人居然连 windows 最基本的消息机制都不明白,他们以为把
windows 的这些 api 函数都背下来就什么都摆平了???这些人如果一旦脱离了
windows 将无法生存了(也许这就是中国软件行业的悲哀吧….),而现在除了一般
的通用软件和
mis 系统以外,有多少程序是在 windows 上编写的????纵观现在
的计算机行业,家电、手记等等嵌入式系统哪里可以找到
windows 的身影(就算是
wince,也有很多东西和 windows 不一样,那么这些人是不是需要重新背诵新的
apis????)。
所有这些,在 linux 程序员看来都是无法理解的事情;也许你会说,windows 提
供了这么方便的开发工具,大家可以少作很多事情,但这样的方便将直接导致程序员
水平的下降
……在 linux 上面进行开发,你可以作任何你想要作的事情,因为所有的
技术都是公开的,你所能把握的是整个计算机的基本原理,所以即使你听到诸如
“跨平
台
”这样的话,也不会感到害怕,呵呵…….
就拿小弟来说吧,从前我也是一个在 windows 上面瞎搞的人,用 vb 写了一个通
信软件还觉得自己很牛逼(现在想来,实在太幼稚了),但其实当时我连什么是通信
都还不知道(呵呵,脸红一下
^^^^),windows 也就这一点好:说你行你就行,
不行也行
……如果你只是为了应付毕设、课题、或者是老板的话,那么用 windows 写个
小程序再好不过了(呵呵
^^^,不过小心你写的程序搬到别的 windows 机器上就不
能用了喔
……这是因为你写的程序可能用到了动态库,而别的机器上可能没有),几
年下来,除了会使用
vb、vc 以外,什么都没学到手,都说 windows 是一个操作系统,
可是我不知道它的任务机制是什么样的?驱动程序是放在什么位置?文件系统又是什
么样的等等好多??然而,在
linux 上写了一个 TCP 通信软件之后就让我明白了整个
tcp/ip 协议以及具体的实现(这也许就是 linux 的好处之一吧)。
习惯于
windows 的人在谈到硬盘分区的时候会自然而然的想起 c、d、e….以为这
就是分区的概念,由此可见
windows 对我们的毒害之深啊……有一次,小弟在机器上
装了
redhat,同事跑过了看新鲜,问我说:“你的 c 盘在哪里?”我说:“没有 c 盘,
只有
hda1”,然后他就说:“连 c 盘都没有,怎么装系统啊?”,我狂晕了一把#$%@
…….那家伙也是 cs 科班啊…….硬盘的分区只是对物理硬盘进行区域的划分,使得每
个分区都可以被看成是一块独立的硬盘,每个分区都可以有自己的文件系统,仅此而
已,至于用什么来表示每个不同的分区,随便
…..
写这片帖子,决不是要煽动大家从 windows 转向 linux,只是根据不同的需要,
大家可以选择不同的操作系统;当然,如果你觉得对
linux 有些害怕的话,那么我可
以告诉你,
windows 可以做到的事情, linux 也都可以做到,而且只会更好;而
windows 作 不 到 的 一 些 事 情 , linux 也 有 可 能 做 到 , 比 如 说 , linux 可 以 访 问
windows 下的文件系统,而 windows 则不能访问 linux 下的 ext 序列的文件系统…
….
最后,我想说的是:
linux is enough, but windows also not so bad!