0% found this document useful (0 votes)
16 views49 pages

Embedded Operating Systems

The document provides a comprehensive overview of embedded operating systems, particularly focusing on Windows CE and real-time systems. It covers their history, evolution, characteristics, and the significance of these systems in various electronic devices. The objective is to define the components and stages of embedded operating systems to enhance their performance in fulfilling specific tasks within limited resources.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views49 pages

Embedded Operating Systems

The document provides a comprehensive overview of embedded operating systems, particularly focusing on Windows CE and real-time systems. It covers their history, evolution, characteristics, and the significance of these systems in various electronic devices. The objective is to define the components and stages of embedded operating systems to enhance their performance in fulfilling specific tasks within limited resources.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 49

SISTEMAS OPERATIVOS EMBEBIDOS, CE Y TIEMPO REAL

PRESENTED TO: CARLOS GOMEZ

PRESENTED BY: BRIGETH CEBALLOS 908514


BEATRIZ SERNA 908558

National University of Colombia

MANIZALES HEADQUARTERS

OPERATING SYSTEMS

October 23, 2012

0
INDEX

INTRODUCTION…………………………………………………………..........2

THEORETICAL
FRAMEWORK………………………………………………………….....3

BODY………………………………………………………………………..4

Introduction…………………………………………………………………………
…...4
History and evolution...……………………………………………………5
Presentation………………………………………………………………16
System Structure and Components………………………………...17
Platforms on which it works………………………………………18
Installation process…………………………………………………...23
Process and processor management……………………………….....25
Memory Management………………………………………………………….27
Auxiliary memory management…………………………………………...28
Input and output management…………………………………………....31
Communications and security management……………………………….31
Real-time support……………………………………………………..34
Cloud support and integration (cloud computing)……….35
Comparative analysis with Linux and Windows XP………………………...38
Statistics on worldwide use……………………………...39
Other aspects…………………………………………………………....43
ABSTRACT………………………………………………………………………..45
CONCLUSIONS………………………………………………………………..50

1
OBSERVATIONS…………………………………………………………………………
…....51
BIBLIOGRAPHY………………………………………………………………...52

INTRODUCTION

An embedded operating system is one that is integrated into the circuits of


electronic devices, among these devices we find household appliances, mobile
phones, radios, televisions, cars, barcode readers, medical equipment, personal
digital assistants (PDA), etc. These systems usually have some characteristics of
real-time systems which have been developed in order to ensure the proper
fulfillment of tasks taking into account time restrictions which makes it necessary
for the system to be deterministic; but embedded operating systems have
limitations of size, memory and electricity consumption that make them special;
and they are not usually visible.

Windows CE is another example of an embedded operating system which is a


member of the Windows family that has a special purpose, to provide a modern,
cross-platform, multi-threaded, small-footprint operating system. When we talk
about size, we are referring to the amount of memory and storage needed to house
the system.

The importance and increased usefulness of embedded operating systems has


been notable, since today we are surrounded by all kinds of electronic devices and
this type of operating system is the most common in many of them since they are
limited to a fixed and limited number of tasks.

The objective of this bibliographic compilation is to be able to define different


stages and components that integrate embedded operating systems and that have
allowed them to achieve better performance of all electronic components in the
fulfillment of their functions. The course covers the history, evolution and general
vision of embedded, CE and real-time operating systems, concepts of internal
operation, process management, memory, communication and security, and
statistics are presented to measure trends in the use of these systems in the
current market.

2
Knowing the operation and details of this type of system is important to have a
vision as a developer, which is ultimately one of the objectives of the Computer
Systems Administration career, recognizing that any development will need to be
on a particular operating system according to the activities that it performs.

THEORETICAL FRAMEWORK

As part of the research to be carried out on embedded operating systems, it is


necessary to have a knowledge base that answers singular questions such as:

What are embedded operating systems? What characteristics do they have? How
do they behave? and other questions, the answers to which will be shown below.

An embedded operating system is one that has been created for an embedded
system, that is, a computing system limited to a fixed and limited number of tasks.
Obviously, this does not include personal computers, mobile phones, tablets or
advanced devices that we are familiar with.

A peculiarity of embedded systems is that they are a unit with the applications they
run, which means that in many cases it is not possible to install any additional
software on them.

A very common use of embedded systems is in real-time systems, where real-time


systems are understood as those systems in which time control is vital for correct
operation. Real-time systems need to perform certain operations or calculations
within a time limit. Where that time limit is crucial.

Some of the characteristics of these systems are that they are dependent. Within
the concept of dependency, other concepts arise such as reliability, maintenance,
security and availability. These apply to embedded systems operating in factories
or industrial plants that run around the clock. Also, embedded systems have to be
efficient, both in energy consumption and the code they use to operate, this is due
to the limited storage memory capacity they have.

INTRODUCTION

3
In our daily lives we encounter thousands of tools such as the microwave, the car,
the elevator, the audio equipment, the airplane, which are controlled by computers
that normally do not have a screen, a keyboard or a hard drive, and do not respond
to what we commonly call a PC. But we never really stop to ask ourselves how it
manages to carry out all its functions. The question that might arise is, are they
intelligent? Well, they are not; they are simply computing systems limited to a fixed
and limited number of tasks. Obviously, this does not include personal computers,
mobile phones, tablets or advanced devices that we know of, which have an
integrated real-time operating system that allows them to carry out the repetitive
and simple activities for which these appliances were designed.

A particularity of embedded systems is that they are a unit with the applications
they run, which means that in many cases it is not possible to install any additional
software on them.

Windows CE is another example of an embedded operating system which is a


member of the Windows family that has a special purpose, to provide a modern,
cross-platform, multi-threaded, small-footprint operating system. When we talk
about size, we are referring to the amount of memory and storage needed to house
the system.

HISTORY OF EMBEDDED OPERATING SYSTEMS AND REAL TIME

4
In the late 1940s, the use of computers was restricted to those companies or
institutions that could pay their high price, and operating systems did not exist.
Instead, the programmer had to have a deep knowledge and contact with the
hardware, and in the unfortunate event that his program failed, he had to examine
the values of the registers and panels of indicator lights of the computer's status to
determine the cause of the failure and be able to correct his program, in addition to
facing again the procedures of setting aside system time and tuning the compilers,
linkers, etc.; to run his program again, that is, he faced the problem of serial
processing.
The importance of operating systems historically arose in the 1950s, when it
became evident that operating a computer by means of plug-in boards in the first
generation and then by means of batch work in the second generation could be
significantly improved, since the operator always performed a sequence of
repetitive steps, which is one of the characteristics contemplated in the definition of
what a program is. That is, it began to be seen that the operator's own tasks could
be captured in a program, which over time and due to its enormous complexity was
called "Operating System". Thus, we have among the first operating systems the
Fortran Monitor System (FMS) and IBSYS.
Later, in the third generation of computers, one of the first operating systems was
born with the philosophy of managing a family of computers: IBM's OS/360. This
was such a novel and ambitious project that for the first time it faced a series of
conflicting problems because previously computers were created for two general
purposes: commercial and scientific. Thus, by trying to create a single operating
system for computers that could be dedicated to one purpose, the other, or both,
he highlighted the problems of working in teams for the analysis, design, and
implementation of large systems. The result was a system that one of its designers
expressed his opinion of on the cover of a book: a horde of prehistoric beasts stuck
in a tar pit.
The concept of multiprogramming also emerged in the third generation of
computers, because due to the high cost of computers it was necessary to devise
a work scheme that would keep the central processing unit busy for longer, as well
as the spooling of jobs to be read to free memory locations or the writing of results.
However, it can be argued that systems during the third generation remained
basically batch systems.
In the fourth generation, electronics are moving towards large-scale integration,
making it possible to create circuits with thousands of transistors in a square
centimeter of silicon, and it is now possible to talk about personal computers and
workstations. The concepts of user-friendly interfaces emerge in an attempt to
attract the general public to the use of computers as everyday tools. MS-DOS and
UNIX become popular on these machines. It is also common to find clones of

5
personal computers and a multitude of small companies assembling them around
the world.
By the mid-80s, the rise of computer networks and the need for network operating
systems and distributed operating systems began. The Internet is becoming
accessible to all kinds of institutions and many solutions (and problems) are
beginning to emerge when trying to make resources residing on computers with
different operating systems coexist. In the 90s, the paradigm of object-oriented
programming gained popularity, as did the management of objects from operating
systems. Applications are intended to be created to run on a specific platform and
to be able to view their results on the screen or monitor of a different one (for
example, running a simulation on a UNIX machine and viewing the results on a
DOS machine). The levels of interaction are becoming increasingly deeper.
In the last 10 years the world of communications has changed dramatically. Since
1993, with the emergence of the WWW, a large part of the world's population has
had access to a global data network that for a long time was for the exclusive use
of the academic university community and the Department of Defense of the
United States of America. This massive approach to this network of networks
known as the Internet brought with it many advantages, the most important of
which is undoubtedly the possibility of reducing distances. The World Wide Web
allowed network users to easily access a large amount of information and even to
easily place the information itself within reach of all other users. The browser
became a tool for everyday use in the home.
Over time, the Internet made it possible to perform tasks that 10 years ago would
have taken days or hours in just a few minutes, and gave rise to new ideas. The
possibility of acting remotely using the Internet as a means to carry out control or
maintenance operations also began to gain ground. And this is what a significant
part of this work is about, taking as its starting point the possibility and scope of
using the Internet as an easily accessible medium to allow the control and
maintenance of electronic devices. For example, using a simple browser you can
have a complete, real-time overview of the status of an industrial plant, a farm or a
home's security system, and this can be controlled from anywhere in the world that
has an available Internet connection.
Embedded and Real-Time Operating Systems emerged in the late 70's and 80's.
Embedded systems are available at every moment of our lives. The microwave
oven, the car, the elevator, the audio equipment, the airplane are controlled by
computers that normally do not have a screen, a keyboard or a hard drive, and do
not respond to what we commonly call a PC.

