throbber
United States Patent
`(12)
`(10) Patent No.:
`US 6,671,745 B1
`Mathuret al.
`(45) Date of Patent:
`Dec. 30, 2003
`
`
`US006671745B1
`
`(54) APPLICATION PROGRAM INTERFACES
`AND STRUCTURESIN A RESOURCE
`LIMITED OPERATING SYSTEM
`
`(75)
`
`Inventors: Sharad Mathur, Redmond, WA (US);
`:
`Gregory Hullender, Kirkland, WA
`(US); Mark Miller, Kirkland, WA
`(US); Bruce Johnson, Woodinville, WA
`C8);Michael Ginsberg, Redmond,
`(US)
`. on
`:
`(73) Assignee: (us)osoft Corporation, Redmond, WA
`(*) Notice:
`Subject to any disclaimer, the term of this
`:
`:
`patent is extended or adjusted under 35
`US.C. 154(b) by 0 days.
`(21) Appl. No.: 09/273,592
`(22)
`Filed:
`Mar.22, 1999
`
`(60)
`
`Related U.S. Application Data
`Provisional application No. 60/078,946, filed on Mar. 23,
`1998
`;
`Tint. Co eee creeeceneseneeecneeeeneeees GO06F 9/00
`(ST)
`(52) US. Che eseccsssccsssecee 709/328; 709/321; 709/223,
`:
`701/213; 342/357.06
`(58) Field of Search .....0..00 709/328, 321-327,
`709/310, 315, 223-226; 342/357.12, 357.06;
`701/213-216
`/
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`702/2
`5,600.44 A * 12/1907 Clark et al
`5.724.506 A
`3/1998 Cleronet al...395/200.01
`
`3/1999 LAW veesccscccsssssssveee 342/357...
`5,883,594 A *
`....... 342/357.12
`5,920,283 A *
`7/1999 Shaheen etal.
`
`5,999,125 A * 12/1999 Kurby 0.0.00...
`wes 342/357.1
`4/2000 Ashby et al. wee 707/2
`6,047,280 A *
`
`
`
`6/2000 Froeberg ..............- 342/357.12
`6,072,431 A *
`7/2000 Alexander, Jr.
`.
`.
`6,083,353 A *
`1/2001 Ashbyet al.
`....
`6,173,277 B1 *
`2/2001 Rhinehart
`....
`6,185,484 Bl *
`”
`5/2001 Itoetal. ......
`6,233,520 Bl *
`4/2002 Ashbyet al. oo... 707/102
`6,370,539 B1 *
`9/2002 Goldberg et al. ou... 701/36
`6,449,541 BL *
`—_
`OTHER PUBLICATIONS
`Edge Publishing.“Wireless Pen—based Computing: Penstuff
`& Trimble Navigation develop GPS standard for PenPoint.”.
`Jul 5, 1993.*
`Richter, Jeffrey. “Developing Applications for Microsoft
`Windows CE: An Overview of the Windows CE SDK and
`Visual C++ for Windows CE. Mar. 15, 1997."
`oo.
`MaaB, Henning. “Location—Aware Mobile Applications
`:
`og
`N
`based on Directory Services.” MOBICOM.1997.
`Bershad, B.N., et al., “Extensibility, Safety and Performance
`in
`the SPIN Operating
`system”, SIGOPS ’ 95,
`pp. 267-284
`(1995),
`peraning system
`? PP
`,
`Levy, M., “WindowsCE, At The Center of A Juggling Act”,
`Electrical Design News, 42(15), pp. 38-50, (Jul. 1997).
`Mendelsohn, N., “Operating systems for component soft-
`ware environments”, IEEE, 49-54, (1997).
`* cited by examiner
`.
`.
`Primary Examiner—St. John Courtenay, III
`Assistant Examiner—Lewis A. Bullock, Jr.
`(74) Attorney, Agent, or Firm—Workman, Nydegger
`(57)
`ABSTRACT
`for a
`A set of Application Program Interfaces (APIs)
`resource-limited environment are disclosed. The APIs pro-
`vide a mechanism for a computer application to interface
`with various componcnts and modulcs of an opcrating
`system for a resource-limited environment. The APIs further
`provide a mechanism to interface with input/output devices
`commonly found in embedded systems running in a
`resource-limited environment.
`
`21 Claims, 3 Drawing Sheets
`
`226~
`WINDOWS CE APPLICATIONS
`
`
`
`
` 208 202 206 204
`
`
`
`

`OEM HARDWARE
`
`
`
`APPLE 1009
`
`
`
`200-1
`
`OEM
`
`
`
`224
`222
`ADD-ON TECHNOLOGIES
`WINDOWS CE SHELL
`220
`216
`
`CORE SYSTEM
`
`214
`
`KERNEL
`
`OAL
`
`[coreS|
`
`
`218
`
`FILE
`
`212
`
`GWES
`
`BUILT-IN
`DRIVERS
`
`
`
`comers
`
`S
`
`210
`
`
`
`DEVICE
`MANAGER
`
`iNSTALLABLE
`DRIVERS
`
`
`
`
`APPLE 1009
`
`1
`
`

`

`U.S. Patent
`
`Dec. 30, 2003
`
`Sheet 1 of 3
`
`US 6,671,745 BI
`
`|
`
`ozSNW3ISAS
`
`ae]O3O0IA
`
`Sy
`
`SNISSIOOUd
`
`A
`
`cS
`
`JANGING3NuG
`
`
`
`
`
`JOVINGINIJOVAUGINIJOVINAUINI
`
`2
`
`
`
`

`

`U.S. Patent
`
`Dec. 30, 2003
`
`Sheet 2 of 3
`
`US 6,671,745 BI
`
`912
`
`JOIAIO
`
`OLS
`
`
`
`STaVTIVLSNINI-LING
`
`
`
`SYSAINdSYIAING
`
`SNOLLVONdd¥JOSMOCNIM
`SNOLLVOINNINNODWALSAS3x09
`
`
`TISHS30SMOCNIMSSISOIONHOSLNO-ddV
`
`
`
`JOVIYSLNI
`
`92¢e
`
`00¢
`
`3
`
`
`

`

`U.S. Patent
`
`Dec.30, 2003
`
`Sheet 3 of 3
`
`US 6,671,745 B1
`
`502
`
`304
`
`E z©5a 3
`
`COMPONENT
`
`MODULEAPI
`
`06
`
`FIG. 3
`
`3508
`
`4
`
`

`

