Booting a computing device to have a predefined functionality

In a method for booting a computing device to have a predefined functionality, in which the computing device has stored thereon a limited functionality operating system (OS) having an operating file system, the limited functionality OS is booted and a characteristic file system with a predefined functionality is located. In addition, the characteristic file system is merged into the operating file system and the limited functionality OS is implemented with the merged file system to cause the computing device to have the predefined functionality.

BACKGROUND

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.

DETAILED DESCRIPTION

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.

FIG. 1Ais a functional block diagram of a computing device100, according to an example of the disclosure. As depicted inFIG. 1A, the computing device100includes an operating system (OS)102, a central processing unit (CPU)106, a memory108, a cache110, and a characteristic file system locator114. It should be understood that the computing device100depicted inFIG. 1Amay include additional components and that some of the components described herein may be removed and/or modified without departing from a scope of the computing device100. For example, the OS102may control additional hardware devices in addition to the CPU106and the memory108shown inFIG. 1A.

The computing device100is an apparatus that includes a limited functionality operating system (OS)102. The characteristic file system locator114is to locate a characteristic file system120(FIG. 1B) and to load the characteristic file system120into the cache110or the memory108. The characteristic file system120has a predefined functionality and includes a set of services, libraries, configurations, tasks, applications, etc., that are associated with the predefined functionality. A predefined functionality is a computing experience that includes launched services, desktop, control panel items, applications, etc. that are available on the computing device100. The predefined functionality of the computing device100for a particular task-based purpose may include functionality appropriate to that task-based purpose. The characteristic file system120, as shown inFIG. 1B, includes a characteristic kit122and configuration files124. The characteristic kit122provides the libraries, tasks, and applications, and the configuration files124provide settings and configurations for the characteristic kit122and the OS102. According to an example, the characteristic file system120contains only the additional libraries/applications, etc., needed to introduce functionality appropriate to the computing device for that task-based purpose beyond the limited functionality contained in the OS102.

The OS102is a limited functionality operating system that organizes and controls hardware resources in the computing device100and comprises machine-readable instructions and data. The OS102may include functionality required to run various limited applications without a characteristic file system120(and corresponding predefined functionality) installed, which may include, for instance, applications for locating and installing the characteristic file system120using the characteristic file system locator114as described hereinbelow. The hardware resources controlled by the OS102may include, for instance, processor capacity for the CPU106and other processors, disk space, network connections, memory, power supply, display devices, input/output bandwidth, etc.

The OS102includes an operating file system104that 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 OS102(and the operating file system104) includes limited functionality that overlaps among computing devices with a plurality of different predefined functionalities. By way of particular example, the OS102may 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 OS102may have the limited functionality until the characteristic file system120is merged into the operating file system104. The characteristic file system120may be merged into, or appended onto, the operating file system104in a manner that does not require installation/setup. For instance, the characteristic file system120may be merged into the operating file system104using a union file system.

A plurality of computing devices similar to the computing device100may be installed at different locations, loaded with appropriate characteristic file systems120, and used to perform different tasks. The computing device100may use interchangeable characteristic file systems120to rewrite/retune the computing device120to 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 locator114may locate the appropriate characteristic file system120for each predefined functionality. The characteristic file system locator114may 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 locator114) comprises a circuit component. In another example, the module (characteristic file system locator114) 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 toFIG. 1C, the characteristic file system locator114is to retrieve an Internet protocol (IP) address via dynamic host configuration protocol (DHCP) and begins searching for a characteristic server130using an automatic network update client (not shown). The characteristic file system locator114may locate the characteristic server130using processes such as, but not limited to, DHCP tags and broadcasting. The characteristic file system locator114may check the located characteristic server130for characteristic file systems120. In instances in which a characteristic file system120that is to replace the current characteristic file system is located on the characteristic server130, the characteristic file system120is downloaded and cached (for instance in the configuration layer112of the cache110shown inFIG. 1A) in local storage on the computing device100. The characteristic file system120may be changed, upgraded or downgraded by placing the characteristic file system120that is to replace the current characteristic file system on the characteristic server130. At the next logout/reboot of the computing device100, the characteristic file system locator114may detect that the characteristic file system120has changed and download the new characteristic file system120.

According to an example, the OS102also receives configuration files124and installs the configuration files124into the configuration layer112in instances in which changes are to be implemented. The configuration files124may be created by an advanced configuration editor (not shown) on the characteristic server130based on selections an administrator of the computing device100and/or characteristic server130has made. These selections may include a particular characteristic file system120, a particular characteristic server to connect to, etc. The configuration files124are input to the computing device100and installed in a manner that the OS102and characteristic file system120may identify information in the configuration files124and use the information to define settings for the OS102(including the operating file system104) and the characteristic file system120. Additionally, the OS102may include a pull based update mechanism that allows the OS102to automatically detect and perform updates to the characteristic file system120without having to perform any additional configuration, substantially simplifying distribution of the characteristic file system120.

According to another example, the characteristic file system120may 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 device100through a direct connection of the storage device to the computing device. The characteristic file system locator114in this instance indicates that the characteristic file system120is included on the storage device and may also provide a protocol for merging the characteristic file system120onto the operating file system104. According to yet another example, the characteristic file system120is stored in a separate cache on the computing device100. The characteristic file system locator114in this instance may comprise pointers to the characteristic file system120.

