我想构建一个基于 Linux 的操作系统,它只为一个应用程序定制,并且完全轻量级并且使用最少的系统资源。我该怎么办?
剥离现有的操作系统(例如 Ubuntu)是一个好主意吗?
答案1
如果你想建造一个基于 Linux 的操作系统,仅运行计算机工作所需的内容,如果您有时间,您应该看看 LFS。
http://www.linuxfromscratch.org/
这本书解释了有关编译 Linux 内核所需了解的一切。当然,这需要很多时间,但最终看看总是一个好主意。创建自定义 Linux 发行版后,您可以阅读 BLFS(Beyond Linux From Scratch)来添加一些应用程序。
在创建 Linux 发行版的过程中,您将看到如何在启动时启动应用程序。
顺便说一句,分叉 Ubuntu 是有史以来最糟糕的想法。它绝对不轻,并且在启动时运行一堆应用程序。我会推荐你Archlinux。它比 Ubuntu 轻很多。希望能帮助到你。
Archlinux 链接:https://www.archlinux.org/ 正如标题所说,它是一个轻量级发行版,可能正是您所寻找的。无需构建自己的发行版,只需尝试一下 Arch 并让您的应用程序在启动时运行,这并不复杂。
答案2
我也一直在考虑这个问题,因为大型应用程序在安全方面可能会失败,就像浏览器一样,因为它总是有需要解决的错误/漏洞。
我相信你必须开始编译虚拟机模拟器的内核、特定显卡的驱动程序、一张以太网卡的驱动程序,并且不需要隐藏密码、USB 支持、蓝牙、无线驱动程序、文件系统和所有外在的东西。
您还需要最少量的 /bin/ /sbin/ /usr/ 和目录层次结构文件来引导系统。
因此,您最终会创建一个非常精简的系统,而不会像完整的 Linux 系统那样复杂。
事实上,我相信有很多人需要这样的发行版,并且不断更新它会很容易,我肯定会用钱为这样的项目做出贡献。
将大型且危险的应用程序与主系统分开,并在虚拟机上隔离运行它们。
底层系统可以是安全性更加严格的系统,例如OpenBSD或FreeBSD。
另外,我希望也有一个 WORKSTATION OpenBSD 发行版(不是服务器 OpenBSD 发行版)来使用 Qemu 在 OpenBSD 上运行这个袖珍 Linux 发行版。
为什么?!因为大多数时候 OpenBSD 的基本系统都经过审计,而 Linux 代码都没有经过审计(不完全确定)。
许多大型且存在安全风险的应用程序可以在该轻量级发行版上运行,例如:gimp、libreoffice、各种浏览器(开源和闭源)、java ide、各种 p2p 应用程序等等。
另一件事是,基础发行版可以作为 qemu 映像或所有其他类型的 VM 磁盘映像格式以及应用程序映像进行分发,以及运行该特定应用程序所需的所有内容(如映像)。
这样我们最终将得到一个内核、一个基本的 Linux 文件系统映像和许多应用程序映像,并且它们都可以单独更新。
该发行版可以在一个虚拟驱动器中加载基本 Linux 发行版的一个映像,在另一个虚拟磁盘驱动器中加载应用程序映像,瞧!
沙箱、监禁和安全运行各种应用程序!
答案3
这可能是一种相反的答案。
看一眼DSL(该死的小Linux)。这可能就是您所需要的。这个实际上是为了在低硬件配置(如低内存)的系统上使用而构建的。它配备了基本组件,例如 justvim
和nano
器、浏览器、远程桌面查看器以及其他一些基本功能。查看这个维基链接了解更多信息。
答案4
基本想法是启动您的应用程序init
(但要小心,过程 1是非常特别)。也许从一个迷你发行版开始,然后从那里开始工作?或者甚至根据需要设置一个 initramfs,并且永远不要离开它?
还要仔细考虑,即使没有最小的可用用户空间所节省的成本是否值得绝对不可能进行故障排除/调整。