Jądro akcentu
Accent to jądro systemu operacyjnego , najbardziej znane jako poprzednik jądra Mach . Pierwotnie opracowany na Carnegie Mellon University (CMU), Accent był pod wpływem jądra Aleph opracowanego na University of Rochester . Accent ulepsza starsze jądro, rozwiązując kilka problemów i ponownie ukierunkowując wsparcie sprzętowe dla sieci stacji roboczych (konkretnie Three Rivers PERQ ) zamiast minikomputerów . Accent był częścią projektu SPICE w CMU, który trwał od 1981 do 1985. Rozwój Accent doprowadził bezpośrednio do wprowadzenia Mach, używanego w NeXTSTEP , GNU Hurd i nowoczesnych systemach operacyjnych Apple, w tym Mac OS i iOS .
Oryginalny projekt Aleph wykorzystywał kopiowanie danych, aby umożliwić programom komunikację. Aplikacje mogły otwierać porty , co pozwalało im odbierać dane wysyłane do nich przez inne programy. Pomysł polegał na napisaniu kilku serwerów , które kontrolowałyby zasoby na maszynie, przekazując dane, aż dotrą do użytkownika końcowego. Pod tym względem był podobny w koncepcji do Uniksa , chociaż implementacja była znacznie inna, używając komunikatów zamiast pamięci. Okazało się, że wiąże się to z wieloma problemami, w szczególności z tym, że kopiowanie pamięci na ich Data General Eclipse było bardzo drogie.
W 1979 roku jeden z inżynierów Aleph, Richard Rashid , odszedł do CMU i rozpoczął pracę nad nową wersją Aleph, która unikała jego problemów. W szczególności Accent celował w stacje robocze wyposażone w MMU , używając MMU do „kopiowania” dużych bloków pamięci poprzez mapowanie , dzięki czemu pamięć wydaje się znajdować w dwóch różnych miejscach. Tylko dane, które zostały zmienione przez ten czy inny program, musiałyby zostać fizycznie skopiowane przy użyciu kopiowania przy zapisie .
Aby zrozumieć różnicę, rozważmy dwa współdziałające ze sobą programy, z których jeden przesyła plik do drugiego. W ramach Aleph dane od dostawcy musiałyby być kopiowane jednorazowo po 2 kB (ze względu na funkcje Eclipse) do procesu użytkownika. Pod Accentem dane po prostu „pojawiały się” w procesie użytkownika za cenę kilku instrukcji wysłanych do MMU. Tylko wtedy, gdy proces użytkownika zmieniłby dane, wszystko musiałoby zostać skopiowane, a nawet wtedy tylko te części danych, które faktycznie się zmieniły.
Innym problemem w Aleph było to, że jego porty były identyfikowane przez unikalne identyfikatory, które były przypisywane sekwencyjnie. Program mógł je łatwo „odgadnąć”, uzyskując w ten sposób dostęp do zasobów na komputerze, do których nie został przyznany. To sprawiło, że system Aleph był raczej niepewny.
Aby temu zaradzić, firma Accent uczyniła identyfikator portu wewnętrznym tylko dla jądra. Instancjom programu otwierającym porty przypisywano różne identyfikatory, przechowywane w mapowaniu w jądrze. Ilekroć wiadomość była wysyłana do jądra w celu dostarczenia, najpierw sprawdzało, czy program ma dostęp do danego portu, porównując z tabelą mapowania dla tego programu. Zgadywanie numerów portów już nie działało, identyfikatory portów programu nie dawały żadnej wskazówki co do „prawdziwych” identyfikatorów w jądrze, a każda próba rozmowy na jednym, który nie został wyraźnie przekazany przez jądro, była błędem. Tak więc porty firmy Accent reprezentowały możliwości , przyznające prawa do korzystania z zasobów w wyniku przekazania prawidłowego identyfikatora portu. Ten rodzaj systemu zdolności, wykorzystujący identyfikatory podmiotowe dla zdolności, nazywany jest systemem listy C.
Po kilku latach projekt Accent zaczął wyglądać coraz mniej ciekawie. Na początku lat 80. wielu uważało, że przyszły wzrost wydajności zostanie osiągnięty poprzez dodanie większej liczby procesorów do maszyn, z czym jądro Accent nie było tak naprawdę przystosowane do obsługi. Dodatkowym problemem było to, że pojawiała się nowa generacja mocniejszych stacji roboczych, co oznaczało, że Accent i tak musiałby zostać na nie przeniesiony. Podobnie Unix stał się systemem operacyjnym wybieranym do prac eksperymentalnych, zarówno w zakresie projektowania systemu operacyjnego, jak i platformy programistycznej dla aplikacji użytkownika.
Aby zaradzić tym zmianom, postanowiono zakończyć prace nad Accentem i zacząć od nowa. Nowy system wykorzystywałby system portów Accenta w jądrze Uniksa, tworząc słynne jądro Mach .
Niektóre funkcje Accenta:
- Możliwości portu
- Zarządzanie pamięcią wirtualną kopiowania przy zapisie
- Rozproszone zarządzanie plikami
- Rozproszone zarządzanie procesami
- komunikacja międzyprocesowa oparta na komunikatach
- Możliwość uruchamiania procesów z różnymi mikrokodowanymi zestawami instrukcji.
Linki zewnętrzne
- Rashid, Richard F .; George G. Robertson (grudzień 1981). Akcent: Jądro sieciowego systemu operacyjnego zorientowanego na komunikację (PDF) . Sosp '81. s. 64–75. doi : 10.1145/800216.806593 . ISBN 9780897910620 . S2CID 15890135 .