获取内核源码
BSP 与 Kernel
传统的 Linux 内核开发过程中,通常会将 SoC 驱动代码、板级驱动代码、设备树文件 (dts) 等整合到内核源码树中进行管理。这种方式的优势在于所有代码都集中在一个地方,便于跟踪和管理,但缺点是当需要进行内核升级时,可能需要大幅修改这些驱动代码以适配新版本的内核,且不同的 SoC 和板级驱动代码耦合度较高,导致移植和适配工作较为繁琐。
而 AvaotaOS 主要使用的 BSP 独立仓库则采取了另一种方式,将 SoC 驱动代码、板级驱动代码、defconfig、SoC 级 dts 以及 ramfs 等内容独立出来,统一放在一个名为 bsp 的独立仓库中进行管理。这样做的优势在于降低了驱动代码与内核原生代码之间的耦合度,使得 BSP 模块能够更轻松地适配各种内核版本,从而方便产品进行内核升级。同时,由于这些内容被独立管理,也使得定制化和配置更加灵活和简单。
这样,不但保证了主线内核的接口不会被轻易修改,降低了适配的难度,也同时有助于提高团队的协作效率和开发速度。由于BSP模块被独立出来管理,不同团队成员可以专注于各自领域的开发工作,而无需频繁地进行代码整合和冲突解决。这种模块化的架构能够有效地减少团队成员之间的依赖性,提高并行开发的效率。
与传统的 Linux 内核开发相比,AvaotaOS 使用 BSP 独立仓库的方式能够更好地实现内核与驱动模块的解耦,提高了适配性和灵活性,使得产品内核升级变得更为便捷。
BSP 仓库主线内核支持情况
Kernel Source | Kernel Type | Kernel Source | Kernel Version |
---|---|---|---|
Linux 5.10 LTS | Linux LTS Kernel | https://cdn.kernel.org/pub/linux/kernel/v5.x/ | linux-5.10.214 |
Linux 5.15 LTS | Linux LTS Kernel | https://cdn.kernel.org/pub/linux/kernel/v5.x/ | linux-5.15.153 |
Linux 6.1 AOSP | Android Common Kernels | https://android.googlesource.com/kernel/common/+/refs/heads/android14-6.1-2023-10 | android14-6.1-2023-10 |
openEuler-22.03-LTS-SP2 | openEuler 22.03 LTS SP2 Kernel | https://gitee.com/openeuler/kernel.git | openEuler 22.03 LTS SP2 |