Operating Systems of Mobile Devices (OSMZ)

Week XII. (26.4.-30.4.2021)

From today's point of view, the lecture on PalmOS and Symbian is already a look back at technologies that have not survived to the present day and have been "rolled over" by Android and iOS operating systems. The content of the lecture is no longer the subject of the exam.

PalmOS was something similar to Android in 2002 - it owned over 80% of the total mobile market. To illustrate this, I recommend looking at a typical PalmOS organizer from the perspective of a modern "review". During the time of their design, the designers assumed that the user would use it together with a desktop computer and that Palm would only serve as an intelligent diary and browser. That's why they chose the Motorola MC68000 16-bit processor as the basis, clocked at 16 MHz. In newer models, the processor frequency is doubled, and in models with PalmOS 5.0, an ARM processor clocked at higher frequencies is already used.

Computers running PalmOS up to version 4.1 are not designed for multimedia applications and do not have the appropriate hardware resources. That began to change later, but since Palm OS5, both the system and hardware began to lag significantly behind its rival Windows PocketPC from Microsoft, and after a few years it was completely over. Its history is summarized on Wikipedia - https://en.wikipedia.org/wiki/Palm_OS. At present, you will almost certainly not encounter these devices (unless you are a collector), and if it is mentioned, it is rather the subject of various experiments and technological demonstrations, such as this technological demo showing the PalmOS run on the STM32F4 Discovery kit. The video also includes a very detailed description. Many of these devices had very modest equipment (2MB ROM and 8MB RAM) and so it was necessary to use various "tweaks" and hardware hacks that bypassed many limitations. Instead of the keyboard, the Graffiti system (later Graffiti 2) was chosen for character entry; this change brought a significant reduction in price. The display resolution of most Palm computers is 160 by 160 pixels and 16 shades of gray; the display is 5 - 6 cm large. Of the 8 MB of RAM, 512 KB is used for the stack and operating system variables, and the remaining 7.5 MB can be completely filled with applications and data. In addition, the average application size for PalmOS is around 50 KB.

The lecture mentions memory protection techniques (the processor does not have an MMU) and a method of storing data in the form of records that allowed the efficient use of each byte of memory. The operating system did not allow preemptive multitasking and uses application cooperation. This requires that all applications be built on a similar basis. The heart of every program must be the so-called event processing loop, in which we process system event messages that were delivered to our application by the operating system. If the application stops processing events, the computer "freezes" and needs to be restarted. The PalmOS operating system keeps event messages in a queue, in which messages are stored sequentially on the one hand and are removed sequentially and at different speeds by the active application or the operating system on the other. (PalmOS actually maintains two queues: the first for moving the pen across the Graffiti desktop, which generates many events, and the second for all other system events).

From today's point of view, however, these practices are already obsolete and it makes sense to think of them only as inspiration for technologies that appeared later.



Simulator PalmOS with collection of various applications