The use of single purpose electronic devices has been greatly expanding in the past few years, and is expected to be a significant growth market in years to come. Currently these devices are a disparate collection of incompatible hardware running a wide variety of operating systems and software. Interchangeability is near 0% even though a large number of these devices have very similar hardware specifications.
Features of the present disclosure are illustrated by way of example and not limited in the following figure(s), in which like numerals indicate like elements, in which:
For simplicity and illustrative purposes, the present disclosure is described by referring mainly to an example thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be readily apparent however, that the present disclosure may be practiced without limitation to these specific details. In other instances, some methods and structures have not been described in detail so as not to unnecessarily obscure the present disclosure. As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The term “based on” means based at least in part on.
Disclosed herein are a method, apparatus, and computer readable storage medium for booting a computing device to have a predefined functionality, in which the computing device has stored thereon a limited functionality operating system (OS). During a boot up process of the computing device, a characteristic file system with a predefined functionality is located. The characteristic file system may include services, libraries, configurations, tasks, and applications associated with the predefined functionality. In addition, the characteristic file system is merged into the operating file system of the limited functionality OS. The limited functionality OS is implemented with the merged file system to cause the computing device to have the predefined functionality.
Typically, updates for single purpose electronic devices occur via a manual installation/uninstallation process in which applications are installed individually via a manual or partially automated fashion, with individual checks to ensure dependencies are met and that previous versions are removed. This process is often tedious and prone to error and incompatibility issues. Other approaches rely primarily on text based configuration files, manual setup of dynamic host configuration protocol (DHCP) tags and whole image updates. However, a large drawback to these approaches is that the entire operating system (frequently hundreds of megabytes or gigabytes) must be downloaded on boot.
Through implementation of the method, apparatus, and computer readable storage medium disclosed herein, the limited functionality OS is implemented with a layered file system design that includes an operating file system and a characteristic file system. The characteristic file system may be removed if the characteristic file system becomes corrupted or when a new characteristic file system is to be installed, essentially reverting the limited functionality OS to factory defaults. The disclosure substantially improves download/install time of the characteristic file system as the operating file system contains additional libraries/drivers/applications used by all characteristic files systems, so that the characteristic file system need only contain the additional libraries/applications needed to introduce a predefined functionality beyond the limited functionalities of the OS. Additionally, the characteristic file system may be a pre-installed file system that is appended to the operating file system rather than requiring installation/setup. The limited functionality OS may be stored as a read only file that is protected from possible damage or corruption due to updates, power-offs, or malware because updates occur only in the characteristic file system. Further, a pull-based update mechanism may be employed that allows the limited functionality OS to automatically detect and perform updates to the characteristic file system without having to perform any additional configurations.
The computing device 100 is an apparatus that includes a limited functionality operating system (OS) 102. The characteristic file system locator 114 is to locate a characteristic file system 120 (
The OS 102 is a limited functionality operating system that organizes and controls hardware resources in the computing device 100 and comprises machine-readable instructions and data. The OS 102 may include functionality required to run various limited applications without a characteristic file system 120 (and corresponding predefined functionality) installed, which may include, for instance, applications for locating and installing the characteristic file system 120 using the characteristic file system locator 114 as described hereinbelow. The hardware resources controlled by the OS 102 may include, for instance, processor capacity for the CPU 106 and other processors, disk space, network connections, memory, power supply, display devices, input/output bandwidth, etc.
The OS 102 includes an operating file system 104 that contains libraries and tools that may be used to provide a plurality of different predefined functionalities, such as but not limited to, mouse/keyboard support applications, a graphical user interface (GUI) library, display management tools, audio management tools, multimedia libraries, and networking support. More particularly, the OS 102 (and the operating file system 104) includes limited functionality that overlaps among computing devices with a plurality of different predefined functionalities. By way of particular example, the OS 102 may provide support for a plurality of predefined functionalities, which may correspond to task-based purposes, such as, but not limited to, point-of-sale (POS), video game, kiosk, set top box, microwave control, refrigerator control, hiring station, tire center data entry and other uses.
As discussed in greater detail herein below, the OS 102 may have the limited functionality until the characteristic file system 120 is merged into the operating file system 104. The characteristic file system 120 may be merged into, or appended onto, the operating file system 104 in a manner that does not require installation/setup. For instance, the characteristic file system 120 may be merged into the operating file system 104 using a union file system.
A plurality of computing devices similar to the computing device 100 may be installed at different locations, loaded with appropriate characteristic file systems 120, and used to perform different tasks. The computing device 100 may use interchangeable characteristic file systems 120 to rewrite/retune the computing device 120 to run/boot/install only the computing resources that are required to perform a particular task or set of tasks associated with a particular predefined functionality.
The characteristic file system locator 114 may locate the appropriate characteristic file system 120 for each predefined functionality. The characteristic file system locator 114 may comprise a module, such as a software module, hardware module, or a combination of software and hardware modules. Thus, in one example, the module (characteristic file system locator 114) comprises a circuit component. In another example, the module (characteristic file system locator 114) comprises machine-readable code stored on a computer readable storage medium, which is executable by a processor.
According to an example, and as described with respect to
According to an example, the OS 102 also receives configuration files 124 and installs the configuration files 124 into the configuration layer 112 in instances in which changes are to be implemented. The configuration files 124 may be created by an advanced configuration editor (not shown) on the characteristic server 130 based on selections an administrator of the computing device 100 and/or characteristic server 130 has made. These selections may include a particular characteristic file system 120, a particular characteristic server to connect to, etc. The configuration files 124 are input to the computing device 100 and installed in a manner that the OS 102 and characteristic file system 120 may identify information in the configuration files 124 and use the information to define settings for the OS 102 (including the operating file system 104) and the characteristic file system 120. Additionally, the OS 102 may include a pull based update mechanism that allows the OS 102 to automatically detect and perform updates to the characteristic file system 120 without having to perform any additional configuration, substantially simplifying distribution of the characteristic file system 120.
According to another example, the characteristic file system 120 may be stored on a storage device, such as, a universal serial bus (USB) storage device, a compact disk, an external hard drive, etc., and may be provided to the computing device 100 through a direct connection of the storage device to the computing device. The characteristic file system locator 114 in this instance indicates that the characteristic file system 120 is included on the storage device and may also provide a protocol for merging the characteristic file system 120 onto the operating file system 104. According to yet another example, the characteristic file system 120 is stored in a separate cache on the computing device 100. The characteristic file system locator 114 in this instance may comprise pointers to the characteristic file system 120.
The size of the characteristic file system 120 may be substantially reduced, for instance when compared to an operating system image used in some current approaches to updating single purpose electronic devices, and the installation of the characteristic file system 120 may be of the order of a few seconds to provide a completely customizable graphical desktop. The OS 102 may also be substantially reduced in size, containing minimum needed to support the hardware of the computing device 100, retrieve an IP, contact a characteristic server 130 and launch a splash screen, as well as some libraries/tools that will be used across all connection types.
The processor 106 may remove the characteristic file system 120 in instances in which the characteristic file system 120 becomes corrupted or a new characteristic file system 120 is to be installed. In this instance, the OS 102 may revert to factory defaults. Alternately, the characteristic file system 120 may be removed and replaced with a new characteristic file system 120. According to an example, the OS 102 is stored entirely within a read-only compressed file system. By storing the OS 102 in the read only compressed file system, the OS 102 is protected from possible damage or corruption due to updates, power-offs, malware, etc., since, for instance, updates may occur only in the characteristic file system 120. In addition, installation and uninstallation of the characteristic file system 120 may be performed without risk of registry corruption or file corruption on the OS 102.
According to an example, the OS 102, the characteristic file system locator 114, and the characteristic file system 120 each comprise machine readable instructions that may be stored, for instance, in a volatile or non-volatile memory, such as DRAM, EEPROM, MRAM, flash memory, floppy disk, a CD-ROM, a DVD-ROM, or other optical or magnetic media, and the like. The machine readable instructions may be stored in the memory, such as the memory 108, which are executable by a processor 106 of the computing device 100. According to another example, each of the OS 102, the characteristic file system locator 114, and the characteristic file system 120 comprise at least one hardware device, such as, a circuit or multiple circuits arranged on a board.
Various manners in which the computing device 100 may operate are discussed with respect to the method 200 depicted in
As shown in
At block 202, an OS 102 having an operating file system 104 is booted, for instance by the processor 106. The OS 102 is a limited functionality OS that that includes libraries and tools usable by the computing device 100 with a plurality of different predefined functionalities. A predefined functionality of the computing device 100 includes at least one of launched services, desktop, control panel items and applications. For instance, the predefined functionality of the computing device 100 may include basic components needed to run applications on the computing device 100 without a user interface being installed thereon.
At block 204, a characteristic file system 120 is located, for instance by the characteristic file system locator 114. The characteristic file system 120 may include services, libraries, configurations, tasks applications, etc., associated with a predefined functionality. For instance, the characteristic file system 120 may be located as being available over a network 150, from a storage device, from a cache of the computing device 100, etc. According to an example, the characteristic file system server may automatically locate a characteristic server 130 using DHCP, connect to the characteristic server 130 and download the characteristic file system 120 from the characteristic server 130. At block 204, the characteristic file system 120 may also be downloaded, transferred, copied, etc., onto the memory 108 or cache 110 of the computing device 100.
According to an example, the OS 102 executes a predefined start process that is implemented individually within each characteristic file system 120 and merges the characteristic file system 120 into the operating file system 104. The merged file system completes the functionality of the OS 102.
At block 206, the characteristic file system 120 is merged into the operating file system 104, for instance, by the OS 102. According to an example, the characteristic file system 120 is merged into the operating file system 104 by accessing a unification file system (not shown) and using the unification file system to merge the characteristic file system 120 into the operating file system 104. The unification file system may be a component of the computing device 100 that is designed to merge multiple source file systems into a single working file system.
At block 208, the OS 102, with the merged file system, is implemented to have a predefined functionality, for instance, by the CPU 106. The merged file system completes the functionality of the OS 102. The computing device 100 in this instance has a predefined functionality that is based upon the characteristic file system 120.
According to an example, the computing device 100 is implemented with the merged file system to provide client services, web services, a universal serial bus (USB) redirection service, a client update service, a taskbar, a window manager, a desktop background drawing tool, a remote printer mapping application, a customized login window, specialized system initialization scripts, an integrated application for changing system volume, etc.
At block 210, the characteristic file system 120 may be removed to restore the OS 102 to a default state, for instance by the processor 106. The default state may comprise a state of the computing device 100 prior to merging the characteristic file system 120 into the operating file system 104.
Some or all of the operations set forth in the method 200 may be contained as a utility, program, or subprogram, in any desired computer accessible medium. In addition, the method 200 may be embodied by computer programs, which may exist in a variety of forms both active and inactive. For example, they may exist as machine readable instructions, including source code, object code, executable code or other formats. Any of the above may be embodied on a computer readable storage medium.
Examples of computer readable storage media include conventional computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. Concrete examples of the foregoing include distribution of the programs on a CD ROM or via Internet download. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.
Turning now to
The computer readable medium 310 may be any suitable medium that participates in providing instructions to the processor 302 for execution. For example, the computer readable medium 310 may be non-volatile media, such as an optical or a magnetic disk; volatile media, such as memory; and transmission media, such as coaxial cables, copper wire, and fiber optics. Transmission media can also take the form of acoustic, light, or radio frequency waves. The computer readable medium 310 may also store other machine readable instructions, including word processors, browsers, email, Instant Messaging, media players, and telephony machine-readable instructions.
The computer-readable medium 310 may store a microprocessor that is capable of running an embedded real-time operating system (RTOS), such as Linux or Unix, and, based on architecture may also support desktop OSes such as Ubuntu, Windows or Mac; network applications 316; and a booting application 318. The limited functionality operating system 314 may be multi-user, multiprocessing, multitasking, multithreading, real-time and the like. The limited functionality operating system 314 may also perform basic tasks such as recognizing input from input devices, such as a keyboard or a keypad; sending output to the display 304; keeping track of files and directories on the computer readable medium 310; controlling peripheral devices, such as disk drives, printers, image capture device; and managing traffic on the bus 312. The network applications 316 include various components for establishing and maintaining network connections, such as machine readable instructions for implementing communication protocols including TCP/IP, HTTP, Ethernet, USB, and FireWire.
The booting application 318 provides various components for booting an operating system, as described above. In certain examples, some or all of the processes performed by the application 318 may be integrated into the limited functionality operating system 314. In certain examples, the processes may be at least partially implemented in digital electronic circuitry, or in computer hardware, machine readable instructions (including firmware and/or software), or in any combination thereof. The characteristic file system installing application 320 provide instructions for locating a characteristic file system that may include services, libraries, configurations, tasks and applications associated with a predefined functionality. In addition, the characteristic file system installing application 320 provides components for merging the characteristic file system into the operating file system of the limited functionality operating system 314.
Although described specifically throughout the entirety of the instant disclosure, representative embodiments of the present disclosure have utility over a wide range of applications, and the above discussion is not intended and should not be construed to be limiting, but is offered as an illustrative discussion of aspects of the disclosure.
What has been described and illustrated herein is a preferred example of the disclosure along with some of its variations. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Many variations are possible within the spirit and scope of the disclosure, which is intended to be defined by the following claims -- and their equivalents -- in which all terms are meant in their broadest reasonable sense unless otherwise indicated.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US11/30962 | 4/1/2011 | WO | 00 | 9/23/2013 |