Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
xiaoluobo58
V2EX  ›  Linux

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

  •  
  •   xiaoluobo58 · Jul 8, 2023 · 3628 views
    This topic created in 1041 days ago, the information mentioned may be changed or developed.

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

    15 replies    2023-07-20 22:55:34 +08:00
    Sainnhepark
        1
    Sainnhepark  
       Jul 8, 2023 via Android   ❤️ 1
    LFS?
    0o0O0o0O0o
        2
    0o0O0o0O0o  
       Jul 8, 2023 via iPhone   ❤️ 1
    比起编写,更像是搭建。

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

    LFS 也是个不错的选择,就像是找人带着走一遍。
    masterclock
        6
    masterclock  
       Jul 8, 2023
    这种教程实际上不少,LFS 类的是一种
    嵌入式里用的 Buildroot 、yocto 也是,OpenWRT 来自 Buildroot ,也差不多
    这些里面的 BusyBox 自己也能算一个
    baobao1270
        7
    baobao1270  
       Jul 8, 2023
    最简单的,其实只编译 busybox+kernel 即可
    lhbc
        8
    lhbc  
       Jul 8, 2023
    用 Rust 重写 systemd
    tin3w5
        9
    tin3w5  
       Jul 9, 2023 via iPhone   ❤️ 1
    因为没意义,你的需求就是在重复造轮子。而且你早的轮子几乎没什么人维护,可能 bug 一堆,兼容性极差,甚至包依赖关系混乱。你认为造出来会有人用吗?你自己都不一定想用。如果你就是爱折腾,gentoo 足够用了,何必自己写发行版?
    xsonglive491
        10
    xsonglive491  
       Jul 9, 2023
    楼主你这是要搞嵌入式?编辑设备树,编译 kernel ,构建文件系统,加载驱动,启动服务?
    rb6221
        11
    rb6221  
       Jul 10, 2023
    因为这种东西在规模上就是属于商业产品的级别了,你见过哪个商业产品有出手把手且免费公开的教程吗?要么就是第三方仿,而且只能仿一些表面的、基本的功能,要么只有 api 文档和使用手册之类的东西,开发方面从来没有过
    424778940
        12
    424778940  
       Jul 10, 2023
    你要找的是不是 buildroot
    yanqiyu
        13
    yanqiyu  
       Jul 11, 2023
    @xiaoluobo58 并不会简单...大概,要构建一个可用的系统你至少得写一套 shell+libc+编译器+init
    作为玩具规模太大,作为项目重复造轮子严重
    Iamsonny
        14
    Iamsonny  
       Jul 13, 2023
    核心在包管理,比如 debian deb ,redhat rpm ,搞一个发行版最难的是有自己的包管理。
    基他的 LFS 完全足够了。
    flynaj
        15
    flynaj  
       Jul 20, 2023 via Android
    建议先把 lfs 走一遍.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5622 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 07:50 · PVG 15:50 · LAX 00:50 · JFK 03:50
    ♥ Do have faith in what you're doing.