Download Slide


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Download Slide

  1. 1. Report On Palm OS   Ancita J.Vaz ID#999291975    
  2. 2. 1. INTRODUCTION <ul><li>The Palm OS is the standard for handheld computing, a new form of computing focused on helping you manage and access all the information in your life, at any time, in any location. </li></ul><ul><li>Palm Powered handhelds are the way that everyone can manage personal information, work with corporate applications and data, and mine the richness of the web. </li></ul><ul><li>They have by far the most users, the most software programs, the most hardware options, and the most manufacturers; and yet are still the simplest handhelds to learn and use. </li></ul>
  3. 3. The reasons for the popularity of the Palm OS are: <ul><li>The most software </li></ul><ul><li>One of the best features of this is the huge range of software programs you can run on them. </li></ul><ul><li>The most hardware options They are designed to be wearable , small and lightweight and can be easily expandable </li></ul><ul><li>The most manufacturers </li></ul><ul><li>The Palm OS is an open standard, licensed to many manufacturers like Handspring, Motorola, IBM, Kyocera, Nokia, Samsung, Sony, Symbol, Franklin Covey, and TRG. </li></ul>
  5. 5. The Palm OS platform consists of five primary components: <ul><li>1.Palm OS® software </li></ul><ul><li>2.Reference hardware design </li></ul><ul><li>3.HotSync® conduit data synchronization technology for one-button synchronization </li></ul><ul><li>4.Platform component tools including an API that enables developers to write applications </li></ul><ul><li>5.Software interface capabilities to support hardware add-ons </li></ul>
  6. 6. In Depth: <ul><li>Device applications such as HTML-based web clipping applications allow websites to deliver compressed information to users in under 10 seconds, on average. </li></ul><ul><li>Graffiti® power writing software allows users to quickly and accurately enter information into their handheld devices. </li></ul><ul><li>System libraries let developers easily extend the functionality of the Palm OS. </li></ul><ul><li>An internal software map of how the hardware works, the hardware abstraction layer gives developers the flexibility to modify the Palm OS without having to rewrite code each time a change is made. </li></ul><ul><li>Localization architecture makes it easy to localize an application by putting all localizable data into an overlay file. </li></ul><ul><li>The application interface makes it easy to access a function or launch an application by pushing a clearly labeled onscreen button instead of navigating through a menu. </li></ul><ul><li>Intelligent compression formats the most important information for display on a single screen, visible without scrolling </li></ul>
  7. 7. 2 .OVERVIEW OF OS <ul><li>PalmOS actually includes a preemptive multitasking microkernel . Each PalmOS application has one PilotMain which receives all events for the application, and decides how to route them. One task runs the user interface. Other tasks handle things like monitoring input from the tablet. The user interface permits only one application to be open at a time.In the following sections we discuss the OS in detail. </li></ul>
  8. 8. The Memory Architecture <ul><li>Hardware Overview </li></ul><ul><li>The Memory Manager </li></ul><ul><li>The Dynamic Heap </li></ul><ul><li>The Data Manager </li></ul><ul><li>The Storage Heap(S) </li></ul><ul><li>Preferences </li></ul><ul><li>File Streams </li></ul><ul><li>Features </li></ul><ul><li>Memory Reset </li></ul><ul><li>Storing Data </li></ul>
  9. 9.   Hardware Overview   <ul><li>All Palm OS memory is considered part of a card. RAM and ROM coexist on the same card.The OS can support multiple cards in a device, theoretically up to 256 cards </li></ul><ul><li>ROM -- Contains the operating system, built in applications, and default databases. ROM sizes to date vary from 512K to 2M. </li></ul><ul><li>RAM -- Contains add-on applications, system preferences, user data, and run time storage. RAM sizes to date vary from 128K to 2M. Palm OS can currently support up to 12M of RAM on a single memory card </li></ul>
  10. 10. Memory Cards <ul><li>Each card that includes ROM has a header with the manufacturer, name, a 4 byte signature, a version, and a list of the size and offset of each block of RAM or ROM on the card. </li></ul><ul><li>All RAM is considered one store, and ROM is considered another store, and the OS assumes a maximum of 2 stores per card. A store is a largely invisible abstraction that is simply a container for an identifier, a list of heaps, and a database directory. The store header helps determines the validity of RAM on a given card. </li></ul><ul><li>Macintosh Simulator has a second card which contains the application code and resources. This second card aids in simulating the separation of RAM and ROM of an actual device. </li></ul>
  11. 11. Memory Partitioning <ul><li>The RAM and ROM are further divided into heaps, with a small amount of RAM that is not in any heap reserved for low memory globals, store headers, and the like. The memory is used for various OS subsystems and also contains the trap dispatch table. Applications should not read or write this memory directly. Palm OS instead provides documented APIs to access many of these values. </li></ul><ul><li>  </li></ul>
  12. 12. The Memory Manager   <ul><li>The subsystem that is responsible for managing allocations from a heap is called the Memory Manager. All three heaps: dynamic, storage, and ROM, are controlled by the same memory manager. Memory manager structures are described in MemoryPrvNew.h . The applications typically only use the Memory Manager APIs directly to access the dynamic heap. The Data Manager APIs provide high level access to the storage heap data, and the ROM heaps are not normally used directly by an application. </li></ul>
  13. 13. Heap Allocations <ul><li>The Memory Manager allows clients to allocate two types of memory, movable chunks and fixed chunks, more commonly called handles and pointers. </li></ul><ul><li>The terms &quot;pointer&quot; and &quot;handle&quot; normally refer to the 4-byte variable that references memory, rather than to memory itself. One main distinction between pointers and handles is that pointers stay at a fixed address as long as they exist. </li></ul><ul><li>Handles can be moved in the heap at virtually any time, and so must be locked down before they can be used. The memory manager is free to move unlocked handles around in memory, which is may do to reduce fragmentation and service other allocation requests. </li></ul><ul><li>By convention, movable chunks are kept near the beginning of the heap, at lower addresses. Fixed chunks are kept at the end of the heap, at higher addresses. This is done to facilitate heap compaction. </li></ul>
  14. 14. Heap Structure <ul><li>Header. Each heap has a header with a heap ID, status flags, the heap size, and the master pointer table.. </li></ul><ul><li>Master Pointer Table. The master pointer table is a dynamically-built table of persistent handles which map to the location for each chunk. </li></ul><ul><li>Chunks. The remainder of the heap consists of the three kinds of chunks (free, movable, and fixed.) </li></ul><ul><li>Terminator. Essentially a zero-length chunk, only 4 bytes wide, used to detect the end of the heap when iterating through chunk by chunk.  </li></ul>
  15. 15. <ul><li>The chunk header always contains the size of the chunk, in bytes, and a flag that identify a chunk as free or allocated, and an owner ID. For allocated chunks, a size adjust may be stored which defines &quot;pad&quot; bytes at the end of the chunk which are not considered part of the allocation. This allows the memory manager to keep track of very small runs of bytes which could not otherwise be used. Chunks are always immediately next to each other, so every chunk in the heap can be found by starting at the first chunk and offsetting by the chunks size to find the next chunk. Chunks can be split and combined as necessary to accommodate memory manager operations. </li></ul>
  16. 16. <ul><li>Allocating and Managing The Free List </li></ul><ul><li>When an allocation is made, a large enough free chunk is located by walking the heap from the beginning. If the chunk is large enough to accommodate the request and still have free space left over, it is split and a new smaller free chunk is created. If it is not large enouh for this extra chunk, the whole free chunk is used. When a chunk is released, it is simply marked as free. </li></ul><ul><li>Heap Compaction </li></ul><ul><li>The goal of compaction is to coalesce all the free memory into a single contiguous chunk so that a large allocation can be made. The memory manager compacts the heap by moving unlocked movable chunks down (to lower addresses) to fill in the free spaces. When a fixed or locked chunk is encountered, the memory manager searches the rest of the heap for the largest unlocked movable chunk that can fit into the space remaining below the fixed or locked chunk. </li></ul><ul><li>Memory Manager Protection </li></ul><ul><li>Write protection is in effect on the storage heap(s) and is enforced by setting the hardware chip selects to mark that memory as read only. In order to write to a protected heap, the memory manager first acquires the semaphore to ensure that no other task is modifying memory manager structures. It then disables task switching and enables hardware write permission to the protected area. </li></ul>
  17. 17. The Dynamic Heap <ul><li>On a card with RAM, the first RAM heap, (typically heap 0,) is used as the dynamic heap. The size of the dynamic heap varies from device to device, and in general has gotten larger as newer devices are introduced. Dynamic heap space is possibly the most valuable resource for Palm OS developers, and should be used sparingly. The devices that run the 1.0 release have only 32K of dynamic heap. Devices that run 2.0 have either 32K or 64K of dynamic heap, however on the 64K devices 32K is reserved for TCP/IP use, so the space available for other purposes is still only 32K. 3.0 devices to date have 96K of dynamic heap, still with 32K reserved for TCP/IP. The dynamic heap is intended to be used as temporary storage for all run time operations on a given device. Data in the dynamic heap is not preserved across reset. </li></ul>
  18. 18. Dynamic Heap Contents <ul><li>Global data for the operating system: This includes things like font tables, kernel data, event queues, kernel and interrupt stacks, kernel structures, and everything necessary to maintain operating system services. </li></ul><ul><li>TCP/IP stack: When TCP/IP was added, an additional 32K of dynamic heap was made available to accommodate the TCP/IP stack. </li></ul><ul><li>Library data: Like the TCP/PI stack, the serial, IR, and other libraries use some dynamic heap memory for their buffers and state when they are in use.   </li></ul><ul><li>Application UI data structures: Things like windows, forms, fields, tables, bitmaps behind windows, etc. created by the various Palm OS services at the request of a running application. </li></ul><ul><li>Buffers: Space for pen strokes, key presses, system events, serial manager data, video memory, etc. </li></ul><ul><li>Application global variables: These are loaded when application is loaded. By convention they are based on the A5 register and can not move or change size while the application is running.  </li></ul><ul><li>Application constant data: Most compilers by default generate code to store things like strings and array initializers with the globals. </li></ul><ul><li>Application stack: Used for parameters and return addresses for both application functions and called system functions. </li></ul>
  19. 19. Memory Ownership <ul><li>Each chunk in the dynamic heap has an owner. When a chunk is allocated, the memory manager assigns that chunk the ownerID of the running application. The ownerID does not uniquely identify any application, rather it is assigned from a small pool (currently 16) when an app starts, and the ID is reclaimed and reused when the app exits. This owner ID is primarily used to clean up any left over chunks when an application exits. On app exit, the system frees all chunks with the owner ID of the (no longer) running application. </li></ul>
  20. 20. The Data Manager   <ul><li>Palm OS Databases </li></ul><ul><li>Palm OS divides databases into two major categories: record and resource databases.. Record databases access records by an index or a unique ID, can sort records by a key field, and data can be retrieved either directly using the index or via a search on the unique ID or key. Resource databases index resources by a 4-byte resource type and a 2-byte resource ID, and resources are retrieved using the type/id combination. </li></ul><ul><li>Records and Record Databases </li></ul><ul><li>Record databases are most common for data storage, as they are more structured than resource databases. The system provides more management functionality for record databases than for resource databases.The system can spread records among all storage heaps on the same store </li></ul><ul><li>Resources and Resource Databases </li></ul><ul><li>Resource databases can be used for free-form storage. The system provides management of resource ID's and of resource types but nothing beyond that, so resource databases have lower overhead than record databases. They provide a natural way for storing static heterogeneous data </li></ul>
  21. 21. <ul><li>The Storage Heap(s) </li></ul><ul><li>The storage heap is used for persistent storage. Unlike the dynamic heap, storage heap memory is not cleared when the device is reset, and has additional protections against inadvertent overwriting. All persistent user applications and data is kept in the storage heap, in one form or another. </li></ul><ul><li>Preferences </li></ul><ul><li>The OS provides two databases that can be used to store small amounts of data for an application that is not associated with a particular application database. These provide good places to store things like user display choices, high score.. </li></ul><ul><li>File Streams </li></ul><ul><li>New in the 3.0 release is an API to access data using streaming operations such as open, close, read, write, and seek. This API allows access to data streams larger than 64K in size. The data streams can be temporary or permanent. </li></ul><ul><li>Features </li></ul><ul><li>The OS provides an API for storing and retrieving small (4 byte) amounts of data that do not persist across resets, called features. Each feature is identified by a 4 byte creatorID and a 2 byte index. Features were intended to allow the OS, libraries, and extensions to &quot;publish&quot; information about what they support and their version </li></ul>
  22. 22. <ul><li>Memory Reset </li></ul><ul><li>A reset is normally performed by sticking a bent-open paper clip or equivalent poking device into a small hole in the back of the device and pressing a button known as the &quot;reset switch.&quot; A soft reset clears all of the low memory globals and dynamic heap. A hard reset is performed by pressing the reset switch while holding down the power key. A confirmation message is displayed, asking the user to confirm the deletion of all data. </li></ul><ul><li>Storing Data </li></ul><ul><li>The data can be stored in: </li></ul><ul><li>Global Variables </li></ul><ul><li>Stack </li></ul><ul><li>Dynamic Heap </li></ul><ul><li>Application Resources </li></ul><ul><li>Record Databases </li></ul><ul><li>AppInfo Data in a Database </li></ul><ul><li>Unsaved Preferences Database </li></ul><ul><li>Saved Preferences Database </li></ul><ul><li>File Streams </li></ul><ul><li>Features and Feature Pointers </li></ul>
  23. 23. <ul><li>EVENTS </li></ul><ul><li>A Palm OS application is event-driven. Events arrive, like pen down or key down, and your application responds to them. Some events are handled by your application; others are handled by the operating system. Once your application begins, it enters an event loop, repeatedly getting, then handling an event. </li></ul><ul><li>FORMS AND CONTROLS </li></ul><ul><li>The Palm OS has built-in support for various controls and for managing forms. Forms are similar to windows on a desktop operating system. Because of the simpler user interface on the Palm OS, only one form is active even though several forms may be displayed. The Palm OS provides a rich API for forms that includes many user-interface elements. </li></ul><ul><li>COMMUNICATIONS  </li></ul><ul><li>The Palm OS supports a variety of communication methods. Current communication protocols are: </li></ul><ul><li>Serial communication. </li></ul><ul><li>TCP/IP with a socket interface. </li></ul><ul><li>Infrared. Low-level infrared support is via IrDA (Infrared Data Assocation). </li></ul>
  24. 24. 4. THE HANDHELD DEVICE   <ul><li>The handheld device is one part of the Palm application.Some of its prominent parts are: </li></ul><ul><li>Screen : The touch sensitive screen is 160 by 160 pixels. </li></ul><ul><li>Writing Area : Here ís where you will enter text using either GraffitiÆ, a simplified script, or an on-screen keyboard. Hardware Buttons : These buttons launch the four main applications. </li></ul><ul><li>  Scroll Buttons : These buttons page up or down. </li></ul><ul><li>Power : This button turns your Palm device on or off. Holding it down for at least two seconds toggles the backlighting. </li></ul><ul><li>Silkscreen Buttons: Tap these buttons to use them. </li></ul>
  25. 25. 5. OVERVIEW OF CONDUITS <ul><li>The second part of the Palm application is the desktop connection. Because Palm devices act as an extension of the desktop, it is crucial that information be easily exchanged. Conduits are the mechanism for doing this.A conduit is code on the desktop that is called during a HotSync synchronization to manage the flow of information to and from databases on the handheld. Conduits register the database or databases for which they are responsible . Each database should have only one conduit responsible for it.Conduits) are created using Conduit Development Kits for Windows (C/C++), Mac OS (C/C++), or Java. </li></ul>
  26. 26. 6 . HANDHELD DEVELOPMENT <ul><li>For the development of the handheld portion of your Palm application, you can write code on Windows 95/98/NT, Unix, or Macintosh platforms. Palm's official development environment, CodeWarrior, is available for both Windows and Macintosh. POSE is the application which is a further development of Copilot. It serves as a replacement for an actual Palm OS device while you do development. Because it can load a ROM image from disk, it usefully emulates different versions of the Palm OS </li></ul>
  27. 27. 7. The features of Palm OS version 4.0 <ul><li>The newest Palm OS® operating system, version 4.0, supports the growing expansion opportunities and includes convenient new features such as: </li></ul><ul><li>Enhanced Security – You can put an automatic lock on your handheld, assign a password and encrypt sensitive data to keep information safe </li></ul><ul><li>View and Clear Multiple Alarms - Go to one place to view all the Alarms you have set. Clear multiple alarms with a single tap. </li></ul><ul><li>Set Silent Alarms - If you're in meetings you can set vibrating or LED/flashing light alarms on your m500 or m505 handheld. You can still choose to play a tune if that's your preference. </li></ul><ul><li>65,000 Color Support - View email, spreadsheets, eBooks, video clips and photos in brilliant color   </li></ul><ul><li>Easier Data Entry - You can now use the on-screen keyboard and Graffiti® writing at the same time.Switch back and forth without changing screens. </li></ul><ul><li>Wireless Internet and eMail access – You can install the included Mobile Connectivity Software on your Palm m500 or m505 handheld and use it to </li></ul><ul><li>get information from your favorite websites </li></ul><ul><li>send and receive email </li></ul><ul><li>send short messages to other Palm handheld users or GSM phones worldwide. </li></ul>
  28. 28. 8. USES OF PALM OS   <ul><li>Early applications included an address book, a date book, to-do list and memo pad. This information can be transferred directly from/to your desktop databases by synchronizing.   </li></ul><ul><li>Further advances included development environments for creating your own applications.  </li></ul><ul><li>Then came the development of enterprise database applications, spreadsheets, text and word processors.   </li></ul><ul><li>Recent hard and software additions allow reliable, secure, and cost effective enterprise wireless & wired communications using a Palm. communication using radio frequency (Palm VII and web clipping). </li></ul><ul><li>Data entry on the Palm is not simply entering character by character in a field (although it can be), but tends to be pick from a menu list, click on an icon, enter the first few characters and the rest fills itself in etc. </li></ul><ul><li>A lot of the power of the Web with its point and click methodology applies here. </li></ul><ul><li>The business case must be analyzed carefully or you may end up with another novelty application (or worse, an application slower and more complex than the desktop version). </li></ul>
  29. 29. 9 . What Palm OS Devices Don't Have and Why? <ul><li>Almost more important than what Palm OS devices have is what they lack. No Palm OS device has: </li></ul><ul><li>A keyboard </li></ul><ul><li>Full text recognition </li></ul><ul><li>An industry-standard PC card slot </li></ul><ul><li>A powerful processor </li></ul><ul><li>Adding any of these features requires changing the magic combination of speed, size, and price that has made the Palm devices so popular. By removing both the keyboard and any real way of handling text input in quantity, Palm Computing kept its focus on what kind of device it was providing. Palm devices don't have a card slot, because they couldn't do it and keep the device small and cheap. Palm did install a nonstandard memory card to give users the ability to upgrade the functionality. </li></ul>