HTML

falhoz vágom

Egy máig is harcoló német alakulatot elhagyva csatlakoztam a Szovjetunió dicsőséges Vörös Hadseregéhez, azaz fiókba került a Palm Pré okostelefonom, mert hozzájutottam egy olcsó androidos készülékhez. Ez az élmény annyira erőteljes, hogy háborgó érzelmeimet rövid, de emellett szakmai korrektségre is törekvő írások formájában próbálom levezetni, melyek végén konklúzióként gyakorta jelenik meg a blog címével összecsengő tiszta rím.

Kövess Twitteren: @ern0plus4
Amerikai Apple szekció: @ottoolah

 
Tágítani akarod a látókörödet, és nem csak a mobil eszközökön akarsz mérgelődni? Akkor neked a TechZilla blog kell.

20.
április

A Unix megtagadása

ern0  |  12 komment

Mai értekezésünk tárgya: miként viszonyulnak az iOS és az Android mobil operációs rendszerek ahhoz a rendszerhez, amire épülnek, a Unix operációsrendszer-családhoz. Spoiler: megcsúfolják a filozófiáját, plusz kis mozdulattal nagy károkat csinálnak.

Nincs filesystem

A minap egy meetingre készültem, pár képet vadásztam le az internetekről, rá is másoltam a telefonomra, hogy azon majd jól megmutatom őket. Rátévedt a tekintetem az asztalomon heverő céges 10"-os The New iPad-ra, gondoltam, mivel nagyobb, jobb lenne azon mutogatni a képeket, nosza, másoljuk fel arra inkább. Rádugtam a gépemre USB-vel az iPad-et, megjelent a file managerben, és itt ugrottam egy csukaseggest a szopórollerre. Röviden: nem sikerült. Pár éve vettem 5 dollárért egy MP3 övre csiptethető lejátszót, arra úgy lehetett file-okat másolni, hogy rádugtam a számítógépre, ekkor megjelent a könyvtára, tolhattam fel a zenéket. Nos, ezt a legújabb iPad nem tudja. A twitteres közösségtől kaptam pár tippet, az egészen rosszindulatúaktól (installjak iTunest), az egészen használhatókig (Dropbox), plusz valaki meg is magyarázta:

Azért nem tudsz ilyet csinálni, mert az iOS-en nincs filesystem.

Elárulom: csak filesystem van. A Unix (alapú, mintájú) rendszerek egyik legszembetűnőbb jellemzője, hogy minden a filesystemben jelenik meg a soros porttól a hálózati meghajtóig, de még a memória is be van mappolva file-ként, konvenciók (eszköz: /dev, hálózati drive: /mnt, cserélhető drive: /media stb.) vagy praktikum szerinti (hálózati drive-on tárolt személyes könyvtárak: /home) path-on.

Jó, értem én, azt akarta mondani a költő, hogy nem elérhető a filesystem. Pedig az nem lenne rossz, ha jól tudom, az iOS power userek a mai napig szenvednek ettől, az eszközre rátöltött file-t nem láthatja, csak egy app, ráadásul a feltöltéshez iTunes kell, ami, hm, az Apple leginkább vitatott eleganciájú terméke.

Pedig a power usereken kívül szinte mindenki, talán még azok is többé-kevésbé tisztában vannak a filesystem mibenlétével, és el tudnak navigálni a könyvtárak és file-ok hierarchiájában, akik a "küldd el ezt a képet" feladatot úgy oldják meg, hogy nyomntak egy screenshot-ot, amit beillesztenek egy docx-be, és ezt csatolják az Outlookkal írt subject nélküli emailhez.

Na, mindegy ha el nem is tudom fogadni, de értem én, az iOS nem ad arra lehetőséget, hogy a felhasználó szabadon garázdálkodjon a filesystem akár csak egy erre kijelölt részén, különben is, nincs rá szüksége, mert mindenre van app, és amúgy meg én tartom rosszul.

Android: a valaha létezett legrosszabb Linux disztró

Egy működő Linuxhoz kell egy boot megoldás (régebben volt a lilo, majd grub és grub2), maga a kernel, aztán az startup rendszer, ami elindítja a szükséges programokat (init, systemd), shell és utility-k, képernyőkezelő (X11), és végül desktop environment, ami magában foglalja a desktop managert, filekezelőt, launch panelt, efféléket. Ezeket nem kell kézzel összeraknunk, léteznek előre legyártott disztrók, amik CD-ről pár kérdés után felmennek a gépre, interneten keresztül érkeznek a karbantartások, és gombnyomásra lehet telepíteni a központi gyűjteményből szövegszerkesztőt, játékot, webservert.

