当前位置:首页>Linux>新手学 Linux 内核,我帮你看看目录都有什么

新手学 Linux 内核,我帮你看看目录都有什么

  • 2026-10-11 06:28:53
新手学 Linux 内核,我帮你看看目录都有什么
   放下编译器 拿起文本框
-----我的 第4篇 笔记-----
今天我来看看内核目录,长得什么样子!
咱得先找一个吧,你怎么找的??
刚接触内核,你有过没,第一件事打开Linux内核官方网站,疯狂找最新版本下载。
觉得最新版本功能最全,学新的肯定没错。
折腾了整整一个月,编译、测试、改配置,最后发现根本用不到项目里哈哈。
内核官网确实是最权威的源码阵地,所有开源内核版本都会在这里统一更新维护。
迭代速度很快,截至2026年3月,已经迭代出7.0的候选版本,稳定版也更新到了6.19.10。
官方原生内核,只适配通用硬件平台。
市面上各家半导体厂商的主控芯片、外设架构、硬件电路都不一样。原生源码没有对应的驱动适配,没有定制化补丁,直接下载下来根本跑不通商用设备。
01
真正的源码获取逻辑
所有量产项目、嵌入式设备,用的全部都是半导体厂商定制后的源码包。
厂商会基于官方标准内核,提前做好硬件适配、驱动移植、漏洞修复,裁剪掉冗余功能。
我们开发者拿到手,只需要专注业务开发、功能调试,不用从零适配底层硬件。
这也是为什么很多自学教程学了没用,完全脱离了实际流程。
但也别急,定制源码和官网原生源码,底层核心架构、目录逻辑、运行机制完全一致。
02
内核四大分支,选对版本少走一年弯路
很多人纠结版本,本质是分不清不同内核分支的适用场景。
内核官网的所有版本,都由Linux之父主导维护,主要分为四类分支,适配不同工作场景,大家可以直接对号入座。
主线版本是最新的开发测试版本,迭代速度最快,会叠加各类新功能、新硬件适配方案。目前最新的7.0-rc6版本,就是典型的候选测试版。
这种版本bug多、稳定性差,只适合社区人员测试排错
稳定版本是主线版本优化后的产物,修复了大部分已知漏洞,兼容性更好。
官方会长年维护,持续推送安全补丁和漏洞修复,生命周期长、极度稳定。像6.18、6.12、5.15这些经典版本,至今还在大量商用设备上服役。
最后还有一个测试迭代版本,主要用于前沿技术整合,供资深开发者提前适配新功能,新手完全不用接触。
03
官网三种源码下载方式,各有适用场景
很多人不知道,内核源码有三种正规获取协议,不同方式适配不同使用需求。
最常用的是HTTP协议,直接浏览器打开目录就能下载压缩包,操作零门槛。
这个目录里整合了内核、工具、媒体等各类开源资源,个人学习、临时下载源码首选这个方式。
然后是GIT仓库地址,适合资深开发者同步源码仓库、迭代更新代码。
这里提醒大家一个很多人踩过的坑,现在这个地址开启了AI防护机制。直接网页访问会触发机器人验证,根本打不开。职场中都是通过git命令合规拉取代码,没人会直接网页浏览。
最后是RSYNC协议,主打增量同步。
适合服务器批量同步源码,不用每次都下载完整安装包,只同步版本迭代的差异内容,传输效率极高,个人学习基本用不到。
04
解压进入内核目录
怎么打开?
下载完后,用这个命令

tar -vxf linux_sdk.tar.gz

简单说下参数,v是显示解压详情,方便排查问题,x是执行解压操作,f用来指定压缩包文件,日常开发直接套用就行。
第二步,进入解压后的源码根目录,后续所有编译配置操作,都必须在这个目录下执行。

cd linux_sdk

第三步,执行一键编译脚本。

./build.sh kernel

这是厂商封装好的自动化编译脚本,提前预设好了硬件配置、编译参数和依赖环境。
不用手动配置复杂参数,执行后会自动完成校验、编译、链接,最后生成可直接烧录的内核镜像。
完美~~
05
内核源码目录架构
内核源码目录架构,长什么样子?
一打开,怎么这么多目录,这谁记得住,
别急,有方法。
整体记住一句话,内核目录从上到下,就是硬件、核心、功能、工具。
对应四层结构,完全贴合我们做开发的工作流程,适配硬件、跑通内核、叠加功能、编译打包。
第一层:硬件底层(arch目录)
你直接把它理解成内核的硬件地基,所有CPU架构相关的底层代码全部在这里。
ARM、x86、RISC-V这些架构的启动代码、底层汇编、平台初始化逻辑,全都收纳在这里。
最真实的情况,芯片厂商改内核,最先动的就是arch。我们适配新硬件、调开机启动,第一个看的也是它。
第二层:系统核心(kernel目录)
这是整个Linux内核的大脑,也是最纯正的内核本体。
进程怎么调度、内存怎么分配、中断怎么响应、系统调用怎么触发,全部在这里定义。
日常开发很少改这里的代码,但是必须懂。因为所有驱动、功能代码,最终都要依赖这一层核心机制运行。
第三层:外设与业务(drivers目录)
这是嵌入式工程师每天打交道的主战场,没有之一。
串口、I2C、SPI、屏幕、摄像头、网卡、存储,所有外设驱动全部放在drivers里。
我们调驱动、改硬件适配、移植外设、优化图像视频外设,这个目录太常用了。
用上内核能力,深耕drivers就足够撑住大部分项目场景。
第四层:上层功能(fs、net、include目录)
fs管存储文件系统,设备能不能正常读写文件、挂载分区,全靠它支撑。
net管全网协议栈,WiFi、以太网、视频流网络传输、数据上报,所有网络相关功能都源于这里。
include是全局公共头文件仓库,所有代码的宏定义、结构体、函数声明全部集中在这里,是整个内核的通用模板。
编译辅助工具目录(scripts和configs)
不用深入研究源码,只需要知道它的作用就行。
scripts负责所有编译脚本逻辑,我们一键编译内核,底层靠的就是这个目录的脚本支撑。
configs存放各类硬件平台的默认配置文件,快速裁剪内核功能、适配硬件平台,都要用到它。
怎么记呢,浓缩下
arch打地基,kernel管大脑,drivers搬外设,fs存文件,net传网络,include定规范,scripts做编译。
记住这一句,以后看任何内核工程目录,都不会乱。
一开始没有建立分层思维,只会对着代码瞎翻,越学越懵。
做嵌入式开发,内核源码是绕不开的核心能力,但不跟风。
END

关于作者:

     我是杜稀饭,一直从事图像领域嵌入式软件相关工作,平时会用到 ISP/应用/驱动方面的知识,用通俗易懂的大白话,结合生活中的例子,有趣有料的拆解过程中的心得,拒绝晦涩高冷,打通没时间看,也看不懂的卡点,帮助自己和各位读者少踩坑、省时间。

     此账号分享应用/驱动相关,「程序媛爱码记」公众号分享 ISP相关。

我能提供/推荐什么:

1.各平台/总体 ISP技术交流群

技术交流,资源拉通链接。把你的问题扔在群里,大家一起做题。

(海思/瑞芯微/FPGA/高通/MTK ……)

2.知识星球-图像质量工程师社区 

这里有一直带我长进的大佬,沉淀多年的实战经验,概念的清晰解释,问题的排查方法,解决思路方法论。你一定能用上,也可以用AI提炼一下。

      3.ISP实战课程

如果你刚开始调试,躬身入局,把手弄脏,实实在在的调完各个模块。也一定很有长进。

     4.想像我一样把心得照亮更多人

      可以参与我的陪伴群,拆解我的来时路,分享最新风向标。同步我看到的有用方法。优秀的你,值得被更多人看见

      以上,找到我 :fanfanfan958

点个
在看
你最好看

最新文章

随机文章