操作系统是随着计算机硬件的发展,围绕着如何提高计算机系统资源的利用率和改善用户界面的友好性而形成、发展和不断成熟完善的。
Linux操作系统是20世纪90年代的产物。它是在20世纪90年代初由芬兰赫尔辛基大学计算机系的学生Linus Torvalds首先在Intel 386 PC上开发成功,并在Internet上公布了他的Linux操作系统内核的源代码。随后,Linux系统加入了“自由软件基金会”(FSF)的通用公共许可证(GPL),FSF的宗旨是消除计算机程序拷贝、分发、理解和修改的限制。由于Linux遵循GPL协议,提供内核源代码,且结构清晰、功能简捷,极大地激发了专业人员参与创作的积极性而纷纷加入Linux内核的开发工作。软件自由联盟(GNU)、Berkeley的BSD和MIT的X Windows等也都对Linux做出了重要的贡献。
Linux遵循POSIX标准, 它从UNIX的各个流派中不断吸取成功经验,接受继承了UNIX优秀的设计思想, 并扩展支持所有AT&T和BSD UNIX特性的操作系统,在大量高水平开发人员的努力工作下,到2000年,Linux核心已从0.01版发展为2.4版,拥有庞大的用户群体和世界最大的开发群体和测试队伍,这使得Linux具有稳定高效的处理性能,成为操作系统发展的热点,进而得到众多厂商的有力支持。
由于Linux适应多种硬件平台, 支持多种文件系统,整个系统的源代码可以自由获取,并且在GPL许可的范围内自由修改、传播,这就为学习、应用、开发操作系统及其他软件提供了良好的基础和较高的起点。
从计算机应用的角度看,大量计算机应用领域的创新来自于非计算机专业。非计算机专业的人才在学习了必要的计算机应用工具并打下必要的计算机基础、掌握了一定的开发技术和技能后,就可以把计算机专业的知识应用到自己学科的研究领域,从而做出开创性的成果。
本书面向大专院校非计算机专业的学生,要求读者具有计算机软、硬件方面的基础知识和C语言基础。教材内容的组织面向实际应用,从计算机应用的角度介绍操作系统的概念、原理及组成,使非计算机专业的学生不仅会使用计算机,还清楚操作系统的工作原理以及相关的实现技术,为他们进一步学好计算机、用好计算机打下基础。
本教材基本不涉及构成操作系统的内部算法和数据结构,内容力求通俗易懂和实用。
全书分3部分讲述Linux操作系统。第1部分分为6章,讲述了Linux操作系统的基本概念、功能及实现技术。第1章介绍了操作系统的一般概念和操作系统的外部接口、管理功能,以此为基础,详细分析了Linux系统的接口、功能和结构,包括Linux的发展和开发模式。第2章讲述了进程、作业、线程的概念及处理机管理、调度方面的内容。第3章讨论了虚拟存储器的基本概念及分区、页式、段式和段页式管理的基本思想。第4章讨论了处理机调度的层次和目标,然后,以单处理机微机系统为背景,具体讨论了Linux系统交换调度和进程调度的基本原理和实现方法。第5章讲述了Linux设备管理方面的基础知识, 包括设备管理中数据传输控制的基本原理,以此为基础讨论了设备分配的概念及设备驱动程序。第6章讨论了Linux系统中文件的概念、 目录结构及访问权限,Linux的逻辑文件系统Ext2, 虚拟文件系统VFS, 文件系统管理及缓冲区管理等内容。
第2部分分为3章,讨论了Linux操作系统常用命令及shell编程。第7章主要介绍了Linux的一些基本命令。第8章介绍了Linux的文本编辑器。第9章介绍了shell变量、shell命令及shell编程和调试。
第3部分分为6章,介绍了Linux系统管理, 第10章介绍了Linux系统软件的获取和安装,以XLinux和Red Hat作为实例,讲述了安装需求、安装过程及其内核配置。第11章介绍了账号管理以及与用户账号相关的系统资源的归属和用户组的概念。第12章介绍了文件系统的维护,包括安装、拆卸、创建、恢复和格式化文件系统等内容。第13章从系统管理的角度介绍了网络的概念及网络的配置。第14章讨论了后备与恢复的概念及常用的操作命令。第15章介绍了基于窗口的图形用户界面XWindow和COVENTIVE网虎国际开发团队设计开发的智能型设置工具Genie。
Linux核心发展速度很快,本书主要以稳定的2.2.16为基本参照对象,介绍操作系统原理,同时涉及到部分2.4.0的内容。Linux系统支持多种平台,支持对称多处理器,本书主要介绍在Intel 386平台单处理器下的工作情况,有兴趣的读者可以参考相关文献。
本书由汤荷美副教授主编,负责全书的统稿修改及定编工作。董渊完成了第1部分6章全部内容的编写,李莉完成了第2部分3章全部内容的编写,程志锐完成了第3部分6章内容的编写,邓就庆、张世俊也参加了第3部分一些章节的编写工作。王行言教授参与了本书编写的组织工作,并对本书提出了许多修改意见。成书过程中,还得到清华大学计算机系向勇、刘云欣、杜春雷同志及清华大学计算机与信息管理中心蒋东兴、戚丽等同志的热情帮助和指点,在此表示感谢。
我们希望本书能对非计算机专业的学生,以及所有渴望学习、应用Linux的读者有所帮助。由于编写时间仓促,加之水平所限,书中可能有不当之处,望广大读者批评指正。