`US 6,671,745 Bl
`
`1
`APPLICATION PROGRAM INTERFACES
`AND STRUCTURES IN A RESOURCE
`LIMITED OPERATING SYSTEM
`
`RELATED FILES
`
`This application claims the benefit of U.S. Provisional
`Application No. 60/078,946, filed Mar. 23, 1998, which is
`hereby incorporated herein byreference.
`FIELD OF THE INVENTION
`
`This invention relates generally to computer operating
`systems, and morc particularly to application program intcr-
`faces for resource limited operating systems.
`
`COPYRIGHT NOTICE/PERMISSION
`
`A portion of the disclosure of this patent document
`contains material which is subject to copyright protection.
`The copyright owner has no objection to the facsimile
`reproduction by anyone of the patent documentorthe patent
`disclosure as it appears in the Patent and Trademark Office
`patent file or records, but othcrwisc reserves all copyright
`rights whatsoever. The following notice applies to the soft-
`ware and data as described belowandin the drawing hereto:
`Copyright© 1998, 1999, Microsoft Corporation, All Rights
`Reserved.
`
`BACKGROUND OF THE INVENTION
`
`The rapid evolution of personal computer technology
`continues to produce personal computers (PCs) that are
`smaller, cheaper and faster than their predecessors. Where
`computers once occupied entire rooms, they are now small
`enoughto fit in the palm of a user’s hand, hence the name
`“Palm-size PCs”. In addition, PCs are now small enough to
`be placed in environments outside of the home oroffice,
`such as an automobile. Further more, the new PCs may be
`embeddedin a variety of consumer devices and specialized
`industrial controllers. For the purposes of this application,
`all of the above-referenced PCs will be referred to collec-
`tively as “embedded systems.”
`The reduced size of embedded systems meansthat certain
`sacrifices need to be made. For example, a typical embedded
`system does not have fixed or removable disk drives such as
`hard disk, floppy disk, CD-ROM or DVD-ROMdrives, with
`the persistent storage of a typical embedded system com-
`prising flash memory or volatile memory with a battery
`refresh. In addition,
`the amount of RAM in the typical
`embedded system is also limited.
`In addition, output resources typical to a desktop PC may
`be missing or severely limited in an embedded system. For
`example, the display for a typical embedded system may
`comprise a small LCD screen with limited resolution and
`capable of displaying only grayscale or a limited number of
`colors. In certain environments, such as the automobile, the
`display may be an LCD sercen with a limited number of
`fixed icons and text areas. The display may be augmented
`with a computerized speech facility.
`Similarly, input resources may be limited or adapted for
`use in embedded systems. Kor example, many embedded
`systems do not have a mouse or other pointing device. In
`addition, some hand-held devices do not have a physical
`keyboard. Such embedded devices mayuse a touch sensitive
`display in conjunction with a virtual keyboard placed on the
`display. In addition, embedded devices may employ speech
`recognition for input.
`As a result of the above, specialized operating systems
`capable of running in the resource-limited environment of
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`the embedded system have been developed. An example of
`such an operating system is the Windows CE™ operating
`system from Microsoft Corporation.
`Applications running on the embedded system must also
`be capable of running in the resource limited environment
`described above. In embedded systems comprising Palm-
`size PCs, these applications are typically specialized ver-
`sions of applications available on the bigger siblings of the
`Palm-size PC, such as calendar programs, personal infor-
`mation managers, calculators, dictionaries and the like.
`In other environments, the applications running on the
`embedded system may be more specialized. For example, in
`an AutoPC,the applications may comprise applications that
`interface with an audio system, applications that report and
`use position and navigation information, and applications
`that monitor the condition and state of various other systems
`present in the automobile.
`In order to accommodate a large number of different
`application needs, operating systems typically provide APIs
`(Application Programming Interfaces) to a wide variety of
`functionality that is common to many differing applications.
`Anyone application generally uses only a small subsetof the
`available APIs. Providing a wide variety of APIs frees
`application developers from having to write code that would
`have to be potentially duplicated in each application.
`However,in the resource limited environment of the embed-
`ded system, there is typically a much more limited set of
`APIs available. This is because there is generally insufficient
`persistent and non-persistent memory available to support a
`large numberofdifferent APIs. Thus, a developer writing an
`application for an embedded system mayfind that he or she
`must develop code that would ordinarily be provided bythe
`operating system in a desktop’s or other larger computer’s
`operating system.
`As a result of the above, there is a need in the art for an
`operating system capable of running in the resource limited
`environment of an embedded system. Such an operating
`system should be customizable and adaptable to the wide
`variety environments that system designers may choose to
`place embedded systems, allowing developers to include
`only those components and modulesthat are necessary for a
`particular environment. In addition,
`the operating system
`should include APIs to operating system provided compo-
`nents in order prevent applications designers from having to
`duplicate commonly needed code. Finally,
`the operating
`system should provide APIs for components and modules
`that meet the unique input and output needs of an embedded
`system.
`
`SUMMARYOF THE INVENTION
`
`The above-mentioned shortcomings, disadvantages and
`problemsare addressed by the present invention, which will
`be understood by reading and studying the following speci-
`fication.
`
`A system is presented that includes a set of Application
`Program Interfaces (APIs) for a numberof software modules
`and components for resource limited environments. One
`example of a resource limited environmentis the embedded
`system, which comprises a variety of consumer devices and
`specialized industrial controllers, along with hand-held, or
`palm-size personal computers.
`the combination of
`One aspect of the system is that
`components and modules included in an operating system
`for resource limited environments is customizable and flex-
`ible. This allows an embedded system designer to include
`only those components and modules that are necessary for a
`
`5
`
`

