# Palm OS

Palm OS (also known as Garnet OS) is a discontinued mobile operating system initially developed by Palm, Inc., for personal digital assistants (PDAs) in 1996. Palm OS was designed for ease of use with a touchscreen-based graphical user interface. It was provided with a suite of basic applications for personal information management. Later versions of the OS were extended to support smartphones. The software appeared on the company's line of Palm devices while several other licensees have manufactured devices powered by Palm OS.
Following Palm's purchase of the Palm trademark, the operating system was renamed Garnet OS. In 2007, ACCESS introduced the successor to Garnet OS, called Access Linux Platform; additionally, in 2009, the main licensee of Palm OS, Palm, Inc., switched from Palm OS to webOS for their forthcoming devices.

## Creator and ownership

Palm OS was originally developed under the direction of Jeff Hawkins at Palm Computing, Inc. Palm was later acquired by U.S. Robotics Corp., which in turn was later bought by 3Com, which made the Palm subsidiary an independent publicly traded company on March 2, 2000.
In January 2002, Palm set up a wholly owned subsidiary to develop and license Palm OS, which was named PalmSource. PalmSource was then spun off from Palm as an independent company on October 28, 2003. Palm (then called palmOne) became a regular licensee of Palm OS, no longer in control of the operating system.
In September 2005, PalmSource announced that it was being acquired by ACCESS.
In December 2006, Palm gained perpetual rights to the Palm OS source code from ACCESS. With this Palm can modify the licensed operating system as needed without paying further royalties to ACCESS. Together with the May 2005 acquisition of full rights to the Palm brand name, only Palm can publish releases of the operating system under the name 'Palm OS'.
As a consequence, on January 25, 2007, ACCESS announced a name change to their current Palm OS operating system, now titled Garnet OS.

## OS overview

Palm OS was a proprietary mobile operating system. Designed in 1996 for Palm Computing, Inc.'s new Pilot PDA, it has been implemented on a wide array of mobile devices, including smartphones, wrist watches, handheld gaming consoles, barcode readers and GPS devices.
Palm OS versions earlier than 5.0 run on Motorola/Freescale DragonBall processors. From version 5.0 onwards, Palm OS runs on ARM architecture-based processors.
The key features of the current Palm OS Garnet are:
* Simple, single-tasking environment to allow launching of full screen applications with a basic, common GUI set
* Monochrome or color screens with resolutions up to 480x320 pixel
* Handwriting recognition input system called Graffiti 2
* HotSync technology for data synchronization with desktop computers
* Sound playback and record capabilities
* Simple security model: Device can be locked by password, arbitrary application records can be made private
* TCP/IP network access
* Serial port/USB, infrared, Bluetooth and Wi-Fi connections
* Expansion memory card support
* Defined standard data format for personal information management applications to store calendar, address, task and note entries, accessible by third-party applications.
Included with the OS is also a set of standard applications, with the most relevant ones for the four mentioned PIM operations.

## Version history and technical background

Manufacturers are free to implement different features of the OS in their devices or even add new features. This version history describes the officially licensed version from Palm/PalmSource/ACCESS.
All versions prior to Palm OS 5 are based on top of the AMX 68000 kernel licensed from KADAK Products Ltd. While this kernel is technically capable of multitasking, the "terms and conditions of that license specifically state that Palm may not expose the API for creating/manipulating tasks within the OS."

### Palm OS 1.0

Palm OS 1.0 is the original version present on the Pilot 1000 and 5000. It was introduced in March 1996.
Version 1.0 features the classic PIM applications Address, Date Book, Memo Pad, and To Do List. Also included is a calculator and the Security tool to hide records for private use.
Palm OS 1.0 does not differentiate between RAM and file system storage. Applications are installed directly into RAM and executed in place. As no dedicated file system is supported, the operating system depends on constant RAM refresh cycles to keep its memory. The OS supports 160x160 monochrome output displays. User input is generated through the Graffiti handwriting recognition system or optionally through a virtual keyboard. The system supports data synchronization to another PC via its HotSync technology over a serial interface. The latest bugfix release is version 1.0.7.

