Palm OS is the computer operating system that provides a software platform for the Palm series of handheld personal digital assistants (PDAs) made by Palm Inc. According to Palm, Palm OS was designed from the beginning to fit into a palm-size device of a specific size and with a specific display size. Microsoft's Windows CE and Symbian's EPOC (originated by Psion) are also operating systems for handheld devices, but are designed to serve a broader range of devices.
Palm OS uses multitasking, but only one task is for applications. The user uses one application at a time, one application program must finish before the next can be selected. This constraint allows the operating system to devote full attention to the application that is open. The space needed by the system for any application that is running is kept in dynamic, reusable random access memory (RAM). The application and its related database are kept in what is called permanent storage, but here the permanent storage is RAM (rather than a hard disk) that cannot be reused as the dynamic RAM can. Palm OS divides an application into runnable code and different types of data elements, such as user interface elements and icons. The data elements can be easily changed without necessarily having to rewrite code.
Palm OS comes with these applications built-in: Dates, Address Book, To Do List, Memo Pad, Calculator, and Password Protection. New applications can be written and added using several facilities that accelerate development.
Palm supports Metrowerks' CodeWarrior as the official software development kit (SDK), using a Macintosh or Windows environment. UNIX platform users can use a kit called GCC, which is available through the Free Software Foundation. Programmers can use C, C++, assembler, or scripting. The Palm user interface is emulated within a window in the desktop environment, encouraging rapid application development. Simpler applications can be developed using Palm's forms interface.