一、实验目的
1、了解Linux内核设计思想;
2、学习并掌握如何编译内核和添加系统调用。
二、实验内容
(1)从https://www.kernel.org/下载适宜版本的内核源码并解压;
(2)配置内核特性,编译内核;
(3)安装内核模块,并安装内核;
(4)验正并测试内核是否安装正确。
- 获取管理员权限
- 安装相关编译程序
- 添加系统调用
1、加入系统调用函数
添加如下内容:
2、添加声明:
添加如下内容:
3、加一个系统调用的id:
添加内容如下:
- 配置内核
1、删除所有的编译生成文件、内核配置文件和各种备份文件
2、删除前一次编译过程的残留数据
3、生成由scripts工具和Kconfig构成的图形配置界面
运行结果如下:
编译:
- 安装内核
1、安装模块
- 安装内核
- 测试系统调用
- 重启,并选择新的内核;
- 测试
源程序如下:
#include<stdio.h>
#include<linux/kernel.h>
#include<sys/syscall.h>
#include<unistd.h>
int main()
{
long int a = syscall(335);
printf("System call sys_hellolinux return %ld\n ", a);
return 0;
}
运行结果:
查看内核版本: