Amoeba
Z Wikipedii
Amoeba – rozproszony, oparty na mikrojądrze, system operacyjny ogólnego przeznaczenia. Nazwa tego systemu oznacza po polsku amebę i doskonale oddaje jego elastyczną naturę.
Pierwsze badania, które przyczyniły się do jej powstania zapoczątkowano w 1980 r. na Vrije Universiteit w Amsterdamie. Badania te czynione były przy współudziale Centrum voor Wiskunde en Informatica. Amoeba ujrzała światło dzienne w 1987 r. W jej rozwój zaangażowała się finansowo Unia 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.
[edytuj] Cele projektowe
- 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.
- 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.
- Współbieżność - realizowana zarówno w obrębie puli procesorów (procesy), jak i pojedynczego procesu (wątki).
- Wysoka wydajność - osiągnięta przede wszystkim poprzez zerwanie z istniejącymi standardami na rzecz nowatorskich, nie obciążonych zaszłościami rozwiązań.
[edytuj] Implikacje celów projektowych
- 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.
- 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ą.
- Ł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.
- Łatwość tworzenia oprogramowania użytkowego analogiczna do systemów nierozproszonych (w razie konieczności).
- Doskonałe pole doświadczalne do testowania nowych technik związanych z programowaniem rozproszonym (w razie potrzeby).
- Efektywność systemu a co za tym idzie i wygoda użytkowania (np. brak irytacji powolnym działaniem).