LV05-04-根文件系统-04-Debian-01-Debian简介

本文主要是rootfs——Debian根文件系统简介相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。

点击查看使用工具及版本
PC端开发环境 Windows Windows11
Ubuntu Ubuntu20.04.2的64位版本
VMware® Workstation 17 Pro 17.6.0 build-24238078
终端软件 MobaXterm(Professional Edition v23.0 Build 5042 (license))
Win32DiskImager Win32DiskImager v1.0
Linux开发板环境 Linux开发板 正点原子 i.MX6ULL Linux 阿尔法开发板
uboot NXP官方提供的uboot,使用的uboot版本为U-Boot 2019.04
linux内核 linux-4.19.71(NXP官方提供)
点击查看本文参考资料
分类 网址 说明
官方网站 https://www.arm.com/ ARM官方网站,在这里我们可以找到Cotex-Mx以及ARMVx的一些文档
https://www.nxp.com.cn/ NXP官方网站
https://www.nxpic.org.cn/NXP 官方社区
https://u-boot.readthedocs.io/en/latest/u-boot官网
https://www.kernel.org/linux内核官网
点击查看相关文件下载
分类 网址 说明
NXP https://github.com/nxp-imx NXP imx开发资源GitHub组织,里边会有u-boot和linux内核的仓库
nxp-imx/linux-imx/releases/tag/v4.19.71 NXP linux内核仓库tags中的v4.19.71
nxp-imx/uboot-imx/releases/tag/rel_imx_4.19.35_1.1.0 NXP u-boot仓库tags中的rel_imx_4.19.35_1.1.0
I.MX6ULL i.MX 6ULL Applications Processors for Industrial Products I.MX6ULL 芯片手册(datasheet,可以在线查看)
i.MX 6ULL Applications ProcessorReference Manual I.MX6ULL 参考手册(下载后才能查看,需要登录NXP官网)
Source Code https://elixir.bootlin.com/linux/latest/source linux kernel源码
https://elixir.bootlin.com/u-boot/latest/source uboot源码

一、Debian是什么

1. 什么是Debian

什么是Debian?我们去官网瞅一眼:Debian – 通用操作系统,我们去找一下官网对Debian的介绍:Debian – 关于 Debian,这里刚好有一部分的介绍:

image-20241117113838747

所以,其实Debian是一个基于linux内核的操作系统。我们知道Linux有非常多的发行版本,Debian就是最早的Linux发行版本之一。我们比较熟悉的Ubuntu就是基于Debian发展而来。

2. 有哪些优缺点?

官网也总结了:Debian – 选择 Debian 的理由,这里照搬一下,方便看:

2.1 面向用户的 Debian

  • Debian 是自由软件。

Debian 是由自由和开放源代码的软件组成的,并将始终保持 100% 自由。每个人都能自由使用、修改,以及分发。这是我们对我们的用户的主要承诺。它也是免费的。

  • Debian 稳定且安全。

Debian 是一个广泛用于各种设备的基于 Linux 的操作系统,其使用范围包括笔记本计算机,台式机和服务器。 我们为每个软件包提供合理的默认配置,并在软件包的生命周期内提供常规的安全更新。

  • Debian 具有广泛的硬件支持。

大多数硬件已获得 Linux 内核的支持。这意味着 Debian 也会支持它们。如有需要,也可使用专有的硬件驱动程序。

  • Debian 提供灵活的安装程序。

希望在安装前尝试 Debian 的用户可以使用我们的 Live CD。它同时包含了 Calamares 安装程序,使得从 Live 系统安装 Debian 变得十分容易。经验更加丰富的用户可以使用 Debian 安装程序,它提供了更多可以微调的选项,包括使用自动化的网络安装工具的功能。

  • Debian 提供平滑的更新。

保持操作系统最新十分容易,不论您是想升级到一个全新的发布版本,还是只想升级一个单独的软件包。

  • Debian 是许多其他发行版的基础。

许多非常受欢迎的 Linux 发行版,例如 Ubuntu、Knoppix、PureOS 以及 Tails,都基于 Debian。我们提供了所需的所有工具,使得每个人在有需要的时候都可以制作自己的软件包,以补充 Debian 档案库里没有的软件包。

  • Debian 项目是一个社区。

所有人都可以成为 Debian 社区的一员;您不必是一名开发者或系统管理员。Debian 有一个民主的治理架构。由于所有 Debian 项目的成员都享有平等的权利,所以 Debian 不能被单个公司所控制。我们的开发人员来自超过 60 个国家/地区,并且 Debian 本身也已经被翻译为超过 80 种语言。

2.2 面向开发者的 Debian

  • 多种硬件架构

Debian 支持一长串的CPU架构,包括 AMD64、i386,ARM 和 MIPS 的多个版本、POWER7、POWER8、IBM System z 以及 RISC-V。Debian 还可以用于一些特殊用途的架构。

  • 物联网和嵌入式设备

Debian 可以在各种设备上运行,例如 Raspberry Pi、QNAP 的各个变种、移动设备、家庭路由器以及大量单板计算机(SBC)。

  • 大量的软件包

Debian 拥有大量的软件包(当前的稳定版本:59000 个软件包) ,使用 deb 格式

  • 不同的发布版本

除了我们的稳定版本外,您还可以通过安装测试版或不稳定版本来获得更新版本的软件。

  • 公开的错误跟踪系统

我们的 Debian 错误跟踪系统(BTS)向所有人公开,任何人都可通过浏览器访问。我们不会隐藏我们的软件错误,您可以轻松提交新的错误报告或参与讨论。

  • Debian 政策和开发人员工具

Debian 提供高质量的软件包。欲了解我们的质量标准,请阅读我们的政策,它规定了每个被发行版接受的软件包所必须满足的技术需求。我们的持续集成策略包括 Autopkgtest(对软件包进行测试),Piuparts(测试安装、升级和删除),以及 Lintian(检查软件包的不一致和错误)。

2.3 面向企业环境的 Debian

  • Debian 是可靠的。

Debian 在从单个用户的笔记本计算机到超级对撞机、证劵交易所和汽车行业的数以千计的现实日常场景中证明其可靠性。它在学术界、科研机构和公共部门中也很流行。

  • Debian 有很多专家。

我们的软件包维护者不仅仅只为 Debian 打包软件包和整合新的上游版本。他们常常是该应用程序的专家,因此可以直接为上游开发做出贡献。

  • Debian 是安全的。

Debian 对其稳定版本提供安全支持。许多其它发行版的开发人员和安全研究人员都依赖 Debian 的安全跟踪器。

  • 长期支持

Debian 提供的免费的长期支持(LTS)版本将所有 Debian 稳定版本的生命周期延长到至少 5 年。除此以外,还有商业的扩展 LTS 计划,该计划将对有限的软件包的支持延长到了 5 年以上。

  • 云映像

官方云映像可用于所有的主流云端平台。我们还提供了工具和配置,因此您可以构建自己的自定义云映像。您还可以在桌面或容器里的虚拟机中使用 Debian。

2.4 总结一下

Debian主要有以下几个方面的优点:

  • 稳定

Debian的发布版本通常测试完善,发行周期较长,它通常维护着三个版本:“稳定版(stable)”、“测试版(testing)”、 “不稳定版(unstable)”,对每个稳定发行版本,用户可以得到三年的完整支持以及额外两年的长期支持。 debian目前在很多企业用户中使用,它的稳定性和可靠性是经过市场长期验证的。

  • 软件包管理程序简单易用

熟悉Ubuntu的话应该知道,Ubuntu是用dpkg工具来进行软件包的管理,关于软件的安装、卸载、升级都可以用dpkg指令完成, dpkg指令功能非常强大,但是也比较复杂。因而后来基于dpkg衍生出来了apt工具,可以通过apt install、apt remove、 等指令就能轻松安装、卸载软件。在这方面,Debian与Ubuntu的机制是完全一样的。

  • 软件包丰富

Debian经过这么多年的发展,开源社区已经积累了数以万计的应用程序,从文档编辑、到电子商务、到游戏娱乐、到软件开发, 全面提供即安装即使用的体验。免去自己编译源代码的诸多麻烦,而且用apt upgrade就能轻松升级到最新版本的软件。

  • 良好的系统安全

Debian自由软件社区非常注重在软件发布中快速地修复安全问题。通常没几天就会有修复过的软件被上传。因为开放源代码 所以 Debian 的安全性是可以被用户和开发者客观评估的。这有利于防止潜在的安全问题被引入到Debian系统中。

二、image-builder项目

1. 项目起源

BeagleBoard 是一家非盈利公司,致力于在嵌入式计算 领域提供开源硬件和软件,并且重点关注教育行业, BeagleBoneBlack是该公司最受欢迎的主板。image-builder项目就是为BeagleBoneBlack之类的开发板构建debian系统镜像的开源项目。

源码地址:beagleboard/image-builder: Image builder (github.com)

2. 基本原理

image-builder项目基于qemu和debootstrap等工具来生成和定制arm架构的debian文件系统。其中,qemu是一个开源的模拟器项目, 在GNU/Linux平台上使用广泛,可用于模拟各种不同架构的处理器。而debootstrap是Debian官方提供的, 适用于生成不同架构、不同版本的debian文件系统。

image-builder项目分析

如上图所示: 在使用debootstrap工具生成debian文件系统后,然后qemu使用新构建的debian文件系统作为文件系统, 在qemu模拟arm架构的处理器并启动后,就可以用apt install命令预装各种应用软件, linux内核和设备树都是在这个阶段中安装更新的。安装完毕后,使用dd命令把得到的文件系统和u-boot一起打包到img文件中, 即可生成用于sd卡烧录的debian系统镜像。

参考资料

4.4. 制作Debian系统镜像