快捷搜索:

从程序员的角度看Linux和windows的对比

本人在Unix SYS5,DOS,Windows3.x,windows9.x/NT 和Linux几个不应时期盛行的OS上写过法度榜样.在Linux和windows的比较中,我主如果从一个法度榜样员的角度来看的。

一 系统架构的比较

1 内核

(1) 内核的弹性

Linux的内核体现出了高度的可设置设置设备摆设摆设性和自力性,主如果完成:IO驱动设

备治理,TCP/IP,以及义务调整.Linux的标准内核宣布版本有40~50MB,而我

现在在一些评估板上试验的嵌入式Linux系统(应用arm或M68K系列的CPU)

只用到了2MB,同样实现了收集功能和完备的义务调整,这使得Linux可以适

用于从高端办事器到嵌入式利用的各个等级的谋略平台上,与之比拟,windows 没有明确的内核观点.windows只得当台式机,NT从未真正的打入高端办事器,WinCE也碰到了一些布局性的艰苦.

(2) 内核的义务治理

衡量一个内核的紧张指标是多义务情况下的安然性和义务调整的效率.

Linux在这方面承袭了Unix的优点.而win9.x(包括winme)从来就没有实现过安然的多义务情况,NT/2K 勉强做到了安然性,然则效率照样不敢奉承,我曾今将一个多串口并发驱动的利用法度榜样改写成多线程的要领,蓝本盼望前进处置惩罚速率,实际上速率低落了2到3倍.这也就不难理解为什么同样的企业级利用在低硬件的机械上跑得比高硬件设置设置设备摆设摆设的NT/2k快.

2 系统的可增值性与历史兼容性

一个设计精良的操作系统应该有一个精简和同等的构造,在添加新的功能时不必破坏原有的布局,而且在后继成长中能够维持前后同等性.Unix因为当初设计时的科学性,乃至于20多年的光阴内,没有在设计思惟上做过大年夜的更改.虽然Unix有很多的版本,然则经由过程Posix标准,这些系统在源代码上维持高度的兼容.

与之比拟,windows的险些每个操作系统的框架设计都显得十分的随意,险些不斟酌硬件有了新的成长后,会呈现什么问题.windown16位和32位两个时期的操作系统呈现显着的""代沟"",作为一个好的os,这种硬件上的差异是应该由其本身来斟酌的,而不是把问题交给二次开拓者,比如定义一堆PSZ,LPSZ的指针,将来64位期间, 大年夜概要呈现LLPSZ了:)

3 GUI 图形用户界面

Linux的GUI建立在X-WINDOWS的根基,这是与windows的GUI完全不合的一种架构windows的GUI是经由过程利用法度榜样直接调用winows底层的GUI函数.或者说这是一种垂直的关系.而Linux的GUI是利用法度榜样经由过程socket向X-WINDOW server发送哀求实现的,只有X server在真正的写屏幕.或者说这是一种平行的关系.后者的要领带来更高的系统稳定性,由于图形显示系统崩溃,对付Linux来说,只不过是逝世掉落一个进程而已,而对windows来说会导致全部系统的崩溃.当然X-window的开销要比windows的要领大年夜,然则因为硬件的成长X-window在稳定性上的优点会将会增补速率上微不够道的差异.

4 利用开拓情况

Linux上的开拓对象没有windows的轻易入门,并不代表Linux上的开拓情况比windows 差,着实linux编程入门慢,然则一旦认识了,今后就很少必要弥补新的观点,与之比拟,微软用一些很“简便”的编程观点吸引你,然后很快的淘汰这些观点,逼迫你进修新的观点,你发明很多光阴花费在气喘嘘嘘的随着微软后面跑.你在这方面花费的光阴远远跨越你去进修linux编程的光阴.

另一方面,Linux上IDE的开拓对象也在生长,终极会吸引更多的利用开拓工程师

5 技巧上的成长潜力

windows现在的技巧架构基础上走进了一个逝世胡同,很难有大年夜的立异.除非提出一个完全不合的系统,然后在里面做个win32子系统,以兼容现有的法度榜样.就像在nt上搞win16子系统一样:),并且体积再扩大年夜一倍.

对付linux来说,一个很好的架构放在哪里,现在主如果添补内容,富重利用.在可以预见的光阴内,windows无法在架构上跨越Linux.

6 多种平台互连的影响

假如linux在嵌入式利用中取得了成功,那么将来就会对台式机市场形成外围的压力.跟着PC机的节制与收集能力慢慢交融到家电和传统设备中去,这一天必然会呈现的.微软以下压上的策略(用win9x的市场上风推win nt)会在Linux上重演

停止语

手也打酸了,着末我用近来看到的一段评论停止这篇文章,似乎是这么说的linux就像internet一样,在开始的时刻成长较慢,一旦过了起步阶段,就会取得惊人的成长.

您可能还会对下面的文章感兴趣: