Next: Hardware
Up: Palm OS Device Architecture
Previous: Palm OS Device Architecture
Palm OS was designed to be open and modular to support application development by third-parties. The notion of layer- or file-based access control is notably absent. It is not surprising that all program code and data can be accessed and modified by any user or other application. In such uniform memory access scenarios, it is difficult to differentiate between legitimate and malicious applications solely from memory read/writes and system calls.
[20] offers the following overview on file system and application structure:
- Palm OS does not use a traditional flat file system. Data is stored in memory chunks called ``records'', which are grouped into ``databases''. A database is analogous to a file. The difference is that data is broken down into multiple records instead of being stored in one contiguous chunk.
- Palm OS applications are generally single-threaded, event-driven programs. Only one program runs at a time. Each application has a PilotMain function that is equivalent to main in C programs. To launch an application, Palm OS calls PilotMain and sends it a launch code. The launch code may specify that the application is to become active and display its user interface (called a ``normal launch''), or it may specify that the application should simply perform a small task and exit without displaying its user interface. The sole purpose of the PilotMain function is to receive launch codes and respond to them. Future versions of the Palm OS may allow third-party applications to be multi-threaded.
- Applications can send launch codes to each other, so an application might be launched from another application or it might be launched from the system. An application can use a launch code to request that another application perform an action or modify its data.
Next: Hardware
Up: Palm OS Device Architecture
Previous: Palm OS Device Architecture
Kingpin
2001-05-09