6
EVOLUTION OF EMBEDDED OPERATING SYSTEMS AND REAL TIME

 1981: QMX first microkernel OS for PCs, supported by the IBM PC.
 1982: QMX first OS for PCs that supported a hard disk (5MB Davong).
 1983: QMX first PC OS running on an 80286 in protected mode.
 1984: QMX one of the first to offer transparent distributed processing for
PCs.
 1985: QMX first real-time OS that ran on the first Compaq 80386.
 1990: QMX first POSIX certified real-time OS microkernel.
 1992: QMX first real-time OS for fault-tolerant networking (FLEETTM).
 1993: The first release of NetBSD (version 0.8) saw the world on April 20,
1993.
 1994: QMX first embeddable windowing microkernel system (the Photon
microGUI).
 1995: OpenBSD was born following Theo de Raadt's expulsion from the
NetBSD development group.
 1996: QMX first POSIX-based microkernel for deeply embedded systems
(QNX/Neutrino). 1996: Windows CE 1.0: commercially launched this year
and its source code was written from scratch, partially compatible with
traditional Windows as it supports part of the famous Win32 API. Hardware
independent as it is compatible with the most common 32-bit architectures.
 1997: QMX first desktop search engine for the web of embedded systems
(Voyager TM).
 1997: Windows CE 2.0 Based on the predecessor version 1.0, it was
released in 1997. Added support for Intel and AMD processors Supports 24-
bit resolution displays, LAN network connection ActiveX technology support
Incorporates the Java virtual machine. Partial support for MFC (Microsoft
Foundatin Classes, a C++ class library for Windows programming, included
in MS. Visual C++) USB and infrared connectivity. FAT support and printing.
 1998: First to fit an OS, GUI, browser, server, dialer, TCP/IP, and more onto
a 1.44M disk (1.44M Demo Disk)
 2000: First to offer a host and graphical platform for embedded OS
designers
 2000: WindowsCE 3.0, this version was released on the market that year in
order to compete with the PALM operating system, incorporating priority
interrupts, greater efficiency in the management of threats and in
communications between processes, greater storage capacity, it is the basis
of the PocketPC 2002 operating system, which could then be found on
some PDAs and telephones.

7
 2002: Windows CE 4.0: Much more robust and efficient operating system at
the multiprocess level than the previous version. Greater degree of
communication and synchronization with the traditional Windows system.
From it was born in June 2003 the well-known version Windows Mobile
2003. It was basically a name change and some added applications. 2003:
Microsoft Windows CE .Net 4.0 is released
 2004: Microsoft releases Windows CE .Net 4.2 early in the year. Windows
XP Embedded is released.
 2005: Windows CE 5.0: Penultimate version of this operating system
released in May. Improvement of office and multimedia software.
Improvements to the Bluetooth stack. This gave rise to the Windows Mobile
5.0 version available on a multitude of mobile phones and PDAs.
 2007: Windows CE 6.0: Last version of this operating system released at
the beginning of the year. 30% more performance than its predecessor
Windows CE 5.0. It is possible to access via API an I/O in a cycle of 100us.
The biggest changes are in the Kernel. The operating system architecture
has been completely revised. Each process is capable of addressing 2GB
(previously 32Mb). The number of simultaneous processes has increased
from 32 to 32,000.

HISTORY OF WINDOWS CE EMBEDDED

The ce operating system was created from the already existing operating systems
of the Microsoft family such as Windows 9x, Windows NT, which were already
created systems which were dedicated to compatibility with applications with
existing hardware in which multitasking was intended to be integrated. Because
what Windows NT wanted was to become the preferred operating system for
companies. However, Windows CE was intended to provide a modern, small-
footprint, multi-threaded, cross-platform operating system. This last feature is the
main difference with Windows 95 and Windows NT. When we talk about size, we
refer to the amount of memory and storage needed to host the operating system.
Initially, when Windows CE was being developed, it was given the name Pegasus
and a new device was being developed at the same time which would have
Windows CE as its operating system. This device was called Handheld PC (HPC)
or pocket PC. This was one of the first platforms to accept the use of Windows CE

Another well-known device is the Palm-size PC, which is smaller than the previous

8
one and does not have a keyboard but instead has a touch recognition system and
an input panel that appears on the screen.

These devices rely on batteries for power and last 20 hours with heavy use or with
light use they can last a week, as a general rule it is said that devices that use
Windows CE have shorter battery lives. Unlike Windows 9x or NT, the Windows
CE operating system does not need to be restarted every time the user wants to
use it. In fact, machines can be configured so that when the user logs in to the
system, the device is activated.
These devices came only on a small card that plugged into an HPC or Palm-size
PC.
We will take HPC as an example to see what hardware it needs, which will allow us
to understand how this operating system works. This device which had Windows
CE implemented was one of the first, trends and technologies have changed.
A Pocket PC or HPC almost always consists of a 480x240 or 640x240 grayscale
display, accompanied by a small keyboard. Instead of a mouse, the device has a
touch pad that covers the screen. Every HPC includes a serial port and a 115 Kbps
infrared port. Systems have either a PCMCIA slot or a mini card slot. The physical
memory configuration is very interesting in an HPC. A typical Pocket PC has 4 MB
or 8 MB of ROM and 2 MB or 4 MB of RAM. The ROM contains the operating
system and the suite of pocket applications sold with Windows CE (Word and
Excel), which have been dubbed Pocket Word and Pocket Excel. However, due to
the nature of ROM, applications cannot just run in ROM; applications not only read
from memory, but also write to it. Therefore it can be concluded that the ROM
contains read-only instructions and values while some RAM must be used for
values that applications wish to write at some point. The RAM required by the
operating system itself is about 500KB, and applications don't really take up much
of it. For example, a Pocket Word instance uses only 16K of RAM when loaded.
RAM is divided into two parts, one for system RAM used by the operating system
and applications, and the other part, called object storage, for data storage. Files
stored in the object store are not saved as is, but are compressed in a 2:1 ratio.
HPCs do not have floppy drives or hard drives, however SRAM and ATRA Flash
PC Cards are supported in devices with PC Card slots. Breaking with tradition,
HPCs currently do not use Intel or Intel-compatible processors. Instead, HPCs
currently support the use of RISC processors: The Hitachi SH3, the NEC VR4101
and the Phillips 3910 (the latter two supporting the MIPS processor). Because NEC
and Phillips processors use a common subset of the MIPS instructions, it can be
said that from a software perspective, only two CPUs are supported: MIPS and
SH3.

9
Windows CE 1.00 and 1.01 were the first step in creating a Windows operating
system that was not targeted at a PC. Although many people think that CE stands
for "Compact Edition", the truth is that this name can mislead programmers and
users, because saying Compact Edition sounds like a "subset of Windows", and in
reality Windows CE was written from scratch, unlike, for example, Windows 95,
which was written based on Windows 3.x. As mentioned, the first version of
Windows CE shipped with HPCs.

Windows CE Windows CE was the first step in creating an operating system that
was not targeted at a PC. Many people think that CE stands for “Compact Edition”,
the truth is this name can mislead the programmer and the user, because saying
compact edition sounds like a small part of Windows, but in reality Windows CE
was written from scratch, unlike for example Windows 95 which was written based
on Windows 3.x. As stated above, the first version of Windows CE shipped with
HPCs.

WINDOWS CE EVOLUTION

The evolution of Windows CE, which started very basically, increased as users
needed many more applications on their devices. We will learn a little about the
evolution of Windows CE (versions)
Windows CE 1.0.
Source code was written from scratch and was commercially released in 1996.
Partially compatible with traditional Windows as it supports part of the famous
Win32 API. Hardware independent as it is compatible with the most common 32-bit
architectures.
Windows CE 2.0
Based on the predecessor version 1.0, it was released in 1997. Added support for
Intel and AMD processors Supports 24-bit resolution displays LAN network
connection ActiveX technology support Incorporates the Java virtual machine.
Partial support for MFC (Microsoft Foundatin Classes, a C++ class library for
Windows programming, included in MS. Visual C++) USB and infrared connectivity
FAT and printing support
Windows CE 3.0

10
This version was released in 2000 to compete with the PALM operating system.
Incorporating interruptions with priorities. Greater efficiency in threat management
and in communications between processes Greater storage capacity. It is the basis
of the PocketPC 2002 operating system, which could then be found on some PDAs
and telephones.
Windows CE 4.0
This new version of the operating system appeared in March 2002. It is a much
more robust and efficient operating system at the multiprocess level than the
previous version. Greater degree of communication and synchronization with the
traditional Windows system. The well-known version Windows Mobile 2003 was
born from it in June 2003. It was basically a name change and some added
applications.
Windows CE 5.0
Penultimate version of this operating system launched in May 2005. Improvement
of office and multimedia software. Improvements in the Bluetooth stack This gave
rise to the Windows Mobile 5.0 version available on a multitude of mobile phones
and PDAs.
Windows CE 6.0
Latest version of this operating system released earlier this year. 30% more
performance than its predecessor Windows CE 5.0 It is possible to access I/O via
API in a 100us cycle The biggest changes are in the Kernel. The operating system
architecture has been completely revised. Each process is able to address 2GB
(previously 32Mb) The number of simultaneous processes has increased from 32
to 32,000 WINDOWS CE ARCHITECTURE

GENERAL CHARACTERISTICS

EMBEDDED OPERATING SYSTEMS

Embedded and real-time systems are technologies that are embedded in everyday
life and are generally not easily identified, nor are the operating systems that make
their manipulation possible and that at the same time manage the resources of
these devices to maximize performance defined.

11
An embedded operating system is one that is integrated into the circuits of
electronic devices, including household appliances, mobile phones, radios,
televisions, automobiles, barcode readers, medical equipment, personal digital
assistants (PDA), etc.

These systems usually have some characteristics of real-time systems but also
have limitations in size, memory and electricity consumption that make them
special and are usually not visible.

Some features are:

Reliability and safety: A failure in a control system can cause the controlled
system to behave in a dangerous or uneconomical manner. It is important to
ensure that if the control system fails, it does so in a way that the controlled system
remains in a safe state. Possible failures or exceptions in the design must be taken
into account.

Efficiency: Many control systems must respond very quickly to changes in the
controlled system.

Interaction with physical devices: Embedded systems interact with their


environment through various types of devices that are normally not conventional
(keyboards, printers): A/D and D/A converters, PWM, parallel and serial digital
inputs and outputs, (interfaces with sensors, actuators, special peripherals). The
software components that control the operation of these devices are generally
dependent on the specific system.

Robustness: Embedded in systems with movement or that can be transported,


subject to vibrations and even impacts (cars, robots, portable instrumentation).
They do not always work in optimal conditions of temperature, humidity, and
cleanliness.

Among the platforms of embedded operating systems we have:

QNX is an embedded operating system developed by QNX Software Systems Ltd,


for applications in electronic devices, telecommunications, automotive systems,
etc.; which require high reliability, performance, specific functionalities, and
massive scalability.

12
Embedded Linux is a typical Linux system from which utilities, tools, and other
system services that are not needed in an embedded environment have been
removed. Linux for embedded devices began with kernel and compiler support for
the most popular 32-bit microprocessors: x86, ARM, PowerPC, MIPS, and SH. And
then it continued with the appearance of different Linux distributions with support
for specific features of embedded systems.

Windows XP for embedded systems. While Microsoft has kept alternative


operating system makers to Windows against the wall when it comes to desktop
computers, its position in the battle for supremacy in the field of operating systems
for non-PC devices was vulnerable. Microsoft is therefore taking a further step in
this sector, launching the version for embedded devices at the Conference for
developers of this type of system held in Las Vegas. This decision seems to be in
line with predictions that point to a progressive inclusion of microprocessors in
almost all types of devices (refrigerators, cars, etc.).

DOS is closely tied to the progressive development of Intel's x86 architecture


microprocessors. And it is an operating system that you should know because it is
still in force thanks to its stability since it was developed in parallel with Intel and
IBM technology and because it is a very simple, single-user and single-task
operating system. In other words, DOS only runs one program at a time.

Java for embedded systems. Java technology is increasingly used in advanced


embedded systems due to its inherent capabilities in network support, device
optimization, and data processing. Most of the features of the Java SE platform
can now be used for embedded development, thanks to the increasing capabilities
of new hardware available on the market.

CE OPERATING SYSTEMS

Windows CE was introduced in a suite of handheld PC products in 1996, but was


later transformed into a highly configurable embedded operating system. Its
advantages include the inclusion of a subset of the Win32 API focused on
commonly needed services, as well as optimization of energy consumption. In this
system, when we talk about size, we refer to the amount of memory and storage
needed to house the system.

While Windows CE was being developed, it was given the name Pegasus and a
new device was being designed along with it that would later have it as an

13
operating system. This device was called Handheld PC (HPC) or pocket PC. CE,
adding a complete set of development tools for building sophisticated design
products, with powerful applications to run on the most current hardware.

It is a powerful, real-time operating system for the agile development of next-


generation, smart and compact connected devices. This includes the software
needed to create Windows-based devices.

Characteristics

•Windows CE provides fairly comprehensive support for the most advanced


features found in embedded computers, both for processors and other hardware
elements.

•It is very modular

•The Windows CE API is intended to facilitate portability with Windows operating


systems for SSPG.

Platform

Windows CE supports more than 160 processor models, belonging to 5 different


types of architectures: ARM, MIPS, PowerPC, SH and x86 (protected mode). They
are processors with a series of essential characteristics for this OS:

The amount of memory needed to store the operating system depends on the
modules and functions required by the platform. The minimum version of the OS,
which includes the kernel and file system (services that we will see in the next
section), takes up about 200 KB if compiled for an x86 in Release version (400 KB
in Debug version). A configuration with the maximum number of modules can
reach almost 30 MB in a debug mode compilation for MIPS family processors.

REAL TIME OPERATING SYSTEMS

A real-time process or task is one that is executed in connection with some


process, function or set of events external to the computer system and that must
meet one or more deadlines to interact correctly and efficiently with the external
environment.

14
Characteristics

•Small size (with minimal associated functionality)


• Fast context switches
• Ability to respond quickly to external interruptions
• Multitasking with interprocess communication tools such as traffic lights and
signals
• Use of sequential files to store data at high speed
• Expropriation planning based on priorities
• Reduction of the intervals in which interrupts are disabled
• Special alarms and timers

PRESENTATION OF EMBEDDED OPERATING SYSTEMS

Embedded systems are defined as a combination of computer hardware and


software, perhaps plus some mechanical or other parts, designed to perform a
specific function. It is common to use these devices but few realize that there is a
processor and a program running that allows them to function. This offers a
contrast with the personal computer, which is also made up of a combination of
hardware and software plus some mechanical parts (hard drives, for example).
However, the personal computer is not designed for a specific use. If not, it is
possible to give it many different uses. Many times an embedded system is a
component of a much larger system, such as the brake system or the fuel injection
system, in today's cars they are embedded systems. This combination of software
and hardware can be replaced in many cases by an integrated circuit that performs
the same task. But one of the advantages of embedded systems is their flexibility.
Since when making any modification it is much easier to modify a line of code to
the embedded system software than to replace the entire integrated circuit.
A very common use of embedded systems is in real-time systems, where real-time
systems are understood as those systems in which time control is vital for correct
operation. Real-time systems need to perform certain operations or calculations
within a time limit. Where that time limit is crucial. A clear example of a real-time
system is air traffic control.

STRUCTURE OF AN EMBEDDED SYSTEM

15
The main characteristics of an embedded system are low cost and power
consumption. Since many embedded systems are designed to be produced in
thousands or millions of units, cost per unit is an important consideration at the
design stage. Typically, embedded systems employ very basic, relatively slow
processors and small memories to minimize costs. In these systems, speed is not
only given by the processor clock speed, but the entire architecture is simplified in
order to reduce costs. Typically, an embedded system uses peripherals controlled
by synchronous serial interfaces, which are many times slower than the peripherals
used in a PC. Embedded systems must react to stimuli from the environment,
responding with strong time constraints in many cases, therefore, a system is said
to work in real time if the information after acquisition and processing is still current.
That is to say, in the case of information that arrives periodically, the acquisition
and processing times must be less than the update period of said information. An
embedded system may or may not be real-time depending on the specific
requirements of the application to be implemented.

Programs on these systems run with minimal downtime and facing strong
hardware limitations, since they usually do not have hard drives, keyboards or
monitors, flash memory replaces the disks and some buttons and an LCD screen
usually replace the interface devices. The software that controls a hardware
device, for example in a ROM, Flash memory or an integrated circuit is known as
Firmware. Typically, programming on these devices is done in assembly language
or C language; currently, some virtual machines and other compilers have been
developed that allow the design of more complex programs.

COMPONENTS OF AN EMBEDDED SYSTEM

An embedded system would in principle consist of a microprocessor and software


that runs on it. However, this software will certainly need a place to be stored in
order to be executed by the processor. This could take the form of RAM or ROM,
every embedded system will need some amount of memory, which may even be
found within the processor chip itself. In addition to this, an embedded system will
normally have a series of inputs and outputs necessary to communicate with the
outside world. Because the tasks performed by embedded systems are relatively
simple, commonly used processors have 8- or 16-bit registers. Only the program
intended to govern a particular application resides in its memory. Its input/output
lines support the connection of the sensors and actuators of the device to be
controlled and all the complementary resources available have the sole purpose of

16
meeting its requirements. These are the only features that embedded systems
have in common, everything else will be totally different for each particular
embedded system due to the immense diversity of applications available.

PLATFORMS ON WHICH EMBEDDED OPERATING SYSTEMS WORK

Linux on embedded systems


