编译linux内核

本文详细介绍编译Linux内核的全过程,包括源码下载、内核修改、编译技巧及常见问题解决,如内存不足、编译加速、内核验证等,适合初学者和进阶者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译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是开机启动的目录

资源下载链接为: https://pan.quark.cn/s/d37d4dbee12c A:计算机视觉,作为人工智能领域的关键分支,致力于赋予计算机系统 “看懂” 世界的能力,从图像、视频等视觉数据中提取有用信息并据此决策。 其发展历程颇为漫长。早期图像处理技术为其奠基,后续逐步探索三维信息提取,与人工智能结合,又经历数学理论深化、机器学习兴起,直至当下深度学习引领浪潮。如今,图像生成和合成技术不断发展,让计算机视觉更深入人们的日常生活。 计算机视觉综合了图像处理、机器学习、模式识别和深度学习等技术。深度学习兴起后,卷积神经网络成为核心工具,能自动提炼复杂图像特征。它的工作流程,首先是图像获取,用相机等设备捕获视觉信息并数字化;接着进行预处理,通过滤波、去噪等操作提升图像质量;然后进入关键的特征提取和描述环节,提炼图像关键信息;之后利用这些信息训练模型,学习视觉模式和规律;最终用于模式识别、分类、对象检测等实际应用。 在实际应用中,计算机视觉用途极为广泛。在安防领域,能进行人脸识别、目标跟踪,保障公共安全;在自动驾驶领域,帮助车辆识别道路、行人、交通标志,实现安全行驶;在医疗领域,辅助医生分析医学影像,进行疾病诊断;在工业领域,用于产品质量检测、机器人操作引导等。 不过,计算机视觉发展也面临挑战。比如图像生成技术带来深度伪造风险,虚假图像和视频可能误导大众、扰乱秩序。为此,各界积极研究检测技术,以应对这一问题。随着技术持续进步,计算机视觉有望在更多领域发挥更大作用,进一步改变人们的生活和工作方式 。
内容概要:该论文探讨了光纤通信中光脉冲传输性能的数值仿真方法,重点研究了光脉冲在光纤中传输时受到色散、损耗和非线性效应的影响。文章采用分步傅里叶方法求解非线性薛定谔方程(NLSE),并对高斯脉冲、超高斯脉冲和双曲正割脉冲三种常见光脉冲的传输演化进行了仿真分析。结果显示,双曲正割脉冲在相同的传输条件下具有最佳的抗色散和非线性能力。此外,论文还通过改变群速度色散(GVD)和非线性系数等参数,进一步分析了不同条件对光脉冲传输性能的影响,并提出了脉冲选择策略和系统设计建议。最后,通过性能评估指标对三种脉冲的传输性能进行了量化分析,验证了分步傅里叶方法的有效性,并为光纤通信系统的优化设计提供了指导。 适合人群:从事光纤通信领域研究的技术人员、研究生以及对光脉冲传输感兴趣的科研人员。 使用场景及目标:①理解光脉冲在光纤中传输时所受的色散、损耗和非线性效应的影响;②掌握分步傅里叶方法求解非线性薛定谔方程的具体步骤;③评估不同脉冲形状在光纤中的传输性能,选择合适的脉冲类型和优化系统参数;④为实际工程应用提供理论依据和技术支持。 其他说明:论文不仅提供了详细的仿真代码和结果分析,还通过扩展仿真展示了不同参数对光脉冲传输性能的影响,有助于读者更全面地理解光脉冲传输的物理机制和工程应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值