Amoeba (system operacyjny)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Amoebarozproszony, oparty na mikrojądrze, system operacyjny ogólnego przeznaczenia.

Nazwa tego systemu oznacza amebę, co oddaje jego elastyczną naturę.

Historia[edytuj | edytuj kod]

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 | edytuj kod]

  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 | edytuj kod]

  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 | edytuj kod]