编译linux内核

编译linux内核

编译内核一听就有点上档次,但是不管这个操作到底有好高大上,俗话说得好

一切从实际出发,理论结合实际,实事求是,在实践中检验真理并发展真理,人参补酒王八汤。。。

要编译内核关键就是编译过后我咋晓得我到底编译成功没有喃?要想验证就在内核中加入自己的代码,编译完内核后,调用一哈就晓得自己到底成功没有。步骤就是:

  1. 通过sudo apt-get install linux-source-4.15.0下载linux内核源码
  2. 将下图代码添加到sys.c文件中在这里插入图片描述
  3. 在类似于表映射文件syscall_64.tbl中修改如下代码在这里插入图片描述
  4. 这一步我感觉好像可以不用。。在这里插入图片描述
  5. 然后就是正式编译了在这里插入图片描述在这里插入图片描述
  6. 最后就是在内核安装结束后,写自己的测试程序,然后观察结果,两行的结果中的第一列应该是相同的因为第一项是从1970年到现在的系统记录的是时间,以秒为单位,而这个程序一般来说要不到什么时间,除非你在一分钟的最后59的最后机微妙精确的执行才会不同,而第二项一般都要差几个数,第二项是修饰第一项中最后一秒里面走到了多少微妙就相当于一点半修饰一点这个小时里面走了多少分钟在这里插入图片描述
  7. 最后就是截图在这里插入图片描述

提供几个非常好的,我在编译linux内核中遇到问题的博客
大概的步骤可以参考这篇ubuntu编译内核流程
当遇到磁盘空间不够的时候,千万不要去干重装这种浪费时间的事,最好的办法:扩展空间
这篇为博客相当好: Ubuntu使用Gparted扩展分区空间

再有就是编译的时候我们用的都是make[…]等命令,为啥我们不用最常见的gcc命令喃?
这两篇博客好: makefile粗略认识跟我一起写Makefile
看了这两个博客之后就可以干点有意思的事情了~,比如说自己悄悄咪咪的把内核源码那个文件夹头的Makefile拷贝出来,自己写那个Makefile,然后假装遇到困难,去找自己的同学(不要切找那种很凶的,因为别个可能早就晓得了),然后就假装自己遇到了看不懂的提示,就是自己一输make命令就弹出来个莫名其妙的提示,然后其他的就自己发挥了 ~除了这个Makefile还有就是printk,一起用。。。

然后就是编译的时候太慢,因为我们老师提都没给我们这个小东西,我们就瓜兮兮的编译,一编就3、4个小时,其实是可以用更短的时间的,用 make -j4,这就是开多线程并发便宜,因为现在电脑大多都是多核,可以达到真正的并发,我是从这篇博客 985的计算机学到的,他里面有很多截图我就不上我自己的图了~
在这里插入图片描述
我的cpu是四核四线程,我把那个逻辑处理器当成线程数,可以让任务管理器把cpu性能显示成几张图,有几张图就是几线程,然后在虚拟机里面设置一哈就可以跑了,确实不一样!我之前一个线程要四个小时左右,现在要一个小时20分钟。但是这就有个问题了,按理来说一个线程四个小时,那四个线程应该稳进1个小时左右三,左右分钟三,但是这个为啥会差二十多分钟将近半个小时,经过我的观察,如果四线程要是起作用的话的上面那张图里面的四个小框框都会使用率100%的情况,但是在编译过程中有一些情况是cpu的使用率会降下来的情况,也就是说可能Makefile中写的并不是所有的文件编译都能采用并发的情况,有些文件的编译只能用单线程来,并发可能会出现某种问题,所以就不是简单的线性关系。

经过上面的九九八十一难之后,我终于。。。系统崩溃了
在这里插入图片描述

看来九九八十一难我才经历了八十难,革命尚未成功啊~

我第一反应就是我把原本的内核整坏了,导致开不了机,但这里其实不是这么回事,但是如果真的是内核出了问题,尽量不要重装因为你的系统一般不止一个内核,可以进入GRUB引导选择可以用的内核进入系统,或者真的没有其他可以用的内核的话,可以参考这篇文章linux修复内核ubuntu内核损坏的修复,只是参考,因为毕竟出问题开不了机的时候,只有通过U盘或者光盘开机,然后打开的是光盘或者U盘中的系统,你需要挂在自己的分区才能访问到自己电脑中的数据,所以你要想装入新的内核就必须要把自己电脑中的一些重要分区都挂载进来,然后装内核才会真正装到你的电脑中。

不过这个提示信息是out of memory and no killab....., 这个的解决办法就是把自己虚拟机的内存设置高一点,我感觉之所以自己的内核编译后会出现这种问题,就是系统的内核是经过某种优化处理的,所以我只用设置1G内存就够用了,但是我们自己拿到源码就开始乱整编译出来的东西,没有经过处理,所以在性能上面有差距。

进去以后通过GRUB引导,选择内核,这个内核会更具版本的高低自动降序排列,所以编译之前就要记住自己到编译的什么版本的内核,还有就是如果时间安装的现成的内核,我感觉后面就有(-generic)字样, 因为我自己编译的内核就没有generic

在这里插入图片描述

还有就是网上有删除内核的方法,但是那些都是针对那些能够通过命令找到img文件的内核(我就把这一类的内核成为正规安装的内核,我们自己编译安装的内核就是歪内核),如果想删除自己编译的歪内核,就需要自己手动删除,这篇 删除linux内核的方法 ,我试过了反正把/boot目录下的下的内核文件都删干净了而且还更新了GRUB中的内容,因为内安装都是默认安装到/boot下的,因为/boot是开机启动的目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值