《操作系统课程设计》实验指导手册

上传人:1888****888 文档编号:37544371 上传时间:2021-11-03 格式:DOC 页数:31 大小:198.50KB
收藏 版权申诉 举报 下载
《操作系统课程设计》实验指导手册_第1页
第1页 / 共31页
《操作系统课程设计》实验指导手册_第2页
第2页 / 共31页
《操作系统课程设计》实验指导手册_第3页
第3页 / 共31页
资源描述:

《《操作系统课程设计》实验指导手册》由会员分享,可在线阅读,更多相关《《操作系统课程设计》实验指导手册(31页珍藏版)》请在装配图网上搜索。

1、操作系统课程设计实验指导手册苏州大学计算机科学与技术学院2009年9月操作系统课程设计实验指导手册目录目 录一、实验环境二、实验内容三、准备知识四、实验步骤实验一安装Red Hat Linux实验二编译Linux内核实验三观察Linux行为实验四系统调用操作系统课程设计实验指导手册一、实验环境硬件平台:普通PC机硬件环境。操作系统:Linux环境,Red Hat Linux 9.0以上版本,启动管理器使用LILO。编译环境:伴随着操作系统的默认gcc环境。工作源码环境:一个调试的内核源码,版本不低于2.4.18。二、实验内容本实验侧重于Linux操作系统的认识、应用,并对Linux内核进行初步

2、探索。实验分为四个部分,每个部分大约2次实验。所有实验完成后,将在计算机上安装一个可用的Linux操作系统,并完成至少一个的可调试内核。1安装Red Hat Linux2编译Linux内核3观察Linux行为4系统调用28三、准备知识1Linux的内核Unix操作系统家族将功能分为两类。首先,内核执行时CPU处于管态;其次,所有其他操作系统部件执行时CPU处于用户态。内核负责抽象与管理一台机器的硬件资源以及这些资源在执行程序之间的共享。因为Linux实现的是一种UNIX方式的接口,资源抽象和共享模型的通用定义已经被确定了。资源抽象(Resource abstraction)是指编写软件(通常情

3、况)来简化必须应用于硬件的操作以使该硬件能恰当的工作。Linux将计算机部件抽象为进程和资源。一个进程是执行一个目标程序的CPU操作的一个抽象。进程抽象使得操作系统能够控制一个程序中的每个实例的执行。操作系统中的所有执行进程抽象的所有方面称为进程管理。资源管理是创建资源抽象以及在进程执行时为它们分配和回收系统资源的过程。RAM是一种系统资源。另一种系统资源是CPU。内核的其他资源包括系统的所有设备,它们具有各自的抽象模型。UNIX试图将除CPU和可执行内存之外的每一种资源视为一个文件。Linux中,一个进程使用资源时,通常需要对该资源的独占使用。资源管理有两个关键的方面:对获得资源的竞争和对独

4、占使用的确保。对资源的竞争由资源管理程序控制。操作系统必须包含一个部件来负责接收使用每个资源的请求、为一个进程分配资源,以及当一个进程释放资源时进行回收。如不能满足进程的资源请求,则阻塞该进程。Linux和其他现代操作系统用模式位来确保对系统资源,包括CPU、内存和设备的独占使用。模式位使系统可以工作在管态(supervisor mode)或用户态(user mode)。在一些情况下,两个或更多进程需要共享一个资源,Linux采用有控制的共享策略。2内核的组织结构Linux内核被设计和实现为单内核。硬件设备日益发展,不断包括更新的设备,完全在一个设备驱动程序中提供适当的内核支持变得日益困难。L

5、inux通过一个新的“容器”,称为模块(module),来解决这个问题,在模块中执行内核主要部分的扩展。2.1 Linux的中断机制同i386体系结构中的中断机制,使用cli()和sti()两个内核函数来清除和设置中断启用标志。2.2 使用Linux的内核服务用户将内核看作一个大的抽象数据类型(ADT),它保持状态并在其公共接口系统调用接口上提供大量函数。在Linux中,系统调用接口名义上由POSIX.1规范定义。一个系统调用发生时,用户进程执行内核代码。存在一个问题,如何由用户进程(处在用户态)切换到内核代码(处在管态)?具有模式位的CPU通常也具有硬件陷阱指令。陷阱指令(trap inst

6、ruction)是一条用于将CPU转移到一个预定地址(有时作为一个指令操作数的函数)并将其自身切换为管态的指令。陷阱指令并不是一条特权指令,因此任何程序都可以执行一条陷阱指令。对于系统调用F,stub过程用于调用F。stub被链接到用户空间正调用的程序。一个进程在运行期间执行对F的调用,控制被转换到stub过程而不是直接转换到内核。利用陷阱指令和stub过程可以实现由用户空间向内核空间的安全转换。2.3 串行执行Linux的内核函数执行时处在一个临界区,即,一旦进程调用一个系统函数,该函数通常要运行到结束并在CPU分配给不同的进程之前返回,但是中断除外。这种类型的内核是单线程(single-t

7、hreaded)的,因为在任何时刻(忽略ISR)在内核中只允许一个执行线程在执行。这至少有两个重要的意义:1一个内核函数可以更新各种内核数据结构而不用担心另一个进程会中断它的执行并改变相同的数据结构。竞争状态不会发生。2在编写一个新的内核函数时,始终注意不能编写可能阻塞并等待消息或其他只有某些另外的进程才能释放的资源的代码。这类代码可能在内核中导致死锁。2.4 守护进程当一台Linux机器启动时,几个称作守护进程(daemon)的对用户透明的进程也被启动,并且它们的存在对操作系统的正确运行是必需的。习惯上,守护进程是执行名字以字符“d”结尾的程序。通过在shell里敲入以下命令来观察哪些守护进

