,~/vsZ.{ `5J0S LUPA开源社区#fjY*Lj$U5GYRBcc

本人在Unix SYS5,DOS,Windows3.x,windows9.x/NT 和Linux几个不同时期流行的OS上写过程序.在Linux和windows的对比中,我主要是从一个程序员的角度来看的。&/Qv2U&x&M ]

o6q B&{(J|I9d~:Lt   一 系统架构的对比 LUPA开源社区 pK1l^6`J['D

i/DoJ0J|s?r   1 内核 LUPA开源社区,zRcD4mh_(s

LUPA开源社区0i}+bW,?I

(1) 内核的弹性LUPA开源社区 OjI)bE;X

LUPA开源社区;[ ?$fPyhxG

Linux的内核表现出了高度的可配置性和独立性,主要是完成:IO驱动设LUPA开源社区5i7Arr'MI;lyP^

'ho2cy$n9]QM#z   备管理,TCP/IP,以及任务调度.Linux的标准内核发布版本有40~50MB,而我

现在在一些评估板上试验的嵌入式Linux系统(使用Arm或M68K系列的CPU)ga�KY/*H!v

GJ'S+t&h^a+U   只用到了2MB,同样实现了网络功能和完整的任务调度,这使得Linux可以适LUPA开源社区:E.eZ /I"S

LUPA开源社区'SXst�{2I2F3lr

用于从高端服务器到嵌入式应用的各个等级的计算平台上,与之相比,windows 没有明确的内核概念.windows只适合台式机,NT从未真正的打入高端服务器,WinCE也遇到了一些结构性的困难.

V3?jVQ9u};a/W

rV^NK2b#R5r(X   (2) 内核的任务管理

,~/vsZ.{ `5J0S LUPA开源社区#fjY*Lj$U5GYRBcc

衡量一个内核的重要指标是多任务环境下的安全性和任务调度的效率.

;JLg~-wD M$x FG5n+t.D4B.PU   Linux在这方面继承了 Unix的优点.而win9.x(包括winme)从来就没有实现过安全的多任务环境,NT/2K 勉强做到了安全性,但是效率还是不敢恭维,我曾今将一个多串口并发驱动的应用程序改写成多线程的方式,原本希望提高处理速度,实际上速度降低了2到3倍. 这也就不难理解为什么同样的企业级应用在低硬件的机器上跑得比高硬件配置的NT/2k快.

LUPA开源社区"J)|B0G)^hH

:VZ8j)t].|   2 系统的可增值性与历史兼容性 LUPA开源社区fBjgi1d/Cw)OI#]

r%evVBX)i6D'c   一个设计优良的操作系统应该 有一个精简和一致的构造,在添加新的功能时不必破坏原有的结构,而且在后继发展中能够保持前后一致性.Unix由于当初设计时的科学性,以致于20多年的 时间内,没有在设计思想上做过大的变动.虽然Unix有很多的版本,但是通过Posix标准,这些系统在源代码上保持高度的兼容.

)|zpE5V0n7pV@ LUPA开源社区}�`)c ?5FG6Vk

与之相 比,windows的几乎每个操作系统的框架设计都显得十分的随意,几乎不考虑硬件有了新的发展后,会出现什么问题.windown16位和32位两个时 期的操作系统出现明显的""代沟"",作为一个好的os,这种硬件上的差异是应该由其本身来考虑的,而不是把问题交给二次开发者,比如定义一堆 PSZ,LPSZ的指针,将来64位时代, 大概要出现LLPSZ了:)LUPA开源社区2_M9]%VYD/

'Y"iEd0a   3 GUI 图形用户界面 LUPA开源社区 zcj eJt%}

2U;FRZ/h   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 应用开发环境 LUPA开源社区P,U$H*My*?zd LUPA开源社区7nG u3d"QAZ

Linux上的开发 工具没有windows的容易入门,并不代表Linux上的开发环境比windows 差,其实linux编程入门慢,但是一旦熟悉了,以后就很少需要补充新的概念,与之相比,微软用一些很“简便”的编程概念吸引你,然后很快的淘汰这些概 念,强迫你学习新的概念,你发现很多时间花费在气喘嘘嘘的跟着微软后面跑.你在这方面花费的时间远远超过你去学习linux编程的时间.

R0U{%yW

,nsWjS   另一方面,Linux上IDE的开发工具也在成长,最终会吸引更多的应用开发工程师

o$wcS8u8l(g/f LUPA开源社区&j:qWaL/ AA"@

5 技术上的发展潜力

windows现在的技术架构基本上走进了一个死胡同,很难有大的创新.除非提出一个完全不同的系统,然后在里面做个win32子系统,以兼容现有的程序.就像在nt上搞win16子系统一样:),并且体积再扩大一倍.0g_3Y:oJG%U

9U)nB#kI6Aq%ywN   对于linux来说,一个很好的架构放在哪里,现在主要是填充内容,丰富应用.在可以预见的时间内,windows无法在架构上超过Linux.LUPA开源社区N9g0P/x+f

LUPA开源社区Lp/k�?*LL,^eW3M

6 多种平台互连的影响 LUPA开源社区(RR g,uQ8Ri/^

LUPA开源社区l~3PSj

如果linux在嵌入式应用中取得了成功,那么将来就会对台式机市场形成外围的压力.随着PC机的控制与网络能力逐步融合到家电和传统设备中去,这一天一定会出现的.微软以下压上的策略(用win9x的市场优势推win nt)会在Linux上重演LUPA开源社区D3W H(AQ5r`

LUPA开源社区9YQ1P&/c&r

结束语

bG$g3d#E!o Vv WP%E:G)M+z!wT drs   手也打酸了,最后我用最近看到的一段评论结束这篇文章,好像是这么说的linux就像internet一样,在开始的时候发展较慢,一旦过了起步阶段,就会取得惊人的发展.

gui与windows和linux但关系,从程序员的角度看Linux和windows的对比相关推荐

  1. “不会Linux,怎么当程序员?”骨灰级程序员:干啥都不行。

    说起优秀程序员的必备技能,我想大家都可以说很多,比如:数据结构.算法.数学.编程语言等等. 但是,你可能会忽略了每一个程序员都应该掌握的技能:Linux. 想一想,我们日常学习.求职.工作场景的中,你 ...

  2. “不会Linux,怎么当程序员?”骨灰级程序员:你的代码正在毁掉你!

    说起优秀程序员的必备技能,我想大家都可以说很多,比如:数据结构.算法.数学.编程语言等等. 但是,你可能会忽略了每一个程序员都应该掌握的技能:Linux. 想一想,我们日常学习.求职.工作场景的中,你 ...

  3. Windows程序员进阶应该看的那些书

    Windows程序员进阶应该看的那些书 业内有一个普遍的现象,一般Windows程序员在写了3-5年的代码的时候会有一段迷茫期,因为这个时期的程序员已经掌握了常用的一些编程技巧,对某种编程语言已经比较 ...

  4. 【Linux 中国】最适合程序员的 10 款 Linux 发行版

    最适合程序员的 10 款 Linux 发行版 我们为程序员和开发人员总结了 2022 年最好用的 10 款 Linux 发行版,以便他们开展日常工作和个人项目. 由于工作和项目需要,程序员和开发人员会 ...

  5. 为什么3年的Java高级程序员薪水仅仅8k-10k,而一个Linux底层C语言程序员两年经验就敢要1...

    为什么80%的码农都做不了架构师?>>>    为什么3年的Java高级程序员薪水仅仅8k-10k,而一个Linux底层C语言程序员两年经验就敢要10k的薪水?   由于目前国内嵌入 ...

  6. linux程序没有对日志文件写的权限_好程序员云计算培训分享Linux文件权限简单说明...

    好程序员云计算培训分享Linux文件权限简单说明,在 Linux 中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录.通过设定权限可以从以下三种访问方式限制访问权 ...

  7. 如何成为Linux平台C语言程序员(转)

    目标: 成为合格的Linux平台C语言程序员 技能: 掌握C语言基本语法,掌握Linux平台系统调用,熟悉Linux平台开发流程,掌握anjuta以及glade使用方法,了解kernel结构编写高质量 ...

  8. Java程序员最常用的Linux命令

    大家都知道,Linux系统提供了非常多非常多的命令或工具,这些命令都各有所长,都是系统需要的.但我们精力有限,要掌握全部的命令不太现实,所以只需要掌握其中部分常用的命令即可.这里,我就从一个Java程 ...

  9. linux与mac os程序员,程序员为什么要使用或推荐Mac OS X?[关闭]

    我从1984年开始就在Mac上进行开发,从1989年以来就一直在* nix上进行开发,从1990年开始就一直在Windows上进行开发.拿另一半. 也许您可以在Mac上做的某些事情在Windows / ...

最新文章

  1. 人工智能如何驱动实体经济?六大领域展望
  2. LVS的NAT工作模型详解
  3. find = in a string
  4. OAuth认证与授权
  5. MyBatis学习总结(17)——Mybatis分页插件PageHelper
  6. 设置QtreeWidget水平滚动条
  7. 搜狐视频怎么更改头像
  8. 20175221 2018-2019-2 《Java程序设计》第一周学习总结
  9. numpy的科学计算(亲测)
  10. 判断触摸的点在那个 View上
  11. 初学Python选什么版本?
  12. resize2fs调整ext2\ext3\ext4文件系统的大小
  13. pb11.5调用系统打印机
  14. audio接线图解_图文:主板跳线(排线)连接技巧HD AUDIO连线接法
  15. 手游后劲不足,“体验”会是端游发展的一张王牌吗?
  16. xv6的sleep和wakeup
  17. java中PO、BO、VO、DTO、POJO、DAO是什么?
  18. HM二次开发 - Data Names及其使用
  19. 除了we tool还有哪些免费安全好用的微信群发软件?这两个软件比we tool好用!
  20. 苹果大战FBI,四个回合的波折之后有哪些启示?

热门文章

  1. 学姐毕业前,被山寨期刊网站诈骗六千元
  2. asio中strand的post和dispatch的区别
  3. i9 12代处理器和i7 9代区别
  4. 高通骁龙660对比骁龙653:性能有哪些提升?
  5. “打盹“, “失眠“,“熬夜“和“睡觉“等,英语怎么说?
  6. Blender图解教程:新手练习-酒瓶
  7. ZEMAX 图导入CAD
  8. 直播间搭建解决方案有哪些
  9. 诸神的黄昏,留给国产手机小厂的时间真的没有了
  10. 解决springboot中出现Access denied for user ‘‘@‘localhost‘ (using password: NO)问题