osdev.labedz.org

Ogólna architektura tworzonego systemu

Chcemy stworzyć przykładowy system operacyjny, tak więc powinien on posiadać podstawowe mechanizmy typowych systemów operacyjnych, na których przykładzie można prześledzić proces tworzenia i zasadę ich działania. Podstawowym minimum jest możliwość pracy wieloprocesowej. Następstwem tej decyzji jest potrzeba zawarcia w systemie podstawowych elementów ochrony zasobów - ochrona kodu oraz danych poszczególnych procesów, odseparowanie ich od siebie, oraz uniemożliwienie wpływu procesów na jądro systemu. Aby te wytyczne mogły być spełnione praktycznie, należy wykorzystać sprzętowy mechanizm ochrony zasobów zawarty w procesorze Intel386. To natomiast implikuje użycie trybu chronionego procesora.

Typowy, w pełni funkcjonalny system operacyjny, poza elementami niezbędnymi, które są zawarte w jądrze systemu, składa się też z wielu, ściśle połączonych ze sobą modułów, takich jak np. obsługa urządzeń zewnętrznych, system plików, czy obsługa protokołów sieciowych. Implementacja ich wszystkich wiąże się jednak z ogromnym nakładem pracy, a zagadnienia ich konstrukcji znacznie wykraczają poza ramy tej strony. Implementowany system operacyjny tych części nie posiada. Ponieważ problematyczne jest uruchamianie systemu bez dostępu do pamięci masowej, wykorzystane zostały pewne 'sztuczki', które w sposób tymczasowy, umożliwiają ten problem obejść.

Architektura tworzonego systemu przedstawia się następująco:

  • system wieloprocesowy z wywłaszczeniem procesów
  • ochrona procesów
  • ochrona danych, kodu oraz zasobów sprzętowych (porty wejścia/wyjścia)
  • praca w trybie chronionym procesora Intel386
  • kod w języku assemblera i języku C
  • brak obsługi urządzeń zewnętrznych (w tym pamięci masowych)
  • brak systemu plików, obsługi sieci i innych