Linux is everywhere. It may not have won the battle in personal computers yet, but
it is definitely number one in the embedded systems area. Without knowing it, we
are surrounded by thousands of devices running Linux. Contrary to what it may
seem, Embedded Linux is not a reduced version of Linux. The term "embedded"
actually refers to the functionality of the application, not the functionality of Linux.
The reliability of Linux is a direct consequence of this philosophy, which implies the
altruistic contribution of thousands of programmers around the world observing the
code, improving it, changing it and testing it in thousands of possible system
configurations. Linux for embedded devices began with kernel and compiler
support for the most popular 32-bit microprocessors: x86, ARM, PowerPC, MIPS,
and SH. And then it continued with the appearance of different Linux distributions
with support for specific features of embedded systems. Thanks to the availability
of source code, the absence of royalties and the support of modern micros and
technologies, Linux is currently fiercely attacking the RTOS market. 13 One of the
fundamental changes in Linux is the inclusion of the uClinux project in the main
kernel. The uClinux project (pronounced "u-cé-linux" [you-see-Linux] but actually
written with the Greek letter "mu") stands for Linux for Microcontrollers. This Linux
variant has been a key stack for its acceptance in the embedded market, and its
inclusion in the official release should further increase development in this field.
Unlike the Linux variants we are used to, in embedded systems we do not have all
the capabilities of the kernel, due to hardware limitations.

