Linux pe Android - Un experiment ce m-a entuziasmat

 Salut,

    Nu știu dacă e pentru tine postarea asta, sau dacă e pentru altcineva... Sau dacă e pentru cineva. Dar eu o scriu că m-a entuziasmat. Un fel de gând despre tehnologie la final de an pentru noul an. Sau pentru urmatorii.

    Îmi plac super mult smartphone-urile. Design, dimensiuni, ecran și multitudinea de funcționalități de care sunt capabile. Numerele nu zic mereu totul, deci deși pare că un telefon cu 12 gb RAM și ceva procesor octacore pe 7 nm ar putea fi capabil să concureze cu un computer cu niște specificații similare, nu o face. De fapt nu e in totalitate capabil să concureze nici cu un computer cu specificații inferioare. Dar problema nu este la el. Și nici la computerul cu care îl compari. 

    Diferențele apar în principiu la aplicațiile ce pot rula pe un telefon versus cele ce pot rula pe un computer. Din cauza arhitecturii procesoarelor diferită și mai ales din cauza dominanței pe piață a procesoarelor X86 (Intel/AMD), aplicațiile mari, relevante, sunt compilate (concepute să lucreze) pe computere cu astfel de procesoare - X86. Mai mult decât atât, până de curând inclusiv sistemele de operare de PC erau compilate astfel. 

    Dar chestia asta a început să se schimbe odată cu evoluția procesoarelor ARM - cele care se regăsesc în principiu pe smartphone-uri. Puterea lor de procesare a crescut in ultimii ani cu o viteză mai mare decât a crescut cea a procesoarelor X86. Astfel Microsoft a decis să lanseze Surface - tableta-laptop - cu procesor ARM. Iar mai recent (și ce pare mai important) cel mai nou laptop lansat de Apple are un procesor pe această arhitectură tocmai pentru că are performanțe mai bune decât procesorul Intel pe care l-ar fi folosit ca alternativă. Și asta cu un consum electric mult mai mic.

    Și comparat cu alte laptopuri similare, dar cu procesor X86, se comportă mult mai bine. O face atât în benchmark-uri, cât și în utilizarea reală, în aplicații folosibile de zi cu zi. Avand în vedere că e proaspăt lansat, nu sunt multe aplicațiile care rulează nativ pe acest procesor. Majoritatea sunt făcute pentru arhitectura X86 și ca să ruleze au nevoie de un emulator. Deci pe ARM rulezi un emulator X86, in care rulezi aplicații construite pentru X86. Și totuși ajungi sa ai performanțe mai bune.

    Revenind acum la subiectul despre care voiam să scriu - cel din titlul articolului - faptul că aplicațiile vor fi optimizate să ruleze nativ pe ARM înseamnă că vor fi rula și mai rapid pe laptopurile cu procesoare ARM. Dar mai mult decâ atât, și chestia pentru care sunt entuziasmat, într-un mod sau altul vor putea sa fie rulate chiar de pe telefon. Și cum producătorii de telefoane deja au dezvoltat moduri prin care să îți poți conecta telefonul la un monitor și să ai o experiență similară unui desktop, mai sunt doar câțiva pași.

    Unul dintre motivele pentru care mi-am cumpărat un Samsung Galaxy a fost Linux on Dex. Dex este modul desktop al celor de la Samsung, iar Linux on Dex era un proiect început de ei, destinat desvoltatorilor software, prin care puteai să bootezi un Ubuntu Linux 16 ful atunci cand conectai telefonul la un monitor. Din păcate proiectul a fost terminat odata cu trecerea la Android 10, iar eu nu am apucat să îl încerc. A fost doar în versiune Beta lansat pentru public, și oprit înainte să fie lansat oficial. 

    Părerea mea este totuși că proiectul nu este mort. A rulat seria Galaxy 8 și Galaxy 9, și cu ajutorul unor emulari de X86, puteai rula aplicații pentru Linux versiunea clasică (GIMP, Intellij, Visual Studio). Dacă a putut să ruleze aproape decent pe acele device-uri, ar putea să ruleze cel putin decent și pe device-uri mai noi. Cu puterea de procesare și mai mare. Și sunt sigur că se va întoarce. Mai mult decât atât, având în vedere parteneriatul Samsung cu Microsoft din ultimii ani, nu m-ar surprinde sa văd și o variantă de Windows on Dex. Pentru că device-urile vor putea face față, iar sistemul de operare știm deja că poate rula pe ARM (Surface-ul de care ziceam mai sus, ba chiar și pe Raspberry 3/4).

    Până atunci, există alternative. Alternative care deși nu sunt optimizate, funcționează. Mai mult ca experiment, mai mult ca proof of concept, dar funcționeaza. Băiatul ăsta, de exemplu, are un mic tutorial în care îți arată cum poți încerca super ușor chestia asta. Și am încercat-o și eu, bineînțeles. Am bootat linuxul, am surfat un pic pe net într-un browser cu interfață de desktop, m-am uitat la ceva pe YouTube. Dar chestia asta o poți face și în Dex mode. Că exact ăsta este scopul lui.

    Așa că am dus-o un pic la next level. Am instalat Java 11 SDK, Java 11 JRE, Maven și Intellij și am zis "Hai să văd dacă merge...". Entuziasmat fiind că Hello world-ul a rulat fără probleme, am zis sa încerc și mai mult de atât. Din păcate, oricât am încercat, nu am reușit să pornesc o aplicație Spring ceva mai complexă. Dar asta din Intellij (care mănâncă destul de multe resurse, mai ales ca nu rulează nativ pe ARM și a trebuit să îmi compilez singur niște fisiere). Build-uirea proiectului din terminal s-a făcut cu succes, și tot cu succes s-a făcut și rularea build-ului rezultat (conectat la o bază de date hostată în exterior). 


    Problema la modul ăsta de abordare e că rulezi o versiune de Ubuntu simplificată (deși îți poți instala chestii apoi), și pentru a avea acces la interfață ai nevoie de un client de VNC (eu folosesc BVNC pentru ca VNC viewer nu este suportat in Dex mode), serverul fiind pe linuxul pe care il pornești. Iar lagul conexiunii dintre clientul si serverul VNC se adauga la faptul ca linuxul respectiv ruleaza intr-un fel de mașină virtuală, deci interacțiunea nu este cea mai rapidă. 

    Dar funcționează. Așa cum am zis și mai sus, chiar dacă e doar proof of concept, mă face nerăbdător să văd în ce fel va evolua tehnologia anul care se pregătește să apară. Pentru că toată puterea asta de procesare îndesată în smartphone-uri va putea fi folosită la mult mai mult decât rularea unor aplicații de socializare sau a unor jocuri. 

    La asta îmi stă mie mintea în seara de Crăciun. Atât am putut. Daca ai ajuns să citești asta acum înseamnă că nici tu nu făceai prea multe în seara asta. 

Un Crăciun fericit și un nou an să avem cu toții!

Sebi

Comentarii

Postări populare de pe acest blog

Șase-șapte luni mai târziu

Cinci zile, patru nopți, trei paturi, două Airbnb-uri, o mie de kilometrii

Despre pasiuni și colecții