《Linux操作系统》实验手册2012年12月2日实验一内核编译与系统调用一、实验目的掌握linux内核编译的方法;了解并比较进程创建的不同方法。二、实验内容Linux内核编译;分别用fork()和clone()创建进程:列出子进程和父进程的进程号,进程名和进程状态;。三、实验步骤内核编译实验步骤:查看当前内核版本uname-a在inux-;安装有关编译程序。安装make,gcc,,kernel-:Sudoapt-getinstallXXX(注意:一定要安装这个sudoapt-getinstallbuild-essentialkernel-packagelibncurses5-dev fakeroot)切换到root用户。suroot;将源代码拷到/usr/src/目录下,cplinux-/(可以不做);进入/usr/src/目录cd/usr/src/(如果上一步没做,这一步也不做);解压。tarjvfxlinux-。cdlinux-。makemrproper使用makelocalmodconfig自动精简内核配置。makelocalmodconfig,所有的选项,如果你不确定,就按回车键,选择默认配置。开始编译内核。sudomake-kpkgclean;make-kpkg--initrd--append-to-version=-xxx kernel_image(编译的时间可能会有点长,耐心等待)安装内核。退回上级目录cd..然后sudodpkg-i linux-image--。查看当前内核版本uname-a四、实验源代码实验二自定义系统调用实验目的了解系统调用的原理掌握在linux操作系统中编写系统调用的过程二、实验内容 自己设计一个系统调用,完成某项系统功能。实验步骤1)、进入到内核源码目录/usr/src/linux-,添加自己的系统调用号。cd/usr/src/linux-,在该文件中添加自己的系统调用号。如添加mycall系统调用。系统调用号为338,如添加mycall系统调用。系统调用号为338,并将原来的#defineNR_syscalls338修改为#defineNR_syscalls。******@lyh:/usr/src/linux-$sudogeditarch/x86/include/asm/#define__NR_perf_event_open 336#define__NR_recvmmsg 337#define__NR_mycall 338 #ifdef__KERNEL__#defineNR_syscalls3392)、在系统调用表中添加相应的表项。******@lyh:/usr/src/linux-$sudogeditarch/x86/kernel/(sys_call_t
linux操作系统实验指导手册簿簿 来自淘豆网m.daumloan.com转载请标明出处.