Linux/Ubuntu虚拟机添加系统调用保姆级教程(含泪整理

        大二鼠鼠,在做操作系统实验时,被互联网上繁杂的资料整到破防,刚刚把实验报告交了,想着写一篇简洁的添加系统调用教程,希望帮助初学者脱离苦海,阿弥陀佛,欢迎在评论区友好评论喔,问题可以大家一起解决!

        相信看到这篇文章的大家应该已经装好Ubuntu虚拟机了,话不多说,直接开始!

       一定要给虚拟机扩容啊,编译内核时消耗了36G的磁盘空间!!!

       (我扩容到了内存8G,磁盘60G,目前够用)

                                                       (新增系统调用  成品图如上)

第一步,在虚拟机上下载Linux内核源码。

        我的虚拟机内核版本为5.15.0-100.g,因此我选择下载的Linux内核版本号为5.15.0,对其解压,存放到指定目录下。(后面发现这个内核版本号与虚拟机的不同其实也可以)

        Linux内核源码下载:https://mirrors.edge.kernel.org/pub/linux/kernel/         

        当然,也可以利用我下面的Bash代码在终端输入,下载内核源码:

 wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.15.0.tar.gz

        对下载的内核源码 tar.gz 文件进行解压:

tar -xvf linux-5.15.0.tar.gz

第二步,在解压后的目录打开终端,对下列文件进行自定义函数的声明与函数体编写。

文件名  arch/x86/entry/syscalls/syscall_64.tbl     系统调用函数表中添加索引      

 文件  linux-5.15/kernel/sys.c   进行自定义系统调用的函数体编写(学号就别抄了

文件  arch/x86/include/asm/syscalls.h     新系统调用函数声明(1)

文件  include/linux/syscalls.h    新系统调用函数声明(2)

        

        

第三步,在解压目录下终端进入sudo模式,进行内核的安装。

1)安装编译时需要的应用及其插件包

sudo apt install bc binutils bison dwarves flex gcc git gnupg2 gzip libelf-dev libncurses5-dev libssl-dev make openssl perl-base rsync tar xz-utils 

2)编辑编译配置

make olddefconfig 

3)关闭内核模块证书——执行完这一步可以拍摄一张快照了

./scripts/config --file .config --set-str SYSTEM_TRUSTED_KEYS ''
./scripts/config --file .config --set-str SYSTEM_REVOCATION_KEYS ''

4)开始内核编译——在这一步你可能会遇到各种各样问题,只能靠自己了,鼠鼠我相信你!!!若编译顺利,可能需要一个小时左右

make -j$(nproc) 2>&1 | tee log

5)安装内核模块——若编译失败,这一步是执行不下去的。。。

sudo make modules_install -j$(nproc)

6)安装Linux内核——这一步问题也不少,我遇到过bzImage等问题

sudo make install

7)可选,遇到重启后没有切换内核的情况可以试一下

vim /etc/default/grub

        将其中的GRUB_TIMEOUT_STYLE参数修改为menuGRUB_TIMEOUT参数修改为-1(#TIMEOUT=0代表立即进系统,不会显示menu,这里设置成menu即可      #TIMEOUT=-1 代表一直显示menu,直到用户做出选择),此时重启虚拟机,即可选择本次登录的Linux内核。

8)重启虚拟机

reboot 

第四步,自定义系统调用函数的输出验证

1)编写一个 .c 文件,具体内容如下

2) 在存放上述 .c 文件的目录下打开终端,利用gcc编译器,对其进行编译,并利用dmesg命令查看内核活动日志

3)注意到在内核活动中,学号姓名被正确输出,实验成功!

参考博客(鼠鼠受益匪浅): 

技术|Linux 内核动手编译实用指南

linux内核添加系统调用(详细)_采用编译内核法,在linux中增加一个系统调用。 要求: (1)系统调用实现的功能:计算-CSDN博客

【已解决】Could not get lock /var/lib/dpkg/lock-frontend_root@laptop-7k42b2pf:~# sudo rm /var/lib/dpkg/lock-CSDN博客

安装了内核重启后内核版本没有更新 调处grub引导界面 (已解决)_grub_timeout_style=menu-CSDN博客

  • 31
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 以下是Linux Ubuntu虚拟机安装教程: 1. 首先,下载并安装虚拟机软件,如VMware或VirtualBox。 2. 下载Linux Ubuntu的ISO镜像文件。 3. 打开虚拟机软件,创建一个新的虚拟机。 4. 在创建虚拟机的过程中,选择“使用ISO镜像文件”选项,并选择下载好的Linux Ubuntu ISO镜像文件。 5. 继续按照虚拟机软件的提示进行设置,如选择虚拟机的硬件配置、分配虚拟机的内存和硬盘空间等。 6. 完成虚拟机的创建后,启动虚拟机并开始安装Linux Ubuntu。 7. 在安装过程中,按照提示进行设置,如选择安装语言、时区、键盘布局等。 8. 在安装过程中,选择“使用整个磁盘并安装Ubuntu”选项,以便将Linux Ubuntu安装在虚拟机的硬盘上。 9. 完成安装后,重启虚拟机并登录Linux Ubuntu系统。 10. 现在,您可以开始在Linux Ubuntu虚拟机中进行各种操作和应用程序的安装了。 ### 回答2: Linux Ubuntu是一款免费,开源且灵活的操作系统,越来越受到开发者和普通用户的青睐。在Windows或Mac OS系统下使用Ubuntu的最佳方法是在虚拟机中安装它。这个教程将教你如何在虚拟机中安装Ubuntu。 1. 下载VMware虚拟机 VMware虚拟机是一种软件,它允许你在计算机上创建一个虚拟计算机环境。你可以在VMware上安装不同的操作系统作为虚拟机,并在主机系统上同时运行。 首先,你需要从VMware官网上下载完整版的虚拟机。下载后,按照提示安装到你的计算机中。 2. 下载Ubuntu操作系统 访问Ubuntu官网,下载最新的Ubuntu操作系统镜像文件。通常文件后缀名为“.iso”。 3. 创建一个新的虚拟机 打开VMware虚拟机软件,点击“新建虚拟机”按钮。在新建虚拟机向导中,选择“典型”安装方式。 4. 选择Ubuntu镜像文件 在安装虚拟机的过程中,选择“使用光盘镜像文件(iso)”选项,然后浏览到你下载的Ubuntu镜像文件。 5. 配置虚拟机 接下来,你需要为你的虚拟机配置硬件资源。设置虚拟机的名称、存储位置、分配的内存和CPU核心数量等。 6. 创建磁盘 在虚拟机创建向导中,选择“创建新虚拟磁盘”,并按照操作系统提示完成。 7. 安装Ubuntu 虚拟机安装完毕后,你需要从Ubuntu安装光盘中启动虚拟机。按操作系统提示,进行基本的Ubuntu操作系统安装。 在安装过程中,注意分配磁盘空间和分区。当你完成Ubuntu系统的安装后,你就可以在虚拟机中运行Ubuntu了。 总之,在虚拟机中安装Ubuntu,能够更加灵活的运行和学习这个操作系统,同时也不会影响到你的主机系统。 ### 回答3: Linux Ubuntu虚拟机安装教程 随着云计算、虚拟化技术的不断发展,虚拟机技术已经成为现代企业IT系统中不可或缺的一环。其中Linux Ubuntu是一款极为流行的开源操作系统,支持安装在虚拟化环境中。下面就让我们来看一下如何在虚拟机中安装Ubuntu。 1.准备安装镜像文件 首先需要从Ubuntu官网下载一个Ubuntu镜像ISO文件。在下载Ubuntu镜像时,应该选择一个适合自己的版本,最好是最新版。下载ISO镜像需要一定的时间,具体下载时间取决于网络速度。 2.安装虚拟机软件 虚拟机软件可以使用VMware Workstation、VirtualBox等,可以根据需求和个人喜好选择虚拟机软件。在安装虚拟机软件之后,打开虚拟机软件界面并点击“新建虚拟机”按钮。 3.创建虚拟机 在创建虚拟机时,需要填写虚拟机的名称、磁盘大小、内存容量等信息。其中需要注意的是,选择安装Ubuntu操作系统。电脑的物理内存和虚拟机内存之和应该足够大,否则虚拟机将无法正常运行。 4.安装Ubuntu 安装Ubuntu之前需要挂载Ubuntu的ISO文件。打开虚拟机,选择“Install Ubuntu”并按照提示操作。在安装Ubuntu时,需要选择磁盘分区、时区等,在网络配置中可以选择DHCP动态分配IP地址,也可以指定静态IP地址。 5.常用设置 安装完成后,需要对Ubuntu磁盘进行扩容。首先要关机并拷贝虚拟机文件,然后在扩容磁盘后进行还原。安装完成后,还需要安装Ubuntu的基本设置,如安装SSH工具、桌面环境等,以便能够顺畅的使用Ubuntu。 以上就是Linux Ubuntu虚拟机安装教程的基本步骤和注意事项。如果想要更深入地学习Ubuntu,可以参考其他相关书籍和实践,不断提升自己的技能水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值