一、实验目的
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;
}
运行结果:

查看内核版本:

 
                   
                   
                   
                   
                             本文详细介绍了如何从源码编译Linux内核,包括下载源码、配置内核特性、添加自定义系统调用及测试流程。通过实际操作,读者可以深入理解Linux内核的设计思想和编译过程。
本文详细介绍了如何从源码编译Linux内核,包括下载源码、配置内核特性、添加自定义系统调用及测试流程。通过实际操作,读者可以深入理解Linux内核的设计思想和编译过程。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   1039
					1039
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            