操作系统实验1(编译内核)实验指导书
- 格式:doc
- 大小:925.00 KB
- 文档页数:7
篇一:操作系统实验报告完全版《计算机操作系统》实验报告班级:姓名:学号:实验一进程控制与描述一、实验目的通过对windows 2000编程,进一步熟悉操作系统的基本概念,较好地理解windows 2000的结构。
通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解windows 2000中进程的“一生”。
二、实验环境硬件环境:计算机一台,局域网环境;软件环境:windows 2000 professional、visual c++6.0企业版。
三、实验内容和步骤第一部分:程序1-1windows 2000 的gui 应用程序windows 2000 professional下的gui应用程序,使用visual c++编译器创建一个gui应用程序,代码中包括了winmain()方法,该方法gui类型的应用程序的标准入口点。
:: messagebox( null, “hello, windows 2000” , “greetings”,mb_ok) ;/* hinstance */ , /* hprevinstance */, /* lpcmdline */, /* ncmdshow */ )return(0) ; }在程序1-1的gui应用程序中,首先需要windows.h头文件,以便获得传送给winmain() 和messagebox() api函数的数据类型定义。
接着的pragma指令指示编译器/连接器找到user32.lib库文件并将其与产生的exe文件连接起来。
这样就可以运行简单的命令行命令cl msgbox.cpp来创建这一应用程序,如果没有pragma指令,则messagebox() api函数就成为未定义的了。
这一指令是visual studio c++ 编译器特有的。
接下来是winmain() 方法。
其中有四个由实际的低级入口点传递来的参数。
计算机操作系统课程实验报告专业信息管理与信息系统班级 1203601学号 120360117姓名乐云指导教师周学权计算机操作系统课程实验报告专业信息管理与信息系统班级 1203601学号 120360114姓名郭鑫指导教师周学权操作系统实验实验1 使用虚拟机安装系统 4学时【实验目的】1.了解虚拟机软件的使用。
2.了解使用虚拟机安装Windows及Ubuntu操作系统。
【实验内容】1. 安装虚拟机软件VirtualBox。
2. 配置VirtualBox环境安装WindowsXP,并在虚拟机中启动windowsXP。
3. 配置VirtualBox环境安装Ubuntu 10.10,并在虚拟机中启动Ubuntu。
【实验环境】VirtualBox4.0Windows XPUbuntu 8.04【实验过程】一、创建虚拟机首先运行VirtualBox,单击左上角的“新建”。
单击下一步。
出现如下图的界面,在名称后输入自己起的名字,如test选择自己想要安装的系统类型和版本,本次试验是安装windows xp系统设置完成后,单击下一步。
接下来是设置虚拟机的内存大小,本次实验操作的计算机内存为4GB,所以我选择分配给我的虚拟机的内存为512MB,然后单击下一步。
接着创建虚拟硬盘,选择创建新的虚拟硬盘,单击下一步。
选择虚拟硬盘的类型,默认选择了VDI类型,单击下一步。
接下来选择为动态扩展类型,因为计算机的存储空间不大。
单击下一步。
动态扩展:如果你为你的虚拟磁盘分配的是10G空间,虚拟磁盘占用真实磁盘空间的范围就为0~10G。
固定大小:如果你为你的虚拟磁盘分配的是10G空间,虚拟磁盘占用真实磁盘空间永远不是10G,不管虚拟磁盘空间是否被全部使用。
选择虚拟机在本地磁盘中的位置和大小,单击下一步。
确认虚拟机的详细情况,点击下一步。
这时我们已经成功的创建了一个虚拟机了,接下来我们要开始配置这个虚拟机安装操作系统选择刚才创建的虚拟机,然后单击上方的“开始”弹出了首次运行向导,单击下一步。
内核编译的步骤内核编译是指将Linux内核源代码转换为可执行的二进制文件的过程。
本文将介绍内核编译的详细步骤,以帮助读者了解并掌握这一过程。
第一步:获取内核源代码要进行内核编译,首先需要获取Linux内核的源代码。
可以通过官方网站或开源社区下载最新版本的内核源代码,也可以从版本控制系统中获取。
第二步:配置内核在进行内核编译之前,需要对内核进行配置。
配置内核的目的是根据具体需求选择合适的功能和选项。
可以使用make menuconfig、make xconfig或make config等命令进行配置。
第三步:编译内核配置完成后,就可以开始编译内核了。
在终端中切换到内核源代码目录,并执行make命令。
编译过程可能需要一段时间,取决于计算机性能和内核源代码的大小。
第四步:安装内核编译完成后,可以将生成的内核安装到系统中。
可以使用make install命令或手动将编译生成的内核文件复制到/boot目录,并修改引导加载程序的配置文件。
第五步:更新引导加载程序安装完内核后,需要更新引导加载程序,使其能够启动新安装的内核。
可以使用grub2-mkconfig、grub-mkconfig、update-grub 等命令更新引导加载程序的配置文件。
第六步:重启系统完成内核编译和引导加载程序的配置后,需要重启系统以使新内核生效。
在重启过程中,选择新安装的内核并等待系统启动。
第七步:验证新内核系统重启后,可以通过执行uname -r命令来验证新内核是否成功安装。
如果显示的内核版本是刚刚安装的新内核版本,则说明内核编译成功。
第八步:配置内核模块除了编译内核本身,还可以编译和加载内核模块。
内核模块是一种动态加载的代码,可以在运行时添加或删除。
可以使用make modules和make modules_install命令编译和安装内核模块。
第九步:定制内核在掌握了基本的内核编译步骤后,还可以根据具体需求进行内核定制。
可以通过配置内核选项和功能来满足特定的需求,例如优化性能、减小内核体积等。
操作系统原理实验报告一、实验目的操作系统是计算机系统中最为关键的软件之一,它负责管理和控制计算机的硬件和软件资源,为用户和应用程序提供一个方便、高效、稳定的运行环境。
本次实验的目的在于通过实际操作和观察,深入理解操作系统的核心原理和关键机制,包括进程管理、内存管理、文件系统管理、设备管理等方面,提高对操作系统的认识和应用能力。
二、实验环境本次实验使用的操作系统为 Windows 10 专业版,开发工具为Visual Studio 2019,编程语言为 C++。
三、实验内容及步骤(一)进程管理实验1、进程创建与终止编写程序,使用系统调用创建一个新的进程,并在新进程中执行特定的任务,如打印一段文本。
观察新进程的创建过程和资源分配情况。
编写程序,实现父进程等待子进程终止,并获取子进程的退出状态。
2、进程调度编写程序,模拟多个进程的并发执行,设置不同的优先级和时间片。
观察进程的调度顺序和执行时间,分析调度算法的效果。
(二)内存管理实验1、内存分配与释放编写程序,使用动态内存分配函数(如 malloc、new 等)申请一定大小的内存空间,并进行读写操作。
观察内存的分配和释放过程,检查是否存在内存泄漏。
2、内存分页与分段了解操作系统的内存分页和分段机制。
编写程序,模拟内存分页和分段的过程,展示地址转换和页面置换算法的效果。
(三)文件系统管理实验1、文件创建与读写编写程序,创建一个新文件,并向文件中写入一定的数据。
读取文件中的数据,并进行验证。
2、文件目录操作编写程序,实现对文件目录的创建、删除、遍历等操作。
观察文件目录的结构和变化。
(四)设备管理实验1、设备驱动程序了解设备驱动程序的基本概念和工作原理。
编写一个简单的设备驱动程序,实现对特定设备的控制和数据传输。
2、设备中断处理模拟设备中断的产生和处理过程。
编写中断处理程序,处理设备中断事件。
四、实验结果与分析(一)进程管理实验结果与分析1、进程创建与终止成功创建了新进程,并在新进程中打印出指定的文本。
计算机操作系统实验报告一、实验目的本次计算机操作系统实验旨在深入了解计算机操作系统的工作原理和核心功能,通过实际操作和观察,增强对操作系统的认知和理解,提高解决实际问题的能力。
二、实验环境本次实验在以下环境中进行:操作系统:Windows 10开发工具:Visual Studio 2019硬件配置:Intel Core i5 处理器,8GB 内存,512GB 固态硬盘三、实验内容与步骤(一)进程管理实验1、创建进程使用 C++语言编写程序,通过调用系统函数创建新的进程。
在程序中,设置不同的参数和条件,观察进程的创建过程和资源分配情况。
2、进程调度编写模拟进程调度的程序,实现不同的调度算法,如先来先服务(FCFS)、短作业优先(SJF)、时间片轮转(RR)等。
通过改变进程的到达时间、执行时间和优先级等参数,观察不同调度算法对系统性能的影响。
3、进程同步与互斥使用信号量和互斥锁等机制实现进程之间的同步与互斥。
编写多进程程序,模拟生产者消费者问题、读者写者问题等经典的同步互斥场景,观察程序的运行结果,分析同步互斥机制的有效性和性能。
(二)内存管理实验1、内存分配实现不同的内存分配算法,如首次适应算法、最佳适应算法和最坏适应算法。
通过模拟内存请求和释放的过程,观察不同算法下内存的使用情况和碎片产生的情况。
2、虚拟内存配置系统的虚拟内存设置,观察虚拟内存的工作原理。
编写程序访问超过物理内存大小的数据,观察系统如何利用虚拟内存进行数据交换和页面置换。
3、内存保护设置内存访问权限,编写程序尝试越界访问内存,观察系统的保护机制如何防止非法访问和错误操作。
(三)文件系统实验1、文件操作使用系统提供的文件操作接口,进行文件的创建、读写、删除等操作。
观察文件在磁盘上的存储方式和文件系统的目录结构。
2、文件权限管理设置文件的访问权限,包括读取、写入、执行等权限。
通过不同用户身份访问文件,观察权限管理的效果和安全性。
3、磁盘调度实现不同的磁盘调度算法,如先来先服务(FCFS)、最短寻道时间优先(SSTF)、扫描算法(SCAN)等。
《操作系统》课程实验报告一、实验目的本次《操作系统》课程实验的主要目的是通过实际操作和观察,深入理解操作系统的工作原理、进程管理、内存管理、文件系统等核心概念,并掌握相关的操作技能和分析方法。
二、实验环境1、操作系统:Windows 10 专业版2、开发工具:Visual Studio Code3、编程语言:C/C++三、实验内容(一)进程管理实验1、进程创建与终止通过编程实现创建新进程,并观察进程的创建过程和资源分配情况。
同时,实现进程的正常终止和异常终止,并分析其对系统的影响。
2、进程同步与互斥使用信号量、互斥锁等机制实现进程之间的同步与互斥。
通过模拟多个进程对共享资源的访问,观察并解决可能出现的竞争条件和死锁问题。
(二)内存管理实验1、内存分配与回收实现不同的内存分配算法,如首次适应算法、最佳适应算法和最坏适应算法。
观察在不同的内存请求序列下,内存的分配和回收情况,并分析算法的性能和优缺点。
2、虚拟内存管理研究虚拟内存的工作原理,通过设置页面大小、页表结构等参数,观察页面的换入换出过程,以及对系统性能的影响。
(三)文件系统实验1、文件操作实现文件的创建、打开、读取、写入、关闭等基本操作。
观察文件在磁盘上的存储方式和文件系统的目录结构。
2、文件系统性能优化研究文件系统的缓存机制、磁盘调度算法等,通过对大量文件的读写操作,评估不同优化策略对文件系统性能的提升效果。
四、实验步骤(一)进程管理实验步骤1、进程创建与终止(1)使用 C/C++语言编写程序,调用系统函数创建新进程。
(2)在子进程中执行特定的任务,父进程等待子进程结束,并获取子进程的返回值。
(3)通过设置异常情况,模拟子进程的异常终止,观察父进程的处理方式。
2、进程同步与互斥(1)定义共享资源和相关的信号量或互斥锁。
(2)创建多个进程,模拟对共享资源的并发访问。
(3)在访问共享资源的关键代码段使用同步机制,确保进程之间的正确协作。
(4)观察并分析在不同的并发情况下,系统的运行结果和资源竞争情况。
《Windows体系及编程》实验指导书实验一进程管理实验实验名称:进程管理实验实验类型: 验证性实验学时: 4适用对象: 软件工程专业、网络工程专业、信息安全专业一、实验目的理解Windows编程环境下的进程管理机制,能创建一个完成特定功能的进程,并能对进程进行信息的获取、终止和保护。
二、实验要求1.编写一段程序,能够完成创建进程的功能,要求启动windows记事本程序(notepad.exe),同时打开一个文本文件,路径为:c:\system\user.log 。
并打印出新建进程ID。
2.获取当前系统进程信息,打印输出进程名称和ID号。
3.终止新创建的进程并获取退出代码。
三、实验原理(1)进程的创建进程的创建通过CreateProcess()函数来实现,CreateProcess()通过创建一个新的进程及在其地址空间内运行的主线程来启动并运行一个新的程序。
具体地,在执行CreateProcess()函数时,首先由操作系统负责创建一个进程内核对象,初始化计数为1,并立即为新进程创建一块虚拟地址空间。
随后将可执行文件或其他任何必要的动态链接库文件的代码和数据装载到该地址空间中。
在创建主线程时,也是首先由系统负责创建一个线程内核对象,并初始化为1。
最后启动主线程并执行进程的入口函数WinMain(),完成对进程和执行线程的创建。
CreateProcess()函数的原型声明如下:BOOL CreateProcess(LPCTSTR lpApplicationName, // 可执行模块名LPTSTR lpCommandLine, // 命令行字符串LPSECURITY_ATTRIBUTES lpProcessAttributes, // 进程的安全属性LPSECURITY_ATTRIBUTES lpThreadAttributes, // 线程的安全属性BOOL bInheritHandles, // 句柄继承标志DWORD dwCreationFlags, // 创建标志LPVOID lpEnvironment, // 指向新的环境块的指针LPCTSTR lpCurrentDirectory, // 指向当前目录名的指针LPSTARTUPINFO lpStartupInfo, // 指向启动信息结构的指针LPPROCESS_INFORMATION lpProcessInformation // 指向进程信息结构的指针);(2)进程的获取进程的定义是为执行程序指令的线程而保留的一系列资源的集合。
.. 西安交通大学实验报告操作系统实验报告2130505133计算机36班操作系统实验实验一:用户接口实验实验目的1)理解面向操作命令的接口Shell。
2)学会简单的shell编码。
3)理解操作系统调用的运行机制。
4)掌握创建系统调用的方法。
操作系统给用户提供了命令接口和程序接口(系统调用)两种操作方式。
用户接口实验也因此而分为两大部分。
首先要熟悉Linux的基本操作命令,并在此基础上学会简单的shell 编程方法。
然后通过想Linux内核添加一个自己设计的系统调用,来理解系统调用的实现方法和运行机制。
在本次实验中,最具有吸引力的地方是:通过内核编译,将一组源代码变成操作系统的内核,并由此重新引导系统,这对我们初步了解操作系统的生成过程极为有利。
实验内容1)控制台命令接口实验该实验是通过“几种操作系统的控制台命令”、“终端处理程序”、“命令解释程序”和“Linux操作系统的bash”来让实验者理解面向操作命令的接口shell和进行简单的shell编程。
➢查看bash版本。
在shell 提示符下输入:$echo $BASH_VERSION我们的版本是4.3.42(1)-release(2)建立bash 脚本,输出Hello word在编辑器中输入以下内容#!/bin/bashecho Hello World!执行脚本使用指令:$./script➢编写bash脚本,统计/my目录下c语言文件的个数通过bash 脚本,可以有多种方式实现这个功能,而使用函数是其中个一个选择。
在使用函数之前,必须先定义函数。
进入自己的工作目录,编写名为count 的文件脚本程序:#! /bin/bashfunction count{echo –n " Number of matches for $1: " #接收程序的第一个参数ls $1|wc –l #对子程序的第一个参数所在的目录进行操作}将count 文件复制到当前目录下,然后在当前目录下建立文件夹,在my 目录下建立几个c 文件,以便用来进行测试2)系统调用实验该实验是通过实验者对“Linux操作系统的系统调用机制”的进一步了解来理解操作系统调用的运行机制;同时通过“自己创建一个系统调用mycall()”和“编程调用自己创建的系统调用”进一步掌握创建和调用系统调用的方法。
大连东软信息学院《Linux基础》实验指导书编写者: Linux课程组目录实验一:基本常用命令实验实验二:综合服务器配置实验一:基本常用命令实验【实验目的】●掌握文件系统的基本命令●掌握管理用户和用户组的基本命令【实验环境】●Windows xp系统●Vmware 虚拟机及linux虚拟机【预备知识】●文件系统的基本命令表1 文件系统基本命令列表●管理用户和用户组的基本命令【实验学时】●基础模块2学时●提升模块2学时【实验内容】●基础模块1 在当前目录中新建文件text,并设置文件的属性为:文件所有者增加执行权限,同组用户增加写权限,其他用户删除读权限。
2 在当前目录创建文件a.txt,b.txt,c.txt,并将上述三个文件合成一个文件abc.txt。
3 查看当前目录下所有的文件或目录(含.开头的),把查看结果生成文件ls.txt。
4 建立文件file3和文件file4。
5 在当前目录下建立文件exam1.c,将文件exam1.c拷贝到/usr 这个目录下,并改名为shiyan1.c。
6 用长格式列出/home目录下所有的文件包括隐藏文件。
7 在当前目录中创建目录aaa,并把该目录的权限设置为只有文件主有读、写和执行权限。
8 在当前目录下新建文件file.txt , 更改文件的权限增加文件所有者的读写执行权限.9 建立文件ff.txt 并用数字的形式(绝对权限)把文件的权限改为rw-rw-rw-10 用vi建立文件bbbb.txt 并将用户名加入其中保存退出。
11 在/root文件下建立一个文件夹AAA,然后进入AAA文件夹,创建普通文件bbb。
12 在/root下面,新建newfile 文件,将该文件移动到/home下。
13 查看ex1.txt是不是在当前目录下存在,如果不存在,建立ex1.txt ;如果存在,查看文件的权限,修改其权限使得其他用户无读权限14 关机命令15 重启命令。
16 john用户在家目录中建立文件exam.c,将文件exam.c拷贝到/tmp 这个目录下,并改名为shiyan.c。
操作系统实验报告操作系统是计算机科学中十分重要的一门课程,本次实验是关于操作系统的,通过实验,我们可以更深入地了解操作系统的相关知识和操作。
本篇文章将着重介绍本次操作系统实验的内容和实验过程中的收获。
一、实验内容本次实验内容主要涉及操作系统的进程、线程和进程同步三部分。
具体内容包括:1. 进程的创建和管理2. 线程的创建和管理3. 进程同步的实现在实验过程中,我们将分别使用C语言和Linux操作系统实现上述功能。
二、实验过程1. 进程的创建和管理在这一部分实验中,我们要创建多个进程,实现进程的调度和管理功能。
我们采用了Linux系统下的fork()函数,用于创建子进程。
在程序运行时,首先创建一个父进程,然后使用fork()函数创建四个子进程,每个子进程都有自己的进程号(pid),并在屏幕上输出该进程号以示区分。
为了实现进程的调度功能,我们在代码中加入了sleep()函数,用于将进程挂起一段时间,然后再轮流执行其他进程。
2. 线程的创建和管理在这一部分实验中,我们使用了C语言的POSIX线程库pthread.h,实现多线程的功能。
同样地,我们采用了Linux系统下的fork()函数来创建线程。
在代码运行时,我们创建了两个线程,并在屏幕上输出线程号(tid)以示区分。
为了实现线程的调度和管理功能,我们在代码中加入了pthread_join()函数,用于等待线程的执行完成。
3. 进程同步的实现在这一部分实验中,我们使用了Linux系统下的进程同步工具——信号量(semaphore)。
在代码中,我们使用sem_init()函数创建信号量,使用sem_wait()函数阻塞进程或线程,使用sem_post()函数释放进程或线程。
为了更好地理解信号量的工作原理,我们将代码分为生产者和消费者两部分,其中生产者用于向缓冲区添加数据,消费者则用于删除数据。
在这个过程中,我们需要使用信号量控制生产者和消费者的数量,避免出现生产过多或消费过多的情况。
linux操作系统实验实验报告 Linux 操作系统实验报告一、实验目的通过一系列的实验操作,深入了解和熟悉 Linux 操作系统的基本概念、命令行操作、文件系统管理、用户权限管理以及进程管理等方面的知识和技能。
二、实验环境操作系统:Ubuntu 2004 LTS终端工具:Terminal三、实验内容及步骤(一)用户和组管理1、创建新用户使用`sudo adduser` 命令创建新用户,例如创建用户名为`testuser` 的用户。
```sudo adduser testuser```2、设置用户密码使用`sudo passwd` 命令为新用户设置密码。
```sudo passwd testuser```3、创建用户组使用`sudo groupadd` 命令创建新的用户组,例如创建名为`testgroup` 的用户组。
```sudo groupadd testgroup```4、将用户添加到用户组使用`sudo usermod aG` 命令将用户添加到指定的用户组,例如将`testuser` 添加到`testgroup` 组。
```sudo usermod aG testgroup testuser```(二)文件和目录管理1、创建目录使用`mkdir` 命令创建新的目录,例如创建名为`testdir` 的目录。
```mkdir testdir```2、查看目录内容使用`ls` 命令查看目录中的内容,包括文件和子目录。
```ls testdir```3、创建文件使用`touch` 命令创建新的空文件,例如创建名为`testfiletxt` 的文件。
```touch testfiletxt```4、复制文件使用`cp` 命令复制文件,例如将`testfiletxt` 复制为`testfile_copytxt` 。
```cp testfiletxt testfile_copytxt```5、移动文件使用`mv` 命令移动文件,例如将`testfile_copytxt` 移动到`testdir` 目录中。
实验一虚拟机平台下的Linux内核编译
步骤一、实验准备:将windows下的Linux-2.4.32内核复制到虚拟机中。
一般有三种方法可以实现:虚拟磁盘、文件共享、网络设置。
下面介绍的是虚拟磁盘的方法:
我们已经将Linux-2.4.32内核源代码的压缩文件放入虚拟磁盘,并在FTP上共享。
1.请从FTP服务器上将实验指导书以及虚拟磁盘拷贝到E盘根目录下。
2. windows平台下启动虚拟机VMware, VMWare中安装虚拟硬盘:
1)安装前建议先把内存调大一些,这样后面编译的速度会快一些。
(Memory,调到512M)
2)点击Add
3)点击Next
上述步骤完成后点击Finish 。
观察发现:虚拟机中将出现两个磁盘,一个是原有的磁盘,另一个是虚拟磁盘,相当于对本机外接了一个磁盘。
(请将设置完成后的虚拟机中出现两个磁盘的界面截图,一个是6G ,另一个106M )。
4.启动Linux操作系统
在启动过程中可以见到当前只有一个可选择内核,内核版本是Linux2.4.20。
我们本次实验的目的是在虚拟机下重新编译一个新的内核,内核版本是Linux2.4.32.完成本实验后,重启虚拟机将出现两个可选择内核。
5.将虚拟磁盘安装到/mnt/mydisk目录下.(mount命令),如图:
1)先用fdisk –l命令查看虚拟磁盘是否“连接”成功。
记下虚拟磁盘名称(/dev/sdb)。
2)进入到mnt目录下创建mydisk目录,该目录作为访问虚拟磁盘的入口,此时该目录为空。
3)返回根目录root,并安装虚拟磁盘:mount /dev/sdb /mnt/mydisk
6.安装完成后,mydisk目录下出现了虚拟磁盘中的文件,如图。
其中Linux-2.4.32.tar.gz就是待编译内核的源代码。
将该文件复制(cp)到本地磁盘的/usr/src目录下,并且解压缩(tar –xzvf),如图。
当然,这两个操作也可以通过图形用户(GUI)界面来完成。
(拷贝和解压缩都需要一些时间,请耐心等待)
7.解压完成后,就可以开始编译操作系统Linux-2.4.32了(见步骤二)。
步骤二:Linux内核编译
1.开始前先返回根目录/root,用uname –a命令查看Linux当前内核信息,(并截图)
2.进入到/usr/src/Linux-2.4.32目录下
依次运行如下命令:(每个命令后虚拟机做相应操作需要一些时间,请耐心等待)
make mrproper:完全清除上一次编译内核时的所有配置以及生成的文件(如图)。
make clean:清除大部分文件。
make menuconfig :基于文本选单的配置界面,选择操作系统的基本模块。
2.输入make menuconfig后将出现蓝色界面,选择操作系统的模块。
(完成下述配置后请截图)。
M:表示编译成模块,*表示编译进内核,< >表示不编译。
1)选择处理器
Processor type and features--->Processor family--->386
2)Ram Disk驱动
Block devices--->
< * > RAM disk support
(4096) Default RAM disk size (NEW)
< * > Initial RAM disk (initrd) support
3)文件系统
File systems--->
[ * ] Ext3 journalling file system support
[ * ] JBD (ext3) debugging support
4)BusLogic驱动
< * > SCSI support--->
SCSI low-level drivers --->
< M >BusLogic SCSI support
5)Ipaddr补充:
Fusion MPT device support --->
Fusion MPT (base + ScsiHost) drivers
(ipaddr注:此处一定要选M,不能是*,更不能不选,否则,make install报错{No Module mptbase found for kernel})
Fusion MPT misc device (ioctl) driver
3. make dep (建立编译时所需的从属文件。
注意:如果内核从未编译过,此步可跳过)
4. make clean (清除内核编译的目标文件。
注意:如果内核从未编译过,此步可跳过)
5. make bzImage (注意大小写。
这一步才是真正编译内核)
内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件bzImage。
如果用make zImage编译,内核很大的话,系统会提示你使用make bzImage命令来编译,所以我直接用make bzImage来编译。
6. make modules (编译可加载模块)
7. make modules_install (安装可加载模块) 注意modules和install中间的下划线。
安装成功后,系统会在/lib/modules目录下生成一个2.4.32子目录,里面存放着新内核的所有可加载模块。
8. make install (安装新内核)
注意:make install的时候可能会出现如下错误信息:
No module BusLogic found for kernel 2.4.32 mkinitrd failed
此问题一般只出现在SCSI硬盘+VMWARE+REDHAT架构中,因为BusLogic被编译进了内核而不是一个module的形式(2.4内核的Buslogic模块即使静态编译进内核也不行)。
解决方式是直接将BusLogic.o文件复制过去:
#mkdir /lib/modules/2.4.32/kernel/drivers/scsi/
# cp /usr/src/linux-2.4.32/drivers/scsi/BusLogic.o /lib/modules/2.4.32/kernel/drivers/scsi/ 不过别忘记,复制过后再执行一下make install。
这一步若卡住了,下面的都无法进行。
步骤三:重启虚拟机
1.完成步骤二后回到根目录/root,输入reboot重启虚拟机。
启动过程中会发现有两个可选择的Linux操作系统,第一个版本是原版本Linux2.4.20,以及刚才编译和安装的新版本Linux2.4.32。
(请截图)
2.选择新版本,进入新的操作系统后使用uname –a命令查看Linux当前内核信息,并截图。
注:以上实验步骤仅限于信息楼实验室环境,其它环境步骤可能有些地方需要稍微修改。
编译过程会比较漫长,需要耐心等会。