红联Linux门户
Linux帮助

Linux/GNU vs Windows

发布时间:2007-05-13 09:48:40来源:红联作者:Reference
  Linux/GNU 可谓后起之秀啊。特别是98年以后,其飞快地发展。这两年更是变得越来越成熟了。昔日不屑于它的微软也不得不承认其压力。关于Linux与Windows的争论也是很有意思并且很多的。支持Linux而鄙弃Windows的和钟爱Windows而看不起Linux的之间的争论最为激励,其实主要也在他们之间啦。做为一个学习者,我从我的角度来学习并且认识两者的区别。我不是专家,也不是什么老鸟,所以,不过是乱说罢了。谁知道错的可要帮我指指正哦

  基本认识

  Windows显然为更多的人所认识,其中有其发展有趣的事,以后慢慢讲。相比之下,linux是这几年才成为热门词汇的,虽热,却不一定熟悉。好比C#和C,别看差不多,其实还是有根本差距的。Linux和Windows从最基本的差异,成就了他们不同的用途。如果说Windows是微软他们家的,Linux是大家的,这不算过分吧。因为大家对Windows认识的可能比我都多,我就尽量偏重于写我对linux的认识吧。

  如果你查阅Linux/GNU的发展史,你会发现,98年是非常特别的一年。斗胆说,98年之前,微软完全可以不care于Linux,但98年后,微软有理由认为,Linux是或者会是它的对手。98年,几乎全球较大的数据库厂商都支持了Linux。有了大型的数据库支持,意味着Linux能实现企业级的应用,Linux已经发展到了先对成熟的时候了,Linux在某些领域已经成为厂商抢占商机的焦点了。伴随着Windows的快速发展,Linux也以超出人们想像的速度发展着。微软挣了很多钱,这是不可否认的,但是,从DOS到95,到98,NT,到ME,2000,xp,微软确确实实给电脑注入了血液,几乎可以说是生命了。没有Windows了,谁敢说我们不是可能还用着DOS,甚至DOS都没有的用,毕竟,UNIX不是个人所能承受的,高贵的Apple也不是一般人所用得起的。当然,Windows的成功要感谢Intel,就如同Intel的成功要感谢微软。两个都不被看好的公司,一个成了全球最大的软件供应商,一个成了最大的芯片供应商。Windows是基于Intel平台的。Linux不一样,Linux是跨平台的,这点使其在嵌入式上大放光彩。从内核的角度来说,Windows的微内核也许更有利于嵌入式,但平台依赖使开发复杂度大大提升了。另一方面,Linux从核心的特性注定了其较差的实时性,因为其是非抢占的系统。为什么会这样呢?较差支持的Linux却更加适合于嵌入式开放?个人觉得根本在于开源。嵌入式的芯片各种各样,大的小的公司,微软不可能都给其底层支持,因为Windows是不开放的系统---这里的不开放指的是Windows是商业软件,其对源码等非常敏感,并视其为私有财产。而Linux/GNU则Open,谁都可以开放底层驱动相应的芯片/硬件等。而且,Linux从开始就设计为支持广泛的硬件,没有平台依赖---当然也不是所有所有的硬件都支持啦。

  易用性

  对于一般人来说,Windows要容易得多。其一,系统内核差异所决定;其二,使用习惯的误导。先说后者。在Windows下,大家都知道安装软件就是运行/双击 Setup。exe或者Install。exe等。然后一路Next直到完成就可以了。这之前,你要花钱去买程序Or下载所谓的24小时实验用的破解的安装文件。Linux不一样,装过Linux的都知道,安装完Linux后要做的第一件事就是配置源。甚至,安装之前就配置,然后根据配置好的源和安装脚本就可以帮你安装好了。配置好更新的源后,安装卸载软件,一般就只要一条命令了。习惯了GUI的Windows用户有时很难接受CLI,但CLI有其优势是不容忽视的。恩,就一条命令,然后系统根据依赖关系自动查找软件包,自动下载并安装。貌似Linux很少有D版吧,呵呵,至少我是没有见识过。但,Linux的安装过程其实要比Windows复杂得多,不过系统自动完成而已。为什么会复杂很多,这就是系统内核的差异了。

  内核差异

  Windows系统采用的是微内核结构(micro kernel)。Linux系统采用的是单一内核结构。微内核结构只需要提供最基本的一部分操作,而其它本该系统完成的操作,却尽可能地被放在内核之外运行。微内核具有的灵活性是很明显的,比方上面说的安装软件,所有操作在内核之外可以完成,不用改变内核。系统过程也在需要的时候当作外部程序对待,比方说打印和网络服务,只有在需要的时候才运行。外部程序也先对独立,程序之间通过IPC(进程间通讯机制)进行交互。因为内核的功能只是最基本的,因此程序对内核的影响较小,程序间界限也比较清晰----程序间用IPC交互。而同样,因为把系统的功能放到了内核之外,也就造成了安全隐患。同时,程序先对独立,不利于整体优化,频繁的IPC过程,必然消耗一定的资源和性能。

  Linux采用的单一内核结构,其效率上要优于微内核。单一内核把系统应该有的操作都静态编译进入了内核空间。早期的Unix,由于使用了单一内核,使得每次更改硬件都要重新编译内核,并且内核越来越臃肿膨胀。如今的Linux内核允许动态调用模块,即在需要的时候再真正调入内核,所以先对来说要灵活很多。把系统的功能编译进入内核空间,有利于他们之间的交互,但不利于对单个的维护。当安装卸载软件时,系统就要对内核中的某些模块进行添加删除,所以,linux的过程要比Windows复杂。Linux的用户进程没有机会直接接触核心部分,都由系统调用来实现系统过程的。

  如果大概理解了Linux和Windows内核的差异,对于进一步认识他们在应用层的不同也就比较可以接受了。下次讲讲文件或者进程吧。很赞Linux的文件管理。
文章评论

共有 0 条评论