湖北大学
学 生 实 验 报 告
实验课程 网络实用技术
开课学院 计算机与信息工程学院
任课教师 徐 婕
学生姓名 骆 婧
学生学号 ************** 70
专业班级 计 科 一 班
学生年级 2011级
2013-2014 学年 第二学期
一.实验目的
通过实验,熟悉Linux操作系统的使用,掌握构建与启动Linux内核的方法;掌握用户程序如何利用系统调用与操作系统内核实现通信的方法,加深对系统调用机制的理解;进一步掌握如何向操作系统内核增加新的系统调用的方法,以扩展操作系统的功能。
二.实验内容
1.Linux环境下的C或者C++编译和调试工具的使用
2.向Linux内核增加新的系统调用,系统调用的功能为打印出自己的学号和姓名信息。
3.Linux新内核的编译、安装和配置。
4.编写应用程序以测试新的系统调用并输出测试结果。
三、实验步骤
第一步:解压文件
1.下载linux-3.13.压缩包。
2.在Ubantu系统下,解压该文件,解压之后得到linux-3.13.3文件包
# tar –xf linux-3.13.
3.将解压后的文件包复制到/usr/src
# cp linux3.13.3 /usr/src
第二步:修改源程序,增加系统调用
1. gedit /usr/src/linux-3-13.3/kernel/sys.c (增加系统调用,使用面向内核的打印函数printk打印姓名学号)
使用gedit命令,可以直接在文档编辑器中直接修改。修改好后按保存关闭文档编辑器。
在开头加入头文件:
#include<linuxlinkage.h>
在末尾加入函数
asmlinkage int sys_mycall(void)
{
printk(KERN_ALERT "My name is XXXX!My studentid is XXXXXXX\n");linux下gcc编译的四个步骤
return 1;
}
2.gedit /usr/src/linux-3-13.3/arch/x86/include/asm/syscalls.h
在倒数第二行后插入
asmlinkage int sys_mycall(void);
3.gedit /usr/src/linux-3-13.3/arch/x86/syscalls/syscall_32.tbl
最后一行添加一个系统调用的ID
351 i386 mycall sys_mycall
第三步:编译安装内核
首先进到/usr/src/linux-3.13.3文件夹下
# cd /usr/src/linux-3.13.3
1.make mrproper(清除内核中不稳定的目标文件,附属文件及内核配置文件)
2.# make menuconfig
保存设置Save并退出Exit
3.# make bzImage (编译内核,大概需要20分钟,最后会出现提示:bzImage is ready。)
4.#make modules(编译模块,大概需要一个多小时)
5.#make modules_install(安装模块)
6.#make install
7 #sudo update-grub(修改启动配置文件)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论