当我注册我的 Debian Linux VPS 主机并首次登录和调用 时ps
,只有一个用户进程在运行:sshd
。我可以看到,这是一个最小的 Linux,只安装和配置了两个东西:sshd
和apt
(当然还有所有依赖项)。
我想构建(或使用现有的)类似的 Linux 发行版,关于如何构建(或选择)有什么建议吗?
谷歌搜索“最低限度的 Linux”或“仅带有 sshd 的 Linux”通常会带来 Debian 的 netinstall,这不是我想要的。
提前致谢。
答案1
如果你愿意roll your own
,你可能会喜欢使用解引导。您只需几分钟就可以使用它快速创建一个非常小的发行版(您甚至需要生成自己的语言环境),基于任何使用 apt 的发行版。
将它与您选择的内核版本配对,您将拥有一个非常简单的系统。
我更喜欢chroot
在将其复制到启动媒体之前添加我想要的内容(您需要这样做才能安装 ssh / 等)
答案2
首先,ps aux
为我提供系统上运行的所有内容的完整列表,包括系统进程。你的意思是ps ux
?
第二,你说那sshd
是唯一正在运行的用户进程?那又怎么样bash
?那又怎么样ps
?那又怎么样?用户进程正在运行的用户进程的数量实际上并不能反映正在运行的系统内部进程的数量;这就是为什么称之为用户进程而不是系统进程。
第三,如果sshd
是唯一的系统进程运行,计算机如何启动(init
),如何处理 TTY 连接(getty
或agetty
),或记录系统事件(syslogd
和klogd
)?事实是,每个系统进程都有一个非常具体的原因,禁用或kill
禁用它们可能会导致计算机变得笨拙或崩溃。
Udev 几乎总是会出现在ps
任何 2.6.xx 系统的列表中。随着内核从 2.4 升级到 2.6,udev 子系统是标准的,除非您编译自己的内核。如果您编译出 udev 支持,那么您将不得不依赖未经检查的结构/dev
,这可能会导致问题。
如果你真的想使用自己的简约 Linux 安装,请使用该死的小型Linux或者Linux 从头开始并且只安装您想要的。
答案3
我非常喜欢 Arch Linux 的这种极简安装方式。我最近设置了一个虚拟机,它的唯一目的是充当 SFTP 存储库,与我的主要服务器分开。它有一个agetty
正在运行的串行端口和一个 tty1 syslog-ng
,udev
和sshd
。
Arch 的优点在于它很容易设置,默认情况下很少启动,只需编辑rc.conf
并设置这些即可运行,如下所示:
DAEMONS=(syslog-ng network sshd)
在基本的 Arch 安装中,我实际上只删除了挂载网络文件系统的条目,并添加了 sshd。
Arch 的缺点是开发库随每个软件包一起安装,因此它占用的磁盘空间不像极度精简的 Debian 那样少。此外,它使用pacman
而不是apt
,因此它不能真正满足您问题的严格要求,但我个人认为它是一种可行的替代方案。
如果你有兴趣的话,可以点击以下链接开始:http://wiki.archlinux.org/index.php/Beginners%27_Guide
答案4
如果你想自己动手尝试Linux 从头开始然后。或者获取您能找到的最小发行版并安装您需要的内容 :)
PS 这应该在 SU 上。