- 什么是操作系统
计算机系统由硬件子系统(计算机系统赖以工作的实体,包括显示屏、键盘、鼠标、硬盘等)和软件子系统(保证计算机系统按用户指定的要求协调工作)组成。
操作系统(Operating System,OS)是软件子系统的一部分,是硬件基础上的第一层软件,是硬件与其他软件的接口,它控制程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序。
(1)文件系统。提供计算机存储信息的结构,信息存储在文件中,文件主要存储在计算机的内部硬盘里,在目录的分层结构中组织文件。文件系统为操作系统提供了组织管理数据的方式。
(2)设备驱动程序。提供连接计算机的每个硬件设备的接口,设备驱动器使程序能够写入设备,而不需要了解操作每个硬件的细节。
(3)用户接口。操作系统需要为用户提供一种运行程序和访问文件系统的方法。如常用的 Windows 图形界面,可以理解为一种用户与操作系统交互的方式;智能手机的Android或 iOS系统,也是操作系统的一种交互方式。
(4)系统服务程序。当计算机启动时,会启动许多系统服务程序,执行安装文件系统、启动网络服务、运行预定任务等操作。
目前流行的服务器和 PC端操作系统有 Linux、Windows、UNIX等。
2.从 UNIX到 Linux
UNIX诞生于 20世纪 60年代末,Windows诞生于 20世纪 80年代中期,Linux诞生于 20世纪 90年代初,可以说 UNIX是操作系统中的“老大哥”。
1.1 UNIX的坎坷历史
1972年,肯·汤普森的同事丹尼斯·里奇发明了传说中的 C语言,这是一种适合编写系统软件的高级语言,它的诞生是 UNIX系统发展过程中的一个重要里程碑,它宣告了在操作系统的开发中,汇编语言不再是主宰。到了1973年,UNIX系统的绝大部分源代码都用 C语言进行了重写,这为提高 UNIX系统的可移植性打下了基础(之前操作系统多采用汇编语言编写,对硬件的依赖性强),也为提高系统软件的开发效率创造了条件。可以说,UNIX系统与 C语言是一对孪生兄弟,具有密不可分的关系。
各种版本的 UNIX系统,目前常见的有 Sun Solaris、FreeBSD、IBM AIX、HP-UX等。
1.2 Linux的那些往事
Linux内核最初是由李纳斯·托瓦兹编写的。第一个版本于 1991年 9月发布。
李纳斯·托瓦兹没有保留 Linux源代码的版权,公开了代码,并邀请他人一起完善Linux。Linux开放源代码,任何人都可以免费使用它。
Linux Logo
1.3 UNIX与Linux的亲密关系
Linux与 UNIX有很多的共通之处
二者也有两个大的区别:其一,UNIX 系统大多是与硬件配套的,也就是说,大多数 UNIX系统如 AIX、HP-UX等是无法安装在 x86服务器和个人计算机上的,而 Linux则可以运行在多种硬件平台上;其二,UNIX 是商业软件,而 Linux 是开源软件,是免费、公开源代码的。
1.4 UNIX/Linux系统结构
1.内核层
内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。2.Shell层
Shell层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell解释执行并输出相应结果或有关信息,所以我们也把 Shell称为命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。3.应用层
应用层提供基于 X Window协议的图形环境。X Window协议定义了一个系统所必须具备的功能(如同 TCP/IP是一个协议,定义软件所应具备的功能),任何系统能满足此协议及符合 X协会其他的规范,便可称为 X Window。
现在大多数的UNIX系统上(包括Solaris、HP-UX、AIX等)都可以运行CDE(Common Desktop Environment,通用桌面环境,是运行于 UNIX的商业桌面环境)的用户界面;而在 Linux上广泛应用的有 GNOME(如图 1-3所示)、KDE等。
UNIX/Linux系统不依赖图形环境,依然可以通过命令行完成 100%的功能,而且因为不使用图形环境还会节省大量的系统资源。
1.5 Linux的发行版本
从技术上来说,李纳斯·托瓦兹开发的 Linux只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,但一个内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或厂商将 Linux内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了 Linux的发行版本。
Linux的发行版有:Red Hat Linux、Ubuntu Linux、SUSE Linux、Gentoo Linux