如何完全基于 Linux 内核编写自己的 Linux 发行版?

2023-07-08 22:46:48 +08:00
 xiaoluobo58

如题,我想知道如何编写一个完全基于 Linux 内核的 Linux 发行版(而非基于 Debian 或红帽定制),即使没有 GUI 和功能简陋也无所谓。网上有很多关于基于 Debian 或其他定制 Linux 的教程,但是关于如何完全自己制作基于 Linux 内核的 Linux 发行版的教程却很少见。

2569 次点击
所在节点    Linux
15 条回复
Sainnhepark
2023-07-08 22:48:58 +08:00
LFS?
0o0O0o0O0o
2023-07-08 22:49:13 +08:00
比起编写,更像是搭建。

LFS
lululau
2023-07-08 22:53:36 +08:00
只给你个内核,其他的软件自己写,是这意思吗,那可能比写的 Linux 内核还要难
xiaoluobo58
2023-07-08 22:56:11 +08:00
@lululau 我的意思是在内核基础上实现基础的系统功能( GUI 之类的不包括),虽然确实有些难度,不过和编写内核比起来还是容易些 hhh
harrozze
2023-07-08 23:01:12 +08:00
@xiaoluobo58 #4 首先实现个 init 或者 systemd ,然后用这两个去启动其它进程。至于如何从开机到开始执行 init 或者 systemd ,我觉得不如先去找个发行版,看看它是怎么实现的。比如,可以先从 /boot/grub/grub.cfg 入手?了解一下系统怎么启动的。

LFS 也是个不错的选择,就像是找人带着走一遍。
masterclock
2023-07-08 23:11:02 +08:00
这种教程实际上不少,LFS 类的是一种
嵌入式里用的 Buildroot 、yocto 也是,OpenWRT 来自 Buildroot ,也差不多
这些里面的 BusyBox 自己也能算一个
baobao1270
2023-07-08 23:16:00 +08:00
最简单的,其实只编译 busybox+kernel 即可
lhbc
2023-07-08 23:18:08 +08:00
用 Rust 重写 systemd
tin3w5
2023-07-09 09:10:47 +08:00
因为没意义,你的需求就是在重复造轮子。而且你早的轮子几乎没什么人维护,可能 bug 一堆,兼容性极差,甚至包依赖关系混乱。你认为造出来会有人用吗?你自己都不一定想用。如果你就是爱折腾,gentoo 足够用了,何必自己写发行版?
xsonglive491
2023-07-09 21:36:02 +08:00
楼主你这是要搞嵌入式?编辑设备树,编译 kernel ,构建文件系统,加载驱动,启动服务?
janus77
2023-07-10 11:58:10 +08:00
因为这种东西在规模上就是属于商业产品的级别了,你见过哪个商业产品有出手把手且免费公开的教程吗?要么就是第三方仿,而且只能仿一些表面的、基本的功能,要么只有 api 文档和使用手册之类的东西,开发方面从来没有过
424778940
2023-07-10 23:30:19 +08:00
你要找的是不是 buildroot
yanqiyu
2023-07-11 01:26:04 +08:00
@xiaoluobo58 并不会简单...大概,要构建一个可用的系统你至少得写一套 shell+libc+编译器+init
作为玩具规模太大,作为项目重复造轮子严重
Iamsonny
2023-07-13 12:04:20 +08:00
核心在包管理,比如 debian deb ,redhat rpm ,搞一个发行版最难的是有自己的包管理。
基他的 LFS 完全足够了。
flynaj
2023-07-20 22:55:34 +08:00
建议先把 lfs 走一遍.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/955178

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX