操作系统实验指导沈孝科,李中年编写长江大学电信学院
操作系统实验指导 沈孝科,李中年编写 长江大学电信学院
目录操作系统实验指导第一部分基础知识部分1第一章.Linux简介.2..35第二章.进程控制.第三章.SYSV进程间通信44第四章文件系统.52第五章.设备管理.60第二部分实验部分...65第六章.66实验一Linux使用初步.66第七章..76...76实验二Linux进程控制第八章.....87实验三Linux进程通信(一)87.94第九章实验四Linux进程通信(二.94第十章..105105实验五Linux设备管理附录....113.113ALinux常用函数B.Linux常用内核函数:116
I 目录 操作系统实验指导.1 第一部分 基础知识部分.1 第一章.Linux 简介.2 第二章.进程控制.35 第三章.SYS V 进程间通信.44 第四章.文件系统.52 第五章.设备管理.60 第二部分 实验部分.65 第六章.66 实验一 Linux 使用初步 .66 第七章.76 实验二 Linux 进程控制 .76 第八章.87 实验三 Linux 进程通信(一).87 第九章.94 实验四 Linux 进程通信(二).94 第十章.105 实验五 Linux 设备管理 .105 附录.113 A. Linux 常用函数.113 B. Linux 常用内核函数 . 116
第一部分基础知识部分-
1 第一部分 基础知识部分
第一章.Linux简介1.1.Linux操作系统的发展历史Linux操作系统核心最早是由25岁的芬兰大学生LinusTorvalds于1991年8月在芬兰赫尔辛基大学发布的,Linux是Linus和Minix的混合称呼,意为Linus编写的类似Minix的系统。Linus发布在Intemet上,得到了积极的回应,很快就有数百名程序员和爱好者通过Intemet加入Linux的行列,他们不断地对程序进行修改和完善,经过几年的努力,Linux终于在全球普及,成为当今最为流行的操作系统之一。Linux最初是针对Intel架构的个人计算机开发的,但现在不仅个人桌面版的用户极多,在服务器领域也得到越来越多的应用,例如Sun公司的Sparc工作站和DEC公司的Alpha工作站等。此外,在嵌入式开发方面Linux更是具有其他操作系统无可比拟的优势。Linux的源代码是自由分发的,是完全公开的,也是完全免费的,你可以很方便地从网上下载。Linux与Intemet同步发展壮大。Linux的目标是POSIX兼容性。Linux不仅涵盖了UNIX的所有特征,而且融合了许多其他操作系统的功能,这些特征包括:真正的多任务、虚拟存储、快速的TCP/IP实现、共享库和多用户。Linux运行在保护模式并且完全支持32位和64位多任务。它能运行主要的UNIX工具软件、应用程序和网络协议。Linux还拥有一个完全免费的、遵从X/Open标准的X-Window的实现。Linux内核的版权归LinusTorvalds所有。这个版权受GNU(GnuisNotUNIX)通用公共许可证(GeneralPublicLicense,GPL)的保护。你可以根据自已的需要对它进行必要的修改,无偿地使用,无约束地继续传播。可以说Linux是一个高效和灵活的通用操作系统。采用Linux模块化的设计结构,既能充分发挥不断提高的硬件性能,又能跨不同平台使用,使得在Linux上开发的应用软件可以用很低的代价在不同的硬件平台上使用。Linux操作系统也是一个多用户和多任务操作系统,它能保证CPU时刻处于使用状态,从而保持CPU的最大利用率。现在Linux已经成为一个完整的类UNIX操作系统,它的核心版本在不断地更新,它有一个可爱的吉祥物一一一只小企鹅(企鹅取自Linus家乡芬兰的吉祥物),现在几乎每种版本的Linux都带有这个标志。事实上Linux的确稳定并富有竞争力。许多大学与研究机构都使用Linux来完成他们的日常计算任务,很多中小型网站也在其服务器上运行Linux,家庭的应用就更多了。Linux主要用来浏览Web,管理Web站点,撰写与发送E-mail,以及玩游戏,它是一个具有专业水平的操作系统。1.2.Linux操作系统的特点在使用方法上,Linux与UNIX系统很相像,但Linux系统无论从结构上还是应用上都有其自身的特点。Linux的内核特点是短小精悍,具有更高的灵活性和适应性。Linux最大的特色在于源代码完全公开。所有的原始程序源码都可得到,包括整个核心及所有的驱动程序、发展工具及所有应用程序。在符合GNUGPL(GeneralPublicLicense)的原则下,任何人皆可自由取得、散布,甚至修改源代码。除此之外,与其他操作系统相比,Linux2
2 第一章.Linux 简介 1.1.Linux 操作系统的发展历史 Linux 操作系统核心最早是由 25 岁的芬兰大学生 Linus Torvalds 于 1991 年 8 月在芬兰 赫尔辛基大学发布的,Linux 是 Linus 和 Minix 的混合称呼,意为 Linus 编写的类似 Minix 的系统。Linus 发布在 Intemet 上,得到了积极的回应,很快就有数百名程序员和爱好者通 过 Intemet 加入 Linux 的行列,他们不断地对程序进行修改和完善,经过几年的努力,Linux 终于在全球普及,成为当今最为流行的操作系统之一。 Linux 最初是针对 Intel 架构的个人计算机开发的,但现在不仅个人桌面版的用户极多, 在服务器领域也得到越来越多的应用,例如 Sun 公司的 Sparc 工作站和 DEC 公司的 Alpha 工作站等。此外,在嵌入式开发方面 Linux 更是具有其他操作系统无可比拟的优势。 Linux 的源代码是自由分发的,是完全公开的,也是完全免费的,你可以很方便地从 网上下载。Linux 与 Intemet 同步发展壮大。Linux 的目标是 POSIX 兼容性。Linux 不仅涵 盖了 UNIX 的所有特征,而且融合了许多其他操作系统的功能,这些特征包括:真正的多 任务、虚拟存储、快速的 TCP/IP 实现、共享库和多用户。Linux 运行在保护模式并且完全 支持 32 位和 64 位多任务。它能运行主要的 UNIX 工具软件、应用程序和网络协议。 Linux 还拥有一个完全免费的、遵从 X/Open 标准的 X-Window 的实现。Linux 内核的 版权归 Linus Torvalds 所有。这个版权受 GNU(Gnu is Not UNIX)通用公共许可证(General Public License,GPL)的保护。你可以根据自己的需要对它进行必要的修改,无偿地使用, 无约束地继续传播。 可以说 Linux 是一个高效和灵活的通用操作系统。采用 Linux 模块化的设计结构,既 能充分发挥不断提高的硬件性能,又能跨不同平台使用,使得在 Linux 上开发的应用软件 可以用很低的代价在不同的硬件平台上使用。Linux 操作系统也是一个多用户和多任务操 作系统,它能保证 CPU 时刻处于使用状态,从而保持 CPU 的最大利用率。 现在 Linux 已经成为一个完整的类 UNIX 操作系统,它的核心版本在不断地更新,它 有一个可爱的吉祥物——一只小企鹅(企鹅取自 Linus 家乡芬兰的吉祥物),现在几乎每种版 本的 Linux 都带有这个标志。 事实上 Linux 的确稳定并富有竞争力。许多大学与研究机构都使用 Linux 来完成他们 的日常计算任务,很多中小型网站也在其服务器上运行 Linux,家庭的应用就更多了。Linux 主要用来浏览 Web,管理 Web 站点,撰写与发送 E-mail,以及玩游戏,它是一个具有专业 水平的操作系统。 1.2.Linux 操作系统的特点 在使用方法上,Linux 与 UNIX 系统很相像,但 Linux 系统无论从结构上还是应用上 都有其自身的特点。Linux 的内核特点是短小精悍,具有更高的灵活性和适应性。Linux 最 大的特色在于源代码完全公开。所有的原始程序源码都可得到,包括整个核心及所有的驱 动程序、发展工具及所有应用程序。在符合 GNU GPL(General Public License)的原则下, 任何人皆可自由取得、散布,甚至修改源代码。除此之外,与其他操作系统相比,Linux
还具有下列特色。1.Linux是一个多用户、多任务的操作系统:在Linux系统中,多个用户可同时在相同计算机上操作(通过终端或虚拟控制台)。Linux在386/486/Pentium/PentiumPro上以保护模式运行,是真正的多任务操作系统,可同时执行多个进程,具有进程间内存地址保护,因此当某个进程出错时,不会波及整个系统。同时也提供了进程间的通信方式,使各进程能协同工作以满足用户的要求。2.支持多种文件系统:Linux能支持多种文件系统,如Ext2FS、ISOFS、Minix、Xenix、FATI6、FAT32、NTFS等十多种文件系统。而且它自已还有一个先进的文件系统,提供最多达4TB的文件存储空间,文件名可以长达255个字符。3.符合POSIX1003.1标准POSIX1003.1标准定义了一个最小的UNIX操作系统接口,任何操作系统只有符合这一标准,才有可能运行UNIX程序。Linux完全支持POSIX1003.1标准,能运行UNIX上的丰富的应用程序。另外,为了使UNIXSystemV和BSD上的程序能直接在Linux上运行,Linux还增加了部分SystemV和BSD的系统接口,使Linux成为一个完善的UNIX程序开发系统。4.具有较好的可移植性Linux系统核心只有小于10%的源代码采用汇编语言编写,其余均是采用C语言编写,因此具备高度的可移植性。5.支持多平台和多处理器Linux虽然最初是在Intelx86系列CPU上开发的,由于它不断地发展,因而可在许多不同的CPU上执行。同时还支持多处理器的体系结构,如SMP。6.全面支持TCP/IP网络协议Linux具有较强的网络功能,包含ftp、telnet、NFS等。同时支持Appletalk服务器、Netware客户机及服务器、LanManager(SMB)客户机及服务器。其他支持的网络协议有:TCP、IPv4、IPX、DDP和AX.25等。1.3.自前流行Linux版本“内核”是Linux的关键,Linux内核主要包括:进程管理、存储管理、设备管理、文件系统、网络通信,以及系统初始化(引导)等功能。内核拥有自已的版本号,以版本2.4.2为例,2代表主版本号,4代表次版本号,2代表改动较小的末版本号。在版本号中,次版本号为偶数的版本表明这是一个稳定的版本,若为奇数一般是指加入了一些新的东西,该内核只是开发过程中的一个快照,相当短暂,是一个测试版本。本书的实验系统就是基于Linux的2.4.2版本的内核实现的。由于Linux本身只提供了操作系统的核心,并没有提供给用户各种应用程序,如编译器、系统管理工具、网络工具、Ofice套件、多媒体、绘图软件等,普通用户就无法在此平台上展开工作,因此以LinuxKernel为核心再集成搭配各式各样的应用程序或工具组成一套完整的操作系统,即称为Linux发行版。目前最流行的正式版本有下列几种。1.RedHat这是目前世界上最流行的Linux发行套件。RedHatLinux(红帽Linux)是RedHat公司发行的,它安装简易、使用方便、功能强大,特别是图形用户界面特别适合于初学者。RedHatLinux7.2基于Linux2.4内核,是本书实验系统选用的版本。目前最新的版本是RedHatLinux3
3 还具有下列特色。 1.Linux 是一个多用户、多任务的操作系统: 在 Linux 系统中,多个用户可同时在相同计算机上操作(通过终端或虚拟控制台)。Linux 在 386/486/Pentium/PentiumPro 上以保护模式运行,是真正的多任务操作系统,可同时执行 多个进程,具有进程间内存地址保护,因此当某个进程出错时,不会波及整个系统。同时 也提供了进程间的通信方式,使各进程能协同工作以满足用户的要求。 2.支持多种文件系统: Linux 能支持多种文件系统,如 Ext2FS、ISOFS、Minix、Xenix、FATl6、FAT32、NTFS 等十多种文件系统。而且它自己还有一个先进的文件系统,提供最多达 4TB 的文件存储空 间,文件名可以长达 255 个字符。 3.符合 POSIX l003.1 标准 POSIX l003.1 标准定义了一个最小的 UNIX 操作系统接口,任何操作系统只有符合 这一标准,才有可能运行 UNIX 程序。Linux 完全支持 POSIX 1003.1 标准,能运行 UNIX 上的丰富的应用程序。另外,为了使 UNIX SystemV 和 BSD 上的程序能直接在 Linux 上运 行,Linux 还增加了部分 SystemV 和 BSD 的系统接口,使 Linux 成为一个完善的 UNIX 程 序开发系统。 4.具有较好的可移植性 Linux 系统核心只有小于 10%的源代码采用汇编语言编写,其余均是采用 C 语言编写, 因此具备高度的可移植性。 5.支持多平台和多处理器 Linux 虽然最初是在 Intel x86 系列 CPU 上开发的,由于它不断地发展,因而可在许多 不同的 CPU 上执行。同时还支持多处理器的体系结构,如 SMP。 6.全面支持 TCP/IP 网络协议 Linux 具有较强的网络功能,包含 ftp、telnet、NFS 等。同时支持 Appletalk 服务器、 Netware 客户机及服务器、Lan Manager(SMB)客户机及服务器。其他支持的网络协议有: TCP、IPv4、IPX、DDP 和 AX.25 等。 1.3.目前流行 Linux 版本 “内核”是 Linux 的关键,Linux 内核主要包括:进程管理、存储管理、设备管理、 文件系统、网络通信,以及系统初始化(引导)等功能。内核拥有自己的版本号,以版本 2.4.2 为例,2 代表主版本号,4 代表次版本号,2 代表改动较小的末版本号。在版本号中,次版 本号为偶数的版本表明这是一个稳定的版本,若为奇数一般是指加入了一些新的东西,该 内核只是开发过程中的一个快照,相当短暂,是一个测试版本。本书的实验系统就是基于 Linux 的 2.4.2 版本的内核实现的。 由于 Linux 本身只提供了操作系统的核心,并没有提供给用户各种应用程序,如编译 器、系统管理工具、网络工具、Office 套件、多媒体、绘图软件等,普通用户就无法在此 平台上展开工作,因此以 Linux Kernel 为核心再集成搭配各式各样的应用程序或工具组成 一套完整的操作系统,即称为 Linux 发行版。目前最流行的正式版本有下列几种。 1.RedHat 这是目前世界上最流行的 Linux 发行套件。RedHatLinux(红帽 Linux)是 RedHat 公司发 行的,它安装简易、使用方便、功能强大,特别是图形用户界面特别适合于初学者。RedHat Linux7.2 基于 Linux2.4 内核,是本书实验系统选用的版本。目前最新的版本是 Red Hat Linux