Emulacja Linuksa w jądrze Windows NT, czyli jak Microsoft chce sobie zabrać aplikacje Androida
Od kilku dni programiści zainteresowani przeniesieniem swoichaplikacji z iOS-a na Windows mogą już korzystać z mostuWinObjC (do niedawna noszącego nazwę kodową ProjectIslandwood), dzięki któremu kod pisany w ObjectiveC na mobilnesystemy Apple'a będzie można zamienić w aplikację dostępną wWindows Store. Podobne rozwiązanie Microsoft przygotowuje dlapiszących oprogramowanie na Androida. Rozwijany w tym celu ProjectAstoria nie jest jeszcze publicznie dostępny, ale redaktorzy serwisuWMPowerUser zdobyli pierwszą wersję jego dokumentacjideweloperskiej. Jeśli obietnice Microsoftu się sprawdzą,urządzenia z mobilnym Windows będą mogły sobie z oprogramowaniemAndroida radzić równie dobrze, co sam Android.
Zgodnie z przedstawioną dokumentacją, kernel NT w urządzeniachz Windows 10 został rozbudowany, trafił do niego kompletnypodsystem Androida, włącznie z mechanizmem translacji wywołańinterfejsów linuksowego jądra. Nad tym zmodyfikowanym kernelem NTdziała coś, co Microsoft nazywa „pikoprocesami”, swoistymikontenerami, w których działać mają niezbędne dla androidowychaplikacji biblioteki i frameworki. I tak dostajemy dla aplikacjipełen komplet bibliotek Libc, SSK, WebKit, SQLite i OpenGL, pełenNDK dla aplikacji natywnych, środowiska uruchomieniowe Dalvik i ART,standardowy framework aplikacyjny, oraz specjalne microsoftowe SDK,umożliwiające emulację usług Google Play Services.
Zamknięte w pikoprocesie aplikacje będą jednak ograniczone wswoich możliwościach względem tego, co mogą na Androidzie – niebędą mogły np. uruchomić dodatkowych procesów, zapewne też niebędzie łatwo uruchomić większej liczby takich aplikacji naurządzeniu z Windows jednocześnie. Każdy kontener będzie bowiemsporo większych rozmiarów, niż normalna aplikacja, zawierającwszystkie jej zależności, niewspółdzielone między kontenerami.Androidowe procesy będą zarządzane autorskim menedżerem sesjiMicrosoftu, dbającym o przydzielanie im zasobów sprzętowych, takby pikoproces nie zdominował całkowicie Windows Phone'a.
Przygotowywanie androidowych aplikacji do działania na Windowspraktycznie nie będzie więc wymagało żadnych większych starań,chyba że korzystają z Google Play Services. Co ciekawe, Microsoftchyba pogodził się z tym, że dla coraz większej liczbyprogramistów naturalnym środowiskiem pracy jest MacBook Pro – SDKProjektu Astoria będzie dostępne więc nie tylko na Windows, aleteż na OS-a X. W systemie operacyjnym trzeba będzie miećzainstalowane JDK Javy 7 lub 8 oraz środowisko deweloperskieIntelliJ lub Android Studio.
Zainteresowanych szczegółami zapraszamy do dysku MEGA, tamznajdziecie PDF z dokumentacjąAstorii. Pozostaje teraz tylko pytanie – komu w świetle tychwszystkich mostów z iOS-a, Androida, WWW i win32 będzie sięjeszcze chciało pisać natywne aplikacje na mobilne Windows?Microsoft gra tu w dziwną grę – tym bardziej, że cała tahistoria z emulacją oznacza konieczność gonienia znikającegopunktu, co już dziś jest widoczne w wypadku mostu WinObjC, nieobsługującego aplikacji pisanych w języku Swift.