`

`US 6,671,745 Bl
`
`3
`particular environment. As a result, scarce memory is not
`consumed by unneeded components, allowing more
`memory to be devoted to applications and other modules and
`components that are needed in the embedded system.
`Anotheraspectof the system is that APIs are provided that
`meet
`the unique input and output needs of the typical
`embedded system. For example, many embedded systems
`do not provided a keyboard or mousefor input. The system
`provides APIs to components and modules that provide
`alternative mechanismsof providing input. Thesealternative
`mechanisms include APIs to handwriting recognition
`engines that “read” strokes on a touch sensitive screen, and
`APIs to voice input components that allow a user to issue
`spoken commands to the system. Further, the system pro-
`vides APIs to components that output audible speech for
`those environments where a display monitor is impractical.
`Another aspect of the system is that the handling of “out
`of memory” conditions is customizable by an embedded
`system designer. This is important to systems with limited
`resources, because out of memory conditions are more likely
`to occur.
`
`A further aspect of the system is that an API to a position
`and navigation component is provided. This is useful for
`embedded system environments that are mobile, such as
`automobiles, trucks, and boats.
`The APIs summarized above, and various other APIs, will
`be described in detail in the next section and in the attached
`
`appendices.
`The present invention describes systems, clients, servers,
`methods, and computer-readable media of varying scope. In
`addition to the aspects and advantages of the present inven-
`tion described in this summary, further aspects and advan-
`tages of the invention will become apparent by reference to
`the drawings and by reading the detailed description that
`follows.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 shows a diagram of the hardware and operating
`environment in conjunction with which embodimentsof the
`invention may be practiced;
`FIG. 2 is a diagram illustrating a system-level overview of
`exemplary embodiments of an operating system for a
`resource limited environment; and
`FIG. 3 is a diagram further illustrating the relationship of
`modules, components and APIs according to an embodiment
`of the invention.
`
`“BRIEF DESCRIPTION OF THE APPENDICES
`
`Appendices A-L are stored on CD-ROMasthefile named
`13768.200.4.1.1 containing 6,477 KB and created on Jun.
`19, 2003.”
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`In the following detailed description of exemplary
`embodiments of the invention, reference is made to the
`accompanying drawings and the appendices on CD-ROM
`that form a part hereof, and in which is shown by way of
`illustration specific exemplary embodiments in which the
`invention may be practiced. These embodiments are
`described in sufficient detail to enable those skilled in theart
`
`to practice the invention, and it is to be understood that other
`embodiments maybe utilized and that logical, mechanical,
`electrical and other changes maybe made without departing
`from the spirit or scope of the present
`invention. The
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`following detailed descriptionis, therefore, not to be taken
`in a limiting sense, and the scope of the present invention is
`defined only by the appended claims.
`The detailed description is divided into four sections. In
`the first section, the hardware and the operating environment
`in conjunction with which embodiments of the invention
`may be practiced are described. In the second section, a
`system level overview of the invention is presented. In the
`third section, various APIs are presented allowing applica-
`tions to interface with various modules and components of
`an operating system. Finally, in the fourth section, a con-
`clusion of the detailed description is provided.
`
`Hardware and Operating Environment
`
`FIG. 1 is a diagram of the hardware and operating
`environment in conjunction with which embodimentsof the
`invention may be practiced. The description of FIG. 1 is
`intended to provide a brief, general description of suitable
`computer hardware and a suitable computing environmentin
`conjunction with which the invention may be implemented.
`Although not required, the invention is described in the
`general context of computer-executable instructions, such as
`program modules, being executed by a computer, such as a
`personal computer, a hand-held or palm-size computer, or an
`embedded system such as a computer in a consumer device
`or specialized industrial controller. Generally, program mod-
`ules include routines, programs, objects, components, data
`structures, etc., that perform particular tasks or implement
`particular abstract data types.
`Moreover, those skilled in the art will appreciate that the
`invention may be practiced with other computer system
`configurations, including hand-held devices, multiprocessor
`systems, microprocessor-based or programmable consumer
`electronics, network PCS, minicomputers, mainframe
`computers, and the like. The invention mayalso be practiced
`in distributed computing environments where tasks are
`performed by remote processing devices that are linked
`through a communications network. In a distributed com-
`puting environment, program modules may be located in
`both local and remote memorystorage devices.
`The exemplary hardware and operating environment of
`FIG. 1 for implementing the invention includes a general
`purpose computing device in the form of a computer 20,
`including a processing unit 21, a system memory22, anda
`system bus 23 that operatively couples various system
`components including the system memoryto the processing
`unit 21. There may be only one or there may be more than
`one processing unit 21, such that the processor of computer
`20 comprises a single central-processing unit (CPU), or a
`plurality of processing units, commonly referred to as a
`parallel] processing environment. The computer 20 may be a
`conventional computer, a distributed computer, or any other
`type of computer; the invention is not so limited.
`The system bus 23 may be any of several types of bus
`structures including a memorybus or memory controller, a
`peripheral bus, and a local bus using anyof a variety of bus
`architectures. The system memory mayalso be referred to as
`simply the memory, and includes read only memory (ROM)
`24 and random access memory (RAM) 25. A basic input/
`output system (BIOS) 26, containing the basic routines that
`help to transfer information between elements within the
`computer 20, such as during start-up, is stored in ROM 24.
`In one embodimentof the invention, the computer 20 further
`includes a hard disk drive 27 for reading from and writing
`to a hard disk, not shown, a magnetic disk drive 28 for
`reading from or writing to a removable magnetic disk 29,
`
`6
`
`

