1.6 Linux的特点

1.6.1 开放性

开放性是指Linux系统遵循世界标准规范,特别是遵循开放式系统互连(Open System Interconnection,OSI)国际标准。Linux是开放源代码自由软件的代表,作为自由软件,主要包括以下两个特点。

  • 开放源码并对外免费提供。
  • 使用者可以按照自己的需要自由修改、复制和发布程序的源代码,并公布在Internet上。

因此,用户可以从互联网上很方便地免费下载Linux操作系统。由于可以方便地得到Linux源代码,所以用户可以清楚地了解操作系统的内部逻辑结构。这样,当出现一些问题时,用户就可以准确地查明故障原因,及时采取相应对策。在必要的情况下,用户可以自己编写程序,及时地为Linux打补丁,以修补系统漏洞,这是其他操作系统所不具备的优势。另外,由于系统的源代码是开放的,所以用户可以了解系统的各个方面,不用担心系统会被预留“后门”。当然,用户要自己阅读或修改Linux系统源代码,必须具有相关的程序设计知识才行。对于普通的系统管理员用户,可以经常关注与Linux相关的网站,通过其他程序员编写的相关程序来构建自己的安全操作系统。除了系统内核外,在Linux上运行的绝大多数应用程序也是开放的,大都可以通过免费方式获取。因此,使用Linux操作系统,可以省去使用其他操作系统所必需的大笔费用。

1.6.2 多用户、多任务工作环境

所谓多用户,是指系统资源可以被不同用户使用,每个用户对自己的资源(如文件、设备)有特定权限,也互不影响;而多任务,是指计算机可以同时执行多个程序,而且各个程序的运行相互独立。Linux系统调用每一个进程平等地访问CPU,由于CPU的处理速度非常快,其结果是启动的应用程序看起来好像是在并行运行。事实上,从CPU执行一个应用程序中的一组指令,到Linux调用CPU再次运行这个程序之间只有很短的时间延迟,因此用户感觉不到。

只有很少的操作系统能提供真正的多任务能力,尽管许多操作系统声明支持多任务,但并不完全准确,如Windows等。而Linux则充分利用了x86 CPU的任务切换机制,实现了真正的多用户、多任务工作环境,允许多个用户同时执行不同的程序,并且可以给紧急任务以较高的优先级。

1.6.3 友好的用户界面

Linux为用户提供了字符界面和图形界面两种操作界面。Linux的传统用户界面(字符界面)是基于文本的命令行,即shell,它既可以联机使用,又可以在文件上脱机使用。系统管理员通过在字符界面中输入相关的控制、配置命令对操作系统进行控制。在字符界面下进行操作,要求操作人员要熟练记住Linux的相关指令(多达上千条)。Linux的图形界面又称为X Window系统。X Window的操作界面类似于微软的Windows界面,操作人员可以利用鼠标、菜单、窗口和滚动条等工具,方便地对系统进行操作。X Window界面给用户呈现了一个直观、易操作、交互性强、友好的图形化界面。尽管X Window界面直观、易操作,但是在很多时候,人们可能需要远程操作Linux服务器,这时,通过终端方式用字符界面进行操作,仍然是系统管理员的首选。

1.6.4 设备独立性

设备独立性是指Linux操作系统将所有的外部设备都作为文件来进行处理。在使用这些外部设备之前,只要将这些设备的驱动程序安装好,以后就可以像访问系统中的文件一样去访问这些设备,而不需要知道这些设备在系统中的具体存在形式。

Linux是具有设备独立性的操作系统,其内核具有高度适应能力,随着更多的程序员加入Linux编程,会有更多的硬件设备加入各种Linux中。这样,用户就可以与使用文件相同的方法来控制、使用这些设备。

由于用户可以免费得到Linux源代码,因此,有经验的用户也可以自己修改内核源代码,以便增加新的外部设备。

1.6.5 丰富的网络功能

完善的内置网络功能是Linux的一大特点,Linux在通信和网络功能方面优于其他操作系统,因为Linux就是依靠互联网快速发展起来的。其他操作系统不具备如此紧密地将内核结合在一起的网络连接能力,也不具备这些联网的灵活性,而Linux为用户提供了完善的、强大的网络功能。Linux免费为用户提供了大量支持Internet的软件,Internet是在UNIX操作系统领域中建立并发展起来的,因此在这方面使用Linux是相当方便的,利用Linux一个用户可以和世界上的任何其他用户通过Internet进行通信。用户可以通过使用一些Linux命令完成内部信息或文件的传输。Linux为系统管理员和技术支持人员提供了访问其他系统的窗口。通过这种远程访问的功能,一位系统管理员或技术人员能够有效地为多个系统服务,即使那些系统位于相距很远的地方。

1.6.6 丰富的应用程序和开发工具支持

Linux支持一系列的UNIX开发工具,目前几乎所有的主流程序设计语言都已移植到Linux上并可免费得到和使用,如C、C++、Fortran 77、ADA、Pascal、Modual 2和3、Tcl/TkScheme、SmallTalk/X等语言。

1.6.7 良好的可移植性

可移植性是指将操作系统从一个平台转移到另一个平台它仍然能按其自身的方式运行的能力。Linux是一种具有良好的可移植性的操作系统,它能够在从微型计算机到大型计算机的任何环境和平台中运行。可移植性为运行Linux的不同计算机平台与其他任何计算机进行准确而有效的通信提供了保障,不需要另外增加特殊的和昂贵的通信接口。

1.6.8 可靠的安全性

Linux操作系统采取了许多安全措施,包括对读、写操作进行权限控制,带保护的子系统、审计跟踪和内核授权,这为用户提供了必要的安全保障。