linux操作系统实验指导手册簿簿

linux操作系统实验指导手册簿簿

ID:28711891

大小:38.50 KB

页数:6页

时间:2018-12-13

linux操作系统实验指导手册簿簿_第1页
linux操作系统实验指导手册簿簿_第2页
linux操作系统实验指导手册簿簿_第3页
linux操作系统实验指导手册簿簿_第4页
linux操作系统实验指导手册簿簿_第5页
资源描述:

《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@

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。