BeOS swego czasu stanowił dość istotne zagrożenie dla systemów Microsoftu. W porównaniu do windowsów z rodziny 9x był szybszy, bardziej elastyczny i stabilny. Próba konkurowania z gigantem, choćby tylko w dziedzinie obsługi multimediów, skończyła się jednak bardzo niedobrze dla Be Inc. Microsoft, często przy pomocy kontrowersyjnych praktyk, wykończył obiecującego konkurenta. Haiku, jako system wzorujący się na BeOSie, ma z nim sporo wspólnego. Poznanie faktów przedstawionych w przedmiotowym tekście pozwoli więc na lepsze zrozumienie idei, na jakich opierają się oba systemy.
BeOS, który zaistniał pod koniec lat dziewięćdziesiątych, wyróżniał się przede wszystkim filozofią, która zakładała maksymalną prostotę przy zachowaniu maksymalnej użyteczności. Nawet pisanie programów pod BeOSem jest łatwiejsze, aniżeli tworzenie aplikacji dla innych systemów. Uosobieniem tej filozofii była architektura BeOSa – oparta o mikrojądro (ang. microkernel).
Be Inc. odeszła już jakiś czas temu do historii. Teraz wydaje się, że cała nadzieja pozostaje w Haiku, które ma być opensourceową implementacją BeOSa, opartą na ideach (filozofii, architekturze) wzoru.
Poniżej przedstawię pokrótce architekturę BeOSa, którą najlepiej przedstawia następujący schemat – [patrz zdj. 1]. Tekst ten pozwoli na choćby informacyjne zapoznanie się z tematem.
Jak już było wspomniane architektura BeOSa oparta jest na mikrojądrze (może nie jest to książkowy microkernel – w niektórych źródłach jądro BeOSa określane jest jako 'hybrydowe' – stosując jednak pewne uproszczenia możemy przyjąć, że architektura BeOSa oparta jest właśnie na opisywanym mikrojądrze), które zawiera jedynie najbardziej niezbędne elementy – np. funkcje zarządzania wątkami, obsługa przerwań i wyjątków, komunikacja międzyprocesorowa. W przeciwieństwie do jądra monolitycznego, stosowanego np. w Linuxie wszystkie inne zadania wykonywane są przez oddzielne względem jądra moduły. Architektura taka czyni BeOSa systemem niesamowicie elastycznym – stosunkowo łatwo można dzięki niej modyfikować moduły, dodawać nowe funkcje do systemu czy też ułatwiać komunikację między programami. Wadą microkernela jest natomiast nieco mniejsza wydajność w niektórych zastosowaniach – właśnie dlatego Be Inc.(a teraz również Haiku), pracowało nad wprowadzeniem odwołań do funkcji sieciowych do jądra – pewne odejście od idei czystego mikrojądra miało na celu usprawnienie prac sieci w BeOSie (Zeta korzysta właśnie z opracowanego przez Be Inc. nowego środowiska sieciowego – BONE). W pozostałych zastosowaniach idea microkernela okazała się bardzo dobrze dopracowana przez Be – BeOS znacznie szybciej bootuje i ma szybszy czas reakcji niż jakikolwiek inny znany mi system na platformie x86.
Nad warstwą jądra i sterowników w BeOSie znajdują się serwery. Moduły te są w znacznym stopniu niezależne od jądra i ich zawieszenie się nie powoduje utraty stabilności całego systemu. Co więcej taka modułowa budowa pozwala na dość proste dodawanie nowych funkcji czy też tworzenie zamienników o większych możliwościach (już dziś możemy używać modułów z Haiku w BeOSie R5). Serwery wykonują określone dla nich funkcje np. serwer druku zgodnie z nazwą ma za zadanie umożliwić wydrukowanie jakiegoś dokumentu. Swoje zadania mają również inne moduły: serwer aplikacji, serwer mediów czy serwer usług sieciowych.
Na kolejną warstwę – BeOS API składają się tzw. Software Kits czyli narzędzia kontaktujące się z serwerami i żądające od nich wykonania określonych czynności. Przykładowo jeśli chcemy wydrukować jakiś dokument, to Application Kit kontaktuje się z serwerem druku, a ten z kolei z jądrem, które wybiera odpowiedni sterownik i przesyła dane do odpowiedniego urządzenia. Łatwo wywnioskować, że modułowa architektura o której mowa czyni system bardzo elastycznym – przykładowo rozumienie formatu graficznego jpeg, obsługiwane przez Translation Kit, może być wykorzystane przez każdą aplikację w systemie – nie trzeba jej implementować w każdej aplikacji oddzielnie!
Komentarze
Brak komentarzy.