從程序員的角度看Linux和Windows的對(duì)比
本人在Unix SYS5,DOS,Windows3.x,windows9.x/NT 和Linux幾個(gè)不同時(shí)期流行的OS上寫過(guò)程序.在Linux和windows的對(duì)比中,我主要是從一個(gè)程序員的角度來(lái)看的。
一 系統(tǒng)架構(gòu)的對(duì)比
1 內(nèi)核
(1) 內(nèi)核的彈性
Linux的內(nèi)核表現(xiàn)出了高度的可配置性和獨(dú)立性,主要是完成:IO驅(qū)動(dòng)設(shè)
備管理,TCP/IP,以及任務(wù)調(diào)度.Linux的標(biāo)準(zhǔn)內(nèi)核發(fā)布版本有40~50MB,而我
現(xiàn)在在一些評(píng)估板上試驗(yàn)的嵌入式Linux系統(tǒng)(使用arm或M68K系列的CPU)
只用到了2MB,同樣實(shí)現(xiàn)了網(wǎng)絡(luò)功能和完整的任務(wù)調(diào)度,這使得Linux可以適
用于從高端服務(wù)器到嵌入式應(yīng)用的各個(gè)等級(jí)的計(jì)算平臺(tái)上,與之相比,windows 沒(méi)有明確的內(nèi)核概念.windows只適合臺(tái)式機(jī),NT從未真正的打入高端服務(wù)器,WinCE也遇到了一些結(jié)構(gòu)性的困難.
(2) 內(nèi)核的任務(wù)管理
衡量一個(gè)內(nèi)核的重要指標(biāo)是多任務(wù)環(huán)境下的安全性和任務(wù)調(diào)度的效率.
Linux在這方面繼承了Unix的優(yōu)點(diǎn).而win9.x(包括winme)從來(lái)就沒(méi)有實(shí)現(xiàn)過(guò)安全的多任務(wù)環(huán)境,NT/2K 勉強(qiáng)做到了安全性,但是效率還是不敢恭維,我曾今將一個(gè)多串口并發(fā)驅(qū)動(dòng)的應(yīng)用程序改寫成多線程的方式,原本希望提高處理速度,實(shí)際上速度降低了2到3倍.這也就不難理解為什么同樣的企業(yè)級(jí)應(yīng)用在低硬件的機(jī)器上跑得比高硬件配置的NT/2k快.
2 系統(tǒng)的可增值性與歷史兼容性
一個(gè)設(shè)計(jì)優(yōu)良的操作系統(tǒng)應(yīng)該有一個(gè)精簡(jiǎn)和一致的構(gòu)造,在添加新的功能時(shí)不必破壞原有的結(jié)構(gòu),而且在后繼發(fā)展中能夠保持前后一致性.Unix由于當(dāng)初設(shè)計(jì)時(shí)的科學(xué)性,以致于20多年的時(shí)間內(nèi),沒(méi)有在設(shè)計(jì)思想上做過(guò)大的變動(dòng).雖然Unix有很多的版本,但是通過(guò)Posix標(biāo)準(zhǔn),這些系統(tǒng)在源代碼上保持高度的兼容.
與之相比,windows的幾乎每個(gè)操作系統(tǒng)的框架設(shè)計(jì)都顯得十分的隨意,幾乎不考慮硬件有了新的發(fā)展后,會(huì)出現(xiàn)什么問(wèn)題.windown16位和32位兩個(gè)時(shí)期的操作系統(tǒng)出現(xiàn)明顯的""代溝"",作為一個(gè)好的os,這種硬件上的差異是應(yīng)該由其本身來(lái)考慮的,而不是把問(wèn)題交給二次開(kāi)發(fā)者,比如定義一堆PSZ,LPSZ的指針,將來(lái)64位時(shí)代, 大概要出現(xiàn)LLPSZ了:)
3 GUI 圖形用戶界面
Linux的GUI建立在X-WINDOWS的基礎(chǔ),這是與windows的GUI完全不同的一種架構(gòu)windows的GUI是通過(guò)應(yīng)用程序直接調(diào)用winows底層的GUI函數(shù).或者說(shuō)這是一種垂直的關(guān)系.而Linux的GUI是應(yīng)用程序通過(guò)socket向X-WINDOW server發(fā)送請(qǐng)求實(shí)現(xiàn)的,只有X server在真正的寫屏幕.或者說(shuō)這是一種平行的關(guān)系.后者的方式帶來(lái)更高的系統(tǒng)穩(wěn)定性,因?yàn)閳D形顯示系統(tǒng)崩潰,對(duì)于Linux來(lái)說(shuō),只不過(guò)是死掉一個(gè)進(jìn)程而已,而對(duì)windows來(lái)說(shuō)會(huì)導(dǎo)致整個(gè)系統(tǒng)的崩潰.當(dāng)然X-window的開(kāi)銷要比windows的方式大,但是由于硬件的發(fā)展X-window在穩(wěn)定性上的優(yōu)點(diǎn)會(huì)將會(huì)彌補(bǔ)速度上微不足道的差異。
#p#
4 應(yīng)用開(kāi)發(fā)環(huán)境
Linux上的開(kāi)發(fā)工具沒(méi)有windows的容易入門,并不代表Linux上的開(kāi)發(fā)環(huán)境比windows 差,其實(shí)linux編程入門慢,但是一旦熟悉了,以后就很少需要補(bǔ)充新的概念,與之相比,微軟用一些很“簡(jiǎn)便”的編程概念吸引你,然后很快的淘汰這些概念,強(qiáng)迫你學(xué)習(xí)新的概念,你發(fā)現(xiàn)很多時(shí)間花費(fèi)在氣喘噓噓的跟著微軟后面跑.你在這方面花費(fèi)的時(shí)間遠(yuǎn)遠(yuǎn)超過(guò)你去學(xué)習(xí)linux編程的時(shí)間.
另一方面,Linux上IDE的開(kāi)發(fā)工具也在成長(zhǎng),最終會(huì)吸引更多的應(yīng)用開(kāi)發(fā)工程師
5 技術(shù)上的發(fā)展?jié)摿?/P>
windows現(xiàn)在的技術(shù)架構(gòu)基本上走進(jìn)了一個(gè)死胡同,很難有大的創(chuàng)新.除非提出一個(gè)完全不同的系統(tǒng),然后在里面做個(gè)win32子系統(tǒng),以兼容現(xiàn)有的程序.就像在nt上搞win16子系統(tǒng)一樣:),并且體積再擴(kuò)大一倍.
對(duì)于linux來(lái)說(shuō),一個(gè)很好的架構(gòu)放在哪里,現(xiàn)在主要是填充內(nèi)容,豐富應(yīng)用.在可以預(yù)見(jiàn)的時(shí)間內(nèi),windows無(wú)法在架構(gòu)上超過(guò)Linux.
6 多種平臺(tái)互連的影響
如果linux在嵌入式應(yīng)用中取得了成功,那么將來(lái)就會(huì)對(duì)臺(tái)式機(jī)市場(chǎng)形成外圍的壓力.隨著PC機(jī)的控制與網(wǎng)絡(luò)能力逐步融合到家電和傳統(tǒng)設(shè)備中去,這一天一定會(huì)出現(xiàn)的.微軟以下壓上的策略(用win9x的市場(chǎng)優(yōu)勢(shì)推win nt)會(huì)在Linux上重演
結(jié)束語(yǔ)
手也打酸了,最后我用最近看到的一段評(píng)論結(jié)束這篇文章,好像是這么說(shuō)的linux就像internet一樣,在開(kāi)始的時(shí)候發(fā)展較慢,一旦過(guò)了起步階段,就會(huì)取得驚人的發(fā)展.
【編輯推薦】