8、程正在Linux机器上运行:ps aux | more典型情况下,将发现syslogd、klogd、crond和lpd在系统上运行。2.5 引导过程一台i386计算机可以通过一张引导记录包含Linux引导程序而不是Windows操作系统引导程序的Linux引导盘来引导Linux。对于一个分区的硬盘来说,装载处于不同分区的不同操作系统是可能的。Windows操作系统可以通过标识一个分区为活动分区来处理多分区磁盘,系统总是从活动分区引导。Linux提供一个可以存放在系统引导记录中的特殊Linux装载程序(LILO)使用户在引导时可以选择活动分区。在这种情况下,LILO将会被载入到引导记录中以使BI

9、OS在POST之后运行它。在POST之后,引导记录已经被读取,并且装载程序已经将操作系统放入主存,引导过程开始运行内核代码以初始化计算机硬件。计算机通过设置CPU为管态并转移到在内核中的主入口点准备启动内核。内核初始化陷阱列表、中断处理程序、调度程序等,并初始化管理程序。然后硬件进程创建初始进程(initial process)。初始进程创建第一个有用的Linux进程来运行init程序并开始执行一个空闲周期。在内核初始化完成以后,初始进程的唯一职责就是使用空闲CPU时间。也就是说,当没有其他进程想要使用CPU时它将占用CPU。初始进程有时也称为空闲进程(idle process)。2.6 登录

10、到机器在初始化时,内核在每个可以用于支持用户登录的通信端口创建一个进程。这些进程将运行getty程序的一个拷贝。getty进程初始化自身后等待用户使用这个端口。当用户开始使用该端口时,getty运行login程序,期望一个用户标识出现在第1行并且一个口令出现在第2行。一旦端口的login程序得到了标识和口令,它通过系统的/etc/passwd文件确认用户的身份。如果本次验证成功,那么login进程改变当前目录到用户主目录并执行指定的shell程序以便用户通过shell直接与login进程进行交互。一个登录到UNIX机器的用户只是使用一个在机器启动时创建的进程。因此用户进程通过该shell数据段

11、和堆栈段的唯一拷贝执行一个shell程序。3进程与资源管理进程管理程序负责创建程序员使用的进程抽象并提供措施以便一个进程可以创建、销毁、同步和保护其他进程。类似的,资源管理程序涉及创建合适的抽象来代表一个进程可能请求的实体(并在资源不可得时阻塞它们的执行)。除抽象外,资源管理程序必须提供一个进程用来请求、获得和释放资源的接口。Linux内核负责处理进程调度的程序(像内核中的所有其他部分一样)只有在一个进程或者因为系统调用或者因为中断开始以管态执行时才能执行。Linux中父进程通过fork()系统调用创建一个新的任务/进程。当然,execve()系统调用也将极大的影响进程描述符的内容,因为这样会

12、加载进程并执行一个与调用execve()时所执行程序不同的程序。Linux内核还包括一个系统调用clone()来支持线程。Linux的调度程序负责在内存中选择处于TASK_RUNNING状态的进程,为之分配CPU。schedule()内核函数可以通过中断来调用,它也作为ret_from_sys_call代码块的一部分来调用,所以它总是作为一个与用户进程或中断相关的任务来运行。Linux中使用两种不同的同步机制,一种在内核代码自身内部,另一种为用户进程提供同步机制。内核中的同步主要是保证在当前内核代码处于临界部分时不会产生中断。外部同步机制是基于事件模型。用户可以通过以下四种方式使用内核来执行I

13、PC:管道(和命名管道),System V IPC,System V共享内存,套接字。保护机制有两种形式:地址空间隔离和文件保护。4存储管理Linux使用请求分页虚拟内存模型作为内存管理设计的基础。在该模型中,每个进程分配其自身的虚拟地址空间。进程引用虚拟地址,系统在访问内存地址之前将每个这种引用映射成一个主(也称为物理)内存地址。内核和硬件一起保证了虚拟内存地址的内容被放入到物理内存,并且保证相应的虚拟地址在被进程引用时绑定到正确的物理内存。内存管理程序履行如下一些常见职责:以物理内存页框为单位进行块的分配和回收。保护机制以单页为基础。内存共享基于页。通过内存层次,在辅存和主存之间向前向后移

14、动页面来自动控制移动。虚拟地址空间被划分成段:3GB的用户段和1GB的内核段。每个内核和用户段又进一步划分为代码段和数据段。每当进程执行时,它的状态包括一个段选择器。如果进程在用户空间执行,那么段选择器被设置为user;如果在内核段执行,则选择器被设置为kernel。缺页处理。当进程引用一个缺页时,存储管理程序将该页从辅存拷贝到主存中。装入一页到内存页框中时,存储管理程序首先试图通过调用一个内部内核函数_get_free_pages()来为进程获得一块新的页框。如果没有可用的块,页面管理程序试图释放空间。首先是否存在可以从缓冲区中回收的块,下一步试图回收为System V共享内存保留的页框。如

15、果仍不能满足块请求,页面管理程序就开始通过使用近似的全局最近最少使用(LRU)替代算法查看所有分配用于容纳虚拟地址空间的用户空间部分的页框。从物理内存中移出一个页面时,页面管理程序需要查看它是否是脏(dirty)的。地址变换。Linux超越当今的CPU和内存管理单元(MMU)定义了一个独立于体系结构的存储模型,因此它包含没有用于i386实现的部件。在通用模型中,一个虚拟地址通过三级映射变换为物理地址。一个虚拟地址j被划分为4个部分:页目录偏移,j.pgd页中间目录偏移,j.pmd页表偏移,j.pte页内偏移,j.offset如果将一个页面加载到物理内存中,虚拟地址j对应的物理地址i由下式决定:

16、i = PTE ( PMD ( PGD ( j.pgd ) + j.pmd ) + j.pte ) + j.offset这里PTE代表页表,PMD代表页中间目录表,PGD代表页目录表。由于i386微处理器和兼容的MMU没有足够的硬件支持完整的三级变换过程,所以在这种体系结构中只实现了两级变换。这是通过将每个中间目录减少到一个表项来实现的。5设备管理在Linux中有两种基本的设备管理方法可用:采用轮询判断何时设备完成了一个操作。采用中断。设备驱动程序和设备通过使用主从码字来引用。主码(主设备号)与每个Linux内核将使用的设备驱动程序相关联。从码(从设备号)用于在使用特定设备驱动程序的物理设备之

17、间进行区分。UNIX设备传统上分成块设备和字符设备。缓冲被用于块设备而不是字符设备。Linux保持了这种基本区别,但两种设备类型API之间的差别比UNIX系统中要小得多。当机器引导时,设备驱动程序通常被注册到操作系统中。一个内核函数被用于注册设备。设备驱动程序的API与文件管理程序的文件操作API相同。UNIX试图将每一种设备视为一个文件。6文件管理Linux文件管理程序定义了一个单一的文件内部视图,应用程序用它来读取和修改写在所有存储设备上的文件。每类存储设备在它的文件管理程序中实现相同的视图。Linux文件管理程序设计为让应用程序使用一组由POSIX所指定的固定函数来操作文件:open()

18、、close()、lseek()、read()、write()、ioctl()等等。文件管理程序中一个与文件系统独立的部分处理普通工作,如检查访问权限和决定何时需要读写磁盘块。另一部分处理所有与文件系统相关的工作,如判断块在磁盘上的定位和指导设备驱动程序读写特定块。两部分结合起来使得在处理磁盘上的文件时,Linux在API级别提供了一组固定的操作,即使文件使用Windows OS、MINIX或其他操作系统写入。Linux文件管理程序API建立在虚拟文件系统(VFS)输出的抽象文件模型上。VFS执行与系统独立的文件操作,操作系统设计人员对VFS提供了扩展以完成所有需要的与文件系统相关的操作。VF

19、S的核心是转换。转换(switch)为用户空间程序提供了标准文件管理程序API并建立内部接口,该接口由支持MS-DOS、MINIX、Ext2等文件的不同文件系统翻译程序所使用。通过实现一个新的文件系统相关(翻译程序)的部件可以提供对一种新文件系统的支持。一个VFS文件描述符称为一个inode。当文件打开时,每个与系统相关的文件翻译程序将外部描述符的内容转换为VFS inode格式。相反,文件关闭时,内部inode的内容被用于更新外部文件描述符。VFS也支持目录,所以它假设外部文件目录至少包含每个存储于该目录文件的名字和其文件描述符的地址。装载文件系统。具有可移动介质存储设备的计算机,每次介质装

20、入或移出时必须改变系统的文件结构。VFS采用传统的UNIX机制,允许这些文件系统能结合到系统的目录层次。mount命令用于向现存的目录层次添加一个新的文件系统,用新的文件系统的根结点代替以前装载文件系统的一个目录来实现。打开文件。为了打开一个文件,文件管理程序在存储系统上搜索指定的路径名。搜索可能是一个扩展的过程。如果搜索碰到一个安装点,那么它从一种文件系统转移到另一种文件系统并继续搜索。因此搜索可能从,如一个Ext2文件系统开始,但最终在一个MS-DOS文件系统中找到文件。对于成功打开的文件,在进程的文件描述符表中创建一表项,该表项指向打开文件表中一个叫做文件结构的表项。文件结构表项在主存中

21、创建以后,它引用VFS的inode。读写文件。当文件打开时,创建struct file的一个实例。在该文件中,字段:struct file_operation *f_ops;指定read()、write()、lseek()、select()等函数的入口点,它们用于执行与系统相关的文件I/O操作。同时包含的还有一组在inode中指定的默认file_operations,这样如果任何特定文件操作没有在f_ops列表中指定,那么将使用来自默认列表中的函数。这些实例的实质目标是在用户空间和辅存之间移动信息。一个文件被组织为连续的字节流,使用缓冲的方法可以极大的提高系统的性能。Linux试图使用最大限度

22、的内存来提供I/O缓冲区。7了解Linux的更多信息Linux不断的发展,有许多优秀的可利用的信息源。下面列出一些可能对你有帮助的站点:Linux文档工程(http:/metalab.unc.edu/mdw/Linux.html)是有关Linux各方面文档的在线收集。Beck, et al.1998的书Linux Kernel Internals的第2版描述了2.0版内核的组织并解释了Linux单个部分是如何设计的细节。Vahalia2000的有关UNIX内部结构、Bach1996的有关UNIX System V内部结构和McKusick, et al.1996的有关BSD4.4内部结构的书描

23、述了传统UNIX系统是如何构建的。学习Linux内部结构的人必须阅读源代码。完整的源代码浏览站点http:/lxr.linux.no/source对此有帮助。另外,应该在实验室的机器上有一份源代码的拷贝。它可能被放在文件系统层次的任何地方,但通常的路径在/usr/src/linux上。也就是说,linux是包含所有源代码子树的根目录。下面是一些有用的资源:http:/www.linux.org/Linux的官方网站中国Linux论坛永远的Unixhttp:/www.kernelnewbies.org/Kernel新手上路http:/www.tldp.org/Linux文档项目Linux杂志去搜

