Singularity (system operacyjny)

Z Wikipedii, wolnej encyklopedii
Singularity
Ilustracja
Interfejs użytkownika
Producent

Microsoft

Architektura

x86

Aktualna wersja

2.0
(2008-11-14 14 listopada 2008(dts))

Jądro

mikrojądro

Środowisko pracy

wiersz poleceń

Licencja

Microsoft Research License

Strona internetowa

Singularity – nazwa projektu badawczego przedsiębiorstwa Microsoft, którego celem jest stworzenie systemu operacyjnego opartego na mikrojądrze i stanowiącego podstawę dla bardziej niezawodnej platformy systemowej oraz aplikacyjnej.

Wprowadzenie[edytuj | edytuj kod]

Twórcy systemu Singularity postanowili zaniechać używania sprzętowych systemów ochrony w komputerze, takich jak oddzielne przestrzenie adresowe, czy poziomy ochrony procesora, na rzecz programowej ochrony systemu i procesów (ang. software isolated processes). Możliwe jest to dzięki kompilacji programów i większości samego systemu do bezpiecznego kodu zarządzanego (ang. safecode). System operacyjny jest w stanie zweryfikować (udowodnić) poprawność takiej kompilacji podczas uruchamiania programu (instalowania w pamięci), natomiast po jego uruchomieniu kod aplikacji samodzielnie kontroluje poprawność pracy, w tym poprawność wskaźników pamięci. W większości przypadków kod kontrolny może być usunięty (zoptymalizowany) jeśli kompilator i weryfikator stwierdzi, że nigdy nie dojdzie do błędu. Wymiana komunikatów odbywa się poprzez tzw. exchange heap, który pozwala na przenoszenie danych pomiędzy procesami w bezpieczny i wydajny sposób. Exchange heap ma uproszczony i restrykcyjny sposób użycia oraz półautomatyczne zarządzanie deallokacjami. Programy działające pod kontrolą Singularity mogą działać w ramach tej samej sprzętowej przestrzeni adresowej i w najwyższym poziomie ochrony procesora (ring 0).

Większość systemu, w tym także większość jądra została napisana w języku C# oraz Sing#, podstawą działania systemu i aplikacji jest kompilator natywnego kodu Bartok, będący elementarną częścią Singularity. Dodatkowo każdy proces posiada oddzielny stabilny garbage collector. Jedynie niewielkie fragmenty systemu, w najniższym poziomie abstrakcji i odpowiedzialne za wczesny rozruch, napisane zostały w językach asemblera, C++, czy C.

W późniejszej fazie rozwoju, do Singularity został dodany mechanizm wykorzystania sprzętowego mechanizmu ochrony. System może pogrupować procesy i każdej z grup przydzielić osobną przestrzeń adresową. Umożliwia to uruchamianie aplikacji pisanych w konwencjonalnych językach programowania, jak C, w tym aplikacji już istniejących.

Wydajność[edytuj | edytuj kod]

Dzięki wyłączeniu sprzętowych systemów ochrony, system Singularity zyskał na wydajności. Operacje takie jak przełączanie zadań, czy wywołanie systemowe (zajmujące do kilkuset cykli na procesorach x86), dzięki brakowi konieczności zmiany przestrzeni adresowej i trybu ochrony procesora wykonywane są znacznie szybciej niż w systemach takich jak np. Windows.

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]