如题,我想知道如何编写一个完全基于 Linux 内核的 Linux 发行版(而非基于 Debian 或红帽定制),即使没有 GUI 和功能简陋也无所谓。网上有很多关于基于 Debian 或其他定制 Linux 的教程,但是关于如何完全自己制作基于 Linux 内核的 Linux 发行版的教程却很少见。
1
Sainnhepark 2023-07-08 22:48:58 +08:00 via Android 1
LFS?
|
2
0o0O0o0O0o 2023-07-08 22:49:13 +08:00 via iPhone 1
比起编写,更像是搭建。
LFS |
3
lululau 2023-07-08 22:53:36 +08:00
只给你个内核,其他的软件自己写,是这意思吗,那可能比写的 Linux 内核还要难
|
4
xiaoluobo58 OP @lululau 我的意思是在内核基础上实现基础的系统功能( GUI 之类的不包括),虽然确实有些难度,不过和编写内核比起来还是容易些 hhh
|
5
harrozze 2023-07-08 23:01:12 +08:00 2
@xiaoluobo58 #4 首先实现个 init 或者 systemd ,然后用这两个去启动其它进程。至于如何从开机到开始执行 init 或者 systemd ,我觉得不如先去找个发行版,看看它是怎么实现的。比如,可以先从 /boot/grub/grub.cfg 入手?了解一下系统怎么启动的。
LFS 也是个不错的选择,就像是找人带着走一遍。 |
6
masterclock 2023-07-08 23:11:02 +08:00
这种教程实际上不少,LFS 类的是一种
嵌入式里用的 Buildroot 、yocto 也是,OpenWRT 来自 Buildroot ,也差不多 这些里面的 BusyBox 自己也能算一个 |
7
baobao1270 2023-07-08 23:16:00 +08:00
最简单的,其实只编译 busybox+kernel 即可
|
8
lhbc 2023-07-08 23:18:08 +08:00
用 Rust 重写 systemd
|
9
tin3w5 2023-07-09 09:10:47 +08:00 via iPhone 1
因为没意义,你的需求就是在重复造轮子。而且你早的轮子几乎没什么人维护,可能 bug 一堆,兼容性极差,甚至包依赖关系混乱。你认为造出来会有人用吗?你自己都不一定想用。如果你就是爱折腾,gentoo 足够用了,何必自己写发行版?
|
10
xsonglive491 2023-07-09 21:36:02 +08:00
楼主你这是要搞嵌入式?编辑设备树,编译 kernel ,构建文件系统,加载驱动,启动服务?
|
11
janus77 2023-07-10 11:58:10 +08:00
因为这种东西在规模上就是属于商业产品的级别了,你见过哪个商业产品有出手把手且免费公开的教程吗?要么就是第三方仿,而且只能仿一些表面的、基本的功能,要么只有 api 文档和使用手册之类的东西,开发方面从来没有过
|
12
424778940 2023-07-10 23:30:19 +08:00
你要找的是不是 buildroot
|
13
yanqiyu 2023-07-11 01:26:04 +08:00
@xiaoluobo58 并不会简单...大概,要构建一个可用的系统你至少得写一套 shell+libc+编译器+init
作为玩具规模太大,作为项目重复造轮子严重 |
14
Iamsonny 2023-07-13 12:04:20 +08:00
核心在包管理,比如 debian deb ,redhat rpm ,搞一个发行版最难的是有自己的包管理。
基他的 LFS 完全足够了。 |
15
flynaj 2023-07-20 22:55:34 +08:00 via Android
建议先把 lfs 走一遍.
|