sobota, 1 grudnia 2018

Fuchsia OS z jądrem Zircon od Google

Nowy system operacyjny Fuchsia OS z jądrem Zircon od Google'a 


Google już od dłuższego czasu rozwija trzy duże systemy operacyjne - oprogramowanie Chrome OS dla komputerów Chromebook, Androida dla smartfonów i tabletów oraz Wear OS (dawniej Android Wear) dla elektroniki ubieralnej. Wszystkie trzy platformy mają bardzo mocne pozycje na rynku, ale nie oznacza to, że firma nie myśli o żadnych alternatywach. Mało tego, konkurencyjny software już powstaje. Mogłoby się wydawać, że systemy Chrome OS i Android na stałe zagoszczą na rynku sprzętu przenośnego (a przynajmniej na jeszcze wiele, wiele lat). Tymczasem w sierpniu 2016 roku dowiedzieliśmy się, że gigant z Mountain View pracuje nad oprogramowaniem, które może je zastąpić - wzmianki na jego temat pojawiły się w serwisie GitHub. Dowiedzieliśmy się wtedy, że platforma jest rozwijana pod nazwą Fuchsia OS, a jej zapowiedzi spodziewaliśmy się na konferencji z serii I/O w końcu 2017 roku. Od pierwszych przecieków dotyczących software’u minęły już jednak ponad dwa lata, a Amerykanie wciąż nie wprowadzili go oficjalnie na rynek. 

Fuchsia OS - nowy system operacjny od Google

W pierwszym kwartale 2018 rku pojawiało się jednak sporo ciekawych informacji o Fuchsii, nowym systemie operacyjnym Google’a, jednak były to raczej ogólniki, a zainteresowanie mediów skupiło się na demonstracji domyślnego interfejsu użytkownika. Interfejs jak interfejs, nic szczególnego i gdyby do niego sprowadzić Fuchsię, nie byłoby czym się ekscytować. Jednak udostępniona w kwietniu 2018 przez Google dokumentacja techniczna systemu dla programistów pokazuje, że to znacznie więcej niż tylko ewentualny zamiennik Androida i Chrome OS-a. Google zbudowało całkiem nowy system operacyjny pierwszej połowy XXI wieku, a właściwie go buduje, rozwija i udoskonala. 

Android – zależnie jak licząc – świętuje w 2018 roku 10tą rocznicę urodzin i jest to idealny moment, aby porozmawiać o jego… następcy. Czy kiedykolwiek myśleliście o tym, że Google mogłoby porzucić system Android i ChmomeOS? Cóż, kiedyś nie wierzono w śmierć Symbiana, Windows Mobile, nie mówiąc o BlackBerry OS. Dzisiaj żadne oprogramowanie nie jest w stanie mierzyć się z iOS i Androidem pod względem liczby użytkowników, więc dlaczego Google miałoby zakopać kurę znoszącą złote jaja? Niedawno przytrafiło się „stuletnie” jajo pod względem zapachu i strat – to za sprawą Unii Europejskiej. W takim razie nadchodzi Fuchsia OS, po polsku po prostu Fuksja OS. Sam system operacyjny Fuchsia nie jest niczym nowym i niczym „ukrytym”. Google rozwija go od niemalże 2 lat, a przynajmniej o takich datach oficjalnie się mówi, bo same prace i projekty mogą liczyć sobie jeszcze więcej. Jak w przypadku Androida, Fuchsia OS też opiera się na licencji open source, czyli model biznesowy zdaje się być prosty – oprogramowanie darmowe, ale płacimy za usługi. 

Google nie postawiło na kernel Linuxa, lecz stworzyło swój autorski kernel o nazwie Zircon. To między innymi on pozwoli na szerokie zastosowania w internecie rzeczy (zegarki, lodówki, pralki, żarówki, głośniki). Jednak to szczegóły, które zapewne nie mają większego znaczenia dla potencjalnego użytkownika. Początkowo Amerykanie z Google chcą wdrażać Fuchsia OS na teoretycznie proste urządzenia z gatunku Internetu Rzeczy (IoT). Póki co ciężko mówić o jakimkolwiek interfejsie użytkownika. Na tym etapie rozwoju, bazując na „użytkownikach alpha”, nie jest on w żaden sposób rewolucyjny. To też nikogo nie powinno dziwić, że początkowo Fuksja trafi do żarówek, pralek, ale przede wszystkim głośników. W tym wypadku mówimy o sterowaniu za pomocą komend głosowych, co niewątpliwie jest przyszłością w połączeniu ze sztuczną inteligencją. To wszystko może – podobno – nastąpić już w ciągu 3 lat, najdalej do roku 2022. 


