Singularity
Z Wikipedii
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.
[edytuj] Wprowadzenie
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ć 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. 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.
Większość systemu, w tym także większość jądra została napisana w języku C#, podstawą działania systemu i aplikacji jest stabilny kolekcjoner nieużytków (ang. garbage collection), będący elementarną częścią Singularity. 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ą.
[edytuj] Wydajność
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, dzięki braku konieczności zmiany przestrzeni adresowej i trybu ochrony procesora wykonywane są znacznie szybciej niż w systemach takich jak np. Windows.