FasterEdgeOS 是一个面向边缘节点和集群设备的轻量 Linux 发行版。系统基于 Linux 内核、GNU C Library 和 BusyBox 构建,通过 overlay 机制集成 FasterEdge 运行环境及系统服务。
当前仓库保留了从源码构建系统镜像的能力,已实现的系统初始工具与后续规划:
- ✅ DontCrack-Manager 进程监管(系统初始工具,监管多个 DontCrack 实例,见第五节)
- ✅ Any2UTF8 文本/文件转 UTF-8 工具(内置常见编码集,免系统 iconv,自动探测编码)
- ✅ Any2PCD 文本/二进制点云转 PCD 工具(标准 PCD v0.7,零依赖,见第五节)
- FasterEdge 节点运行时(规划中)
- FasterEdge2Api 集群拓扑与系统管理 API(规划中)
- 系统健康检查、日志和资源状态(规划中)
- 带签名校验与回滚能力的远程更新(规划中)
当前版本处于基础系统改造阶段。已经具备 Linux Live ISO、BIOS/UEFI 和 x86/AArch64 构建基础;系统初始工具(DontCrack-Manager 多进程根管理器、Any2UTF8 转换工具、Any2PCD 点云转换工具)已通过 overlay bundle 接入。
Linux Kernel
↓
GNU C Library
↓
BusyBox 用户空间
↓
FasterEdgeOS 基础 rootfs
↓
overlay bundles
↓
FasterEdgeOS ISO / rootfs 镜像
系统启动后提供最小化 Shell、网络基础能力和 overlay 软件。FasterEdgeOS 自有组件建议安装到以下位置:
/usr/bin/ 可执行程序
/etc/fasteredgeos/ 系统配置
/etc/init.d/ 服务启动脚本
/var/lib/fasteredgeos/ 运行数据、版本和更新状态
/var/log/fasteredgeos/ 系统服务日志
/opt/fasteredgeos/releases/ A/B 版本目录
构建主机建议使用 Debian/Ubuntu Linux。macOS、Windows 建议通过 Linux 虚拟机或 CI 构建。
使用 GitHub Actions 自动构建:仓库内置
.github/workflows/manual.yml, 可在 GitHub 页面手动触发(Actions → Run workflow),或在推送v*标签 (如v0.1.0)时自动构建。构建完成后会以 artifact 形式交付fasteredgeos.iso与fasteredgeos_image.tgz(Docker 镜像,docker import即可使用),保留 14 天。
工具链要求:当前 glibc 2.44 需要 GCC 12.1+、binutils 2.39+、GNU make 4.0+。 推荐使用 Ubuntu 24.04+(gcc 13.2 / binutils 2.42 / make 4.3);Ubuntu 22.04 需 自行安装新版 gcc/binutils,否则 glibc 构建会失败。
sudo apt update
sudo apt install -y \
wget make gawk gcc bc bison flex xorriso rsync \
libelf-dev libssl-dev file cpio gzip xz-utilsAArch64 构建和 QEMU 测试还需要:
sudo apt install -y qemu-system-aarch64 bzip2 dosfstools编辑:
vi src/.config常用参数:
FIRMWARE_TYPE=bios # bios / uefi / both
OVERLAY_TYPE=folder # folder / sparse
OVERLAY_LOCATION=iso # iso / rootfs
BUILD_KERNEL_MODULES=false
JOB_FACTOR=1
cd src
make all构建完成后生成:
src/fasteredgeos.iso
src/fasteredgeos_image.tgz
如果需要重新构建:
cd src
make clean
make allcd src
./qemu-bios.shcd src
./qemu-uefi.shcd src
docker import fasteredgeos_image.tgz fasteredgeos:latest
docker run --rm -it fasteredgeos:latest /bin/sh写入设备会覆盖目标磁盘,请确认设备路径后再执行。
cd src
sudo ./write_to_media.sh /dev/sdXFasterEdgeOS 使用 overlay bundle 把额外的软件打进最终 rootfs。FasterEdge 相关组件放在:
src/minimal_overlay/bundles/fasteredgeos/
该 bundle(系统初始工具)当前已实现:
- 根进程管理器:编译并安装
DontCrack-Manager。单体的 DontCrack 一次只能管理一个 进程;DontCrack-Manager 同时监管多个 DontCrack 实例(各自管理一个子进程),作为 本无进程管理器 Live 环境的系统多进程根管理器。 - DontCrack 单体:编译并安装
/usr/bin/dontcrack(被根管理器监管的实例; demo 服务依赖它,缺失时该服务永远无法启动——CI 端到端验证覆盖)。 - 配置:安装
/etc/fasteredgeos/manager.yaml(服务级 DontCrack 参数、依赖编排、 健康探针、退避重启、优雅停机)。 - 开机启动:安装
/etc/autorun/20_dontcrack-manager.sh,开机最先启动根管理器 (setsid 后台运行,日志/var/log/fasteredgeos/manager.log)。 - 演示子进程:安装
/usr/bin/fasteredgeos-demo(由 demo 服务监管)。 - 目录初始化:
/var/lib/fasteredgeos/与/var/log/fasteredgeos/。
配置启用后,普通构建命令会自动把系统初始工具打入镜像:
OVERLAY_BUNDLES=dhcp,fasteredgeos
另附两个独立的系统初始工具 bundle(不属于 fasteredgeos bundle,按需追加到列表):
OVERLAY_BUNDLES=dhcp,fasteredgeos,any2pcd,any2utf8
- any2pcd:bin / 文本 / CSV / PCD → 标准 PCD v0.7 点云转换工具(Go 标准库实现,零依赖)。
- any2utf8:文本/文件编码转换工具(内置 GBK / GB18030 / Big5 / Shift_JIS / UTF-16 等常见编码,不依赖系统 iconv 与 locale)。
两者均支持 -version(当前 1.0.20260922);离线升级可设置 ANY2PCD_SOURCE_DIR / ANY2UTF8_SOURCE_DIR 指向本地新版源码目录,构建时优先使用指定源码。详见 src/minimal_overlay/bundles/any2pcd/README.md 与 src/minimal_overlay/bundles/any2utf8/README.md。
服务管理采用 BusyBox init 兼容方式,不依赖 systemd:
BusyBox init
↓
/etc/inittab → /etc/04_bootscript.sh
↓
/etc/autorun/20_dontcrack-manager.sh
↓
DontCrack-Manager(根管理器,/etc/fasteredgeos/manager.yaml)
↓
DontCrack 实例 × N(各自管理一个子进程)
聚合状态查询(默认监听 127.0.0.1:11884):
# FEOS 系统基于 BusyBox(用 wget;宿主有 curl 时亦可直接用 curl)。
wget -q -O - http://127.0.0.1:11884/healthz
wget -q -O - http://127.0.0.1:11884/status
wget -q -O - --post-data='' http://127.0.0.1:11884/shutdown
后续将在此基础上接入:FasterEdge2Api 集群拓扑与系统管理 API、FasterEdge 节点运行时、 带签名校验与回滚能力的远程更新(远程更新仍按“下载 → 校验 → 安装 → 健康检查 → 切换或回滚”流程,禁止覆盖当前运行版本)。
CI 构建(
manual.yml)已启用OVERLAY_BUNDLES=dhcp,fasteredgeos并通过actions/setup-go提供 Go 工具链;本地构建需自行安装 Go 1.25+。any2pcd/any2utf8的编译与 overlay 构建由check.yml独立门禁覆盖。
FasterEdge2Api 将作为系统管理入口,逐步提供:
- 节点和网卡信息
- 进程、服务和运行状态
- CPU、内存、磁盘和系统健康状态
- FasterEdge 集群拓扑与 peer 管理
- Cloud/Edge 节点状态
- 更新检查、下载、安装和回滚
远程更新采用版本目录切换方式:
/opt/fasteredgeos/releases/0.1.0/
/opt/fasteredgeos/releases/0.2.0/
/opt/fasteredgeos/current -> releases/0.2.0
更新必须经过:
下载 → SHA256/签名校验 → 空间检查 → 安装 → 健康检查 → 切换或回滚
所有远程管理操作应使用 HTTPS,并只允许经过授权的管理员令牌执行。
| 组件 | 旧版本(含已知漏洞) | 现版本 | 说明 |
|---|---|---|---|
| Linux 内核 | 5.18.3(2022-11 EOL,无安全维护) | 6.6.155(LTS,维护至 2026-12) | 修复海量内核 CVE |
| GNU C Library | 2.35(CVE-2023-4911 Looney Tunables、CVE-2024-2961 iconv 溢出、CVE-2025-4802 LD_LIBRARY_PATH 等) | 2.44(最新稳定版) | 修复上述所有已公开漏洞 |
| BusyBox | 1.34.1(CVE-2022-48174 ash 栈溢出(CRITICAL)、CVE-2022-28391 netstat RCE 等) | 1.37.0(最新稳定版) | 1.38.0 尚为 unstable,暂不采用 |
| Syslinux | 6.03(2014,上游已停止维护) | 6.03(保持不变) | 无更新版本;仅 BIOS 引导阶段使用,风险面小 |
| Systemd-boot | 2018 快照(上游 fork) | 2018 快照(保持不变) | 无更新版本;仅 UEFI 引导阶段使用 |
- 构建 CFLAGS 移除了
-fno-stack-protector与-U_FORTIFY_SOURCE,改为启用-fstack-protector-strong(栈保护),BusyBox 构建时另行开启-D_FORTIFY_SOURCE=2。 - 内核构建(
src/02_build_kernel.sh)显式启用STACKPROTECTOR_STRONG、FORTIFY_SOURCE与SECURITY_DMESG_RESTRICT(限制非特权用户读取内核日志)。 - CI 构建环境补充
rsync(内核 6.6+headers_install所需)。
-
root 无密码:系统默认以无密码 root 直接进入 shell(传统 Live 系统设计)。 只建议在隔离环境或开发调试中使用。生产部署请至少执行:
passwd root
并将
/etc/passwd//etc/shadow写入持久化介质(见下文)。 -
多虚拟终端 root 会话:init 默认在
tty1~4各启动一个 root shell。 如需收紧,可编辑/etc/inittab删除多余的tty2~tty4respawn 行。 -
Dropbear(SSH)未默认启用:
OVERLAY_BUNDLES默认不含dropbear, 无网络登录暴露面;启用时请务必设置 root 密码并改用密钥认证。
- Live 模式(
OVERLAY_TYPE=folder+OVERLAY_LOCATION=iso)下,除非提供可写 的fasteredgeos/rootfs+work分区或fasteredgeos.img镜像,否则所有修改在 重启后丢失。生产环境请使用可写持久化介质,或在升级流程中重建镜像。 - 远程更新必须遵循“下载 → SHA256/签名校验 → 空间检查 → 安装 → 健康检查 → 切换或回滚”流程(详见“系统管理与远程更新”章节),禁止覆盖当前运行版本。
FasterEdgeOS/
├── src/ # 系统源码与构建入口
│ ├── .config # 主构建配置
│ ├── Makefile # make all/clean/qemu-bios/qemu-uefi/test
│ ├── 00_* ~ 16_* # 分阶段构建脚本
│ ├── minimal_boot/ # BIOS/UEFI 启动文件
│ ├── minimal_config/ # 内核和 BusyBox 配置
│ ├── minimal_overlay/ # overlay bundle
│ ├── minimal_rootfs/ # 基础 rootfs
│ └── common.sh # 构建公共函数
├── LICENSE # 开源许可证
└── README.md # 中文项目说明
- 所有新增系统组件优先实现为
src/minimal_overlay/bundles/下的独立 bundle。 - 服务必须兼容 BusyBox init,不默认依赖 systemd。
- 构建脚本使用 POSIX Shell,并在失败时立即退出。
- 网络更新必须校验下载内容,禁止直接覆盖当前运行版本。
- 管理 API 默认只监听可信网络;生产环境必须启用 TLS。
- 修改构建流程后至少执行 shell 语法检查和 QEMU/Docker 基础验证。
- FasterEdge:边缘计算框架。
- FasterEdge2Api:FasterEdge 集群拓扑与系统管理 HTTP API。
本项目遵循仓库中的 LICENSE 文件。系统中使用的 Linux、GNU C Library、BusyBox 和其他第三方组件分别遵循其原始许可证。