r   e   k   l   a   m   a
r   e   k   l   a   m   a

Dziś już tylko Windows? W Microsofcie na Midori i inne innowacyjne systemy nie ma miejsca

Strona główna AktualnościOPROGRAMOWANIE

Nie da się ukryć, że choć Windows 10 jest dobrym systemem operacyjnym, to jest systemem bardzo wtórnym, oprócz nowego modelu sterowników i interfejsu grafiki 3D nie przynoszącym żadnych realnych innowacji względem znanych wcześniej „okienek”. Czy Microsoft jest dziś jednak w ogóle w stanie pokazać coś faktycznie innowacyjnego w tej dziedzinie? Historia systemu Midori pokazuje, że nawet najciekawsze pomysły inżynierów i architektów mogą zostać zmarnowane, gdy zarządzanie nimi zostanie oddane pozbawionym wiedzy technicznej menedżerom.

O Midori usłyszeć można było po raz pierwszy w 2008 roku. Bazujący na mikrojądrze rozproszony system, powstający z myślą o chmurach, miał wykorzystywać zarówno kod zarządzany jak i niezarządzany, udostępniając aplikacjom warstwę abstrakcji sprzętu i obiektowe interfejsy programowania. Nacisk położono na współbieżność i bezpieczeństwo. Nowe pomysły pojawiały się na każdym poziomie, oprócz systemu obejmowały także kompilatory, języki programowania, usługi systemowe, aplikacje – i Microsoft był wówczas najwyraźniej dumny, że tak interesujący projekt zrodził się w jego laboratoriach.

A potem nastała cisza. Menedżerowie z Redmond zaczęli pomniejszać wagę projektu, a nawet wręcz ukrywać jego istnienie, mimo że pracy zespół Midori nie przerwał. Od czasu do czasu jedynie niektórzy inżynierowie coś tam wspominali o swoich ukrytych projektach, ale nic z tego nie wynikało. Co więcej, w ciągu kolejnych lat coraz więcej ludzi związanych z Midori zaczęło opuszczać Microsoft. Gdy w końcu w Redmond doszło do restrukturyzacji, w wyniku której projekt z Microsoft Research został przeniesiony do Operating Systems Group, ustalono oficjalne stanowisko firmy: doświadczenia wyniesione z Midori są wykorzystywane w nowych produktach Microsoftu. Czy można jednak spodziewać się innej wypowiedzi działu PR?

r   e   k   l   a   m   a

Znacznie więcej dowiedzieć się można z opowieści tych, którzy w Midori zanurzyli swoje ręce. Na początku listopada swojego bloga o tym systemie i pracach nad nim uruchomił Joe Duffy, obecny szef grupy odpowiedzialnej za kompilatory i języki programowania w Microsofcie. Wspomina on, że pracował nad Midori od 2009 roku, zajmując się wszystkim tym, co wiąże się z doświadczeniem programisty – od języków i kompilatorów po środowiska IDE. Opracowane wtedy koncepcje pełnej asynchroniczności, mechanizmów zero-copy, bezpieczeństwa bazującego na możliwościach i bezpiecznej współbieżności faktycznie próbuje się z powrotem wprowadzić do oprogramowania z Redmond, jednak już nie do tego w C#, lecz co może wydawać się zaskakujące, do normalnego C++. Co najważniejsze jednak, jak pisze Duffy, Midori pozwoliło na stworzenie w Microsofcie zwyczaju technicznych dyskusji i obaliło fałszywą dychotomię pomiędzy wydajnością i bezpieczeństwem. Choćby z tego powodu warto przeczytać jego artykuł o trzech rodzajach bezpieczeństwa.

O swoich doświadczeniach z Midori piszą też inni. Ich wspomnienia znalazła ostatnio znana blogerka Mary Jo Foley. Ciekawa jest historia Davida Tarditi, który prowadził zespół odpowiedzialny za narzędzia systemowe. Wspomina on, że zaczął z czterema ludźmi, by skończyć z całkiem sporym zespołem. Wspomina on, że udało się uzyskać kompletny system w C#, który osiągał wydajność porównywalną z tymi pisanymi w C czy C++, jednak bez trapiących ich problemów. Pojawił się wtedy też kompilator Bartok dla języków zarządzanych, który generował kod tak wydajny i zoptymalizowanych, że mógł on konkurować z kodem generowanym przez produkcyjne kompilatory C/C++. Z tego też urodził się język M#, rozszerzenie C#, który pomyślano jako najniższego poziomu język, jakiego programista aplikacji miałby kiedykolwiek potrzebować, będący jednocześnie wystarczająco bezpiecznym i produktywnym, by pisać w nim nawet wysokopoziomowe systemy, takie jak usługi webowe.

Z kolei Swietłana Tumanowa zajmowała się rozproszonym systemem plików i silnikiem obliczeniowym dla języków zarządzanych, który działałby w nowym systemie, a także przenoszeniem istniejącego kodu z C++ i projektowaniem komponentów nowej przeglądarki internetowej dla Midori. Z kolei Leif Kornstaedt wspominał o awangardowych mechanizmach komunikacji międzyprocesowej, optymalizacjach ahead-of-time dla kodu zarządzanego, współbieżnym zbieraniu nieużytków czy asynchronicznych modelach wykonywania.

Dziś w Microsofcie już dla innego niż Windows systemu operacyjnego nie ma miejsca. Joe Duffy, pracujący przecież w tej firmie na wysokim stanowisku przyznaje, że i wtedy, gdy pracowano nad nim aktywnie, też nie bardzo wiedziano, co dalej będzie. Żałuje on, że od samego początku projektu nie otworzono, udostępniając go na otwartej licencji, tak by internetowa merytokracja mogła odpowiednio ocenić wartość Midori. W korporacyjnym projekcie decyzje nie zapadają tylko w oparciu o techniczne kwestie, ba, co gorsza nawet często nie o biznesowe kwestie chodzi (ze słów Duffe'a należy się więc domyślać, że chodziło w wypadku Midori też o kwestie personalne i polityczne).

Nie jest to jedyny interesujący projekt badawczy Microsoftu, który gdzieś tam po drodze zaginął. Ostatnia wersja otwartego mikrojądra Singularity została wydana w 2008 roku, o pracach nad Drawbridge, systemową biblioteką dla Windows, mającą implementować koncepcję egzojądra w „okienkach” ucichło w 2011 roku, w okolicach 2010 roku zapomniano zaś o Gazelle (vel ServiceOS), mającą być sposobem na efektywe i bezpieczne oddawanie zasobów systemowych aplikacjom przeglądarkowym (coś na kształt ChromeOS-a). Czy ten dzisiejszy Microsoft stał się po prostu nudniejszy, niż w poprzedniej epoce?

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.