use*_*508 4 filesystems kernel
假设我不需要文件系统并且我只有可能不需要重新加载数据的应用程序 - 所以 MMU 可能是多余的。我可以从 Linux 中删除这两个项目,并成功启动操作系统吗?
我正在尝试开发小型 Linux 内核,我发现文件系统和 MMU 占用了相当大的空间。所以我想把它们去掉。
对此有何建议?
如果您的意思是“块设备上没有外部文件系统”支持,例如 ext2/3/4、vfat 等,您可以构建一个内核,而无需任何文件系统模块构建为模块或构建到内核中。我不确定initramfs支持是否算作一个文件系统——如果你想要一个 shell 和其他实用程序,你当然需要一个。您可以使用tmpfs诸如/dev. 因此,您可以仅使用initramfs挂载在 / 以及诸如此类的东西来运行 Linux /proc。
任何 Linux 软件至少会以某种方式最低限度地引用文件系统,它是 UNIX 的核心概念,因此也是 Linux,因此您无法摆脱 Linux 中文件的整个概念,它仍然是 Linux。
您过去可以在编译内核时禁用块层。不知道还有没有可能
MMU 是 CPU 硬件功能,Linux 需要它。您通常希望这样做,因为它使进程能够相互分离,并且内核的大多数安全方面都可以分离。
尽管如此,存在一个名为 uCLinux 的项目,它是不需要 MMU 的 Linux 实现。它旨在在微控制器等中启用类似 Linux 的环境。uCLinux 中的进程可能会覆盖其他进程的地址空间,如果您没有运行良好的软件,则会导致系统不稳定。