操作系统课程设计说明书写.docVIP

  • 5
  • 0
  • 约2.43千字
  • 约 11页
  • 2019-03-17 发布于湖北
  • 举报
广州大学松田学院《操作系统》课程设计说明书 PAGE 1 广州大学松田学院 操作系统课程设计报告 题目: 修改内核及Linux内核重编译 修改内核及Linux内核重编译 --为Linux内核增加系统调用systest( ) 概述 针对ubuntu10.04.中,通过下载新的内核版本,并且修改新的版本的内核的系统调用,然后在其系统中编译,加载新内核 内核修改内容介绍 输入一个数字,各个位上数字相乘,如 15 1*5=5 24 2*4=8 内核编译环境介绍 虚拟机版本VM9.0 Ubuntu版本10.02 内核2.6.32-21-generic 内核修改 系统设计 内核修改的基本思路 将被调用的函数写入内核中,并生成新的内核,在新的内核中编写函数调用 内核修改的实现步骤 在网站中下载想要修改的内核版本,并放入到/usr/src中进行解压,解压后修改函数,并重新生成新的内核,重启后再调用函数 程序设计 Sysmyf( )系统调用介绍 操作系统的主要功能是为应用程序的运行创建良好的环境,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户。系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内核函数,用户将不能编写大型应用程序 Sysmyf( )系统调用程序设计 asmlinkage int sys_mycall(int num) { Int k=1; do{ k*=num%10; num/=10; } while(num); return (k); } Sysmyf( )系统调用验证程序设计 #includestdio.h #includeunistd.h int main(){ int num; scanf(%d,num); printf(%ld\n, sys_mycall(223,num)); } 内核重编译 Linux内核源代码下载及其版本说明 在网站 HYPERLINK / /中下载 在Linux内核源代码中添加sysmyf()系统调用 首先修改/usr/src/linux-4.0.4/kernel/sys.c文件。在这个文件末尾添加系统调用的实现函数,用gedit sys.c打开编辑 在/usr/src/linux-4.0.4/arch/x86/syscalls/syscall_32.tabl中添加 /usr/src/linux-4.0.4/arch/x86/kernel/syscall_table_32.S中的末行添加:.long sys_myf /usr/src/linux-4.0.4/arch/sh/include/uapi/asm/unistd_32.h中添加:#define __NR_myf 223 内核重编译 内核重编译步骤介绍 (每一步骤,建议截图,并添加说明) 从中下载4.0.4内核(原来的内核版本是4-genric),并将该内核放到 usr/src中。 解压内核 使用xz -d linux-4.0.4.tar.xz tar -xvf linux-4.0.4.tar sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot sudo aptitude install libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt make menuconfig 选中ext3文件系统,   File systems   [*] Ext3 journalling file system support   [*] Ext3 Security Labels   [*] JBD (ext3) debugging support 配置了内核之后先使用make dep将内核功能间的依赖联系起来。 使用make bzImage编译内核 接着用make modules、make modules_install和make install #cp /usr/src/linux/System.map /boot/System.map-4.0.4 #cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-4.0.4 #cp .config /boot/config-4.0.4 # mkinitramfs -o /boot/initrd.img-4

文档评论(0)

1亿VIP精品文档

相关文档