操作系统原理实验一(二)

继续完成操作系统原理的实验

3.3 (实验目的:了解操作系统生成的概念,熟悉Linux内核编译和裁剪)在Ubuntu或Fedora环境下裁剪和编译Linux内核,并启用新的内核。源代码下载网址:www.kernel.org.

3.4 (实验目的:熟悉Linux系统调用原理)在Ubuntu或Fedora环境下为Linux内核增加1-3个新的系统调用,并启用新的内核,编写一个应用程序测试新增加的系统调用是否能正确工作。源代码下载网址:www.kernel.org.
题3.4的解题过程点这里:[操作系统原理实验(三)](https://blog.youkuaiyun.com/zsh1184528359/article/details/104591051)

编译环境

  1. VMWare
  2. Ubuntu Desktop
  3. Ubuntu 18.04网盘下载链接:链接:https://pan.baidu.com/s/1FpA1nMvH4_w4yd9N1hs4dQ
    提取码:zlhq
  4. 装ubuntu很简单,网上教程一大堆,内存分配多点!!!!(这个很重要,我一开始分配了2G,后来出现了一个巨坑,最后改成4G才好了,在结尾我会介绍这个巨坑的55555~,老夫三天的青春啊)
  5. linux内核版本5.5.5,可以去官网上下载:www.kernel.org.
    在这里插入图片描述

3.3编译并启用新的Linux内核

1)下载解压Linux内核
  1. Linux内核可以在上面给出的官网下载
  2. 下载后右键点提取,可以解压
    (或者//cd 到linux压缩包目录下,tar命令解压 tar -xvJf linux-5.5.5.tar.xz
    注意tar -xvJf 中J是大写的。然后如果解压后文件右下角有个小锁,就是访问读写权限很小,可以在生成的文件目录下输入sudo chmod 777 * -R)
    在这里插入图片描述
2)安装一些编译工具

先获取root权限 sudo su,他会让你输入密码,密码是不可见的,你输完按Enter就行
另外:就是如果你已经使用指令sudo su 获取了root权限,那么在这个终端以后所有命令都不用输入sudo 了,它都会以root权限执行,但是如果没有获取root权限就得在每个命令前都加上sudo来提醒机器以root权限执行

依次执行下面的语句
apt-get install gcc gdb bison flex
apt-get install libncurses5-dev libssl-dev
apt-get install libidn11-dev libidn11
apt-get install zlibc minizip
apt-get install build-essential openssl
apt-get install libelf-dev

这些应该就够了,我也不太记得我安装了多少个了,不过没关系,在之后如果少某个工具的话它会提示的,到时候再下载也可以,(嘿嘿~尴尬)比如我一开始没有安装flex,他就会出现下面这个error在这里插入图片描述你再添上它,然后重新进行刚刚没有完成的指令就可以了
在这里插入图片描述在这里插入图片描述在这里插入图片描述有时还会出现无法下载的情况,如下update就好了在这里插入图片描述
在这里插入图片描述在这里插入图片描述

3)重新编译内核
  1. 先cd到你刚刚下载解压好的内核目录去,依次运行下面三条指令:

1. sudo make mrproper #清除残留的.config和.o文件
2. sudo make clean
3. sudo make menuconfig #打开配置内核的图形窗口

在这里插入图片描述
按右方向键到Save,点击Enter进入,然后一直点Enter,然后Exit退出就可。
在这里插入图片描述

  1. 编译内核

sudo make -j4 2> error.log ----------------j2,j4,j8可以提高速度,j后面跟的参数是电脑cpu的进程数
//第一次编译要很长时间,emmm做好3个小时的准备,你可以去看个电影。。
然后后面的这个 2>error.log 目的是如果报错则把错误信息保存在error.log文件下,呜呜呜~怎么我一开始做的时候不知道这个东西。有了这个你就不用在报错之后绝望的翻深不见底的编译记录了在这里插入图片描述

插播一条新闻,到这里跳过下面的编译模块等(3,4,5,6)
你试一下最后的检测内核版本的命令
uname -r 
uname -a
看看是不是已经换了内核版本了0.0
我们老师讲 linux3.0之后的版本可以自己完成下面的步骤,不需要手动输入命令
哭哭/(ㄒoㄒ)/~~
如果是真的,请评论告诉我一下,谢谢!
  1. 编译模块

//emmmm这个时间比上一个短一点,有时候20分钟就好了
sudo make modules

  1. 安装模块

sudo make modules_install

  1. 安装内核

sudo make install

  1. 更新grub引导程序

sudo update-grub2

在这里插入图片描述

  1. 重启电脑(它默认应该是使用我们新编译的这个内核的,如果没有的话你再重启进入那个高级选项,在Ubuntu高级选项中选用新内核(开机时按上、下键可进入这个选择界面))
    在这里插入图片描述这几个Linux版本是5.5.5的就是咱们新安装的啦,虽然我也不晓得为啥子有四个,不过选哪个都能进去,我这里是选的第一个
    在这里插入图片描述
  2. 检查新内核版本

uname -r
uname -a

在这里插入图片描述

OK!大功告成啦!

另外这里面可能出现一个BUG!我卡了三天!5555~
各种查资料都没有毛用,终于在优快云看到了一个大神的解法!
就是把虚拟机先关机在配置编辑里把内存调大一点,我从2G调到了4G就OK了。
附上那个大神的链接https://blog.youkuaiyun.com/Aliceatsea/article/details/88360264
在这里插入图片描述在这里插入图片描述

写在结尾

希望以上可以帮到你!
如有错误,或不同想法,欢迎指出,互相学习共同进步!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值