close

Genod

Przejdź do nawigacji Przejdź do wyszukiwania
genod
Tekst logo Genode.png
2018-09-21-rzeźba-vc.png
System komputerowy Sculpt oparty na Genode
Informacje ogólne
typ programu darmowe oprogramowanie
deweloper Genode Labs i in.
Model rozwoju Otwarte źródło
Licencja AGPLv3
Rzeczywisty stan W fazie rozwoju, stabilna wersja
Specyfikacja
Zaplanowano w C++ i inne
Jądro NOVA, [ 1 ]​ Mikrojądro Genode, [ 2 ] ​SeL4 , Linux , Fiasco OC , Fiasco , OkL4 , Pistacja
typ rdzenia mikrojądra
Obsługiwane platformy x86 , x86-64 , [ 3 ] ARM , RISC-V [ 4 ]
Wersje
Najnowsza stabilna wersja 08.19 ( info ) ( 28 sierpnia 2019 (3 ​​lata, 1 miesiąc i 21 dni))
Spinki do mankietów

Genode [ 5 ] ​[ 6 ] ​[ 7 ]​ to bezpłatne środowisko systemu operacyjnego typu open source , które składa się z warstwy abstrakcji mikrojądra i kolekcji komponentów przestrzeni użytkownika. Projekt wyróżnia się jako jeden z niewielu systemów operacyjnych typu open source, który nie jest inspirowany komercyjnym systemem, takim jak Unix . Filozofia projektu polega przede wszystkim na tym, że niewielka baza niezawodnych komputerów jest niezbędna w systemie operacyjnym zorientowanym na bezpieczeństwo.

Genode może być używany jako podstawa dla systemów operacyjnych komputerów stacjonarnych [ 8 ] ​[ 9 ]​ lub tabletów [ 10 ]​ lub jako monitor maszyny wirtualnej dla systemów operacyjnych gościa. Framework został wykorzystany jako niezawodny składnik bezpiecznych systemów wirtualizacji dla architektur x86 [ 11 ] i ARM . [ 12 ]

Biorąc pod uwagę niewielki rozmiar bazy kodu , Genode jest elastyczną alternatywą dla bardziej złożonych systemów operacyjnych opartych na Uniksie. Z tego powodu środowisko zostało wykorzystane jako podstawowy system do badań w obszarach takich jak wirtualizacja [ 13 ] , komunikacja międzyprocesowa , [ 14 ] izolacja stosu IP , [ 15 ] monitorowanie [ 16 ]​ i rozwój oprogramowania . [ 17 ] ​[ 18 ]

Historia

Genode został pierwotnie opracowany na Politechnice w Dreźnie jako część raportu badawczego dotyczącego architektury systemu operacyjnego o nazwie „Bastei”. [ 19 ] Raport skoncentrował się na określeniu możliwości zastosowania systemu operacyjnego opartego na komponentach, wykorzystującego zabezpieczenia oparte na tym, co nazywamy „zdolnościami”. Raport został częściowo umotywowany spostrzeżeniami uzyskanymi podczas równoczesnych badań nad mikrohiperwizorami L4 . [ 20 ] Ze względu na sukces wcześniejszego prototypu, autorzy raportu założyli firmę Genode Labs, której celem było rozwijanie Bastei pod nazwą Genode OS Framework.

Wersje

Projekt jest rozwijany jako open source na warunkach Affero General Public License , przy czym podmiot komercyjny może oferować alternatywne licencje. Nowe wersje są wydawane co trzy miesiące dla zmian w systemie ABI i API oraz jako dokumentacja postępu. Środowisko jest dostępne w formie kodu źródłowego, a od wersji 18.02 dostępna jest również pochodna ogólnego przeznaczenia o nazwie Sculpt z wdrożeniem binarnym.

Cechy architektoniczne

