Ich möchte versuchen, einen Kernel ohne MMU zu kompilieren. Nach dem, was ich in der Konfiguration gefunden habe, gibt es für so etwas keine Option. Ist das möglich?
quelle
Ich möchte versuchen, einen Kernel ohne MMU zu kompilieren. Nach dem, was ich in der Konfiguration gefunden habe, gibt es für so etwas keine Option. Ist das möglich?
Sie können einen Linux-Kernel ohne MMU-Unterstützung auf den meisten Prozessorarchitekturen, einschließlich x86, kompilieren. Da dies jedoch eine seltene Konfiguration nur für die Nutzer , die wissen , was sie tun, wird die Option nicht im Menü enthalten angezeigt durch make menuconfig
, make xconfig
und dergleichen, außer auf einigen Architekturen für Embedded - Geräte , bei denen der Mangel an MMU ist relativ häufig. Sie müssen die bearbeitende .config
Datei explizit auf Änderung CONFIG_MMU=y
zu CONFIG_MMU=n
. Alternativ können Sie die Option im Menü anzeigen lassen, indem Sie die Datei arch/*/Kconfig
entsprechend Ihrer Architektur bearbeiten und die Zeilengruppe beginnend mit CONFIG MMU
by ersetzen
config MMU
bool "MMU support"
default y
---help---
Say yes. If you say no, most programs won't run.
Selbst wenn Sie die Option in den Menüs anzeigen lassen, müssen Sie möglicherweise die resultierende Konfiguration anpassen, um sie intern konsistent zu machen. MMU-freie x86-Systeme sind höchst ungewöhnlich.
Der einfachste Weg, mit einem System ohne MMU zu experimentieren, besteht darin, ein echtes System ohne MMU in einem Emulator auszuführen, wobei die vom Hardwarehersteller oder vom Emulator bereitgestellte Linux-Kernelkonfiguration verwendet wird.
Falls dies nicht klar war, benötigen normale Linux-Systeme eine MMU. Der Linux-Kernel kann für Systeme ohne MMU kompiliert werden. Dies führt jedoch zu Einschränkungen, die verhindern, dass viele Programme ausgeführt werden. Beginnen Sie mit dem Lesen der Unterstützung für No-MMU-Speicherzuordnungen . Ich glaube nicht, dass Sie glibc ohne MMU verwenden können. Stattdessen wird normalerweise µClibc verwendet. Die Dokumentation aus dem µClinux-Projekt kann ebenfalls relevant sein (µClinux war das ursprüngliche Projekt für ein Linux ohne MMU, obwohl heutzutage die Unterstützung für Systeme ohne MMU in den Hauptkernbaum integriert wurde, sodass Sie µClinux nicht verwenden müssen).
CONFIG_MMU=n
inCONFIG_MMU=y
den Kernel und erstellt ihn mit MMU.Schauen Sie sich ELKS (Embeddable Linux Kernel Subset) oder Version 1 von Minix an
quelle