计算机系统由硬件子系统(计算机系统赖以工作的实体,包括显示屏、键盘、鼠标、硬盘等)和软件子系统(保证计算机系统按用户指定的要求协调工作)组成。
操作系统(OperatingSystem,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.1UNIX的曲折历史
1972年雨林木风linux,肯·汤普森的朋友丹尼斯·里奇发明了传说中的C语言,这是一种适宜编撰系统软件的中级语言,它的诞生是UNIX系统发展过程中的一个重要里程碑,它宣告了在操作系统的开发中,汇编语言不再是主宰。到了1973年,UNIX系统的绝大部份源代码都用C语言进行了重画,这为提升UNIX系统的可移植性打下了基础(之前操作系统多采用汇编语言编撰,对硬件的依赖性强),也为增强系统软件的开发效率创造了条件。可以说,UNIX系统与C语言是一对双胞兄弟,具有密不可分的关系。
各类版本的UNIX系统,目前常见的有SunSolaris、FreeBSD、IBMAIX、HP-UX等。
1.2Linux的这些旧事
Linux内核最初是由李纳斯·托瓦兹编撰的。第一个版本于1991年9月发布。
李纳斯·托瓦兹没有保留Linux源代码的版权,公开了代码,并约请别人一起建立Linux。Linux开放源代码,任何人都可以免费使用它。
LinuxLogo
1.3UNIX与Linux的亲昵关系
Linux与UNIX有好多的共通之处
两者也有两个大的区别:其三,UNIX系统大多是与硬件配套的,也就是说,大多数UNIX系统如AIX、HP-UX等是难以安装在x86服务器和个人计算机上的linux系统官方下载,而Linux则可以运行在多种硬件平台上;其一,UNIX是商业软件linux系统官方下载,而Linux是开源软件,是免费、公开源代码的。
1.4UNIX/Linux系统结构
1.内核层
内核层是UNIX/Linux系统的核心和基础,它直接附着在硬件平台上,控制和管理系统内各类资源(硬件资源和软件资源),有效地组织进程的运行,因而扩充硬件的功能,提升资源的借助效率中标麒麟linux,为用户提供便捷、高效、安全、可靠的应用环境。2.Shell层
Shell层是与用户直接交互的界面。用户可以在提示符下输入命令行,由Shell解释执行并输出相应结果或有关信息,所以我们也把Shell称为命令类库,借助系统提供的丰富命令可以快捷而简便地完成许多工作。3.应用层
应用层提供基于XWindow合同的图形环境。XWindow合同定义了一个系统所必须具备的功能(就像TCP/IP是一个合同,定义软件所应具备的功能),任何系统能满足此合同及符合X商会其他的规范,便可称为XWindow。
现今大多数的UNIX系统上(包括Solaris、HP-UX、AIX等)都可以运行CDE(CommonDesktopEnvironment,通用桌面环境,是运行于UNIX的商业桌面环境)的用户界面;而在Linux上广泛应用的有GNOME(如图1-3所示)、KDE等。
UNIX/Linux系统不依赖图形环境,仍然可以通过命令行完成100%的功能,但是由于不使用图形环境都会节约大量的系统资源。
1.5Linux的发行版本
从技术上来说,李纳斯·托瓦兹开发的Linux只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通讯等功能的系统软件,但一个内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或厂商将Linux内核与各类软件和文档包装上去,并提供系统安装界面和系统配置、设定与管理工具,就构成了Linux的发行版本。
Linux的发行版有:RedHatLinux、UbuntuLinux、SUSELinux、GentooLinux