操作系统原理这门课布置了一项作业,要求在Ubuntu系统中编译一个新的内核。下面介绍怎么在Ubuntu系统中编译一个新的内核。

安装Ubuntu系统

如何安装win10+Ubuntu双系统,我已经在上一篇文章介绍了,还没安装的,或者感兴趣的,可以去看一下。

准备工作

获取linux内核源代码

可以在官方网站https://www.kernel.org/上下载linux内核源代码的压缩包。
最新的内核源代码可以点击1处下载,如果要减少编译内核的时间,也可以下载历史版本,点击2处任意版本
下载压缩包之后,先解压缩,然后通过mv指令将压缩后的文件夹转移到/usr/src/目录下

sudo mv /home/ck/下载/linux-5.0.2/ /usr/src/

mv指令后面第一个参数填写自己的路径,第二个指令填写要转移到的路径

安装相关依赖

安装相关依赖直接在终端进行。先打开终端,依次输入如下命令:

sudo apt-get update
sudo apt-get install libncurses5-dev libssl-dev
sudo apt-get install build-essential openssl
sudo apt-get install zlibc minizip
sudo apt-get install libidn11-dev libidn11
sudo apt-get install bison
sudo apt-get install flex

如下图所示

注意,这里一定要安装完所有相关的依赖,否则下面在编译内核的时候会出错。如果编译更新版的内核,可能会要求有更多的依赖性,不要经,根据编译时候的报错原因,继续安装相关的依赖就可以,安装完成之后再重新编译内核。

编译内核

做好前置的准备工作之后,就可以开始编译内核了。编译内核分为一下两个过程:

1.配置

依次输入以下命令:

sudo make mrproper
sudo make clean
sudo make menuconfig

如图所示

其中
sudo make mrproper可以清除编译过程中产生的所有中间文件
sudo make clean可以清除上一次产生的编译中间文件
sudo make menuconfig指令输入后会出现选择的图形化界面,如下图所示

在这个图形界面中,可以根据自己需要配置内核,也可以直接按右方向键选择到exit退出,退出提示中选择保存,实现内核的默认配置

编译

输入命令

sudo make -j4

如图所示

这里我的电脑是四核的,就用了-j4,如果电脑是八核的,也可以用-j8。j后面的数字越大,编译的时间就越快。这一步需要的时间比较久,笔者编译3.16.63用了20+分钟,编译5.0.2用了40分钟。编译过程如下图所示

生成新内核

编译完成之后,就可以生成新内核了。
首先,我们要先安装内核,依次输入如下命令:

sudo make modules_install        //安装内核模块sudo make install      //安装内核

如图所示:


这两个过程不会需要很长的时间,等安装完内核之后,就重新启动计算机,进入Ubuntu高级选项界面,即可见到编译好的内核,选择该内核启动,如图所示

到这里,就成功编译完一个新的内核了。
下一篇文章,笔者将会介绍删除内核的方法,感兴趣的可以看看。

操原作业(一)Ubuntu系统编译一个新的内核相关推荐

  1. 解决安装双系统后ubuntu系统只有一个分辨率问题

    解决安装双系统后ubuntu系统只有一个分辨率问题 问题描述: 在windows系统的基础上安装了ubuntu18.04之后,发现系统的分辨率只有800*600一个分辨率,并且不能使用xrandr修改 ...

  2. 为什么现代系统需要一个新的编程模型?

    摘要:如今高要求的分布式系统的建造者遇到了不能完全由传统的面向对象编程(OOP)模型解决的挑战,但这可以从Actor模型中获益. 为什么现代系统需要一个新的编程模型? Actor模型作为一种高性能网络 ...

  3. OpenFoam-6 导入并编译一个新湍流模型

    OpenFoam-6 导入并编译一个新湍流模型 本文参考了以下链接 http://hassankassem.me/posts/newturbulencemodel/#new-version https ...

  4. (Linux)在Ubuntu系统中添加新用户并授予root权限

    向Ubuntu系统中添加新用户并为其授予root权限的步骤如下: 打开终端Terminal 输入命令: sudo su - 以 root 身份登录. 注: sudo su : 切换root身份, 不携 ...

  5. 为计算机创建一个新的用户,win10系统创建一个新账户的解决步骤

    win10系统使用久了,好多网友反馈说关于对win10系统创建一个新账户设置的方法,在使用win10系统的过程中经常不知道如何去对win10系统创建一个新账户进行设置,有什么好的办法去设置win10系 ...

  6. 操原作业(一)之Ubuntu编译新内核

    要求: 1. 准备工作 查看内核版本: 安装相关依赖: sudo apt-get install build-essential kernel-package libncurses5-dev libq ...

  7. Linux内核编译很简单,6步编译一个自己的内核

    考虑离开在前面文章中我们反复提到过Linux内核,知道Linux内核才是Linux操作系统最为核心的内容.内核实现了对硬件的管理,为应用软件提供了使用硬件的接口. 对于Linux开发人员而言,内核的学 ...

  8. 如何在Ubuntu系统下挂载新硬盘(win10+Ubuntu双系统单硬盘挂载新硬盘)

    win10+Ubuntu双系统单硬盘挂载新硬盘 先在win10系统下找到新磁盘,分出需要扩充到Ubuntu的分区,新建简单卷再压缩卷. 进人Ubuntu系统,用磁盘管理工具,找到新分区,点齿轮把他格式 ...

  9. docker mysql高可用_Docker下Ubuntu系统编译安装HAprox+Keepalived+MySQL负载高可用架构

    系统环境:Ubuntu16.04(Docker容器) 架构环境: Keepalived/HAproxy MASTER: 172.17.0.4 Keepalived/HAproxy BACKUP: 17 ...

最新文章

  1. linux服务器升级 需要什么,linux服务器升级node版本
  2. Java解析HTML
  3. fsetpos() fgetpos()详解
  4. CreateFile
  5. vue.js上传头像插件_一个基于vue2.0的头像上传组件
  6. Struts2与传统模式的对比,核心控制器从servlet变成了过滤器,!!
  7. 转贴:Google Reader:信息背后的信息,无可替代的伟大
  8. 数据科学即将迎来“无代码”时代
  9. Linux下source命令作用
  10. 超分算法之SRCNN
  11. 10款流程图绘制工具
  12. IOTSWC欧洲工业物联网解决方案大会-2019
  13. C++:缺省参数是怎样设置的?
  14. 让生如夏花之绚烂 死如秋叶之静美 (全诗)
  15. magicbook大学计算机系,大学开学选择哪款笔记本? Redmibook 14全面对比荣耀Magicbook...
  16. 给图片添加文字(换行)水印
  17. amigo幸运字符什么意思_python3基础01数值和字符串(一)
  18. “杜拉拉升职记”电影看后感
  19. C++与OpenCV同时批量处理图像数据
  20. 索引的底层实现原理是什么?

热门文章

  1. 最新C#/CLR的访谈录( 访Peter Hallam)
  2. 云计算存储之什么是Ceph?听听Ceph创始人怎么说
  3. 计算机中xp系统中qq文件,WinXP电脑QQ为什么登不上去?如何解决?
  4. 【英语天天读】Advice to a Young Man
  5. python与算法社区_3社区分类算法_python量化交易_Python视频-51CTO学院
  6. Open3D 点云曲率计算
  7. 提问:影视剪辑解说都是怎样配音的,软件合成还是自己配音?
  8. android studio 自定义控件
  9. 『JavaSE』多态
  10. android开发百度地图定位到大西洋去了!!