Niekoľko otázok ohľadom Androidu a Linuxu

mmm

Niekoľko otázok ohľadom Androidu a Linuxu
« kdy: 19. 01. 2015, 22:08:37 »
Caute :)
Chcel by som si ujasniť par mojich nejasnosti ohladom Androidu a Linuxu, tak poprosím niekoho, aby mi odpovedal na moje otázky :)
Linuxové programy idú na všetky linuxové distribúcie, nie? Potom prečo majú niektoré programy napr. zvlášť verziu napr. pre Ubuntu a zvlášť napr. pre Debian?
Dajú sa na Androide spúšťať Linuxové programy (keďže je Linux-based)?
RAM managment (správa RAM) je starosťou jadra systému? A Linux má RAM managment podobný tomu vo Windowse, nie? Ale Android (ktorý má ako jadro modifikované Linux jadro) má úplne iný ram managment (sám ukončuje aplikácie a pod.), to jadro upravovali mimoiné kvôli tomu?
Prečo sa Android zariadenia flashujú tak zložitejšie a ešte tam hrozí hardbrick? Keď na PC sa OS inštalujú v podstate úplne jednoducho, prečo na Android zariadeniach je to takéto zložitejšie?
Čo na Androide znamenajú tieto priečinky a aké rozdiely medzi tými troma sdcard priecinkami?
/storage/0
/storage/sdcard0
/storage/external_SD
/sdcard


Vopred pekne dakujem :)


Dfasdfasfda

Re:Niekoľko otázok ohľadom Androidu a Linuxu
« Odpověď #1 kdy: 19. 01. 2015, 22:20:36 »
Caute :)
Chcel by som si ujasniť par mojich nejasnosti ohladom Androidu a Linuxu, tak poprosím niekoho, aby mi odpovedal na moje otázky :)
Linuxové programy idú na všetky linuxové distribúcie, nie? Potom prečo majú niektoré programy napr. zvlášť verziu napr. pre Ubuntu a zvlášť napr. pre Debian?
Dajú sa na Androide spúšťať Linuxové programy (keďže je Linux-based)?
RAM managment (správa RAM) je starosťou jadra systému? A Linux má RAM managment podobný tomu vo Windowse, nie? Ale Android (ktorý má ako jadro modifikované Linux jadro) má úplne iný ram managment (sám ukončuje aplikácie a pod.), to jadro upravovali mimoiné kvôli tomu?
Prečo sa Android zariadenia flashujú tak zložitejšie a ešte tam hrozí hardbrick? Keď na PC sa OS inštalujú v podstate úplne jednoducho, prečo na Android zariadeniach je to takéto zložitejšie?
Čo na Androide znamenajú tieto priečinky a aké rozdiely medzi tými troma sdcard priecinkami?
/storage/0
/storage/sdcard0
/storage/external_SD
/sdcard


Vopred pekne dakujem :)

1) debian, ubuntu, jine distra muzou mit (trochu) odlisne konfiguraky a pripadne nejake cesty napr. /usr/lib vs. /usr/share, takze kdyz
si to kazde distro ohne podle svych zvyku tak se balicky trochu lisi.

2) v gnu/linuxu se pouziva nejcasteji knihovna glibc proti ktere jsou vsecky programy kompilovane, android ma mensi obludu bionic.
takze linuxove programy by v androidu jely (teoreticky) jedine kdyby byly treba staticky zkompilovane, nebo bys mel na androidu i glibc.

3) gnu/linux ma slozitejsi spravu pameti a procesu, android prece jen bezi na (teoreticky) horsim hw, takze to ma udelane jinak/jednoduseji.

4) na android se flashuje "sloziteji" protoze jsou lidi zvykli na pc, kde uz mas vsecky mozne instalacni media predpripravena.
na android musis dostat obraz na pametovy chip a kdyz je obraz spatny tak si to muzes podelat.
u pc mas prece jen bios, ktery tam je furt a vzdycky te dokaze dostat az k nabootovani z dvd/usb i kdyz je to na pevnem disku podelane.

5) ty soubory /sdcard to je jen zvyk androidu, v linuxu si ruzne karty a usb zarizeni muzes namontovat taky kamkoliv, kdyz to umis

Jenda

Re:Niekoľko otázok ohľadom Androidu a Linuxu
« Odpověď #2 kdy: 19. 01. 2015, 23:00:46 »
> Linuxové programy idú na všetky linuxové distribúcie, nie?
Když máš správné knihovny a nezávisí na nějaké konfiguraci kernelu, tak jo.

> Potom prečo majú niektoré programy napr. zvlášť verziu napr. pre Ubuntu a zvlášť napr. pre Debian?
Nevybavuji si žádný takový program. Nepleteš si to se zabalíčkováním?

> Dajú sa na Androide spúšťať Linuxové programy (keďže je Linux-based)?
Ano, ale pokud nechceš zešílet, tak typicky tak, že si do chrootu nainstaluješ „normální“ distribuci a spouštíš to v ní. Userspace Androidu je dost… odlišný (já bych řekl domrvený)…

> RAM managment (správa RAM) je starosťou jadra systému?
Ano.

> A Linux má RAM managment podobný tomu vo Windowse, nie?
Celkem jo (nevím jak přesně to funguje ve Windows, ale asi podobně).

> Ale Android (ktorý má ako jadro modifikované Linux jadro) má úplne iný ram managment (sám ukončuje aplikácie a pod.), to jadro upravovali mimoiné kvôli tomu?
Tak zrovna sestřelování aplikací nesouvisí se správou paměti a normální člověk ho napíše jako user-space démon.

> Prečo sa Android zariadenia flashujú tak zložitejšie a ešte tam hrozí hardbrick? Keď na PC sa OS inštalujú v podstate úplne jednoducho, prečo na Android zariadeniach je to takéto zložitejšie?
Protože ta zařízení bootují úplně jinak. Typicky mají nějakou interní flashku s bootloaderem. A ta flashka se blbě přepisuje zvenku, takže když nenaběhne bootloader, říká se tomu brick (u normálních zařízení se dá připojit třeba po JTAGu nebo SPI a obsah flashky opravit, androidí telefony tyto porty třeba vyvedené nemají).

„Brick“ ti hrozí u PCčka taky, když si přepíšeš BIOS. Už jsem takhle pár strojů opravoval (odpájení flashky + naprogramování funkčního BIOSu externím programátorem).

Sten

Re:Niekoľko otázok ohľadom Androidu a Linuxu
« Odpověď #3 kdy: 19. 01. 2015, 23:26:31 »
Linuxové programy idú na všetky linuxové distribúcie, nie? Potom prečo majú niektoré programy napr. zvlášť verziu napr. pre Ubuntu a zvlášť napr. pre Debian?

V Linuxu je celkem definované API, tedy jak je program napsán. Na rozdíl od Windows ale není definované ABI, tedy programy přeložené pro jeden Linux nemusí fungovat na jiném. Typicky jsou ty změny malé a programy fungovat budou, ale nemusí, obzvlášť pokud je jeden Linux výrazně novější než druhý. Tedy spíš než verze pro Ubuntu a verze pro Debian bývají verze pro starší Ubuntu a Debian a verze pro novější Ubuntu a Debian.

Dajú sa na Androide spúšťať Linuxové programy (keďže je Linux-based)?

Android je sice Linux, ale není GNU/Linux (jako linuxové distribuce), má tedy stejné (resp. podobné, ono je trochu upravené, nicméně kompatibilní) jádro jako linuxové distribuce, ale chybí mu spousta knihoven, které je potřeba doinstalovat. Potom tam jdou spouštět i linuxové programy.

RAM managment (správa RAM) je starosťou jadra systému?

Ano.

A Linux má RAM managment podobný tomu vo Windowse, nie?

To záleží, co ještě berete jako podobný. Třeba Linux na rozdíl od Windows používá veškerou volnou RAM pro diskovou cache a dost jinak funguje sdílení paměti mezi procesy. Základy (stránkování a oddělení procesů) jsou ale stejné.

Ale Android (ktorý má ako jadro modifikované Linux jadro) má úplne iný ram managment (sám ukončuje aplikácie a pod.), to jadro upravovali mimoiné kvôli tomu?

Ukončování aplikací nedělá správa RAM (tedy jádro), ale program, který aplikace pro Android spouští (Dalvik). Pokud spustíte program mimo Dalvik, tak jej ukončovat nebude (tak v Androidu funguje např. síťování nebo řízení zvuku).

Prečo sa Android zariadenia flashujú tak zložitejšie a ešte tam hrozí hardbrick?

Hardbrick hrozí jen v případě flashování booloaderu, což je podobné flashování BIOSu u PC (tam hrozí hardbrick základní desky). Flashování systému je snadné, ale potřebujete odemčený bootloader, a to odemčení může být dost složité.

Keď na PC sa OS inštalujú v podstate úplne jednoducho, prečo na Android zariadeniach je to takéto zložitejšie?

Protože bootloader (BIOS) na těch zařízeních bývá zamčený. Pokud máte PC se zamčeným BIOSem (např. UEFI SecureBoot), pak je to stejně složité i tam.

Re:Niekoľko otázok ohľadom Androidu a Linuxu
« Odpověď #4 kdy: 20. 01. 2015, 09:20:24 »
A co na ty otázky říkal strejda gúgl?


hm

Re:Niekoľko otázok ohľadom Androidu a Linuxu
« Odpověď #5 kdy: 20. 01. 2015, 12:14:16 »
Jen stručně 2 body (jestli jsem pochopil dotaz):
Občas se dá vzít ubuntovský balíček s programem a nainstalovat ho do Debianu, někdy je potřeba aktualizovat knihovny. Obráceně to určitě jde taky. Mělo by jít instalovat i z balíčků RPM. Takže ne, že by to nešlo, ale někdy to nemusí být jen jeden jednoduchý krok.
Android je pro procesor ARM, zatímco v pc jsou procesory typu Intel. Přeložené programy jsou mezi nimi nepřenosné.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Niekoľko otázok ohľadom Androidu a Linuxu
« Odpověď #6 kdy: 20. 01. 2015, 13:37:47 »
Android je pro procesor ARM, zatímco v pc jsou procesory typu Intel. Přeložené programy jsou mezi nimi nepřenosné.

To asi nebude nejvetsi problem. 1) Existuje Linux i pro ARM, treba Raspbian. 2) Programy obvykle lze prelozit pro ARM.

Ovsem na Androidu bude chybet napriklad X Server, dale pak knihovny a kdovi, co jeste.

Jenda

Re:Niekoľko otázok ohľadom Androidu a Linuxu
« Odpověď #7 kdy: 20. 01. 2015, 13:52:03 »
Android je pro procesor ARM, zatímco v pc jsou procesory typu Intel. Přeložené programy jsou mezi nimi nepřenosné.
To sice jsou, ale mnoho distribucí má i verzi pro ARM. Já takhle na androidím telefonu provozuju ARMový Debian. Ta věc co ti s tím pomůže se jmenuje Li'l Debi.

Re:Niekoľko otázok ohľadom Androidu a Linuxu
« Odpověď #8 kdy: 20. 01. 2015, 16:09:38 »
Chcel by som si ujasniť par mojich nejasnosti ohladom Androidu a Linuxu, tak poprosím niekoho, aby mi odpovedal na moje otázky :)
Linuxové programy idú na všetky linuxové distribúcie, nie? Potom prečo majú niektoré programy napr. zvlášť verziu napr. pre Ubuntu a zvlášť napr. pre Debian?
Ano, ak nemate prilis rozdielne ditribucie, alebo si isch skompilujete sam
Citace
Dajú sa na Androide spúšťať Linuxové programy (keďže je Linux-based)?
Teoreticky Linuxove spustatelne ELF binarky pojdu, ak su na Androide prisluisne potrebne kniznice (uz sa tu spominalo Glibc), alebo ich pripojite do aplikacie pri kompilacii (staticke linkovanie). ART, ktore je zapnute v Androide 5.0 zapnute default (a v 4.4 ide zapnut manualne) urobi presny opak z Java android aplikacie urobi ELF binarku a ta pojde na Linuxe, ak su pritomne ART kniznice
Citace
RAM managment (správa RAM) je starosťou jadra systému? A Linux má RAM managment podobný tomu vo Windowse, nie? Ale Android (ktorý má ako jadro modifikované Linux jadro) má úplne iný ram managment (sám ukončuje aplikácie a pod.), to jadro upravovali mimoiné kvôli tomu?
To robil Dalvik a robi to ART
Citace
Prečo sa Android zariadenia flashujú tak zložitejšie a ešte tam hrozí hardbrick? Keď na PC sa OS inštalujú v podstate úplne jednoducho, prečo na Android zariadeniach je to takéto zložitejšie?
Lebo vacsina PC  s x86 ma BIOS (Basic Input Output System) alebo EFI (Extensible  firmware interface), ktore maju v sebe bootlader 1. a 2. urovne
a Wndows/Linux maju len bootlaoder 3. urovne.

Andorid je vacsinou na ARM, ktore nema BIOS a EFI, moze ale nemusi mat (a vacsinou nemava). To znamena, ze bootlaoder 1. urovne je vo flash v CPU a do neho sa vacsinou neda dostat. On sa startuje podivne do manualneho rezimu a jeho prikazmi sa sa menit  bootloader 2. urovne

Bootloader 2. urovne  je na flash na doske/telefonu a podla toho ako je robeny a ake ma svtup. co je zadratoavne, staklcene v case supstenia bootloader 2. urovne (ma tiez prikazovy rezim) vie, z akeho "disku" natiahnut bootloader 3. urovne, ktory natahuje OS. Bootloadere 3. urovne moznu byt ine a na inych miestach tych diskov, ze pri upgrade na Windows  Mobile /Windows 8RT, Anroid, Linux  a podobne ARM OS moze byt nutne menit aj bootloader 2. urovne, aby vedel naciat ten iny OS.

Hardbrick nehrozi, pokial neprepisete flash v CPU, vzdy to ide ozivit, aj ked stalcit vypinac a 3x za 2s  znizenie hlasitosti, aby sa nastartoval comman line mode bootloaderu 1 urovne na jednom type mobile je otras, ale ide to.

K tomu este vacsina deli OS oddiel s Androidom a Datovy oddiel s aplikaciami a datamu uizvatela.  Takze treba prepisat 3 casti.

Citace

Čo na Androide znamenajú tieto priečinky a aké rozdiely medzi tými troma sdcard priecinkami?
/storage/0
/storage/sdcard0
/storage/external_SD
/sdcard

to zavisi na zapojei konkretnho telfonu storage/0 by mala byt flsh na doske s datami
storage/sdcard0 bva pridavna SD carta (ako vo fotku)  v telefone
/storage/external_SD byva klarta v citacke priopojenej k tefonu cez USB
a /sdcard byva niektora s SD kariet, ktoru system vyhodnotil ako dolazitejsiu