"The Book: a programmer-oriented guide to interacting with Fuchsia" - to przystępnie napisana dokumentacja systemu operacyjnego Fuchsia, którego rozwój zaczął się raptem dwa lata wcześniej, w 2016 roku, od prostych makiet interfejsu użytkownika, a który dziś działa już na realnym sprzęcie, Google Pixelbooku. Do tej pory jednak trudno było z fragmentów kodu udostępnianego na GitHubie uzyskać jakiś szerszy ogląd architektury systemu, tworzonego w dziwnej manierze: wszystko otwarcie, ale zarazem bez słowa komentarza. Wyglądało to tak, jakby Google po prostu nie chciało dotąd zbyt wiele mówić o Fuchsii, w obawie, że odstraszy to od Androida i Chrome OS-a. Można to zrozumieć, kiedy projekt jest w początkowej fazie i jeszcze nie wiadomo czy nie pozostanie kolejnym niewypałem dla hobbystów, a przcież takich systemów operacyjnych mamy już setki, a każdy stara się być w czymś drobnym lepszy od innych.

Z tą nową dokumentacją, od początków wiosny 2018 roku, możemy powiedzieć już nieco więcej, gdyż Fuchsia to modularny, bazujący na możliwościach system operacyjny – który nie jest Linuksem - a całkiem nowym w zamyśle, niezależnym systemem operacyjnym. Tak w skrócie określa Google swoje dzieło, przedstawiając architekturę kernela, interfejsy programowania, usługi pomocnicze, biblioteki, mechanizmy przechowywania danych i sieci oraz komponenty odpowiedzialne za interfejs. Z dokumentacji wyraźnie wynika, że Google przygotowuje się do odcięcia od wszystkich historycznych zaszłości: jeśli Fuchsia zastąpi Androida i Chrome OS-a, to będzie to zmiana rewolucyjna na około początek drugiego ćwierćwiecza XXI wieku. Spróbujmy w skrócie zreferować to, co znalazło się w The Book. 

Fundamentem systemu jest oczywiście jego kernel, o nazwie Zircon. Napisany jest on w C++ i powstał na bazie lk (Little Kernel), mikrokernela stworzonego przez Travisa Geiselbrechta w 2001 roku, który pracuje w Google od 2012 roku i od samego początku jest jednym z głównych architektów Fuchsii. Dostarcza on wywołania systemowe do zarządzania procesami, wątkami, pamięcią wirtualną, komunikacją między procesami, czekaniem na zmiany stanu obiektów i blokowaniem. W założeniu tych wywołań ma być nie więcej niż sto, co oznacza, że zdecydowana większość operacji będzie odbywała się w przestrzeni użytkownika, poprzez tzw. uchwyty – aktywne sesje w określonym podsystemie zawężonym do określonego zasobu, co podobnie jak w Linuksie bardzo utrudniać będzie włamania do systemu. Oznacza to też, że Zircon nie dostarcza typowego dla systemów Posix interfejsu wywołań systemowych (hakerzy będą musieli więcej umieć i zmienić przyzwyczajenia).

Nad Zirconem spoczywa coś o nazwie Zircon Core (noszące też w kodzie źródłowym nazwę Garnet). Można powiedzieć, że tutaj zaczyna się właściwa Fuchsia, ponieważ mikrojądro Zircon mogłoby być od niej niezależne i używane w innych projektach. Tutaj obsługiwane są sterowniki sprzętowe, wejścia i wyjścia zgodne ze standardem Posix, środowisko uruchomieniowe dla C oraz loader i launcher plików binarnych w formacie ELF. Do tej warstwy należy też system aktualizacji o nazwie Amber, jak również framework graficzny o nazwie Magma (ściśle związany z API Vulkan), fizyczny renderer grafiki Escher (zapewniający takie atrakcje jak cienie, rozpraszanie świateł, efekty soczewek itp.). Widać, że efektowna grafika 3D będzie w samym sercu systemu. 

Dalej dokumentacja opisuje Fuchsia Framework – zbiór bibliotek systemowych, model aplikacji i towarzyszący mu nowy język komunikacji międzyprocesowej FIDL. Tu też opisana jest sekwencja startową, obsługa przestrzeni nazw (w stylu podobnym do Plan9) oraz piaskownice dla procesów. Tutaj też ujęto kolejną warstwę systemu o nazwie Peridot, gdzie zarządza się modularnymi aplikacjami i synchronizacją ich danych poprzez specyficzne dla Fuchsii abstrakcje: Story (logiczne kontenery aplikacji i jej danych, kontrolowane przez system w odpowiedzi na działania użytkownika), Module (powiązane ze Story aplikacje implementujące specjalny interfejs użytkownika) i Agent (aplikacje, które nie są powiązane ze Story, działające niezależnie).

