Co oznacza brama w systemie operacyjnym Multics?

4

Czytam system operacyjny Multics. W słowie deskryptora segmentu (książka) jest jedna część dla liczby bram dla segmentu. Co oznacza brama? Wiem, że proces może wejść w pierścień o wyższych uprawnieniach, jeśli pozwalają na to bramy (użyj jednego z prawidłowych bram segmentów jako punktu wejścia), ale nie wiem, co właściwie oznacza brama?

Dzięki.

Fatime
źródło

Odpowiedzi:

4

Brama to po prostu specjalnie zadeklarowany punkt wejścia (punkt wejścia nazywany byłby rutyną, funkcją lub procedurą w dzisiejszym języku). Kompilator lub asembler wygeneruje dodatkowe informacje dla punktów wejścia, które są bramkami. Punkt wejścia bramki można wywołać kodem, który działa na mniej uprzywilejowanym pierścieniu niż brama. Nie można wywołać punktów wejścia poza bramką z kodu działającego w pierścieniach o wyższym numerze (mniej uprzywilejowanych).

Więcej informacji można znaleźć w rozdziale 8 podręcznika AL-39 oraz w opisie instrukcji wywołania6. Oto fragment:

Bramy są procedurami znajdującymi się w danym pierścieniu i mają na celu zapewnienie kontrolowanego dostępu pierścień. Program znajdujący się w pierścieniu R może wejść do pierścienia wewnętrznego r tylko przez wywołanie jednej z procedur bramkowania związanych z tym pierścieniem wewnętrznym r. Bramki muszą być starannie zakodowane i nie mogą ufać żadnym danym, które zostały wyprodukowane lub zmodyfikowane przez dzwoniącego w mniej uprzywilejowanym pierścieniu. W szczególności bramy muszą sprawdzać wszystkie argumenty przekazane im przez wywołującego, aby nie naruszyć ochrony jakiegokolwiek segmentu znajdującego się w pierścieniu wewnętrznym.

Mike Mondy
źródło
0

FYI, bardzo podobny mechanizm bramki wywołującej przejście pierścienia, jak w Multics, jest również dostępny we wszystkich systemach Intel x86 obsługujących „tryb chroniony”, więc od 80286 on.

Greg A. Woods
źródło