Singularity

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Ujednoznacznienie Ten artykuł dotyczy systemu operacyjnego. Zobacz też: gra komputerowa Singularity.
Singularity
system operacyjny
Singularity v1.png
Interfejs programu
Producent Microsoft Corporation
Platforma sprzętowa x86
Napisane w Asembler, C, C++, C#, Sing#
Aktualna wersja stabilna 2.0 (14 listopada 2008)
Licencja Microsoft Research License
Strona projektu

Singularity - nazwa projektu badawczego firmy 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 ("Software-Isolated Processes" - SIP). 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 (woptymalizowany) jeśli kompilator i weryfikator stwierdzi, że nigdy nie dojdzie do błędu. Wymiana komunikatów odbywa się poprzez 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.

Microsoft Midori[edytuj | edytuj kod]

Singularity i Windows Cairo ma być najprawdopodobniej częścią systemu Microsoft Midori[1]

Linki zewnętrzne[edytuj | edytuj kod]

Przypisy