Nieopisany jeszcze bliżej na wiosnę 2018 w dokumentacji pozostaje Topaz, interfejs użytkownika Fuchsii, dostosowany do widoków desktopowych (Capybara) i mobilnych (Armadillo). To na tym poziomie najwyraźniej działa Flutter, framework obecnie służący do tworzenia aplikacji mobilnych na Androida i iOS-a. Dostajemy za to bliższy opis stosu sieciowego i pamięci masowej, w tym systemu plików (nie mającego, co ciekawe, nic wspólnego z kernelem) oraz ogromnie interesującego rozproszonego magazynu danych o nazwie Ledger, za sprawą którego aplikacje będą mogły swobodnie synchronizować dane między swoimi instancjami na różnych urządzeniach. 

Docelowo, nowy system Google'a ma zarządzać niemalże wszystkim, co tylko może – od IoT, przez smartfony i tablety, kończąc na komputerach stacjonarnych. Tak, Fuchsia OS jest potencjalnym – z dużymi nadziejami – następcą dla Androida i Chrome OS. To niemalże pewniak według wielu źródeł, ale kiedy to nastąpi nie wiadomo. Wersje wydarzeń są dwie – w ciągu 3 do 5 lat lub do 2025 roku. Jednak Google oficjalnie odpowiedziało, że nie ma żadnych sztywnych planów, ustalonego harmonogramu, co do terminów wydań poszczególnych edycji swojego oprogramowania. To naturalne, że Amerykanie nie mogą dzielić się takimi informacjami – kto by wtedy interesował się Androidem i pisał oprogramowani na Android. 

Ogólnie rzecz biorąc, Fuchsia to nie Linux ani nie nowy Windows. Fuchsii nie można nawet nazwać systemem uniksopodobnym. Jak wspomnieliśmy, Zircon nie dostarcza normalnego interfejsu Posix, zaimplementowane są jedynie niektóre jego części. Z tego co widać, programy wcale nie muszą korzystać z systemowej biblioteki standardowej, jest to możliwe, ale niekonieczne. Na wyższych poziomach też można znależć wiele osobliwości. Fuchsia w praktyce kończy z koncepcją plików z perspektywy użytkownika. Podstawą wykorzystania i wymiany danych między aplikacjami w tym systemie jest coś o nazwie Entities (encje), ustrukturyzowane obiekty w formacie JSON, które można wymieniać między Stories i Modules różnego rodzaju.

The Book nie jest jeszcze skończona, a więcej informacji zapewne ujawnione zostanie dopiero na Google I/O. Kierunek jednak jest chyba już jasny, szczególnie po tym, gdy Google przegrało z Oracle sprawę o wykorzystanie interfejsów Javy w Androidzie. Korzystając z Fluttera twórcy aplikacji mobilnych niech sobie robią swoją robotę, a za kilka lat odkryją, że ich oprogramowanie bezboleśnie może zostać przeniesione na nowy system Google’a, całkowicie się odcinający od Linuksa, Javy i innych systemów z poprzedniego stulecia, a także od problemów patentowych i pozwów sądowych z tym związanych. 

Społeczność GNU/Linuksowa jako wolnościowa najpewniej tylko na tym zyska bo stosowanie Linuxa w charakterze podstawy Androida tak naprawdę społeczności nic nie przynosi, Google nie daje wkładu w rozwój Linuksa, a jedynie korzysta z jego najlepszych rozwiązań. Linux jednakże bardziej pomyślany jest na superkomputery na których sprawdza się wyśmienicie, dlatego wszystkie z listy TOP-500, na rok 2018 chodzą na Linuksie, bez którego te największe praktycznie nawet nie miałyby jak pracować. Nie wiadomo także, czy Fuchsia będzie na tyle elastyczna aby łatwo mogły powstawać przydatne forki i kostomizacje potrzebne części użytkownikom, jak to ma miejsce w przypadku Linuksa, który nad innymi systemami góruje łatwością jego adaptacji i przystosowania do szczególnych rodzajów zadań. 