24、索你要的东西吧:)四、实验步骤实验一安装Red Hat Linux 8.0本实验使用图形化、基于鼠标的安装程序,从网络上定制安装Red Hat Linux。所讨论的课题如下:逐渐熟悉安装程序的用户界面;启动安装程序;选择安装方法;安装中的配置步骤(语言、键盘、鼠标、分区等等);结束安装。1图形化安装程序用户界面如果你从前使用过图形化用户界面(graphical user interface,GUI),你对这一过程会比较熟悉;你只需使用鼠标在屏幕间翻阅,点击按钮,或者输入文本字段。你还可以使用Tab和Enter键在安装中浏览各屏幕。注:如果不想使用GUI安装程序,你可以使用文本模式的安装程序。要

25、启动文本模式安装程序,使用以下引导命令:boot: text本实验不提供文本模式安装步骤的介绍。关于虚拟控制台的表示。Red Hat Linux安装程序不仅仅提供了安装进程的对话框。除了提供从shell提示下输入命令的方法外,它还提供了几种不同类型的诊断消息。安装程序在五个虚拟控制台中显示这些消息,你可以用一个组合键在其间切换。这些虚拟控制台在你安装Red Hat Linux中遇到问题时会对你很有帮助。安装中在系统控制台上显示的消息可以帮助你准确地找到问题的症结所在。关于虚拟控制台的列表,所用的切换键组合,以及它们显示的内容,请参阅表-1。一般来说,除非你试图诊断安装问题,你没有理由离开默认的

26、控制台(第七号虚拟控制台)。表-1 控制台,组合键,和内容控制台组合键内容1Ctrl-Alt-F1安装对话框2Ctrl-Alt-F2shell提示3Ctrl-Alt-F3安装日志(安装程序的消息)4Ctrl-Alt-F4与系统相关的消息5Ctrl-Alt-F5其他消息7Ctrl-Alt-F7X图形化显示2启动安装程序要开始安装,你必须首先引导安装程序。请确定你已具备安装中将会用到的所有资料。注意,偶尔,某些硬件在安装中需要一个驱动程序盘。驱动程序盘为安装程序不支持的硬件添加支持。你可以使用下列任何介质来引导安装程序(这要根据你的系统所能支持的而定),本实验引导盘,从网络上进行安装:可引导的光盘

27、 你的机器支持可引导的光盘驱动器,并且你想执行网络或硬盘驱动器安装。引导盘 你的机器不支持可引导的光盘驱动器,并且你想从一个本地光盘、网络或硬盘驱动器上安装。将引导盘插入到你的计算机的第一个软盘驱动器内,然后重新引导(或使用光盘来引导,如果你的计算机支持的话)。你可能需要改变你的BIOS设置来允许你从软盘或光盘中引导。片刻之后,一个包含 boot: 提示的屏幕就会出现。这个屏幕包括了许多不同的引导选项。每个引导选项还有一个或多个与之关联的帮助屏幕。要访问帮助屏幕,按在屏幕底部列出的恰当的功能键。在你引导安装程序的时候,请留意两个问题:当你看到了 boot: 提示后,如果在一分钟内不采取任何行动

28、,安装程序会自动开始。要禁用这项功能,按帮助屏幕上的功能键之一。如果你按了帮助屏幕上的功能键,在帮助屏幕从引导介质中被读取时会出现稍微的延迟。正常情况下,你只需按 Enter 键来引导。请留意引导消息以便查看 Linux 内核是否检测到了你的硬件。如果你的硬件被正确地检测到,请继续到下一个部分。如果它没有正确地检测到你的硬件,你可能会需要在专家模式下重新开始安装。3选择一种安装方法你想使用何种安装方法?可用的安装方法如下所列:光盘如果你有一个光盘驱动器和 Red Hat Linux 光盘,你可以使用这种方法。你将需要一个引导盘或一个可引导的光盘。硬盘驱动器如果你已将 Red Hat Linux

29、 ISO 映像复制到本地硬盘驱动器中,你可以使用这种方法。你将需要一个引导盘。NFS 映像如果是从一个 NFS 服务器中使用 ISO 映像或 Red Hat Linux 的镜像映像来安装,你可以使用这种方法。你将需要一个网络驱动程序盘。另,NFS 安装也可以在 GUI 模式中执行。本实验可采用这种模式进行安装。FTP如果你从一个 FTP 服务器中直接安装,使用这种方法。你将需要一个网络驱动程序盘。本实验也可采用这种模式进行安装。HTTP如果你从一个 HTTP(万维网)服务器中直接安装,使用这种办法。你将需要一个网络驱动程序盘。4通过NFS安装NFS对话框(图-1)只有在你从NFS服务器中安装时

30、才会出现(如果你使用网络驱动程序盘提供了驱动程序,并且在安装方法中选择了NFS 映像的话)。输入你的 NFS 服务器的域名或 IP 地址。譬如,如果你是从 域的 eastcoast 主机上安装的话,在NFS 服务器 字段中输入 。接下来,输入导出目录的名称。如果 NFS 服务器导出的是 Red Hat Linux 安装树的镜像,输入包含 RedHat 目录的目录(如果你不知道该目录的路径,请向实验指导人员咨询)。譬如,如果你的 NFS 服务器包含目录 /mirrors/redhat/i386/RedHat,请输入 /mirrors/redhat/i386。接下来,你会看到欢迎对话框。FTP安装

31、类似,这里不再赘述。图-1 NFS 设置对话框5安装中的配置接下来的步骤可能与本大纲有少许不一致,你可以根据屏幕提示进行操作。如果遇到问题,请向实验指导人员资讯。5.1 欢迎使用 Red Hat Linux欢迎屏幕不提示你做任何输入。点击下一步按钮来继续。5.2 使用鼠标来选择你想在安装中使用的语言选择恰当的语言会在稍后的安装中帮助你定位时区配置。安装程序将会试图根据你在这个屏幕上所指定的信息来定义恰当的时区。当你选定了语言后,点击下一步来继续。5.3 键盘配置使用鼠标来选择你要在本次安装中和今后用作系统默认的键盘布局类型(例如,美国英语式)。选定后,点击下一步来继续。5.4 鼠标配置为你的系

