LV150-Debian简介
一、Debian 是什么
1. 什么是 Debian
什么是 Debian?我们去官网瞅一眼:Debian -- 通用操作系统,我们去找一下官网对 Debian 的介绍:Debian -- 关于 Debian,这里刚好有一部分的介绍:
Debian 究竟是什么?
Debian 计划是一个致力于创建一个自由操作系统的合作组织。我们所创建的这个操作系统名为 Debian。
操作系统是使计算机运行的基本程序和工具的集合,其中最主要的部分称为内核(kernel)。内核是计算机中最重要的程序,负责一切基本的调度工作,并让您运行其他程序。
Debian 系统目前采用 Linux 内核或者 FreeBSD 内核。Linux 是一个最初由 Linus Torvalds 创建,目前由全球成千上万的程序师共同维护的软件。FreeBSD 是一个包括内核和其它软件的操作系统。
然而,让 Debian 支持其他内核的工作也正在进行,最主要的就是 Hurd。Hurd 是一组在微内核(例如 Mach)上运行的、提供各种不同功能的守护进程。Hurd 是由 GNU 工程所设计的自由软件。
我们所创建的这个操作系统中的大部分基本工具来自于 GNU 工程;因此我们把它们命名为 GNU/Linux 和 GNU/Hurd。这些工具同样都是自由的。
当然,人们真正需要的是应用软件,也就是帮助他们完成工作的程序:从文档编辑,到电子商务,到游戏娱乐,到软件开发。Debian 带来了超过 70000 个软件包(为了能在您的机器上轻松地安装,这些软件包都已经被编译包装为一种方便的格式),一个软件包管理器(APT),以及其他帮助您在上千台计算机上管理数千个软件包的工具,过程就如安装一个应用程序那么简单。而这些全都是自由软件。
这有点像一个高塔:在最底层的是内核,在内核上面的是所有的基本工具,然后是所有您在计算机上运行的软件。最后,在这个高塔顶端的就是 Debian — 把每件事情谨慎地组织和配合在一起,使得它们能够在一起和谐地运作。所以,其实 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 文件系统。

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