The main difference in these variants is the absence of an MMU (memory


management unit - which allows an operating system to work in protected mode)
integrated into the processor. Although they are usually multitasking Linux
systems, they do not have memory protection or other associated features.
(Without memory protection, it is possible for an edgy process to read other
processes' data, or even crash them.) This reduces their usefulness on a multi-
user system, but makes them ideal for a low-cost PDA or dedicated device. It's
hard to overstate the significance of this architectural change in Linux 2.6: up to

17
this point, all versions were still affected (however remotely) by the limitations
inherent in Linus's early work on his Intel 80386. There are several new lines of
embedded processors supported by Linux 2.6, including the Hitachi H8/300 series,
the NEC v850 processor, and the Motorola-designed m68k line of embedded
processors. The latter are the most familiar to the average Linux user, as they have
been at the heart of the Palm Pilot notebooks since the beginning (the Palm 1000).
Other models, with suggestive names like DragonBall and ColdFire, are used in
systems and evaluation boards manufactured by Motorola, Lineo, Arcturus, and
other companies. Unfortunately, v2.6 still does not support the use of older m68k
processors without an MMU (such as the 68000 processors used in early
Macintoshes), but it is quite likely that amateur projects will emerge to support
these and similar systems. Although not part of the uClinux inclusion (due to the
MMU), this new revision can also be used on Axis Communications processors,
the ETRAX CRIS (Code Reduced Instruction Set) series. (It should be noted that
the inclusion of this processor came during the 2.4 kernel maintenance cycle -- well
after the 2.4.0 release.) It is an embedded processor used primarily in networking
equipment. The kernel does not yet include support for non-MMU variants, but
several external projects are already working on it. In addition to hardware support,
there are also important improvements resulting from the integration of embedded
systems into the main kernel.
While most of these are not visible, the overall robustness of the operating system
is improved by changes such as the ability to build a complete system without
swap support.

Windows XP for embedded systems


While Microsoft has kept alternative operating system makers to Windows against
the wall when it comes to desktop computers, its position in the battle for
supremacy in the field of operating systems for non-PC devices was vulnerable.
Microsoft is therefore taking a further step in this sector, launching the version for
embedded devices at the Conference for developers of this type of system held in
Las Vegas. This decision seems to be in line with predictions that point to a
progressive inclusion of microprocessors in almost all types of devices
(refrigerators, cars, etc.). In addition, with this initiative Microsoft is facing
competition from, for example, Linux, which, according to many analysts, allows it
to reduce costs, since it does not charge royalties. There is also the option of using
a proprietary system such as those developed by the company Wind River
Systems, whose strong point is its great capacity to work in real time, its high
resistance to failures and the possibility of processing commands immediately.

18
This would be the case, for example, with medical devices that must be very
reliable and fast.

DOS on embedded systems


At the rate that computing is going, anyone would say that DOS is an ancient
operating system, largely surpassed by other desktop operating systems such as
Windows and Linux and, in a way, practically forgotten. As if it were something
from another world. However, just ten years ago almost any computer ran on this
system.
DOS is closely linked to the progressive development of Intel's x86 architecture
microprocessors. And it is an operating system that you should know because it is
still in force thanks to its stability. Why is it so stable? Because it was developed in
parallel with Intel and IBM technology and because it is a very simple, single-user,
single-task operating system. In other words, DOS only runs one program at a
time. Obviously, for a personal computer, DOS is pretty useless. But what about an
electronic device? Most of them only have to perform one task repetitively... In
addition to its small size and the few resources it requires, for example ROM-DOS
has some features that make a significant difference: RXE (Relocatable
Executable): In DOS, programs are loaded into RAM before being executed. RXE
technology allows a standard program to be converted into a program that can be
run directly from ROM. ROM-DOS BUILD Utility: Allows you to add and remove
features to the operating system, thus reducing the final size of the kernel.
Dynamic loading of device drivers: ROM-DOSTM has the ability to detect hardware
and load device drivers dynamically, allowing it to self-configure based on the
environment. Among other devices, this operating system can be found in:
• Digital cameras
• Data capture devices
• ATMs
• GPS devices

Java for embedded systems

19
Sun Microsystems, Inc., the creator and leading proponent of Java technology, is
expanding its offerings for the embedded development market with the release of
two new Java Platform Standard Edition (Java SE). This is a headless version with
a reduced size that uses less than 23 Mb of storage space, and a version for
PowerPC users.
Java technology is increasingly used in advanced embedded systems due to its
inherent capabilities in network support, device optimization, and data processing.
Most of the features of the Java SE platform can now be used for embedded
development, thanks to the increasing capabilities of new hardware available on
the market. The headless version of Java SE requires only 23 MB of storage space
and is ideal for embedded software developers who want to take advantage of the
robust networking, processing, and performance capabilities of Java technology.
The PowerPC platform is a stable version of Java SE designed specifically for the
PowerPC processor, which is currently widely used among developers of large-
scale embedded devices (not mobile phones). There are two converging trends in
today's device market: one is that processor power and scalability – as dictated by
Moore's law – makes possible the emergence of smaller and more powerful
platforms for use in embedded devices; and the other is that more and more
devices are connecting to the Internet every day. This means that the embedded
market is evolving rapidly and is perhaps becoming the primary computing
environment for this century," said José Manuel Estrada, Java architect at Sun
Java SE offers embedded developers the ability to deploy applications on multiple
hardware platforms, and has features such as generics, templates and compilers
that are not available in any other programming language. Java Native Interface
(JNI) provides developers with the ability to access their C/C++ code libraries
directly, without having to rewrite code. In addition, developers can access a wide
range of free and open source code, as well as participate alongside other Java
software developers in community projects such as NetBeans, Tomcat, Apache,
Derby, and many others. It is important to note that new versions of Java SE do not
detract from the Java Platform Micro Edition (Java ME) platform. Java ME
technology remains a standard, front-line platform for traditional embedded
development on devices with low memory and processor power (such as mobile
phones, PDAs, embedded processors in small printers, copiers, etc.). In parallel
with the two new Java SE releases, Sun has also announced a new tuning and
testing service to optimize the performance of the Java SE platform in embedded
deployments.
Windows CE is a modular operating system composed of several software
elements. These elements are Win32 compatible interfaces and these interfaces
allow each of the software elements to be integrated with each other. Each

20
element comprises several lower-level components and system designers have the
ability to include or exclude these lower-level components as needed.
It is possible for a developer to exclude modules such as USER and GDI, resulting
in a Windows CE without a user interface. This feature now allows Windows CE to
run on embedded systems in which everything is controlled by ROM and there is
no user interface, since embedded systems are generally automated systems
where there is no human intervention. Windows CE, because of its size, is ideal for
performing real-time work; it allows the Win32 API to be brought to automated real-
time systems.
Starting from the bottom, the main elements that make up the operating system
are:
• The OEM abstraction layer called OAL (OEM Abstraction Layer), which includes
power management, device drivers and PC Card services; • The Windows CE
Kernel, USER, GDI, file systems and databases; • The IRDA and TCP/IP
communications protocols; • The various APIs; • Remote connectivity, Internet
Explorer for Windows CE • The shell. • As stated above, a designer can include or
exclude some of these elements (for example, Internet Explorer) according to his
needs.

INSTALLATION PROCESS OF AN EMBEDDED OPERATING SYSTEM

The steps required for the installation of embedded systems are:

1. Know the hardware architecture of the device.


2. Configure the kernel to include drivers for those devices and remove what is
not needed.
3. Create the configuration and execution script for the embedded application.
4. Configure and compile the busybox including the application and script.
5. Compile the kernel
6. Test run

The architecture

To generate the correct kernel it is necessary to know as much as possible about


the underlying architecture. If we have the manual or datasheet of the device we
can determine the necessary drivers. If this is not our case, we can boot with a live

21
linux distribution (eg. Ubuntu) and determine which drivers are needed by
analyzing the loaded modules and the tree of files generated under /sys.

Kernel Configuration

Properly configuring the kernel is necessary to have a small footprint but with all
the required functionality.

1. Select the "closest/compatible" architecture.


2. Disable "Enable loadable modules support" to embed the drivers inside the
image and not depend on external modules.
3. Select appropriative mode. If that is the case low latency is needed, then the
Preemptive mode "Preemption Model->Preemptible Kernel" is selected. If, on
the other hand, the system processes transactions as a server, it is advisable to
use "No force preemption". By default the kernel uses the middle ground,
Voluntary Preemption.
4. Clock. If the application requires high precision timing, the high resolution timer
should be enabled.
5. Block devices. Enable only the SATA/PATA/IDE controllers of the device.
6. USB. It is common to enable the use of USB 2.0 and the USB HID class in
order to use keyboards, mice, etc. Everything else is disabled.
7. File system. We select the file system we need (recommended file system with
Jourling, e.g. ext3 or reiserfs). On systems with little disk space, JFFS2 is often
used as a file system for flash drives.
8. Linux Video. Normally it is disabled.
9. sound

After selecting the necessary drivers, a "normal" kernel image is generated. In this
case, a kernel must be built that, after initialization, does not mount a file system
within a hard disk (normal procedure), but rather mounts a temporary file system
that is compressed and embedded within the kernel image itself.

To achieve this, a special file must be specified that serves as a guide to generate
this file system.

Embedded application

The goal of generating this kernel is to be able to run the application on an


embedded system. The application should be generated taking into account the

22
underlying architecture and taking full advantage of its potential. It is
recommended, if applicable, to generate a static executable and include remote
debugging or diagnostic tools (execution, temperature status, workload, logs, etc.).

Once compiled, we add the image with the corresponding "file" entry to the image
construction list. The init file will invoke the application at the end of the
configuration.

Compiling the kernel.

Since the kernel image can be built in the usual way ("make") or according to
requirements (cross-compilation), it can be deployed to the embedded system.

PROCESS AND PROCESSOR MANAGEMENT EMBEDDED OPERATING


SYSTEMS

A microprocessor is an integrated circuit (IC) implementation of a computer's


Central Processing Unit (CPU). We often refer to a microprocessor as simply
“CPU,” and the part of a system that contains the microprocessor is called the CPU
subsystem.

Microprocessors vary in power consumption, complexity, and cost. They range


from a few thousand transistors and cost less than 2 euros (in mass production) to
more than five million transistors that cost more than 600 euros.

Input/output and memory subsystems can be combined with a CPU subsystem to


form a complete computer or embedded system. These subsystems are
interconnected by system buses (which consist of the control bus, the address bus
and the data bus).

The input subsystem accepts data from outside to be processed while the output
subsystem transfers the results to the outside. Most commonly, there are several
input subsystems and several output subsystems. These subsystems are
commonly known as I/O peripherals.

The memory subsystem stores the instructions that control the operation of the
system. These instructions comprise the program that runs the system. Memory
also stores various types of data: input data that has not yet been processed,
intermediate results of processing, and final results awaiting output to the outside.

23
It is important to realize that subsystems structure a system according to
functionalities. The physical subdivision of a system, in terms of integrated circuits
or printed circuit boards (PCBs), can and usually is different. A single integrated
circuit (IC) can provide multiple functions, such as memory and input/output.

A microcontroller (MCU) is an IC that includes a CPU, memory, and I/O circuits.


Among the I/O subsystems included in microcontrollers are timers, analog-to-digital
converters (ADC) and digital-to-analog converters (DAC), and serial
communications channels. These I/O subsystems are typically optimized for
specific applications (e.g. audio, video, industrial processes, communications, etc.).

It should be noted that the actual lines of distinction between microprocessor,


microcontroller and single-chip microcomputer are blurred, and they are sometimes
referred to interchangeably.

In general, an ES consists of a microprocessor-based system whose hardware and


software are specifically designed and optimized to solve a particular problem
efficiently. Typically an ES continuously interacts with the environment to monitor
or control some process through a series of sensors. Their hardware is typically
designed at the chip or PCB interconnect level, seeking the minimum circuitry and
smallest size for a particular application. Another alternative is PCB-level design,
which involves assembling boards with commercial microprocessors.

MEMORY MANAGEMENT OF EMBEDDED OPERATING SYSTEMS

Any of the functionalities of embedded systems are composed of three aspects:


processing, storage and communication. Processing is the transformation of data,
storage is the retention of data for later use, and communication is the transfer of
data. Each of these aspects must be implemented. Processors are used for
processing, memory for storage, and buses for communication.

Most modern mainstream operating systems use paged virtual memory, where the
page is the unit of memory protection and allocation. The use of process and
memory protection in embedded systems is very important; if a single address
space is used for all applications, a software failure in one application can result in
memory corruption, causing a system crash. The disadvantage, however, is that
memory protection requires the CPU to support MMU (Memory Management Unit),
which results in a more complex CPU.

24
Unlike conventional operating systems, most embedded operating systems are
focused on a single CPU, which usually does not have an MMU. Also the rest of
the system has limited memory, little or no disk space, so they usually don't use
virtual memory.

For example, embedded Linux and QNX systems do not support paging, meaning
that data, text, and stack share contiguous memory space. This means that there
is no protection at the memory level, for example, the stack could grow to fill text or
data space; or a process could read or write data from another process.

On the other hand, Windows CE has more elaborate memory management.


Partially supports paged virtual memory (this implies TLB (Translation Lookaside
Buffer) support on the CPU); and provides memory protection at the process and
thread level.

Real memory
Real or main memory is where a computer's programs and processes are
executed and is the real space that exists in memory for the processes to be
executed. This memory is generally more expensive than secondary memory, but
access to the information contained in it is faster. Only the cache memory is faster
than the main memory, but its cost is also higher.

AUXILIARY MEMORY MANAGEMENT OF EMBEDDED OPERATING SYSTEMS

Auxiliary memory (also called physical memory or external memory) stores


information long-term, even after the computer is turned off. Auxiliary memory
corresponds to magnetic storage devices such as hard drives, optical storage
devices such as CD-ROMs and DVD-ROMs, and read-only memory.
FILE SYSTEM (ZFS).

ZFS is the dynamic file system of the Solaris operating system. With 16 trillion
more capacity than existing 64-bit file systems, ZFS is virtually the only file system
with virtually unlimited storage capacity, making Solaris the industry's best for data
storage.

This filing system offers:

25
Simple administration:

ZFS automates and consolidates complicated storage concepts, reducing


administrative overhead by 80 percent.

Data Integrity:

ZFS protects all data with 64-bit checksums that detect and correct silent data
corruption.

Scalability:

ZFS, the first 128-bit file system, offers 16 billion times the capacity of 32- or 64-bit
systems.

Performance:

The transactional model removes most of the traditional restrictions on the order of
I/O issuance, resulting in dramatic performance improvements.

While greatly simplifying the work of system administrators, ZFS helps increase an
organization's economic benefits. Because ZFS is designed on virtual storage
pools (unlike traditional file systems that require a volume manager), creating and
deleting file systems is much less complicated. ZFS acts as a standard POSIX file
system to applications, no porting is required. But for administrators, it presents a
pooled storage model that eliminates the old concept of volumes, as well as all the
issues related to partition management, provisioning, and file system sizing.
Thousands (even millions) of file systems can be drawn from the common ZFS
storage pool, each consuming only the amount of space it needs. The combined
I/O bandwidth of all devices in that storage pool is always available to each file
system.

Two of the goals of creating the ZFS file system are to get rid of many complicated
administration concepts and to automate many common administrative tasks.

For example, creating a storage pool, incrementing a pool, and adding or removing
a file system can be done with a single, simple command, rather than the multi-
step process (format, newfs, edit/etc/vfstab etc.) common with traditional file
systems and volume managers.

26
Let's look at the following scenario: creating a pool, creating three filesystems, and
then growing the pool (5 logical steps) requires 5 simple ZFS commands, versus
28 steps with a traditional filesystem and volume manager.

Additionally, these commands are constant time and complete in a few seconds,
whereas it often takes hours to configure traditional file systems and volumes. In
the case mentioned above, ZFS reduces the time required to complete these tasks
from 40 minutes to less than 10 seconds.

The ZFS command line interface dramatically simplifies administration. It is task-


oriented, so administrators can express the tasks they want to accomplish rather
than having to memorize or look up cryptic commands.

Data can become corrupted in a number of ways, such as a system crash or an


unexpected power outage, but with ZFS, this fear of the unknown is eliminated.
ZFS prevents data corruption by keeping data consistent at all times. All operations
are transactional. In this way, not only is consistency maintained, but all restrictions
on the I/O order are removed, allowing the entire set of changes to succeed or fail.

All operations also use the copy-on-write technique. Live data is never overwritten.
ZFS writes the data to a new block before changing the data pointers and
committing the write. The copy-on-write technique offers several advantages:

· Always valid disk status.


· Consistent and reliable backups.
· Ability to roll back data to a known point in time.

Administrators will no longer have to run laborious recovery procedures, such as


fsck, even if the system is shut down improperly.

Additionally, ZFS is a file system that performs end-to-end 64-bit checksums on all
data to prevent silent data corruption. When data is read, the checksum is verified
to ensure that the data that the application wrote is returned.

ZFS can perform automatic data recovery in a mirrored or RAID configuration.


When a copy becomes corrupted, ZFS detects this via checksum and uses another
copy to repair it.

INPUT/OUTPUT MANAGEMENT, DEVICES THAT SUPPORT AN EMBEDDED


OPERATING SYSTEM

27
One of the main functions of the operating system is the management of the
computer's resources and, specifically, of peripheral devices. The Input/Output
manager must control the operation of all Input/Output devices to achieve the
following objectives:

 Facilitate the handling of peripheral devices. To do this, we must offer a


simple, uniform and easy-to-use interface between devices, and manage
errors that may occur when accessing them.

 Provide protection mechanisms that prevent users from having uncontrolled


access to peripheral devices.

The routines that the system uses to perform I/O operations are designed to
eliminate differences between devices and access types. There is no distinction
between random and sequential access, nor is there a system-imposed logical
record size.

The system maintains a list of temporary storage areas (buffers), assigned to block
devices. The Kernel uses these buffers in order to reduce I/O traffic. When a
program requests a transfer, it first searches the internal buffers to see if the
requested block is already in main memory (as a result of a previous read
operation).

COMMUNICATIONS AND SECURITY MANAGEMENT IN AN EMBEDDED


OPERATING SYSTEM

There are countless embedded systems that can be connected to different types of
networks or the Internet to improve their features and performance. They currently
have embedded hardware elements, allowing everything from household
appliances to large industrial equipment to be controlled remotely through Internet
connections and can even be controlled by cell phones using a combination of
current technologies. This is how, for example, you can change the setpoint values
of temperature regulators and turn on or off household appliances by making a
simple phone call or accessing a website.

These characteristics represent a new level of risk, since not only is the integrity of
the information compromised with these systems, but by including different actors
that can be controlled by an attacker, much more serious damage can be

28
generated than the loss of information or the cessation of a service, as normally
happens in security incidents. Changing the temperature of a room can be vital for
some people during winter or summer. The combined attack on several of these
elements can cause overloads to power plants if multiple elements are switched on
simultaneously during peak consumption hours. Additionally, the status of these
elements can be monitored and in this way the times when a home is empty can
be determined, making it vulnerable to theft and other physical attacks. For cost
reasons, many of these systems use simple processors, in which security aspects
are relegated to the background.

There is a trade-off between cost and security that can be achieved with these
systems, as a little more money invested in adding some type of security can make
a big difference to companies that assemble millions of units a year, affecting the
competitiveness of these companies, but in contrast to security incidents in
conventional information systems, recovering information or restoring a service
may require some effort and investment, but reversing a death or physical injury is
impossible. As the functions of embedded hardware devices become more
complicated, the tools for working with them must be improved.

Often the way to perform maintenance and diagnostics on these hardware devices
is to connect them to a local network or a programming terminal, which can create
additional risks due to unauthorized access to the configuration and reading of the
status and diagnostic history of the equipment. There are different methods to
solve these problems, mainly controlling access to the equipment is key. These
solutions may be simple in some cases, and combine different levels of security,
but they may bring with them some problems:

 One solution is to use a password scheme to provide a first-level barrier to


unauthorized entry. However, this type of protection alone accomplishes
very little today, since passwords typically travel over networks in clear text.
Having different passwords for each computer can also be a source of
problems, since users often have to write them down, share them with other
users, and even include them in scripts for automatic login, which eliminates
protection from accidental access.

 There are different types of protocols aimed at generating security in simple


devices such as the SNMP Simple Network Management Protocol, which

29
was designed to obtain data and program simple devices and is normally
used to monitor nodes connected to the network. There are other protocols
such as SSH, SSL, IPSEC, and IKE among others, which provide a more
secure means of establishing communication with this type of devices.

 There are other more sophisticated methods, such as the Kerberos


Authentication System developed by MIT, which is based on three security
principles: authentication, authorization, and user account system. This is a
general purpose authentication system, in which users prove their identity to
access each service and the system decides whether or not the user has
access to said service. As electronic devices, from PDAs to routers, cell
phones and smart cards, become more technologically advanced, so does
the complexity of the attacks they face. The security issue in these devices
is what most holds back the adoption of these technologies for e-commerce
practices, according to the results of recent surveys, which reveal that 47%
of people who have mobile devices are reluctant to engage in these types of
practices due to fears concerning the security of their transactions.
Whenever computer security issues are to be analyzed, confidentiality,
integrity, availability, authentication, traceability and non-repudiation must be
taken into account. This is why in the world of mobile devices and PDAs
there are a variety of protocols and standards such as WEP from the IEEE
Standard 802.11, WTLS from WAP and SSL that serve to protect them from
a functional point of view, but when it comes to embedded systems, some
critical aspects must also be taken into account, such as:

o Many embedded systems do not have sufficient processing power for


security requirements.

o Battery-operated devices such as cell phones and PDAs do not have


sufficient operating autonomy or sufficient memory resources to
implement security measures.

o The different types of attacks that these devices can suffer, such as
software attacks and physical attacks, among others, mean that
systems have to be designed in such a way that even if someone has
physical or logical access to them, they remain secure. It could then
be argued that data encryption is not sufficient for several reasons,

30
including the high processing cost of encryption algorithms and the
fact that protocols may not be effective in embedded systems, for
example in a device that receives applications developed by third
parties, each third party would have to know either the algorithm or
the keys with which the encryption is performed. Some solutions
could be: firewalls, intrusion detectors, cryptography applications,
antivirus, memory management and memory dump.

REAL-TIME SUPPORT IN EMBEDDED OPERATING SYSTEMS

Network support is important in embedded systems as it makes it easier for them


to communicate with the outside world, as well as to update themselves. QNX
contains low-level network communication in its microkernel; Windows CE has
several kernel-level communication stacks (IP, PPP, IrDA,
etc.).

Embedded Linux on the other hand has network support inherited from the
client/server environments supported by Linux, offering network stacks and Internet
protocols.

A complex embedded system may use an operating system to support the


execution of its programs, especially when simultaneous execution of these
programs is required. When using an operating system, it is most likely a real-time
operating system (RTOS).

A real-time operating system (RTOS) is an operating system that has been


developed for real-time applications. As such, you are required to correct your
answers under certain time restrictions. If they are not respected, it will be said that
the system has failed. To ensure correct behavior in the required time, the system
needs to be predictable (deterministic).

General Features

 It doesn't use much memory


 Any event on the physical medium can cause a task to be executed
 Multi-architecture (code ports to other CPU types)
 Many have predictable response times for electronic events

There is currently a debate about what real time is. Many real-time operating
systems have scheduler and driver designs that minimize the periods during which

31
interrupts are disabled, a number sometimes called the interrupt duration. Many
also include special forms of memory management that limit the possibility of
memory fragmentation and ensure a minimum upper bound on memory allocation
and re-allocation times.

CLOUD SUPPORT AND INTEGRATION (CLOUD COMPUTING)

The generalization of the term cloud computing,


the popular cloud, as a paradigm of all kinds, both
organizational and system design, involves an
interesting reflection.

If the cloud allows customers and users to obtain


functionalities through services of which they only
know the service contract but ignore the design
and localization, why read a document like the
one you have in your hands?

We often forget that services have to be manufactured, and that for this work, we
have to prepare and do it well, very well, since our clients are in most cases unknown
and if our product is not correct, they will simply leave us.

Thus, above the cloud are the users and clients, both end users and professionals
who reuse the services, and below, the builders and suppliers of these services.

This double vision, not exclusive since builders can themselves be clients when they
reuse services, will be present throughout the document you have in hand.

Software in virtual instrumentation

Software is the most important component of a virtual instrument. With the


appropriate software tool, engineers and scientists can efficiently create their own
applications, designing and integrating the routines required by a specific process.
They can also create user interfaces that best meet the purpose of the application
and those who will interact with it. They can define how and when the application

32
acquires data from the device, how it processes, manipulates and stores the data,
and how the results are presented to the user.

With powerful software, instruments can be equipped with intelligence and decision-
making capabilities so that they adapt when measured signals vary inadvertently or
when more or less processing power is required.

An important advantage that software provides is modularity. When dealing with a


large project, the work team usually approaches the task by dividing it into
manageable functional units (top-down methodology). These subsidiary tasks are
more manageable and easier to test given the fewer dependencies that could cause
unexpected behavior.
In this context, a virtual instrument can be designed to solve each of these subsidiary
tasks and then brought together into a complete system to solve the larger task. The
ease with which this division of tasks can be accomplished depends largely on the
underlying architecture of the software.

SOLARIS 11 EXPRESS

This version of the operating system can be used for testing and development only
and includes network visualization capabilities.

Oracle has released Solaris 11 Express, a developer-only version of the Solaris


operating system that also serves as a preview of the commercial release of Solaris
11 in 2011. The release of Solaris 11 Express comes just months after Oracle
announced it would no longer support the OpenSolaris project, an open source
distribution of Solaris, in order to focus on the commercial version of the operating
system. Solaris 11 Express is binary compatible with over 11,000 third-party
applications on nearly 1,000 SPARC and x86-based systems.

Key Distinctive Features of Solaris 11 Express

a) It has improved availability features and reduced system downtime by half. In