32、统选择正确的鼠标类型。如果你找不到确切的匹配,选择你确定会与你的系统兼容的鼠标类型。选定后,点击下一步来继续。5.5 选择安装还是升级如果安装程序在你的系统上检测到从前安装的 Red Hat Linux 版本,升级检查屏幕就会自动出现。如果你想执行升级,选择升级现有安装。如果你想对要在系统上升级的软件包有更大程度上的控制,请确定选择定制要升级的软件包。要在你的系统上执行 Red Hat Linux 的新安装,选择执行 Red Hat Linux 的新安装,然后点击下一步。本实验在机器上执行Red Hat Linux的新安装。5.6 安装类型选择你要执行的安装类型。Red Hat Linux 允

33、许你选择最符合你需要的安装类型。你的选项有个人桌面、工作站、服务器、定制、和升级。本实验选择定制,选定后,点击下一步来继续。5.7 磁盘分区设置分区允许你将硬盘驱动器分隔成独立的区域,每个区域都如同是一个单独的硬盘驱动器。如果你运行不止一个操作系统,分区将特别有用。在这个屏幕上,你可以选择自动分区,或者使用 Disk Druid 来手工分区。自动分区允许你不必亲自为驱动器分区而执行安装。如果你对在系统上分区信心不足,建议你不要选择手工分区,而是让安装程序自动为你分区。要手工分区,选择 Disk Druid 分区工具。5.8 自动分区自动分区在有关哪些数据要从系统中删除(若适用)这一方面允许你有

34、控制权。可供你选择的选项有:删除系统内所有的 Linux 分区选择该选项来只删除 Linux 分区(在从前安装 Linux 时创建的分区)。这将不会影响你的硬盘驱动器上可能会有的其它分区 (例如:VFAT 或 FAT32 分区)。删除系统内的所有分区选择这一选项来删除你的硬盘驱动器上的所有分区(这包括由其它操作系统如 Windows 9x/NT/2000/ME/XP 所创建的分区或 NTFS 分区)。保存所有的分区,使用现有的空闲空间选择这一选项来保留你当前的数据和分区,假设你的硬盘驱动器上有足够的可用空闲空间的话。使用你的鼠标来选择你想安装 Red Hat Linux 的硬盘驱动器。如果你有

35、两个或两个以上硬盘驱动器,你应该选择包含本次安装的硬盘驱动器。没有被选择的硬盘驱动器,及其中的数据,将不会受到影响。要评审并对自动分区创建的分区做一些必要的改变,选择评审选项。选择评审后,点击下一步来向前移动,你将会看到在 Disk Druid 中为你创建的分区。如果它们没有满足你的需要,你还能够对这些分区进行修改。当你选好之后,点击下一步来继续。本次实验采用手动分区方式,来体会一下为硬盘分区的感觉。5.9 为你的系统分区这一步,你必须告诉安装程序要在哪里安装 Red Hat Linux。这是通过在将要安装 Red Hat Linux 的一个或多个磁盘分区上定义挂载点来做到的。这时,你可能还需

36、要创建或删除分区(请参见图-2)。图-2 用 Disk Druid 来分区安装程序使用的分区工具是 Disk Druid。除了某些较隐晦的情况外,Disk Druid 能够为典型的安装处理其分区要求。实验中,首先删除所有已存在的分区,无论是Linux的分区还是其他系统的分区。然后,在硬盘上创建至少两个分区,它们是:根分区,挂载点为 / ,文件系统类型为ext3或者ext2;交换分区,挂载点为 /swap ,文件系统类型swap。以下是一个推荐的分区方案:一个交换分区(至少 32 MB)交换分区用来支持虚拟内存。换一句话说,当没有足够的内存来贮存你的系统正在处理的数据时,这些数据就被写入交换区。

37、你的交换分区的最小值应该相当于你的计算机内存的两倍和32 MB中较大的一个值。一个 /boot 分区(100 MB)这个挂载在 /boot 上的分区包含操作系统的内核(允许你的系统引导 Red Hat Linux),以及其它几个在引导过程中使用的文件。鉴于多数 PC BIOS 的限制,创建一个较小的分区来贮存这些文件是较佳的选择。对大多数用户来说,100 MB引导分区应该是足够了。一个根分区(1.7-5.0 GB)这是“/”(根目录)将被挂载的位置。在这个设置中,所有文件(除了贮存在 /boot 分区上的以外)都位于根分区上。一个大小为 1.7 GB 的根分区可以容纳与个人桌面或工作站相当的安

