Von Linux verwendetes Speicherverwaltungsprinzip


Antworten:


7

Linux verwendet beides. Es verwendet die Segmentierung, um den gesamten verfügbaren Adressraum zuzuordnen und gleichzeitig verschiedene Zugriffsrechte zu gewähren: im Grunde eine Kernel- und eine Benutzerraumansicht. Sie können den Linux-Quellcode für KERNEL_DS (Kernel-Datensegment) für einige Beispiele durchsuchen.

Paging wird dann zum Implementieren des virtuellen Speichers verwendet (Grep für "struct gdt_page" im Kernel als Ausgangspunkt)


6

Die Speicherverwaltung unter Linux erfolgt ausschließlich durch Paging.

Linux unterstützt sowohl "kleine" (normalerweise 4 KB) als auch "große" (2 MB) Seiten. Ersteres "funktioniert einfach", ohne dass Sie etwas Besonderes wissen oder tun, und Letzteres muss speziell behandelt werden (muss beim Booten reserviert und über ein spezielles Gerät zugeordnet werden).

Der einzige Kontext, in dem "Segment" unter Linux angezeigt wird, ist der brk () - Systemaufruf, mit dem das Datensegment eines Prozesses vergrößert wird (dies wird normalerweise nicht benötigt, malloc erledigt dies, ohne dass Sie sich darum kümmern müssen). In beiden Fällen wird der Speicher in Seiten bereitgestellt und in Seiten verwaltet. Dies hat nichts mit der x86-Segmentierung zu tun.


Die X86-Segmentierung war veraltet, als der i386 herauskam. Linux hat noch nie eine Segmentierung für die Speicherverwaltung verwendet. Einige Derivate wie ELKS und (möglicherweise) uClinux könnten.
LawrenceC
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.