addition, boot times are now only “tens of seconds.”

b) Network virtualization capabilities, integration with Oracle's online support


portal, and enhancements to the ZFS file system.

33
c) Improvements in data management, as new advanced storage features are
now included, such as deduplication, encryption, and the improvements
related to the ZFS technology mentioned above.

d) Scalability: The current version of the operating system can support hundreds
of threads and a few terabytes of memory, but the new version scales to
thousands of threads and hundreds of terabytes of memory. In addition, it will
incorporate virtualization and security.

e) Cloud Computing, focusing on support for new hardware that will support
massive amounts of threads and memory systems, as well as hundreds of
gigabits of I/O.

f) Administration Improvements: The Solaris 11 Express system manager offers


a number of changes to installation, patching, application delivery, and other
areas. On its website, Oracle offers a number of resources to help with the
transition.

COMPARATIVE ANALYSIS WITH LINUX AND WINDOWS 7.

Windows CE features a system divided into 220 modules, each divided into several
components, which are ROMable and compressible, and supports five
ARM/StrongARM processors, MIPS, PPC, SuperH, and x86 and a subset of the
Win 32 API. In terms of connectivity, it has ActiveSync, which is the active
synchronization between the desktop PC and the CE device. And it also has the
remote API, a remote control of the device from an application on the PC.

