Osobliwość (system operacyjny) - Singularity (operating system)
Deweloper | Korporacja Microsoft |
---|---|
Napisane w | Język asemblera , C , C ++ , C # , Sing # |
Rodzina systemów operacyjnych | Systemy językowe |
Stan pracy | Przerwane |
Model źródłowy | Dostępne źródło (za pośrednictwem inicjatywy Shared Source ) |
Pierwsze wydanie | 2007 |
Wersja ostateczna | 2.0 / 14 listopada 2008 |
Dostępne w | język angielski |
Platformy | x86 |
Typ jądra | Oparty na języku mikrojądra |
Domyślny interfejs użytkownika | Interfejs linii komend |
Licencja | Licencja Microsoft Research |
Oficjalna strona internetowa | research |
Singularity to eksperymentalny system operacyjny (OS), który został zbudowany przez Microsoft Research w latach 2003–2010. Został zaprojektowany jako wysoce niezawodny system operacyjny, w którym jądro , sterowniki urządzeń i oprogramowanie zostały napisane w kodzie zarządzanym . Zabezpieczenia wewnętrzne wykorzystują bezpieczeństwo typu zamiast sprzętowej ochrony pamięci .
Operacja
Najniższy poziom x86 przerwanie kod wysyłkowy jest napisany w asemblerze i C . Gdy ten kod wykona swoje zadanie, wywołuje jądro, którego system wykonawczy i garbage collector są napisane w Sing # (rozszerzona wersja Spec # , która sama w sobie jest rozszerzeniem C # ) i działa w trybie niezabezpieczonym. Warstwa abstrakcji sprzętu została napisana w C ++ i działa w trybie chronionym. Istnieje również kod C do obsługi debugowania. Podstawowy system wejścia / wyjścia ( BIOS ) komputera jest wywoływany podczas 16-bitowego etapu ładowania w trybie rzeczywistym ; raz w trybie 32-bitowym , Singularity nigdy więcej nie wywołuje BIOS-u, ale wywołuje sterowniki urządzeń napisane w Sing # . Podczas instalacji kody operacyjne Common Intermediate Language (CIL) są kompilowane do rozkazów x86 przy użyciu kompilatora Bartok .
Projekt bezpieczeństwa
Osobliwość to system operacyjny z mikrojądrem . W przeciwieństwie do większości historycznych mikrojąder, jego komponenty działają w tej samej przestrzeni adresowej ( procesie ), która zawiera procesy izolowane programowo (SIP). Każdy SIP ma własne dane i układ kodu i jest niezależny od innych SIP. Te protokoły SIP zachowują się jak normalne procesy, ale pozwalają uniknąć kosztów przełączania zadań.
Ochronę w tym systemie zapewnia zestaw reguł zwanych niezmiennikami, które są weryfikowane przez statyczną analizę programu . Na przykład w stanach niezmiennych pamięci nie może być żadnych odsyłaczy (ani wskaźników pamięci) między dwoma SIP; komunikacja między SIP odbywa się za pośrednictwem kanałów komunikacyjnych wyższego rzędu zarządzanych przez system operacyjny. Niezmienniki są sprawdzane podczas instalacji aplikacji. (W Singularity instalacja jest zarządzana przez system operacyjny).
Większość niezmienników opiera się na korzystaniu z bezpieczniejszych języków zarządzanych w pamięci , takich jak Sing #, które mają moduł odśmiecania pamięci , nie zezwalają na dowolne wskaźniki i pozwalają na weryfikację kodu w celu spełnienia określonej polityki bezpieczeństwa komputera .
Stan projektu
Singularity 1.0 został ukończony w 2007 roku. Singularity Research Development Kit (RDK) został wydany na licencji współdzielonego źródła, umożliwiając akademickie niekomercyjne wykorzystanie i jest dostępny w CodePlex . Wersja 1.1 została wydana w marcu 2007 r., A wersja 2.0 została wydana 14 listopada 2008 r.
Podobne projekty
- Inferno , stworzony po raz pierwszy w 1995 roku na podstawie Planu 9 firmy Bell Labs . Programy są uruchamiane na maszynie wirtualnej i pisane w języku Limbo zamiast C # z CIL.
- JavaOS , starszy system operacyjny oparty na tej samej koncepcji co Singularity.
- JNode, system operacyjny podobny w koncepcji do Singularity, ale z Javą zamiast C # z CIL.
- JX , system operacyjny Java, który podobnie jak Singularity wykorzystuje bezpieczeństwo typów zamiast sprzętowej ochrony pamięci .
- Phantom OS , zarządzany system operacyjny.
- SharpOS , dawny projekt open source , mający na celu napisanie systemu operacyjnego w języku C #.
- MOSA, kompilator .NET Framework i system operacyjny korzystający z języka C #.
- Cosmos , zestaw narzędzi do tworzenia bloków konstrukcyjnych typu open source do tworzenia systemu operacyjnego przy użyciu języka C #
- TempleOS , system operacyjny ring-0 typu open source z kompilatorem JIT.
Zobacz też
- System oparty na języku , ogólny projekt jądra z wykorzystaniem ochrony opartej na języku zamiast ochrony sprzętowej.
- Spec # , język programowania wywodzący się z C # przez dodanie projektu podobnego do Eiffla zgodnie z umową .
- Sing # , język programowania wywodzący się ze Spec # przez dodanie kanałów i konstrukcji niskiego poziomu; używany do budowania Osobliwości.
- Midori , opracowany przez Microsoft system operacyjny oparty na mikrojądrze, uważany przez niektórych przedstawicieli prasy informatycznej za możliwego następcę Microsoft Windows . Oparte na Osobliwości i związane z nią.
Bibliografia
Linki zewnętrzne
- Oficjalna strona internetowa
- Motywacja do projektowania osobliwości i przegląd projektu osobliwości
- Osobliwy kod źródłowy w CodePlex
- Osobliwość: system operacyjny do badań napisany w C # , wywiad zespołu Channel 9 z Jimem Larusem i Galenem Huntem (wideo i wątek)
- Singularity III: Revenge of the SIP , wywiad zespołu Channel 9 z trzema badaczami z Singularity Project Team (wideo i wątek).
- Singularity IV: Return of the UI , aktualnie działające demo Singularity (wideo i wątek).
- Singularity Revisited , wywiad zespołu Channel 9 z 4 badaczami z Singularity Project Team (wideo i wątek)