Amoeba (system operacyjny)

rozproszony, oparty na mikrojądrze, system operacyjny ogólnego przeznaczenia;

Amoebarozproszony, oparty na mikrojądrze, system operacyjny ogólnego przeznaczenia. Nazwa tego systemu oznacza amebę, co oddaje jego elastyczną naturę.

Historia edytuj

Pierwsze badania, które przyczyniły się do jej powstania zapoczątkowano w 1980 r. na Vrije Universiteit Amsterdam. Były one czynione przy współudziale Centrum voor Wiskunde en Informatica w Amsterdamie. Amoeba ujrzała światło dzienne w 1987 r. W jej rozwój zaangażowała się finansowo Wspólnota Europejska oraz, naukowo, partnerzy z Anglii i Norwegii. Rozwój Amoeby zatrzymał się w 1998 r. na wersji 5.3. W tym też czasie stała się ona wolnym oprogramowaniem.

Ostatnia wersja Amoeby posłużyła jako baza do stworzenia FSD Amoeby, znacząco odświeżonej i poprawionej jej odmiany. Najnowsza i prawdopodobnie ostateczna wersja FSD Amoeby nosi oznaczenie „2002B”. Została ona wydana w 2002 r., po czym wstrzymano prace rozwojowe. FSD Amoeba jest uznawana za najszybszy, dostępny dla każdego, rozproszony system operacyjny z prawdziwego zdarzenia. Jej bezpośrednimi sukcesorami są nieukończone tandem VX-Amoeba oraz VAM – kluczowy składnik VAMNET-u.

Celem uniknięcia żmudnego pisania wielu użytecznych programów (szczególnie w początkowym okresie istnienia systemu), Amoebę wyposażono w częściową emulację systemu UNIX na poziomie kodu źródłowego.

Z myślą o Amoebie stworzono język programowania Python. Ważnym językiem programowania związanym z Amoebą jest także Orca.

Cele projektowe edytuj

  1. rozproszenie – podział zasobów i procesów systemu operacyjnego pomiędzy wiele odrębnych komputerów; ponieważ ilość zasobów systemowych nie jest dana z góry, a decydują o niej (z reguły w sposób bierny) połączone w system komputery, sensowniej jest mówić o rozproszeniu jako o możliwości połączenia w jedną całość zasobów wielu odrębnych komputerów, swego rodzaju „zespoleniu”. Zasadniczymi elementami związanym z rozproszonym charakterem Amoeby są model puli procesorów oraz protokół FLIP.
  2. przezroczystość – sprawienie, by utworzona całość zasobów była spójna, tzn. by praca na zespole połączonych ze sobą komputerów sprawiała na jego użytkownikach wrażenie pracy na pojedynczym komputerze z systemem z dzieleniem czasu. Tutaj także kluczową rolę odgrywa protokół FLIP.
  3. współbieżność – realizowana zarówno w obrębie puli procesorów (procesy), jak i pojedynczego procesu (wątki).
  4. wysoka wydajność – osiągnięta przede wszystkim poprzez zerwanie z istniejącymi standardami na rzecz nowatorskich, nie obciążonych zaszłościami rozwiązań.

Implikacje celów projektowych edytuj

  1. Niskie koszty (tzn. przy zachowaniu wysokiego współczynnika wydajności do ceny) uzyskania dużej, zagregowanej mocy obliczeniowej poprzez wykorzystanie standardowych, relatywnie tanich komputerów.
  2. Wysoka niezawodność i dostępność; gdy system komputerowy tworzy wiele komputerów, uszkodzenie któregoś (czy nawet kilku) z nich zwykle odbija się tylko obniżeniem wydajności systemu jako całości, bez utraty ciągłości działania; z powodzeniem można stosować nadmiarowość, by nawet w takiej kryzysowej sytuacji zachować potrzebną moc obliczeniową.
  3. Łatwość naprawy, konserwacji, modernizacji i rozbudowy (także stopniowej) systemu komputerowego poprzez możliwość, nie wpływającego na ciągłość działania i praktycznie niezauważalnego dla użytkowników, usuwania (ewentualnie czasowego odłączania) i dodawania komputerów.
  4. Łatwość tworzenia oprogramowania użytkowego analogiczna do systemów nierozproszonych (w razie konieczności).
  5. Doskonałe pole doświadczalne do testowania nowych technik związanych z programowaniem rozproszonym (w razie potrzeby).
  6. Efektywność systemu a co za tym idzie i wygoda użytkowania (np. brak irytacji powolnym działaniem).

Linki zewnętrzne edytuj