Wielu zastanawia się już czy przesiadka z Androida na Fuchsia OS jest w ogóle możliwa? Oczywiście, że tak, ale może to być niesamowite ciężkie dla Google. Mimo wszystko, firma może nawet niechcący wzorować się na błędach innych – głównie Nokii i Microsoftu. Przykład Windows Phone 7 – Amerykanie sprawili, że przesiadka poszczególnych firm z Windows Mobile na nowe oprogramowanie było niewykonalne. Wszystko wiązało się z pisaniem od zera, a samo zamknięcie systemu nie ułatwiało sprawy. Takie HTC musiało po prostu porzucić wszystko to, co wypracowało i dlatego Google powinno pomyśleć o bezproblemowej migracji. Z racji, że Fuchsia OS budowana jest od podstaw na system z błyskawicznymi aktualizacjami, to niektórzy będą musieli zmienić też swoje podejście i tryb pracy. Niewątpliwie Amerykanie powinni też pomyśleć o kompatybilności wstecznej z aplikacjami Androida wraz z ułatwionymi szczegółami „przepisywania” gier i programów pod nowe standardy Fuksji, która ma chociażby pracować w stałych 120 klatkach na sekundę. 

Na razie niby wszystko zapowiada się naprawdę dobrze, ale dlaczego Google nie zrobi tego samego z Androidem? Niewątpliwie wymagałoby to tworzenia systemu od zera, czyli dokładnie tego, co dzieje się obecnie z Fuchsia OS. Cała otoczka wokół tak ogromnej aktualizacji byłaby po prostu zabójcza dla wielu firm. Jednakże uspokajamy, równie dobrze Google może w każdej chwili porzucić projekt Fuchsia, tak jak porzucił wiele innych dobrych i ciekawych projektów.  

W październiku 2018 roku do sieci przedostały się jednak informacje, zgodnie z którymi platforma miałaby być testowana także na najnowszym inteligentnym głośniku przedsiębiorstwa, modelu Home Hub. Mówiąc krótko, firma najwyraźniej chce, żeby z software’u mogła korzystać jak największa ilość elektroniki, wliczając tutaj urządzenia wchodzące w skład tzw. inteligentnego domu. Niektóre źródła podają również, że Fuchsia OS ma odpowiadać za pracę cyfrowych zegarków oraz innych smart gadżetów. Jeśli projekt się powiedzie, to dni systemu Wear OS będą policzone. 

W listopadzie 2018 dowiadujemy się, że Huawei testuje wstępnie system Fuchsia OS na smartfonie Honor Play, który w wersji globalnej debiutował na targach IFA 2018. W jednym z nowych commitów pojawiła się informacja o rozpoczęciu testów na urządzeniu z procesorem HiSilicon Kirin 970. Jest nim wymieniony smartfon. Poniższy commit ujawnia nam, że na smartfonie Honor Play udało się uruchomić kernel Zircon z Fuchsia OS. Co jest bardzo istotne, wymieniony smartfon jest pierwszym publicznie dostępnym urządzeniem, na którym prowadzone są testy systemu. Wcześniej Google tego nie umożliwiało. Ponadto Huawei jest pierwszym partnerem, który został dopuszczony do projektu. Możemy się domyślać, że z czasem takich firm będzie więcej, o ile inne może już testują, ale się tym nie chwalą, bo za wcześnie. Być może, że wdrażanie nowego systemu zacznie się od najnowocześniejszego sprzętu jaki aktualnie znajduje się na rynku, co byłoby naturalnym porządkiem rzeczy zastępującym stary porządek androidowy i chyba najbardziej optymalnym, gdyżnie trzeba pisać mnóstwo oprogramowania na przestarzały już sprzęt. 

Google zdecydowało, że zamiast rozwiązania z linuksowym kernelem w formie Androida, Wear OS i Chrome OS, lepiej sprawdzi się kernel Zircon (kiedyś znany pod nazwą Magenta). Nowe jądro ma nie tylko dawać firmie więcej możliwości (kernel zaprojektowano z myślą o ciągłym ulepszaniu), ale także być zauważalnie bezpieczniejsze (aplikacje nie będą miały bezpośredniego dostępu). Najprawdopodobniej także platformę będzie można dużo łatwiej i szybciej aktualizować niż Androida. Jeśli zaś chodzi o kwestie programistyczne, to warto wiedzieć, że Google dodało do software’u obsługę aplikacji pisanych w języku… Swift. To spore zaskoczenie, ponieważ Swift powstał dla urządzeń firmy Apple i jest promowany właśnie przez twórców iPhone’a. Czyżby wyszukiwarkowy gigant chciał przyciągnąć do siebie jak najwięcej deweloperów, a przy okazji uszczknąć sporo z wielkiego rynku Apple'a?  

