Nie tylko Windows 7 - Barrelfish i Helios
Microsoft od dawna rozwija najróżniejsze eksperymentalne projekty, a część ich funkcji trafia później do produktów koncernu. Wystarczy przypomnieć tutaj o Singularity czy Midori. Tym razem firma ujawniła informacje o systemie operacyjnym Barrelfish, który jest rozwijany przez Microsoft Research Cambridge i Szwajcarski Federalny Instytut Technologiczny (ETH Zurich) oraz własnym projekcie Helios.
Barrelfish budowany jest od podstaw, a jego celem jest zapewnienie jak najlepszej obsługi platform wielordzeniowych. Na witrynie Barrelfish.org czytamy: motywują nas dwa blisko związane ze sobą trendy w projektowaniu sprzętu: po pierwsze, szybko rosnąca liczba rdzeni obliczeniowych, która stanowi wyzwanie pod względem skalowalności, po drugie, zwiększająca się różnorodność sprzętu, przez co system operacyjny musi zarządzań heterogenicznymi zasobami.
Barrelfish jest rozwijany od października 2007 roku. Teraz zdecydowano się na ujawnienie projektu i upublicznienie kodu, który zostanie udostępniony podczas październikowego ACM Symposium on Operating Systems Principles (SOSP). Kod zostanie udostępniony na licencji BSD. Jedynie te jego fragmenty, które nie są dziełem badaczy z Microsoftu i ETH będą udostępnione na odpowiednich opensource'owych licencjach. W przyszłości model licencyjny Barrelfish nie powinien ulec zmianie.
Jak podkreślają twórcy nowego OS-a, w chwili obecnej jest on przydatny tylko i wyłącznie dla badaczy specjalizujących się w rozwoju systemów operacyjnych. Brakuje mu większości funkcji obecnych we współczesnych systemach. Jest on jednocześnie różny zarówno od Windows i Linuksa. Będzie on systemem zdolnym do zarządzania komputerami przyszłości, których procesory mogą zawierać tysiące czy miliony rdzeni obliczeniowych. Co więcej, ma bez problemu poradzić sobie z obsługą rdzeni stworzonych w różnych architekturach.
Jednak na Barrelfish nie kończą się prace Microsoftu nad systemami przyszłości. Koncern idzie jeszcze dalej w projekcie Helios. Nie tylko ma on radzić sobie w heterogenicznym środowisku, ale wprowadza też pojęcie "jąder satelitarnych". Jak wyjaśniają twórcy Heliosa, obecne systemy operacyjne były projektowane z myślą o środowiskach homogenicznych, a więc są pisane pod specyficzną architekturę procesora.
Dlatego też Helios korzysta z "jąder satelitarnych", które mają być dla programistów "prostą, jednoznaczną warstwą abstrakcji systemu operacyjnego dla różnych architektur CPU i różnych wydajności". Jądro satelitarne to mikrojądro, które działa na każdym rodzaju architektury, a wszelkie sterowniki i usługi uruchamia w osobnych procesach.
W udostępnionym dokumencie czytamy: Helios to system operacyjny, którego celem jest uproszczenie tworzenia, stosowania i optymalizowania aplikacji dla heterogenicznych platform.[...] Helios korzysta z architektury NUMA. Każda z domen NUMA, na którą składa się zestaw procesorów i pamięci, uruchamia własne jądro satelitarne i niezależnie zarządza swoimi zasobami. Poprzez powielanie kodu jądra i wyraźne określenie wydajności każdej domeny NUMA, Helios powoduje, że jądro nie jest już wąskim gardłem, które utrudnia skalowanie w systemach wieloprocesorowych.
Jądra satelitarne to mikrojądra. Każde z nich składa się z zarządcy procesów, menedżera pamięci, menedżera przestrzeni adresowej oraz kodu koordynującego komunikację pomiędzy jądrami. Wszystkie inne usługi i sterowniki są uruchamiane w osobnych procesach. Pierwsze z jąder satelitarnych, służące do startu systemu, nazywane jest jądrem koordynującym. Wykrywa ono urządzenia programowalne i uruchamia kolejne jądra.
Oczywiście nie powinniśmy spodziewać się, że w najbliższym czasie pojawią się systemy Helios czy Barrelfish. To projekty badawcze nad systemami przyszłości, które mogą nigdy nie trafić na rynek w takiej formie, w jakiej są obecnie rozwijane.
Mariusz Błoński