Nie tylko Windows 7 - Barrelfish i Helios

| Technologia
Microsoft

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.

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.

Barrelfish Helios system operacyjny jądro satelitarne przyszłość Microsoft Windows 7