从零构建 Linux 系统
系列读|面向普通 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 上做成双系统。
你将学到什么
Linux 怎么启动:从按下电源键,到能登录、能跑程序,中间经过哪些阶段。 软件怎么安装:Ubuntu、Debian、CentOS、Fedora 上 apt / yum(dnf)在做什么。 为什么需要 Yocto:它和「下载一个 Ubuntu 安装盘」有什么不同;平头哥玄铁的 xuantie-yocto-project 扮演什么角色。 亲手做一遍:在 WSL2 里配置 → 进一步定制 → 分别构建虚机/真机镜像 → runqemu验证 → U 盘双系统跑起来,并验证 hello;再用 Git 托管meta-demo。
阅读建议
第 1~4 篇偏概念,建议按顺序读;遇到英文缩写,文中都会先解释。 第 5 篇可以对照你已有的 Ubuntu / Fedora 机器动手敲命令。 第 6~7 篇建立 Yocto 的整体认识;第 8~11 篇是连贯 demo;第 12 篇用 Git 管理自定义配置。 构建 Yocto 很耗时间与磁盘,第一次请预留半天到一天,以及尽量多的空闲硬盘空间(两机型都编会更久)。 动手时需要「照着敲命令」:见 附录 A|动手命令速查,从 git clone起按顺序收录。
Demo 约定(动手部分统一按这个来)
下面这些词后面会反复出现,这里先对齐:
bitbake 在这里执行,不要用纯 Windows 原生环境硬跑 Yocto | |
qemux86-64 | runqemu 在 WSL2 里快速验证配置和 hello |
genericx86-64 | |
build-qemux86-64 / build-genericx86-64) | |
core-image-base,并带上自定义 hello 程序 | |
.wic.hddimg | |
系列目录
学习路径(一句话)
先弄懂「电脑怎么从断电变成能跑程序」,再弄懂「软件是怎么被安装进去的」,最后在 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 → 各种后台服务 → 你的应用程序。
注:转载文章来源于网络,版权归原作者或企业所有,侵删!