38、装(只剩极少空闲空间),而一个大小为 5.0 GB 的根分区将会允许你安装每一个软件包。5.10 引导装载程序配置为了要不使用引导盘来引导你的系统,你通常需要安装一个引导装载程序。引导装载程序是计算机启动时所运行的第一个软件,它的责任是载入操作系统内核软件并把控制转交给它,然后,内核软件再初始化剩余的操作系统。安装程序为你提供了两个引导装载程序:GRUB 和 LILO。GRUB(GRand Unified Bootloader)是一个默认安装的功能强大的引导装载程序。GRUB 能够通过连锁载入另一个引导装载程序来载入多种免费和专有操作系统(连锁载入是通过载入另一个引导装载程序来载入 DOS 或

39、 Windows 之类不被支持的操作系统的机制)。LILO (LInux LOader) 是用于 Linux 的灵活多用的引导装载程序。它并不依赖于某一特定文件系统,能够从软盘和硬盘引导 Linux 内核映像,甚至还能够引导其它操作系统。如果你不想把 GRUB 安装为引导装载程序,点击改变引导装载程序。然后,你便可以选择安装 LILO 或干脆不安装引导装载程序。本实验采用LILO作为引导程序,所以,请点击改变引导装载程序,改变引导程序为LILO。每个可引导分区都被列出,包括被其它操作系统使用的分区。包含你的系统根文件系统的分区将有一个Red Hat Linux(GRUB)或 linux(LIL

40、O)标签。其它分区也可以有引导标签。如果你想添加或改变其它被安装程序检测到的分区的标签,单击该分区来选择它,选定后,你可以点击 编辑 按钮来改变引导标签。在你想要的引导分区旁边选择默认来选择你默认的可引导 OS。你选定了默认引导映像后,安装才会继续。现在,你已选定了要安装的引导装载程序,你还可以决定要在哪里安装引导装载程序。你可以在下面两个位置之一安装引导装载程序:主引导记录(MBR)这是我们推荐安装引导装载程序的地方,除非 MBR 已经在启动另一个操作系统的引导装载程序,如 System Commander。MBR 是你的硬盘驱动器上的一个特殊区域,它会被你的计算机的 BIOS 自动载入,并

41、且是引导装载程序控制引导进程的最早地点。如果你在 MBR 上安装引导装载程序,当你的机器引导时,GRUB(或 LILO)会呈现一个引导提示。然后你便可以引导 Red Hat Linux 或其它任何你配置要引导的操作系统。你的引导分区的第一个扇区如果你已在系统上使用另一个引导装载系统的话,我们推荐这个位置。在这种情况下,你的另外的引导装载系统会首先取得控制权。然后你可以配置它来启动 GRUB(或 LILO),继而引导 Red Hat Linux。如果你的系统只将使用 Red Hat Linux,你应该选择 MBR。对于带有 Windows 95/98 的系统来说,你也应该把引导装载程序安装到 M

42、BR,因此它可以引导两个操作系统。本实验将引导程序装在MBR中。强制使用 LBA32 (通常不需要)选项允许你的 /boot 分区超过 1024 柱面限制。如果你的系统支持使用 LBA32 扩展来引导超过 1024 柱面限制的操作系统,并且你想把 /boot 分区放置在 1024 柱面之外,你应该选择该选项。如果你想给引导命令添加默认选项,请把它们输入到 内核参数 字段中。你输入的任何选项将会在每次引导时被传递给 Linux 内核。5.11 网络配置如果你没有网络设备,你将看不到这个屏幕。如果你有网络设备但还没有配置联网(譬如,从你创建的网络驱动程序盘中引导,并在提示时输入了你的网络信息),你

43、现在就有机会来配置它。安装程序会自动检测到你拥有的任何网络设备,并把它们显示在网络设备列表中。选定网络设备后,点击编辑。从弹出的编辑接口屏幕上,你可以选择通过 DHCP 来配置网络设备的 IP 地址和子网掩码(若没有选择 DHCP ,则手工配置),你可以选择在引导时激活该设备。如果你选择了引导时激活,你的网络接口就会在引导时被启动。如果你没有 DHCP 客户的访问权,或者你不能肯定这里该提供什么信息,请和你的网络管理员联系。5.12 防火墙配置Red Hat Linux 为增加系统安全性提供了防火墙保护。防火墙存在于你的计算机和网络之间,用来判定网络中的远程用户有权访问你的计算机上的哪些资源。

44、一个正确配置的防火墙可以极大地增加你的系统安全性。请为你的系统选择恰当的安全级别。5.13 语言支持的选择你的系统上可以安装并支持多种语言。你必须选择一种语言作为你的默认语言。当安装结束后,你的系统中将会使用默认语言。如果你选择安装了其它语言,你可以在安装后改变你的默认语言。如果你只打算在系统上使用一种语言,只选择那种语言将会节省大量磁盘空间。默认语言是你在安装中选择要使用的语言。要在你的系统上使用多种语言,具体指定要安装的语言,或者选择在你的 Red Hat Linux 系统上安装所有可用语言。5.14 时区配置你可以通过选择你的计算机的物理位置,或者指定你的时区和通用协调时间(UTC)间的

45、偏移来设置你的时区。5.15 设置根口令设置根帐号及其口令是安装过程中最重要的步骤之一。你的根帐号与用在 Windows NT 机器上的管理员帐号类似。根帐号被用来安装软件包,升级RPM,以及执行多数系统维护工作。作为根用户登录可使你对系统有完全的控制权。安装程序会提示你为你的系统设置一个根口令。你必须输入一个根口令。如果根口令没有被输入,安装程序将不允许你继续。5.16 验证配置如果你执行的是个人桌面、工作站、或服务器安装,请跳到下一节。如果你不必设置网络口令的话,你可以跳过这一部分。本实验跳过这一部分。5.17 软件包组的选择当分区被选定并按配置格式化后,你便可以选择要安装的软件包了。除非

46、你选择的是定制安装,安装程序将会自动为你选择多数软件包。你可以选择根据功能归类的软件包组(譬如,X 窗口系统、编辑器);单个软件包;或者两者的组合。要选择一个软件包组,点击它旁边的复选箱。本实验软件包的一些配置情况如下: Desktop组:选择X Windows System, GNOME Desktop Environment和KDE Desktop Environment任选一个即可; Applications组:加上Editors,其他任意; Servers组:都可以不选; Development组:选择Development Tools,其他任意; System组:任意,不用选Prin

