Linux自1991年诞生以来,经Internet上广大网友的不断改进和完善,得到了迅速发展。正是这种自由、开放的操作系统,使得世界操作系统有了长足的进步。如今,使用Linux的用户越来越多,当然,有的用户还在试探中。本文将从系统要求、使用界面、应用程序、技术支持和发展前景五个方面对Linux和Windows做一些比较。
1、 系统要求
安装Windows时,对机器的配置要求是比较高的,而且版本越高对硬件配置的要求也越高。若是安装服务器(如:WINDOWS NT)的话,对硬件配置要求就更高了。这就意味着硬件成本随着版本的升级而增高。当然,问题的另一面是:WINDOWS对硬件的支持做得很好,它的即插即用的功能很强,安装硬件也很方便。同时,硬件的驱动程序也很多。这样对于愿意在硬件上投资的用户而言,自然是使用很方便的;但对于硬件资源跟不上发展的用户而言,就只能望洋兴叹了。
与此正好相反,Linux对机器配置要求不高。由于Linux是基于Intel386的CPU和UNIX操作系统开发的,所以Linux支持Intel386以上的所有'"x系列的CPU的计算机(后来,Torvalds对Linux进行了重新设计,减少了这一操作系统对特定芯片的依赖)。换句话说,就是一台386的计算机也可以安装Linux并可作为服务器使用。例如:如果一个普通的BBS(电子公告栏)站就可以使用普通微型计算机并以为其支持的操作系统Linux系统,即使如此,同时上线人数最大可达到200人以上,而这对于Windows系统来说,是不可思议的。因此对于手中已有过时的或低档次的计算机而又囊中羞涩不便于更新硬件的用户来说,可以最大限度地发挥物尽其力的作用。当然,这并不是说Linux只适用于过时的或低档的计算机。恰恰相反,Linux对高档的计算机同样适合,而且使用起来更加得心应手。这对进一步普及计算机的应用,有着不可替代的作用。
由于Linux不是主流桌面操作系统,所以它所支持的硬件设备,目前不是很广,对许多最新的声卡、显卡都支持的不太好,而且设备的驱动程序也没有及时的提供。另外,在Linux下安装硬件的驱动程序不很方便。这对初学者及习惯了Windows的用户来说,的确是一个困难。不过,随着Linux的发展,越来越多的硬件生产厂商都声明支持Linux并且Linux自身也在不断地提高即插即用的功能。2000年9月在北京召开的Linux国际研讨及展示会上,诸多厂商联袂推出的Linux最新版本驱动及演示软件就足以说明这一点。相信,不久的将来使用Linux会像使用Windows一样简便。
2、 使用界面
Windows使用了图形交互界面,这是Windows成功的地方。它把DOS中的绝大多数命令都移植到图形界面中去,并支持鼠标操作,使得用户只需简单的滑动鼠标就能完成诸多的操作,替代了原来繁琐的键盘输入工作。大大减少了用户工作的劳累程度。
Windows系统也保存了命令操作界面。如:在Windows95/Windows98中,依然提供了DOS,在Windows2000中,提供了“命令提示符”。这为某些特定的操作提供了方便的环境。
然而,正是这种易用性使得Windows变得脆弱起来。常常会因为操作速度比较快或打开的窗口较多而死机,或者无故的“非法操作”等等,这些问题使得一些用户对Windows感到失望。这正是其不够完善的地方。
相形之下,Linux提供了两种操作界面:字符界面和图形界面。并以字符界面为主,提供了多个虚拟控制台,可供多个用户同时登录使用。丰富的键盘命令使得Linux拥有强大的处理能力。虽然以字符界面为主,但提供的Shell环境却是多样的,如:Bourne Shell,C Shell,Korn Shell等等。不同的Shell有不同的优点,可以适应不同的人员使用。
除此之外,Linux还提供了X-Window。X-Window是UNIX类操作系统的标准图形接口。它采用的是“客户机/服务器”模式进行管理系统。Linux的X-Windows也使其具有向桌面应用发展的能力,并保持其稳定的优良特性,为桌面应用提供了一个极佳的解决方案。另外,X-Windows拥有许多不同风格的图形界面,如Gnome,KDE,FVWM,XTeam等等,这些精美的图形界面,是Windows系统远远达不到的。为了使用方便,目前Linux的图形界面操作越来越靠近Windows,这样可以使一些Windows的用户极为方便地转到Linux下。另外,许多软件开发者正致力于Linux下的图形界面应用开发,使Linux与更多的操作系统能够相互兼容。
Linux界面的多样性,使得用户不易掌握,尤其是对那些初学者和习惯Windows的用户,因为这样有碍于用户之间的交流,因此在一定程度上对Linux的发展有所限制。当然,这仅是对初学者而言,对于那些熟练使用Windows的人来说,这种多样性,为他们提供了较大的选择空间,灵活多样的界面可以使用户方便自如地选择自己所要的界面形式和使用方式。
3、 应用软件
一个操作系统的好坏,不仅要求系统本身安全、稳定,使用方便,更重要的是要有丰富的应用软件支持,如:多媒体、数据库、开发包等等。
Windows的应用程序是相当丰富的,而且安装简便。这正是Windows获得成功的最主要原因。当然,这也与Windows的定位有很大的关系。微软公司把它的主要操作系统定位在家庭使用,并提供相应的软件开发工具和丰富的系统资料,这样,普通用户也能通过其开发工具容易的开发出自己所需求的小软件。Windows还有一个重要的应用就是作为游戏平台。绝大多数的游戏多被移植到该平台下,广大的游戏爱好者不得不选择Windows作为其PC上的游戏平台。
另外,微软公司提供了一系列的Windows平台,能够适应不同的需求,许多软件公司都以Windows为开发平台,这也促使商业用户首先考虑使用Windows系统。然而,正是由于这种商业性质,Windows及其该平台上的应用软件不能够提供其源代码,使得系统和软件的漏洞得不到及时的修正;从移植性方面考虑,因为是基于Windows开发的软件,使用的是Windows的专用开发包及API(应用程序接口函数),较难把该平台下的应用程序移植到其它的平台上。一般来说,除了重新写过代码以外,没有别的移植办法。而且,Windows的不同版本之间,软件也存在一定的兼容性问题。可见,Windows软件的移植性是较弱的。
Linux的套件中带了许多的应用软件,而且是免费的,并且不像Windows的应用软件那样,要花巨额的费用。另外,系统及软件的源代码是开放的,用户可以根据自身的需要,修改其中的不足,提高适用性和兼容性,况且这种修正是十分及时和有针对性的。
Linux是使用标准的C语言编写的,其本身就具备了很好的可移植性。并且,Linux是类UNIX的操作系统,UNIX的许多应用软件都可以移植到该平台上。当然,Linux平台上的优秀软件只需对其源程序作一些简单地修改,就可以运行在不同的系统平台上,这也包括Windows系列。这些特点,吸引着广大的Linux爱好者及程序设计爱好者。
Linux的不足之处在于:对多媒体的支持不够,更不适合作为游戏平台,安装软件更是麻烦。另外,Linux提供的这些图形界面环境,每一种都有自己的一套开发包和相应的函数库,如此一来,在不同的环境下开发的应用软件就不能相互兼容,给程序员和用户带来了极大的不便。Linux下的开发包的使用也并不容易,不能轻松掌握,它要求程序员熟悉Linux的环境,并掌握相应的库函数。这样,要花去很长的时间来学习,延长了软件的开发时间。
这些不足,主要是由于Linux没有统一软、硬件两方面契约,从而使其适应性受到限制。不过,随着众多计算机生产厂商的加盟,以及Linux众多爱好者的努力,Linux的应用软件将日趋增多,安装、使用、维护也将日趋方便,软件的开发自然也会日趋简单起来。
4、 技术支持
技术支持是目前用户最关心的一个问题。微软的技术支持做得比较完善。虽然微软产品的漏洞很多,但是都有相应的补丁包发布,而且代码统一管理和维护,使得其售后服务在很大程度上有保证。目前,微软公司也把其相关产品(如Windows2000)的源代码提供给她的主要消费者(公司),允许这些消费者阅读并发现其中的不足,然后把相应的情况反馈回微软公司,由微软公司统一进行修正。这样一来,消费者的利益得到了最大限度的保障。当然,从效益上说,对企业有一定的负面影响。
在此之前,微软公司对其产品的源代码采取了保密措施,其中的许多漏洞不能得到及时发现和解决,给消费者(公司)带来了一定的损失。相比之下,Linux是一个自由的系统软件,由广大Linux爱好者和程序员来维护,其源代码并不属于某个公司或某个人所有,而是“公共财产”。Linux提倡源代码开放,虽然不是所有的Linux用户都能读懂源代码,都能通过改写源代码来解决其中的漏洞。但是,由于源代码的开放性,使得全世界的计算机用户、开发商和软件爱好者都参与到改进和完善源代码的队伍中来,并通过互联网实时发布最新版本和修改信息。这样,修补漏洞的速度很快,方法也很多,还能及时地解决一些重大的安全问题,为企业级用户提供最直接的技术支持,直接影响着企业的利益。同时,为了适应企业的发展,企业自身也可以进行代码的维护,从而在时间上间接地提高了企业的利益。
Linux的内核发展很快,Internet上有许多的相关网站提供了最新内核下载。用户可以及时升级系统内核,Internet就是Linux的一个最好的技术支持站点。另外,现在许多的Linux公司都提供技术支持,用户也可以从相应的Linux生产厂商那儿得到更直接的技术服务。
5、 发展前景
微软公司的Windows系列产品占据着大部分桌面应用的市场,在整个服务器市场上,也占据着“半壁江山”。随着Windows的不断更新,其功能越来越强,操作越来越简单,使用者的工作效率越来越高,Windows的发展前景是广阔的。
同时,随着微机的普及应用,特别是随着Internet的发展,Linux的应用前景也会越来越广阔。这是因为Linux从Windows中吸收了大量的成功经验,并在诸多大公司的支持和参与下,Linux正以百分之二百的速度增长。其发展前景是十分乐观的。因此,Windows和Linux之间将会是一种“相互竞争相互补充”的关系。一方面,Windows继续以强有力的市场占领先于世界微机操作系统;另一方面,Linux则以自由开放和面向平民而使系统功能不断完善和提高,从而在更广阔的用户市场中进军。
总结
Windows和Linux的竞争是无法停止的。Windows有其自身的优点,Linux也有其天生丽质的一面。各自的缺点也在所难免。通过上述的简单介绍和分析,对这两个操作系统有了一定的感性认识。需强调的是Linux的开放性和对Linux的源代码进行分析具有更深远的意义:Linux的出现不仅仅是多一种操作系统,Linux系统的分析开发也不仅仅是多一批开发操作系统的人才,Linux源代码的开放,使更多人对Linux系统进行分析,对操作系统进行开发,这将有助于促进和加快国产操作系统的诞生和发展。这,恰恰是Windows永远无法比拟的。
本文来源:互联网.
Linux 实际上只是内核;它实现了多任务和多用户功能,管理硬件,分配内存,激活应用程序的运行。
对初学者来说,最重要的是要明白奇数的内核版本(比如 2.3、2.5、2.7)是实验用的、正在开发的内核。 稳定的、正式发行的内核版本号是偶数的(比如 2.4、2.6、2.8)。
对那些熟悉图形环境的人来说,Linux 服务器初看可能比较原始。但是Linux开发更多关注的是它的内在功能而不是表面上的东西。即使是在纯文本的环境中,Linux 同样拥有非常先进的网络、脚本和安全能力。执行一些任务所需的某些表面上看起来比较奇怪的步骤是令人费解的,除非您认识到 Linux 是期望在网络上与其他 Linux 系统协同执行这些任务。Linux 的自动执行能力也很强,只需要设计批处理文件就可以让系统自动完成非常详细的任务。Linux 的这种能力来自于其基于文本的本质。
linux下没有VS这样的IDE,当然你要用eclipse或netbeans也可以了,不过真正的linux hacker是不会用的。
通常的编程环境是vim/emacs + gcc + gdb + make
每个都很强大,不过不像VS那样有图形界面,基本是命令解决的,刚开始学习可能有点困难,熟悉之后会很爽的
接下来要了解linux的系统调用等API,开始读<>是可以的,还有<>也是必读之书,另外unp也是应该读的。
如果要开发有图形界面的软件的话,就学学GTK+吧,是一个纯C的控件库。
熟悉编程之后,就可以尝试研究内核咯。
刚开始学Linux的话,一定装一个系统,哪怕在虚拟机上,像那些基本的命令,不是背下来的,而是用熟了自然记住了。如果连系统都不熟悉的话,就开始编程的话,貌似就有点空中楼阁的意思了。
linux 和 windows 下都各自有自己的一套函数库,这部份都不一样,但是标准C函数那就是一样的.
Linux主要因为三点:开源可裁剪,硬件要求没WIN高,在同等硬件配置下LINUX运行快且稳定;
用到的范围很很广,我不是瞎说什么,WIN主要集中到办公方面,因为WIN窗口系统做的好,但linux发展不是以办公为目地的;像企业服务器,交换机,高端路由等等用到几乎是嵌入式系统,当然这个可能太高端了,小的方面也是无处不入的,手机,相机,MP3/MP4,个人络端设备用到的都是嵌入式;
总结下:LINUX开发范围是很广的,除了办会用的WIN操作系统,嵌入式几乎占据了;
当然更重要的是:可以认知到操作系统是什么,比学win更直接
linux 下的c和c++开发一般不依赖某个IDE环境,一般直接用底层函数,能更好的积累c知识;
windows下的业务软件开发更多的侧重业务经验,技术积累不多,虽然应用广,但做不深;
如果决心在技术领域钻研建议选linux多研究c,如果自己特点侧重业务而结合技术,那么windows下开发也挺好,但要特别注意积累业务只是和经验。
linux下的开发一般分为三种:
1。linux服务端程序开发;
做这个需要较深的积累和持续的新技术学习,上手容易,深入难,应用面有一点窄,如果能做到高级非常吃香,因为这样的开发都是一个持续服务性系统的基石,一般用c语言;再往上发展可以做架构师。
2。linux嵌入式开发(包括底层驱动);
目前应用比较多的linux开发,但是不如linux服务端开发有深度。
3。界面等相关开发。
应用不多,没多大技术含量,适合有美术功底的人。
具体做哪个合适要根据自己的性格特点来定,无论是哪个坚持做好都不错;但个人认为做linux服务端开发有挑战、有技术深度、有职业发展深度。