Linux操作系统是一款优秀的操作系统,支持多用户、多线程、多进程,实时性好,功能强大且稳定。同时,它又具有良好的兼容性和可移植性,被广泛应用于各种计算机平台上。下面介绍Linux的产生背景、组成和特性。
1.Linux的产生背景
对于Linux操作系统的产生,可以追溯到另一个操作系统UNIX。与Linux相同,UNIX也是一款相当流行的计算机操作系统,该操作系统最初是由美国贝尔实验室的Ken Thomp-son、Dennis Ritchie和其他人共同开发的。UNIX是一个实时操作系统,可允许多人同时访问计算机,与此同时每个人可运行多个应用程序,即通常所说的多用户、多任务操作系统,该操作系统最初是为了运行于大型计算机和小型计算机上而设计的。
UNIX操作系统以其优越的性能在工作站或小型计算机上发挥着重要作用,一直以来,该操作系统是一种大型而且要求较高的操作系统,许多种版本的UNIX操作系统都是为工作站环境而设计的。但随着个人计算机的日益普及,并且个人计算机的性能也在不断提高,人们也开始从事UNIX操作系统的个人计算机版本的开发,使UNIX能够在个人计算机上运行成为可能,这也是Linux流行起来的原因。
Linux的前身是芬兰赫尔辛基大学一位名叫Linus Torvalds计算机科学系学生的个人项目。他将Linux建立在一个基于PC上运行的、名为Minix(Minix是由一位名为Andrew Tan-nebaum的计算机教授编写的操作系统示例程序)的操作系统之上。Minix突出体现了UNIX的各种特性,后来Minix通过Internet广泛传播。Linus的初衷是为Minix用户开发一种高效率的PC UNIX版本,称其为Linux,并于1991年底首次公布于众,同年11月发布了0.10版本,12月发布了0.11版本。Linux允许免费自由地运用该系统源代码,并且鼓励其他人进一步对其进行开发。如此一来,通过Internet在世界范围内形成了Linux研究热潮,并且在不断持续着。
2.Linux组成
Linux操作系统的组成一般分为3个部分:内核(Kernel)、命令解释层(Shell或其他操作环境)、文件结构(File Structure)。其中内核是整个操作系统的内核部分;Shell是用户与计算机交流的接口;文件结构是存放在存储设备上文件的组织方法。
(1)内核
内核是Linux系统的心脏,是运行程序和管理硬件设备的内核程序,决定着系统的性能和稳定性。内核以独占的方式执行最底层任务,保证系统正常运行,协调多个并发进程,管理进程使用的内存,使它们相互之间不产生冲突,满足进程访问磁盘的请求等。它从用户那里接受命令并把命令送给内核去执行。
Linux内核包括几个重要部分:进程管理、内存管理、硬件设备驱动、文件系统驱动、网络管理。进程管理产生进程,以切换运行时的活动进程来实现多任务;内存管理负责分配进程的存储区域和对换空间区域、内核的部件及buffer cache;在最底层,内核对它支持的每种硬件包含一个硬件设备驱动。因为,现实世界中存在大量不同的硬件,因此硬件设备的驱动数量很大。每个类的每个成员都有相同的与内核其他部分的接口,但具体实现是不同的,例如所有的硬盘驱动与内核其他部分接口相同,即都有初始化驱动器、读N扇区和写N扇区。内核自己提供的有些软件服务有类似的抽象属性,因此可以抽象分类。例如不同的网络协议已经被抽象为一个编程接口:BSD socket库。另一个例子是虚拟文件系统virtual file system(VFS)层,它从文件系统操作实现中抽象出来文件系统。每个文件系统类型提供了每个文件系统操作的实现。当一些实体企图使用一个文件系统时,请求通过VFS送出,它将请求发送到适当的文件系统驱动。网络管理提供了对网络标准存取和各种网络硬件的支持,它又可分为网络协议和网络驱动程序。其中,网络协议部分负责实现每一种可能的网络传输协议,而网络驱动程序负责与硬件通信。
(2)Linux Shell
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把命令送入内核。操作环境在操作系统内核与用户之间提供操作界面,它实际上是一个解释器。操作系统对用户输入的命令进行解释,再将其发送到内核。Linux存在3种操作环境,分别是桌面(desktop)、窗口管理器(window manager)和命令行Shell(com-mand line Shell)。Linux系统中的每个用户都可以拥有自己的用户操作界面,根据自己的要求进行定制。
Shell是一个命令解释器,它解释由用户输入的命令,并把它们送到内核。不仅如此,Shell有自己的编程语言,用于对命令的编辑,它允许用户编写由Shell命令组成的程序。同Linux本身一样,Shell也有多种不同的版本,目前主要的Shell版本如下:
1)Bourne shell是贝尔实验室开发的;
2)BASH是GNU的Bourne Again Shell,是GNU操作系统上默认的Shell;
3)Korn Shell是对Bourne Shell的发展,在大部分情况下与Bourne Shell兼容;
4)C Shell是SUN公司Shell的BSD版本。
Shell中的命令分为内部命令和外部命令。内部命令包含在Shell自身之中,如cd、exit等,查看内部命令的方法可用help命令;外部命令是存在于文件系统某个目录下的具体的可执行程序,如cp等,查看外部命令的路径可用which。
(3)文件结构
文件结构是存放在磁盘等存储设备上的文件的组织方法,主要体现在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径,用户能够从一个目录切换到另一个目录,而且可以设置目录和文件的权限、文件的共享程度。Linux目录采用多级树形结构,用户可以浏览整个系统,进入任何一个已授权进入的目录,并访问那里的文件。
文件结构使得相互关联性使用共享数据变得容易,几个用户可以访问同一个文件。Linux是一个多用户系统,操作系统本身的驻留程序存放在以根目录开始的专用目录中,有时被指定为系统目录。此外,用户可以创建自己的子目录,保存自己的文件,可以很容易地把文件从一个子目录移动到另一个子目录中。
内核、Shell和文件结构一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件以及使用系统。此外,Linux操作系统还有许多被称为实用工具的程序,辅助用户完成一些特定的任务。
3.Linux特性
Linux操作系统在短时间内得到迅猛的发展,这与该操作系统良好的特性是分不开的。Linux包含了UNIX操作系统的全部功能和特性。简单地说,Linux具有UNIX的所有特性并且具有自己独特的魅力,主要表现在以下几个方面:
(1)开放性(www.xing528.com)
开放性是指系统遵循世界标准规范,特别是遵循开放系统互联(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互联。
(2)多用户
多用户是指系统资源可以被不同的用户各自拥有并使用,即使每个用户对自己的资源(如文件、设备)有特定权限,也互不影响,Linux和UNIX都具有多用户特性。
(3)多任务
多任务是现代计算机最主要的一个特点,它是指计算机同时执行多个程序,而且各个程序的运行相互独立。Linux操作系统调试每一个进程平等地访问CPU。由于CPU的处理速度非常快,其结果是启动的应用程序看起来好像是在并行运行。事实上,从CPU执行的一个应用程序中的一组指令到Linux调试CPU,与再次运行这个程序之间只有很短的时间延迟,用户是感觉不出来的。
(4)友好的用户界面
Linux向用户提供了两种界面:用户界面和系统调用界面。Linux的传统用户界面基于文本的命令行界面,即Shell。它既可以联机使用,又可以存储在文件上脱机使用。Shell有很强的程序设计能力,用户可方便地用它编写程序,从而为用户扩充系统功能提供了更高级的手段。Linux还提供了图形用户界面,它利用鼠标、菜单和窗口等设施,给用户呈现一个直观、易操作、交互性强的友好图形化界面。
(5)设备独立性
设备独立性是指操作系统把所有外部设备统一当做文件来看,只要安装它们的驱动程序,任何用户都可以像使用文件那样操作并使用这些设备,而不必知道它们的具体存在形式。设备独立性的关键在于内核的适应能力,其他的操作系统只允许一定数量或一定种类的外部设备连接,因为每一个设备都是通过其与内核的专用连接独立地进行访问的。Linux是设备独立的操作系统,它的内核具有高度的适应能力,随着更多程序员加入Linux编程,会有更多硬件设备加入到各种Linux内核和发行版本中。
(6)丰富的网络功能
完善的内置网络是Linux的一大特点,Linux在通信和网络功能方面优于其他操作系统。其他操作系统不包含如此紧密的内核结合在一起的连接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。
1)支持Internet:Linux免费提供了大量支持Internet的软件,Internet是在UNIX领域中建立并发展起来的,在这方面使用Linux是相当方便的,用户能用Linux与世界上其他人通过Internet网络进行通信。
2)文件传输:用户能通过一些Linux命令完成内部信息或文件的传输。
3)远程访问:Linux为系统管理员和技术人员提供了访问其他系统的窗口。通过这种远程访问的功能,一位技术人员能够有效地为多个系统服务,即使那些系统位于很远的地方。
(7)可靠的安全性
Linux操作系统采取了许多安全措施,包括对读、写操作进行权限控制,带保护的子系统,审计跟踪和内核授权,这为用户提供了必要的安全保障。
(8)良好的可移植性
可移植性是指将操作系统从一个平台转移到另一个平台,使它仍然能按其自身的方式运行的能力。Linux是一款具有良好可移植性的操作系统,能够在微型计算机到大型计算机的任何环境中和平台上运行。该特性为Linux操作系统的不同计算机平台与其他任何机器进行准确而有效地通信提供了保障,不需要另外增加特殊的通信接口。
(9)X Window系统
X Window系统是用于UNIX机器的一个图形系统,该系统拥有强大的界面系统,并支持许多应用程序,是业界标准界面。
(10)内存保护模式
Linux使用处理器的内存保护模式来避免进程访问分配给系统内核或者其他进程的内存。对于系统安全来说,这是一个主要的贡献,一个不正确的程序因此不能够再使用系统而崩溃(在理论上)。
(11)共享程序库
共享程序库是一个程序工作所需要的例程的集合,有许多同时被多于一个进程使用的标准库,因此使用户觉得需要将这些库的程序载入内存一次,而不是一个进程一次,通过共享程序库使这些成为可能,因为这些程序库只有当进程运行的时候才被载入,所以它们被称为动态链接库。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。