The size of the characteristic file system120may 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 system120may be of the order of a few seconds to provide a completely customizable graphical desktop. The OS102may also be substantially reduced in size, containing minimum needed to support the hardware of the computing device100, retrieve an IP, contact a characteristic server130and launch a splash screen, as well as some libraries/tools that will be used across all connection types.

The processor106may remove the characteristic file system120in instances in which the characteristic file system120becomes corrupted or a new characteristic file system120is to be installed. In this instance, the OS102may revert to factory defaults. Alternately, the characteristic file system120may be removed and replaced with a new characteristic file system120. According to an example, the OS102is stored entirely within a read-only compressed file system. By storing the OS102in the read only compressed file system, the OS102is protected from possible damage or corruption due to updates, power-offs, malware, etc., since, for instance, updates may occur only in the characteristic file system120. In addition, installation and uninstallation of the characteristic file system120may be performed without risk of registry corruption or file corruption on the OS102.

According to an example, the OS102, the characteristic file system locator114, and the characteristic file system120each 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 memory108, which are executable by a processor106of the computing device100. According to another example, each of the OS102, the characteristic file system locator114, and the characteristic file system120comprise at least one hardware device, such as, a circuit or multiple circuits arranged on a board.

Various manners in which the computing device100may operate are discussed with respect to the method200depicted inFIG. 2and the diagram200. It should be readily apparent that the method200depicted inFIG. 2represents a generalized illustration and that other elements may be added or existing elements may be removed, modified or rearranged without departing from the scope of the method200.

As shown inFIG. 2, there is shown a flow diagram of a method for booting a computing device having operating system, such as the computing device100depicted inFIG. 1, according to an example. It should be apparent that the method200represents a generalized illustration and that other processes may be added or existing processes may be removed, modified or rearranged without departing from a scope of the method200.

At block202, an OS102having an operating file system104is booted, for instance by the processor106. The OS102is a limited functionality OS that that includes libraries and tools usable by the computing device100with a plurality of different predefined functionalities. A predefined functionality of the computing device100includes at least one of launched services, desktop, control panel items and applications. For instance, the predefined functionality of the computing device100may include basic components needed to run applications on the computing device100without a user interface being installed thereon.

At block204, a characteristic file system120is located, for instance by the characteristic file system locator114. The characteristic file system120may include services, libraries, configurations, tasks applications, etc., associated with a predefined functionality. For instance, the characteristic file system120may be located as being available over a network150, from a storage device, from a cache of the computing device100, etc. According to an example, the characteristic file system server may automatically locate a characteristic server130using DHCP, connect to the characteristic server130and download the characteristic file system120from the characteristic server130. At block204, the characteristic file system120may also be downloaded, transferred, copied, etc., onto the memory108or cache110of the computing device100.

According to an example, the OS102executes a predefined start process that is implemented individually within each characteristic file system120and merges the characteristic file system120into the operating file system104. The merged file system completes the functionality of the OS102.

At block206, the characteristic file system120is merged into the operating file system104, for instance, by the OS102. According to an example, the characteristic file system120is merged into the operating file system104by accessing a unification file system (not shown) and using the unification file system to merge the characteristic file system120into the operating file system104. The unification file system may be a component of the computing device100that is designed to merge multiple source file systems into a single working file system.

At block208, the OS102, with the merged file system, is implemented to have a predefined functionality, for instance, by the CPU106. The merged file system completes the functionality of the OS102. The computing device100in this instance has a predefined functionality that is based upon the characteristic file system120.

According to an example, the computing device100is 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 block210, the characteristic file system120may be removed to restore the OS102to a default state, for instance by the processor106. The default state may comprise a state of the computing device100prior to merging the characteristic file system120into the operating file system104.

Some or all of the operations set forth in the method200may be contained as a utility, program, or subprogram, in any desired computer accessible medium. In addition, the method200may 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 toFIG. 3, there is shown a schematic representation of the computing device100depicted inFIGS. 1A and 1C, configured in accordance with an example of the present disclosure. The device100includes a processor302, such as the central processing unit106; a display device304, such as a monitor; a network interface308, such as a Local Area Network LAN, a wireless 802.11x LAN, a 3G mobile WAN or a WiMax WAN; and a computer-readable medium310, such as the memory108. Each of these components is operatively coupled to a bus312. For example, the bus312may be an EISA, a PCI, a USB, a FireWire, a NuBus, or a PDS.

The computer readable medium310may be any suitable medium that participates in providing instructions to the processor302for execution. For example, the computer readable medium310may 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 medium310may also store other machine readable instructions, including word processors, browsers, email, Instant Messaging, media players, and telephony machine-readable instructions.

The computer-readable medium310may 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 applications316; and a booting application318. The limited functionality operating system314may be multi-user, multiprocessing, multitasking, multithreading, real-time and the like. The limited functionality operating system314may also perform basic tasks such as recognizing input from input devices, such as a keyboard or a keypad; sending output to the display304; keeping track of files and directories on the computer readable medium310; controlling peripheral devices, such as disk drives, printers, image capture device; and managing traffic on the bus312. The network applications316include 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 application318provides various components for booting an operating system, as described above. In certain examples, some or all of the processes performed by the application318may be integrated into the limited functionality operating system314. 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 application320provide 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 application320provides components for merging the characteristic file system into the operating file system of the limited functionality operating system314.

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.