Ważne

Nowy Windows używa jądra Linuksa

Chodzi o Windows 10 Mobile i Project Astoria, który ma umożliwić przenoszenie aplikacji z Androida na smartfony z Windowsem.

Do tej pory wszystkie oficjalne źródła Microsoftu mówiły o Astorii jako o projekcie, który będzie pracował nad („on top of”) jądrem Windows NT. Androidowe miało być tylko środowisko uruchomieniowe z bibliotekami i maszyną wirtualną Javy. Odpakowanie i dekompilacja pewnych plików systemowych z Windows 10 Mobile pozwoliła jednak na dostrzeżenie kilku ciekawych szczegółów.

astoria3-850x520

Na początek chciałbym podkreślić, że nadal nie wiadomo w 100% jak to wszystko będzie ze sobą współpracować, ale wszystko w wskazuje na to, że jednym z elementów nowego jądra Windowsa 10 Mobile będzie linuksowy kernel. Narzędzie do wyszukiwania tekstów w kodzie binarnym pozwoliło na wyodrębnienie następujących stringów:

  • Linux version 3.4.0-Microsoft (Microsoft@Microsoft.com) (gcc version 4.7 (GCC) ) #1 SMP PREEMPT Wed Dec 31 14:42:53 PST 2014
  • initrd=/initrd.img root=/dev/ram0 rw androidboot.hardware=hyperv console=tty0 console=ttyS0 video=hyperv_fb:1024×768 BOOT_IMAGE=/kernel

Architektura podsystemu Androida w Windowsie mogłaby wyglądać tak (sugerując się wyciekłą dokumentacją Astorii) – gdzie AOW = Android on Windows:

pico

Nadal nie wiadomo dlaczego zdecydowano się na zastosowanie elementów (jak obszernych?) linuksowego kernela w jądrze W10M. Być może przesądziły kwestie wydajnościowe, kompatybilnościowe lub potrzeba wsparcia dla wybranych technologii – na myśl przychodzi mi na przykład Qt. Sam kontener, w którym znajduje się cały runtime mocno przypomina mi ideę Pico-procesów znaną z projektu Drawbridge. Drawbridge był prototypem mechanizmu wirtualizacji umożliwiającym osiągnięcie separacji aplikacji oraz jądra ze względów bezpieczeństwa (sandboxing). Pico-procesy zapewniają izolację samego procesu od innych procesów (aplikacji) z minimalnym narzutem API nad jądrem systemu. Drugim elementem jest ograniczony do minimum system operacyjny (właściwie zbiór bibliotek) działający w kontekście uruchomieniowym aplikacji. Choć jądro linuksowe tak naprawdę ogranicza się tutaj do przekierowywania wywołań systemowych, żeby ostatecznie wywołać kernel Windows NT.

Brzmi to dość skomplikowanie i nadal nie ma 100% pewności, że taka jest właśnie architektura Androida w Windowsie 10 Mobile. Ważne jest jednak to, że do tej pory wydawało się, że Astoria to tylko maszyna wirtualna pozwalająca na uruchamianie aplikacji Javowych w W10M. W świetle powyższego jednak, wszystko wskazuje na to, że mamy do czynienia niemalże z całym gołym Androidem i jego bibliotekami uwięzionymi w mechanizmach bezpieczeństwa i separacji systemu Windows. Z całym jego dobrodziejstwem – w tym OpenGL czy silnikiem Webkit.

Niesie to ze sobą ważne implikacje. Po pierwsze, appki które nie korzystają z Google Services (na przykład mapy, powiadomienia, logowanie kontem Google) i API z nimi związanych – nie będą wymagać żadnych zmian w kodzie. Wystarczy, że programista zapakuje gotową paczkę .apk w windowsową paczkę .Appx i wrzuci ją do sklepu Windows Store. Mało tego – jeśli ktoś zdecyduje się na deweloperskie odblokowanie telefonu z W10M, będzie mógł instalować aplikację („po kablu USB”) wprost z androidowych paczek .apk. Oczywiście bez problemów będą działać tylko te, które nie korzystają z Google Services. Te korzystające będą musiały być odpowiednio zmodyfikowane przez deweloperów.

A trzeba pamiętać, że skoro mamy do czynienia z licencją GPL, Microsoft będzie musiał w końcu udostępnić kod źródłowy całego tego mechanizmu Linux-w-Windowsie…

źródło: wpxap

Jeżeli znalazłeś literówkę w tekście, to daj nam o tym znać zaznaczając kursorem problematyczny wyraz, bądź zdanie i przyciśnij Shift + Enter lub kliknij tutaj. Możesz też zgłosić błąd pisząc na powiadomienia@tabletowo.pl.