Az egyes disztrók közti legnagyobb különbség a kernelben lehet, pl. precíz ütemezésekhez speciális RT kernel kell, vagy egy kizárólag server rendszerekhez szánt kernelből ki lehet dobálni a grafikus drivereket.

Az Android egy sajátságos disztró, a boot, a kernel és a start mechanizmus kiadnak egy eléggé csupasz Linux rendszert, amire ráépül a Google saját grafikus rendszere, futtatókörnyezete és app-formátuma. Ami miatt egy Android nemigen használható még server Linuxként sem, az a shell és az utility-k hiánya, ha bejelentkezünk egy Android konzolra, nemigen tudunk mit kezdeni a jól megszokott környezet nélkül. Majdnem elfelejtettem: és root, azaz rendszergazdai jogosultságok nélkül.

Sajnos, van más is, ami egyébként egy rendes Linux disztróban nem probléma, de Androidon igen.

Van otthon egy Raspberry PI-m, amire rá van dugva egy 2 TByte-os külső hard disk, fotók, filmek, zenék, miegymás van rajta. Ez az asztali számítógépen automatikusan, a netbookomon kézzel bemountolódik, azaz a /media/storage könyvtárban megjelenik a tartalma, onnan bármilyen program használhatja, akár egyszerre több gépről is. A hard disket samba protokollal osztottam meg (pontosabban azzal is), ami más néven Windows Share, ezt gyakorlatilag minden operációs rendszer ismeri.

Kivéve az Androidot. Bár az összes androidos filekezelő app ismeri a SMB protokollt, és tud csatlakozni, másolni oda s vissza, de ez a legtöbb, amit megtehetnek. Ahhoz, hogy bemountoljam egy könyvtárba a megosztást, hiányzik a cifs.ko kernel modul, és - legalább is az én androidos eszközeimhez - lehetetlen beszerezni. Ha lenne ilyen modulom, bármely androidos app látná a fotókat, PDF-eket, mindent, a megnézni kívánt filmet nem kéne letölteni a tabletre, hanem hálózaton kereszül azonnal lejátszhatnám. (Videókhoz van workaround, a Network Places app a kiválaszott remote file-t bépített SMB kliensével olvassa, közben kistreameli localhostra, és el is indítja a streamre a defaiult playert.) 

Egyébiránt nem ragaszkodom a samba protokollhoz: mivel a serverem egy Linux, sokféle file sharing közül választhatnék, de hogy egyik szavamat a másikba ne öltsem, az Android semmiféle hálózati megosztást nem támogat. Érthetetlen, hogy az a rendszer, amely állandóan az interneten csüng, várja a leveleket, Facebook-státuszfrissítéseket, IP-telefonhívásokat stb., nem tud csatlakozni semmiféle helyi hálózatra.

Azt gondoltam, ennél jobban nem lehet használhatatlanná egy Linuxot, de tévedtem.

Már írtam az alapproblémáról, és bár azóta történtek fejlemények (nem lett jobb), most csak röviden: ahhoz, hogy a telepített app-ok minden porcikája az SD kártyára kerülhessen, külön app kell, én már régóta a Link2SD-t használom.

Ennek az appnak kell egy saját partíció az SD kártyán, amit meg is csináltam, FAT32-re formáztam. No, ezt rosszul tettem, mert ahhoz, hogy tényleg minden az SD kártyára kerülhessen, a Linux jogosultsági rendszer használatához ezt a partíciót valamilyen, a Linux rendszereken használt filesystemre kell formázni, a doksija az ext2/ext3/ezt4/f2fs valamelyikét ajánlja.

Ki is másoltam mindent róla, leformáztam ext2-re (ez a legrégebbi igazán elterjedt Linux filesystem-formátum), majd vissza mindent rá: nem látszik. Na, mondom, akkor biztos nincs már ext2 támogatás, legyen ext3, ez a legelterjedtebb, formázás, másolás, nem látszik. Szomorú voltam, visszaformáztam FAT32-re, az legalább látszott.

Még aznap bogarásztam valami után, és egy mélyen eldugott könyvtárban egy file-ra akadtam, amelynek a nevében sok "sys" meg "x" között benne volt az is, hogy ext4. Szagot kaptam, leformáztam az SD kártya partícióját ext4-re, és láss csodát, megjelent a tartalma. Az, hogy egy Linux rendszer nem ismer fel egy ext3 partíciót, ezennel bekerült a karón levő varjú és az éjjeliőr nappali elhalálálozása közé, azaz a ritka, de a különösen tapasztalt személyek által már látott jelenségek sorába.

Címkék: koncepció link2sd Android Linux iOS

12 komment

A bejegyzés trackback címe:

http://falhozvagom.blog.hu/api/trackback/id/tr997180391

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben.

pythonozok · http://visszabeszelo.blog.hu 2015.04.20. 10:52:29

Ha nincs ext2, akkor ext3 sincs... az ext3 egy journallal bővített ext2 :)
Próbáld ki: ext3 simán mountolható ext2-ként is.

ern0 · http://linkbroker.hu/ 2015.04.20. 11:23:00

Köszi, így pontos.

Btw tudtam ezt, vagy inkább csak sejtettem, mint macska az esőt, nem vagyok Linux-buherátor (és nem is akarok az lenni), de amekkora kretének, simán direkt megoldják, hogy csak ext3 legyen, ext2 ne. Szóval mindenre fel kell készülni.

A hozzáértők bizonyára jól szórakoznának a rootolási kalandjaimon (folyamatban), de a szélesebb közönség szerintem már nem lenne fogékony arra.

Az Időmilliomos Apuka · http://apuka.qqriq.com 2015.04.20. 19:17:52

Azt hiszem nem voltál elég ideges miközben ezt írtad, szomorú beletörődés hangulatot érzek csak :)

blog.sancho.hu · http://blog.sancho.hu 2015.04.20. 20:58:45

Ezen a mount témán én is rugóztam párat, mikor Android eszközzel akartam megoldani a Microsoft OneDrive, és a házi NAS-om szinkronját. Végül az SGS3-momon lévő Boeffla-féle kernel megoldotta, más nem. Így éjszakánként 4-5 GB át van tolva OndeDrive-ra egy irányban) a FolderSync segítségével, mely lokál mappának hiszi a mount-olt NAS-t.

Mr. Big 2015.04.21. 14:53:47

A hálózati fájlrendszereket talán ugyanabból a security megfontolásból hagyták ki az androidból, amiért permanensen figyelmeztet, ha felrakok egy saját certificate-et. No meg csúnyán be bír blokkolódni egy linux rendszer, ha elérhetetlenné válik valamelyik hálózati fájlrendszer.

Amúgy mások szerint meg pont az a baj, hogy még mindig túl sok rétegből áll az Android:
superpowered.com/androidaudiopathlatency/

ern0 · http://linkbroker.hu/ 2015.04.21. 22:38:23

Nem hiszem, hogy egy lokális hálóról annyi veszélyes anyag érkezne, mint pl. internetről, serverként meg nem igazán kell egy telefonnak működni.

A belassulással viszont igazad van, de neadjisten _írhattak_volna_egy_tisztességes_smb_klienst_, senki nem ütötte a Google hátgerincét szívlapáttal, hogy ne tegyék. Utána meg szépen visszatolhatták volna a mainstream Linuxba, de az már túl szép lett volna. Vagy az is hasznos lett volna, ha írnak pár FUSE modult vagy mit. Ha megkeresnek, hogy legyek Android termékmanager, majd rendet vágok.

Jó, hogy linkelted az Superpowered-cikket, és a sírás miatt nem tudtam.

A_G_A 2015.12.17. 01:04:44

Cifrázzuk a témát;
10+ éve használok Linuxot desktopon, itthon már jóideje nincs olyan gép amin ne az lenne, jópár éve már a telefonjaimon is azok futnak. Évekig elvoltam a Maemo Linuxszal telefonon, de sajnos a hardver kihalt alóla, így nemrég váltottam Sailfishre.
Nos, az hogy egy telefonon Mass Storage mód van, és gyakorlatilag sima pendrive-ként használható, az egy nagyonnagy áldás. Volt. Pedig már itt sem a teljes filerendszert lehetett elérni, a rendszer direkt korlátozta a hozzáférést, az egyetlen „hátránya” -márha ez hátrány- hogy mountolni kellett és dolgunk végeztével lecsatolni. Tehát jól működött ez évtizedeken át Symbianokon, át korai androidokig.
De most jött a 'megváltás a gyökérostoba MTP protokollal. Már az is kicsit zavaró volt amikor hölgycsaládtag, a már nem is első, de épp új androidos telefonját szokás szerint rádugta az elvileg rokonrendszeres Linuxos gépére, és az meg sem szólalt. Ok, kapott KDEconnectet, az mindenben jobb mint a kábeles megoldás, extra funkciókkal stb. de akkor is.
Vissza hozzám és a nemrég beszerzett Sailfishes telefonra. Ugye echte Linux, teljesértékű bash terminállal, Qt alap, buherálható, csomagkezelő, kb. minden ami csak kellhet. DE! Mivel ajándékozott meg az a fránya fejlesztőbrigád? Hát kérem.
A képlet annyi lett volna, hogy az (amúgy Arch) Linuxomra rádugom USB kábelen a Sailfish Linuxos telefonom, hogy rámásoljak mondjuk pár giga zenét. Linux to Linux, nem gond ugye. DE EZEK A K.ASZOTT MTP azaz Microsoft Transfer Protocollt használják erre. A konkurensét. Annyira nem működik a dolog. Ok, Arch alatt van rá ötféle megoldás, megy is úgy ahogy, de mint mondtam, úgy ahogy. Rendszeresen kapcsolatot veszít, másoláskor végtelen ciklusba kerül stb. Mindezt azért, mert pár oktalan tervező úgy gondolta, hogy az emberek hülyék ahhoz, hogy szabályosan csatolják le az eszközeiket. Ennek ellenére én (és az erre szigorúan megtanított környezetem) reflexből csatolja le az összes ilyen cuccot, én is, pedig ennél már nem is lehet. Ráadásul még a lehetőséget sem adták meg arra, hogy az advanced userek maradjanak Mass Storage módnál. Jó igen, ott van az ssh, de azért gyorsabb rádugnom a 'madzagot, másolni, majd továbbhaladni. Melóhelyen kipróbáltam windows alól is, hát ott sem győzött meg Az MTP működése, illetve annak hiánya.
Amúgy ezenkívül, a rendszer az eddigi legjobb amit használtam smart handleden, pedig a Geosos Nokia 9000-em óta több mint 15 év eltelt, legalább ilyen számú kütyühasználattal...

ern0 · http://linkbroker.hu/ 2015.12.17. 10:00:15

@A_G_A: Leragadtam ott, hogy az androidos készülékemre SSHD-t teszek (Android appot), a device rootolva van, így egy mozdulattal mountolom az egész filerendszerét (desktopon és kis kütyökön is Debian-származékokat használok, most éppen Ubuntu Mate a kedvenc).

Különböző feladatokra különböző appokkal kell veckölődni, fotó feltöltésre Dropbox volt eddig, de rátaláltam a Sweet Home-ra, aki a megadott wifi hotspothoz csatlakozás esetén SMB-n feltölti a képeket, és amelyeket már feltöltötte, egy hónap vagy hét után le is törli a telefonról, szóval jól ki van találva az use case.

A_G_A 2015.12.17. 15:01:56

Igen, a Dropbox nálam is megold pár dolgot, de azt például nem, amikor megyek valami helyre ami mondjuk offline és várni kell, ezért a telóra rámásolnék például reggeli öltözés közben egy könyvet vagy filmet amit előző este abbahagytam, viszont nem tárolok felhőben, mert az mégegy időigényes másolási procedúra lett volna. Így MTP szívás helyett persze már az a gyorsabb, csak szokni kell.
Azért ezt a Sweethome-ot megnézem, köszi.

bcs2112 2016.06.07. 10:06:21

A RootExplorer tud adni SMB hozzáférést, ami ha nem is mount, de hozzáférsz a file-jaidhoz lokálisan és a smb-n keresztül is. Még a video ill zenei is elindul, ha onnan indítod ... (azt nem mondom, hogy érdemes így filmet nézni)

ern0 · http://linkbroker.hu/ 2016.06.07. 12:41:38

Márminthogy SMB servert tudok csinálni a telefonomból... hát, ez tényleg elég hátul van a todo listámon, kb. a "megnézni a Kis Vuk c. animációs filmet" után.