Ich höre oft Leute, die den Linux-Kernel als das Linux-Kernel-Image bezeichnen, und ich kann scheinbar keine Antwort auf die Frage finden, warum er als Image bezeichnet wird.
Wenn ich an ein Bild denke, kann ich mir nur zwei Dinge vorstellen, entweder eine Kopie einer Diskette oder ein Foto. Es ist verdammt noch mal kein Foto, warum wird es dann als Bild bezeichnet?
kernel
linux-kernel
Tony
quelle
quelle
Antworten:
Der Unix-Boot-Prozess hat (hatte) nur begrenzte Möglichkeiten, ein Programm intelligent zu laden (es zu verschieben, Bibliotheken zu laden usw.). Daher war das ursprüngliche Programm ein genaues Abbild von dem, was in den Speicher geladen und "aufgerufen" werden musste, um den Kernel zum Laufen zu bringen.
Erst viel später kamen Dinge wie (De-) Komprimierung hinzu, und obwohl es jetzt leistungsfähigere Bootloader gibt, ist der Image-Name geblieben.
quelle
Das Wort image hat auch die Definition "Eine Datei, die alle Informationen enthält, die zum Erstellen einer Live-Arbeitskopie erforderlich sind."
quelle
Dies bedeutet nicht, dass ein "Image" nur eine 1: 1-Kopie einer Festplatte ist. So wie ein Foto die Realität genau wie beim Aufnehmen darstellt, stellt ein Abbild eines ausführbaren Programms (oder Kernels) das Programm in einem Zustand dar, in dem es genau wie es ist in den Systemspeicher geladen (oder entpackt) werden kann Kontrolle darüber gegeben. Dieses Programm kann dann auf konsistente Weise von diesem Zustand aus gestartet werden. Das Linux-Kernel-Image ist also ein Image (ein Bild des Status) des Linux-Kernels, das in der Lage ist, von selbst ausgeführt zu werden, nachdem die Steuerung an ihn übergeben wurde.
Heutzutage lädt der Bootloader ein solches Image aus dem Dateisystem der Festplatte (Treiber wird benötigt), ersetzt sich selbst und gibt ihm so die Kontrolle. Der Bootvorgang eines Computers führt dies mehrere Male durch, bis das Betriebssystem schließlich ausgeführt wird. Dies wird Kettenladen genannt . Oder wenn ein kleineres Programm (Chain-) ein komplexeres lädt, spricht man von Bootstrapping .
Das BIOS lädt den Bootloader, der auch ein Image ist, das zum Beispiel
boot.img
im Fall von aufgerufen wirdgrub
. Dasboot.img
ist keine Datei (wenn grub installiert ist); Dies ist der Name für den Teil, der im Master Boot Record (MBR) enthalten ist. Wenn Sie das in eine Datei kopieren, handelt es sich um ein Bild in Form einer Datei, die nicht direkt auf die Festplatte, sondern direkt in eine Datei geschrieben wurde. Dies ist auch eine Darstellung (Bild) des frühesten Zustands, ingrub
dem der Rest von sich selbst geladen werden kann.grub
hat dann einen eigenen mechanismus wie man sich durch laden anderer bilder voll lädt. Dies wird durch die verschiedenen Phasen in dargestelltgrub
. Danach lädt der Bootloader das Kernel-Image, indem er sich durch den extrahierten Inhalt dieser Datei ersetzt.quelle
Alte Geschichte. Der Begriff Bild stammt von einem alten Begriff der Digital Equipment Corporation für die Ausgabe vom Compiler-> Linker. Die Datei ist ein Bild, das durch Interpretation des Codes usw. über den Linker erstellt wurde, um ein ausführbares "Bild" Ihres Entwurfs zu erstellen.
quelle
In der Mathematik ist der Kernel das umgekehrte Bild einer Teilmenge des Bildes einer Karte, wobei die Teilmenge gleich dem Identitätselement in der Codomäne ist. Ich bin mir sicher, dass diese Namen von mathematischen Konzepten abgeleitet sind, da sie in verschiedenen Bereichen der Mathematik einen signifikanten Zusammenhang aufweisen. In Anbetracht der Tatsache, dass Unix in einer akademischen Umgebung entwickelt wurde, ist es möglich, dass die Verwendung des Kernels und des Images dieses Wortes identisch ist.
Wenn Sie einen Satz haben, der eine gewisse Informationsebene über das "vollständige" Betriebssystem darstellt, und diese Information auch eine Gruppe bildet, können Sie Gruppenhomomorphismen für diesen Satz definieren oder ihn im Grunde anderen Sätzen zuordnen, die eine andere Größe haben als der ursprüngliche Satz, solange Sie "respektieren" die Struktur des Orginal-Sets, die es zu einer Gruppe gemacht hat. Sie können sehen, dass es zu Ihren Gunsten sein kann, die Menge einer kleineren Menge oder einer Teilmenge einer Menge zuzuordnen, bei der die Teilmenge kleiner ist.
Bild - Das Bild eines Gruppenhomomorphismus und allgemeiner Funktionen und Karten ist nur eine Teilmenge einer Menge, auf die die Elemente tatsächlich abgebildet werden. Die Funktion wird möglicherweise nicht auf jedes einzelne Element abgebildet, und diese Elemente werden nicht in das Bild aufgenommen.
Kernel - Grundsätzlich werden nur die Elemente aus dem Originalsatz dem Bild zugeordnet, jedoch nur dem Identitätselement im Bild. Grundsätzlich mögen die Elemente, die auf 0 abgebildet sind, das Bild.
Wenn das Bild kleiner ist als das Originalset, können wir sehen, dass mehrere Elemente einem einzelnen Element zugeordnet werden müssen. So kann es beispielsweise mehrere Elemente aus dem Kernel geben, die dem Image zugeordnet sind, und wir wissen bereits, dass sie alle 0 zugeordnet werden müssen.
Wir können sehen, dass wir, wenn wir die ursprüngliche Menge als endliche Folgen von Binären oder Einsen und Nullen und die (zugeordnete) Codomäne als Folgen von Binären wählen, solche Dinge genau dann konstruieren können, wenn wir eine geeignete Gruppenstruktur haben kann definiert werden (dieses kleine bisschen in der Tiefe und unabhängig von der gestellten Frage).
Wir sehen also mit absoluter Sicherheit, dass "Kernel" und "Image" eines Betriebssystems vollständig definiert sind und eine mathematische Bedeutung haben. Unabhängig von möglicherweise anderen Verwendungen der Begriffe.
quelle