从程序员的角度看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 上重演
技术上的发展潜力现在的技术架构基本上走进了一个死胡同,很难有大的创新.除非提出一个完全不同的系统,然后在里面做个子系统,以兼容现有的程序.就像在上搞子系统一样:并且体积再扩大一倍 对于来说,一个很好的架构放在哪里,现在主要是填充内容,丰富应用在可以预见的时间内,无法在架构上超过.多种平台互连的影响如果在嵌入式应用中取得了成功,那么将来就会对台式机市场形成外围的压力随着机的控制与网络能力逐步融合到家电和传统设备中去,这一天一定会出现的.微软以下压上的策略(用win9x的市场优势推winnt)会在linux上重演
结束语
最近看到的一段评论结束这篇文章,好像是这么说的:linux就像internet一样,在开始的时候发展较慢,一旦过了起步阶段,
就会取得惊人的发展。
文章引用自:http://chjw.blog.hexun.com/2405097_d.html