湖北大学
学 生 实 验 报 告
               
                实验课程    网络实用技术   
                开课学院  计算机与信息工程学院
                任课教师      徐  婕       
                学生姓名      骆  婧     
                学生学号    ************** 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小时内删除。