34
As for Linux, we know that it is a free system, anyone can use it, modify it and
discover it, it is also very stable and it is difficult for it to crash, the servers that use
it can run for months without stopping, it is extremely secure, it has several
protection systems and there are no viruses for Linux.

Now if we talk about Windows 7 we know that it belongs to Microsoft, the only
company that can modify it, the licenses are too expensive, it is not very stable, it is
common to be forced to restart the system, the servers do not support more than a
couple of weeks without restarting, in addition to being very unsafe and for which
there are thousands of viruses that violate the system, it only reads and writes its
own file systems and presents incompatibilities between some of its versions.

Comparison of Microsoft Windows and Linux operating system is a common topic


of discussion among its users. Windows is the most important operating system
under a proprietary software license, while Linux is the most important operating
system under a free software license. However, most Linux distribution sites also
provide proprietary components (such as compiled binary blob drivers, which are
provided by hardware manufacturers for normal installation).
As of November 2007, Linux was the operating system on 85% of the most
powerful supercomputers (compared to 1.2% for Windows). As of February 2008,
five of the ten most trusted Internet service providers used Linux, while only two
used Windows.

Free software advocates argue that Linux's key strength is that it respects what
they consider to be the essential freedoms of users: the freedom to run it, to study
and change it, and to redistribute copies with or without changes.

STATISTICS ON UTILIZATION AT WORLD LEVEL

On the statistics site StatCounter you can see that as of January 2010, the
distribution of desktop operating system usage, obtained by counting visits to the
websites they monitor:

Windows XP is the most widely used operating system in the world with 69.36% of
users

. It is followed by Windows Vista with 21.78%,

MacOSX with 4.32%,

Windows 7 with 2.35%

35
and GNU/Linux with a 'small' 0.68%

StatCounter Global Stats - Browser, OS, Search Engine including Mobile Market
Share

However, when analyzing by region, things vary a bit, and we have curious results,
such as that in Europe Linux is used by 1.06% of Internet users, while in North
America (USA, Canada and Mexico) the percentage is so low that it is not even
reflected in the statistics.

By country, it is also striking, for example, that while in Spain Linux has a
penetration rate of 1.66%, in Germany it is 1.14% and in France it is 1.87%
(perhaps the highest in the world), in other places such as Argentina or Chile (to
name two countries whose representatives are in this forum) the use of Linux is not
even included in the statistics... although, for example, in the USA or Japan it is not
either.

In the US, for example, Apple has 10.2% of the market.

Anyway, even though Kalli has this thread open, things are still going slowly as far
as desktop systems are concerned. Operating system

ranking February 2010:

1. Windows XP: 65.49%


2. Windows Vista: 16.51%
3. Windows 7: 8.92%
4. Mac OS X 10.5: 2.21%
5. Mac OS 10 x 6: 1.88%
6. Linux: 0.98%
7. Mac OS X 10.4: 0.72%
8 Java ME 0.64%
8. Windows 2000: 0.56%

MarketShare has published the latest data on the market share of operating
systems for the month of December. In total, more than 22 operating systems have
been analyzed, and there have been some surprises here and there.

Obviously, the two biggest surprises are Windows Vista and Linux. While Vista,
which has been called the flop of the year, is ranked as the second most used

36
operating system, Linux is ranked seventh with a paltry 0.63% share, compared to
XP's 76.91% and Vista's 10.48%.

First of all, it should be noted that these statistics are compiled after millions and
millions of accesses to thousands of web pages, so dedicated servers are not
counted. So in some ways Linux's share is limited to desktop users, just like XP's
share is limited to XP Server.

Otherwise, nothing surprising. Mac continues its crusade and the iPhone has
completely ousted Windows CE (Mobile), and the surprise - which is not so
surprising anymore - is the number of people who are still using Windows 2000
and 98. And even further down, at 0.2%, is Windows 95, which, at 11 years old, is
still present in many homes around the world.

GNU/Linux ranks as the second largest operating system serving the web on
the Internet.

Some of Netcraft's crawls have also included operating system data; two crawls in
2001, June 2001 and September 2001, revealed that GNU/Linux is the second
largest operating system for web servers and has been steadily gaining
acceptance since February 1999. This count was not done by server name as is
done with web server programs, but by IP addresses, that is, the unique identifiers
of each machine visible on the Internet.

A quick note on dates: Netcraft dates each study based on the time of the last
round of crawls, not the time of publication of the report. That's why the review
dated "June 2001" was published in July, and covers results of operating system
reviews since March.
Here is a summary of Netcraft's study:

Group of
Percentage Percentage
operating Composition
(March) (June)
systems
Windows 2000, NT4, NT3,
Windows 49.2% 49.6%
Windows 95, Windows 98
[GNU/]Linux 28.5% 29.6% [GNU/]Linux
Solaris 7.6% 7.1% Solaris 2, Solaris 7, Solaris 8
BSDI BSD/OS, FreeBSD,
BSD 6.3% 6.1%
NetBSD, OpenBSD
Other UNIX 2.4% 2.2% AIX, Compaq Tru64, HP-UX,

37
IRIX, SCO UNIX, SunOS 4 and
others
Others - non- MacOS, NetWare, IBM closed
2.5% 2.4%
UNIX operating systems
Operating systems that the
Unknowns 3.6% 3.0% Netcraft detector does not
identify

These tables can be interpreted very differently depending on what they are
intended to measure. If we want the percentage of open systems, we will have to
add a part of the BSDs (FreeBSD, NetBSD, and OpenBSD), several of which are
also open, so that at least 6.1% is added to the 29.6% of GNU/Linux. It is therefore
more than reasonable to say that one third of web server computers use open
operating systems. There are also geographical differences. For example,
GNU/Linux surpasses Windows in Germany, Hungary, the Czech Republic and
Poland.

Well-known websites that use GNU/Linux include The White House, Google, and
leading web hosting provider Rackspace. More well-known websites that use other
open systems are, for example, Yahoo and Sony of Japan, which use FreeBSD.

If you are interested in the share of the web server market between "UNIX and
Windows", you can find it in the following summary as well. All Windows operating
systems have been brought together under a single number, whether Windows
95/98/ME or Windows NT/2000, although there are profound differences. An
analogous grouping of UNIX computers yields a total of 44.8% for UNIX-like
systems as of March 2001, compared to 49.2% for Windows.

Note that these numbers would probably differ greatly if they were based on web
addresses rather than IP addresses, as a clear majority of web addresses are on
UNIX-like systems. According to Netcraft, "Although Apache running on various
UNIX systems runs on more sites than Windows, Apache is primarily installed by
hosting companies and ISPs (Internet Service Providers) who host as many sites
as they can on a single computer to save costs." Hence the difference in the
figures.

OTHER ASPECTS

38
WINDOWS EMBEDDED AN OPTION AS A DESKTOP OPERATING SYSTEM?

An “Embedded” system is a
device with a specific purpose,
integrated into the system it
controls. It requires particular
specifications and performs
predefined tasks. Embedded
means fitted, stuffed,
something placed inside
something else. It is an
operating system for adaptable
and expandable 32-bit
platforms that require
connectivity and broad support
for application development. It is the industrial version of Windows XP
Professional. Based on the same binaries as Windows XP Professional. Only the
functions and services that are needed are chosen. Fast and powerful tools for
creating custom images for each application. This operating system is the one
used by ATMs (automatic teller machines), pumps, points of sale, some consoles
and video game machines, etc.

There are a number of tools available for developing Windows XP Embedded:

Target Analyzer(TA): Generates information about the hardware composition.

Component Designer(CD): Creating custom components.

Target Designer (TD): Selecting and configuring components to generate the final
OS image It is used to create and generate the system

Windows Embedded is a version of the Windows platform built on modules,


allowing you to create a customized system. While Windows XP or Vista include a
lot of software like the Windows Media Player or the Internet Explorer web
browser, Windows Embedded leaves all of this out to allow it to be used as a
module, so that customers who are not interested in the player can leave it out of
their system.

39
Windows Embedded is typically used to create embedded systems; an example
would be a GPS navigator, which offers a limited range of functions but can be
easily updated by software when the manufacturer so desires. This is why this
system is only available for sale to hardware manufacturers, although we have a
demo available on the Internet that allows us to use a basic installation for 120
days.