Komentarze

  • Raul

    Po co im wlasny kernel, wystarczy Linux i nie bedzie trzeba sie bawić. Wtedy będą musieli pokazać swój kod i dziury dla NSA.

  • uru28

    Może to naiwne pytanie ale czy to nie wpłynie na bezpieczeństwo? Rozumiem że będzie w tym wypadku możliwie szeroka separacja, ale skoro i tak jądro linuksowe będzie wywoływać kernel windows NT to czy nie będzie możliwości obejścia zabezpieczeń?Skoro do tej pory nacisk był kładziony na to by nie instalować .apk z poza sklepu (jako nie sprawdzone,jakby te ze sklepu były w 100% godne zaufania;) ) to ciekaw jestem jak M$ chce sobie poradzić z weryfikacją w tym wypadku. Cokolwiek by nie mówiono mimo wszystko aplikacje „windowsowe” postrzegam (może naiwnie) jako o wiele bezpieczniejsze od tych na andtoida, a skoro google usuwa ze sklepu oprogramowanie które jest ewidentnie szpiegujące i kradnące dane dopiero po kilku tygodniach to raczej jest coś na rzeczy…. Mam nadzieję że jeśli dojdzie do takiej sytuacji to programy „portowane” w ten sposób będą oznaczone odpowiednio w sklepie.

    • Od strony architektury – przy porządnej implementacji sansboksa – teoretycznie nie musi pogorszyć bezpieczeństwa. Choć można dyskutować o eskalacji uprawnień.

      Od strony praktycznej – hell yeah. Scenariusz:

      1. Snapchat nie decyduje się na wypuszczenie aplikacji dla Windowsa przy wykorzystaniu Astorii
      2. Jakiś doboduszny niezależny dev dekompiluje Snapchata, uzupełnia go o brakujące API i wrzuca .apk w sieci do pobrania
      3. Jakiś chytrus wrzuca to do siebie na hosting/forum ,ale wprowadzając wcześniej zmiany w paczce z binarkami (upraszczając: „wirus”)
      4. Ludzie nie mogąc doczekać się Snapchata odblokowują dewelopersko swoje Lumie i sideloadują zainfekowane .apk, które nie musiało przechodzić etapu weryfikacji w Windows Store
      5. ???????????
      6. MALWARE

      • uru28

        No właśnie, o to mi chodziło. Do tego pytanie czy skoro Google nie jest w stanie ogarnąć tego co wpuszczają do sklepu to czy M$ będzie w stanie ogarnąć soft pisany dla nich i jednocześnie portowany…Domyślam się że kontrola polega na stosowaniu algorytmów co w przypadku „systemu w systemie” będzie chyba trudniejsze i łatwiejsze do obejścia (choć może się mylę)….

        • Tego co zostanie zaakceptowane przez sklep bym się nie bał – proces walidacji jest zautomatyzowany, a appki trafiają prosto od ich twórców podpisujących się z imienia i nazwiska. Prawdziwym zagrożeniem będzie to, co trafi na urządzenia po kablu, wgrywane ręcznie, pozyskane z niezaufanych źródeł.

        • Dodatkowo, aplikacje Androidowe na Androidzie mają dużo większe uprawnienia niż będą mieć na W10 Mobile.

          A ostatnie exploity Andka, to nie appki tylko Google Play Services i sam system.

  • Konrad Uroda-Darłak

    Ciekawe kiedy udostępnią dla większej liczby urządzeń, bo na chwilę obecną na L735 muszę obejść się smakiem :s

  • hehe wiedziałem ze tak to będą musieli zrobić – bez kernela i najistotniejszych bibliotek Linuksa/androida tu nie ruszą nie ruszą. Widać powoli Windows zmierza w kierunku „przeistoczenia” się w Linuksa ;)

    • Kamil Stępień

      Chyba mają prawo nie dać .config’ów i każdego fragmentu własnościowego :/

      • noname

        Jest aplikacja wykorzystuje kod GPL (czy jakiejkolwiek innej licencji) przechodzi ona w GPL.

        • Kamil Stępień

          Błąd. Jeśli programistaw w swojej aplikacji wykorzystuje kod GPL w formie zarówno oryginalnej jak i zmodyfikowanej, to jest zobowiązany go udostępnić. Kod własnościowy może być pod inną licencją (patrz: sterowniki własnościowe nvidii, samsung bml/stl, niektóre sterowniki raid, oprogramowanie Wi-Fi, etc). Poważnie, to tak jak te dystrybucje linuksa Enterprise.

          • noname

            Masz rację, zgeneralizowałem moją wypowiedź.

    • noname

      Licencja GPL wymusza udostępnieni kodu źródłowego, to fakt, jednak nigdzie nie jest napisane, że musi to być „czytelny dla człowieka” kod, mogą to być pliki obiektowe

    • Kamil Stępień

      Wydaje mi się, że to jądro nie istnieje. Jest tylko emulacja środowiska linux (coś na miarę Cygwin, tylko bardziej zaawansowanego, z emulacją niskopoziomową).

  • Gordon Freeman

    to będzie rok linuksa

  • Wojciech Nowacki

    Panowie ale to model z Hyper-V XBOX ma taki sam :) , tam tez sa 2 OS razem pracujące
    Po prostu mamy Hypervisora a na nim jadro NT kernel linuxa i wspólny space dla ich przenikania

Tabletowo.pl
Logowani/Rejestracja jest chwilowo wyłączona