- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统概念LAB2向Linux内核增加一个系统调用实验报告.doc
LAB2实验报告
实验目的:1.熟悉Linux的基本命令
2.给Linux内核增加一个系统调用
实验步骤:
1. uname -a命名杏看当前系统内核信息
root@timelong-pc:/usr/src/linux-source-3.13.0# uname -a
Linux tinelong-pc 3.13.0-66-generic #108-Ubuntu SMP Wed Oct 7 15:20:27 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
2.分析当前内核为linux 3.13.0-66版本,所以我们下载一个接近当前的内核版本的Linux源码
完成买验。尝试sudo apt-get install linux-source,下载?前内核源码。
root@timelong-pc:/usr/src# sudo apt-get install linux-source 正在读取软件包列表...完成
正在分析软件包的依赖关系树 ■- : 1
正在i卖取状态信息...完成胃、:胃
下列软件包是自动安装的并且现在不需要了 n胃|胃1
linux-headers-3.13.0-67 喊:忙匕意」::?」:::
Use * apt-get autoremove * to remove it.
将会安装下列額外的软件包: linux-source-3.13.0 建议安装的软件包:
kernel-package libqt3-dev 下列【新】软件包将被安装:
linux-source linux-source-3.13.0
升级了 0个软件包,新安装了 2个软件包,要卸戧0个软件包, 未被升级。
需要下栽0 B/98.0 MB的软件包。
解压缩后会消耗掉114 MB的額外空间。
0.)all.deb
0.
)
all.deb …
Selecting previously unselected package linux-source-3.13 (正在淺取数据库...系统当前共安装有178230个文件和目录。 Preparing to unpack …/linux-source-3.13.0一3.13.0-67.”0一 Unpacking linux-source-3.13.0 (3.13.0-67.110)...
Selecting previously unselected package linux-source. Preparing to unpack …/linux-source_3.13.0.67.73_all.deb Unpacking linux-source (3.13.0.67.73)…
正在设置 linux-source-3.13.0 (3.13.0-67.110). 正在设置 linux-source (3.13.0.67.73)...
3.将Iinux-source-3.13.0.tar.bz2包解压到/usr/src/目录下,进入/usr/src/目录,Is査看当前目
录文件
root@t imelong-pc:/usr/src#
Is
4.进入红色框中的文件夹,实验在该文件夹下操作
5.修改 kernel/sys.c 文件:
SYSCALL_DEFINE1 (mycall, int, number){
printk(Hello world, this is my love number:rV return number;
} //DEFINEn中的n表示参数个数.此函数目的为返回输入值
6.设置系统调用号:修改 gedit arch/x86/syscalls/syscall_32.tbl
W ?
349
i386
■ ■ ? ? ? ? ? ? ? ?
1 —
kcmp
J —1
sys_kcmp
350
i386
finit—module
sys_finit_module
351
i386
sched一setattr
sys_ni一syscall
352
i386
sched_getattr
sys_ni_syscall
353
i386
renameat2°
sys_ni_syscall
354
i386
seccomp
sys seccomp
(355
i^86
mycall
sys mycall )
7.添加系统调用声明到义文件:gedit include/asm-generic/syscalls . h
sudo apt-get install libncurses5-dev 发现系统已存在,不用继续安装
8.2为了方便,将编译需要执行的所存内容写成批处理文件执行,写好的文件放在
/usr/src/linux-3.13.0 ” 目隶下
文档评论(0)