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 [
PDF] 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 [
PDF]. 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.
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