КПК з собою усюди, і ні Додатки ні Додаткові модулі не повинні цьому заважати.
Особливості PalmOS:
В§ PalmOS однозадачная ОС. p> В§ Підтримує графічний інтерфейс (діалоги, кнопки, списки, шрифти)
В§ Додатки PalmOS одно-потокові, подієво орієнтовані. p> В§ У PalmOS є своя Файлова система, файли належать ОС захищені від запису на рівні ядра.
В§ PalmOS не завантажується і не В«завершуєВ» свою роботу, але у палм є Reset це спеціальна процедура віддалене нагадує завантаження.
В§ Має документоване API для додатків (групи функцій - managers)
В§ Автоматично керує харчуванням. p> В§ Захищає тільки свій код від втручання додатків, але додатки від додатків вона не захищає.
В§ Палм є ОС з мікро ядром (Micro Kernel OS), основна якість такого типу ОС це гарантовано мале час реакції на будь-яке зовнішні подія. (Мікро ядро ​​AMX розроблено фірмою Kadak)
В
малюнок з PalmOS SDK - горизонтальний зріз. h2> 4.2. Пам'ять
Пам'ять одна з найважливіших частин PalmOS яка багато в чому визначає архітектуру ОС і її особливості. А саме той факт що пам'яті мало і що іншого типу пам'яті в системі немає.
Фізично пам'ять розташована на картах пам'яті - Card0, Card1, ... Кожна карта пам'яті може мати RAM і ROM сегменти. Весь простір RAM сегмента розділене на Dynamic RAM і Storage RAM. Storage RAM це еквівалент диска (HDD), там знаходяться тільки файли. Dynamic RAM це еквівалент звичайної пам'яті. У Dynamic RAM знаходяться всі динамічні об'єкти програми і ОС, стек, або просто блоки пам'яті якими управляє програма (крім самих програм).
У PalmOS код програми не завантажується в пам'ять для виконання. Навіщо якщо все додатками так в пам'яті? виконання відбувається за місцем (inplace), тобто всі програми завжди виконуються прямо з Storage RAM, читання файлу теж відбувається таким чином.
Т.к. в ROM це сегмент пам'яті лише для читання то відповідно там знаходиться тільки файли (кожен КПК має карту пам'яті - Card0, в її ROMе записана ОС з вбудованими додатками). p> Розміри Dynamic RAM і Storage RAM визначаються динамічно при ініціалізації ОС і залежать від загального розміру пам'яті в КПК. Працювати з Пам'яттю можна через спеціальну групу функцій яка називається Memory Manager . br/>
MemPtrNew (size) - виділити блок пам'яті і отримати покажчик.
MemHandleNew (size) - Виділити блок пам'яті і отримати його дескриптор (handle).
MemHandleLock (handle) - отримати покажчик від дескриптора.
Якщо додаток запросить занадто великий блок пам'яті а доступні будуть тільки маленькі блоки то PalmOS справить фонову дефрагментацію пам'яті, при цьому через переміщення існуючих блоків, зміняться їхні базові покажчики. Щоб зміна покажчиків не вплинуло на додаток - існ...