### Palm OS 2.0

Palm OS 2.0 was introduced on March 10, 1997 with the PalmPilot Personal and Professional. This version adds TCP/IP network, network HotSync, and display backlight support. The last bugfix release is version 2.0.5.
Two new applications, Mail and Expense are added, and the standard PIM applications have been enhanced.

### Palm OS 3.0

Palm OS 3.0 was introduced on March 9, 1998 with the launch of the Palm III series. This version adds IrDA infrared and enhanced font support. This version also features updated PIM applications and an update to the application launcher.
Palm OS 3.1 adds only minor new features, like network HotSync support. It was introduced with the Palm IIIx and Palm V. The last bugfix release is version 3.1.1.
Palm OS 3.2 adds Web Clipping support, which is an early Palm-specific solution to bring web-content to a small PDA screen. It was introduced with the Palm VII organizer.
Palm OS 3.3 adds faster HotSync speeds and the ability to do infrared hotsyncing. It was introduced with the Palm Vx organizer.
Palm OS 3.5 is the first version to include native 8-bit color support. It also adds major convenience features that simplify operation, like a context-sensitive icon-bar or simpler menu activation. The datebook application is extended with an additional agenda view. This version was first introduced with the Palm IIIc device. The latest bugfix release is version 3.5.3.
As a companion, Palm later offered a Mobile Internet Kit software upgrade for Palm OS 3.5. This included Palm's Web Clipping software, MultiMail (which was later renamed to VersaMail) Version 2.26 e-mail software, handPHONE Version 1.3 SMS software, and Neomar Version 1.5 WAP browser.

### Palm OS 4.0

Palm OS 4.0 was released with the new Palm m500 series on March 19, 2001. This version adds a standard interface for external file system access (such as SD cards). External file systems are a radical change to the operating system's previous in-place execution. Now, application code and data need to be loaded into the device's RAM, similar to desktop operating system behavior. A new Universal Connector with USB support is introduced. The previous optional Mobile Internet Kit is now part of the operating system. Version 4.0 adds an attention manager to coordinate information from different applications, with several possibilities to get the user's attention, including sound, LED blinking or vibration. 16-bit color screens and different time zones are supported. This version also has security and UI enhancements.
Palm OS 4.1 is a bugfix release. It was introduced with the launch of the Palm i705. The later minor OS update to version 4.1.2 includes a backport of Graffiti 2 from Palm OS 5.2.
Palm OS 4.2 Simplified Chinese Edition is targeted especially for the Chinese market with fully Simplified Chinese support, co-released with Palm OS 5.3. No device has been manufactured with this version up to now.

### Palm OS 5.0

Palm OS 5.0 was unveiled by the Palm subsidiary PalmSource in June 2002 and first implemented on the Palm Tungsten T. It is the first version to support ARM devices and replaced the Kadak AMX68000 kernel with the custom MCK kernel, named for its developer, that was written in-house by Palm. Applications written for the prior OS versions use the older DragonBall 68K instruction set and are supported via the Palm Application Compatibility Environment (PACE) emulator in Garnet. Even with the additional overhead of PACE, Palm applications usually run faster on ARM devices than on previous generation hardware. New software can take advantage of the ARM processors with small units of ARM code, referred to as ARMlets.
With a more powerful hardware basis, Palm OS 5 adds substantial enhancements for multimedia capabilities. High density 320x320 screens are supported together with a full digital sound playback and record API. Palm's separate Bluetooth stack is added together with an IEEE 802.11b Wi-Fi stack. Secure network connections over SSL are supported. The OS can be customized with different color schemes.
For Palm OS 5, PalmSource developed and licensed a web browser called PalmSource Web Browser based on ACCESS' NetFront 3.0 browser.
Palm OS 5.2 is mainly a bugfix release, first implemented in the Samsung SGH-i500 in March 2003. It added support for 480x320 resolutions and introduced the new handwriting input system called Graffiti 2; the new input system was prompted by Xerox' lawsuit win against Palm. Graffiti 2 is based on Jot from CIC. The last bugfix release is version 5.2.8.
Palm OS 5.3 Simplified Chinese Edition released in September 2003, added full Simplified Chinese support, further support for QVGA resolutions, and a standard API for virtual Graffiti called Dynamic Input Area. This version first shipped on Lenovo's P100 and P300 handhelds.
Palm OS Garnet (5.4) added updated Bluetooth libraries and support for multiple screen resolutions ranging from 160x160 up to 480x320. It first shipped on the Treo 650 in November 2004. This version also introduced the Garnet moniker to distinguish it from Palm OS Cobalt 6.0. The last bugfix release is version 5.4.9.
Garnet OS 5.5 dropped the Palm moniker and, as of 2007, is the current version developed by ACCESS. This version is dedicated for use inside the Garnet VM virtual machine.
Garnet VM was announced and released by ACCESS in November 2007 as a core part of the Access Linux Platform and as an emulator allowing Nokia Internet Tablets to run applications written for the Garnet OS. In June 2010, ACCESS release Garnet VM version 6 (a.k.a. Garnet VM Beta 6 1.05b).

