Dlaczego procesory x86 używają tylko dwóch z czterech „pierścieni”?

Apr 22, 2025
Sprzęt komputerowy
TREŚĆ NIENARUSZONA

Dowiadując się więcej o tym, jak systemy operacyjne i sprzęt, na którym działają, działają i współdziałają ze sobą, możesz być zaskoczony tym, co wydaje się dziwactwem lub niepełnym wykorzystaniem „zasobów”. Dlaczego? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedź na pytanie zaciekawionego czytelnika.

Dzisiejsza sesja pytań i odpowiedzi jest dostępna dzięki uprzejmości SuperUser - części Stack Exchange, grupy witryn internetowych z pytaniami i odpowiedziami.

Zdjęcie dzięki uprzejmości Lemsipmatt (Flickr) .

Pytanie

Czytnik SuperUser AdHominem chce wiedzieć, dlaczego procesory x86 używają tylko dwóch z czterech pierścieni:

Używają tylko systemów x86 opartych na Linux i Windows Pierścień 0 dla trybu jądra i Pierścień 3 dla trybu użytkownika. Dlaczego procesory rozróżniają nawet cztery różne pierścienie, skoro wszystkie i tak używają tylko dwóch z nich? Czy zmieniło się to w przypadku architektury AMD64?

Dlaczego procesory x86 używają tylko dwóch z czterech pierścieni?

Odpowiedź

Współautor SuperUser Jamie Hanrahan ma dla nas odpowiedź:

Są dwa główne powody.

Po pierwsze, chociaż procesory x86 oferują cztery pierścienie ochrony pamięci, stopień szczegółowości oferowanej przez nie ochrony jest tylko na poziomie segmentu. Oznacza to, że każdy segment można ustawić na określony pierścień (poziom uprawnień) wraz z innymi zabezpieczeniami, takimi jak blokada zapisu. Ale nie ma zbyt wielu dostępnych deskryptorów segmentów. Większość systemów operacyjnych chciałaby mieć znacznie większą szczegółowość ochrony pamięci, na przykład… dla poszczególnych stron.

Dlatego wprowadź ochronę opartą na tabeli stron. Większość, jeśli nie wszystkie, współczesnych systemów operacyjnych x86 mniej lub bardziej ignoruje mechanizm segmentacji (na tyle, na ile mogą) i polega na ochronie dostępnej z najmniej znaczących bitów we wpisach tabeli stron. Jeden z nich nazywany jest bitem „uprzywilejowanym”. Ten bit określa, czy procesor musi znajdować się na jednym z „uprzywilejowanych” poziomów, aby uzyskać dostęp do strony. Poziomy „uprzywilejowane” to PL 0, 1 i 2 . Ale to tylko jeden bit, więc na poziomie ochrony strona po stronie liczba „trybów” dostępnych w zakresie ochrony pamięci wynosi tylko dwa: Strona może być dostępna z trybu nieuprzywilejowanego lub nie. Stąd tylko dwa dzwonki. Aby mieć cztery możliwe pierścienie dla każdej strony, musieliby mieć dwa bity ochrony w każdym wpisie tablicy stron, aby zakodować jeden z czterech możliwych numerów pierścieni (podobnie jak deskryptory segmentów). Jednak tak nie jest.

Drugim powodem jest chęć przenoszenia systemu operacyjnego. Nie chodzi tylko o x86; Unix nauczył nas, że system operacyjny może być stosunkowo przenośny na architekturę wielu procesorów i że to dobrze. Niektóre procesory obsługują tylko dwa pierścienie. Nie polegając na wielu pierścieniach w architekturze, osoby wdrażające systemy operacyjne uczyniły je bardziej przenośnymi.

Istnieje trzeci powód, który jest specyficzny dla rozwoju systemu Windows NT. Projektanci NT (David Cutler i jego zespół, których Microsoft zatrudnił poza firmą DEC Western Region Labs) mieli rozległe wcześniejsze doświadczenie z VMS; w rzeczywistości Cutler i kilku innych należało do oryginalnych projektantów VMS. A procesor VAX, dla którego zaprojektowano VMS, ma cztery pierścienie (VMS wykorzystuje cztery pierścienie).

Ale komponenty działające w VMS Pierścienie 1 i 2 (Odpowiednio Record Management Services i CLI) zostały pominięte w projekcie NT. Pierścień 2 w VMS tak naprawdę nie chodziło o bezpieczeństwo systemu operacyjnego, ale raczej o zachowanie środowiska CLI użytkownika od jednego programu do drugiego, a Windows nie miał takiej koncepcji; CLI działa jak zwykły proces. Jeśli chodzi o VMS Pierścień 1 , kod RMS w Pierścień 1 musiał zadzwonić Pierścień 0 dość często, a przejścia pierścieniowe są drogie. Okazało się, że bardziej efektywne jest po prostu pójście do Pierścień 0 i skończyć z tym, zamiast mieć dużo Pierścień 0 przejścia w ramach Pierścień 1 kod (znowu nie, że NT i tak ma coś podobnego do RMS).

