Windows Embedded Studio Architectural Overview
What is Windows Embedded Studio?
The Microsoft Windows Embedded Studio is a set of development tools used to create custom Windows XP Embedded operating system images, based on the hardware and software requirements of your embedded system design. Since Windows XP Embedded is based on the same binaries as Microsoft Windows XP Professional, the feature components included in Windows XP Embedded exactly correspond to the features in Windows XP Professional.
To achieve a highly granular level of customization, Microsoft divided Windows XP Embedded into clearly defined units of functionality called components. A component may describe a simple feature such as Notepad.exe or a larger and more complex feature such as Internet Explorer. Windows XP Embedded includes over 10,000 such components. Each component includes data that allows you to mix and match with other components and build a customized operating system runtime image that meets the requirements of your specific embedded scenario.
Along with componentized Windows XP Professional features, Windows Embedded Studio contains the Component Database. The database features enable a broad range of embedded-specific scenarios, such as diskless and headless operation and booting from CD or compact flash. It also has a number of features designed to assist you with image deployment and servicing.
The Windows Embedded Studio toolset tools allow you to define custom components that describe your software, and to add the functionality to your operating system image. You can also add third-party device drivers and applications as components.
Platform Development Tools
Windows Embedded Studio contains the following tools:
- Target Analyzer: Use to quickly create a base operating system image that is built specifically for your target hardware. Works by running a probe that automates the collection of hardware-specific data.
- Target Designer: Use to rapidly develop, customize, and build embedded operating system images.
- Component Designer: Provides an environment where you can define custom components to use in your embedded operating system.
- Component Database: Provides a storage area for component-level information during embedded operating system development.
- Component Database Manager: Use to manage component-level information, such as the component database and underlying repositories, during development.
Target Analyzer probes your target hardware and automates the collection of hardware-specific data. This probe produces an output file containing the hardware-specific information from your target device. You can import this file into the Target Designer tool, which will automatically select the necessary components from the Component Database to support your device hardware.
Target Designer is used to customize and produce the operating system image that you deploy on your device. You build and customize your image using a configuration. A configuration defines the exact contents of your operating system image. When complete, a configuration can be built into an operating system image, which can then be deployed to your embedded device.
The build process does not compile source files; it creates a directory structure in a specified location and copies the actual binary files needed for the operating system image. The contents of the directory structure can then be moved to your target device, where you can then boot up the device with your operating system image.
A configuration is stored in an .slx file, which can be loaded and edited as needed. After a configuration is complete, you can continue using it to build the same target image. You can customize a configuration by selecting components from the database and then resolving any dependencies on other components. Target Designer can automate most of the dependency resolution and requires manual intervention only to resolve ambiguities. Some components also allow you to set parameters so you can determine the exact feature set in the operating system.
Component Designer allows you to create new object definitions for customized software and store them in .sld file format. With Component Designer, you can not only create and edit components specifically for your device but also resolve or include any related resources, dependencies, groups, or repositories. A component which you create using the Component Designer is referred to as a custom component.
The Component Database contains the definitions of each platform, each component, and any supporting data. It is implemented as a Microsoft SQL Server Desktop Engine (MSDE) database and can be stored on the local development computer or stored on a server to better enable team development.
Windows Embedded Studio operating system components are stored in the Component Database and are easily accessible through the Target Designer tool. To incorporate a customized application, service, or driver into your embedded image, you can create a new object definition using Component Designer and then add it to the Component Database as a custom component.
When you create a custom component, the Component Designer stores the data as an .sld file, which contains all component and related definitions. You enter this data in the Component Database by using Component Database Manager to read the contents of the .sld file and insert the component definitions. This procedure is known as "importing data into the Component Database" or simply as "importing an .sld."
Information in the database is always read-only and cannot be updated in place. Database information can be revised only by editing the .sld file and re-importing it. In other words, the Component Database can be viewed as a "component warehouse."
The Component Database contains the following types of data:
- Component: defines a discrete unit of functionality that you can add to a configuration and therefore to your operating system image. A component is associated with a platform and references the resources that comprise the platform's functionality. It also contains information about the logic required to add specific functionality to an operating system image.
- Platform: identifies the operating system and processor set on which an operating system image is based, for example: Windows XP Embedded operating system software or an x86-based processor. Components, resources, and repositories are associated with a specific platform which, in turn, defines the build process, the resource types, and the default build behavior for each component.
- Resource: contains information about an element that is required in the operating system image. The most common resources are files and registry keys. Component definitions include the resources that constitute their functionality.
- Dependency: describes a relationship on a component or a group of components. Component definitions include any dependencies on other components.
- Repository: contains information about the location of files referenced by a component. The repository specifies a path to the physical repository, which is a folder located on either the local machine or on a network-shared directory.
- Group: identifies groups of components or repositories so operations can be applied to a group as a whole, rather than to individual objects.
Component Database Manager is used to import object definitions into the database, browse the database, and delete objects from the database. Component Database Manager also allows you to select a database server that works with both Target Designer and Component Designer.