Genode opiera się na ogólnej filozofii mikrojądra – im mniejszy i prostszy kod, tym łatwiej można go zweryfikować pod kątem niezawodności i poprawności. Genode rozszerza tę filozofię na przestrzeń użytkownika, komponując złożone aplikacje z małych komponentów. Każdy składnik istnieje w ścisłej hierarchii relacji „rodzic-dziecko”. Dowolny składnik działający jako element nadrzędny może zastosować do swoich elementów podrzędnych zasady komunikacji i zasobów między elementami. Ta hierarchiczna konstrukcja zapewnia intuicyjne podziały na sekcje i deeskalację uprawnień, ponieważ wyspecjalizowane podsystemy są zagnieżdżone w bardziej ogólnych podsystemach, łagodząc tak zwany „problem zdezorientowanego zastępcy”, który jest powszechny w systemach ze scentralizowaną polityką lub zasadą superużytkownika .

Krytyka

C++

Genode często był krytykowany za wybór C++ jako języka implementacji (inne systemy operacyjne korzystające z C++ to BeOS , Fuchsia , Ghost, [ 21 ] Haiku , IncludeOS, [ 22 ] OSv , Palm OS , ReactOS , Syllable i główne silniki nawigacyjne). Krytycy ci często twierdzą, że C++ jest nierozsądnym wyborem do implementacji bibliotek systemowych i interfejsów API ze względu na nieodłączną złożoność C++ i trudności w analizie kodu, aby działał poprawnie. Chociaż Genode używa wielu dziedziczeń i szablonów w swojej bibliotece systemowej, korzystanie z Biblioteki Standardowej C++ jest niedozwolone, a funkcje, które opierają się na niejawnym stanie globalnym, takie jak pamięć lokalna wątku i alokator globalny, zostały usunięte. . Nie jest możliwe wykonanie pełnej statycznej analizy C++, jednak projekt Genode publikuje testy jednostkowe do analizy empirycznej.

XML

Komponenty Genode używają i publikują stan jako serializowane dane strukturalne XML , w przeciwieństwie do modeli tekstowych pochodnych Unixa. XML jest krytykowany za złożone funkcje, nieefektywną reprezentację i względną trudność ręcznego edytowania dokumentów XML. Środowisko Genode efektywnie wykorzystuje XML we wszystkich swoich komponentach, ponieważ program łatwo generuje i interpretuje XML, a także jest w stanie zrozumieć i edytować go ręcznie. Dialekt używany przez Genode jest prostym podzbiorem języka XML, jednak nowi użytkownicy często uważają, że edytowanie XML jest żmudne i podatne na błędy. Ponieważ Genode nie opiera się na żadnych specjalnych funkcjach XML, język znaczników danych Genode można zastąpić prostszymi, takimi jak JSON lub sexps . Jednak nie ogłoszono jeszcze planów migracji.

Lokalna przestrzeń nazw

Genode nie ma globalnej przestrzeni nazw. Nie ma globalnego systemu plików ani dzienników procesów ani terminali komunikacji między procesami. Jest to w przeciwieństwie do systemów takich jak UNIX, które oferują wszechobecny system plików i pozwalają kontekstowi root na arbitralną obsługę dowolnego procesu w systemie. Jawne deklarowanie ścieżek i uprawnień do składników może wydawać się, że wymaga więcej pracy w porównaniu z systemem UNIX. Jednak podział na sekcje zarządzania umożliwia zarządzanie podsystemami przez wzajemnie niepewnych administratorów na tej samej maszynie bez uciekania się do wirtualizacji, która jest powszechną metodą izolacji.

Rzeźba

Projekt Genode publikuje komputerowy system operacyjny o nazwie Sculpt, przeznaczony dla współczesnego użytkownika laptopa. [ 23 ] Sculpt to mały system podstawowy z automatycznym wykrywaniem i konfiguracją urządzeń, kilkoma graficznymi interfejsami użytkownika i interfejsem do menedżera pakietów Genode. System nie zawiera pełnego środowiska graficznego, ale zamiast tego wymaga od użytkowników wdrożenia maszyn wirtualnych obsługujących tradycyjne systemy operacyjne w celu uzyskania w pełni funkcjonalnego pulpitu. Sculpt różni się od Genode OS tym, że w dużej mierze opiera się na dynamicznej rekonfiguracji przy użyciu uprzywilejowanych komponentów kontroli, w przeciwieństwie do wyspecjalizowanych systemów, które mają statyczne zasady.

