大致思路:

1.下载内核和编译器和一些依赖包(我依赖包是提前装的,也有些是在过程中根据提示装的)。

***其中比较重要的应给是装vim编译器,并且了解最基本的语句,来进行添加系统调用(比如跳行,保存,输入切换等基本命令)**

2. 进行内核的解压和添加自己的系统调用函数。 

3. 编译新内核并且进行测试自己的函数调用。

具体步骤:(含操作指令)

1.     (准备操作)

sudo apt-get update  //更新系统源码 

sudo apt-get install vim //安装vim

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

sudo apt-get install flex bison //没有这个依赖包可能会在make menuconfig配置界面报错。

***依赖包缺少系统一般会有提示,装好了错误也就解决了。

2.内核的解压和添加自己的系统调用

   **解压**

       先将在官网下好的内核直接拉到ubuntn里,然后将压缩包用指令移到/usr/src目录下面(过程需要root权限)。

       sudo su                                            //获取root

       sudo mv  压缩包位置    /usr/src         //移动文件

       cd  /usr/src                                        //切换到该目录下进行操作

      sudo tar -xvflinux-4.16.10.tar.xz      //解压,我下的内核版本是4.16.10

   **添加系统调用**最好先将目录切换到解压后的内核里操作(很多问题都是cd的路径问题所导致的)

   a.   sudo vim  kernel/sys.c   //添加自己的函数   
        给ubuntu添加系统调用 (18.04版本)
       

      给ubuntu添加系统调用 (18.04版本)

b.      sudo vim arch/x86/include/asm/syscalls.h //声明    
       给ubuntu添加系统调用 (18.04版本)

c.      sudo vimarch/x86/entry/syscalls/syscall_64.tbl  //添加调用号
     给ubuntu添加系统调用 (18.04版本)

      

3.     删除一些无用的文件

    sudo make mrproper

    sudo make clean 

    sudo make menuconfig
给ubuntu添加系统调用 (18.04版本)

 给ubuntu添加系统调用 (18.04版本)

 

4.     **编译新内核并安装**

**编译**

sudo make -j2
给ubuntu添加系统调用 (18.04版本)

//将处理机内核总数调整为4,会明显加快编译速度

**安装**

sudo make modules_install  

sudo make install

5.重启 //reboot

重启时会跳出这个界面,直接确认或者时间到了他会默认帮你选。(我刚装完重启了好几次了才发现有这个界面给ubuntu添加系统调用 (18.04版本)

给ubuntu添加系统调用 (18.04版本)

6.**测试**

  touch 文件名.c  //创建一个c文件

  gedit  文件名.c  //编辑c文件,写入主函数进行测试

//这步也可以用来vim编辑

 给ubuntu添加系统调用 (18.04版本)

  gcc -o main 文件名.c //创建进程

  ./main

  demsg   查看进程信息

 给ubuntu添加系统调用 (18.04版本)

 给ubuntu添加系统调用 (18.04版本)

  

 

相关文章: