2. 已适配系统

欢迎您阅读本章节,阅读之后您可以了解到以下信息:

  • 一些 Linux 系统的来源与介绍

  • Firefly 开源团队适配的各个 Linux 系统的特点与应用场景

在此之前,您可以了解一下 Android 系统与 Linux 系统的特点:

_images/android_linux.jpg

特点 说明
优点 1. 普遍 Linux 系统的系统开销都比 Android 系统要小。
2. Linux 系统的稳定性、安全性高,这也是其他系统无法比拟的。
3. Linux 系统的可定制程度非常高,基本系统的每一处细节都可以定制化。
缺点 1. Linux 系统更加贴近底层,开发难度更高。
2. Linux 系统的封装程度没有 Android 高。
3. 一些 Soc 的硬件功能使用必须学习芯片厂商提供的 API 接口或者对接的第三方软件,学习成本会比较高。

通过对比,相信您已初步了解一些 Linux 系统的特点,下面将逐一介绍各个系统的特点以及应用场景。

2.1. Buildroot

Buildroot 是 Linux 平台上一个构建嵌入式 Linux 系统的框架。

_images/buildroot_logo.png

它可以和编译 Linux 内核一样,通过 menuconfig 修改配置,编译出一个 Linux 系统固件。

只是 Buildroot 编译出来不仅仅有 Linux 内核,还包括 bootloader、rootfs 与应用软件。

由于 Buildroot 的可配置特性,Firefly 开源团队只编译 rootfs 与一些需要的应用软件。

Firefly Buildroot 特点如下:

特点 说明
优点 1. 系统开销几乎最小的。
2. 系统构建代码完全开源。
3. 系统固件体积小。
4. 系统启动速度比较快。
5. 支持 Qt + EGLFS、支持 Weston + Qt、支持 MiniGUI。
缺点 1. 很多软件、依赖可能都不会默认适配,需要用户根据自己的需求手动添加。
2. 没有包管理系统,如果需要对系统环境进行改动需要修改源码重新编译。
3. 没有办法直接在 Buildroot 系统上编译自己的应用,编译应用需要在 PC 进行交叉编译。

Firefly Buildroot 应用场景:

1. 如果您的产品 CPU 性能比较弱、硬件资源比较紧张可以首选 Buildroot 系统;
2. 如果您已经完成调试阶段,产品稳定了且不会再有大量修改的话,也可以转至 Buildroot 系统。

以下是 Firefly Buildroot 系统桌面: _images/Buildroot_Desktop.png

Firefly Buildroot 系统更详细特点可以参考《Buildroot 使用手册》。

2.2. Ubuntu

Ubuntu 是由南非人马克·沙特尔沃思 (Mark Shuttleworth) 创办的基于 Debian Linux 的操作系统。

_images/ubuntu_logo.png

Ubuntu 适用于笔记本电脑、桌面电脑和服务器,特别是为桌面用户提供尽善尽美的使用体验。

Ubuntu 几乎包含了所有常用的应用软件:文字处理、电子邮件、软件开发工具和 Web 服务等。

Firefly 提供 Ubuntu Desktop 系统与 Minimal (无桌面)系统,目前支持 Ubuntu 18.04Ubuntu 20.04 版本。

Firefly Ubuntu 特点如下:

特点 说明
优点 1. 提供丰富的 deb 包资源,用户可以通过 apt 简单、快速的搭建环境。
2. 拥有 deb 管理系统。
3. 大多数开发者的编译开发系统, ARM 版本的 Ubuntu 可直接编译设备应用。
4. 有友好的 UI、systemd、udev、dbus、Networkmanager 等系统内置功能、服务。
5. Firefly 有自己的 deb 服务器,通过 apt 就可以通过网络更新 Firefly 的 deb 包。
6. Firefly 维护时间最长的 Linux 系统。
缺点 Ubuntu Desktop 系统体积比较大,一般会在 2G 以上。

Firefly Ubuntu 应用场景:

1. 如果您不是长期进行 Linux 系统应用开发,对 Linux 本身了解不深的,可以选择 Ubuntu。
2. 几条命令可能就可以帮助您完成环境搭建,省去了熟悉系统、调试的时间,缩短项目周期。
3. 涉及神经网络、深度学习应用场景的客户可以首选 Ubuntu,因为可以很方便使用 Python 进行开发。
4. 包管理系统也可以很好的适用于 OTA 升级,您只需要搭建好 deb 服务器就可以随时对软件包进行更新。

2.2.1. Ubuntu Desktop

以下是 Ubuntu 18.04 Desktop 系统桌面: _images/Ubuntu_Desktop.jpg

Ubuntu Desktop 是桌面版本系统,设备开机启动会进入桌面,运行 Xorg(X server) 显示服务,所有应用会通过 X server 进行渲染和显示。

Ubuntu Desktop 特点如下:

特点 说明
优点 1. X11 可以实现多窗口应用、双屏异显、设置分辨率、旋转等复杂操作。
2. X11 应用兼容性比 Wayland 好,部分现有应用甚至只能要运行在 X server 上。
缺点 1. X11 性能表现比 Wayland、Qt + EGLFS、Libdrm 等显示方式性能要差一些。
2. 系统开销会比较大。

Ubuntu Desktop 应用场景:

如果您有桌面的功能需求只能选择 Desktop 版本,如果需要在 Ubuntu 上有开发多窗口应用需求那么也可以选择 Desktop 版本。

2.2.2. Ubuntu Minimal

Ubuntu Minimal 特点如下:

特点 说明
优点 1. 固件体积小,一般都会比 Desktop 版本要小 1G 左右。
2. 没有跑任何显示服务,所以系统的开销比较小。
缺点 默认固件没办法完成多窗口应用。

Ubuntu Minimal 应用场景:

1. Minimal 适合使用在不需要屏幕显示的项目。
2. 如果只是做一些单窗口的显示应用,Minimal 也可以胜任,通过 Qt + EGLFS 或者 Libdrm 的方式实现。
3. 如果需要开发多窗口复杂的应用请使用 Desktop 版本或者在 Minimal 版本使用 Weston + Qt 。

Firefly Ubuntu 系统详细特点可以参考《Ubuntu 使用手册》。

2.3. Debian

Debian 是由社区支持的 Debian 项目开发的 Linux 发行版,该项目由 Ian Murdock 于 1993 年 8 月 16 日建立。

_images/debian-logo.png

Firefly 提供 Debian 系统,目前支持 Debian 9Debian 10 版本。

Firefly Debian 与 Ubuntu 系统的特点与应用场景绝大部分类似,下面主要说明这两者的区别:

1. Ubuntu 的 IP 规范中表明商用 Ubuntu 必须获得 Canonical 的同意授权才可以使用。
2. Ubuntu 基于 Debian 系统开发而来,新版本发布一般比 Debian 晚一些。
3. 因为发布版本时间问题,Ubuntu 在一些细节上更加完善。
4. Ubuntu 系统构建代码不开源,Debian 系统构建代码 Rockchip SDK 开源。

Firefly Debian 系统详细特点可以参考《Debian 使用手册》。

2.4. OpenWrt

OpenWRT 是一个高度模块化、高度自动化的嵌入式软路由系统。

_images/Openwrt_logo.png

Firefly 提供 OpenWrt 系统(包括 LEDE 系统),目前支持 OpenWrt 21.02 版本。

Firefly OpenWrt 特点如下:

特点 说明
优点 1. 系统更专注于网络性能提升,整合了许多最新研究提升网络性能的算法。
2. 使用缓冲池控制算法在减少延迟(或滞后)的同时增加网络吞吐量。
3. 无线网络优化让设备间支持更高的数据速率和均衡的通信时长。
4. 提供丰富的现有软件包和网络组件。
缺点 OpenWrt 针对性很强,主要运用于网络通信相关项目,其他项目并不是最佳选择。

Firefly OpenWrt 应用场景:

1. 多用于路由、工控网关、多网口设备等网络相关项目。
2. OpenWrt 官方提供的丰富的软件包和网络组件,可以很轻松的实现自己项目的网络功能。

Firefly OpenWrt 系统详细特点可以参考《OpenWrt 使用手册》。

2.5. RTLinux

RTLinux (Real-Time Linux,亦称作实时 Linux)是 Linux 中的一种实时操作系统。

_images/rklinux_logo.png

Firefly 对 RTLinux 支持主要在于内核层上, 您完全可以自由搭配(例如: RTLinux-Ubuntu、RTLinux-Debian)。

RTLinux 与 Linux 系统的区别如下:

1. Linux 采用标准的 UNIX 技术使得内核是不可抢占的。
2. 采用基于固定时间片的可变优先级调度,不论进程的优先级多么低,Linux 总会在某个时候分给该进程一个时间片运行,即使同时有可以运行的高优先级进程,它也必须等待低优先级进程的时间片用完,这对一些要求高优先级进程立即抢占 CPU 的实时应用是不能满足要求的,在实时应用中,这是一个十分严重的问题。
3. RTLinux 是实时系统,通过在 Linux 内核与硬件中断之间增加一个精巧的可抢先的实时内核,把标准的 Linux 内核作为实时内核的一个进程与用户进程一起调度,标准的 Linux 内核的优先级最低,可以被实时进程抢断。正常的 Linux 进程仍可以在 Linux 内核上运行,这样既可以使用标准分时操作系统即 Linux 的各种服务,又能提供低延时的实时环境。

Firefly RTLinux 特点如下:

特点 说明
优点 实时性强。
缺点 精确的定时机制虽然可以提高任务调度器的效率,但会增加 CPU 处理定时中断的时间开销。

Firefly RTLinux 系统详细特点可以参考《RTLinux 使用手册》。

2.6. 更多 Linux

2.6.1. Yocto

Yocto 是一个开源协作项目,可帮助开发人员创建基于 Linux 的定制系统,相比 Buildroot,它支持更丰富的功能。

Firefly 提供 Yocto 系统,目前已支持 Yocto 2.7.4 版本。

_images/YoctoProject_logo.png

2.6.2. Centos

CentOS 是 Linux 发行版之一,它是来自于 RHEL 依照开放源代码规定发布的源代码所编译而成。

Firefly 提供 Centos 系统,目前已支持 Centos 8 版本。

_images/centos8_logo.png

2.6.3. LibreELEC

LibreELEC 是一个轻量级的恰到好处的操作系统 Linux 发行版,专为当前和流行的媒体中心硬件上的 Kodi 构建。

_images/LibreELEC_logo.png

2.6.4. Manjaro

Manjaro 是一个基于 Arch Linux 操作系统的免费开源 Linux 发行版。

_images/Manjaro-logo.png