典型操作系统内核分析与设计.docx

上传人:b****8 文档编号:28324723 上传时间:2023-07-10 格式:DOCX 页数:12 大小:1.05MB
下载 相关 举报
典型操作系统内核分析与设计.docx_第1页
第1页 / 共12页
典型操作系统内核分析与设计.docx_第2页
第2页 / 共12页
典型操作系统内核分析与设计.docx_第3页
第3页 / 共12页
典型操作系统内核分析与设计.docx_第4页
第4页 / 共12页
典型操作系统内核分析与设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

典型操作系统内核分析与设计.docx

《典型操作系统内核分析与设计.docx》由会员分享,可在线阅读,更多相关《典型操作系统内核分析与设计.docx(12页珍藏版)》请在冰豆网上搜索。

典型操作系统内核分析与设计.docx

典型操作系统内核分析与设计

 

院系:

计算机学院

 

实验课程:

Linux内核分析与实现

实验项目:

典型操作系统内核分析与设计

指导老师:

尹传勇

开课时间:

2011~2012年度第2学期

专业:

计算机科学与技术(师范)

班级:

09本1班

学生:

黄光宇

学号:

20092100001

 

华南师范大学教务处

Linux内核编译

 

一.实验目的

操作系统是计算机系统的核心,它负责控制和管理整个计算机系统的硬软件资源,使之协调工作。

Linux更是近代计算机领域,让人们青睐的操作系统。

它开源的系统内核,让许多学者对此爱不释手,也因此引来了更多的人来学习Linux系统,同时也增强了开源队伍。

我们在学习系统内核分析这门课程的时候,Linux是我们主要学习和研究的范畴。

所以,通过本实验——编译Linux系统内核来提高我们对Linux系统的了解,让我们更好的掌握系统内核知识,把编写系统、编译内核等知

识应用到实践中去。

 

二.实验内容:

实验准备:

查看系统是否已安装源码?

#rpm–qkernel-source

如果没有安装从安装盘(一般在2号盘)或从网上下载

kernel-source-2.4.x-xx.i386.rpm并安装

#rpm–Uhvkernel-source-2.4.x-xx.i386.rpm

1、配置系统调用

2、编译内核

3、用新的内核启动系统

4、使用系统调用

三.实验的主要步骤:

1、配置系统调用

(1)在/usr/src/linux-2.4.20-8/kernel/sys.c中的最后一行加入系

统调用代码:

asmlinkageintsys_ycycall(intnumber){

returnnumber;

}

 

(2)修改文件/usr/src/linux-2.4/include/asmi386/unistd.h

增加:

#define__NR_ycycall259

(3)修改文件/usr/src/inlux/arch/i386/kernel/entry.s增加:

.longSYMBOL_NAME(sys_ycycall)

2、编译内核

(1)、进入/usr/src/linux2.4.20-8目录

#cd/usr/src/linux2.4.20-8

(2)、#makemrproper

(3)、配置内核

#makexconfig

※在“Process

family”选项,选择“386”类型

 

※在FileSystem选项,选择“Ext3journallingfilesystemsupport”和“JDB(ext3)debuggingsupport”

※在SCSISupport选项,“SCSIlow-leveldrivers”在选择“BusLogic

SCSIsupport”(默认为m)。

※在Blockdevices选项,选择“RAMdisksupport”.

(4)、将源代码于硬件设备连接起来

#makedep

5)清理编译环境,删除一些不必要的文件

#makeclean

(6)、生成bzImage文件

#makebzImage

(7)、#makemodules

(8)、#makemodules_install

3、用新的内核系统启动系统

(1)、#cp/usr/src/linux-2.4.20-8/arch/i386/boot/bzImage/boot

/bzImage-1

(2)#cp/usr/src/linux-2.4/System.map/boot/System.map-1

(3)#ln-sf/boot/System.map-1/boot/System.map

(4)、#makeinstall

(3)、打开grub.conf文件,我们可以看到系统启动多了(2.4.20—

8custom)选项:

2.4.20-8custom为新生成的内核

#geditgrup.conf

 

(4)、重新启动系统

 

(5)、查看版本

#uname–a

4、使用系统调用

#include

#include(#include

#include

#define__NR_ycycall259

//intycycall(intnumber)

_syscall1(int,yaycall,int,number)

main()

{

inta=ycycall(100);

printf(“%d\n”,a);

}

输出结果为:

100

 

四.实验总结

本次实验主要是通过对相关指令的执行,在RedHat9.0的环境下进行一次Linux内核编译。

实验过程中,按照老师给的实验操作手册进行Linux内核的配置,在Linuxkermelconfiguration目录下根据编译内核的需要对各个相关文件进行配置。

在配置完成后用新内核启动系统,但是在第一次配置内核的时候我没有成功,问题应该是在配置过程中由于粗心忽略了某些配置,再一次的细心操作后成功完成了内核的变异。

通过本次试验,我对Linux内核的编译以及执行有了更深一步的了解,但有些问题以及指令不大明白,仍待提高。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1