Aplikácie na systéme s ARM vs x86

Sekcia: Programovanie 09.04.2014 | 23:31
Daevid   Návštevník

Dobrý deň, už nejakú dobu sa snažím dopátrať k informácii ktorú by ste mi mohli objasniť. Vo svete Linuxu som úplný začiatočník, tak možno sa nebudem vyjadrovať úplne správne.

-----------------------------------------------------

Dajme tomu ze mam dva PC. Na jednom by bol ARM CPU a na druhom x86 CPU. Na oboch by bol Ubuntu linux. Ak by som chcel na to Ubuntu nainštalovať nejakú aplikáciu napr. Firefox, mohol by som ju bez problémov nainštalovať na oba tieto PC alebo by som potreboval dve verzie? Jednu skompilovanú pre ARM a druhú pre x86?

-----------------------------------------------------

Jedná sa mi o to že oba typy CPU pracujú s inou inštrukčnou sadou (RISC, CISC) a teda operačný systém (v tomto prípade Ubuntu) musí byť prispôsobený danému CPU aby s nim vedel komunikovať. Akurát neviem či to ovplyvňuje aj aplikácie pracujúce pod týmto OS a teda či musia byť tiež prispôsobené danému CPU aby mohli správne pracovať.

-----------------------------------------------------

O programovaní toho moc neviem tak sa ospravedlňujem za možno banálnu otázku.

    • RE: Aplikácie na systéme s ARM vs x86 10.04.2014 | 00:51
      Avatar Luko   Návštevník

      Áno aplikácie musia byť zvlášť pre ARM a zvlášť skompilované pre x86. Máš to tak ako keby si chcel spustiť program s nejakeho starého napr. Amiga počítača na x86 nie je v tom rozdiel. Ono jedina vec ktora je tu zavadzajuca je ze na obidvoch mas ten isty OS teda Ubuntu ale to nehraje rolu dolezite je ako si povedal ze sa jedna o uplne odlisne architektury a teda su nekompatibilne a ten Firefox a aj ine apky musia byt prelozene pre kazdy typ cpu zvlast. Dalsou vecou je ze nevie mci vsetky aplikacie s x86 su dostupne aj na ARM.

      • RE: Aplikácie na systéme s ARM vs x86 10.04.2014 | 09:12
        Avatar Daevid   Návštevník

        Dakujem za odpoved, uz v tom zacinam mat jasno.

        A ten zdrojovy kod tej aplikacie napr napisany v Ccku je pre obe architektury este pred kompilaciou totozny?

        • RE: Aplikácie na systéme s ARM vs x86 10.04.2014 | 09:27
          Avatar bedňa LegacyIce-antiX  Administrátor

          Väčšinou áno. Problémy bývajú s prasácky napísanými programami a tých je väčšina :)

          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
          • RE: Aplikácie na systéme s ARM vs x86 10.04.2014 | 09:33
            Avatar Daevid   Návštevník

            Čo býva väčšinou kameňom úrazu v takto zle napísanom programe? Vieš mi uviesť nejaké príklady?

            • RE: Aplikácie na systéme s ARM vs x86 10.04.2014 | 11:12
              Avatar WlaSaTy   Návštevník

              Najčastejšie chyby sú v práci s číslami kde little endian a big endian majú rozdielne uložené bajty v slove. Little endian ich má do kríža (na preskačku) a big endian ich má za sebou. ARM je síce endianless, teda vie fungovať aj ako little endian a big endian, ale nie vždy sa dá táto vlastnosť využiť. Najznámejší problém je napríklad knižnica webkit-gtk kde zabudli urobiť multiplatformné konštanty tam kde ich treba. Java script je v tomto balíku podporovaný len pre platformy ARM(64), x86(64), SH4 a MIPS. Chýba im podpora PPC(64) a MIPS(64). Na to, aby to urobili poriadne zvysoka kašlú. Tento presný príklad sa ale pochopiteľne týka Tvojej pôvodnej otázky len okrajovo, skôr som ním zasiahnutý ja. Nové gnome tým pádom postupne zmizne z môjho počítača, len si musím presunúť poštu cez lokálny IMAP do niečoho iného. A do toho sa mi teraz nechce.

            • RE: Aplikácie na systéme s ARM vs x86 10.04.2014 | 11:23
              Avatar bedňa LegacyIce-antiX  Administrátor

              Najväčšou bolesťou je neoverenie si veľkosti objektu v bytoch a potom sa random číta a zapisuje kade tade, pretože si programátori mysleli že tu naveky bude len x86.

              Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • RE: Aplikácie na systéme s ARM vs x86 10.04.2014 | 10:26
      Avatar WlaSaTy   Návštevník

      Čau,

      Mám podobnú situáciu. Počítač s x86 (Little Endian) a PPC (Big Endian). Obidva stroje majú rozdieľnú a navzájom nekompatibilnú kódovú stránku a tak nie sú schopné bežať programy pre inú architektúru bez emulácie. Emulácia ale znamená približne sto až dvesto krát nižší výkon, takže moderné programy sa jednoducho zastavia. Na moje mašinky s ARM sa mi po dlhej dobe nechcelo dávať nič iné ako Android, i keď som sa hral aj s buildom Linuxu. Kupoval som ich za iným primárnym účelom.

      Ale, pokiaľ chceš mať jednu distrbúciu (Napr. spomínané BuUbuntu) na dvoch rôznych strojoch (ARM a x86), tak sa o zdroj bežných programov nemusíš starať. Všetko za Teba vyrieši balíčkovací systém.

      PS: Veci ako spôsob inštalácie OS na zariadenie ARM, podpora akcelerácie a dostupnosť zastaralých technológií ako napríklad adobe flash je škoda rozoberať. Nepredpokladám, že by si mal doma už nejakú mašinku s ARM ktorú by si chcel preinštalovať cez LiveCD. Tak to nefunguje.

      • RE: Aplikácie na systéme s ARM vs x86 10.04.2014 | 11:52
        Avatar Daevid   Návštevník

        Mňa skôr zaujíma ten koncept multiplatformového OS ako ho predstavil Canonical. Proste jeden OS na PC, notebook, telefón, tablet a čo sa tým dá získať, resp. aké sú výhody a nevýhody. Najväčšiu slabinu som videl práve v nekompatibilite aplikácií ale to podla toho čom som sa tu dozvedel není až tak problémové.

        S linuxom som úplný začiatočník, jediné čo som na ňom robil je zatiaľ webový server (apache, php, mariaDB, FTP, rsync) aj to podla návodov HOW TO...


        Mam doma Rasberry Pí, chcel som ho použivať ako XBMC a dokonca som k nemu dokúpil tu HDMI redukciu aby podporovalo HDMI-CEC no výkonovo je to strašne slabé. Skúšal som tam inštalovať Rasbian, OpenElec a Raspbmc. Chcel som ho tiež použiť na zobrazenie live streamov z IPkamier ale stroskotal som na tom že mi tam nešla Java alebo H264 alebo v čom bol problem neviem.

        Ďakujem vám za objasnenie, trochu si to v hlave utrasiem a ešte budem asi vyzvedať.

        • RE: Aplikácie na systéme s ARM vs x86 10.04.2014 | 13:07
          Avatar Luko   Návštevník

          nechcem tu robit reklamu nejakej firme ale odporucam si pozriet na RLX.SK maju fajne vecicky ako PandaBoard, CubieBoard, Cubietrack, ODROID vyzera fajn proste maju vsetko do vymyslu sveta aj 4 jadrove army co utiahnu aj Ubuntu... :D ja som mal tiez raspberry a to az 2x ale furt to stroskotalo v tom ze som to chel mat ako vyvojovy ARM desktop pre ARM app na to je Rasp pomale s tym Broadcomom

          • RE: Aplikácie na systéme s ARM vs x86 10.04.2014 | 13:32
            Avatar WlaSaTy   Návštevník

            S tým súhlasím aj ja.

            Dnes by som išiel do minimálne A20 (dvojjadro s dostatkom RAM a hlavne SATA), vyššie modely Allwinner nemali natívne SATA ale obsahovali USB to SATA prevodník takže výkon disku rapídne klesol. Môj staručičký A10 jednojadro ma síce vyšiel lacnejšie ako zodpovedajúca zostava RasPI, ale jednojadro sa na dnešnú zhýčkanú dobu už pri niektorých činnostiach kúše. Ale v porovnaní s mojím desktopom je to na rovnakej úrovni. Stačí mi to, a žerie to oveľa menej elektriky.

        • RE: Aplikácie na systéme s ARM vs x86 10.04.2014 | 13:21
          Avatar WlaSaTy   Návštevník

          Koncepcia jedného OS na rôzne platformy tu bola už v minulom tisícročí, a programy vždy riešil balíčkovací systém. Skús si pozrieť napríklad koľko rôznych platforiem podporuje Debian alebo BSD Unix.

          Desktop na RasPI je utrpenie, na to radšej preventívne zabudni. Na desktop sú dostupné iné a hlavne výkonnejšie krabičky ktoré majú občas aj nižšiu cenu ako zostava RasPI s potrebným príslušenstvom (káble, krabička, zdroj). RasPI nemá problém s H264, ale skôr s java scriptom ktorý vyžaduje prehnane veľký výkon. Samotná java sa už moc nepoužíva a java je niečo úplne iné ako java script. Ďalším limitom mohla byť veľkosť pamäte ktorá je na RasPI zúfalo malá. A limitom je aj to, že sieť je napojená na jedinú USB vetvu čo v prípade pripojeného externého USB disku spôsobuje preťaženie. Doska RasPI obsahuje aj SATA, ale to pre istotu nevyviedli aby nekonkurovali STB. Skrátka, RasPI nie je určené na nič iné, ako na hranie s relátkami, snímačmi a ako prehrávač. A aj ako prehrávač už bolo dávno prekonané.