V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
xiaoluobo58
V2EX  ›  Linux

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

  •  
  •   xiaoluobo58 · 294 天前 · 2341 次点击
    这是一个创建于 294 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    15 条回复    2023-07-20 22:55:34 +08:00
    Sainnhepark
        1
    Sainnhepark  
       294 天前 via Android   ❤️ 1
    LFS?
    0o0O0o0O0o
        2
    0o0O0o0O0o  
       294 天前 via iPhone   ❤️ 1
    比起编写,更像是搭建。

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

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