欢迎来到天天文库
浏览记录
ID:28711891
大小:38.50 KB
页数:6页
时间:2018-12-13
《linux操作系统实验指导手册簿簿》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文案《Linux操作系统》实验手册2012年12月2日精彩文档实用标准文案实验一内核编译与系统调用一、实验目的l掌握linux内核编译的方法;l了解并比较进程创建的不同方法。二、实验内容lLinux内核编译;l分别用fork()和clone()创建进程:列出子进程和父进程的进程号,进程名和进程状态;。三、实验步骤内核编译实验步骤:1.查看当前内核版本uname-a2.在http://www.kernel.org/下载linux-2.6.10;3.安装有关编译程序。安装make,gcc,,kerne
2、l-package等和编译内核相关的工具.安装命令:Sudoapt-getinstallXXX(注意:一定要安装这个sudoapt-getinstallbuild-essentialkernel-packagelibncurses5-devfakeroot)4.切换到root用户。suroot;5.将源代码拷到/usr/src/目录下,cplinux-2.6.10.tar.bz2/usr/src/(可以不做);6.进入/usr/src/目录cd/usr/src/(如果上一步没做,这一步也不做);7.解压。
3、tarjvfxlinux-2.6.10.tar.bz28.进入源代码所在目录。cdlinux-2.6.109.清理以前编译留下的临时文件。makemrproper10.使用makelocalmodconfig自动精简内核配置。makelocalmodconfig,所有的选项,如果你不确定,就按回车键,选择默认配置。11.开始编译内核。sudomake-kpkgclean;make-kpkg--initrd--append-to-version=-xxxkernel_image(编译的时间可能会有点长,耐心
4、等待)12.安装内核。退回上级目录cd..然后sudodpkg-ilinux-image-2.6.10-xxx_i386.deb11.重启验证内核reboot。13.查看当前内核版本uname-a四、实验源代码精彩文档实用标准文案实验二自定义系统调用一、实验目的l了解系统调用的原理l掌握在linux操作系统中编写系统调用的过程二、实验内容自己设计一个系统调用,完成某项系统功能。三、实验步骤1)、进入到内核源码目录/usr/src/linux-2.6.34.11中,添加自己的系统调用号。cd/usr/src
5、/linux-2.6.34/系统调用号在unistd_32.h文件中定义,在该文件中添加自己的系统调用号。如添加mycall系统调用。系统调用号为338,如添加mycall系统调用。系统调用号为338,并将原来的#defineNR_syscalls338修改为#defineNR_syscalls。lyh@lyh:/usr/src/linux-2.6.34$sudogeditarch/x86/include/asm/unistd_32.h#define__NR_perf_event_open 336#d
6、efine__NR_recvmmsg 337#define__NR_mycall 338 #ifdef__KERNEL__#defineNR_syscalls3392)、在系统调用表中添加相应的表项。lyh@lyh:/usr/src/linux-2.6.34$sudogeditarch/x86/kernel/syscall_table_32.SENTRY(sys_call_table) .longsys_restart_syscall
7、 .longsys_exit ………………(这里省略了部分) .longsys_perf_event_open .longsys_recvmmsg .longsys_mycall3)、实现系统调用服务例程。系统调用服务例程函数名为"sys_xxx”lyh@lyh:/usr/src/linux-2.6.34$sudogeditkernel/sys.c精彩文档实用标准文案asmlinkagelongsys_mycall(intn){printk(
8、"hello,world!mycallworked!");returnn;}4)、重新编译内核,步骤同实验一。注意:内核编译完了之后必须重启,否则已经添加的用户系统调用不能使用。5)、编写下面的测试程序。lyh@lyh:sudogedittest.c#includeintmain(){syscall(__NR_mycall,5);Return0;}lyh@lyh:gcctest.c-otestlyh@
此文档下载收益归作者所有