`

`US 6,671,745 Bl
`
`5
`and an optical disk drive 30 for reading from or writing, to
`a removable optical disk 31 such as a CD ROM orother
`optical media. In alternative embodiments of the invention,
`the functionality provided by the hard disk drive 27, mag-
`netic disk 29 and optical disk drive 30 is emulated using
`volatile or non-volatile RAM in order to conserve powerand
`reduce the size of the system.
`In these alternative
`embodiments,
`the RAM may be fixed in the computer
`system, or it may be a removable RAM device, such as a
`Compact Flash memory card.
`In an embodimentof the invention, the hard disk drive 27,
`magnetic disk drive 28, and optical disk drive 30 are
`connected to the system bus 23 by a hard disk drive interface
`32, a magnetic disk drive interface 33, and an optical disk
`drive interface 34, respectively. The drives and their asso-
`ciated computer-readable media provide nonvolatile storage
`ot computer-readable instructions, data structures, program
`modules and other data for the computer 20. It should be
`appreciated by those skilled in the art
`that any type of
`computer-readable media which can store data that is acces-
`sible by a computer, such as magnetic cassettes,
`flash
`memory cards, digital video disks, Bernoulli cartridges,
`random access memories (RAMs),
`read only memories
`(ROMs), and the like, may be used in the exemplary
`operating environment.
`A numberof program modules may be stored on the hard
`disk, magnetic disk 29, optical disk 31, ROM 24, or RAM
`25, including an operating system 35, one or more applica-
`tion programs 36, other program modules 37, and program
`data 38. A user may enter commandsand information into
`the personal computer 20 through input devices such as a
`keyboard 40 and pointing device 42. Other input devices
`(not shown) mayinclude a microphone, joystick, game pad,
`satellite dish, scanner, touch sensitive pad,or the like. These
`and other input devices are often connected to the processing
`unit 21 through a serial port interface 46 that is coupled to
`the system bus, but may be connected by other interfaces,
`such as a parallel port, game port, or a universal serial bus
`(USB). In addition, input to the system may be provided by
`a microphoneto receive audio input.
`A monitor 47 or other type of display device is also
`connected to the system bus 23 via an interface, such as a
`video adapter 48. In one embodimentof the invention, the
`monitor comprises a Liquid Crystal Display (LCD). In
`addition to the monitor, computers typically include other
`peripheral output devices (not shown), such as speakers and
`printers.
`The computer 20 may operate in a networked environ-
`ment using logical connections to one or more remote
`computers, such as a remote computer 49. These logical
`connections are achieved by a communication device
`coupled to or a part of the computer 20; the invention is not
`limited to a particular type of communications device. The
`remote computcr 49 may be anothcr computer, a scrver, a
`router, a network PC, a client, a peer device or other
`commonnetwork node, and typically includes many orall of
`the elements described above relative to the computer 20,
`although only a memory storage device 50 has been illus-
`trated in FIG. 1. The logical connections depicted in FIG. 1
`include a local-area network (LAN) 51 and a wide-area
`network (WAN) 52. Such networking environments are
`commonplace in offices, enterprise-wide computer
`networks, intranets and the Internet.
`Whenused in a LAN-networking environment, the com-
`puter 20 is connected to the local network 51 through a
`network interface or adapter 53, which is one type of
`
`10
`
`15
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`communications device. When used in a WAN-networking
`environment, the computer 20 typically includes a modem
`54, a type of communications device, or any other type of
`communications device for establishing communications
`over the wide area network 52, such as the Internet. The
`modem 54, which maybe internal or external, is connected
`to the system bus 23 via the serial port interface 46. In a
`networked environment, program modules depicted relative
`to the personal computer 20, or portions thereof, may be
`stored in the remote memorystorage device. It is appreciated
`that the network connections shown are exemplary and other
`means of and communications devices for establishing a
`communications link between the computers may be used.
`The hardware and operating environment in conjunction
`with which embodiments of the invention may be practiced
`has been described. The computer in conjunction with which
`embodiments of the invention may be practiced may be a
`conventional computer an hand-held or palm-size computer,
`a computer in an embedded system,a distributed computer,
`or any other type of computer;
`the invention is not so
`limited. Such a computer typically includes one or more
`processing units as its processor, and a computer-readable
`medium such as a memory. The computer mayalso include
`a communications device such as a network adapter or a
`modem, so that il is able to communicatively couple other
`computers.
`
`System Level Overview
`Asystemlevel overview of the operation of an exemplary
`embodiment of the invention is described by reference to
`FIGS. 2 and 3. The concepts of the invention are described
`as operating in a multiprocessing, multithreaded operating
`environment on a computer, such as computer 20 in FIG. 1.
`The exemplary operating environment comprises what is
`knowninthe art as an operating system. In this environment
`one or more applications, such application 226, interface
`with various modules and components of the operating
`system. In addition, the various modules and components of
`the operating system interface with each other. Finally, the
`modules, components and applications interface with hard-
`ware 202 present on the computer through what is known in
`the art as a device driver module, and through an Original
`Equipment Manufacturer (OEM)adaptation layer 208. In
`one embodiment of the invention, there are two types of
`device drivers, built-in drivers 206 and installable drivers
`204. The various modules will now be described in further
`detail.
`
`The core system interface 220 is the module through
`which applications can access the operating system. The
`core system interface 220 includes functions to transfer API
`calls to the appropriate operating system server process.
`In addition to including or exporting the APIs selected,the
`core system interface 220 includes components to support
`the following:
`Localization
`
`Local heap and memoryallocation
`Serial port device driver thunks
`Telephony API (TAPI)
`‘The shell module 222 manages the user interface and
`handles such tasks as launching software applications. In
`one embodiment of the invention,
`the operating system
`provides shell components that enable an embedded system
`designer to develop a customized shell 222 thatsatisfies the
`requirements of the target platform. Included in these com-
`ponents are:
`A Control Panel with applets familiar to desktop Windows
`users. The following applets are included: Communi-
`
`7
`
`

`

`US 6,671,745 Bl
`
`7
`cations; Display; Keyboard; Network; Owner; Pass-
`word; Power; Regional Settings, Remove Programs;
`Pointing Device Settings (Stylus); Sounds and Volume.
`A Notification API that lets an application register its
`name and an event with the system. When the event
`oceurs, the kernel will automatically start the named
`application. The API also allows an application to
`register a specific date and time at which the applica-
`tion shouldstart.
`
`Common controls and common dialogs, which are
`designed to provide to the user clear, simple, and
`meaniogful information and a means to furnish input to
`the system and applications as needed.
`Acommandline processor(that is, a console application)
`that supports a set of standard input and output API
`calls.
`
`10
`
`15
`
`Connectivity components (for example, to support remote
`application programming calls) between the develop-
`ment workstation and the embedded system target
`platform.
`In conjunction with a desktop, the shell module 222 also
`includes a desktop and task manager componentthat can be
`oplionally included or replaced. The task manager compo-
`nent includes the following basic functionality:
`An Active Tasks list of all the currently running, top-level
`applications;
`A Run button that allows a user to launch a software
`
`application;
`A Switch To button that allows a user to switch to an
`
`30
`
`application selected in the Active Taskslistbox.
`An End Task button that allows a user to terminate an
`
`application sclected in the Active Tasks listbox.
`A Cancel button that allows a user to close the Task-
`Manager window.
`Monitors the level of main battery and backup battery
`power(for battery-operated target platforms) and dis-
`plays an appropriate warning dialog box.
`Monitors system memory usage in the system and sends
`a messageto all top-level windows when the available
`system memory drops below a specific threshold. This
`allows applications to respond to the message by reduc-
`ing their memory usage as muchaspossible.
`The Add-on Technologies module 224 allows an embed-
`ded system developerto optionally include components such
`as OLE/COM automation that supports development of
`ActiveX-based applications, an active desktop shell and an
`Internet browser. Other componentsthat can be includedare
`Visual Basic run-time and Java script, and a subset of the
`Microsoft Foundation Classes (MFC). A further optional
`componentthat can be providedis a handwriting recognition
`engine with associated APIs. In one embodiment of the
`invention, handwriting applications interface with a touch
`sensitive input device through a component providing a
`software interface to the touch sensitive device.
`The kernel module 214 represents the base operating
`system functionality that must be present on all platforms.
`The kernel module includes memory management, process
`management, exception handling, and support for multitask-
`ing and multithreading.
`In one embodiment of the invention, the kernel 214 is
`designed specifically for small, fast, embedded devices. In
`this embodiment, the kernel supports a single 4 GB address
`space (a 2 GB virtual address and a 2 GB physical address
`range). In an embodimentof the invention, this 4 GB address
`space is divided into 33 “slots”, each of which has a size of
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`32MB. The kernel protects each process by assigning each
`process to a unique, open slot in memory. The invention,
`however, is not limited to any particular physical or virtual
`address space orslot size, and other sizes may be chosen as
`those of skill in the art will recognize.
`The kernel 214 protects applications from accessing
`memory outside of their allocated slot by generating an
`exception. Applications can check for and handle such
`exceptions by using the try and except Windows CE func-
`tions. In one embodiment of the invention, the system is
`limited to 32 processes, but the number of threads running
`in a process is limited only by the amount of available
`memory. Those of skill in the art will appreciate that other
`values for the maximum number of processes could be
`chosen.
`The file system module 218 contains the functions that
`support persistent storage on the embedded system target
`platform. This storage is referred to as the “object store” and
`includes three different ways to store user data:
`The file system. The file system typically supports com-
`mon file manipulation functions, such as functions to
`create files and directories, read and write to files, and
`retrieve file and directory information.
`The registry. The system registry is similar to the regis-
`tries of the Windows 95 and Windows N'loperating
`systems. The registry for all applications, including the
`applications bundled in ROM,is stored in the object
`store.
`
`The Database API. The operating system, in one embodi-
`ment of the invention, has its own structured storage to
`offer an alternative to exposing user and application
`data in files or the registry. For example, a database is
`useful for storing raw data that an application will
`process before displaying to the end-user. Hand-held
`PC applications typically store schedule and contact
`information in databases.
`
`the file system
`In one embodiment of the invention,
`managed by file system module 218 is a transactioned
`system to reduce the possibility that data will be lost due to
`a critical failure, such as loss of power. Additionally, in one
`embodiment of the invention, the file system module 218
`implements a scheme (transactioned) of “mirroring” to
`mirror or track file system operations (not transactioned).
`The purpose for this implementation is to be able to restore
`a file system volume in the case that poweris lost during a
`critical sequence of operations being performed on the
`volume.
`In one embodimentof the invention, the operating envi-
`ronment combines the Win32 User and GDI (Graphics
`Device Interface)
`libraries into a GWES (Graphics,
`Windowing, and Events Subsystem) module 212. The event
`manager and window managerare analogous to Win32 Uscr,
`and the Win32 GDI is replaced with a smaller GDI more
`suitable to embedded systems. The GWES module 212
`includes multiplatform GDI components (supporting an
`associated display driver) that support color and grayscale
`display, palette management, TrueType fonts, Raster fonts,
`cursors, and printer device contexts (DCs).
`The GWES module 212 also supports a window manage-
`ment componentthat provides API functionstailored for the
`smaller display sizes typical of embedded operating sys-
`lems.
`
`The operating environmentof various embodimentsof the
`invention is event-driven. GWES module includes compo-
`neots to handle events, which in one embodiment of the
`invention are implemented as messages.
`Communications module 216 includes a variety of com-
`munications component options to support communications
`
`8
`
`

`

`9
`hardware. This includesserial, parallel, and network (wired
`and wireless) communications. Communications module
`216 includes the following selectable communications fea-
`tures:
`
`Serial I/O support
`Networking support including:
`NDIS 4.0 for local area networking
`PPP and SLIPfor serial link and modem networking
`Client-side Remote Access Server (RAS)
`Internet protocols
`Telephony API (TAPD
`PC Card support
`Infrared transceiver support
`In one embodiment of the invention, an embedded sys-
`tems designer must develop the OEM adaptation layer 208
`to create the platform specific kernel module 214. The OEM
`Adaptation Layer (OAL) module 208 allows an embedded
`system developer to adapt the operating system for a specific
`target platform by creating a thin layer of code that resides
`between the kernel module 214 and the target platform
`hardware 202. The OAL module 208 is specific for a
`particular CPU and target platform.
`The OAL module 208 includes interfaces such as the
`following:
`Interrupt service routine (ISR) handlers to support device
`drivers
`
`Real-time clock (RTC)
`Interval timer (used for the scheduler operation)
`In one embodimentof the invention, the RTC andinterval
`timer does not need to be adapted becauseit is provided on
`the CPU. In this case, these interfaces are implemented in
`the kernel module 214 rather than in the OAL 208.
`
`In addition to managing such functions as timing and
`power, the primary purpose of the OAL is to expose the
`target platform’s har

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket