7. 9. 2007

Palm OS is a multitasking operating system

Velké diskuze se vždy vedly o tom, zda Palm OS je nebo není multitaskingový OS.

citace z Developer Knowledge Base

Palm OS is a multitasking operating system. How can I create a task?

Palm OS 4.x and earlier is built on top of a small kernel that Palm licensed from Kadak. The terms and conditions of that license specifically state that Palm may not expose the API for creating/manipulating tasks within the OS. If you need access to these calls you need to contact Kadak by visiting their website at http://www.kadak.com
Palm OS Garnet (5.x) uses a kernel developed at Palm, but it does not expose tasks or threads to user applications, since the OS is built with a set number of threads that cannot be changed at runtime, and primitives are not available for effective management of threads.


Oficiálně Palm OS 5 tedy není multitaskingový OS.

Zábava ale je, že neoficiálně Palm OS 5 multitaskingové vlastnosti má. Mobile Stream (autoři např. Card Reader, který dokáže běžet takzvaně "na pozadí") nabízejí vlastní Unofficial SDK pro Palm OS 5, která umožňuje využít určitých multithreadingových vlastností Palm OS 5.

citace z mobile-stream.com/devzone
SDK allows for the following advanced features
Use the PalmOS core/library API without ugly 68K glue
Use the multi-threading capabilities of PalmOS
Develop ARM-native libraries/extensions and applications
Use DSP-accelerated codecs on some devices
Use the hardware-accelerated 2D graphics on some devices
Use the undocumented image processing capabilities of some device (both from 68K/ARM programs)
SDK contains headers for the undocumented libraries/modules
DAL library
68K Emulator (PACE) library
palmOne BMP/GIF/TIFF/PNG/JPEG manipulation libraries
palmOne ZLib library
DriveMode/DataImport libraries
Sony HHE Audio DSP codecs library
Sony HHE Graphics Engine library
Sony DAL library
Sony System library
Headers for libraries/modules documented for use in 68K programs only
Crypto Provider library
Bluetooth library
palmOne T3/T5/LifeDrive/T|X Active Input Area libraries
palmOne Codec Plugin Manager library
palmOne PmKeyLib, PmSysGadgetLib, PmUIUtilLib
palmOne High-Resolution timer library for PXA27x-based devices
ARM library entry points listings for the automatic stub generation
Samples (provided under GPLv2)
DspLibTest - ARM-native application with UI and basic multithreading
GE2DTest - PNO-enabled application that shows how to use the Sony HHE Graphics Engine library
ImgFileTest - 68K program that shows how to use the undocumented ImgFileLib library
JpegDecodeTest - 68K program that shows how to use the undocumented ImgFileLib library
SilkMgrStub - ARM-native library with 68K interface that implements the Sony virtual silk API for non-Sony devices
Currently, the SDK is best suited for the PODS 1.2.


Upraveno 11:00 07/09/2007 (předchozí "krátká verze" tohoto postu mi unikla trochu předčasně za což se omlouvám)

6 komentářů:

Michael řekl(a)...

Na toto téma se již dohadoval dmitry na 1rsc. Bylo tam pár chytráků, kteří stále tvrdili, že to multitasking je, když jim přehrávač přehrává na pozadí. Bohužel se jedná pouze o notifikace a funkci samotné aplikace. Ne přímo OS = aplikace na to musí být speciálně naprogramována, jinak stisknutím domečku končí. Což je rozdíl mezí PALM OS a WM

palmista řekl(a)...

Článek mi unikl trochu brzy, byl to jen základní koncept :-( teď už je komplet.

palmista řekl(a)...

Ještě doplním, že Palm OS 5 umí právě více než jen ty notifikace.
Například funkce SysTaskCreate.

Michael řekl(a)...

Rozdíl však je v tom, že narozdíl od nativního multitaskingu (jak PC tak PDA), jde v případě PALM OS jen o "náhražku" (uvozovky si nahraďte sami). Tam musí být aplikace speciálně napsaná, aby mohla běžet na pozadí. Například Pocket Tunes vs. Agendus - PT na pozadí běží, Agendus již nikoliv. Ve WM je to prostě tak, že každá aplikace na pozadí může běžet. Prostě jí jen spustím a pak si vlezu zpět do menu. A spouštím tak dlouho, dokud mám paměť.
Toto samozřejmě není kritika či obhajoba jakéhokoliv z těchto systémů.

Anonymní řekl(a)...

Proc nahrazka?
Vic veci soucasne bezet nemuze nikdy. Multitasking je jen schopnost prepinat mezi aplikacema tak, aby se zdalo ze bezi soucasne, a to mam dojem PalmOS dela...
Btw, nechapu proc by treba agendus mel bezet na pozadi... :/ Vetsina programu co by mela bezet na pozadi to umi, navic existuji DA aplikace (ktere lze vytvorit zjakekoli, pomoci Accessorizer).
Ze programatoriu nepisou aplikace bezici na pozadi je vec druha. Ale vetsina aplikaci u kterych tro ma smysl umi bezet na pozadi (IM, hudba, textovy editor (v popredi pres DA)). Jeste chybi nejakej webovej prohlizec, a bylo by to.
Podle me je jedno jak OS resi "multitasking". Ten PalmOS zpusob je setrnejsi na systemovy zdroje (treba poustet na pozadi video... :/ nebo blby PIM). Ve WM je to zas jednodussi pro programatora. Takze je to zas nerozhodne.

Michael řekl(a)...

Agendus jsem uvedl pouze jako příklad. Uznávám že docela blbý příklad. Místo toho si tedy dosaďte klidně nějakej FTP commander, představte si, že ho běžíte na svým zařízení. Asi tak.. Jen tedy nechápu, jak má být PALM OS šetrnější na systémové zdroje.. Pustím si aplikaci Web na E2 a vylezu - ejhle, kam zmizela ta paměť? Zapnu si po tom Pocket Tunes a zase vylezu (vypnu přehrávání) - kde je ta paměť? Pak zkusím zapnout Palmary Clock wireless a jde to do resetu. Není tedy rozdílu, že si tyto 3 aplikace (samozřejmě teoreticky, pro WM neexistují) zapnul najednou. Taky mi to sežere paměť. Po jejich ukončení jí mám zase zpět.