47、ting Support。5.18 准备安装你应该看到一个为你安装 Red Hat Linux 做准备的屏幕。当你重新引导系统后,一份完整的安装日志可在 /root/install.log 中找到,以备今后参考。要取消安装进程,按你的计算机的重启按钮,或者使用 Control-Alt-Delete 组合键来重启你的机器。5.19 安装软件包到了这一步,在所有软件包被安装之前你将不必进行任何操作。安装的快慢要依据你所选择的软件包数量和你的计算机速度而定。5.20 创建引导盘要创建一张引导盘,在你的磁盘驱动器内插入一张空白的、格式化了的磁盘,然后点击下一步。强烈建议你创建一张引导盘。如果由于某种原

48、因,你的系统无法使用 GRUB、LILO、或第三方的引导装载程序来正确引导,引导盘将会使你能够正确地引导你的 Red Hat Linux 系统。如果你不想创建引导盘,请确定在点击下一步按钮前选择相应的选项。如果你使用引导盘来引导你的系统(而不是 GRUB 或 LILO),无论何时你对内核做了些改变(包括安装一个新内核)后,你都应确定创建一张新的引导盘。5.21 视频卡配置安装程序现在将会给你一个视频卡列表,以供你选择。如果你决定要安装 X 窗口系统软件包,你现在就有机会为你的系统配置一个 X 服务器。如果你的视频卡没有出现在列表中,这说明 X 可能不支持它。然而,如果你对你的视频卡有技术上的了

49、解,你可以选择没列出的卡,然后试图通过匹配视频卡的视频芯片与 X 服务器来配置它。下一步,输入在你的视频卡上安装的视频内存数量。如果你不能肯定,请阅读你的视频卡文档。选择多于可用的内存不会损坏你的视频卡,但是 X 服务器可能不会正确启动。如果你断定你选择的数值是不正确的,你可以点击恢复原值按钮来返回到建议的设置。如果你宁愿安装后再配置 X 或干脆不安装,你还可以选择跳过 X 配置。5.22 X 配置显示器和定制为了完成 X 配置,你必须配置你的显示器并定制你的 X 设置。(1) 配置你的显示器安装程序会给你提供一个显示器列表。你既可以使用自动为你检测到的显示器,也可以在这个列表中另选一个。如果

50、你的显示器没有在列表中出现,选择最恰当的通用型号。若选择通用显示器,安装程序会建议一个水平和垂直频率范围。这些数值通常在你的显示器文档中可以找到,也可从你的显示器的销售商或制作商处得到。请核对你的文档以确保这些数值被正确设置了。安装程序为你的系统建议的水平和垂直频率范围也显示在显示器列表之下。如果你断定你所选的显示器或频率数值不正确,你可以点击恢复原值按钮来返回到建议的设置中。当显示器配置完毕后,点击下一步。(2) 定制配置为你的 X 配置选择正确的色彩深度和分辨率。如果你执行的是定制或服务器安装,你还可以选择在安装结束后,你要将系统引导入文本还是图形化环境。除非你有特殊需要,推荐你引导入图形

51、化环境(与 Windows 环境相似)。如果你选择要引导入文本环境,你将会看到一个命令提示(与 DOS 环境相似)。个人桌面和工作站安装会自动引导入图形化环境。6安装完成祝贺你!你的 Red Hat Linux 安装现已完成!安装程序会提示你做好重新引导系统的准备。如果安装介质(磁盘驱动器内的磁盘或光盘驱动器内的光盘)在重新引导时没有被自动弹出,请记住取出它们。如果你没有安装并配置一个引导装载程序,你现在将需要使用你在安装过程中创建的引导盘。计算机正常的通电序列完成后,你应该看到图形化的引导装载程序提示,在这里,你可以做以下的事情:按 Enter 键导致默认的引导项目被引导。选择一个引导标签,

52、接着按 Enter 键导致引导装载程序引导与该引导标签相对应的操作系统。什么都不做引导装载程序的超时时间过后(默认为五秒),引导装载程序将会自动引导默认的引导项目。做引导 Red Hat Linux 的恰当选择。你应该看到一行行的信息往上卷。最终,你应该看到一个 login: 提示或 GUI 登录屏幕(如果你安装了 X 窗口系统并选择要自动启动它的话)。在你第一次启动了 Red Hat Linux 机器时,你会看到设置代理屏幕。它会引导你进行 Red Hat Linux 配置。使用这个工具,你可以设置系统时间和日期;安装软件;在 Red Hat 网络上注册系统等等。设置代理让你能够一开始就配置

53、环境,因此你可以马上就得心应手地使用 Red Hat Linux 系统。二、编译Linux内核本实验将告诉你什么是Linux内核,什么是模块以及如何编译、安装一个新的内核。实验将带领你经历内核完整的编译过程,并在你的机器上安装一个最新稳定版本的Linux内核。本实验讨论的课题如下:内核入门查找并下载源代码配置内核编译和安装内核启动配置1内核入门1.1 内核就是.Linux!当你听到”Linux”这个词时你想到了什么?当我听到它时,我通常会想到一个完整的Linux软件包和其中所有包含的程序。但是,你也许会惊奇地发现,从技术上而言,Linux是一个内核,而且只是一个内核。其余我们所通常称之为”Li

54、nux”(例如一个 shell 和编译器)的部分实质上只是整个软件包的一部分,它们从技术上而言是与Linux(内核)是分开的。当许多人使用”Linux”这个词来表达“基于Linux软件包”时,每个人都会同意Linux内核是每个软件包的心脏。1.2 与硬件接口Linux内核的重要职责是与你系统中的硬件直接接口。内核提供了一个在裸机与应用程序间的抽象层。例如,程序本身不需要了解你的主板芯片集或磁盘控制器的细节了它们可以在更高层次上读写磁盘。1.3 抽象CPULinux内核还提供了在你系统处理器上的一层抽象允许多个程序看起来在同时运行。Linux通过允许多个UNIX进程一起运行而内核负责将处理器在其

