我为什么用Linux?

来源:互联网 发布:linux服务器硬件配置 编辑:程序博客网 时间:2024/05/11 14:08

          昨天看到论坛里有篇帖子《Linux宣传上的3大误区》,感觉文章多少有些偏激和夸大,跟贴的似乎赞同的占多数,偶尔有Linux的fans针锋相对的辩驳,但感觉双方似乎都不够理性,也没有说到点子上。

          我也凑个热闹,谈谈我的看法。我从今年年初开始用Linux,到现在已经有半年多了。说实在的,时间算是短了,所以我知道我还是个菜鸟,但这并不影响我喜欢和继续使用Linux。和很多安装过Linux但用了两天后就卸载的朋友们不同,这半年多以来,我每天都在用Linux。大家也许会问,那一定是我的工作的单位需要用Linux了。不,或者说基本不,因为我前一家公司上班并不用Linux,我现在这家可以用而且希望我们在Linux上做开发,但我来这家公司刚刚一个月。在前一家公司上班时,我都是晚上和周末在家用Linux,而且我不用Linux上聊天、玩游戏或看电影,我是在Linux上做开发。

       下面我就谈谈我为什么要用Linux,先说说我用Linux的目的。4年前我就打算做一个专业的SaaS类网站,具体方向就不说了。两年前终于开始动手了,并且在去年在技术上基本实现了自己的想法。由于我一直在Windows上做开发,熟悉微软的技术,尤其是C/C++/VC。为了尽快验证我在技术上的想法,我首先在Windows上实现了这个系统。由于这个系统性能的要求很高,因此我希望用C语言实现底层的算法。在Windows上首选的Web服务器自然是IIS,如果要用C语言,自然想到用ISAPI了。一开始我就用ISAPI扩展IIS开发我的应用,但后来发现ISAPI的调试非常困难,原因是IIS是个服务而不是普通的exe。最后我无法忍受这样的调试了,就干脆抛开IIS,自己基于socket写了个简单的web服务器,自己控制通信和HTTP的解析,它是exe,很方便调试。由于不需要考虑更多的技术,比如COM/DCOM/COM+/.NET/ASP,所以我认为我自己做的web服务器的性能应该比IIS高。

       这套系统做成后,虽然设计上实现了我的很多想法,但我还是有很多不满意的地方。考虑到Windows是收费的商业软件,一旦运营网站,会有成本问题。而Linux是开源和免费的,使用Linux不会有商业许可问题,而且开源系统可以更方便做优化。由于对socket的理解还不够精深,底层自己开发的web服务器做了很多工作,但稳定性和容错能力还是让我不放心。据说Apache比IIS稳定性和对大并发的处理做得更好,而且是开源的。因此我很容易想到用LAMP体系重新实现我的系统,这也是目前很多小型网站架构的首选。其中老系统的数据库是用SQLServer,LAMP中是用MySQL,它不仅开源,而且性能更高。'P'的选择我用PHP,前面谈到的性能问题,老系统是用C语言解决,而PHP刚好支持C语言扩展。这样我就不用C语言再重新实现一个自己的web服务器了,Apache足够用了,省了我很多工作。

        今年年初,我从零开始学Linux和PHP。由于原来的大部分js和ajax的前端代码可以用老系统的,开发的比较快。到现在为止,基本上实现了老系统的所有功能,并且还实现了很多老系统没有新功能。我打算这两个月将新系统上线。和前面很多网友不同的是,我用的不是Ubuntu(虽然也装过,但后来卸了),而是Fedora。可能是Ubuntu名气太大,或者是CSDN上袁萌老师不遗余力的宣传Ubuntu的结果吧。我用Fedora的原因是首先Fedora是基于redhat后续开发的,很多讲解Linux的书籍都是以redhat或Fedora为例子的,比如《鸟哥的Linux私房菜》。其次是Fedora带的软件很全,像我这样的菜鸟不需要再去费力地下载安装。但这也是很多人诟病Fedora了原因,因为它太大了,安装时间长,而且没有Ubuntu稳定。不过Fedora的稳定性对我作开发足够了,比当年的Windows95/98好很多倍了。我在公司的机器上装的是新版本的Fedora 11,但家里的机器配置差些,所以装的是对资源消耗小些的老版本Fedora Core4。可能会让一些Linux老手耻笑的是,我的FC4是装在虚拟机上的,为什么呢?因为我需要用IE调试,所以虚拟机上的Fedora是web服务器,Windows是客户端,这样我就不需要两台机器了。另外,我很奇怪的是,有的朋友竟然要邮寄申请Linux CD,网上不是可以下载吗?下一个然后刻盘不是很方便吗?成本也就是一张光盘的钱,应该比盗版Windows更便宜吧。

        实际上,我在Windows上有超过十年的开发经验,我从VC1.0开始接触Windows开发,我对微软和Windows有深厚的感情并心存感激。因为正是微软的盗版软件让我低成本地学会了编程,只不过我对.NET这样仿照Java,需要架构在IL中间语言上,携带一个与MFC/ATL库功能大同小异但却庞大得多FrameWork库的技术有些反感。这也许会引起.NET拥趸的反驳,不过你要是做了十多年的Windows开发,还在被已经失去创造力的微软牵着鼻子走,你就知道我的感受了。Linux上的技术比较稳定,你以前掌握的很多东西,以后也能用上,它不会今天出一个Win32,明天出一个MFC/ActiveX/COM,后天出一个ATL/DCOM/COM+/DNA,大后天出一个.C#/.NET/WCF,让你疲于奔命。其次,Linux上C语言编程更地道,因为C原本就是DennisRitchie为了做UNIX发明的,Linux上的C不会出现像Win32下那么多混乱的类型和函数,它更接近标准C。而Linux的C++编译器gcc更符合标准C++的规范,而VC要差一些。再次,Linux可以文本方式运行,这样开销更小,更稳定高效,因此更适合做服务器。而它的X图形模式下也越来越易用了,Fedora11的桌面系统已经很接近Windows了。速度可能是慢点,比如firefox打开网页就比windows下的firefox慢,但可以忍受。但也有快的地方,Linux上拷贝大文件比Windows快,即便是在X中,也许是文件系统设计的问题。Linux在桌面操作系统方面确实不能和Windows比,但它在一天天进步,这是有目共睹的,以后在桌面市场与Windows分庭抗礼,也未可知。

        与《Linux宣传上的3大误区》中提到的有些Linux使用者不同,我用Linux不是为了炫耀,也不觉得比用windows的高人一等,更不是一个反对微软的IT愤青。我是个实用主义着,我用Linux有着现实和迫切的目的。我也不把自己看成Linux的高手,到现在为止,我还是个Linux菜鸟和门外汉,很多基本的命令我甚至还要查书或google。我也不去刻意去背那些命令,用到的时候就去查,用的多了就记住了。一切的目的是为了做我的那个网站,而不是成为Linux高手或PHP高手。Linus也是个实用主义者,我想他能理解我。

        和很多用着微软的Word写着打到微软文章的“斗士”不同,本文在Fedora 11上的FireFox中编辑完成,因为Fedora 11是我上班大部分时候用的系统,偶尔我才会切换到Windows。

原创粉丝点击