Principe de gestion de la mémoire utilisé par Linux


Réponses:


7

Linux utilise les deux. Il utilise la segmentation pour mapper tout l'espace d'adressage disponible tout en donnant différents droits d'accès: essentiellement un noyau et une vue de l'espace utilisateur. Vous pouvez grep le code source Linux pour KERNEL_DS (segment de données du noyau) pour quelques exemples.

La pagination est ensuite utilisée pour implémenter la mémoire virtuelle (Grep pour "struct gdt_page" dans le noyau, pour un point de départ)


6

La gestion de la mémoire sous Linux fonctionne exclusivement par pagination.

Linux prend en charge les pages "petites" (généralement 4 Ko) et "grandes" (2 Mo). Les premiers "fonctionnent juste" sans que vous sachiez ou ne fassiez rien de spécial, et les seconds nécessitent un traitement spécial (doivent être réservés au démarrage et cartographiés via un appareil spécial).

Le seul contexte dans lequel "segment" apparaît sous Linux est le syscall brk () qui est utilisé pour augmenter le segment de données d'un processus (vous n'en aurez normalement pas besoin, malloc le fait sans vous en soucier). Mais de toute façon, la mémoire vient en pages et est gérée en pages, et cela n'a rien à voir avec la segmentation x86.


La segmentation X86 était obsolète lors de la sortie de l'i386. Linux n'a jamais utilisé la segmentation pour la gestion de la mémoire. Certains dérivés comme ELKS et (éventuellement) uClinux pourraient.
LawrenceC
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.