Embedded Operating Systems
Embedded Operating Systems
MANIZALES HEADQUARTERS
OPERATING SYSTEMS
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
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
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.
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.
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.
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 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.
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.
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.
CE OPERATING SYSTEMS
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.
Characteristics
Platform
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.
14
Characteristics
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.
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.
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.
18
This would be the case, for example, with medical devices that must be very
reliable and fast.
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.
The architecture
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.
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
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.
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.
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.
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.
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.
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.
25
Simple administration:
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.
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:
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.
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:
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).
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:
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.
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.
Embedded Linux on the other hand has network support inherited from the
client/server environments supported by Linux, offering network stacks and Internet
protocols.
General Features
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.
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.
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.
SOLARIS 11 EXPRESS
This version of the operating system can be used for testing and development only
and includes network visualization capabilities.
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.
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.
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.
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
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.
Anyway, even though Kalli has this thread open, things are still going slowly as far
as desktop systems are concerned. Operating system
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.
Target Designer (TD): Selecting and configuring components to generate the final
OS image It is used to create and generate the 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.
The places where embedded systems can be found are numerous and of various
natures. Below are several examples to illustrate their possibilities:
•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.
•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.).
40
•Automatic photo developing machines.
•ATMs.
•Internet-LAN Gateways.
SUMMARY
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.
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.
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
Characteristics
It is very modular
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:
Characteristics
INSTALLATION PROCESS
43
5. Compile the kernel
6. Test run
MEMORY MANAGEMENT
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
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
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.
46
LITERATURE
47
48