APPLICATIONS OF EMBEDDED OPERATING SYSTEMS

The places where embedded systems can be found are numerous and of various
natures. Below are several examples to illustrate their possibilities:

•Points of service or sale (POS, Point Of Service). Supermarket checkouts are


becoming more and more complete, incorporating numeric keypads, laser barcode
readers, magnetic stripe or chip bank card readers, liquid crystal alphanumeric
displays, etc. In this case, the embedded system requires numerous input and
output connectors and robust features for continuous operation.

•Citizen information points. In tourist offices, department stores, libraries, etc. there
are computers with a touch screen where you can click on it and choose the query
to be made, obtaining a personalized response in a user-friendly graphic
environment.

•Decoders and set-top boxes for television reception. An increasing number of


television operators are taking advantage of satellite and cable network
technologies to offer a pay television service that is different from conventional
television. First, they send the signal in MPEG-2 digital format, which requires
processing to decode it and send it to the television. It also travels encrypted to
prevent it from being received by users without a contract, which requires
decrypting it at the subscriber's home. They also offer an interactive television or
web-TV service that requires specific software to display web pages and therefore
a processor-based system with television signal output.

•Aircraft radar systems. Processing the signal received or reflected from the radar
system on board an aircraft requires high computing power in addition to taking up
little space, weighing little and withstanding extreme operating conditions
(temperature, atmospheric pressure, vibrations, etc.).

•Medical equipment in hospitals and mobile ICU ambulances.

40
•Automatic photo developing machines.

•ATMs.

•Internet-LAN Gateways.

SUMMARY

EMBEDDED OPERATING SYSTEMS

An embedded operating system is one that has been created for an embedded
system, that is, a computing system limited to a fixed and limited number of tasks.
Obviously, this does not include personal computers, mobile phones, tablets or
advanced devices that we are familiar with. A peculiarity of embedded systems is
that they are a unit with the applications they run, which means that in many cases
it is not possible to install any additional software on them.

Some features are:

 Reliability and safety


 Efficiency
 Interaction with physical devices
 Sturdiness

Among the platforms of embedded operating systems we have:

Embedded Linux is a typical Linux system from which utilities, tools, and other
system services that are not needed in an embedded environment have been
removed. Linux for embedded devices began with kernel and compiler support for
the most popular 32-bit microprocessors: x86, ARM, PowerPC, MIPS, and SH. And
then it continued with the appearance of different Linux distributions with support
for specific features of embedded systems.

DOS is an operating system that is worth knowing because it is still in force thanks
to its stability since it was developed in parallel with Intel and IBM technology and
because it is a very simple, single-user and single-task operating system. In other
words, DOS only runs one program at a time.

41
Java for embedded systems. Java technology is increasingly used in advanced
embedded systems due to its inherent capabilities in network support, device
optimization, and data processing.

AUXILIARY MEMORY MANAGEMENT OF EMBEDDED OPERATING SYSTEMS

Auxiliary memory (also called physical memory or external memory) stores


information long-term, even after the computer is turned off. Auxiliary memory
corresponds to magnetic storage devices such as hard drives, optical storage
devices such as CD-ROMs and DVD-ROMs, and read-only memory.
FILE SYSTEM (ZFS).

ZFS is the dynamic file system of the Solaris operating system. With 16 trillion
more capacity than existing 64-bit file systems, ZFS is virtually the only file system
with virtually unlimited storage capacity, making Solaris the industry's best for data
storage.

CE OPERATING SYSTEMS

Windows CE was introduced in a suite of handheld PC products in 1996, but was


later transformed into a highly configurable embedded operating system. Its
advantages include the inclusion of a subset of the Win32 API focused on
commonly needed services, as well as optimization of energy consumption. In this
system, when we talk about size, we refer to the amount of memory and storage
needed to house the system.

Characteristics

 Windows CE provides fairly comprehensive support for the most advanced


features found in embedded computers, both in terms of processors and
other hardware elements.

 It is very modular

 The Windows CE API is intended to facilitate portability with Windows


operating systems for SSPG.

Platform

42
Windows CE supports more than 160 processor models, belonging to 5 different
types of architectures: ARM, MIPS, PowerPC, SH and x86 (protected mode). They
are processors with a series of essential characteristics for this OS:

REAL TIME OPERATING SYSTEMS

A real-time process or task is one that is executed in connection with some


process, function or set of events external to the computer system and that must
meet one or more deadlines to interact correctly and efficiently with the external
environment.

Characteristics

 Small size (with minimal associated functionality)

 Fast context switches

 Ability to respond quickly to external interruptions

 Multitasking with interprocess communication tools such as traffic lights and


signals

COMPONENTS OF AN EMBEDDED SYSTEM

An embedded system would in principle consist of a microprocessor and software


that runs on it. However, this software will certainly need a place to be stored in
order to be executed by the processor. This could take the form of RAM or ROM,
every embedded system will need some amount of memory, which may even be
found within the processor chip itself.

INSTALLATION PROCESS

The steps required for the installation of embedded systems are:

1. Know the hardware architecture of the device.


2. Configure the kernel to include drivers for those devices and remove what is
not needed.
3. Create the configuration and execution script for the embedded application.
4. Configure and compile the busybox including the application and script.

43
5. Compile the kernel
6. Test run

MEMORY MANAGEMENT

Any of the functionalities of embedded systems are composed of three aspects:


processing, storage and communication. Processing is the transformation of data,
storage is the retention of data for later use, and communication is the transfer of
data. Each of these aspects must be implemented. Processors are used for
processing, memory for storage, and buses for communication.

Real memory
Real or main memory is where a computer's programs and processes are
executed and is the real space that exists in memory for the processes to be
executed. This memory is generally more expensive than secondary memory, but
access to the information contained in it is faster. Only the cache memory is faster
than the main memory, but its cost is also higher.
REAL-TIME SUPPORT

A complex embedded system may use an operating system to support the


execution of its programs, especially when simultaneous execution of these
programs is required. When using an operating system, it is most likely a real-time
operating system (RTOS).

COMPARATIVE ANALYSIS WITH LINUX AND WINDOWS 7.

Windows CE features a system divided into 220 modules, each divided into several
components, which are ROMable and compressible, and supports five
ARM/StrongARM processors, MIPS, PPC, SuperH, and x86 and a subset of the
Win 32 API. In terms of connectivity, it has ActiveSync, which is the active
synchronization between the desktop PC and the CE device. And it also has the
remote API, a remote control of the device from an application on the PC.

As for Linux, we know that it is a free system, anyone can use it, modify it and
discover it, it is also very stable and it is difficult for it to crash, the servers that use
it can run for months without stopping, it is extremely secure, it has several
protection systems and there are no viruses for Linux.

44
Now if we talk about Windows 7 we know that it belongs to Microsoft, the only
company that can modify it, the licenses are too expensive, it is not very stable, it is
common to be forced to restart the system, the servers do not support more than a
couple of weeks without restarting, in addition to being very unsafe and for which
there are thousands of viruses that violate the system, it only reads and writes its
own file systems and presents incompatibilities between some of its versions.

CONCLUSIONS

 User control is generally much greater in a real-time operating system than


in a regular operating system. In a typical non-real-time operating system,
the user has no control over the scheduling function of the operating
system. In a real-time system it is essential to allow the user precise control
over the priority of tasks.

 Unlike conventional operating systems, most embedded operating systems


are focused on a single CPU, which usually does not have an MMU. Also
the rest of the system has limited memory, little or no disk space, so they
usually don't use virtual memory.

 Embedded and real-time operating systems have been constantly evolving


and presenting new benefits for their use every day, providing greater
storage capacity, greater speed and better performance.

45
OBSERVATIONS

 Embedded Linux and QNX systems do not support paging, meaning that
data, text, and stack share contiguous memory space. This means that
there is no protection at the memory level, for example, the stack could grow
to fill text or data space; or a process could read or write data from another
process.

 For people who want to clearly understand how an embedded operating


system works, they should first study how some implementations handle
basic system abstractions, otherwise it will be difficult for them to
understand these embedded operating systems.

 A particularity of embedded systems is that they are a unit with the


applications they run, which means that in many cases it is not possible to
install any additional software on them.

46
LITERATURE

 These are the operating systems of ATMs, consulted on October 18,


2012 URL: http://onsoftware.softonic.com/sistemas-embebidos-y-
usos-cotidianos

 PDF Embedded Systems and Embedded Operating Systems,


Central University of Venezuela, author: David Perez. Consulted on
October 17, 2012

 Embedded system, consulted on October 18, 2012 URL:


http://es.wikipedia.org/wiki/Sistema_embebido

 Real-time and embedded systems, consulted on October 17, 2012


URL: http://es.scribd.com/doc/32547554/46/Windows-CE-
caracteristicas

 Embedded systems, consulted on October 25, 2012 URL:


http://server-die.alc.upv.es/asignaturas/PAEEES/2005-06/A07%20
%20Sistemas%20Embebidos.pdf

 Blog about GNU/Linux and free software: Embedded operating


systems, consulted October 19, 2012 URL:
http://gnujavier.blogspot.com/2011/06/sistemas-operativos-
embebidos.html

47
48

You might also like