### Palm OS Cobalt

Palm OS Cobalt (6.0) was the designated successor for Palm OS 5. It was introduced on February 10, 2004, but is no longer offered by ACCESS (see next section). Palm OS 6.0 was renamed to Palm OS Cobalt to make clear that this version was initially not designated to replace Palm OS 5, which adopted the name Palm OS Garnet at the same time.
Palm OS Cobalt introduced modern operating system features to an embedded operating system based on a new kernel with multitasking and memory protection, a modern multimedia and graphic framework (derived from Palm's acquired BeOS), new security features, and adjustments of the PIM file formats to better cooperate with Microsoft Outlook.
Palm OS Cobalt 6.1 presented standard communication libraries for telecommunication, Wi-Fi, and Bluetooth connectivity. Despite other additions, it failed to interest potential licensees to Palm OS Cobalt.

### Third-party OS enhancements

Several licensees have made custom modifications to the operating system. These are not part of the official licensed version.
* Palm developed a Bluetooth API for external Bluetooth SDIO Cards for Palm OS 4.0 devices. The Bluetooth stack was later included in Palm OS 5
* Palm added a virtual graffiti input area API especially for their Tungsten T3 device. This API was later superseded by the official Dynamic Input Area API in Palm OS 5.3.
* Palm added the Non-Volatile File System in Palm OS 5.4, and used Flash for storage instead of DRAM, preventing data-loss in the event of battery drain. However, this fundamentally changed the way programs were executed from the Execute-in-Place system that Palm OS traditionally used, and has been the source of many compatibility problems, requiring many applications to add explicit NVFS support for correct operation.
* For their camera-equipped devices, Palm added the CameraLib API.
* Sony added a library to support JogDial input available on their CLIÉ organizers.

## Modernization

For several years, PalmSource had been attempting to create a modern successor for Palm OS 5 and have licensees implement it. Although PalmSource shipped Palm OS Cobalt 6.0 to licensees in January 2004, none adopted it for release devices. PalmSource made major improvements to Palm OS Cobalt with the release of Palm OS Cobalt 6.1 in September 2004 to please licensees, but even the new version did not lead to production devices.
In December 2004, PalmSource announced a new OS strategy. With the acquisition of the mobile phone software company China Mobilesoft, PalmSource planned to port Palm OS on top of a Linux kernel, while still offering both Palm OS Garnet and Palm OS Cobalt. This strategy was revised in June 2005, when still no device with Palm OS Cobalt was announced. PalmSource announced it was halting all development efforts on any product not directly related to its future Linux based platform.
With the acquisition of PalmSource by ACCESS, Palm OS for Linux was changed to become the Access Linux Platform which was first announced in February 2006. The initial versions of the platform and software development kits for the Access Linux Platform were officially released in February 2007. As of January 2011, the Access Linux Platform had then yet to ship on any devices, however development kits then existed and public demonstrations had been showcased.
Palm, Inc., the main licensee of Palm OS Garnet, did not license Access Linux Platform for their own devices. Instead, Palm developed another Linux-based operating system called Palm webOS. On February 11, 2009, Palm CEO Ed Colligan said there would be no additional Palm OS devices (excepting the Centro being released to other carriers). Palm was focusing on Palm webOS and Windows Mobile devices. On April 1, 2009, Palm announced the availability of a Palm OS emulator for its webOS.

## Built-in applications

Palm OS licensees decide which applications are included on their Palm OS devices. Licensees can also customize the applications.

### Standard Palm OS applications

Note: On the newer models, the standard PIM apps "Address", "Date Book", "Memo Pad" and "ToDos" were replaced by their improved counterparts "Contacts", "Calendar", "Memos" and "Tasks".
The Palm's Address program stores contact information, keyed by any of several user-definable categories. Entries are displayed and sorted in last name, first name order (this can be changed only to Company, Last Name order). There are five slots for phone or e-mail, each of which may be designated Work, Home, Fax, Other, E-mail, Main, Pager or Mobile (the slot designations cannot be changed) The newer Contacts app adds the following features: several addresses, 9 new fields: Website, Birthday, More phone numbers, Instant Messaging with quick connect.
Calc turns the Palm into a standard 4-function pocket calculator with three shades of purple and blue buttons contrasting with the two red clear buttons. It supports square root and percent keys and has one memory.
It also has an option to display a running history of the calculations, much like the paper-tape calculators that were once common.
Date Book shows a daily or weekly schedule, or a simple monthly view. The daily schedule has one line per hour, between user-selected begin and end times. Clicking on an empty line creates a new event. Empty lines are crowded out by actual events, whose start and stop times are shown by default bracketed in the left margin. The newer Calendar app adds the following features: New Day view, use of categories for events, event location, event can span midnight, event details, birthdays as timeless events. It supports time zone designation for events, a feature lacking in some more recent competitors.
An event, or appointment, can be heralded by an alarm, any number of minutes, hours or days before it begins. These alarms sound even when the unit is switched off.
Appointments can recur in a specified number of days, weeks, months or years and can contain notes.
Expense tracks common business expenses. No totals are calculated on the Palm. The user must sync with a host computer and view the expense data in a worksheet (templates for Microsoft Excel are supplied).
HotSync integrates with the user's PC. Usually activated by a press of the physical HotSync button on the Palm's cradle (a dock station), this application communicates with various conduits on the desktop PC to install software, backup databases, or merge changes made on the PC or the handheld to both devices. It can communicate with the PC through a physical connection (USB on newer models), Bluetooth or IrDA wireless connections, and direct network connections on devices with networking capability.
In addition to the conduits provided by the licensee, developers can create their own conduits for integration with other Palm OS applications and desktop products. For example, a time tracking package could provide a conduit to communicate information between Palm OS and Windows executables.
A Backup conduit included with the HotSync software backs up (and restores, if necessary) most of the data on a Palm OS device. This allows users to hard reset their Palm—thus clearing all of the data—with few noticeable consequences. This also allows users to migrate to new Palm devices of the same Palm OS version, a feature that is helpful to those who lose or damage their device.
Some models of Palm keep their data storage in volatile memory and require constant power to maintain their memory. Although these handhelds attempt to save the contents of memory in low battery situations by not "turning on," leaving a "dead" handheld for an extended period of time can cause this reserve power to be used up and the contents of storage memory to be lost. Some later Palms use NVRAM or microdrive for storage.
Memo Pad can hold notes of up to 4,000 characters each; the newer Memos app increases field size from 3 to 30 kB. Memos are ordered in two ways: alphabetically, and manually (which allows the user to choose the order of the memos), and memos can be grouped in user-configurable categories. Memo Pad is for text only, not for drawings, and text can be entered using the Graffiti alphabet, using hardware or software keyboards, or using the 'paste' function. When Palm devices first became available, some Palm users started to create and exchange Memo Pad documents containing generally useful information, which came to be known as Memoware.
To do list creates personal reminders and prioritizes the things the user has to do. Each To Do List item may also have: a priority, categories (to organize and view items in logical groups), attached Note (to add more description and clarification of the task). To Do List item can be sorted by: due date, priority or category The newer Tasks app features the following improvements: new interface, repeating tasks, alarms, etc.
Preferences (also referred to as Prefs) shows program files with a special preference panel type which are not shown by the normal launcher. Programs can be changed by switching the 'appl' type to 'panl' and vice versa. Palm OS contains approximately 15 preference panels by default and new preference panels can be added just like any other application.
Preference panels allow users to manage a number of settings, including Graffiti settings, sound settings, text shortcuts, network settings and the system time.
Security (which is a panel on newer Palm OS devices) is used to configure Palm OS's security settings. These include the password needed to display hidden records and unlock the device when locked, as well as set up an automatic lockdown time or inactivity threshold. On the PC, only Palm Desktop honors this password but other PC programs can view everything—in other words, all the data protected by this password can be seen by anyone opening the .dat files using a text editor or word processor.

### Common third-party core OS applications

Starting with Palm OS version 5.2, Palm created customized versions of the common PIM application. Some new features have been added, e.g. support for Address categories, Ringtone associations to users, longer memo texts, etc.. They were also renamed to reflect designations from Microsoft Outlook, thus Address became Contacts, Datebook became Calendar, Memo Pad became Memos and To do list became Tasks.
Blazer is a web browser for Palm handhelds. The versions 1.0 and 2.0 run on Palm OS 3.1 or higher handhelds, but they needed a proxy server which has been shut down, so they can no longer be used. Version 3.0 is used on the Treo 600 smartphone. The current version of Blazer is Blazer 4.5, which is compliant with most major standards. It is generally bundled with newer smartphones and newer Palm devices capable of accessing the Internet.
Palm's Note Pad can be used for quick drawings. With neat handwriting, 20–30 words will fit on one page; for more text, Memo Pad is the better choice. There are three sizes of pen width, plus an eraser and a background color change feature in some models. It is possible to draw a very simple map. The more "advanced" desktop version saves the Memo pad drawings to the desktop.
As of 2006, most new Palm handhelds include Photos, which creates a digital photo album used to view pictures on a Palm OS device. As with all the other photo programs, photos can be beamed to other mobile devices. Each photo can be labeled and organized into separate photo albums. A slideshow can also be shown for a specific album, and each photo in the album will be shown full screen.
Photos can be edited with the Palm Photos PC software (Windows only), and when the photos are transferred to the handheld they will contain all changes made to the photo.
The Palm Photos software is available in the Zire 71, Tungsten C, Tungsten E, Tungsten T2, Tungsten T3 and several others.
With the support for Video, Palm Photos was later renamed to Media and even later to Pics& Videos.
Some models feature the ability to make voice recordings which are synced using the Voice conduit and can be viewed on a desktop with the Voice Memo application which is part of the Palm Desktop Suite.

## Third-party applications

There are many successful applications that can be installed on a Palm OS device. As of 2008, there were more than 50,000 third-party applications available for the Palm OS platform, which have various licensing types, including open-source, and various closed licensing schemes such as freeware, shareware, and traditional pay-up-front purchase.
HackMaster is an extension manager for Palm OS that includes several patches improving OS features. Other third party OS extensions also require HackMaster to work.
In November 2022, the Internet Archive launched 565 Palm OS applications in its archives that can be accessed through a browser. The applications also launch CloudpilotEmu, an emulator for the PalmPilot Palm OS, when accessed.

## Application development

Palm OS Garnet applications are primarily coded in C/C++. Two officially supported compilers exist: a commercial product, CodeWarrior Development Studio for Palm OS, and an open source tool chain called prc-tools, based on an old version of gcc. CodeWarrior is criticized for being expensive and is no longer being developed, whereas PRC-Tools lacks several of CodeWarrior's features. A version of PRC-Tools is included in a free Palm OS Developer Suite (PODS).
OnBoardC is a C compiler, assembler, linker and programming editor that runs on the Palm itself.
Palm OS Cobalt applications are also coded in a variation of gcc, but the Cobalt compilers have fewer limitations.
There are development tools available for Palm programming that do not require low-level programming in C/C++, such as PocketC/PocketC Architect, CASL, AppForge Crossfire (which uses Visual Basic, Visual Basic .NET, or C#), Handheld Basic, Pendragon Forms, Satellite Forms and NSBasic/Palm (Visual Basic like languages). A Java Virtual Machine was previously available for the Palm OS platform, however on 12 January 2008, Palm, Inc. announced that it would no longer be available. Palm, Inc. further said "There is no alternate Java Virtual Machine that we are aware of for Palm OS." Waba and a derivative of it, SuperWaba, provide a Java-like virtual machine and programming language. A version of the Lua language, called Plua, is also available for Palm; however, due to the fact that it requires an additional runtime to be installed along with the application, it is only used for mainstream applications by a minority of software companies. Quartus Forth is an ISO/ANSI Standard Forth compiler that runs on the Palm itself. It also has an interactive console for dynamic development and debugging.
Three environments allow programming in Pascal for Palm OS. The free PP Compiler runs directly on the handheld computer, while PocketStudio is a Delphi-like IDE for Windows Computers that has a visual form designer and generates PRC files for being transferred to handhelds via HotSync. The third option was HSPascal, developed by Danish developer Christen Fihl, based on his experience with the High Speed Pascal compiler for various 16-bit computer systems, including the Commodore Amiga.
As Palm has no connection drivers that enable the transfer of data with a server DBMS (Oracle, mySQL, MS SQL Server), the programmer can use Middleware software that enables this connectivity.
A roughly R4RS-compatible implementation of Scheme, LispMe, provides the Palm platform with a GPL-licensed onboard Lisp REPL with some Palm OS-specific adaptations, but although it is functionally a compiler it does not produce code that operates outside the development environment, so its use is restricted to prototyping.

## Legal issues

Palm OS has been involved in various lawsuits over the years.
* Xerox vs. Palm Computing (1997) – In 1997, Xerox was granted U.S. patent 5,596,656 covering the "Unistroke" input system developed by David Goldberg, Xerox PARC in 1993. Xerox filed suit against Palm (then U.S. Robotics), alleging that Palm's Graffiti infringed on this patent. The Palm OS switch from Graffiti 1 to Graffiti 2 was triggered in part by Palm losing this lawsuit to Xerox. The patent was invalidated in May 2004 due to prior art developed at Bell Laboratories in 1982.
* Pilot Pen Corporation vs. Palm Computing (1998) – The original name for Palm OS handhelds was Pilot. However, a lawsuit from Pilot Pen Corporation forced a name change to PalmPilot, then eventually to Palm.
* Palm vs. Microsoft (1998) – In 1998, Microsoft planned to name the next version of their handheld computing platform "Palm PC". Palm filed suit against Microsoft, forcing the name change to, first, Palm-sized PC, and later, Pocket PC.
* E-Pass Technologies vs. Palm, Microsoft and HP (2000) – In 2000, E-Pass Technologies filed suit against Palm, alleging that its handhelds infringed on an E-Pass's patent (#5,276,311) for a multi-function, credit card-sized computer that allows users to securely store account numbers, PIN codes, etc.
* NCR vs. Handspring and Palm (2001) – In 1987, NCR was granted a patent for a portable e-commerce terminal. In 2001, NCR sued Handspring and Palm. This case was ruled without merit in 2002, a decision that was upheld on appeal.
* RIM vs. Handspring (2002) – In 2002, Research In Motion (makers of the BlackBerry), sued Handspring. By year end, both Handspring and Palm licensed the patents and the suit was dropped.
* Peer-to-Peer Systems vs. Palm (2002) – Also in 2002, Peer-to-Peer systems filed lawsuit against Palm that alleges Palm infringed on its patent for wireless gaming. This lawsuit was settled as of February 9, 2005.
* Forgent Networks vs. HP, Toshiba, palmOne, etc., etc. (2004) – Starting in 2002, Forgent Networks began offering licenses for a patent that encumbers JPEG. In 2004, it filed suit against various companies, including palmOne. The JPEG or 672 patent has been reviewed by the U.S. Patent and Trademark Office, which has rejected 19 of the 47 claims based on prior art.