有没有可能在Linux内核中运行BSD userland来替代GNU coreutils?

bkhjykvo  于 2023-05-28  发布在  Linux
关注(0)|答案(2)|浏览(121)

我一直在寻找一个Linux发行版,它不适用于嵌入式系统,也不使用许多流行发行版中的GNU实用程序。我想开发一个(宠物项目)linux发行版,它使用musl-libc,bsd userland和用户空间的Plan 9。在我开始之前,可能会浪费时间去做不可能的事情,使用BSD用户界面作为GNU核心实用程序的替代品是否可行/实用?如果没有,还有什么替代方案?

qyyhg6bp

qyyhg6bp1#

您的目标似乎与stali项目非常接近(唯一的区别是BSD用户界面需求)。
http://sta.li/
我不太了解这个项目的阶段,但你可以在项目邮件列表中得到一些帮助。
据我所知,BSD工具使用了大量的直接系统调用,很少使用POSIX API。我不相信bsd的人会使用大量的#ifdef来编写代码以获得完全兼容的程序(但我可能是错的)……
suckless网站将plan 9用户界面移植到unix(也基于plan 9 port),它被称为9 base(可以在archlinux repo上安装)。
我想你会遇到和我过去试图组装一个类似发行版时一样的问题:为了摆脱GNU付出了太多的努力...基本系统很简单,但是对于一些有用的东西,你需要一个C编译器,然后你就没有好的替代品了。GCC是gnu,有几十个gnu依赖项,出于显而易见的原因,正常的freebsd gcc移植永远不会在linux上工作。
我目前的尝试是帮助完成linux的ken-c(或9-cc)端口。

sbtkgmzw

sbtkgmzw2#

https://chimera-linux.org/
使用Alternative userland的Linux
Chimera带有一个基于FreeBSD核心工具的新颖的用户界面设置(取代了coreutils和相关项目,如findutils,diffutils,sed或grep;请阅读我们的常见问题以了解原因)。
FreeBSD工具因其高质量的代码和可靠的功能集而被选中。一些源代码也取自NetBSD和OpenBSD。虽然我们在哲学上并不反对GNU/GPL,许可证也不是一个真正的因素,但使用它们确实有好处,而且它们总体上更适合该项目。
LLVM/Clang套件提供了系统工具链(clang,lld)以及运行时部分(compiler-rt,libunwind,libc++)。C库是由musl提供的,打了补丁以使用LLVM(也使用例如在Android和Fuchsia中)Scudo分配器,以提高性能和安全性。
这意味着Chimera不是一个GNU/Linux系统,因为它既不使用GNU实用程序,也不使用GNU libc,也不使用GNU工具链。该系统几乎完全可以在没有任何GNU组件(除了make)的情况下进行引导,并且能够在没有它们的情况下进行引导(然而,大多数人都会有一些)。

相关问题