55、间分享。一个Linux内核可以支持一个或多个CPU而你正在使用的内核可能是“可支持单处理器”(UP-aware)或“可支持对称多处理器”(SMP-aware)。如果你碰巧有一块SMP主板,但你使用的是一个UP内核,Linux将无法“看到”你多余的处理器!要解决这个问题,你需要为你的硬件编译一个特定的SMP内核。当前,SMP内核也可运行在单处理器系统上,但会有少许的性能影响。1.4 抽象 I/O内核也负责处理非常需要的任务抽象所有形式的I/O操作。想象一下这个后果,如果每个程序需要与你的特定硬件直接操作,当你更换磁盘控制器后,你的所有程序将无法运行了!幸运的是,Linux内核遵循UNIX的模型提

56、供了一个简单的磁盘I/O抽象,而每个程序都能使用它。这样,你的数据库系统将不用担心是运行在一个IDE硬盘上、一个SCSI RAID阵列或一个NFS文件系统上了。1.5 网络为中心Linux的一个出名之处是它健壮的网络功能,尤其是TCP/IP支持。如果你猜测TCP/IP栈是实现在Linux内核,那你就对了!内核为需要在网络上发送数据的程序提供了一个易用、高层次的接口。在这后面,Linux内核与你的以太网卡或Modem直接接口,而且处理底层的Internet通讯细节操作。1.6 优秀的网络支持Linux一系列优点中出色的一点是所有有用的功能都能包含在内核中,尤其是与网络相关的。例如,你可以配置一个

57、内核来允许你整个的家庭网络通过你Linux上的Modem访问因特网这被称为IP Masquerading,或IP NAT。另外,Linux内核可以被配置为载出或安装(mount)基于网络的NFS文件系统,使得其他在你LAN上的UNIX机器与你的Linux系统轻松共享数据。1.7 启动,第一部分当你开启你基于Linux的系统时,内核被一个引导工具,例如LILO,从硬盘载入内存。在此时,内核接管了你的系统控制。它所作的第一件事是探测并初始化它所找到的硬件它被编译成能支持的那些。一旦硬件已经被正确初始化,它就准备开始运行进程了。它运行的第一个进程被称为”init”,位于/sbin目录下。然后,”in

58、it”启动在/etc/inittab文件中指定的其他进程。1.8 启动,第二部分”init”通常启动一个名为”getty”程序的多份拷贝,它等待来自控制台的登录。在getty成功处理一个登录请求后,你缺省的shell(通常是bash)被载入。一旦你进入bash,你就有能力来启动任意一个你想要的程序了。当所有这些新的进程被启动后,内核仍在控制系统,精确地给CPU分割时间片这样每个进程将均匀地分到。另外,内核继续为各种运行中的进程提供硬件抽象和网络服务。1.9 介绍.模块!所有最新的Linux内核都支持内核模块。Kernel模块是非常整齐的它们是除非需要驻留在硬盘上的内核部分。一旦内核需要一个特定

59、模块的功能时,它从硬盘被载入,自动集成到内核中就可被使用了。另外,如果内核模块有好几分钟未被使用,内核可以自愿地将其从内存中调出被称之为“自动清除”。1.10 模块,第二部分内核模块是驻留在/lib/modules目录下,而且每个模块在其文件名结尾都有一个”.o”。你也许会猜到,每个模块代表一个内核功能的特定组件一个模块可能提供FAT文件系统支持,而另一个可能支持一种特殊的ISA以太网卡。模块使得你的内核占用少量的内存空间。你可创建一个内核只包含足以启动计算机的功能,而其他的功能则在需要时被载入。由于内核能自动清除它所载入的模块,你系统的内存资源能被很好地利用。1.11 模块特别注意!你是无法

60、将所有一切放入一个模块的。由于模块是存放在磁盘上,你可启动的内核映像需要被编译入你的磁盘控制器以及对你基本文件系统(通常是ext2文件系统)的支持。如果你没有将这些重要的组件编译入你的内核映像(而是将它们作为模块来编译),然后你的内核就无法获得基本的功能来从磁盘上载入这些模块了导致了一个“鸡生蛋、蛋生鸡”的问题!2查找并下载源代码2.1 内核版本要编译一个最新的内核,你需要首先下载它的源代码。在你下载内核的源代码前,你要知道你要找什么。首先要问你自己的问题是你需要一份稳定的还是测试版的内核?稳定版内核通常版本号第二位用偶数数字例如,2.0.38、2.2.15、2.2.18和2.4.1是被认为是

61、“稳定”的内核(分别由于其包含0、2、2和4)。如果你想尝试测试版内核,你通常需要找那些版本号第二位是奇数号码的内核。例如,2.3.99和2.1.38都是测试版内核(分别由于其包含3和1)。2.2 内核版本历史2.4系列的内核被认为是较新而且稳定的内核。如果“较新”和“稳定”是你想要的,查找一个版本号的第三位是最高的2.4内核(2.4.26是目前最新的版本)。当2.4系列的内核仍在开发中,2.5系列已经开始了。这个系列是作为将被集成到2.6稳定版系列的新功能和高级功能的测试版。2.5系列到了2.5.75,其开发已经停止。开发人员已经开始着手2.6.0。如果你喜欢冒险使用最新的技术,你可能想使用可以找到的最新的2.6系列内核。2.3 下载内核如果你只是想编译一个你已安装内核的新版本(例如,实现SMP支持),那不需要下载任何代码。你可以在http:/www.kernel.org/pub/linux/kernel上找到内核代码。当你进入到那后,你将发现内核的源代码按内核版本(v2.2、v2.3等),被组织到多个不同的目录中。在每个目录中,你将发现文件被冠以”linux-x.y.z.tar.gz”和”linux-x.y.z.tar.bz2”。这些就是Linux内核的源代码。你也将看到冠以

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!