文档详情

第六章 用户接口实验课件.ppt

发布:2023-11-22约3.57千字共18页下载文档
文本预览下载声明
第六章 用户接口实验 ;6.2.1 控制台命令接口;6.2.2 添加系统调用 ;# define __NR _foo 222 ENTRY(sys_call_table) .long SYSMBOL_NAME(sys_ni_syscall) .long SYSMBOL_NAME(sys_exit) .long SYSMBOL_NAME(sys_fork) ... ? .long SYSMBOL_NAME(sys_foo) ;3.重新编译内核;4.使用新编译的内核 cp –a /usr/src/linux-2.4.2/arch/i386/boot/bzImage /boot 5.重新配置/etc/lilo.conf 文件 vi /etc/lilo.conf image=/boot/bzImage #启动内核的位置, 即自己新配置的内核所在目录 label=xhlinux #给内核起一个名称, 配置完成, 重新启动的时候, 会显示这个名称; #用户可以选择该项, 重启后, 系统将进入你新配置的内核进行引导。;read_only #定义新的内核为只读 root=/dev/hda5 #定义硬盘的启动位置是/dev/hda5, 在该设计中没有变 #仿照以前内核引导的位置, 不用修改, 用以前的就可以 6.完成以上配置后,重新启动系统进入自己的新系统。;6.3 实验内容 ? 6.3.1 控制台命令接口实验 查看Bash版本 编写Bash脚本,统计/my目录下c语言文件的个数 ? 6.3.2 系统调用实验 一、编程调用一个系统调用fork(),观察结果 二、编程调用创建的系统调用foo(),观察结果 三、自己创建一个系统调用mycall(),实现功能:打印字串到屏幕上 四、编程调用自己创建的系统调用 6.4 实验指导;一.查看Bash版本 $echo $BASH_VERSION 二.编写Bash脚本,统计/my目录下c语言文件的个数 cd /home/student #在home/student目录下编程 vi count #! /bin/bash function count { echo –n Number of matches for $1: #接收程序的第一个参数 ls $1|wc –l #对子程序的第一个参数所在的目录进行操作 } ;mkdir my cd my vi 1.c #在my目录下建立几个c文件, 以便用来程序测试 ... cd ... chmod +x count count ./my/*.c ;6.4.2 系统调用实验指导 ;下面是可能得到的一种结果:;二.编程调用创建的系统调用foo( ); printf(This is the result of new kernel\n); printf(%d,j); } gcc –o –I /usr/src/linux-2.4.2/include test.c ./test ;三.创建系统调用mycall();[root@linuxserver root]# make menuconfig // 配置新内核 [root@linuxserver root]# make dep // 创建新内核 [root@linuxserver root]# make modules_install // 加入模块 [root@linuxserver root]# make clean // 清除多余创建的文件 [root@linuxserver root]# make bzImage // 生成可执行内核引导文件 [root@linuxserver root]# cp /usr/src/linux/arch/i386/boot/bzImage /boot/ [root@linuxserver root]# /sbin/lilo ;四.编程调用自己创建的系统调用;谢谢聆听!第六章 用户接口实验 ;6.2.1 控制台命令接口;6.2.2 添加系统调用 ;# define __NR _foo 222 ENTRY(sys_call_table) .long SYSMBOL_NAME(sys_ni_syscall) .long SYSMBOL_NAME(sys_exit) .long SYSMBOL_NAME(sys_fork) ... ? .long SYSMBOL_NAME(sys
显示全部
相似文档