从零构建 Linux 系统

2026-08-18 13:17:20 RAIZ

系列读|面向普通 C 语言开发者

如果你平时写业务代码、做驱动实验,或在 Windows / Ubuntu 上「使用」Linux,但对「一台机器从上电到能打开程序」中间发生了什么还不清楚,这个系列就是为你准备的。

为什么 AI 时代,还要自己构建 Linux? 大模型与边缘推理把「跑在什么系统上」重新推到台前:云端可以继续用通用发行版,但端侧盒子、工控机、机器人、NPU/RISC-V 板卡往往装不下、也装不稳一整套桌面 Linux。发行版替你选好了内核、驱动和一堆你未必需要的服务;AI 产品则要求你能决定:镜像多小、启动多快、只留哪些库、驱动与加速器是否匹配、构建是否可复现。会自己构建,等于把系统从「黑盒依赖」变成「可裁剪、可审计、可交付」的工程部件——这正是把算法真正装进产品时绕不开的一步。

我们会先用白话把启动和包管理讲明白,再动手用 Yocto Project 做出自定义 Linux。编译统一在你 Windows 电脑的 WSL2 Ubuntu 里完成;目标机先用 qemux86-64 在 QEMU 里快速验证,再对比构建 genericx86-64,用 U 盘在同一台 Windows PC 上做成双系统。

你将学到什么

  1. Linux 怎么启动:从按下电源键,到能登录、能跑程序,中间经过哪些阶段。
  2. 软件怎么安装:Ubuntu、Debian、CentOS、Fedora 上 apt / yum(dnf)在做什么。
  3. 为什么需要 Yocto:它和「下载一个 Ubuntu 安装盘」有什么不同;平头哥玄铁的 xuantie-yocto-project 扮演什么角色。
  4. 亲手做一遍:在 WSL2 里配置 → 进一步定制 → 分别构建虚机/真机镜像 → runqemu 验证 → U 盘双系统跑起来,并验证 hello;再用 Git 托管 meta-demo

阅读建议

  1. 第 1~4 篇偏概念,建议按顺序读;遇到英文缩写,文中都会先解释。
  2. 第 5 篇可以对照你已有的 Ubuntu / Fedora 机器动手敲命令。
  3. 第 6~7 篇建立 Yocto 的整体认识;第 8~11 篇是连贯 demo;第 12 篇用 Git 管理自定义配置。
  4. 构建 Yocto 很耗时间与磁盘,第一次请预留半天到一天,以及尽量多的空闲硬盘空间(两机型都编会更久)。
  5. 动手时需要「照着敲命令」:见 附录 A|动手命令速查,从 git clone 起按顺序收录。

Demo 约定(动手部分统一按这个来)

下面这些词后面会反复出现,这里先对齐:

术语
含义
编译宿主
你的 Windows 电脑上的 WSL2 + Ubuntu。全部 bitbake 在这里执行,不要用纯 Windows 原生环境硬跑 Yocto
目标机 A:qemux86-64
给 QEMU 用的虚拟 x86_64 机型。优先构建,用 runqemu 在 WSL2 里快速验证配置和 hello
目标机 B:genericx86-64
给真机用的「通用 64 位 PC」机型。再构建一份,做成 U 盘,在 Windows PC 上双系统验证
目标 PC(真机验证)
最后用来安装、运行自建 Linux 的那台电脑:Intel 64 位(x86_64),约 16GB 内存、约 1TB 硬盘,已装 Windows(通常就是跑 WSL2 的那台)
MACHINE
Yocto 里「为哪种机器构建」的配置名。本系列对比使用上面两个名字,并各用一套 build 目录(build-qemux86-64 / build-genericx86-64
镜像(image)
构建系统最终打出来的「整套系统」打包结果。本系列用 core-image-base,并带上自定义 hello 程序
.wic
 / .hddimg
两种常见的磁盘镜像文件格式,可以写进 U 盘用来启动(真机路径重点用)
双系统
同一台电脑硬盘上既保留 Windows,又能选进自建 Linux
非目标
不平头哥玄铁 RISC-V 开发板,不做板卡烧写

系列目录

序号
章节
说明
1
启动流程总览
阶段与时序分别是什么
2
Bootloader
谁负责把内核装进内存
3
内核启动
内核如何把系统交给用户程序
4
Rootfs、init 与服务
用户空间如何起来
5
包管理
apt / yum 怎样安装软件
6
Yocto 是什么
和发行版有何不同
7
使用 Yocto
基本流程、BitBake 构建链、WSL2 与双 MACHINE 约定
8
配置自定义 Linux
Demo:create-layer、双 build、TEMPLATECONF、hello
9
进一步定制系统
默认组件、psplash、GRUB Logo、内核版本、时区语言、裁剪与包管理
10
构建系统镜像
Demo:在 WSL2 分别构建两套产物
11
运行你的 Linux
Demo:runqemu + U 盘双系统
12
Git 管理自定义配置
托管 meta-demo 与模板到 GitHub
附录 A
动手命令速查
从 git clone 起,把动手命令按顺序收齐

学习路径(一句话)

先弄懂「电脑怎么从断电变成能跑程序」,再弄懂「软件是怎么被安装进去的」,最后在 WSL2 里用 Yocto 生成系统:先 QEMU 跑通,再真机双系统验证,并用 Git 托管自定义配置。

启动流程 → 包管理 → Yocto 定制 →
WSL2 配置/定制/构建 → qemux86-64(QEMU)
  与 genericx86-64(U盘双系统) 对比 →
Git 托管 meta-demo

全书锚定的启动链

power on → bootloader → linux kernel
→ rootfs → init → services → application

用中文串起来就是:

上电 → 引导程序 → Linux 内核 → 根文件系统 → 一号进程 init → 各种后台服务 → 你的应用程序。

注:转载文章来源于网络,版权归原作者或企业所有,侵删!



我要咨询