操作系统原理实验(二)

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

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

3.4 (实验目的:熟悉Linux系统调用原理)在Ubuntu或Fedora环境下为Linux内核增加1-3个新的系统调用,并启用新的内核,编写一个应用程序测试新增加的系统调用是否能正确工作。源代码下载网址:www.kernel.org.

编译环境

  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 -xJf linux-5.5.5.tar.xz
    操作系统原理实验(二)
2)安装一些编译工具

先获取root权限 sudo su,他会让你输入密码,密码是不可见的,你输完按Enter就行
apt-get install gcc gdb
apt-get install bison
apt-get install flex
apt-get install libncurses5-dev libssl-dev
apt-get install libidn11-dev libidn11
sudo apt-get install zlibc minizip
sudo apt-get install build-essential openssl

这些应该就够了,我也不太记得我安装了多少个了,不过没关系,在之后如果少某个工具的话它会提示的,到时候再下载也可以,(嘿嘿~尴尬)比如我一开始没有安装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. 编译内核

make -j4 ----------------j2,j4,j8可以提高速度,j后面跟的参数是电脑cpu的进程数

  1. 编译模块

//第一次编译模块要很长时间,emmm做好3个小时的准备,你可以去看个电影。。
make modules

  1. 安装模块

make modules_install

  1. 安装内核

make install

  1. 更新grub引导程序

update-grub2

操作系统原理实验(二)

  1. 重启电脑,在Ubuntu高级选项中选用新内核
    操作系统原理实验(二)这几个Linux版本是5.5.5的就是咱们新安装的啦,虽然我也不晓得为啥子有四个,不过选哪个都能进去,我这里是选的第一个
    操作系统原理实验(二)
  2. 检查新内核版本操作系统原理实验(二)

OK!大功告成啦!

另外这里面可能出现一个BUG!我卡了三天!5555~
各种查资料都没有毛用,终于在****看到了一个大神的解法!
就是把虚拟机先关机在配置编辑里把内存调大一点,我从2G调到了4G就OK了。
附上那个大神的链接https://blog.****.net/Aliceatsea/article/details/88360264
操作系统原理实验(二)操作系统原理实验(二)