Jednym z największych plusów systemu ma być duża integracja z wirtualnym pomocnikiem wyszukiwarkowego giganta, usługą Google Assistant. To rozwiązanie zbiera bardzo dobre opinie w sieci i wygląda na świetną alternatywę dla Siri i Cortany, a po premierze nowej platformy zacznie ono działać jeszcze lepiej. Zachodnie serwisy podają, że asystent ma pracować kontekstowo - jeśli np. będziemy szukać w przeglądarce restauracji, a później sprawdzimy kalendarz, to żeby umówić spotkanie ze znajomym, będzie wystarczyło powiedzieć “ok, Google, umów mnie z XYZ na kolację”, a pomocnik sam będzie wiedział, jakie miejsce i termin zaproponować. Niestety, takie usprawnienie może także budzić obawy o naszą prywatność. Jeśli jednak komuś nie przeszkadza potencjalne szpiegowanie, to warto wiedzieć, że sam Assistant, do czasu premiery oprogramowania Fuchsia OS, może zacząć oficjalnie obsługiwać język polski. 

Firma ma pozwolić użytkownikom software’u na uruchamianie aplikacji pierwotnie napisanych z myślą o Androidzie i Chrome OS. Jeden z użytkowników forum XDA Developers końcem kwietnia 2018 ujawnił, że Fuchsia OS ma natywnie obsługiwać programy z Androida. Aplikacje powinny być synchronizowane pomiędzy poszczególnymi urządzeniami, co oznacza, że będziemy mogli zakończyć pracę na laptopie, a za chwilę kontynuować ją na smartfonie - dokładnie w tym samym miejscu, w którym wcześniej skończyliśmy. Jak system doda jeszcze obsługiwanie programów z Windows, może stać się prawdziwym monopolistą na rynku OS. 

Google twierdzi, że Fuchsia zostało stworzone dla urządzeń z szybkimi procesorami i pokaźną pamięcią RAM, do których podpięte mogą być peryferia. Najważniejsze wydaje się jednak to, że kontrolę nad rozwojem jądra będzie mieć samo Google, które nie dając swojego wkładu w rozwój Linuksa, nie dogadalo się ze społecznością linuksową. Magenta czy w aktualnej wersji Zircon umożliwia szybsze i łatwiejsze dodawanie pożądanych funkcji. Google myśli o porzuceniu jądra Linux i chce w przyszłości zastąpić je własnym rozwiązaniem, tym bardziej, że dzięki temu firma będzie mogła pominąć licencje GPL (General Public License) - nowe mikrojądro rozwijane jest bowiem pod mieszanką licencji BSD 3, MIT i Apache 2.0.

Wszystko wskazuje na to, że Fuchsia OS może w przyszłości zastąpić Androida lub przeistoczyć się w niego. Wskazuje na to m.in. wykorzystanie własnego zestawu narzędzi Flutter SDK do tworzenia aplikacji na nowy system i jego interfejsu. Rozwiązanie to jest wykorzystywanie obecnie do tworzenia wieloplatformowych aplikacji (Android, iOS), które pisane są w języku Dart (alternatywa Google'a dla JavaScript). Ma on umożliwiać tworzenie wydajnie działających aplikacji, które będą cechować się płynnymi animacjami (120 kl/s), a do tego wykorzystuje narzędzia do renderowania bazujące na Vulkanie. System Fuchsia ma być skalowany i działać bezproblemowo na smartfonach, tabletach czy PC, a także ma oferować wysoką płynność czy szybkość działania. 

Fuchsia OS wygląda na oprogramowanie z ogromnym potencjałem i bardzo dobrze się zapowiada, ale to obecnie mocno eksperymentalny projekt do którego lepiej podchodzić z odpowiednią rezerwą. Nie powinniśmy wykluczać scenariusza, w którym dalsze prace nad softwarem zostałyby porzucone - zaprojektowanie jednego systemu operacyjnego dla dużej liczby różnego rodzaju urządzeń ostatecznie może ostatecznie okazać się zbyt trudne, nawet dla Google, a szefostwo firmy któregoś dnia ma szansę po prostu dojść do wniosku, że jednak bardziej opłaca się dalszy rozwój systemów Android, Chrome OS oraz Wear OS. Fuchsia OS jest systemem stworzonym od początku oraz napisanym i kontrolowanym tylko i wyłącznie przez Google. 

Z czasem artykuł ulegnie wydłużeniu (w miarę napływających nowych informacji)... 

Google Fuchsia - na smartfony, tablety, laptopy, PC, zegarki i gadżety

Brak komentarzy:

Prześlij komentarz