Portál AbcLinuxu, 9. května 2024 16:30

Nokia N900 – Maemo 5 pod povrchem

2. 4. 2010 | Andrej Kruták
Články - Nokia N900 – Maemo 5 pod povrchem  

Pozorný čitateľ AbcLinuxu.cz už iste zaznamenal, že osud systému Maemo 5 je už spečatený a Nokia s ním zrejme v ďalších prístrojoch už nepočíta. Miesto neho sa už pracuje na systéme MeeGo. Napriek týmto skutočnostiam sa v dnešnom diele seriálu o N900 pozrieme na to, ako vyzerá systém Maemo 5 vo vnútri.

Obsah

Je totiž celkom pravdepodobné, že veľká časť kódu aktuálneho systému bude znovu použitá – keď pre nič iné, tak preto, že Maemo 5 je schopné bežať na architektúrach ARM aj x86. Navyše systémová architektúra, knižnice, správca okien či v neposlednej rade aj ovládače hardvéru – to všetko bolo pravdepodobne príliš nákladné na vývoj, než aby sa úplne vyhodilo. Napriek tomu určite dôjde aj k zásadným zmenám – grafické prostredie bude založené na Qt, správca balíčkov bude založený na RPM atď. – to všetko sú ale veci, ktoré priamo príliš neovplyvňujú štruktúru systému ako takého.

Vrstvy

link

Jadro systému

link

Základom systému je samozrejme linuxové jadro obohatené o potrebné ovládače – ako sme videli v predchádzajúcej časti, ide o vcelku otvorený kód. Systém načítava jadro pomocou proprietárneho Nolo bootloadera – a po inicializácii dôjde k spusteniu init procesu (konkrétne ide o „upstart“ init démona), ktorý zavedie relatívne štandardné prostredie odvodené od Debianu (vrátane balíčkovacieho systému). V základnej inštalácii sa ale napríklad nedočkáme plného shellu – podobne, ako u mnohých embedded zariadení, sa používa „iba“ busybox. Navyše nie je jednoducho možné shell vymeniť – už nejeden užívateľ po tejto akcii dostal Maemo do nebootovateľného stavu.

maemo architecture

Kvôli hardvérovým obmedzeniam N900-ky, konkrétne 256 MiB veľkej NAND flash pamäti, je súborový systém organizovaný trochu zvláštne. Na spomenutej 256 MiB partícii, ktorá používa filesystém „ubifs“, sa nachádza väčšina systémového software. Vzhľadom k povolenej kompresii sa na ňu vôjde drochu viac ako 256 MiB dát. Usporiadanie súborov je podobné ako na desktope – nájdeme tu adresáre ako /bin, /etc, /dev, /usr či /var. 32GB flash pamäť je vo východzom nastavení rozdelená na 2GiB partíciu (ext3) obsahujúcu /home/opt, 512MiB partíciu na swap a zvyšok sa montuje k adresáru /home/user/MyDocs ako FAT32 oddiel. Nedostatok miesta na root oddieli sa rieši trikom – vývojári Maemo odporúčajú všetkým vývojárom aplikácií, ktorých súbory sa inštalujú do /, a sú väčšie ako cca. 300 – 500 kiB, aby sa tieto súbory nainštalovali do /opt adresára, a v / sa iba vyrobia symlinky. Rozsiahle dátové súbory (napr. levely pre open-arena) sa navyše inštalujú na spomenutú FAT partíciu. Toto riešenie bolo zvolene hlavne kvôli nízkemu výkonu 32GiB flash pamäti – pri spoločných čítaniach/zápisoch sa výrazne znižuje jej rýchlosť, takže prípadné prístupy na oddiely na tejto pamäti by mohli nepríjemne spomaliť celý zvyšok systému, nie len „hladnú aplikáciu“.

K základným komponentom systému ďalej patria OpenGL ES knižnice (v najnovších verziách firmware by už mali byť podporované štandardy 2.0 aj 1.1), OpenSSL, X server (vrátane rozšírení XComposite, XRender či XRandR), DBus, HAL atď.

Vedľa toho bežia démoni ovládajúci napr. telefónne a dátové funkcie (phonet), napájanie a GPS (démon prístupný cez liblocation) – všetko sú to aktuálne closed-source komponenty.

Knižnice

link

V systéme sa používa mnoho rôznych knižníc – od sqlite, glib či Gtk+ cez pango a gtkhtml, Cairo až po SDL. Užívateľ/programátor ďalej môže vyrábať vlastné Hildon Widgets, ktoré je možné potom umiestniť na plochu a používať na zobrazovanie rôznych informácií. Súčasťou knižníc je napríklad aj tzv. „libosso“, ktorá slúži na „ukrytie“ niektorých DBus volaní pred vývojármi – v tomto prípade v pozitívnom zmysle. DBus rozhranie totiž nie je úplne pohodlné na programovanie – ani pri jednoduchších aplikáciách nie je triviálne ho používať. Libosso teda často používané volania zabaľuje do funkcií, takže vývojár sa nemusí starať o názvy objektov či rozhraní, zmeny v DBus atď. Viac informácií o DBus v Maeme je možné nájsť napríklad na wiki.maemo.org.

maemo connectivity licenses

Multimédiá

link

O vrstvu vyššie sa nachádzajú rôzne abstrakcie hardvéru. Napríklad značnú časť multimediálnych funkcií rieši PulseAudio, ktoré sa stará o transparentný a unifikovaný prístup k zvukovým funkciám systému. Umožňuje napríklad nezávislé smerovanie audia v systéme – takže aj keď sú pripojené sluchátka, pri telefonáte sa môže vyzváňanie zároveň smerovať do nich, ale aj do bluetooth headsetu či do hlasitých reproduktorov telefónu (zároveň so sluchátkami). Navyše je vďaka tomu možné nastaviť hlasitosti nezávisle na sebe – čo sa zíde znovu v prípade zvonenia, ak je napr. stiahnutá hlasitosť prehrávania hudby, ale zvonenie chceme stále hlasité. Okrem toho PulseAudio v systéme zrejme slúži aj na dynamické obmedzovanie hlasitosti – zabraňuje tak poškodeniu vstavaných reproduktorov.

V systéme ďalej nájdeme podporu pre rôzne video a audio kodeky, ktoré sú relatívne jednoducho prístupné cez rozhranie GStreamer. Toto rozhranie tak isto umožňuje napr. v python aplikáciách pracovať s kamerou – je zrejmé, že v prípade interpretovaných jazykov je realtime práca s týmto druhom dát nerealizovateľná. Vďaka GStreameru je ale možné vyrobiť reťazec akcií typu „získaj obrázok – pridaj kontrast – zobraz v okne“, ktorý sa vykonáva pomocou optimalizovaného binárneho kódu – (už starší) príklad je možné vidieť napr. na maemo wiki. Okrem toho je možné použiť Phonon rozhranie integrované v Qt – čo zjednodušuje portovanie multimediálnych aplikácií aj na ďalšie platformy okrem linuxových.

Vyčerpávajúci popis multimediálnych rozhraní je možné nájsť opet napríklad na wiki.maemo.org.

Telekomunikačné rozhrania

link

Telefónne funkcie sú na najnižšej úrovni ovládateľné pomocou AT príkazov, ktoré sa doručujú pomocou aplikácie phonet. Na vyššej úrovni je možné používať DBus volania rôznych démonov (napríklad cez objekt /com/nokia/csd/Call) – pomocou nich je možné relatívne jednoducho zadefinovať napr. vlastné funkcie, ktoré budú volané pri príchodzích hovoroch či sms (a vyhnúť sa tak potrebe pollingu nových udalostí).

Asi najdôležitejšou súčasťou komunikačného rozhrania Maema je RTCom framework. Tento framework má viacero vrstiev a priamo či nepriamo pokrýva služby aj aplikácie pre komunikáciu ako cez internet (napr. instant messaging), tak cez mobilné siete (sms a telefonáty). Zďaleka nie všetky komponenty tohoto frameworku sú opensource – ako je možné vidieť aj na odkazovanej stránke o RTCom. Na druhej strane podľa všetkého Nokia mnoho súčastí časom otvorí – námatkovo napr. rtcom-eventlogger bol v dobe uvedenia N900 uzavretý, kdežto teraz už je možné jeho zdrojové kódy stiahnúť.

Ako back-end RTCom slúži framework telepathy. Toto modulárne rozhranie umožňuje Maemu mnoho zaujímavých vecí – od jednoduchej rozšíriteľnosti o nové protokoly (napr. plugin telepathy-haze umožňuje komunikáciu pomocou ICQ, MSN atď. – priamo cez štandardné telekomunikačné rozhrania Maema), cez spájanie kontaktov až po zaznamenávanie správ. Na ukladanie väčšiny dát RTCom/telepathy sa používa databáza sqlite, takže pri troche snahy nie je pre znalých problém spracovať dáta v mobile všetkými myslitelnými spôsobmi. Samozrejme to so sebou nesie aj nebezpečenstvo zneužitia osobných dát – na druhej strane väčšina linuxákov vie, že „security through obscurity“ príliš nefunguje. Naopak, veľkou výhodou tohoto prístupu je možnosť jednoduchého importu vlastných dát (kontaktov či správ z predchádzajúcich mobilov) priamo, pomocou SQL dotazov.

maemo control services system

Desktop/Window manager

link

Nad X serverom beží správca okien Matchbox a grafické prostredie Hildon. Prostredie Maemo 5 je celé založené na knižniciach Gtk+, do budúcnosti už ale Nokia skôr plánuje použitie Qt. Podľa všetkého by ale Gtk+ malo ostať podporova(teľ)né komunitou aj v ďalších verziách Maemo/MeeGo.

Ako sa dá zrejme od grafického rozhrania očakávať, jeho detailný popis by zabral mnoho článkov. Pre predstavu, na tejto stránke je stručne popísaný prehľad UI frameworku Maema. Z najzaujímavejších komponentov užívateľského rozhrania vyberáme:

Aplikačný software

link

Až na telekomunikačné rozhranie je Maemo platforma relatívne otvorená – k väčšine (dôležitých) komponentov je možné získať zdrojové kódy pod licenciou (L)GPL. S aplikáciami je to trochu zložitejšie – takže s úpravou kalkulačky či mapového software počítať asi nemôžme. Mnoho aplikácií ale otvorených je (napr. browser), ďalšie možno budú – a už teraz existuje mnoho adekvátnych opensource náhrad za proprietárne aplikácie. V každom prípade situácia nie je určite zásadne horšia než v prípade Androidu či MacOS X.

Záver

link

V dnešnom článku sme si stručne zhrnuli architektúru a rozhrania poskytované operačným systémom Maemo 5. Napriek všetkým kladom sa síce stále nejedná o dokonalý systém (určite nie podľa definície RMS) – je ale vidno veľké úsilie Nokie o otvorenosť vývoja. Táto snaha by mala byť ešte viac viditeľná pri vývoji nadchádzajúceho systému – spoločného podniku Intelu a Nokie – MeeGo. Je ťažké dnes povedať, čo to bude znamenať pre N900ku. Je síce isté, že Nokia bude naďalej pracovať na vývoji aktualizácií Maemo 5 – menej isté už ale je, či sa dočkáme ďalšieho zariadenia s týmto systémom. Je tak isto otázne, či bude N900ka dostatočne výkonná/upgradeovateľná na prevádzkovanie MeeGo. Na druhej strane, Nokia sľubuje zachovať softvérovú kompatibilitu (takže bude možné vyvíjať software pre obe platformy za použitia toho istého kódu) – uvidíme teda, do akej miery sa jej to podarí dodržať.

Seriál Nokia N900 (dílů: 6)

První díl: Nokia N900 – představení, poslední díl: Nokia N900 – Maemo a hry.
Předchozí díl: Nokia N900 – hardwarové vnitřnosti a ovladače
Následující díl: Nokia N900 – Maemo 5 a software

Související články

MeeGo – Maemo a Moblin spolu proti Androidu
HTC Hero – Android zase o kus lepší
HTC Magic – Android od Vodafone
T-Mobile G1 s Google Android
Palm Pre a WebOS, konkurent pro iPhone a Android
Palm Pre z pohledu dlouholetého palmisty – hardware
Palm Pre a velmi povedený webOS – software
Nokia N97 – bílou na svatbu a černou na pohřeb
Quo vadis Maemo?

Další články z této rubriky

Týden na ITBiz: Svět IT a burzy, umělá inteligence, Nvidia a outsourcing
Linuxové foto novinky: pozvolná evoluce
PCLinuxOS 2017.2 MATE - tak trochu zvláštní linuxová distribuce
Krátký pohled na Fedoru 25, Wayland a GNOME 3.22
Naprosto ničím nezajímavé Lubuntu 16.10

Diskuse k tomuto článku

2.4.2010 08:03 Honza
Rozbalit Rozbalit vše Re: Nokia N900 – Maemo 5 pod povrchem
Odpovědět | Sbalit | Link | Blokovat | Admin
Nedávno jsem chtěl cosi pro maemo naprogramovat a měl jsem z toho dost smíšené pocity. Hlavně, že je tam taková směska knihoven a nástrojů, kažná knihovna má jinou dokumentaci, občas i jinou licenci, jiné webové stránky, někdy i jiný způsob překladu, je docala práce se v tom vyznat. Do toho další knihovny vznikají, jiné zanikají. Někdy se 2 nástroje na jednu věc používají najednou. Trochu jako když pejsek a kočička pekli dort. Takovej binec, prostě jako když člověk píše v C nebo C++ na normálním linuxu. Pokud třeba máte selský rozum a znalost C++, jinak o linuxu nic nevíte a chcete napsat na linuxu ekvivalent GUI přehráveče wavů z win3.1, tak nejdřív musíte nastudovat x gui knihoven, x audio knihoven, knihovnu na vlákna, unixové procházení adresářů, pár buildovacích systémů. Pak učinit n rozhodnutí a nastudovat n knihoven... Pokud chcete na maemu udělat něco specifického pro telefon, tak je problém principiálně stejný, jen horší v tom, že tentýž problém řešilo řádově méně lidí, takže google pomáhá také řádově méně. V systémech s jedním API (Qt, J2SE, Android, ...) začátečník znalý jazyka a vlastnící selský rozum ten GUI přehrávač nebo cokoli jiného napíše řádově rychleji a kvalitněji.
2.4.2010 10:59 ewqrqwr
Rozbalit Rozbalit vše Re: Nokia N900 – Maemo 5 pod povrchem
a tam neni nejaka "nejvrchnejsi vrchni" vrstva, ktera vsecko dole obali a programator pak ma uz jen jedno API ?
2.4.2010 12:41 andreeeeee
Rozbalit Rozbalit vše Re: Nokia N900 – Maemo 5 pod povrchem
ja myslim ze absolutna vacsina programatorov skonci pri Qt, maximalne gstreameri..

kazdopadne ano - ten "interface" je kus chaoticky - na druhej strane to bol asi zamer - pouzit existujuce kniznice atd. Vdaka tomu je mozne portovat desktopovy software (resp. vyvijat multiplatformovo) ovela jednoduchsie, ako na nejaky WebOS a spol.
2.4.2010 15:32 Honza
Rozbalit Rozbalit vše Re: Nokia N900 – Maemo 5 pod povrchem
No, já jsem tam nic takového nenašel :-) Naštěstí jsem to mohl zabalit dřív, než jsem skutečně začal něco psát. Ale jestli jsem to pochopil, tak se to bude postupně posouvat směrem ke Qt, kde bude api i na telefon, takže tam asi nějaké všeobjímající api bude. (Pokud je tu nějaký znalec, nechť mě opraví, můj kontakt s maemem byl jen povrchní.)
Rezza avatar 2.4.2010 16:53 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: Nokia N900 – Maemo 5 pod povrchem
Ano, bude to v Qt, ale to zase bude do nejakych bindingu balit zakladni veci - ala Telepathy-Qt (i kdyz ma byt i jiste telefonni API). Ona je to i vyhoda, i nevyhoda v jednom a tezko rict, co je lepsi.
2.4.2010 08:58 JVid
Rozbalit Rozbalit vše Re: Nokia N900 – Maemo 5 pod povrchem
Odpovědět | Sbalit | Link | Blokovat | Admin
… Na spomenutej 256 MiB partícii, ktorá používa filesystém „rootfs“ …
To ale není filesystém, je to jenom speciální instance ramfs/tmpfs vytvořená proto, aby každý počítač měl vždy nějaký kořen. Pak se při bootu většinou postupuje tak, že se do něj rozbalí initramfs, nebo se přes rootfs namountuje opravdový root umístěný jinde.
2.4.2010 09:22 andreeeeee
Rozbalit Rozbalit vše Re: Nokia N900 – Maemo 5 pod povrchem
mate samozrejme pravdu, sice mi to bolo pri pisani clanku podozrive - ale nejak som na to potom zabudol...

po nabootovani je sice root filesystem rootfs, ale je nan (podla mount) rovno do / namontovany ubifs z tej 256 particie.. dufam :)

vyzera to takto:
rootfs on / type rootfs (rw)
ubi0:rootfs on / type ubifs (rw,bulk_read,no_chk_data_crc)
2.4.2010 15:32 Kvakor
Rozbalit Rozbalit vše Re: Nokia N900 – Maemo 5 pod povrchem
V dokumentaci jádra se na jednom místě dokonce píše, že ramfs namountovaný na / zjednodušuje kód, protože se nemusí nikdy testovat, jestli existuje nějaký souborový systém - je zaručeno, že vždy alespoň jeden existuje. Této technice se říká Slon v Káhiře podle série (nejen) programátorských vtipů, popisujících alghoritmus na hledání slonů v Africe .-)
Ondřej Kuda avatar 2.4.2010 16:31 Ondřej Kuda | skóre: 27 | blog: obcasny_blog
Rozbalit Rozbalit vše Re: Nokia N900 – Maemo 5 pod povrchem
Odpovědět | Sbalit | Link | Blokovat | Admin
MeeGo uz je dostupne a melo by behat i na N900. Ze by autor zrecenzoval i Meego na N900? ;-)
The images available today are: Intel Atom-based netbooks, ARM-based Nokia N900, and Intel Atom-based handset (Moorestown). These images can be downloaded from http://meego.com/downloads
Rezza avatar 2.4.2010 16:52 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: Nokia N900 – Maemo 5 pod povrchem
Aktualni Meego neni nic jineho, nez zaklad systemu, ktery nabootuje do konzole...
andree avatar 2.4.2010 20:04 andree | skóre: 39 | blog: andreeeeelog
Rozbalit Rozbalit vše Re: Nokia N900 – Maemo 5 pod povrchem
ak autor bude mat n900 do doby, ked meego bude bootovat a bude ako-tak pouzitelne, nevidi v tom problem :-))) zatial ale tam toho fakt moc na recenziu nie je asi :o))
2.4.2010 17:43 chocholo
Rozbalit Rozbalit vše Re: Nokia N900 – Maemo 5 pod povrchem
Odpovědět | Sbalit | Link | Blokovat | Admin
Ted to nemohu najit, ale na nejakem Maemo related blogu jsem cetl o Meego od Nokie, ze to nebude uplne Meego, respektive bude, ale bude mit jiny zpusob konfigurace, jiny balickovaci system a par dalsich "nepodstatnych" rozdilu. Clanek je o tom, jak bude Meego roztristena znacka, protoze vsechno a nic nebude meego (verze pro mobily, verze (nekompatibilni) pro netbooky, verze pro notebooky, Nokia verze, vse Meego bez rozliseni).
2.4.2010 17:54 chocholo
Rozbalit Rozbalit vše Re: Nokia N900 – Maemo 5 pod povrchem

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.