Zobacz także

  • QNX , zastrzeżony system operacyjny podobny do systemu UNIX, obsługiwany przez mikrojądro.
  • Qubes OS , komputerowy system operacyjny z zabezpieczeniami dzięki wirtualizacji.
  • Zasada najmniejszego przywileju .

Referencje

  1. ^ "Architektura wirtualizacji NOVA OS" . 
  2. Stein, Marcin. "Jądro w bibliotece, FOSDEM 2017" . 
  3. Larabel, Michael. „Genode opracowuje multiplekser GPU dla sprzętu graficznego Intela” . Phoronix . 
  4. ^ „Genode OS dodaje obsługę RISC-V” . 
  5. ^ „Wprowadzenie Genode OS Framework” . archiwum.fosdem.org/2012 . 
  6. ^ „Systemy operacyjne oparte na L4” . L4hq.org . Zarchiwizowane z oryginału 14 czerwca 2018 r . Źródło 25 lutego 2019 . 
  7. Larabel, Michael. „Redox OS, MINIX, Hurd i Genode też mieli swój czas w FOSDEM” . Phoronix . 
  8. Baader, Hans-Joachim. „Genode 2018.2 z systemem Sculpt OS” . pro-linux.de . 
  9. Larabel, Michael. „Sculpt ma być systemem operacyjnym ogólnego przeznaczenia zbudowanym na szczycie Genode” . 
  10. Tarasikow, Aleksander (11 maja 2013 r.). „Przenoszenie Genode na komercyjny sprzęt” . allsoftwaresucks.blogspot.com . 
  11. ^ „Muen — jądro separacji x86/64 zapewniające wysoką pewność” . 
  12. Williams, John. „Kontrola danych z poziomu bezpieczeństwa Twojego zaufanego środowiska wykonawczego” . 
  13. ^ „Ambasady: radykalna refaktoryzacja sieci” . USENIX. 
  14. Martin Wegner, Sönke Holthusen (11 grudnia 2014). «Specyfikacja umowy i język» . ccc-projekt.org . Zarchiwizowane z oryginału w dniu 27 marca 2019 r . Źródło 25 lutego 2019 . 
  15. Hammad, Mohammad (6 stycznia 2016 r.). „Moduł Bezpiecznej Komunikacji CCC” . ccc-projekt.org . Zarchiwizowane z oryginału 23 stycznia 2019 r . Źródło 25 lutego 2019 . 
  16. B.PRUTHIVIRAJ, GSMADHUSUTHUN, S.VIJAYASARATHY, K.CHAKRAPANI. „BEZPIECZNY SYSTEM OPERACYJNY OPARTY O MIKROJEDRZEŃ Z WYKORZYSTANIEM RAM GENODOWYCH” . jatit.org . 
  17. Hahne, Ludwig. „Empiryczne porównanie SCons i GNU Make” . 
  18. Millo-Sánchez, Reinier & Paz Rodríguez, Waldo & Fajardo-Moya, Alexis. „Genode OS Framework, ramy dla rozwoju systemów wbudowanych” . Brama Badań . 
  19. ^ „Raport techniczny TU Drezno TUD-FI06-07” . 
  20. ^ „Mikrohiperwizor NOVA” . 
  21. ^ „Ghost, hobbystyczny system operacyjny dla platformy Intel x86” . 
  22. ^ „IncludeOS, system operacyjny napisany jako biblioteka” . 
  23. ^ „Sculpt, ogólnodostępny system operacyjny o otwartym kodzie źródłowym” .