操作系统原理实验(二)
继续完成操作系统原理的实验
3.3 (实验目的:了解操作系统生成的概念,熟悉Linux内核编译和裁剪)在Ubuntu或Fedora环境下裁剪和编译Linux内核,并启用新的内核。源代码下载网址:www.kernel.org.
3.4 (实验目的:熟悉Linux系统调用原理)在Ubuntu或Fedora环境下为Linux内核增加1-3个新的系统调用,并启用新的内核,编写一个应用程序测试新增加的系统调用是否能正确工作。源代码下载网址:www.kernel.org.
编译环境
- VMWare
- Ubuntu Desktop
- Ubuntu 18.04网盘下载链接:链接:https://pan.baidu.com/s/1FpA1nMvH4_w4yd9N1hs4dQ
提取码:zlhq - 装ubuntu很简单,网上教程一大堆,内存分配多点!!!!(这个很重要,我一开始分配了2G,后来出现了一个巨坑,最后改成4G才好了,在结尾我会介绍这个巨坑的55555~,老夫三天的青春啊)
- linux内核版本5.5.5,可以去官网上下载:www.kernel.org.
3.3编译并启用新的Linux内核
1)下载解压Linux内核
- Linux内核可以在上面给出的官网下载
- 下载后右键点提取,可以解压
(或者//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)重新编译内核
- 先cd到你刚刚下载解压好的内核目录去,依次运行下面三条指令:
- sudo make mrproper #清除残留的.config和.o文件
- sudo make clean
- sudo make menuconfig #打开配置内核的图形窗口
按右方向键到Save,点击Enter进入,然后一直点Enter,然后Exit退出就可。
- 编译内核
make -j4 ----------------j2,j4,j8可以提高速度,j后面跟的参数是电脑cpu的进程数
- 编译模块
//第一次编译模块要很长时间,emmm做好3个小时的准备,你可以去看个电影。。
make modules
- 安装模块
make modules_install
- 安装内核
make install
- 更新grub引导程序
update-grub2
- 重启电脑,在Ubuntu高级选项中选用新内核
这几个Linux版本是5.5.5的就是咱们新安装的啦,虽然我也不晓得为啥子有四个,不过选哪个都能进去,我这里是选的第一个
- 检查新内核版本
OK!大功告成啦!
另外这里面可能出现一个BUG!我卡了三天!5555~
各种查资料都没有毛用,终于在****看到了一个大神的解法!
就是把虚拟机先关机在配置编辑里把内存调大一点,我从2G调到了4G就OK了。
附上那个大神的链接https://blog.****.net/Aliceatsea/article/details/88360264