Ubuntu 16.10添加系统调用
《Ubuntu 16.10添加系统调用》要点: 系统挪用(System Call)是操作系统为在用户态运行的进程与硬件设备(如CPU、磁盘、打印机等) 我们必要完成:
开发环境:
1.? 在VMware Workstation上安装Ubuntu 16.10; ? 2. 进入Ubuntu体系,更新软件源代码. sudo apt-get install update ? ?3. 下载编译进程中的所需的软件依赖包. sudo apt-get install libncurses5-dev libssl-dev ? sudo apt-get install build-essential openssl ? sudo apt-get install zlibc minizip ? sudo apt-get install libidn11-dev libidn11 4. 经由过程git下载Linux 内核 4.11.6. git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git 5.以root治理权限解压内核到 /usr/src/. sudo cd /usr/src sudo tar -xvf linux-4.11.6.tar.xz 6. Ubuntu安装Vim编纂器. sudo apt-get install vim 7.用Vim打开/kernel/sys.c文件,参加linkage.h的头文件,在文件末尾参加要参加的系统调用函数. sudo vim linux-4.11.6/kernel/sys.c ? 8.参加系统调用函数声明.在linux-4.11.6/arch/x86/include/asm/syscalls.h中参加asmlinkage void sys_quicksort(int [],int,int); sudo vim linux-4.11.6/arch/x86/include/asm/syscalls.h 9.参加系统调用号.在linux-4.11.6/arch/x86/entry/syscalls/syscall_64.tbl sudo vim linux-4.11.6/arch/x86/entry/syscalls/syscall_64.tbl 10. 编译内核和安装内核. sudo make mrproper sudo make clean sudo make menuconfig 11. 根据本身处理器的最大线程数目来编译. sudo make -j4 12. 编译后安装内核到体系中. sudo make modules_install ? sudo make install 13. 重启加载内核. 14. 编写法式验证系统调用. #include<stdio.h> #define QUICK_SORT 334 int main() { ? ? int i,a[]={9,20,36,10,1,2,6,4,5,8}; ? ? syscall(QUICK_SORT,a,9); ? ? for(i=0;i<10;i++) ? ? { ? ? ? ? printf(“%dt”,a[i]); ? ? } ? ? return 0; } 15. 编译C法式: ?gcc -o test test.c ./test .调用胜利! 更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2 本文永远更新链接地址:http://www.linuxidc.com/Linux/2017-06/145161.htm 更多LINUX教程,尽在编程之家PHP学院专栏。欢迎交流《Ubuntu 16.10添加系统调用》! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |