带你阅读linux内核源码:下载源码、编译内核并运行一个最小系统
要学习linux内核,先要能够编译内核,还需要了解内核如何启动根文件系统。这样你才能在修改linux内核代码之后,完成验证的过程。
本文教你完成下列过程:
1.下载linux并编译linux内核源码
2.编译busybox
3.制作一个最小的根文件系统
4.qemu启动你编译好的内核和根文件系统
linux源码下载地址:
https://mirrors.edge.kernel.org/pub/linux/kernel/
我选择的版本是:4.9.229
https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.229.tar.xz
下载到本地,解压,然后进入linux-4.9.229目录:
1.指定硬件体系架构。
为了减少安装编译器的过程,我在本例中使用的是x86,因为我的开发环境就是x86。如果你要编译arm的内核,则指定ARCH=arm且需要安装交叉编译器。
2.配置board config,此处配置为 x86_64_defconfig。好了,我们点好菜了,菜单就是x86_64_defconfig
3.配置内核
这一步其实是对第2步的菜单进行微调,我们需要内核支持ramdisk驱动,所以需要选中如下配置:
4.编译内核
编译成功后的内核位于:arch/x86_64/boot/bzImage
下载buysbox源码,下载地址:
https://busybox.net/downloads/
我使用的版本是busybox-1.30.0
1.解压buysbox源码
2.配置buysbox源码
在这里我们把busybox配置为静态编译,这样busybox在运行的时候就不需要额外的动态链接库了。
3.编译和安装
4.编译完成后的busybox就安装在源码根目录下的_install目录了,我们进入_install目录,补充一些必要的文件或目录,相关的shell命令如下:
这样一个最小的、完整的可以被内核启动的文件系统就齐活啦。
制作根文件系统镜像文件。
思路:
1.先制作一个空的镜像文件;
2.然后把此镜像文件格式化为ext3格式;
3.然后把此镜像文件挂载,并把根文件系统复制到挂载目录;
4.卸载该镜像文件。
5.打成gzip包。
最终生成的文件系统镜像名字为:rootfs.img.gz
准备好了内核和文件系统镜像,幸福的一刻马上来临了:
通过qemu模拟器启动我们自己编译的内核和文件系统:
这样一个完整的最小linux系统就起来啦:
好了,经过以上的步骤,你可以自己编译一个内核和文件系统。有了这样的基础,你在之后就可以自由的修改linux内核代码并run起来进行验证啦。
记得关注“技术简说”,持续分享linux内核知识,让你一步一步成为linux内核高手。
Android 开发者的福利,介绍几款看源码的工具
对于 Android 工程师来说,无论是工作还是面试,都需要看源码。
可能有人说,我本地 AndroidStudio 也能看啊。
但你肯定遇到过,看的正爽着呢,跳到了 native 方法,没法继续了。
于是你会去网上找源码,下载,一看好几十 G,没法继续了。
又或者你下了一个版本,还想看其他版本,结果,电脑装不下了。
今天推荐的这几个网站,不会存在这些问题。
1、http://androidxref.com/
做 Android 的,应该都知道这个网站,但更新不及时,现在还停留在 Android 9,访问速度也一般。
2、http://www.aospxref.com/
这是维术大神推荐的,由他们公司提供和维护,我现在已经从 xref 转到 aospxref 了,更新及时,访问速度很快,极力推荐。
3、https://cs.android.com/
这是最近 Google 官方推出的一个网站,搜索 Android 开源项目 (AOSP) 的代码之外,还提供了 CameraX、Jetpack Compose 等 AndroidX 库的源码搜索,很全很强大。
推荐两个自用的源码学习与开发资料网站
说到源码网站,搞开发的小伙伴们都不陌生吧[大笑],肯定一口气能说出好几个,例如GitHub、Gitee、还有熟知的CSDN博客,而我今天所介绍的网站也是在查阅前几个网站中偶然间发现的[偷笑],感觉挺好的所以就收藏了一下[憨笑]
1、淘源码【http://www.ydmdd.com/CodeIndex】
淘源码网站是一个专注于源码学习、分享与交易的综合性平台,为开发者们提供了一个广阔的资源共享空间。该网站汇聚了大量的开源项目和私有源码,涵盖了各种编程语言和领域,旨在帮助开发者们提升技能、加速开发进程,并促进源码的流通与共享。
首先,淘源码网站具有丰富的源码资源。无论是初学者还是资深开发者,都能在这里找到适合自己的学习资料。这些源码资源不仅包含了完整的项目代码,还有详细的文档和教程,方便用户进行学习和理解。此外,网站还提供了源码的搜索和分类功能,用户可以根据自己的需求快速定位到目标源码。
其次,淘源码网站注重源码的质量与安全性。网站对上传的源码进行了严格的审核和筛选,确保源码的合法性和可靠性。同时,网站还提供了源码的评分和评论功能,用户可以对源码进行评价和反馈,帮助其他用户更好地选择适合自己的源码。
除了源码资源的分享与交易,淘源码网站还提供了丰富的社区功能。用户可以在这里与其他开发者进行交流、讨论技术问题、分享经验心得。这种社区氛围有助于形成一个良好的学习环境和合作氛围,促进开发者们共同成长和进步。
此外,淘源码网站还关注源码交易的安全与便捷性。网站提供了完善的交易机制,确保买卖双方的权益得到保障。用户可以在这里发布自己的源码出售信息,也可以浏览其他用户的出售信息,进行源码的交易和购买。这种交易方式不仅方便了用户之间的源码流通,也为开发者们提供了一个获取经济回报的途径。
总的来说,淘源码网站是一个集源码学习、分享、交易和社区交流于一体的综合性平台。它为开发者们提供了一个便捷、高效的学习资源获取途径,有助于提升开发者的技能水平和项目质量。同时,通过源码的流通与共享,也促进了整个软件行业的进步与发展。
2、源码无忧【https://www.ym51.cn/】
源码无忧网站是一个专门提供源码资源的综合性平台,致力于为开发者们提供高质量、多样化的源码学习和开发资源。以下是对源码无忧网站的详细介绍:
首先,源码无忧网站拥有丰富的源码资源,涵盖了游戏源码、网站源码、端游源码、页游源码、手游源码、源码等多个领域。这些源码资源都是经过精心筛选和整理的,确保了其质量和可靠性。无论是初学者还是资深开发者,都能在这里找到适合自己的学习资料和项目参考。
其次,源码无忧网站注重源码的更新与维护。网站的管理团队会定期更新源码资源,确保其与最新的技术趋势保持同步。同时,网站还提供了源码的下载和使用指南,方便用户进行学习和实践。此外,源码无忧网站还拥有一个活跃的社区,开发者们可以在这里交流经验、分享技巧,共同解决源码学习和开发过程中遇到的问题。
再者,源码无忧网站还提供了丰富的技术文章、网站模板、精品软件、视频教程等学习资源。这些资源可以帮助开发者们更深入地了解源码开发的技巧和方法,提升他们的编程能力和项目经验。此外,网站还提供了客户端、网游单机、登陆器等资源,方便用户进行项目开发和部署。
最后,源码无忧网站以其良好的用户体验和专业的服务赢得了广大开发者的信赖和好评。网站的界面简洁明了,操作便捷,用户可以轻松地浏览和搜索自己需要的源码资源。同时,网站的客服团队也提供了及时、专业的技术支持和解答,确保用户在使用过程中能够得到满意的帮助和指导。
综上所述,源码无忧网站是一个资源丰富、更新及时、服务专业的源码学习和开发平台。它为开发者们提供了一个便捷、高效的获取源码资源的途径,有助于提升他们的技能水平和项目质量。如果你是一名热爱源码学习和开发的开发者,那么源码无忧网站绝对值得你收藏和关注。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。