De wikipedia:.Segmentation de la mémoire sur les systèmes d'exploitation modernes: pourquoi avez-vous besoin de 4 segments?
« Segmentation ne peut pas être désactivé sur processeurs x86, tant de systèmes d'exploitation utilisent un modèle de mémoire plat pour faire la segmentation imperceptibles à programmes Par exemple, le noyau Linux met en place seulement 4 segments »
Je veux dire, puisque la protection est déjà pris en charge par le sous-système de mémoire virtuelle (PTEs ont un peu de protection) pourquoi auriez-vous besoin 4 segments (au lieu de 2: à savoir les données/code avec DPL 3 depuis vous pouvez execu le code résidant dans un segment privilégié inférieur)?
Merci.
Cela ne répond pas à ma question. La manière dont la segmentation est implémentée en mode protégé est une table d'indirection (ie le GDT/LDT) donc vous pouvez toujours configurer 2 segments et avoir 2 registres pointant vers la même entrée dans le tableau ... –
Vous devriez faire plus évitez les références de segment implicites si vous n'aviez pas de configuration valide pour tous 4. Si CS et DS étaient configurés, vous devez utiliser un préfixe de remplacement de segment pour les instructions où SS et ES sont implicitement utilisés. Il est donc beaucoup plus facile de tout configurer à l'identique. Ensuite, vous pouvez oublier la segmentation existe. Je suis assez rouillé sur mon x86 que je manque probablement un cas où même l'utilisation des préfixes de remplacement causerait plus de problème. Pourquoi ouvrir cette boîte de Pandore? Quel est le problème pour mettre en place tous les 4? –