Jeśli chodzi o to, dlaczego x86 zaimplementował cztery pierścienie, podczas gdy systemy operacyjne ich nie używały, mówisz o systemach operacyjnych o znacznie nowszym projekcie niż x86. Wiele funkcji programowania systemowego x86 zostało zaprojektowanych na długo przed zaimplementowaniem w nim jądra NT lub prawdziwego systemu Unix i tak naprawdę nie wiedzieli, czego będzie używał system operacyjny. Dopiero gdy otrzymaliśmy stronicowanie na x86, mogliśmy zaimplementować prawdziwe jądra uniksowe lub podobne do VMS.

Nie tylko nowoczesne systemy operacyjne x86 w dużej mierze ignorują segmentację (po prostu ustawiają segmenty C, D i S z adresem bazowym 0 i rozmiarem 4 GB; segmenty F i G są czasami używane do wskazywania kluczowych struktur danych systemu operacyjnego ), również w dużej mierze ignorują takie rzeczy, jak „segmenty stanu zadania”. Mechanizm TSS został wyraźnie zaprojektowany do przełączania kontekstów wątków, ale okazuje się, że ma zbyt wiele skutków ubocznych, więc nowoczesne systemy operacyjne x86 robią to „ręcznie”. Jedyny przypadek, w którym x86 NT zmienia zadania sprzętowe, dotyczy naprawdę wyjątkowych warunków, takich jak wyjątek podwójnego błędu.

Jeśli chodzi o architekturę x64, wiele z tych nieużywanych funkcji zostało pominiętych. Trzeba przyznać, że AMD faktycznie rozmawiało z zespołami zajmującymi się jądrem systemu operacyjnego i pytało, czego potrzebują od x86, czego nie potrzebują lub nie chcą, a co chcieliby dodać. Segmenty na x64 istnieją tylko w postaci, którą można nazwać szczątkową, przełączanie stanu zadań nie istnieje itp., A systemy operacyjne nadal używają tylko dwóch pierścieni.


Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych zaawansowanych technicznie użytkowników Stack Exchange? Sprawdź cały wątek dyskusji tutaj .

Why Do X86 CPUs Only Use Two Out Of Four “Rings”?

Why Do X86 CPUs Only Use 2 Out Of 4 Rings?

Lord Of The X86 Rings: A Portable User Mode Privilege Separation Architecture On X86


Sprzęt komputerowy - Najpopularniejsze artykuły

Jak działa „chłodzenie wodą” w telefonie?

Sprzęt komputerowy Sep 12, 2025

W miarę jak telefony stają się coraz mocniejsze, generują również więcej ciepła. Aby były chłodniejsze niż kiedykolwiek, zaczynamy widzieć więcej telefonów wyposażony..


Jaka jest różnica między Androidem One a Androidem Go?

Sprzęt komputerowy Apr 10, 2025

W 2014 roku Google ogłosił linię tanich telefonów o niskich parametrach tzw Android One . W 2017 roku ogłosili Android Go , zaprojektowany specjal..


Jak przywrócić ustawienia fabryczne Google Home

Sprzęt komputerowy Jun 20, 2025

Niezależnie od tego, czy masz z nim problemy, czy po prostu chcesz go sprzedać, oto jak przywrócić ustawienia fabryczne Google Home, aby usunąć wszystkie jego ustawienia i zac..


Jak zmniejszyć ilość danych zużywanych przez Apple TV

Sprzęt komputerowy Aug 18, 2025

Apple TV jest zdolne małe urządzenie do przesyłania strumieniowego z dużą różnorodnością, ale nie jest zbyt oszczędny, jeśli chodzi o połączenie internet..


Jak zainstalować dysk SSD w starszym komputerze iMac z lat 2007-2009

Sprzęt komputerowy Jul 18, 2025

TREŚĆ NIENARUSZONA Jeśli nadal kołyszesz starszym komputerem iMac, ale chcesz tchnąć w niego trochę nowego życia, zastąpienie tradycyjnego dysku twardego dyskiem SSD to �..


17 rzeczy, które możesz zrobić z Siri na nowym Apple TV

Sprzęt komputerowy Jun 20, 2025

TREŚĆ NIENARUSZONA Najnowsza wersja Apple TV ma wiele fajnych zaawansowanych funkcji. Najważniejszym z nich jest integracja z Siri, z której, jak zakładamy, wiele osób nadal..


Jak najlepiej wykorzystać ograniczoną przestrzeń dyskową tabletu z systemem Windows 8.1

Sprzęt komputerowy May 2, 2025

TREŚĆ NIENARUSZONA Niektóre tablety z systemem Windows mają zaledwie 32 GB pamięci wewnętrznej, a przyszłe mogą mieć tylko 16 GB! Jest to niezwykle ciasne jak na duży sy..


Microsoft mógł być na topie: 10 możliwości dotyczących produktów, których Microsoft przegapił

Sprzęt komputerowy May 1, 2025

TREŚĆ NIENARUSZONA Kiedy ludzie myślą o innowacyjnych firmach technologicznych, na ogół nie myślą o firmie Microsoft. Microsoft faktycznie miał historię innowacyjnych pr..


Kategorie