编译 Linux 4.15.11 内核并增加系统调用

本文档详细记录了一次在虚拟机环境下编译Linux 4.15.11内核并添加自定义系统调用的过程。实验使用openSUSE Tumbleweed作为发行版,通过编辑内核源码、配置内核、编译安装等步骤,成功在内核中增加了一个名为ake的功能,用于向内核缓冲区输出文字。实验中还面临了磁盘空间不足的问题,并在解决后完成了内核更新。
摘要由CSDN通过智能技术生成

编译 Linux 4.15.11 内核并增加系统调用

实验日期;2018 年 3 月 21 日 - 2018 年 3 月 22 日
实验环境:
  主机:
    操作系统:Microsoft Windows 10.0.16299 Build 16299
    处理器:Intel Core i5-7300HQ CPU @ 4x 2.50GHz
    物理内存:8.00 GB
    虚拟机软件:Oracle VM VirtualBox 5.2.6 r120293
  虚拟机:
    操作系统:openSUSE 20180319
    处理器:Intel Core i5-7300HQ CPU @ 4x 2.50GHz
    物理内存:4.00 GB
    桌面环境:LXQt 0.12.0
    编辑器:GNU Emacs 25.3.1

目录

实验目的

通过编译最新版 Linux 内核源码并增加系统调用,熟悉 Linux 命令和编辑器的使用,并加深对 Linux 内核的理解。

实验设计

实验环境设计

编译 Linux 内核首先需要 Linux 环境。Linux 环境可以直接安装到硬盘上,或选择通过虚拟机的方式安装到虚拟磁盘上。本实验采用虚拟机的方法,原因有三:①由于计算机中原有 Windows 操作系统,如果安装双系统,需要解决启动引导问题,而我目前尚无能力解决 UEFI 同时引导 Windows 与 Linux 操作系统的问题;如果删除 Windows 系统,则某些只能运行在 Windows 上的应用程序将无法使用,引起不便;②使用虚拟机将操作系统与物理设备隔离,可以避免操作失误造成的不可逆损失;③虚拟机可以截取开机时的画面,留下实验过程的珍贵资料。

Linux 有众多发行版,本实验采用 openSUSE Tumbleweed 作为实验使用的发行版,原因有三:①我曾经重装过三十余次 openSUSE Tumbleweed 系统,对该系统的安装与使用更为熟悉;②Tumbleweed 版本是滚动更新版本,每天都会提供最新的软件包更新,而本实验需要编译安装最新版 Linux 内核,如果发行版提供的软件包太旧,可能引发与内核的兼容性问题;③openSUSE 有强大的系统管理工具 YaST,便于加深初学者对 Linux 系统的整体理解。

Linux 的操作环境有命令行界面与图形界面之分,本实验采用 LXQt 桌面环境,其原因是:首先,即使使用图形界面,编译 Linux 内核过程中的重要步骤仍然在终端中进行,因此与命令行界面一样,可以达到熟悉 Linux 命令的目的。其次,在图形界面下,可以对 Linux 源码文件夹的内容有直观的印象,例如文件夹名称、文件夹中的文件数量等信息,这是命令行界面无法替代的。之所以使用 LXQt 桌面环境,是考虑到本实验仅需要编译内核源码,因此选择了较为轻量级的桌面环境。另外我也使用 Qt 进行开发,使用 LXQt 作为桌面环境,可以对 LXQt 项目有更深的了解,进而从该项目中获取 Qt 方面的知识。

Linux 下的编辑器有 Vim 与 Emacs 两个,使用任意一种均可。本实验使用 Emacs 作为编辑器。

实验方法设计

为了明显地确认增加的系统调用是否生效,本实验的系统调用使用 printk() 函数向内核缓冲区输出文字,这样可以使用 dmesg 命令查看系统调用的执行情况。

本实验增加一个系统调用 ake,ake(あけ,朱・緋)来源于日语,由词语明ける(あける)逆构词(back formation)而来,意为红色。若调用该系统调用时,会根据一个 int 类型参数的值,使用 printk() 函数向内核缓冲区输出不同的文字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值