Sunteți pe pagina 1din 75

MASTERS THESIS BY EDIN BEKTESEVIC

EMBEDDED LINUX FOR PURPOSES OF


INTERNET APPLIANCES
(a.k.a. The Wanderer Project)

CONDUCTED AT NATIONAL SEMICONDUCTOR, STOCKHOLM


SUPERVISOR: BENGT ANDERSSON
EXAMINER: PROF. GERALD Q. MAGUIRE, PHD
ROYAL INSTITUTE OF TECHNOLOGY, STOCKHOLM - ANNO 1999.

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

ABSTRACT
As the Internet continues to grow, now new Internet appliances are being marketed. At the same
time, Linux is gradually becoming a competitive choice for desktop, server and embedded
applications. How do these two facts relate to each other? What should be the position of Linux in
Internet appliances, and how interesting is Linux? Where are the Internet appliances really
positioned in terms of their needs for an operating system? How is Linux implemented in
embedded applications?
These are just some of the questions posed during this MSc. Project that this report aims to
answer. In addition, we will examine how Linux is used in embedded applications and what it
provides in terms of achieving their goals. Also, we will take a look at the compression methods
that can be used for system size reduction and analyze their costs.
The report will show that Linux is a competitive alternative for devices like WebPAD, that it
leaves space for further time and cost efficient improvements, and that Internet appliances can get
most of the benefits of Linux during its further evolution relatively cheaply.

~i~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

TABLE OF CONTENTS
ABSTRACT

TABLE OF CONTENTS

II

ACKNOWLEDGMENTS

VI

1. INTRODUCTION

1.1.

LAYOUT OF THIS REPORT

2. BACKGROUND

2.1.
2.2.
2.3.

2
4
5

WEBPAD - AN OVERVIEW
WHY WEBPAD?
WHY LINUX?

3. PROBLEM DESCRIPTION

3.1.

SYSTEM PREMISES

4. METHOD DESCRIPTION

5. LINUX, THE OPERATING SYSTEM

5.1.
5.2.
5.2.1.
5.3.
5.4.
5.5.
5.5.1.
5.5.2.
5.6.
5.6.1.
5.6.2.
5.7.
5.7.1.

INTRODUCTION
LINUX LICENSING
GENERAL PUBLIC LICENSE (GPL)
LINUX IN BRIEF
SYSTEM ARCHITECTURE
KERNEL
SPEED OPTIMIZATION
KERNEL MODULES
BINARY FORMATS
ASSEMBLER OUTPUT (A.OUT)
EXECUTABLE AND LINKABLE FORMAT (ELF)
STANDARD C LIBRARIES
LIBC4

~ ii ~

9
10
10
10
10
11
12
12
13
13
13
13
14

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

5.7.2.
LIBC5
5.7.3.
GLIBC2
5.7.4.
CONCLUSION
5.8.
X WINDOW SYSTEM
5.8.1.
X FEATURES
5.8.2.
CONSIDERATIONS AND CONCLUSION
5.9.
DEVELOPMENT IN LINUX

14
14
14
15
15
16
16

6. EMBEDDED LINUX

17

6.1.
6.2.
6.2.1.
6.3.
6.4.
6.4.1.
6.4.2.
6.5.
6.5.1.
6.5.2.

17
17
18
20
20
20
22
24
24
24

INTRODUCTION
WHY EMBED LINUX
REAL-TIME EXTENSIONS
FILESYSTEMS AND DIRECTORY STRUCTURE
BOOT AND COMPRESSION
BOOTING THE SYSTEM
COMPRESSION
RUN TIME ISSUES
WHY AND WHEN READ-ONLY?
MODIFIED FILE SYSTEMS

7. WWW BROWSER OF CHOICE

26

7.1.
7.2.
7.2.1.
7.2.2.
7.2.3.
7.2.4.
7.3.
7.3.1.
7.3.2.
7.4.

26
26
26
27
27
28
28
28
29
30

INTRODUCTION
AVAILABLE LINUX BROWSERS
NAVIGATOR 2.02
NAVIGATOR 3.04
NAVIGATOR 4.XX
MOZILLA AND NAVIGATOR 5 TO-BE
BROWSER CUSTOMIZABILITY
REMOTE CONTROL AND INTER-APPLICATION COMMUNICATION
PLUG-INS, VIEWERS AND PLAYERS
CONCLUSIONS

8. PERSONAL ACCESS DEVICES

32

8.1.
RSC WEBPAD
8.2.
QUBIT
8.2.1.
OUTSTANDING FEATURES
8.2.2.
CONCLUSION

32
33
33
34

9. IMPLEMENTATION AND RESULTS

35

9.1.
IMPLEMENTATION
9.1.1.
EVALUATED MICRO-DISTRIBUTIONS
9.1.2.
HARDWARE USED
9.1.3.
REQUIRED LIBRARIES AND BINARY FORMAT
9.1.4.
SYSTEM SIZE

35
35
37
37
39

~ iii ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

9.2.
SYSTEM DESIGN
9.2.1.
SCOPE
9.2.2.
INTRODUCTION
9.2.3.
RUN-TIME TASKS
9.2.4.
INTRODUCING COMPRESSION
9.2.5.
SIZE OF COMPRESSED SYSTEMS
9.2.6.
CONCLUSION

41
41
42
42
43
44
46

10. CONCLUSIONS

47

10.1.
10.2.
10.2.1.
10.2.2.
10.3.
10.3.1.
10.3.2.
10.3.3.
10.4.
10.4.1.
10.4.2.
10.4.3.
10.5.

47
47
47
48
48
48
49
49
50
50
50
51
52

INTRODUCTION
EMBEDDED LINUX
SUPPORT
SIZE
LINUX PADS
DESIGN ISSUES
ALTERNATIVES
CONCLUSION
OPPORTUNITY I: WEBPAD LITE BUNDLE FOR PC OWNERS
SAVING MONEY
BOOSTING FUNCTIONALITY
CONCLUSION
OPPORTUNITY II: PLUG-INS, LITERALLY SPEAKING

11. FUTURE WORK

54

APPENDIX A: LINUX MARKET OVERVIEW

55

MARKET SEGMENTS TARGETED


MARKET STATISTICS
ADDITIONAL MARKET INDICATORS

55
56
57

APPENDIX B: STORING THE EMBEDDED SOFTWARE

58

INTRODUCTION
COMPACTFLASH II
OVERVIEW
CF II FLASH MEMORY
IDE 2000 FLASH DISKS
DISKONCHIP
IBM MICRODRIVE
OVERVIEW
MICRODRIVE FEATURES
PRICE COMPARISON

58
58
58
58
59
59
60
60
60
61

APPENDIX C: LOCATION TRACKING

63

~ iv ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

OVERVIEW
SOVEREIGN PALTRACK
PINPOINT
WHERENET FIREFLY
APPLICATIONS

63
63
64
64
64

REFERENCES

65

~v~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

ACKNOWLEDGMENTS
I am hereby offering my kindest thanks to the
following people:
The Linux community and contributors to
the Linux-Embedded and W.A.S.T.E. mailing
list for extensive help;
People at National Semiconductor in
Stockholm, Bengt Edlund and my supervisor
Bengt Andersson for making this project
possible:
My examiner Prof. Gerald Q. Maguire, PhD
for all his advices and patience.

To my family for not giving up on me

~ vi ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

1. INTRODUCTION
In the course of the past few years, and as a result of technology shifts and rapid price cuts within
the hardware industry, a totally new market has now unmistakably emerged: the market for
mobile computing devices. The wide variety of such devices is offering almost everything one could
expect from his or her desktop computer, but some even introducing new services. As the above
mentioned trend only seems to keep getting even more significant, and since the products of this
kind have already met a very enthusiastic response from their end-users, one can expect this
market to become even larger and more important for the industry.
To address this trend, last year (1998) at Comdex National Semiconductor (NSC) presented a
concept product, called WebPAD, in order to guide market development and show that it is way
ahead its competitors within this field. The WebPAD was an immediate success, and is expected
to be mass-produced in several different forms from its original concept.
In spite of previous attempts to bring mobile devices and the Internet connectivity together (such
as WAP), NSC has chosen a rather unique approach. The WebPAD is intended to be a singleapplication computing device, used solely for surfing on the Internet. Thus, the WebPAD is
thought to open the way for a number of Internet appliances for ordinary peoples homes. The
operating system used for the proof-of-concept device is QNX with its GUI, Proton, and its
customized WWW browser, Voyager.

1.1. LAYOUT OF THIS REPORT


This report is intended as a partial fulfillment of academic requirements for a MSc. project
conducted at Royal Institute of Technology. Moreover, the report attempts to give the reader a
rather thought-provoking overview of Linux, especially in terms of its implementation in
embedded devices. The report is intended to serve as a useful unbiased basis for further
discussions on the subject of development of Internet Appliances, and specifically Personal
Access Devices for that matter. It should be a practical starting point for individuals interested or
involved in this puzzle, foremost employees of National and their OEMs.
The layout has been outlined accordingly, and the language used is customized for this purpose.
Some elementary knowledge of UNIX and current market trends should be sufficient in order to
follow the reasoning sketched in this paper.
The main focus of this report in terms of describing Linux will be placed on its x86
implementation, unless otherwise stated.

~1~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

2. BACKGROUND
In this section we will firstly briefly describe the WebPAD concept as originally presented in [6],
[27], [30],[35], [37], [50]. However, while we will address the specifics of this particular concept
demonstrator, the basic principles shown here are common for a whole line of devices, including
all the Personal Access Devices to be addressed later in this paper.
Secondly, we will outline the background of how this thesis came about.

2.1. WEBPAD - AN OVERVIEW


The fundamental idea leading to the WebPAD concept is unmistakable to make the Internet as
unconstrained and convenient to use for a consumer, as a plain cordless telephone. The
prevailing goal set for the concept behind the WebPAD is to bring Internet into ordinary peoples
homes without the inconvenience almost inevitably accompanying PC desktop computers, the
current most likely tool for accessing the Web. This goal is to be accomplished through local
wireless connectivity, as one of the concepts main design characteristics.
With this portable, always-on, hand-held tablet weighing less than three pounds, the home
user is given the ability to explore the Web and still move quite freely. The usual input devices
such as keyboard or mouse are substituted with an intuitive touch screen interface and a soft, onscreen keyboard. The only software running on the WebPAD visible to the user is the web
browser.
Naturally, the entire package is intended to have a low price, or even be handed out for free by
Internet Service Providers (ISPs). As this marketing concept has proven to work well in case of
e.g. cellular phones, it would make it possible for a critical mass of WebPAD users to be reached
swiftly.

Figure 2-1. WebPAD tablet (With permission of NSC)

~2~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

A generic WebPAD system consists of three parts:


The tablet itself (see Figure 2-1)
The base station transceiver, as a gateway to the Internet
The charging stand/docking station
Optional extensions might include a wireless or USB: keyboard,
mouse, printer, etc.
The WebPAD tablet comprises:
x86 architecture, processor based around the low-power version of
the National Geode GXLV1 microprocessor. The high level of
integration used in these processors results in: small size, low cost
and easy expandability of the hardware core.
Radio interface. Either Wireless LAN or DECT, used for
interconnecting the device to the Internet gateway.
10.4 TFT screen with a touch screen.
QNX embedded diskless operating system, including Photon and
Voyager. The OS features real-time, while the browser has support
for JavaScript. However, the browser is currently not Java-enabled,
and the number of plug-ins and other extensions is very limited.
Flash storage (16 MB)
Multimedia capability. Stereo speakers and a microphone, with
SoundBlaster 16 compatible integrated audio.
USB port

Figure 2-2 recapitulates the supplementary features of the concept (With permission of NSC)

This is the new name for the MediaGX CPU.

~3~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

As one can see in Figure 2-2, the tablet should be able to use a set top box, a desktop PC or a
standalone base station as a gateway to the Internet. Accordingly, the further connection to the
Internet is by no means limited by the concept and could be achieved via a dial-up modem or a
persistent cable link.
The communications between the WebPAD tablet and the gateway is achieved through radio
transmission. For this purpose, the initial version of the WebPAD uses Wireless LAN based on
the Harris PRISM chipset. Moreover, an additional solution has been presented, using DECT
instead, presumably allowing a significantly lower total price while still retaining reasonably
high throughput.
The WebPAD is meant to be used for [6]:

Information access (movie show times, daily news, recipes)

eCommerce (on-line purchasing)

Communication (email, voice, chat)

Games (on-line entertainment)

Financial (stock quotes, on-line banking)

In addition, the tablets design and potential extendibility is described this way [6]: The WebPAD
is completely integrated and sealed: There are no internal parts that can be upgraded, added or removed,
and there is no software to load. It's designed with dual Universal System Bus (USB) ports to add
peripheral options such as a keyboard, mouse, printer or gaming input device. There are no disk or floppy
drives, and no PC Card slots -- although the design would support these items if an OEM chose to feature
them.

2.2. WHY WEBPAD?


WebPAD is intended to be used by people who do not have the necessary level of knowledge to
operate a PC, but nevertheless want to be able to surf on the Internet2. Additionally, it can be
used by people who just want a more convenient way of accomplishing the same goal, regardless
of their IT literacy. It is important to notice that the WebPAD is not meant to replace conventional
PC the home user might already own. As a gaming or a productivity tool, the PC is still
considered the only appropriate solution for the masses of consumers [35].
So, are they being produced? Not yet. By developing the WebPAD, the primary intention of NSC
is not to change the market, but to show that its integration strategy gives Original Equipment
Manufacturers (OEMs) the right means and a lot of freedom when designing consumer products.
OEMs themselves should design their products, customizing the original concept to their market
segment.
Therefore, the conceptual design has been provided to interested OEMs as a reference design.
They will customize the original concept to their needs and market their systems accordingly.
Two companies that have publicly announced their intentions to introduce their variants of the
original WebPAD concept are Tatung and RSC.

Or as Todd Beecher, manager of strategic marketing for Conceptual Products, the division that designed the WebPAD,
explains it: We took a chance. I guess my focus group was my grandmother..
2

~4~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

2.3. WHY LINUX?


The target customer is, as we saw, principally the home user, who is given the opportunity to
access the World Wide Web in a wireless manner whilst moving around in their home, using this
computerized tablet. A question that still remains to be answered is how interesting the concept
is for the corporate user, an enormous market potentially to be targeted subsequently by
interested OEMs, given that the initial effort succeeds. The general conceptual design supports a
client-server architecture already, but there is still an open question of potential business-oriented
applications.
At issue in both of those major application areas was the question of: what operating system
should be used? In other words, what operating system could provide the home user with an easyto-use, easily configurable interface, while still allowing power-applications for a corporate user?
At the same time, the development costs for the OEMs indirectly dictate the price and the
probability of success of such a venture, and should therefore be as low as possible. One single
design characteristic of such a system is certain: it should be widely used, as well as easily
scalable and customized. At the same time, its price should be low enough to allow for a
reasonable priced final product. Moreover, it should be widely known and used, so that it can
grow with its newfound market and provide technical solutions for the services to be
encountered in the future.
The operating system should by no means be regarded as a goal on its own, but as a means of
providing a good user interface and a useful, cost efficient, up-to-date product. One has to be
aware of the fact that the web browser chosen for the purposes of WebPAD-alike appliances is
responsible for the ultimate look and feel of the system as a whole, and the OS should remain
transparent. However, the choice of browser is tightly coupled to the choice of OS, due to the
simple fact that not all browsers are implemented on all major operating systems. For example,
QNX operating systems are supported in terms of browsers only internally, by QNX itself, who
are trying to follow the market trends without much help from outside. This also means that they
must develop their own plug-ins, viewers/players for major widely used formats, such as
Adobes Acrobat PDF, Real Networks Real Audio/Real Video, Macromedias Shockwave, etc.
Having all of these major demands on the system in one's mind, one comes up with a simple
alternative worth evaluating, Linux. Linux, the operating system available free of charge. Linux,
the operating system widely used and with an enormous base due to its ancestors, various
flavors of UNIX. Linux, the operating system with the fastest growing market share in the world
and an impassioned community behind it. Linux, which major corporate solutions providers,
such as IBM, Compaq, Informix, Oracle and SyBase have already decided to fully support.

~5~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

3. PROBLEM DESCRIPTION
Internet appliances of the WebPAD variety rely heavily on continuously evolving Internet
technologies. The final version of the WebPAD is to be a consumer product.
Let us now consider some more specific issues and present limitations of the current WebPAD
that a critic is sure to state. For the time being, the operating system running on the WebPAD is
QNX in combination with its GUI Proton and its browser Voyager. Although this OS is well
known for its small footprint, which can be regarded as one of the crucial attributes of a classical
embedded system, there are a number of downsides of which only the most important ones will
be listed here:
It is a commercial, pay-per-license, product. Although its price might
be relatively low, because a WebPAD-like consumer product would
target entry-level computer market, price raises an important issue.
Its strong commercial heritage also draws additional
copyright/secrecy issues concerning the work done and shared
within the company, in contacts with partners and the end-users.
QNX is an OS that is regarded relatively exotic among developers. This in
turn leads to the fact that software products developed outside QNX
itself and offering acceptable quality and stability are very few in
number and are naturally commercial, expensive products.
Furthermore, it is comparably very difficult to find and hire
seasoned professionals experienced in QNX development.
The QNX web browser, Voyager, is rather basic when compared to the
present Internet standards. It is not Java-enabled, and the plug-ins and
viewers/players for even the most popular web formats and
services are still at the development stage. Worse is that it is highly
probable that this unfortunate state is going to remain. QNX is
simply not considered important- enough to support by major
software providers. QNX themselves, as already mentioned, are
working on delivering support for Java and some major plug-in
formats. The quality and stability of these new add-ons is yet to be
proven in practice. Its development pace is, compared to major
browsers, very slow.
As Linux is the proposed alternative and prior to the deeper discussion in this report, the
following questions arise:
How big is its footprint? Linux wasnt originally intended for
embedded applications, neither were its major browsers and its GUI,
X Windows, although the latter has been used quite frequently in
conjunction with X terminals. Thereby the size constraints havent
been taken as seriously during their development, as in the case of
e.g. QNX, although X terminals are quite commonly used.
How well does Linux fit the needs of embedded applications? Although it
has taken a noticeable share of the OS market in the desktop and
server segment, Linux is still not as natural a choice for embedded
solutions, as some operating systems developed for this purpose.

~6~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

Although the amount of software available for Linux might be relatively


large, does it mean much in terms of embedded development? Many
decision-makers wonder if all that free software can actually be
utilized.
Let us assume for a second that Linux is an appropriate choice, which we will substantiate in the
chapter on Embedded Linux. Now, a third set of questions arises:
How does one implement Linux on Information appliances like the
WebPAD?
Would Linux, in such a case, offer any new opportunities or easy
incorporation of known ideas?
What web-browser should be used? What device drivers can already be
found out there, and which ones need writing/porting?
These issues, among others will be discussed in the rest of this document.

3.1. SYSTEM PREMISES


The run-time Linux WebPAD software should consist of following main elements:

Essential Linux (kernel, libraries etc.)

Necessary daemons and services (apmd, pcmcia), as well as


drivers

Minimal X Windows subsystem (X server, only vital X


libraries, fonts, etc.)

Browser and additional components (binary executable, Java


classes, additional shared libraries, etc.)

Container application, yet to be written. This application


plays the role of the visible WebPAD GUI.

Soft keyboard application, yet to be written. The Virtual


keyboard was described as a pop-up keyboard and was
developed as part of the IBM-Columbia University Student
Notebook Project in 1989 [7]. In our application it is used for
entering URLs and such.

~7~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

4. METHOD DESCRIPTION
The main goal of the project was to evaluate Linux in terms of the WebPAD and implement the
system as far as possible. During the evaluation part the author took Linux into consideration
from mainly a technical and, to some extent, marketing perspective in order to determine what
the WebPAD running Linux should look like and what features it would and should have. The
implementation part then focused on proving and testing the major conclusions from the
previous stage.
In order to evaluate, and then implement a Linux-based solution on WebPAD, one should study
at least the following issues of crucial importance for this project:

The Linux footprint. Linux is not intended to be as small as QNX, but it offers
many more components. The question is how many and which components
should be implemented, especially since there are strong dependencies
among most of them. Importantly, since it most probably will be stored in
the quite expensive flash memory, it should be kept as small as feasible. This
is stressed as the definitely most important single issue to consider.

The price and functionality of a potential Linux solution, and WebPAD in general.
As we saw earlier, the WebPAD is targeting quite low price points, and it is
therefore extremely important to provide a product with a good
price/functionality ratio.

Device drivers and supplemental software. Although there are a large number of
device drivers for Linux available, the technology the WebPAD is based on
is very new or uncommon (e.g. touch screen), which may mean that some of
critical drivers either are not released for Linux, or are not stable yet. The
above named problem was unfortunately underlined by the fact that only a
few hardware manufacturers offer first-hand Linux support starting from
the initial release stage of their products. Therefore most drivers are
developed independently by the enormous Linux community. In addition,
one should investigate if there is software needed for WebPAD-like devices,
already developed, or modifiable with a reasonable effort.

Web browser. What browser should be chosen? Netscape itself is actually a set
of multiple solutions, since the latest version does not necessarily have to be
chosen. One might prefer e.g. versions 2.x and 3.x since they provide most of
the functionality, with a considerably smaller memory footprint.
Additionally, some versions of Netscape browsers are available in a few
forms, requiring various kernel, library and plug-in compatibility
combinations. At the top of the list, there is the browser-only option
(Navigator), as well as a suit of TCP/IP applications (Communicator)
incorporating e-mail and news clients. On the other hand, a stripped down
Mozilla might be preferred. Other browsers available for Linux should be
looked into as well.

~8~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

5. LINUX, THE OPERATING SYSTEM


5.1. INTRODUCTION
Linux got started when a broke Finnish student, Linus Torvalds, bought his first 386 PC computer
back in the early 90s, and declined to pay for a copy of the Microsoft Windows OS. Instead, he
purchased a cheaper version of, even for that time odd, minix x86 operating system. Because he
was not satisfied with this Windows alternative either, inspired by [42]3 he started developing a
kernel of his own, intending to implement some basic POSIX functionality and see what
happened. Upon reaching the initial milestone of this, at the time hobby project, he posted his
first alpha release on the Usenet. The rest is history.
Ever since, Linux has evolved into something much bigger than even the most optimistic
enthusiasts could have pictured in their wildest dreams. A tremendous number of supporters
across the world joined, successively developing additional extensions for the kernel that started
the avalanche. The UNIX community also came to endorse the project by providing continuously
improved support for some of the main applications of a UNIX system; including but not limited
to the cursed and adored X Windows GUI, suites of compilers, networking utilities and
applications, development environments, etc. At the same time, entirely new and
groundbreaking applications were being created ceaselessly by the Linux community, solely for
Linux.
This operating system is now believed to endanger Microsofts vision of the future server market
entirely dominated by NT and its successors, and is seen by some as the fittest contender offered
by the massive UNIX community. The Linux penetration in the desktop market segment has so
far been described as, geeks with too much time on their hands. However, since this OS
entered a very comfortable symbiosis with the commercial world, a lot has radically improved
even in this market segment. Major Linux distributors are being introduced to the stock exchange
followed by almost tireless media coverage, as major solution providers have decided to support
Linux as one of their reference platforms. Meanwhile, the Linux community is continuing to
work on providing solutions that would make it possible even for total beginners to install Linux
on their desktop PCs and use it efficiently on a daily basis.
To this point, Linux has shyly been introduced to the embedded market as well. Indeed, since the
embedded market tends to implement more and more of the functionality so far reserved for the
desktop solutions, including the WebPAD concept for example, it definitely has a rather bright
future even there. The argument regarding embedded Linux will be continued in the following
chapter.
In this chapter, we will give an overall description of this operating system, addressing even
issues that will be of crucial importance in the further analysis. The very extensive documents
presented in [43], here sporadically used as a quick reference, are recommended to the interested
reader an a source of further information about Linux itself.
The reader not familiar with the Linux market situation is advised to firstly read Appendix A:
Linux Market overview.

As a bizarre coincidence, one might note that the author unknowingly used the same source in the preparation of this
MSc. project. However, Linus can consider himself lucky at one point: All he had to do was create one of the major
operating systems in the world; not try to write a report on it.
3

~9~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

5.2. LINUX LICENSING


As opposed to the rather common misconception, Linux is not distributed in the public domain.
The other commonly known licensing concepts like shareware do not apply to Linux either. The
term freeware is probably the one that describes it in the most accurate fashion, but even this term
is unfortunately not precise enough.

5.2.1.

General Public License (GPL)

Linux kernel and most of the accompanying software packages are released under the GNU
General Public License (GPL)4. This license was written by the Free Software Foundation (FSF). FSF
was started by free software visionary, Richard Stallman.
In layman terms the license means that anybody can use, modify and amend the original source
code. The code altered in such a manner can be freely distributed and even charged for.
However, if a commercial Linux software package is based on, or contains source code licensed
under GPL, the modified code should be released under GPL as well.
All source code of the system is publicly available and the accompanying packages are freely
available. Most of the commercial-quality software products are also free, most often released
under GPL as well. However, there are also an increasing number of pure commercial
applications, complying with the usual commercial licensing procedures.

5.3. LINUX IN BRIEF


Linux is essentially an exceptionally stable and robust multi-user, multitasking, UNIX-like
operating system. It has been ported to a number of microprocessor architectures, including Sun
SPARC, DEC Alpha, ARM, MIPS, Motorola 68k, PowerPC, etc., and is currently being ported to a
number of others. However, its origin was on the x86 family of processors, on which it runs in the
3865 protected mode.
It is UNIX-like due to the fact that its maintainers advisedly chose to follow the POSIX
specification, additionally incorporating even System V and BSD extensions. Therefore, it is
generally compatible with these systems at the source level.

5.4. SYSTEM ARCHITECTURE


In the following summary description of Linux components, we will primarily consider Linux
from a standpoint relative to its implementation on embedded systems described later in this
paper.
In those terms, the following Figure 5-1 is given as a reminder of the overall Linux structure (seen
from the above-mentioned perspective). By standard libraries, we assume standard C libraries,

Can be viewed at http://www.gnu.org/copyleft/gpl.html

However, it can be easily optimized for speed for successive architectures (486, Pentium etc.). Consult page 12 for further
information on this.

~ 10 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

which are to be briefly described later. Standard programs are often called UNIX commands,
such as ls, cat etc. Application libraries are the external libraries used by a certain application6
externally from the operating system itself.

Figure 5-1. Linux overall structure

5.5. KERNEL
Linux kernel is the heart of the system. Essentially, only the kernel itself is pure Linux, while
most of the extensions originate in the UNIX world and GNU, or are designed according to the
well-proven UNIX structure. This kernel is a result of a continuing work by the Linux
community, whose members are distributed across the world. However, the entire kernel project
is monitored and maintained by Linus Torvalds, its original founder. The work is carried out in
task teams, each managed by a maintainer. The source code is freely available and distributed
under GPL. The kernel is continuously updated, and even development versions7 are available to
everybody. Since the Linux community of users can at this point be deemed as comparatively
very qualified, the kernel thus has a vast number of very competent beta-testers.
The kernel is time sharing and non-preemptive. Its source of inspiration is basically the known
UNIX systems, but with a broad set of modern features introduced. As Linux is increasingly used
in academia and within the industry, it supports and is used for a number of state-of-the-art
scientific, security and standardization projects. Thus, it has even included support for e.g. IP6
and HAM/Packet Radio, for a quite while now. However, it doesnt stop there. For illustration
purposes, here we will list just a few of the features, easily customizable already when compiling

To keep it simple, even X Window System is here fit into this category.

Kernels with odd subversion numbers are classified as development, unstable versions. For example, kernel 2.3.x is an
unstable, development version of 2.2.x, while 2.2.x is released and stable.
7

~ 11 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

your own kernel8, used for optimizing the kernel for speed. Subsequently, we will outline the list
of kernel modules. The kernel documentation is sporadically referenced.

5.5.1.

Speed optimization

The speed optimization9 is naturally aimed at improving the kernel performance on a specific
processor family, belonging to the x86 architecture in the case of the present study. The x86 Linux
kernel classifies the processors in the following five groups:
386 the 386 (including 486SX) CPUs (compilation mode compatible with all other groups).
486 486DX and above, including e.g. Cyrix 5x86.
586 Pentium-class CPUs, potentially without the TSC register10.
Pentium Intels Pentium (alt. MMX) and AMD K5/K6/K6-3D.
PPro all the subsequent CPUs, including Intel P II, P III, Xeon and NSC/Cyrix 6x86MX/M II
processors.
Additionally, most of the Linux software packages can be optimized for performance when
compiled, in a similar manner. For example, Mandrake11 claims that they achieve 5-30%
performance improvement, by optimizing their distribution for Pentium-class processors.
However high this optimization really is, it is certainly of significance, especially in constrained
embedded applications.
The kernel also fully utilizes Memory Type range Register12 in the newer processors, which can help
boost the graphics performance up to 2.5 times in some systems.
Naturally, the kernel also supports Symmetric Processing, allowing for efficient (parallel) use of
more than one processor in a system.

5.5.2.

Kernel modules

A kernel module is a piece of compiled code that can be dynamically attached to or removed
from a running kernel, without needing to restart the system. As described in [38], the main goal
of modules is to extend the kernels own functionality. The module runs in the same address
space as the kernel to which it is attached and in the same thread, usually even as a single
process.
A module can be virtually anything13 that the kernel doesnt necessarily need all the time, but
should be loaded on demand; thus, saving memory and other resources. The natural

The latest kernel was versioned 2.2.12 at the time of writing. It is assumed throughout this report.

9 Originates from the gcc optimization features. Optimization is easily achieved by e.g. using m486 option for 486
systems.
10

MediaGX/Geode is said to work most efficiently with this optimization.

11

Mandrake is one of the market-leading Linux commercial distributors.

12

For Cyrix processors, MTRR is successfully implemented by utilizing their Address Range Registers.

For instance, automounter kernel feature, mounting filesystems automatically when filesystems are accessed can also be
compiled as a module.
13

~ 12 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

implementation of classic device drivers is just one of possibilities, that includes even filesystems,
support for binary formats, etc.

5.6. BINARY FORMATS


Executables and libraries on Linux presently can be built using two14 different binary formats, the
older a.out, and the current standard, ELF.

5.6.1.

Assembler Output (a.out)

A.out is a set of formats that were used in all the UNIX-like operating systems since the
beginning. In Linux it can be found in two forms, namely ZMAGIC and QMAGIC.
In order to run a.out applications, the kernel has to be precompiled with a.out internal support
which is notably not common in the latest kernels. Naturally, the support can be even compiled
as a loadable kernel module. Furthermore, a.out support compatibility libraries have to be
installed.

5.6.2.

Executable and Linkable Format (ELF)

ELF is the current standard binary format for Linux, but also for some of the major UNIX flavors,
including e.g. Solaris, IRIX and Digital UNIX. As explained in [44], it is more flexible than its
predecessor, a.out, which is one of the main properties, which caused even the Linux community
to shift from a.out to ELF.
In conjunction with the kernel, it is important to notice that the kernel naturally has to be
precompiled with ELF capability on order to run ELF executables.

5.7. STANDARD C LIBRARIES


Libraries are files containing routines used by dynamically compiled programs. The libraries are
used by software applications as a shared toolbox, thereby reducing the size of programs using
them. In this section we first examine the standard C libraries, that together with the kernel
define the framework of every UNIX-like operating system. In order to standardize this
framework, IEEE promulgated the POSIX.1 standard specification, which is widely used when
implementing and testing UNIX-like operating systems and their extensions.
The Linux libraries contributed have been courtesy of GNU project from the very beginning of
Linux breakthrough. GNU supplied an open source, free implementation facilitating the further
Linux development. The initial libraries, customarily addressed as libc1, were a derivation of
GNUs larger set of routines. However, over time, in order to get even closer to the POSIX.1
standard, the libraries gradually evolved, resulting in consecutive releases. One should note that
programs compiled with one version of libraries cannot be executed on systems with a different
library release.

14

Misc and Java binary formats are not important in this context.

~ 13 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

The fact that the GNU C libraries already are ported to many platforms makes porting
applications to/from various UNIX flavors much easier.

5.7.1.

Libc4

Libc4 libraries are the final release of standard C libraries used in conjunction with the old a.out
executables. Normally, they are not used anymore, since the Linux community has moved on to
ELF.

5.7.2.

Libc5

Libc5 is the first library version used exclusively with ELF. The main advantage of libc5,
compared to libc4 and earlier, results from the ELF compliance itself. Now the libraries could be
shared between running processes in a much easier fashion, thereby radically improving system
performance. Libc5 is still considered to be somewhat of an official standard, although most of
the major Linux distributions do not use it any more, except for compatibility reasons.

5.7.3.

Glibc2

The newer and currently widely accepted glibc215 libraries were released by the GNU project. In
terms of their implementation on space-critical (embedded) systems, one should bear in mind
that they are generally larger than the libc5 libraries. However, as some of the most important
advantages of using glibc2, even in the embedded systems, the following reasons are given [18]:

Much better conformance with existing standards, i.e. POSIX.116

Support for 64-bit data access, the next boundary in prevailing development, from the very start

Much cleaner structure and implementation, allowing for easier modifications and extendibility,
as well as improved security

Included support for IP 6

Name Service Switch, making changing database access methods possible, allowing processes
to access system information

Additional support for internationalization

Portability routines, allowing easier optimization for particular hardware architectures

Improved multithreading support

Symbol versioning, for compatibility with library versions to come

5.7.4.

Conclusion

Summing up, one can stress that glibc2 is in general definitely the standard to follow, unless there
are especially good reasons against using it in a particular situation. The cases where one should
consider using libc5 instead are characterized by utter space criticality, however this means that
the product is not likely to easily evolve to use the next stage of Linux development.

15

Glibc2 is occasionally also called libc6.

16

Optionally implements POSIX 1003.1c pthread interface.

~ 14 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

5.8. X WINDOW SYSTEM


X Window System has been the classical GUI of almost all UNIX-like operating systems for a
couple of decades now. Although some see its age as one of its main disadvantages, it has always
been the test framework for groundbreaking development in the GUI sphere. Over time it
became very stable and has evolved into a modern GUI.

5.8.1.

X features

X Window System essentially implements a TCP/IP-based client-server model, according to


which clients, i.e. X applications wanting to show or modify something on the screen, issue
protocol requests to the X server that in turn executes these requests on the graphics hardware.
However, unlike e.g. Windows 9x/NT, it is not a monolithic system. For instance, managing
windows (raising, minimizing, moving etc.) is handled by an additional and easily exchangeable
component, the window manager, while the buttons, icons etc., are distributed by various GUI
toolkits. Therefore, it is quite easy to change both the look and feel of the GUI.
As its modular design approach certainly has significant advantages such as the freedom to
utilize whatever alternative one prefers, it also leads to different applications providing quite
different, non-standardized, user experience and application behavior. In terms of embedding X,
this also implies that different toolkits are likely to be used in various X applications, consuming
space. The former fact has been seen as one of the obstacles for Linux, to make a serious
breakthrough on the desktop market and appeal to common users. In order to provide a unified
and standardized solution, Gnome17 and KDE18 projects have been initiated, and they are already
stable and now commonly used releases delivering creative, inventive features.
There are several commercial X window suites for Linux such as Accelerated X and Metro X19.
However, the most commonly used is a freely redistributable X/Open standard compliant suite
developed by XFree86 Project20. Naturally, even the source code is freely available. The Linux
community and two of the major Linux distributors (Red Hat and SuSE) are some of its main
contributors.
It is based on X11R6.3 specification21 and considered very stable. X servers themselves are, in
turn, very hardware dependent. This means that there is a separate X server for almost every
major graphic chip22, while the rest of the system is common. This has proven to be one of the
main obstacles on the road to desktop users.

A quite different avant-garde desktop and window platform, with an astonishing touch and feel and level of
customization.
17

A clean-cut, extensive desktop platform, seemingly aiming at and very likely to appeal to current Windows 9x/NT
users.
18

19

The latter has apparently moved on to supporting and contributing to XFree86 instead.

20

More info at http://www.xfree86.org/

21

However, a move to X11R6.4 is planned.

MediaGX/Geode is supported by the SVGA X server, starting from a quite recent 3.3.x release, and has proven stable
even during this project.
22

~ 15 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

5.8.2.

Considerations and conclusion

The X Window System and X servers specifically are, relatively speaking23, tremendously
massive in terms of space they take up. Here, especially the newer releases grew relatively large,
helped by the fact that they are available only for libc5 and glibc2 systems24. However, the
immense number of applications written for X, the enormous number of developers raised with
(or on) it, as well as its stability, market position and prospects, are definitely on its side25.

5.9. DEVELOPMENT IN LINUX


Since Linux is a UNIX variant, all of the significant development languages and environments
known from other UNIX systems have been ported to Linux, including those made by GNU.
These tools are of very high quality.
However, this extensive and broad spectrum of tools is soon to be expanded further, since the
first commercial tools from the Microsoft world are now being brought to the light of the day.
The common languages (C, C++, Java, Pascal, Forth, Perl etc.) and compilers/development
environments (gcc, egcs, JDK and so on) are thus now to be supplemented by e.g.
Borland/Inprises Delphi, C++ Builder, Jbuilder and VisiBroker26. Metroworks CodeWarrior follows in
the same steps. The producers of the market-dominant database solutions, such as Oracle,
Informix and Sybase thereby started a very positive trend.

For instance, QNX has in a very successful promotional maneuver managed to put their microkernel, essential
MicroGUI, a simple but efficient WWW browser, as well as TCP/IP stack, generic modem drivers and Internet dial-up on
a single, compressed floppy disk. Storing even compressed X Windows alone on a floppy would be difficult.
23

24

To our best knowledge, the modern design makes utilizing older libc4, a.out libraries impossible.

25

Some potential opportunities that the X window System could open, will be discussed in the Conclusions chapter.

26

VisiBroker and Jbuilder Java 2 are already available at this time. The other Borland products will follow shortly.

~ 16 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

6. EMBEDDED LINUX
6.1. INTRODUCTION
Due to the features of Linux, e.g combined networking, GUI and Symmetric Processing on a
range of processors, embedding it is becoming quite common. Additionally, real-time extensions
have been developed.
The support for embedded Linux is becoming solid and stable. Now consulting and industrial
design companies are broadening their competence to cover Linux as well, which has also lead to
upcoming and strengthening of players providing solely Linux services and embedded products.
Among these companies, e.g. Zentropix27 and Synergy Microsystems28 specialize in real-time Linux,
while IGEL29 provides Linux-based thin client solutions.
This emerging market30 has brought commercial Linux distributors to it as well. Hence, Calderaowned Lineo31 has announced a road map for embedded Linux. The solutions include Embedix, a
Linux-based embedded OS, a supplementary SDK and Embrowser, an embeddable micro-browser
intended for use in TV set-top boxes, network computers, information kiosks etc.
Linux/Embedix version of this HTML 3.2-compliant browser is expected to ship in the first
quarter 2000. Moreover, Lineo and MeterNet have already announced cooperation on the first settop box in the market running Linux32.
In this chapter we will consider the most important issues of embedded Linux.

6.2. WHY EMBED LINUX


When the issue of embedding Linux is discussed, many see the fact of Linux being a free
operating system as its main advantage towards its competitors. Although this property of Linux
and its greatly liberal General Public License (GPL) are important, it is far from being the only
justification for implementing Linux in embedded applications. As we will see in this chapter, it
is not always even the most substantial and important reason.
With the trend of increasing use of PC-like hardware, Linux with its strong PC-background
becomes a very feasible solution for many practical implementations. As correctly described in
[11]33, the alternatives such as DOS and desktop Windows operating systems are very limited,

27

http://www.zentropix.com/

28

Further specializing in PowerPPC. More info at http://www.synergymicro.com/

29

http://www.igel.de/

For instance, on their new Wireless LAN thin client series Aero 8000 (scheduled for Q4 1999), Compaq is to introduce
two models in parallel, one running Linux and the other comprising Windows CE.
30

31

More information at http://www.lineo.com/

32

Interestingly enough, this set-top box is also powered by MediaGX/Geode.

Although written in 1997, this article gives an excellent overview of current embedded Linux issues and can be
recommended to the interested readers. It should also be consulted when describing real-time extensions later in this text.
33

~ 17 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

while expensive, proprietary, and mostly non-portable high-end real-time operating systems cannot
efficiently match the needs introduced by this technology shift. Additionally, What is needed is an
OS for which support is available-one that is cheap, mature, and provides the features that high-end
embedded systems must have, meaning good GUI and networking capabilities. Linux fits this
description more than well.
The non-restricted availability of the source code is of high importance in most embedded
systems, for a number of reasons. For instance, [48] quotes the fact that hardware manufacturers
can share early-access hardware, plus prototyping or proof-of-concept software, with customers and/or
partners without any concerns about software licensing, thus speeding up the entire development
cycle, as one of the main reasons why Motorola Computing Group was at the time considering
providing Linux board and system support for their customers and partners34. On the other hand,
a case of implementing Linux for control of transportation equipment such as elevators, as
described in [26], availability of the source code is crucial for safety-sensitive systems with a long
lifecycle.
Other reasons, such as code portability, system stability and good kernel support for watchdogtimers etc., are nevertheless momentous, even in communications systems [15].

6.2.1.

Real-time extensions

Linux is not a classical real-time operating system. However, due to the fact that many embedded
applications35 are real-time critical, an extensive amount of work within the Linux community,
aimed at providing a real-time Linux, has been put down. This work took an innovative
approach and led to some very interesting results.

6.2.1.1.

Real-time definition

A real-time system is, as defined in [2]36, a system that performs its functions and responds to
external, asynchronous events within a specified amount of time. One of the main characteristics of
such a system is that it can guarantee when and for how long a certain process is going to be
executed, i.e. be given access to the processor(s). Another difference is the fact that non-real-time
operating systems tend to favor good average performance of processes running, as opposed to
timing issues of each and every process as in the case of real-time operating systems.
Real-time operating systems are usually divided in two groups, on basis of grade of real-time
requirements fulfillment:

Soft real-time systems. These are characterized by their timing obligations being defined
statically. Simplified, an occasional flaw is not critical and of too much concern37.

Hard real-time systems. In such systems, processes must be ran as promised, and deadlines
must be guaranteed38. As stated in [2], Hard real-time systems cannot use average case
performance to compensate for worst case performance.

~ 18 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

6.2.1.2.

From Linux to real-time

The Linux kernel is, as most UNIX systems, based on time, non-preemptive scheduling, thus is
initially not real-time compliant. Its scheduler is designed to have a solid, balanced response time
and processing throughput in order to provide fair distribution of processor usage time slices
among all running processes. These processes are assigned different priority levels depending on
the processes track record, in terms of time they used up, how input/output sensitive they are,
etc.
For example, if a process doesnt use up all its dedicated processor time, its priority remains the
same or is incremented. Accordingly, if it consumes all of the time it was scheduled, its priority
level is reduced. Kernels non-preemptive attribute leads to an additional problem, manifested by
high priority processes not being able to execute exactly when needed, until the currently
running, low priority process is through. Additionally, software interrupts are disabled as the
kernel is running, so e.g. I/O processes demanding instantaneous response are handicapped in
terms of synchronization. An additional problem is the implementation of virtual memory,
adding yet another unpredictability factor.
The kernels performance is therefore poor in respect to real-time demands and is deemed quite
unpredictable. However, real-time extensions have been made, so that an extended kernel
behaves as a classical real-time kernel.
[54], [55] describe the additional reasons for making Linux real-time, and present the extensions
to Linux making it a hard real-time operating system. The design principle is quite simple: the
Linux kernel is just moved down in the tree, replaced by the small RT Linux39 kernel, that is
running the original Linux kernel as a low priority task. All interrupts are thus handled by the RT
kernel, and are dispatched to the original Linux kernel when there is no other real-time critical
process to run.
As the result of this clever approach, future kernel development of the original, standard Linux
kernel doesnt require an update of the RT system, which would otherwise be almost impossible
to do frequently, due to the kernels complicated nature40. As a result, one has two domains, one
real-rime implementing its essential functionality, and one non real-time where ordinary, nonreal-time demanding processes run.

34

As we previously noted, Motorola has now officially announced this step.

35

Assembly lines, various instruments, telecommunications systems, etc.

This work, outlined by Barabanov and previously Yodaiken, is the basis of development of now quite extensive realtime support for Linux.
36

Barabanov uses a quite descriptive example: In a real-time video conferencing system, missing frames is naturally not
desirable, but missing one or two occasionally is not critical for the user perception of the distributed message. For
instance, one sets up a rule, such as: The routine should be executed properly within 100 ms, in 99% of cases.
37

Similarly, in a real-time system controlling behavior of nuclear rocket launcher, shutting it down in case of e.g.
overheating simply must be completed in time. As a rule one requires, for instance: The routine is to be executed within 100
ms every single time.
38

39

RT Linux stands naturally for Real-Time Linux.

40

Note that e.g. the size of a compressed, full-sized 2.2.x kernel source tree is about 14.5 MB.

~ 19 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

A number of implementations have proven41 RT Linux stable and robust in practice. However,
one should bear in mind that, according to the reviewed related documentation, RT Linux is not a
fully POSIX.1c-compliant real-time operating system yet [2].

6.3. FILESYSTEMS AND DIRECTORY STRUCTURE


As is widely known, the usual access media such as disks are divided into one or more partitions,
containing filesystem(s). A typeless partition is in Linux commonly used as a swap partition,
making virtual memory possible.
The file system types supported by Linux include ext2fs, the Linux native type, along with a
number of other types, used for compatibility reasons. These filesystems types include the
DOS/Windows compatible UMSDOS, FAT and VFAT, as well as minix, SCO Unix, etc. Even
QNX and MacOS types are supported, although only experimentally at the moment.
Each filesystem consists of a directory tree. The Linux root tree, as with most of UNIX systems,
should normally contain these directories:
Essential binaries (utilities)

/bin

Basic superuser-level utilities

/sbin

Where most configuration files are stored

/etc

Standard shared libraries

/lib

All Linux devices, accessed through corresponding nodes

/dev

Where the programs usually store their variable data, such as timestamps, etc.

/var

A temporary catalog frequently used by running programs

/tmp

Additional applications (such as X and its libraries).

/usr

A virtual filesystem mounted by kernel, providing access to the process structure

/proc

6.4. BOOT AND COMPRESSION


The boot process in Linux can be modified for radically different behavior of the embedded
system. That is why we will examine it here, as well as describe some of the alternatives. Also,
since this process is mostly altered in combination with introducing some type of compression,
we will subsequently examine some of these techniques.

6.4.1.

Booting the system

During the Linux boot sequence, the system goes through the following steps [1], [3],[8],[10], [12],
[13],[19], [29],[45][49]:

For instance, a computer running RT Linux has been successfully sent by NASA into the eye of the hurricane Georges to
gather data.
41

~ 20 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

1.

Load the kernel, which is accomplished as follows:


The (re)started system executes the BIOS code, that in turn loads the operating system code
from the following kinds of storage:
1.1.

EPROM; This alternative, as addressed in [3] calls for altering the kernel source
and a supplementary driver so that the EPROM can be accessed as a generic
block device. Naturally, the EPROM is read-only, meaning that its contents
cannot be altered at run-time in any way. M-systems DiskOnChip42 behaves in a
similar way, but is writeable. For both, BIOS boot support is needed43.

1.2.

Generic block device, such as floppy, hard disk, IDE flash disk or similar, assuming
there is at least one partition dedicated to Linux. Here the MBR (Master Boot
Record) is read, where one of the following can be stored:
1.2.1.

The beginning of the kernel, that is subsequently loaded and to which the
control is then handed over.

1.2.2.

A boot loader, e.g. the free LILO normally accompanying Linux, which in
turn loads the kernel. LILO can also pass arguments to the kernel and
provide for additional selections.

1.2.3.

DOS/Windows boot loader, starting DOS/Windows first. Then loadlin44 can


be used to boot the Linux kernel from this environment. In such a case,
the kernel is loaded from an UMSDOS45-partition, which even
DOS/Windows can freely access.

Either way, when the kernel is loaded it automatically initializes basic system devices.
Now the system can proceed to the succeeding step:
2.

42

Mount the root filesystem (/). This can be done either through a local storage device or via the
network with e.g. NFS46. Moreover, the filesystem to be mounted can be stored in two
ways, as:
2.1.

A live filesystem, uncompressed and accessible, and thus directly mountable.


Naturally, separate files within the filesystem can still be kept compressed, but
the filesystem itself is not unified and compressed.

2.2.

A compressed image of the filesystem. In this case, a valid live filesystem is first
created by initializing a RAM-disk in which the compressed filesystem is then
uncompressed and stored. This process can be done by consecutively creating
two RAM-disks47, the first one mounting an image usually used in order to run
linuxrc, check system environment and allow loading of additional modules,

Otherwise, DOC could be functionally listed in 1.2.

Naturally, boot support is needed for other devices, but is much more common in PC-style hardware. This alternative is
frequently utilized in PC104 and custom boards.
43

44

Another free boot loader commonly used for this specific purpose.

A fully DOS-compatible filesystem type in Linux. Of course, a partition originally created by DOS is seen as UMSDOS
from Linux, so the filesystems are compatible in both ways..
45

46

Network File System, common for all UNIX-like operating systems.

47

This feature is called initrd.

~ 21 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

prior to mounting the second RAM-disk that is to contain the final root
filesystem.
3.

init is executed, checking its configuration files, in turn loading additional modules,
starting network services etc., along with executing the next step.

4.

Mount additional filesystems (i.e. /usr, /tmp etc.) and a swap partition, if needed. Naturally,
the root tree could contain all sub-trees and no other filesystems need to be mounted.
Accordingly, a swap partition is not a necessity either, provided that the system has
enough RAM for running all applications.

It is essential to note that the modules crucial for, and needed throughout the steps 1-3 have to be
compiled into the kernel, unless initrd is used. This includes support for filesystem types, binary
formats and media storage/access devices (i.e. disk, RAM-disk, initrd support and network card
drivers) utilized.

6.4.2.

Compression

As we saw in the previous section, compression/decompression can be introduced already in the


initial boot process, but usually at cost of creating RAM-disk(s) where the uncompressed
filesystem(s) are then stored. Thus, it is important to note that the filesystems stored in the boot
device/media, are used only during the boot itself and are not read afterwards, during run-time.
The commonly used tool gzip, the well known GNU zip utility, is based on Lempel-Ziv LZ77
coding and provides nine grades of compression versus speed.

6.4.2.1.

Gzexe and bzexe

Moreover, beside compressed filesystems one can use another very simple approach that adds a
lot of functionality: one can compress specific files alone, within an uncompressed and thus
readable filesystem, and have them uncompress automatically when executed. A very lucid and
useful (especially on embedded systems) shell script can be used for this purpose, gzexe. Upon
running it on an executable binary, e.g. foo, it produces two files, foo and foo~. foo~ is the old
binary, while foo is a newly created file consisting of a shell script in the header with a
compressed binary tail. Now, when foo is executed it essentially does the following:
i.

It decompresses the binary tail using g(un)zip

ii.

Thereby creating an executable (the original foo) in a temporary catalog.

iii.

The binary is then executed from there.

iv.

After it executes, it is automatically48 deleted, freeing the temporary space.

Similarly, bzexe49 has been made based on gzexe, but using bzip250 instead of gzip. bzip2 is
an alternative compression tool using Burrows-Wheeler block-sorting algorithm and Hoffman
coding. Importantly, the compression grade is chosen through picking one of nine block sizes
used at compression time, ranging from 100,000 to 900,000 bytes, the latter being the default.

48

The deletion is delayed, thus executed after a given amount of time.

bzexe has been derived from gzexe by Sebastien Huet (sebhuet@club-internet.fr), also the author of LEM, based upon
an idea by Guillaume Schmid (cliff@club-internet.fr)

49

50

More information can be obtained at http://sourceware.cygnus.com/bzip2/index.html

~ 22 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

Thus, the bzip2 memory usage at both compression and decompression stage is also directly
adjusted when compressing, according to the following formulas [4]:
At compression: memory used = 400k + (7 x the chosen block size)
At decompression: memory used = 100k + (4 x the chosen block size), or if s flag is used:
memory used = 100k + (2.5 x the chosen block size)
The s flag can be used at the decompression stage in order to reduce the memory usage, but the
time needed for it is then doubled. In conclusion, the compression and decompression speed is
virtually unaffected [4] at any of the stages by the block size, but as we can see the memory usage
is. Also, the block size doesnt radically change the compression ratio, since most of compression
comes from the first two or three hundred k of block size. All of the above issues can be deemed as
especially important when analyzing run-time performance and resource requirements on a
constrained system.

6.4.2.2.

Zlibc

Another compression alternative is called zlibc [57]. It takes advantage of the fact that programs
normally call the function that in turn makes system calls, and thus system calls are not done in a
direct manner. This way, zlibc can intercept e.g. open() calls, and pipe the requested file,
previously compressed, through g(un)zip51 , as the descriptor is returned back to the caller. In
order to do so, the dynamic linker is redirected to use uncompress.o, and not the standard
shared library. However, the use is restricted to compressing data files of executables, which
means that this method cannot be used for compressing executables and their shared libraries52.
Also, compressing statically linked executables data files is not possible, while there is no gain
for files smaller than 1024 bytes53. In addition, it only works when files are to be read, so they
cannot be automatically updated.

6.4.2.3.

E2compr

A third alternative, allowing live filesystems containing compressed files is currently being
developed54 e2compr. Kernel patch needs to be applied, as well as a set of patched ext2fs tools55.
Essentially, it conducts compression and decompression of all files marked for this feature, on the
fly, in a seamless manner. However, although it apparently isnt stable yet, it could be a good
solution when using a fully writeable filesystem, with lots of irregular reads and writes56.
E2compress could thus be deemed an appropriate solution for systems where the user is given
the freedom to make changes (add/upgrade) in the software, i.e. desktop systems. However, this
is not as usual nor welcome in most embedded systems.

51

In addition, djvu(decode) can be used. Support for bzip2 is under way.

The term shared library can naturally be defined as an executable as well, but we are making a clear distinction in this
text for readability reasons.
52

53

File system blocks are usually 1024 bytes large, so compressing such files wouldnt free any of them.

54

E2compress was not tested due to time constraints and reasons mentioned further in the text.

55

The main ext2fs tools, including e.g. e2fsck wouldnt work.

56

Also, it is said to add an overhead in the 300 KB order of value to the kernels unswappable amount of RAM usage.

~ 23 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

6.4.2.4.

Conclusion

These three (presented) alternatives use compression in different manners, and are utilizable for
different purposes in embedded applications. bzexe/gzexe can be used effectively only on
executables57, while zlibc can only compress data files. E2compr could be used for all types, but is
unfortunately still quite unstable.

6.5. RUN TIME ISSUES


The properties of an embedded Linux system involve a number of limitations that need to be
addressed. Here we will list the most important ones.

6.5.1.

Why and when read-only?

Most of the flash storage solutions have a limited number of write cycles, usually between 100
and 400 thousand although recent developments have led to devices with warranties covering
millions of write cycles. Nevertheless, they are still limited and an analysis in write-intensive
applications is certainly justified. Moreover, a power failure during a write cycle can, as in the
case of hard disks, damage the file system, but corrupting potentially even larger blocks. Thus,
read only file systems are used as much as possible when flash is used. Obviously, EPROM
cannot be written at run-time at all. Let us briefly consider what this means in Linux.
As most of the root file system need not be modified at the run-time, one can divide it into
smaller file systems, categorizing them by the time point at which they are needed, and whether
they are modifiable. Thus, separate subsystems can be stored in various ways, compressed or not,
and mounted subsequently. This way, we can either mount separate filesystems read-only
directly or protect the flash content by uncompressing them into a RAM-disk that in the event of
power loss occurrences only gets deleted, not affecting the original content. At the cost of the
RAM, we also get ultra fast file access.
In addition, we can use a RAM disk as a kind of a buffer for infrequently modified data, which
needs to be saved between sessions.
As a consequence of flash usage, we should not use e.g. swap space on it, even if there was
enough room. Frequent swapping would wear the flash out rather quickly. We will get back to
this subject in the System design section on page 41 with problems and potential solutions specific
for our application, but let as meanwhile take a look at what needs to be writeable.

6.5.2.

Modified file systems

Linux writes frequently to the following filesystems [49]:


/var

This directory is intended for variable data to start with, so writing to it is very
frequent in ordinary Linux systems. Thus, it has to be mounted read-write, preferably
placed in a RAM disk. Additionally, the processes writing to it (primarily a number
of daemons) can be disabled if necessary.

/tmp

Many executables use this directory for storing their temporary data. The alternatives

57

Not on shared libraries.

~ 24 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

are the same as in the previous case.


/dev

This directory has to be available at boot time. Some device nodes stored here also
have to be writeable, such as /dev/tty* written to at logon. In addition, devices like
writeable disks/disk partitions and RAM-disks can be written to this way. If any of
these are needed, a usually better solution is linking them symbolically to a writeable
partition where these files are really stored.

/etc

Commonly, only two of the files found in this directory are written to on occasional
basis. One is /etc/mtab, modified every time a filesystem is mounted/unmounted.
However, one can use n flag, and link it symbolically to /proc/mounts to avoid
this problem. The other file is /etc/HOSTNAME, written to in some cases following
DHCP58. A symbolic link to a writeable file is usually an appropriate solution even
here.

58

Older DHCP daemons write to it instead of /var.

~ 25 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

7. WWW BROWSER OF CHOICE


7.1. INTRODUCTION
For a single-function device used primarily for surfing on the web, like WebPAD, the browser is
the single most important component in terms of providing the functionality a user expects from
such a device. The compliance with known and widely used standards and technologies is thus
crucial. At the same time, the WebPAD concept is sensitive to the size of the embedded software,
in terms of the constrained storage space and general system performance.
In this chapter, we will describe some of the browsers available for Linux and discuss their
potential implementation on the WebPAD.

7.2. AVAILABLE LINUX BROWSERS


There are a vast number of network applications available for Linux, since the Internet actually
started its real breakthrough with UNIX. This in turn means that there are several WWW
browsers ported from UNIX, or being developed in parallel with their UNIX counterparts.
Additionally, Linux provides an extensive number of viewers/players for virtually all known
formats and these can be used in conjunction with the browser.
However, most of these browsers were discontinued and/or do not meet the current standards.
Some attempts are still at a rather early stage of development with a very slow development pace
and goals set in a, commercially seen, odd fashion, and therefore they will not be discussed
further.
Naturally, Netscape browsers are the most natural solution. They have been used on UNIX since
their first release, and are the most obvious solution because of their quality and stability. Let us
take a look at the design features of different versions of Netscape browsers.

7.2.1.

Navigator 2.02

Navigator 2.02 is one of the oldest Netscape legacy browsers. However, due to its robustness and
relatively extensive set of features, it is a viable alternative in resource-critical embedded systems
that do not need compliance with latest standards. Such systems can include e.g. embedded
industrial applications based on the WebPAD-like hardware architecture, not primarily used as
classic consumer products59.
Although it is four years old, it nevertheless includes some features that are not found in many of
its newer, non-Netscape counterparts. It is namely the first Java-enabled browser in the Netscape
series, and it also introduced JavaScript, frames and client-side image mapping. This browser
suite also includes a fully usable MIME-compliant e-mail and news client, allowing offline
reading, as well as a bookmark maintenance facility. Yet, the browser supports just Secure

Although one might think that this series of browsers is forgotten, questions regarding implementation of this kind of
browsers are frequently posed on mailing lists and other on-line resources on embedded Linux.
59

~ 26 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

Sockets Layer (SSL) 2.0. Its Gold version even incorporates a quite simple, basic HTML editor,
increasing the binaries size just slightly.
Version 2.02 is only obtainable precompiled, since Netscape unfortunately never made the source
code of their older browsers publicly available. On Linux, the binaries are in a.out format, which
as we already mentioned, implies that the operating system must have appropriate support for it.
The shared libraries needed are modest in size. The ideal size-optimized system incorporating
Navigator 2.02 would be a libc4 system with the older a.out X Windows, where applicable.
However, the browser itself is about 3.8 MB in the uncompressed state, and the Java classes files,
already compressed60, take up 748 KB. It does not support plug-ins, although it can be used in
combination with external viewers and players.

7.2.2.

Navigator 3.04

Navigator 3.04, released in 1997, is generally a much better alternative. In addition, it marked
Netscapes transition from a.out to ELF binary format and libc5, with respect to the Linux
version. The browser includes essentially the same set of features as its predecessor, but it is
further refined, upgrading to: JavaScript 1.1, enhanced security (SSL 3.0 and digital certificates)
and adding full support for plug-ins, Linux inclusive. Its e-mail and news clients are now Rich
HTML capable, and the tags supported include those of them proposed by the HTML 3.2
specification.
This browser can most certainly be denoted as a die-hard alternative. The executable is sized at
4.3 MB and the Java classes originally compressed at 713 KB. The ideally size-optimized system
is obviously libc5/ELF-based, running libc5 version of X.

7.2.3.

Navigator 4.xx

With its 4.xx suite, Netscape entirely moved on to the modular approach, slashing the suite in
several components. However, the browser-only package still includes a monolithic binary
executable. Jar-files are now extended with e.g. localization and different platform support. New
features are added, such as push/channels, dynamic fonts61 and Cascading Style Sheets (CCS), as
JavaScript has been updated to 1.3.
It also marked Netscapes introduction of glibc2-based browsers. Version 4.08 is the last browser
available only for libc5, as 4.5x and 4.6x are also available for glibc2.
The browser executable is now 7.1 MB in size62, and the added default plug-in63 is 788 KB.
However, it doesnt necessarily have to be included64. Java classes have been extended as well,
and have, with support for e.g. Lightweight Directory Access Control (LDAP) and the rather
extensive internationalization support grown to 4.3 MB. However, the Java support should be
adequate even if these files reduced to about 3 MB.

Here, they are stored in zip format, and not in gz (GNU zip) as in v3.04 or jar (Java Archive) as in later versions.
Additionally, jar seems to really be gz in Linux.
60

61

According to Netscape Technical Support, only on 4.61.

62

Navigator 4.61 Stand-alone, glibc2 variant. Libc5 versions, particularly 4.0x, are somewhat smaller.

63

libnullplugin.so, handles unknown MIME types and prompts the user for download of the proper plug-in.

64

It can be skipped. Alternatively, one could create a new one or apparently even modify the Mozilla default plug-in.

~ 27 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

7.2.4.

Mozilla and Navigator 5 to-be

In 1998 Netscape released the source code of their early version 5 browser suite65, under Netscape
Public License (NPL), initiating the Mozilla project [28]. Mozilla, consisting of an enormous
number of developers tightly cooperating with Netscape, took on the further development of the
code.
However, it is important to note that the released code doesnt include those parts that were
copyrighted by third parties and legally non-distributable modules. Hence, the source code of
Messenger, Netscapes e-mail client, as well as Suns Java VM and SSL module are not included in
Mozilla. Java can however be built in through OJI (Open Java VM Interface), allowing for OJI
JVM plug-ins. One such, GNU Japhar is currently available.
The fast and modularized browser engine used, supporting HTML 4.0, CCS 1 and 2 as well as
JavaScript 1.5. XML 1.0 and DOM, has been the cause of much confusion and many
misconceptions. Netscape calls it Gecko66, while it is also called NGLayout, especially in the
Mozilla community67. The latter however also uses the names XPFE and XPToolkit for the
engines user interface toolkit, while strictly the layout engine itself is denoted as NGLayout68.
Netscape intends to package Mozilla in its future releases of the 5-series, as will everyone else.
Linux is one of the reference platforms used and one of the main targets. The development is
based solely on glibc2.1 and is planned to tightly follow further releases of glibc. The toolkit used
is GNU Toolkit (GTK)69. The browser package is very modularized, consisting of a small
executable, apprunner/viewer, loading numerous smaller libraries which add features. Naturally,
the complete source tree is available.
However, although the set of features is very extensive, it is still under heavy development. The
Mozilla release, M6 (Milestone 6) which we tested, was still quite buggy and rather unstable.

7.3. BROWSER CUSTOMIZABILITY


7.3.1.

Remote Control and Inter-Application Communication

As noted before, the binary-distributed Netscape browsers consist of a single binary, in addition
to potential plug-ins and such, as well as Java classes. The browser executable is monolithic,
which makes customization more difficult. However, run-time behavior customization is
achievable to a rather high extent by using Remote Control and Inter-Application Communication
through X events [[56].
Accordingly, a running browser instance gladly responds to Netscapes built-in Xt actions, e.g.
remote option, to which a number of actions can be fed. For instance, simply executing
sh> netscape remote 'openURL (http://www.it.kth.se)'

65

It is not source of beta release, as we will see.

66

It has nothing to do with engines implemeted in 4.xx and previous Netscape releases, but is totally new.

67

And it gets worse. Netscape used to refer to it as NGT, formerly known as Raptor.

68

NGLayout is also used for rendering the GUI.

69

Also used in e.g. gnome.

~ 28 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

at the shell command prompt70 would open this link in the existing browser window. Leaving the
parentheses empty would on the other hand prompt the user to enter the URL. Beside several
other arguments that can be sent via openURL, there are additional actions utilizing arguments
this way, such as openFile, saveAs, addBookmark and mailto71. The vast number of other
implemented X resources72, allows further customization although these do not take arguments
as described above. The window that one wants to be controled remotely is identified by id
option. Similarly, one can control whether and how the browser window(s) will be raised.
Naturally, all common options, such as geometry, -display, -iconic, etc., are also
implemented.
Menu items, the splash-screen73 and such can be disabled or reconfigured quite easily. Still, other
fetures such as the animated Netscape icon74 apparently cannot be disabled or modified in this
fashion75.
On the other hand, Mozilla adds an enormous amount of customizability, simply since the source
code is available. On the other hand, customizing its source is by no means uncomplicated, due
to the code size and complexity of all the standards and modules implemented, as well as their
interconnections and dependencies.

7.3.2.

Plug-ins, viewers and players

There are free viewers/players in Linux virtually for all known and widely used standard
formats, including WAV, AVI, Quicktime, MPEG, MP2, MP3, MIDI, MOD, AU, AIFF, TIFF, PNG,
PostScript and so on. Plugger, a small Netscape plug-in supporting streaming, handles the most
of the multimedia formats among those mentioned, through their respective players, e.g. Timidity
and xanim. The UMP plugin can also be used together with Timidity for playing MIDI files.
Moreover, although still far from the support they provide for Windows, the major commercial
plug-in/viewer/player providers are producing Linux releases at an increasing pace. Thus,
Macromedia provides its Shockwave Flash 4 Player. Real provides their Real Player G2 and some
older players, while Adobe Acrobat Reader 3.0 and the newly released Acrobat Reader 4.0 are
available for Linux also. Naturally, they are all free of charge. In addition, there are a couple of
PDF viewers originating in the Linux/UNIX world, such as xpdf76 for instance. The Mpeg TV
Plugin is available, but is not maintained any longer, since it can be functionally replaced.
Moreover, Cycore provides its new Cult 3D. The only two significant Netscape plug-ins or formats
not yet supported on Linux are thus VDOLive and ViVoActive77.

70

Naturally, this can be done from another application as well.

71

In later browsers, 4.xx, the list of actions taking arguments has been extended.

Each and every one of the Netscape X resources is listed and exemplified in the Netscape.ad file. This text file is for
instance on 2.02 sized at 147 KB, on 3.04 at 220 KB and on 4.xx at 560 KB, which says much about the detail granularity.

72

73

The splash-screen is seen only in the later, 4.xx, versions.

74

In the upper right Netscape window corner.

This should be possible to solve by binary hex editing (if legal), but in our application it wouldnt be necessary since we
would only use the content-showing part of the browser window. The rest would be hidden/disabled and handled by the
GUI container application, controlling the browser remotely.
75

76

Approximately 350 KB, compiled dynamically. It uses only essential X libraries.

Rather, we are not aware of any compatible plug-ins. In the Linux world, quite a lot of open-source clones of popular
software from another platforms are produced, which might also happen in this case.
77

~ 29 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

7.3.2.1.

How plug-ins work

Unlike helper applications that are ran externally, the plug-ins [16] and their content can be
integrated in the browser window. Plug-ins using streaming formats share access to the MIME
file content as it is downloaded, while helper applications are started after the download.
Technically, plug-ins are shared object libraries, dynamically loaded by the browser and
interfaced to the Netscape Plug-in API. However, the browser also initiates and attempts to start
all the available plug-in libraries in the order found, when it is started. After the browser is
executed and running, the plug-ins are not accessed again until the browser encounters the
MIME-type for which a certain plug-in is registered. In case the same plug-in is needed
embedded in more than one spot of the viewed HTML page, alternatively in more than one
window, additional plug-in instances are created. The plug-ins usually utilize an additional
process, which is the more robust alternative, since if the plug-in process crashes, the browser
processes can normally remain intact. Netscapes LiveConnect is used for the communication
between the plug-in and JavaScript, via Java.
Taking advantage of this structure, Plugger is able to show content originally created by external
viewers, embedded within the page. As another example, Acrobat Reader also provides a binary
plug-in library for inline viewing of PDF documents. The plug-in itself is registered with the
browser, and in turn runs the Reader when needed. However, the original Acrobat Reader is
quite large78, which is why one might prefer modifying the open-source Plugger to work together
with e.g. xpdf, which would be a much smaller solution79.

7.4. CONCLUSIONS
Netscapes currently available browsers are a feasible solution. The older and smaller releases,
such as v2.x and v3.x, have all the major features of their successor and might therefore be a
reasonable choice for implementing on a low-end WebPAD-like platform. Among these two, the
3.04 would be the most natural consumer solution due to its features, robustness and slightly
larger size. In such a case, a libc5 Linux should be used, whenever possible, to optimize for size.
The latter 4.xx browsers are quite big, and if implemented commercially would be justified by e.g.
CSS and other extensions. If running a glibc2 Linux platform is not so important, both 4.08 and
4.61 can be used, for a smaller total size of the system. However, if the application draws upon
glibc2 (as the current and future standard), only 4.6x is available.
Mozilla, when stable, will most certainly provide the best solution, which is also why one should
start working on downsizing it in time.80 Linux is, besides potentially Win32, the right platform
for it. Naturally, as we already noted, only glibc2 is applicable.

78

The files essential for running the recent Acrobat Reader 4.0, for instance, surpass 7 MB.

However, by the design premises we wouldnt necessarily have to do this, since we can control the PDF helper
application from the container application. Additionally, PDF documents are shown in full-view mode, not embedded
within the page, which makes this approach possible.
79

Mozilla can now, as of late October 1999, be seen as close enough for separate, specific studies and tests, although
with the release we tested it was still a bit early for that. Note: QNX and Neutrino are not on Mozillas list of successful
builds so far.
80

~ 30 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

Almost all plug-ins and helper applications are available for Linux, and in most cases one has
several alternatives to choose from. However, this support is still quite far from the market
support for Win3281, although improving in a very fast pace.

81

For instance, browser support for OLE/ActiveX is not available on Linux.

~ 31 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

8. PERSONAL ACCESS DEVICES


With the known trends leading towards cheap, mobile devices, the WebPAD concept is at this
stage only gaining momentum. Although it yet remains to be seen how successful some of its
announced commercial ancestors will be in the market, it is beyond any doubt that the concept
itself will remain a source of additional applications. Panel PCs are already developing in the
same direction82. An overview of the tracking/location technology is given in Appendix C:
Location Tracking, which could be used as an extension to the basic concept, in the corporate use
of portable devices of this kind.
As an interesting fact, we can also note that NSC has announced cooperation with Lernout &
Hauspie, aiming to provide a speech recognition interface for the future information appliances
based on NSC components. In some near future one can thereby expect to see WebPAD-like
devices to which the user would hence pronounce the URLs and commands, without a need for
even the soft keypad.
In the beginning of this paper, the reader was presented with the WebPAD concept in its original
form. However, lately some comparable demos have been presented independently, based on the
same general idea, which is why they also will be overviewed here. Qubit is just one of the
products very similar to the WebPAD responding to the previous description. On the other hand,
the RSC WebPAD is based on the NSC original concept and architecture. The major differences
among them will be emphasized.

8.1. RSC WEBPAD


RSC, a relatively small Swedish company, is one of the first companies who responded to the
WebPAD concept and adapted it. The company is characterized by their previous cooperation
with National, mainly in the terms of providing various DECT solutions based on Nationals
components. Therefore, it is not strange that RSC chose DECT as their first choice83 for the RF
communication between the tablet and the gateway, promising a 300-meter range. Due to
different DECT standard postulates in e.g. Europe and the U.S.A., two versions are planned: one
using the 1.8 GHz band and the other operating in the 2.4 GHz band, the latter mainly intended
for sale outside Europe. By incorporating DECT instead of Wireless LAN the device would
presumably be made significantly cheaper.
In light of the original WebPAD concept and further, smaller alterations made, it was announced
that RSC WebPAD will also differ slightly by utilizing a Hitachi DSTN screen. The flash amount
to be used is still 8-16 MB, containing QNX. The QNX implementation however would be
updated via the Internet. LiIon batteries will insure a minimum lifetime of 2 hours and charge
time of 3 hours.

82

Advantech (http://www.advantech.com.tw/) has, for instance, presented a PAD-like device, with a built-in camera.

83

This information is based on the RSC public announcements, which however do not exclude Wireless LAN.

~ 32 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

8.2. QUBIT
After NSC presented the first WebPAD, a recent start-up Qubit Technologies introduced a demo of
their flagship product, Qubit, and announced sales to start by Christmas 1999. Although NSC is
not involved in this project, Qubit is in a number of ways very similar to the WebPAD and
comprises the latters general and detailed functionality to a high extent. For example, even
Qubits hardware designers chose to use the x86 platform84, 10.4 touch screen, Wireless LAN,
flash storage etc. The cradle is designed in such a manner, and has the functionality as described
for the WebPAD. Also noticeable is the greatly similar physical design of the unit.

Figure 8-1. The Qubit system (With permission of Qubit Technologies)


Qubit is meant to be an Internet appliance, specifically personal access device, for the home user.
However, going beyond the resemblance, there are certain differences we will discuss further in
this text, which is why we are taking it up as an interesting case. The main distinction is namely
the fact that its designers chose an embedded Windows variant as the operating system.
Naturally, it is based on the Windows 32-bit API, thereby facilitating software development and
ensuring recycling of the knowledge and experience this software platform signifies.

8.2.1.

Outstanding features

As noted, Qubits embedded software is based around the Windows 32-bit API. However, it is
not stated whether the implemented operating system is a derivative of Embedded NT or Windows
CE85. The browser used is probably a derivative of Internet Explorer. According to their
documentation, this browser implementation is intended to be Java-enabled from the very start of
the product introduction.
On the other hand, the application software announced to run on this handy device includes:

84

However, the microprocessor used seems to be Intel Pentium MMX, not NSC Geode.

According to Lindy Holt, Qubits press contact, the operating system has been developed in cooperation with
Microsoft. Exactly how Microsoft is involved in this project is not revealed.
85

~ 33 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

Browser, naturally.

The publicly available documentation does not say much on this issue,
although one should consider the browser and its quality (including
the standards it complies with), as the most important single feature of
a device essentially intended for web browsing.
However, the released information includes mention of a portal86, so
the browser could be expected to even support use of channels/push or
similar techniques when released.

Separate e-mail client.

The documentation implies that there is a stand-alone client, meaning


that the designers didnt follow the same idea as the creators of the
WebPAD, that offers strictly web-based e-mail services (e.g. Hotmail,
Yahoo mail, etc.). This in turn leads to the question of how the mail
folders are stored, since this device also uses a flash storage solution. If
the mail is stored exclusively on the mail server, it is questionable if a
stand-alone e-mail client introduces enough of additional functionality
to justify its use and the flash it takes up. However, it would
nevertheless allow off-line e-mail browsing and writing.

Financial software.

The information regarding this feature is quite unclear. However, one


might expect a simplified version of Excel, as Windows CE has one.

Simple word processor.

As in the previous case, a Windows CE-like implementation of Word


might be expected.

Calendar and address book. A simpler calendar or even Pocket Outlook might be included.

8.2.2.

Conclusion

It is quite obvious that Qubit could, and probably should, evolve into a device used for much
more than essential surfing on the Internet. However, one can argue whether the direction
announced to be taken is the most appropriate one. The Qubit with a keyboard and a suit of
Pocket Office software, used solely in home environment would be more of a poor mans desktop
PC but only by the quality of features included, which would hardly conform to its price. The
price point planned is about $500, that if accomplished, already is near the price points of cheaper
PCs and cheaper notebooks. With this weak differentiation customers might select PCs as the
more obvious choice.
However, it is important to note that Qubit retains the potential to extend their product easily87,
which cannot be accomplished as painlessly in the NSC WebPAD case when using QNX.

Qubits CEO David Armitage says that, when they presented the Qubit for Yahoo portals chairman and chief executive,
he was thrilled by the thought of what magnitude increase in traffic devices like this could mean, jumping up and
down of excitement.
86

Only several days before the deadline set for this report, Qubit representatives stated in personal communication with
the author that they have switched to using Linux in combination with Mozilla instead of the planned Win32 platform,
thus indirectly proving the points stated in this report.
87

~ 34 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

9. IMPLEMENTATION AND RESULTS


In this chapter we will describe only the essential properties of the initial design approach, some
of the questions raised, as well as the conclusions made upon testing.
Finally, lacking better, proven methods in embedded Linux system design, we will present an
intuitive method that one can use in order to optimize the size of the system, when it is in place,
based on some of the conclusions reached in the implementation phase of this project.

9.1. IMPLEMENTATION
9.1.1.

Evaluated micro-distributions

For the purposes of this project, a free micro-distribution was to be used as a starting point for
further system development and evaluation. We have evaluated and most often tested a number
of free micro-distributions of Linux currently available. Some of the key features of these
distributions are established in the table below, Table 1.

Distribution
DLX [8]
Embeddable
Linux
Kernel
Subset (ELKS)
[9]
Linux
Project
[23]

Router
(LRP)

Kernel version

Networking
support

X windows

Comment

1.3.89

Yes, Ethernet

No

Additional Iomega ZIP


drive support

Original ELKS,
v0.0.67

No

No

Originally developed for


8086 & 80286 legacy
architectures, which are
not supported by the
mainstream Linux kernel.
Intended for use on
routers. Fully featured
router software on a
single floppy disk, with
extremely
modest
requirements on common
PC-style hardware.

2.x.x

Strong

No

hal91 [33]

Unknown

No

No

Based on the storage-wise


smaller, libc5, standard
libraries.

Xdenu [45]

Unknown

Yes

Yes, Xfree86

VGA16 (16 colors) Xserver included. Primarily


to be used for clients
booted via network by
downloading
the
OS
image.

~ 35 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

MuLinux [29]

Unknown

Yes

Tomsrtbt [46]

2.0.36

Yes, some
Ethernet

Trinux [47]

2.0.36

Yes

No

2.0.36

Yes

Yes, Xfree86
3.3.3, SVGA
server

Most up-to-date, uses


glibc2 libraries. Used as
the staring point in the
implementation part of
this thesis.

on
a
(LOAF)

2.0.36

Yes

No

Primarily intended as an
extensible rescue system.

Small Linux [40]

1.2.11

Yes

No

Linux Embedded
(LEM) 0.31[17]

Linux
floppy
[24]

No

Strong networking

Table 1. A comparison of Linux micro distributions


As outlined by the table above, most of the current, freely available and small, Linux
distributions often used in embedded systems do not have any X Windows support.
Some of the distributions also use and are based upon obsolete or for our purpose inadequate
kernel and library versions. On the other hand the newer, 2.x.x kernels fully support a modular
approach to device drivers, as well as Advanced Power Management (APM). Kernel version 2.2.x
also fully allows for modules to be automatically loaded when and if needed, and the APM
features, among other things, have been further improved and extended. Furthermore, since we
should use newer PCMCIA [22] & wireless LAN [14], [20], [21] drivers, we need kernels 2.0.x and
upward.
The micro distributions that could be used most efficiently were LEM 0.31, conveniently based on
glibc2, and alternatively Xdenu. The closest to our needs was LEM, which is why it was chosen
for further examination. The LEM was swept clean and customized. Unfortunately, the library
support had to be entirely rebuilt during the project, after quite a lot of troubleshooting. In
addition, it was upgraded to glibc2.1. Otherwise, LEM has proven to be a very good starting
point, although there is room for documentation improvements.
The above mentioned libraries were stripped of debugging symbols with strip88, in order to
reduce their size. In the case of libraries we needed, we saved approximately almost 2 MB this
way. The same was done for executables, wherever possible.
In different stages, tested browsers were added together with required additional libraries. Since
the browsers are based on three different library standards (libc4, libc5 and glibc2) and thus both
of the binary formats (a.out and ELF), our platform had to be extended specifically for each of
them. In parallel, PCMCIA and Wireless LAN89 support has been added and principally tested.
The kernels used were mostly of the 2.2.x family. This platform is what we will from now refer to
as Wanderer.

88

Alternatively one can use objcopy.

89

Wireless LAN could not be tested due to platform and hardware unavailability and time constraints.

~ 36 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

9.1.2.

Hardware used

The initial evaluation and testing phase of the project was conducted on a MediaGX-based
desktop computer, so that at least the essential functionality and device drivers needed by
WebPAD could be identified and verified. Furthermore, in order to be able to test PCMCIArelated functionality, a Dell laptop computer90 had to be used at times.
In order to test and realize a working and task-appropriate Linux set-up, two partitions were
created initially, on two IDE hard disks. A larger one contained an ordinary Linux distribution,
including WebPAD specific device drivers found and other software. The second partition
containing the Wanderer acted as the WebPADs storage space and was smaller, about 100 MB91.
Both were naturally made bootable, Linux native partitions. The file system chosen was ext2fs
since it is a proven stable Linux file system type. Additionally a third, swap partition was created,
used by both the development system and the developed platform, when needed.

9.1.3.

Required libraries and binary format

As we mentioned previously, libc4 and libc5 applications running on a glibc2 platform require
additional set of shared libraries, but precompiled for these standards. Thus, e.g. Navigator 3.04
requires the entire additional set of X libraries, which is all but efficient.
Let us see what some of the most important system components require, in order to use some of
this information later, when analyzing the system size. The reader will notice that we marked
some lines with (SL), (XS), (L2), (XS3), (SL3) and (L4), which will be explained later.
In order to determine what shared libraries an executable92 requires, ldd93 command is used. To
get more information on its binary format and such, the file command can be issued on it. That
way, we get the following results on some interesting executables94:
(a) The X server, XF86_SVGA (glibc2), requires the following shared libraries:
libm.so.6 - /lib/libm.so.6

(SL)

libdl.so.2 - /lib/libdl.so.2

(SL)

libc.so.6 - /lib/libc.so.6

(SL)

/lib/ld-linux.so.2 - /lib/ld-linux.so.2

(SL)

If we did not know that by now, we could determine by this output that the X server is based on
glibc2 libraries, and is thus in ELF format. This and much more we could also find out by running
a file XF86_SVGA command line, which returns the following: XF86_SVGA: ELF 32-

Note that the laptop used had a Pentium Celeron CPU, which shouldnt imply any compatibility problems. However,
the tested Intel i82365-compatible PCMCIA controller was produced by Texas Instruments, and not NSC.
90

91

Naturally, the WebPADs storage was assumed smaller than 100 MB at run-time, but it made development easier.

92

A specific shared library file can be a target to determine what other libraries it uses, of course.

93 The reader should be aware of the fact that ldd is not always to be believed. If the system, for example doesnt have
a.out support, running it on some dynamically linked a.out binaries, such as Navigator 2.04, would return false results,
stating it is linked statically. In addition, on a SuSE development system it claimed that Navigator 3.04 would use X glibc2
libraries. Trying to figure out how this was possible and testing possible reasons since strace would just crash, naturally
proved to be a waste of time caused by a bug in ldd in conjunction with a bug in SuSE installer.
94

The actual results, especially in terms of paths, may vary on different systems.

~ 37 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

bit LSB executable, Intel 80386, version 1, dynamically linked (uses


shared libs), stripped. Hence, the X server is stripped and optimized for 386
architecture95.
(b) xinit (glibc2, dynamically linked)96, gives us the following;
libXmu.so.6 - /usr/X11R6/lib/libXmu.so.6

(XS)

libXt.so.6 - /usr/X11R6/lib/libXt.so.6

(XS)

libSM.so.6 - /usr/X11R6/lib/libSM.so.6

(XS)

libICE.so.6 - /usr/X11R6/lib/libICE.so.6

(XS)

libXext.so.6 - /usr/X11R6/lib/libXext.so.6

(XS)

libX11.so.6 - /usr/X11R6/lib/libX11.so.6

(XS)

libc.so.6 - /lib/libc.so.6

(SL)

/lib/ld-linux.so.2 - /lib/ld-linux.so.2

(SL)

(c) Let us address some of the browsers executables. The a.out Netscape 2.02 would thus
require the following two a.out libraries:
libc.so.4.7.2 - \usr\i486-linuxaout\lib\libc.so.4.7.2

(L2)

libm.so.4.6.27 - \usr\i486-linuxaout\lib\libm.so.4.6.27

(L2)

(d) If we ran ldd on e.g. Netscape Navigator 3.04 executable, the following libraries would be
listed:
libXt.so.6 - /usr/i486-linux-libc5/lib/libXt.so.6

(XS3)

libSM.so.6 - /usr/i486-linux-libc5/lib/libSM.so.6

(XS3)

libICE.so.6 - /usr/i486-linux-libc5/lib/libICE.so.6

(XS3)

libXmu.so.6 - /usr/i486-linux-libc5/lib/libXmu.so.6

(XS3)

libXpm.so.4 - /usr/i486-linux-libc5/lib/libXpm.so.4

(XS3)

libXext.so.6 - /usr/i486-linux-libc5/lib/libXext.so.6

(XS3)

libX11.so.6 - /usr/i486-linux-libc5/lib/libX11.so.6

(XS3)

libdl.so.1 - /lib/libdl.so.1

(SL)

libc.so.5 - /usr/i486-linux-libc5/lib/libc.so.5

(SL3)

(e) In case of Navigator e.g. Netscape Navigator 4.61 (ELF, glibc2), ldd would normally output
correct results. Hence, we would see that the following libraries are needed for its execution,
and where they are located:

95

Rather, it is not speed-optimized at all.

96

startx is linked statically, which is why we do not regard it here.

~ 38 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

libBrokenLocale.so.1 - /lib/libBrokenLocale.so.1

(SL)

libXt.so.6 - /usr/X11R6/lib/libXt.so.6

(XS)

libSM.so.6 - /usr/X11R6/lib/libSM.so.6

(XS)

libICE.so.6 - /usr/X11R6/lib/libICE.so.6

(XS)

libXmu.so.6 - /usr/X11R6/lib/libXmu.so.6

(XS)

libXpm.so.4 - /usr/X11R6/lib/libXpm.so.4

(L4)

libXext.so.6 - /usr/X11R6/lib/libXext.so.6

(XS)

libX11.so.6 - /usr/X11R6/lib/libX11.so.6

(XS)

libdl.so.2 - /lib/libdl.so.2

(SL)

libstdc++.so.2.8 - /usr/lib/ libstdc++.so.2.8

(L4)

libm.so.6 - /lib/libm.so.6

(SL)

libc.so.6 - /lib/libc.so.6

(SL)

/lib/ld-linux.so.2 - /lib/ld-linux.so.2

(SL)

Now, after these listings it is rather obvious that there are, naturally, a lot of commonly used
libraries. Let us now consider their sizes.

9.1.4.
9.1.4.1.

System size
Components

Let us go through library classes as we distinguished them:


SL

These belong to Wanderers glibc2 group of system libraries, a group that in


addition to the above listed standard C libraries includes several others, used by
other system executables placed in e.g. /bin, /sbin etc. This group also includes
currently available driver modules. In our system using glibc2.1, they are sized at
about 1.5 MB.

XS

With (XS) we denoted standard libraries that the glibc2 X needs, for X extensions
and such. On Wanderer they are about 1.35 MB in size.

L2

The only two a.out standard C libraries required by Navigator 2.02 are sized at
about 0.7 MB.

SL3 and XS3 Navigator 3.04 requires the standard C libc5 library (SL3, 0.55 MB), and libc5 X
libraries (XS3, 1.15 MB).
L4

libXpm.so.4, is one of two shared libraries needed only by glibc2 Navigator


4.x97 with size of 0.05 MB (~50 KB). However, libstdc++.so.2.8, the other shared

~ 39 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

library required by Navigator 4.xx98 is about 0.25 MB large. Thus, the size of (L4)
is 0.3 MB
Let us now consider the rest of the system, and denote it accordingly:
KM

Kernel used is 2.2.x. and with all the features needed it shouldnt surpass 0.45 MB,
including all the modules.

DT

Data files, located in /etc and /var, are in our system about 0.1 MB.

EB

Essential binaries, located in e.g. /bin, /usr, /bin and /sbin weigh currently
about 1.4 MB.

XB

X binaries; our X server, xinit and startx take a bit less than 3 MB.

Now, let us take a look at the browsers themselves:


N2

Navigator 2.02: the executable takes 3.8 MB, while the Java classes are 0.75 MB.
Thus the component (N2) takes 4.55 MB.

N3

Navigator 3.04: the browser is at 4.3 MB and the Java takes up another 0.7 MB.
Summed up, (N3) is 5.0 MB in size.

N4

Navigator 4.61, glibc2 version: The executable takes 7.1 MB, as the essential Jarfiles99 and libTrueDoc.so take about 4.0 MB. Hence, (N4) ends up at 11.1 MB100.

Finally, let us make a reasonable assumption that the container application, soft keypad and
touch-screen driver should not be larger than 0.7 MB when written. Separately the container
application (CA) is assumed to be 0.4 MB, soft keypad (SK) 0.2 MB and touch-screen software
(TS) 0.1 MB. In addition, we are not considering smaller files like several fonts, console maps, etc,
whose size is insignificant101.

9.1.4.2.

System variants

Let us now see what we need to run the following browsers on our glibc2.1 Wanderer platform,
without any compression introduced:
Navigator 2.02 (System2): SL + XS + L2 + KM + DT + EB + XB + N2 + CA + SK + TS. Thus, it
simply becomes:
|System2|= (1.5 + 1.35 + 0.7 + 0.45 + 0.1 + 1.4 + 3 + 4.55 + 0.4 + 0.2 + 0.1) MB = 13.75 MB
Similarly:
Navigator 3.04 (System3): SL + XS + XS3 + SL3 + KM + DT + EB + XB + N3 + CA + SK + TS.
Hence,

However, it will probably be needed by the container application and the soft key-pad, if these are to be compiled
dynamically.
97

98

Since Mozilla is also written partly in C++, it requires it as well. Interestingly, its size non-stripped is whole 1.1 MB.

99

We are assuming safe Java minimization. As we noted before, it could be cut down further.

100

We are advisedly leaving libnullplugin.so (~0.75 MB) out, while other alternatives are described previously.

101

Their file size is up to 8 KB.

~ 40 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

|System3|= (1.5 + 1.35 + 1.15 + 0.55 + 0.45 + 0.1 + 1.4 + 3 + 5 + 0.4 + 0.2 + 0.1) MB = 15.2 MB
Now, let us consider the Wanderer system size with Navigator 4.61:
Navigator 4.61 (System4): SL + XS + L4 + KM + DT + EB + XB + N4 + CA + SK + TS. Finally,
|System4|= (1.5 + 1.35 + 0.3 + 0.45 + 0.1 + 1.4 + 3 + 11.1 + 0.4 + 0.2 + 0.1 ) MB = 19.9 MB

9.1.4.3.

Discussion

Currently, Wanderer is not yet entirely cleansed and optimized, so there is still room for further
savings. For instance, the small binaries (EB) include several that the run-time system wouldnt
necessarily require, such as the almost 100-KB telnet and the 270-KB fsck.ext2, for instance.
Thus, it could easily be made smaller by about 0.5 MB
As we saw in the previous section, |System2|could be reduced by at least 0.7 MB, if the platform
was based around a.out. Additional savings, made possible by the fact that libc4 executables and
libraries generally are much smaller, would be substantial. However, due to the X server version
dependency characterizing our system, this almost certainly would not be technically possible.
Running it on a libc5 platform, on the other hand, would enable some additional size reductions.
The libc5 downsizing described above would be even more significant in the case of |System3|,
since doubling of shared libraries obviously wouldnt be needed. Thus, we would save at least102
1.35 MB (XS) and additional 0.7 MB, represented by the difference in size between libc.so.6
and libc.so.6 on one, and libc.so.5 and libc.so.5 on the other side. The further cuts, in
e.g. X and essential executables, would presumably be rather large as well, while we would still
be able to run our system. This is why one can strongly advise creating a similar libc5 platform in
case of Navigator 3.04, or even libc5 Navigator 4.xx, as the preferred solution.
However, as we saw previously, glibc2 has a number of upsides. One of them would be the
opportunity to run Mozilla, as all other applications can be expected to move over to only
supporting glibc2 and higher in the near future.

9.2. SYSTEM DESIGN


9.2.1.

Scope

In the implementation phase of this evaluation project, the Wanderer platform has also been used
in conjunction with the development platforms for testing separate system components and
learning what the final system should look like. Some conclusions are here to be used for
description of the purposed system design. The container application and the soft keypad
application are to be written at a later phase. However, some design issues raised by them are to
be described.
In addition, the proposed system designs, utilizing different options open by the Linux boot
process and the system task execution are to be implemented at a later stage, if found
appropriate. This cannot yet be done since the system is not complete. Moreover, the method
explained in the proposed system design can be used advised even if the system premises are
changed.

102

In addition, it would significantly reduce the amount of RAM and other resources needed.

~ 41 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

9.2.2.

Introduction

One of the most important questions posed in the problem and method description is How
much space does Linux take?. We have already considered the size of totally uncompressed
Wanderer variants. After reading the implementation part of this report, and considering boot
and compression alternatives, we see that it is not only a matter of how much space it takes, but
rather there are additional issues, such as if it should run from flash or RAM, compressed or not.
Therefore, the following analysis is needed in order to outline the size, cost and performance
issues. For this, we need a methodical approach to create the tools needed to answer What ifkind of questions: i.e. an algorithm and a set of formulas.

9.2.3.

Run-time tasks

Let us firstly take a general look at a run-time Linux WebPAD from the task viewpoint, and
gradually introduce more information. Upon the initial system boot described previously, the
system would essentially do the following:

Start apmd. Start needed pcmcia services, initialize the Wireless LAN card, set up the
network connection with the gateway, load critical driver modules.

Start X

Start the browser

Start the container application

Now the system is up and running. The user can then, at random points of time, do the
following:

Start the soft keypad (in order. to e.g. enter the URL or fill in a form)

Surf to a page that uses Java (thus VM looks for the classes) or a plug-in, viewer/player, thus
starting any of them.

From these listings, it is crucial to note and emphasize two properties of these system tasks, for
now:
i.

They are initiated at different points of time

ii.

These points of time can be either specified, or are user-determined thus


random

iii.

They have different life-times

iv.

The frequency is different, here seen as once or several times

Let us now describe the above tasks, with these properties on mind, introducing resources they
need:

apmd, pcmcia, essential drivers and such: initiated only once, at boot time. The resources
needed are the configuration files, in the /etc directory. The shared libraries should be in
place.

~ 42 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

Starting X is done only once, upon booting. After that, the X server is of course running until
the system is shut down. The needed resources are also configuration files stored in /etc.
xinit needs X application libraries to be available at this time, the X server needs the
standard libraries.

Starting the browser is also done only once, after X has been started. The needed resources
are the Java classes. Naturally, the latter is only true if we assume that the user is free to
choose his start page on the web, and that this page uses Java. Additionally, some
configuration files and shared libraries should be in place.

The container application is started once, either before or after the browser. The potential
libraries are at this time in place.

The soft keypad can, by design, be executed either once and shown when required, or
executed every time when needed.

9.2.4.

Introducing compression

As we saw in section 6.4 Boot and compression on page 20, the most common and straight forward
manner in which compression is used is to simply decompress a compressed filesystem image(s)
into one or more RAM disks created for this purposes, at boot time. However, this method
demands a large amount of the available RAM to remain reserved for instances of the
decompressed software throughout the system uptime. More precisely, the amount of RAM
memory to be reserved for the RAM disk would be equal to the size of the uncompressed system.
On the other hand, we would naturally save an amount of flash that equals the product of the
achieved compression ratio and the size of the uncompressed system. We will denote this
procedure as straight-forward in the text and formulas below.
In the previous section we took a look at the run-time tasks of our system. There, it is essential to
note the following:

The largest system executables (the minimal X Windows support, the browser and its
supporting libraries and the container application) are ran only once. This means that in case
we used the above-mentioned method of RAM disk decompression, they would just take up
a significant piece of it upon execution.

These binaries are executed sequentially, in a predefined and known order. This in turn
results in the fact that not the entire potential RAM disk would be accessed or needed at any
given point of time.

For the above reasons combined, the method would involve a waste of a significant amount of
memory. Let us therefore consider and deduce a much better alternative method that we could
use in a system like Wanderer.
Namely, we can take an approach supported by e.g. gzexe/bzexe. Instead of mounting a RAM
disk of the same size as the entire uncompressed system, we could mount a smaller such in which
we would then uncompress and run executables sequentially. I.e. we would at first use it to
uncompress and thereafter execute the X Windows System103, delete it and then move on to
following the same procedure on the browser and other components.

At this stage, excluding the X libraries. These would be needed later as well, as long as the X applications requiring
them could be executed.
103

~ 43 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

Let us denote executables of this kind and their required libraries, configuration files, etc as E1, E2,
, En. Formally, then it means that additional memory sizes of this partial RAM disk utilization
method (further denoted as partial) and the previous, straight-forward method compare as
follows:
|Apartial| = max (|E1|, |E2|, , |En|), as opposed to
n

|Astraight-forward| =

|E |
i

i =1

What is as important as this signifying save of memory, is the fact that when En is executed, we
can reuse this additional memory. For instance, unmounting the RAM disk and reallocating
space to the system (so that the memory can be used in case the user e.g. surfs to a site utilizing a
large number of pictures or resource demanding Java applets) is one of the alternatives. One
could also, in an advisedly unusual manner, use it as a swap partition. Finally and most
importantly, one could use it as the browser cache.
As we saw previously, one wouldnt normally use the flash for browser cache purposes.
However, we could in the above described fashion reuse the RAM memory needed for the
temporary RAM disk as means of browser cache, thus at least eliminating the need for pages to
be downloaded repeatedly even during the same session. Additionally, once per session (as a
part of the shutdown process), the newly created cache stored here could update a flash partition
used for browser cache. Thus, we would avoid all the troubles related to this very important
problem caused by the usage of flash memory, since the flash would for this purpose be written
only once per session, which is acceptable. The RAM instance of the browser cache would be the
one updated most frequently, which doesnt cause any side effects beside, in the worst case,
potential loss of single-session browser cache update104.

9.2.5.

Size of compressed systems

We calculated and listed the sizes of uncompressed systems in section 9.1.4.2 System variants. Let
us see what it would essentially mean if we used the above-described straight-forward method.
Naturally, the compressed system size would be:
|Systemc|= (1-c) * |System4|, where c is the achieved compression ratio.
Assuming c=0.55105, we get the following:
|Systemc2|= 0.45 * 13.75 MB = 6.19 MB;

|Astraight-forward2| =13.75 MB

|Systemc3|= 0.45 * 15.2 MB = 6.84 MB;

|Astraight-forward3| =15.2 MB

|Systemc4|= 0.45 * 19.9 MB = 8.96 MB;

|Astraight-forward4| =19.9 MB

Let us now consider applying the partial method on the largest system components106, as
denoted in 9.1.4.1 Components.

104

This would happen if e.g. the user detached the batteries during the session instead of shutting the system off.

Naturally, the compression ratio varies depending on the algorithm/tool used and the content. However, this is
reasonable assumption used only for purposes of comparison on all system variants.
105

We could extend and refine it to a number of other smaller, components, but for reasons of simplicity we will
concentrate only on the largest here.
106

~ 44 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

In case of Systemp2 we will here consider compressing XB (3 MB), CA (0.5 MB) and the browser
executable107 in N2 (3.8 MB). The difference between the total system size and the size of the
sequentially executed largest binaries is thus:
|Diff2|= |System2| - |Seq2|= (13.75 7.3) MB = 6.45 MB
|Apartial2| is thus 3.8 MB as the browser executable is larger, , while the size of the system part
compressed using this method becomes:
|Seqp2|= (0.45 * 7.3) = 3.28 MB
Hence, if we leave Diff2 decompressed108, we get the following total size of the compressed
system:
|Systemp2|= |Diff2| + |Seqp2|= (6.45 + 3.28) MB = 9.73 MB
Similarly, in the case of Systemp3, compressing XB (3 MB), CA (0.5 MB) and the browser binaries
in N3 (4.3 MB) we have:
|Diff3|= 7.4 MB;

|Apartial3|= 4.3 MB

|Seqp3|= 3.51 MB:

|Systemp3|= 10.91 MB

Finally, if we do the same with XB (3 MB), CA (0.5 MB) and the N4 browser (7.1 MB) in Systemp4
we get the following:
|Diff4|= 9.3 MB;

|Apartial4|= 7.1 MB

|Seqp4|= 4.77 MB:

|Systemp4|= 14.07 MB

From the above results, it is obvious that we could thus fit Systemp2 and Systemp3 into a 12 MB
and Systemp2 into a 16 MB flash disk, at the cost of a quite small amount of RAM memory, and
somewhat delayed boot.
Let us now take data for DiskOnChip, as the most interesting storage solution in systems
designed for manufacturing, and exchange the absolute prices given in Appendix B: Storing the
Embedded with various comparison factors, as denoted in Table 1. Hence, 8 MB DOC has factor 1.

M-Systems
DOC 2000

8 MB

12 MB

16 MB

20 MB

24 MB

32 MB

40 MB

48 MB

64 MB

1.59

1.68

N/A

2.33

2.94

3.76

4.39

N/A

Table 2. DiskOnChip price factors


In order to make the differences even more visible, let us now compile the examined variants and
their respective costs in the following Table 3.

107

The java classes (0.7m MB) are needed throughout its execution. Also, they are already compressed.

Besides adding some binaries to the group of sequentially executed and thus compressed ones, we could in addition
compress it using the straight-forward method reducing the system size further.
108

~ 45 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

Total size (MB)

Flash size (MB)

Flash price factor

Additional RAM
(MB)109

System2

13.75

16

1.68

System3

15.2

16

1.68

System4

19.9

24110

2.33

Systemc2

6.19

13.75

Systemc3

6.84

15.2

Systemc4

8.96

12

1.59

19.9

Systemp2

9.73

12

1.59

3.8

Systemp3

10.91

12

1.59

4.3

Systemp4

14.07

16

1.68

7.1

Table 3. System variant sizes and their respective costs

9.2.6.

Conclusion

Compression would significantly reduce the size of the flash needed, but increase the required
RAM. However, the partial method can be seen as the most appropriate one, since it minimizes
both the flash and the RAM requirements, while allowing the memory to be reused.
In addition, the different in flash price factors between e.g. Systemc4 and Systemp4 is very small,
while the latter would take up much less RAM.

109

Excluding the system memory required by the decompression tools for their proper execution.

20 MB DiskOnChip is currently not available, but other flash solutions are. Using any of the latter, it would naturally
suffice with 20 MB.
110

~ 46 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

10. CONCLUSIONS
10.1. INTRODUCTION
The reader has now been given enough relevant information on the subject and related issues. In
this chapter we will answer the questions posed previously. We will start with embedded Linux
in general, in order to move on to the more specific case of WebPAD-class personal access
devices.
Finally, we will consider and propose a couple of concept ideas initiated and supported by the
description of Linux and the WebPAD given previously in this text. They might provide for some
additional business opportunities for OEMs of WebPAD-like devices, assuming that these are
based on a Linux platform111. In both cases, the keyword is expandability that, if neglected, could
also present a serious threat for a WebPAD-based venture.

10.2. EMBEDDED LINUX


Linux is unconditionally a modern operating system, resting on solid grounds of its UNIX
ancestry. Deploying Linux certainly does provide great freedom in terms of both software now
available and extensive set of standards supported, as well as the new software and features to
come. It is stable, robust and quite scalable. Let us consider the major fears of embedded Linux
for a moment, namely support and system size.

10.2.1.

Support

Since Linux is most often provided as-is, the commercial support of the operating system itself is
not yet as developed as in the case of some other OSes. However, this is also an exploding market
in which the support issues are recognized as an obstacle, in turn opening business opportunities
for many who will pursue them. Therefore, all the major commercial distributors of Linux now
offer pre-paid support, joined by a number of consulting companies as well. The gold rush has
started.
In terms of support of embedded Linux in particular, a lot is changing for the better as well. This
development was very noticeable for a bystander even during the course of this relatively short
project. The companies like Synergy, Zentropix, Caldera-owned Lineo, IGEL and others will be
able to provide a crucial support throughout the entire development cycle for the interested
parties. The number of independent, qualified Linux developers is already very high and rising
with Linux acceptance itself.
When it comes to support of competing products, some results are also already manifested. For
instance, the situation regarding generic PC-like device drivers can heretofore be described as
generally better than with other classically embedded solutions like QNX, and comparable for
established classically embedded devices. If a specific open source driver or such is not
sufficiently supported or featured to even be considered, one naturally reserves the alternative to

Actually, these concept ideas to be described do not necessarily require Linux. Yet, their actual execution would be
greatly favored by the structure of Linux.
111

~ 47 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

develop it from scratch on ones own, which in cases of other OSes quite often is the only
alternative. As importantly, when observing support tendencies among producers of such
devices, one comes to conclusion that time is certainly working for Linux.
In addition, the Linux community will continue to provide substantial free support through online services that can in most cases be at least compared with paid support on many commercial
operating systems and supplemental solutions. One is very likely to get several qualified answers
posed to one of the extensive number of on-line forums on Linux, which is not necessarily true
for most other, quite commonly overrated commercial support services.

10.2.2.

Size

Linux is not even close to being as small as some of the classic embedded alternatives, especially
if X Windows System and a modern browser are to be embedded. Compression, when
introduced, can significantly reduce this increase in storage, but it can, on the other hand,
degrade system performance. Though, speed optimizations supported by Linux can minimize the
induced performance losses to a somewhat more acceptable level. In these generic cases, if the
cost analysis show that introducing some more processing power and/or RAM, if needed, in
order to save flash is a good idea, Linux is certainly very likely to be the way to go.
Moreover, for many systems in which extendibility, time-to-market, development and
deployment costs can justify additional effort of this kind, it is an excellent alternative.

10.3. LINUX PADS


10.3.1.

Design issues

One of the main observations, whose importance only intensified during this project due to the
results of the research conducted, is that PADs design issues are, all in all, far from solely those
originating in classic embedded applications. These are only a few of PADs significant design
issues, a subset that PADs inherit by the obviously appropriate hardware design.
This is so principally because PADs are much more sensitive to changes within their application
area than a generic embedded application. They should thereby comply with these changes in a
radically different way, not by providing additional features prior to strengthening the essential
one, surfing.
The WebPAD should in the first place be seen with respect to its aims, as follows:

This is naturally how the potential user/customer would perceive the concept/product. It
would be bought for its functionality of Internet services utilization, not the hardware as
such.

WebPAD would be initially a single-function product. Although it could be easily extended


to cover additional applications, its main goal at this stage is to be used for surfing. Thus, it
should provide top-of-the-line practical implementation in terms of compliance with the
Internet technology that it bases its existence on. The customer, novice or not, would
certainly be discouraged by not being able to use services offered on the web by a device
solely intended for that, simply because the platform doesnt support them.

~ 48 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

The application of providing the Internet services for home users, notably very different
from design premises used in e.g. WAP, originates in the desktop world. This means that
standards created by this enormous market and affecting it have to be taken very seriously.

The standards and technologies involved are changing and improving at a fast pace.
Thereby the content format that WebPADs should present change gradually as a
consequence, leading to a threat of the non-extendible WebPADs becoming outdated
relatively quickly.

One should pose the following question: Is a PAD functionally more of a web browser with
accompanying hardware, or hardware with an accompanying application, a web browser? In this
authors humble opinion, if forced to pick one, it would definitely be the first alternative. Most
consumers expected to buy one would likely agree.
This is why the author is, at the end of the day, convinced that, for the concept to succeed at the
market, the software embedded shouldnt come from the classic embedded world, but from an
originally desktop environment. Yet, this chosen OS should be easily embeddable. The providers
of originally desktop solutions, in this case Netscape and now commercially strengthened Linux
community are almost forced to keep up with the pace of the web development or disappear. As
we saw earlier, the original technology providers are carrying out development of their products
for Linux mostly by themselves. Linux is becoming one of the most important target platforms.
There is no reason why one shouldnt take advantage of this fact, and implement provided Linux
solutions in the WebPAD-like products as well.

10.3.2.

Alternatives

On the other hand, QNX is forced to lead development for their own platform, seeking partners
among the original owners of the technology in question: Sun for Java, Real for Real Player,
Adobe for Acrobat viewer, but mostly they must develop them on their own, with the obvious
results. In these lines, a question should be posed: is a single company, QNX in this case, really
capable of delivering all the future plug-ins and following all the future standards, just in time?
Will they be able to do that, before the original technology developers deliver them for Linux?
QNX track record is in terms of providing solutions for their own platform is very poor, and
being essentially a company not present in the desktop market it is very likely that it will remain
that way. They simply do not have enough resources to cover both the embedded market, and
catch up with the traditionally desktop-utilized applications now entering the embedded world.
Even a company of Microsofts size and influence chose to test another approach to this emerging
market, by supplementing Windows CE with Embedded NT, which is profiled more like a
desktop system in terms of applications provided112.

10.3.3.

Conclusion

Linux certainly delivers viable solutions to the above listed design issues. It is embeddable,
although with rather high storage demands. The only rival alternative at this point, when
providing a good solutions for the design issues stated, might be Embedded NT with Internet
Explorer or Netscape, which is why it should be evaluated and tested as well.

112 In addition, Microsoft is said to be working on two upgrades for Windows CE to meet the current trends. One is Rapier,
more desktop-like, to be followed by Cedar, adding real-time support.

~ 49 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

10.4. OPPORTUNITY I: WEBPAD LITE BUNDLE FOR PC


OWNERS
The WebPAD, as initially proposed, would be primarily positioned towards the consumer
segment consisting of people who do not already own a PC hooked up to the Internet. However,
as those already owning such a desktop computer should by no means be excluded, one wonders
why not take it a step farther and open the road for a number of grades of network
computer/thin client implementation.
If a significant number of home consumers already have a PC and Internet connection, why
should one exclusively bundle the WebPAD tablet with a standalone base, to be used as a
gateway to the Internet? The alternative, using the customers PC instead of the standalone
base113, is naturally already implied by the original concept idea, as well as the fact that the first
WebPAD prototypes use a notebook as a gateway to the Internet. However, as the idea of
providing a standalone WebPAD bundle running Linux has already been discussed previously in
this text, let us consider a WebPAD Lite running Linux for a moment.

10.4.1.

Saving money

In such a case, the standalone base, including its radio interface114 as well as modem or other kind
of Internet connectivity, wouldnt be needed. Instead, one would only need a standard ISA
alternatively PCMCIA radio interface card for deployment in the customers computer and the
accompanying software. The savings induced this way would already lower the price of the
package quite significantly.
However, now we come to the most substantial saving: one wouldnt need a large flash storage in
the WebPAD Lite tablet. Instead, it would be enough to have a small EPROM115 where the Linux
kernel would be stored. Upon boot, the rest of the software would be loaded via the network
and loaded directly into the tablets memory, which is a quite common and utilized process in the
Linux/UNIX world. The tablets always-on116 feature would mean practically that this process
would have to be done only occasionally.

10.4.2.

Boosting functionality

Even the fact that the consumers computer is very likely to run Windows is not a decisive
obstacle. Let us consider two perspectives.

10.4.2.1.

Through the network server capability

The software package that the OEM would provide with the WebPAD Lite bundle, could include
loadlin, in turn loading the Linux kernel on the consumers PC directly from DOS/Windows. The

113

The concept thereby becomes WebPAD Lite, as a name chosen for this brief discussion suggests.

114

As shown previously, it can be a Wireless LAN or a DECT card.

EPROM, as a relatively cheap solution or very little flash would be used. One can also note that putting network boot
loader in the network cards EPROM socket has been proposed at W.A.S.T.E, and previously done in [7]. This would thus
eliminate the need for even a kernel on the tablet, if applicable. Alternatively, the BIOS should have netboot support.
115

In practice the tablet would not literally be always on, since e.g. discharged batteries could cause the WebPAD to shut
down.
116

~ 50 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

PC would then, in a for the consumer quite seamless fashion, briefly serve as a network server for
the WebPAD Lite tablet, until the image(s) (that would otherwise reside in flash) is/are
transferred. The WebPAD Lite tablet is thus loaded with the requisite software and is now
ready for use.
Alternatively, one could use a similar method for achieving different grades of its utilization. As
we saw before, not all the software would need to be transferred this way, but just chosen
partition(s). For example, the method could be restrictively used for transferring additional plugins only, while the tablet would contain the rest.

10.4.2.2.

Through X

One could even set up a distributed X window connection117 with the browser software actually
running on the consumers PC, thus decreasing the amount of flash in the tablet needed, but not
eliminating it. As a bonus, it would provide a work around for the dilemma of browser caching
on the tablet and storage issues related to it.
A solution of this kind would be a complementary variant and also make adding functionality
possible rather comfortably. For instance, the PC could through X also host other kinds of
software, such as a word processor, financial application etc, with the tablet only providing a
remote outlook to it.
Now that we described the alternatives as feasible already today, allow us the freedom to briefly
consider the impossible. In the near future, in advisedly quite resource-inefficient manner,
these additional applications wouldnt even have to be limited to those written for Linux, but one
could within this X suite run a free Windows emulator like e.g. wine118, in turn running standard
applications written for Windows! This currently shaky alternative is actually already quite
possible, however courageous it may sound. However, the altogether illogical option of running
Windows applications within Linux running an emulator, altogether running on an initially
Windows-powered PC119, would presumably require a high-end PC and involve quite a lot of
redundancy. Thus the logical alternative of running Windows on both the thin client and the
server would allow much cleaner and simpler implementation. This is an additional reason why
Embedded NT should be evaluated in terms of WebPAD, especially if additional applications are
to be run on the consumers PC.
In any of the Linux thin client solutions utilizing X by alternatives described above, the software
running on the PAD would thus be made very interchangeable on demand. The tablet itself
would subsequently be made even less sensitive to performance upgrade issues. In such a tradeoff, to more easily improve performance the consumer could upgrade his PC instead, which is
presumably an inevitable PC-related trend anyway.

10.4.3.

Conclusion

Naturally, any measure introducing a supplemental bundle in this fashion would severely
change the now advertised business models, but let us once again summarize the utmost
monetary saving thereby inaugurated:

X Windows System, as widely known, through its TCP/IP design principally allows for e.g. a client application
actually running on one computer to be shown and controlled from another, only running an X server, i.e. an X terminal.
117

Actually it is an additional layer providing Windows API, rather than an emulator. More info at
http://www.winehq.com/
118

119

As you recall, we have to assume that the consumer is running Windows on his home PC. For now.

~ 51 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

On the WebPAD (Lite): No need for large flash disk, some EPROM is sufficient.
On the gateway: an ordinary ISA/PCMCIA radio card instead of the entire standalone base
consisting of a radio interface, modem etc.
On both: Virtually free software, instead of paid licenses.
Moreover, it would allow for a number of implementations, although the most extreme X
alternative could be deemed as impracticable for current standards. However, the other is
business-wise and practically quite feasible, would be possible to implement from day one. As an
additional bonus, they would provide hardware expandability through the PC. Thus, for instance
a printer attached to the PC, seen as a network printer by the tablet, could be utilized without
losing tablet mobility and unnecessarily reducing it to a poor-performance desktop personal
computer.
Unlike bundles such as Apple Airport120, it doesnt premise that the customer already has a
laptop computer that she or he would like to enhance to cover even mobile productivity in
limited areas, it would work together with a much more common case, the consumers desktop
PC. Also, the WebPAD tablet would be considerably easier, while much more convenient, to use
for novice users than an enhanced laptop personal computer as in the previous case.
Summa summarum, introducing a PC bundle might be a beneficial method to test the market.
Costs and effort of developing the standalone base could thereby be postponed. And the window
of opportunity would remain widely open.

10.5. OPPORTUNITY II: PLUG-INS, LITERALLY SPEAKING


The WebPAD concept premises a sealed tablet to some extent. However, some extendibility
features are nevertheless left open, including a USB port, supplemental keyboard, printer etc. It is
quite effortless to successfully question that approach, since it only brings the concept closer to
the desktop PC market, rather than introducing a new approach. At the same time, due to the
limited storage issues, the software bundled and embedded, including potential plug-ins,
viewers and players will however have to be restrained at a certain point.
But why not have a CompactFlash II or functionally similar port, even if that in the worst case
meant removing the other interfaces121? One can argue that the user would be given too much
freedom, and that the WebPAD is meant to be a single-function device. However, leaving a port
open definitely wouldnt cause any confusion among users who do not wish to personalize their
WebPAD, or do not know how, while it would allow other users to provide their tablets with
additional functionality they may personally select. For instance, a news/media-oriented
consumer could buy a small CF II card containing e.g. Real Player, and the other consumers
would not necessarily be forced to pay for something they do not need. Similarly, a technically
oriented user would thereby be given the opportunity to purchase a card containing a good
Acrobat PDF viewer, a teenager could in the same fashion obtain a new on-line game etc. The
technical solution for this, assuming Linux, would be almost trivial and the WebPAD would
cheaply get in touch with a wide selection of consumer profiles.

120

A recently introduced mobile communications addendum kit for Apple iBook, based on wireless LAN.

Although there are no technical reasons for not equipping the tablet with both, in this hypothetical case one could be
forced to consider this in order to maintain a low cost.
121

~ 52 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

Additionally, one could expect the thereby created WebPAD card market to indirectly promote
the WebPAD concept itself at the same time, while the OEM and independent suppliers could
take on a share of this market according to their preferences. In a sense, the WebPAD would thus
inherit some of the characteristics of popular and successful gaming (Nintendo, Sega and
Playstation) systems122.
Finally, the web browsers are continuously upgraded and are getting storage-wise larger for a
good reason: the Internet changes, and so do its users. The new, exciting and useful features are
continuously being added. This fact is better recognized in time. Allowing for WebPADs
expandability in that direction would certainly increase its chances for success.

Another good example could be the revenues related to ink jet printers. Their producers seem to tend to sell the
printers at very low prices, with almost no margins, and generate the income through sales of ink cartridges and similar
material instead.
122

~ 53 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

11. FUTURE WORK


At this stage, there is a working core of the WebPAD embedded Linux platform. Cleaning it up
and adding needed supplements (adequate GUI add-on, custom soft-key pad, touch screen
driver and such) to the level of look and feel of the current QNX version of the WebPAD, should
take between two and three months for a developer familiar with the WebPAD concept and
hardware used, and provided with a reasonable amount of other resources needed for this work.
Meanwhile, or in some cases following this procedure123, one should take the following steps, in
order of priority stated as proposed:
i.

Analyze the storage/RAM/performance optimization issues on the embedded Linux


platform when finished, practically answering the following questions:

What compression grade/block size should be used at most on the executables or


the filesystem, bearing in mind the RAM thereby needed, performance lost
and amount of storage space spared. Measure what these trade-offs are
exactly.

In parallel, consider the boot process and compression alternatives as well.


Choose the boot method as a proper compromise in conjunction with the
compression issues.

What binaries that should be linked statically instead, if any.

ii.

Evaluate Embedded NT in a similar study, rather than Windows CE. Similarly,


consider the size, functionality and price issues, as well as the browser choice.

iii.

Evaluate Mozilla as a potential browser choice, as soon as it becomes stable and


commercially viable. Accordingly, trim it down roughly to needed
functionality/size end inspect the possibilities, drawbacks and gains of linking
the apprunner statically to the libraries.

iv.

Review potential services arising from the combination of tracking technology with
Personal Access Devices. This unconditionally seems to be a trapdoor that can be
used for introducing WebPAD-like devices to the business applications.

v.

Test and implement voice browsing and voice-interface services on the Linux WebPAD
platform, using e.g. IBM ViaVoice run-time.

vi.

Evaluate, separately and if needed fully implement Linux real-time extensions124, for
purposes of WebPAD-like devices. Consider the potential performance and user
cognition improvements of the existing platform, if any, especially in case of
implementation of any additional real-time services, such as audio/video
conferencing etc.

123

All steps, except for i. and vi., can be taken independently.

124

As expressed before, the need for a real-time operating system in a PAD is rather doubtful, thus the low priority.

~ 54 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

APPENDIX A: LINUX MARKET OVERVIEW


It is no secret that heavy price cuts are characterizing the entire PC industry. The tough
competition shows that it is now more important than ever to provide a complete solution, for an
extremely low price. Although this tendency so far mostly affected the hardware industry, i.e.
opening a window of opportunities for companies like AMD and Cyrix125 to take over a
significant bit of the microprocessor market share from Intel, it is nowadays increasingly
noticeable even in the operating system market.
Well known OEMs, such as IBM, Dell, Hewlett Packard126, Silicon Graphics127 and Compaq, aim
to make their computers available with Linux OS preinstalled, defying all the pressure from one
of their most influential partners and the major market player, Microsoft. Additionally, some
newborn OEMs are expanding and presenting new products on almost daily basis, offering
strictly Linux-based hardware. As a good example of the fact that such companies have left the
garage stage of development far behind, one can consider the already profitable128 VA
Research129, in which Intel130 is said to have invested heavily, among other investors. Its strategy
is to develop hardware for Linux, not the other way around.
Corel, IndyBox and Emachines are just some of other big and small players following in the same
footsteps. Even the born-again Amiga chose the Linux kernel as the basis of their, purported
revolutionary, operating system to come, thus denying the already self-proclaimed QNX contract
victory.

Market segments targeted


The Linux status on the OS market can be looked upon, as divided in three segments:

Desktop In this segment, mostly the PCs used at homes and in businesses are targeted.
Naturally, this is the area well dominated by Microsoft products. Although a significant
number of users are using Linux in this segment, in order for it to make a real breakthrough,
its ease of use and installation should be improved further. This is currently a work in
progress, resulting in several so far quite successful projects, such as Gnome, SEUL, and
KDE.

Server This is one of the OS segments where UNIX-like operating systems traditionally hold
strong position. Microsofts NT is however the most common single solution. Linux, with its

Cyrix has recently been sold by NSC, two years after its acquisition. However, the core technology and the MediaGX
architecture have been kept. NSC recently presented the next generation of integrated CPUs based around MediaGX,
Geode. The Cyrix MII line of processors has, on the other hand, been sold to VIA Technologies.
125

126

HP is also planning to port Linux to IA-64, a microprocessor architecture they are collaborating with Intel on.

SGI (Silicon Graphics) is working with Red Hat Linux on making their Open GL even officially implemented on Linux
(a free implementation, Mesa, has already been released by the Linux community). Along these lines, SGI has decided to
give up on IRIX and proceed with Linux instead.
127

VAs CEO Larry Augustin graduated from the same class as Yang and Filo, founders of Yahoo. When explaining why
he turned the now $40 billion worth Yahoo down and startedVA, he says jokingly (?): I knew this was gonna be bigger.
128

VA Research doesnt pass unnoticed either. After obtaining the linux.com domain name, the logs showed 100 thousand
uniquely identified web site visitors over an only 30-minute long period of time.
129

Intel seems to be investing in the Linux market quite actively. Recently they officially announced an investment in Red
Hat, the major Linux distributor, just as Oracle had previously.
130

~ 55 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

suite of extremely competitive, entirely free packages like Apache131 and Samba132, is gaining
an especially strong foothold. Yet, Microsoft claims that Linux is taking over market share
from other UNIX flavors, not Windows NT. Some analysts dont agree.

Embedded A market almost entirely dominated by QNX, VxWorks and other not so
commonly known operating systems. Microsoft is attempting to penetrate this market
segment as well with its embedded NT and Windows CE, while Linux is swiftly maturing
into a very attractive alternative.

As for the server market, there is a quite notable trend towards introducing very small and
relatively cheap servers, like e.g. Cobalt. This market segment is expected to continue growing
with the same pace, allowing small and medium businesses introduction of their sites on the
Internet. Besides, they come as a vital supplement to relatively big and expensive servers used in
Intranet applications. Here, Linux seems to be the only realistic alternative. As there are some
servers in this group priced at $400-$650 for the hardware, a Windows NT Workstation Edition
license would $200. Even more drastically, if one wanted to install Windows NT Server, the site
would have to pay as much again as for the hardware, namely $650133 for a five-client license.
With robustness and expandability offered by Linux, those who think it is worth it are very few.

Market statistics
Microsoft, the clearly leading player in these combined market segments, is naturally not giving
up on the market shares they possess at the moment. Let us take a glance at the frequently very
contradicting statistics published on Linux, in a nutshell.
For instance, describing the situation on the desktop segment in relation to Internet services, a
StatMarket134 article states that only 0,22% of the visitors of web sites they use for measurements,
were using Linux. Even though this slice indicates, according to the same source, a 37% relative
market share growth over an eight month-long period of time, it is still surprisingly little.
Although they are esentially only counting HTTP requests and the variety of sites used is
unknown, the difference between stated and expected is far too big to not to be taken into
consideration. On the other hand, according to articles published by Linux-online, a serious
magazine focusing on this OS, the number of Linux users has reached the 8-million milestone. A
possible instinctive explanation for some of this inconsistency in statistics might be the fact that
most desktop users ordinarily install Linux on systems already running a Microsoft OS.. As a
result, users generally use the Windows installation for surfing on the web, since they find it
much easier to set up for Internet connectivity.
With regard to the server segment, according to an IDC report135, Linux owns 17.2% of the
commercial server OS market, up from 6.8% the year before. Thi 153% annual growth rate

Apache is a very robust and fully featured open-source web server with an immense number of web sites using it,
including most commercial among them. Although it also runs on Windows platforms, it originates in the UNIX world.
131

Samba is an excellent NT file and printer server, also open-source, free for use. According to an alleged internal
Microsoft report on Linux, the author (a highly ranked Microsoft developer) expresses his astonishment over the fact that
it works so well, and states that Microsoft themselves could hardly make it work as well in such a short time, especially
knowing that the sensitive parts of the documentation were not available to its developers.
132

133

Information source on Windows NT pricing is CNET News

StatMarket is an online (http://www.statmarket.com/)statistics site, stating that they monitor about 28 million web
site visitors on a daily basis on more than 83000 sites.
134

135

As quoted in the StatMarket article.

~ 56 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

illustrates the Linux potential quite vividly. At the same time, NT [] maintained
approximately a 36% market share for both 1997 and 1998. It will be very interesting to see
analogous figures for 1999, the year of Linux.
Furthermore, estimating the number of Linux installations is a very difficult task, primarily due
to the generously termed licensing not requiring registration of any kind, as well as a segmented
commercial distribution market. Consequently, reliable figures on Linux in terms of embedded
applications are unavailable at this time.

Additional market indicators


However, one can take into account other indicators of high activity in relation to Linux,
especially the most recent ones. As Linux is getting its hype-factor boosted even more, let us
consider just a few up-to-date happenings in order to catch the beat of the market. For instance,
Compaq recently fired all their developers working on providing NT applications for the Alpha
microprocessor platform, and shifted to developing Linux applications for the came CPU. Sun, at
the same time, released the source code of their famed Solaris OS, under licensing terms similar
to those of Linux. Motorola announced supplying Linux as the basis for their future OEM
product development136. Make it or brake it-motto seems to describe these and other comparable
tactical steps of the major players rather well, even in this case.
As the number of Linux users is constantly multiplying, particularly among businesses, quite a
few companies came to establish their business model for providing support. Even the large
commercial distributors of Linux realized the full potential behind this market demand, and are
subsequently strengthening their own support services.
Being the main underdog, or contender as preferred by the Linux community, Linux still has a lot
to accomplish in the desktop and embedded segment. However, the Linux makers have
definitely made their position clear for the skeptics among market analysts. Being an all-around
contender with the edge, Linux is seriously capable of surprising the few of doubters left.

136

We will see why and how in the chapter on embedded Linux.

~ 57 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

APPENDIX B: STORING THE EMBEDDED SOFTWARE


INTRODUCTION
In most embedded applications, one of the most significant constraints imposed is the very
limited storage space. Although compression is used most commonly, Linux nevertheless
requires a relatively large storage space. In our case, for example, this is especially important,
certainly if any of the newer browsers are used. This is why one should take look at all potential
storage solutions that could be used in a device like WebPAD.
At this moment, the storage space of the development releases of the WebPAD is limited to 16MB
of flash memory, in form of a card produced by SanDisk. The format chosen is a CompactFlash II
card (CF II), connected to one of the IDE interfaces via a CF II/IDE converter. This is a wellknown method137, allowing for the CF II card to act through its physical IDE interface [39]. The
IDE interface makes hardware recognition very easy and doesnt require any additional device
drivers since the rest of the hardware sees the flash as an ordinary IDE hard disk drive.
However, 16MB is not necessarily enough for all the potential features one might have to add.
There are also some larger FlashDisks produced by SanDisk and M-systems, but the price
becomes a main issue, bearing in mind the marked targeted by the WebPAD concept. In this
chapter we will examine three types of flash memory and a microdrive alternative.

COMPACTFLASH II
Overview
CompactFlash [5] is an attempt to standardize future extension devices for consumer electronics
and mobile computing gadgets. The CompactFlash form factor is currently, with its 42.8 mm x
36.4 mm size, beside PC card the most widely used form factor in the industry. There are two
standards, CF I and CF II, settling the height of the card. The heights defined are 3.3 mm for CF I,
and 5 mm for CF II. Their respective specifications also lead to CF II being backward compatible
with CF I. In addition, the specifications also define the maximum power consumption.
CF cards are nowadays mostly used as storage device for digital cameras and handheld
computers, but there are also other implementations, including such as network cards, modems
etc.

CF II flash memory
Currently, there are two main producers of CompactFlash II memory cards, namely SanDisk138
and M-systems.

137

CF II/IDE converters for various types of connectors can be, for instance, purchased from Altec GMBH, Germany.

138

Some OEMS, such as Compaq and Hewlett Packard, sell SanDisk products under their brand name.

~ 58 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

Figure B-1. SanDisk compactFlash (CF II format)


SanDisk CF II can be found in capacities between 8 MB and 160 MB, while M-Systems produces
their CF II memory cards sized between 4 MB and 48 MB.

IDE 2000 FLASH DISKS


IDE 2000 flash disks are supplied by M-systems in 3.5, 2.5, 1.8 and 1.3 form factors. The last
two are presumably the only form formats interesting in this case.
According to the specifications, these flash disks use an embedded IDE controller that allows full
IDE compatibility. Featured with APM, they can be found in sizes ranging between 4 and 160
MB.

DISKONCHIP
M-Systems also produces a device called DiskOnChip (DOC) [25] which is flash memory, but in
form of a single 32-pin chip139 featured by a high-level disk interface layer. This interface is
accomplished through M-Systems TrueFFS, a Patented Flash File System. Since this interface
is not a physical IDE interface, it needs a set of device drivers. The drivers are only distributed in
the binary form140 [25], [49] by the official source, M-Systems. Thus every kernel change or
upgrade involves in practice a different set of drivers, which are not always distributed instantly
following a new kernel release. However, the Linux community has in parallel developed an
additional set of open-source drivers, to be further improved141.

139

According to the specification, it comes in a 32-pin DIIP JEDEC standard EPROM/FLASH compatible package.

This case even causes quite a lot of discussions within the Linux community, the latter questioning if such an approach
was legal to start with. To be more exact, it is still unclear specifically if kernel modules for the kernel released under GPL
are subject to GPL themselves. If they are, M-systems is breaking the law, since GPL clearly states that the code subject to
it also has to be available as source code. However, Richard Stallman, one of the authors of GPL temporarily settled the
discussion by arguing that it is allowed.
140

141

Drivers and more information can be found at http://www.linux-mtd.infradead.org/.

~ 59 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

Figure B-2. M-Systems DiskOnChip (With permission of M-Systems)


The DiskOnChip line has so far seen two generations, Millenium and 2000. The newer, Millenium
version is only available in 8 MB capacity, while 2000 can be found with capacities ranging
between 2 MB and 144 MB.

IBM MICRODRIVE
Overview
An alternative solution to flash-based storage gear is a device recently presented, but not yet fully
released142, namely IBM microdrive. As it is essentially hard disk in a one-inch form factor and
unlike flash, it consists of movable parts. There are two models, with their respective capacities of
170MB and 340MB. The next stage of microdrive development in the CF II form factor can be
expected to pass the 1 GB barrier, due to the subsequent resolution improvements now notable in
IBMs Travelstar series, for instance [34].

Microdrive features
Both of the current models incorporate small, CompactFlash II, size, a weight of approximately 20
gram and a set of advanced power saving features [32]. According to the producers tests, it is
also shock resistant, although the disk is spinning at 4500 RPM. The heads are said to be parked
most of the time, thereby reducing risk for damage, caused by their potential impacting the
surface [34]. The operating shock resistance is 200 G. The same source states that its nonoperating shock resistance of 1000 G essentially corresponds to the device surviving after being
dropped from the height of 1.5 meters143. To put this statement into the right perspective, let us
note that any commercially available LCD screen, as the presumably weakest chain integrated in
a WebPAD-like tablet, would hardly endure such handling.

142

According to the IBM people, it will initially only be available for OEMs.

143

We havent tried that yet.

~ 60 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

Figure B-3. IBM 340-megabyte microdrive, in CF II format


Additionally, due to the heads and disk being very small-sized, a quite modest amount of energy
is needed in order re-spin the disk when needed, supplementing the APM features of the disk
thus saving more power [34].
We had the opportunity to inspect this device. The results show that the microdrive is directly
recognized by Linux144 as an ordinary disk, without any need for additional custom drivers, and
all the subsequent steps of partition and disk usage145 could be taken without any problems or
inconsistencies whatsoever. This should verify statements that it is IDE-compliant on the
hardware level and in compliance with CompactFlash.
The price expected varies between $170 for the 170MB model, and $210 for the 340MB unit.

PRICE COMPARISON
In order to give the reader an overview of the price differences between all the potential solutions
described above and their availability, the following table is given.

The microdrive had to be used in conjunction with its accompanying PCMCIA converter, due to issues related to the
platform it was tested on. Although this only could make things more complicated, the ordinary generic PCMCIA disk
drivers sufficed.
144

145

As an interesting note, its formatted size was 340 MB, not less.

~ 61 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

8 MB

12 MB

16 MB

20 MB

24 MB

32 MB

40 MB

48 MB

64 MB

SanDisk CF II

32.80

N/A

47.54

65.60

N/A

82.06

98.4

114.85

164.00

M-Systems CF
II

61.58

N/A

89.58

N/A

127.39

151.15

N/A

219,76

N/A

M-Systems
DOC 2000

49.94

79.39

83.75

N/A

116.12

147.03

188

219.03

N/A

M-Systems
1.8 Flash Disk

84.00

N/A

113.45

N/A

144.24

172.24

215.64

N/A

302.42

M-Systems
1.3 Flash Disk

95.15

N/A

124.61

N/A

154.06

182.06

219.76

N/A

323.39

Table 4. Storage price comparison and availability


When analyzing Table 4, it is important to note the following limitations of the information
compiled and presented:

The pricing sources are the producers main distributors for Sweden, Actor data AB
(SanDisk) and Acte Sweden AB (M-Systems). The prices were valid in October 1999 and
premise quantity 500, individually packed, not bulk.

The prices are in USD, converted back from SEK according to the suppliers currency
exchange rates.

N/A denotes that the product is not obtainable in that size.

Thereby, the costs that can be expected in production are very different and the prices themselves
should only be taken as an illustration. However, the table should give the reader a good idea of
how the storage price increases with size and how prices of different flash packaging techniques
relate to each other, at least when the devices one wishes to compare are provided by the same
producer.

~ 62 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

APPENDIX C: LOCATION TRACKING


Location tracking is, for the purposes of this document, defined as continuously determining the
position of the tracked object within an isolated area and in real-time. Here we will shortly
discuss how it could relate to the WebPAD concept.

OVERVIEW
Tracking of people and assets at a local level has a rather long history, but is yet to reach the stage
of wide usage. The concept of e.g. Smart buildings involves keeping track of people and assets
within them for purposes of providing additional services and value. There have been many
approaches on account of tracking, but we will hereby focus on a few particular solutions having
the following properties in common:

Usage of RF (Radio Frequency) technology, thus line-of-sight is not required

The tag-principle, meaning that the tracked person or asset has been provided with a small,
portable and inexpensive tag, that is regularly emitting information (ie. its unique ID) to the
underlying network

They are currently commercially available.

Thereby, the background infrastructure consisting of signal processing hardware and software is
the single system component processing the received information in order to resolve the moving
objects current position. Thus, the tag itself is not aware of its position, unless this kind of
information is dispatched back to the tag in some manner, from the fixed system installation. It is
essential to note that such systems, if integrated with the WebPAD concept, are not in any way
constrained by the type of operating system and other software running on the tablets. Simply,
the tags are hence just affixed to the tablets casing and are functioning totally independently
from the tablets.

SOVEREIGN PALTRACK
The generic PalTrack system provided by Sovereign Tracking Systems LLC consists of [41]:

Transmitter tags, weighing less than 1 Oz. (about 30 gram) and with an operating life of 2.5-3.5
years146. The tag transmits signals constantly.

Transceivers and plug-able active antennas, distributed over the covered area, picking up the
received signals, handing them over to

Master transceiver, polling the transceivers thus collecting the messages from them, and
relaying it further to a

PC-based processing unit, running RF telemetry processing software accustomed to the


application, calculating the current position of the tags knowing what transceivers reported

146

This announced life-time assumes 4,000 transmits a day, which can be adjusted.

~ 63 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

seeing the tag, time stamps and the tags unique ID. Subsequently, this information is
stored and/or shown on the screen, in
PalTrack system utilizes transmit frequencies between 418 MHz and 915 MHz147, freely
selectable, and covers an area with a radius of up to 300 feet (about 90 meters) between a tag and
a transceiver.

PINPOINT
The Pinpoint 3d-iD local positioning system [51] provides an approximate accuracy of 2-10
meters in most indoor applications. The system readers, organized in cells within the covered
area, periodically emit codes that are in turn received by simple and inexpensive tags. The latter
then change the signals frequency and send the signal back to the reader, including its ID
information. The position of the tag is thus determined by simply measuring the round trip time
of the sent signal. Each cell within the system is covered by a cell controller to which up to 16
antennae can be attached, within a hierarchically organized system.

WHERENET FIREFLY
The WhereNet Firefly system [52] functionally corresponds to the previously mentioned ones,
but technical data is not publicly released yet.

APPLICATIONS
The range of applications can be seen as very wide, especially within the areas that the
positioning/tracking technology itself currently targets. These include logistics, inventory
systems, medical (hospital) applications, etc.
Moreover, let us as, a quite vivid example, briefly consider a restaurant application for a
combination of this technology with WebPAD-like devices. For instance, Starbucks is already
evaluating wearable PC for handling the orders. Adding positioning technology to them would
certainly enhance order optimization processes, as the stored data of this kind would also make it
possible to easily analyze these processes in real-time.

147

This range is described in the documentation as extendible to between 300 MHz and 2.4 MHz.

~ 64 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

REFERENCES
[1]

Almesberger, Werner. 1996. Using the initial RAM disk (initrd) [Online]. Available:
http://eenweb.leeds.ac.uk/doc/kernel-source-2.0.34/Documentation/initrd.txt [1999,
November 23]

[2]

Barabanov, Michael. 1997. A Linux-based Real-Time Operating System. MSc. Thesis. Soccorro
(NM, USA). New Mexico Institute of Mining and Technology. Available:
http://rtlinux.cs.nmt.edu/~rtlinux/papers/thesis.ps [1999, November 23]

[3]

Bennet, Dave. 1997. Booting Linux from EPROM. Linux Journal, January 1997 issue. Available:
http://www2.linuxjournal.com/lj-issues/issue33/0243.html [1999, November 23]

[4]

bzip2, man pages.

[5]

CompactFlash Association Homepage [Online]. Available: http://www.compactflash.org/


[1999, April 16].

[6]

Cyrix WebPad [Online]. Available: http://www.cyrix.com/html/emerging/index.htm [1999,


April 16].

[7]

D. Duchamp, S. Feiner, and G. Q. Maguire, Jr. Software Technology for Wireless Mobile
Computing. IEEE Network. 5(6):12-18, November, 1991.

[8]

DLX Distribution Homepage [Online]. Available: http://www.wuwien.ac.at/usr/h93/h9301726/dlx.html [1999, April 16].

[9]

ELKS - The Embeddable Linux Kernel Subset [Online]. Available:


http://www.uk.linux.org/ELKS-Home/index.html [1999, April 16].

[10] Embedded Linux [Online]. Available: http://users.bigpond.com/paulmoody/ [1999, April


16].
[11] Epplin, Jerry. 1997. Linux as an Embedded Operating System. Embedded Systems
Programming, October 1997 issue. Available: http://www.embedded.com/97/fe39710,htm
[1999, September 23]
[12] Fawcet, Tom. 1998. The Linux Bootdisk HOWTO [Online]. Available:
http://sunsite.unc.edu/LDP/HOWTO/Bootdisk-HOWTO.html [1999, August 5]
[13] Gary's Encyclopedia - Embedded & Real-Time Systems [Online]. Available:
http://members.aa.net/~swear/pedia/embedded.html [1999, April 16].
[14] Harris Semiconductor - PRISM Radio Chip Set for Wireless LANs [Online]. Available:
http://www.semi.harris.com/prism/prism.htm [1999, April 16].
[15] Herlein, Greg. 1998. Linux in an Embedded Communications Gateway. Linux Journal,
October 1998 issue. Available: http://www2.linuxjournal.com/lj-issues/issue54/3030.html
[1999, November 23]
[16] Hoff, Lary. 1999. Netscape Plug-Ins. Linux Journal, September 1999 issue. Available:
http://www2.linuxjournal.com/lj-issues/issue65/3088.html [1999, November 25]
[17] http--www.linuxembedded.com- [Online]. Available: http://www.linuxembedded.com/ [1999,
April 16].

~ 65 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

[18] Knowledge base: Red Hat White Papers [Online], Available:


http://www.redhat.com/knowledgebase/whitepaper_glibc.html [1999, August 5]
[19] Kuhlmann, Gero and Mares, Martin. 1996/1997. Mounting the root filesystem via NFS (nfsroot)
[Online]. Available: http://pacific.pht.com/~brad/iMac/nfsroot.txt [1999, November 23]
[20] Linux & Wireless LANs [Online]. Available: http://wwwuk.hpl.hp.com/people/jt/Linux/Wireless.html [1999, April 16].
[21] Linux Network Drivers [Online]. Available: http://cesdis1.gsfc.nasa.gov/linux/drivers/
[1999, April 16].
[22] Linux PCMCIA Information [Online]. Available:
http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html [1999, April 16].
[23] Linux Router Project [Online]. Available: http://www.linuxrouter.org/ [1999, April 16].
[24] LOAF [Online]. Available: http://loaf.ecks.org/ [1999, April 16].
[25] M-Systems Flash Solutions - Flash Disk Pioneers - Flash Memory [Online]. Available:
http://www.m-sys.com/ [1999, April 16].
[26] Markon, S. and Sasaki, K. 1997. Linux Means Business (Linux for Embedded Systems). Linux
Journal, September 1997 issue. Available: http://www2.linuxjournal.com/ljissues/issue41/0133.html [1999, November 23]
[27] MediaGX [Online]. Available: http://www.cyrix.com/html/products/mediagx/index.htm
[1999, April 16].
[28] Mozilla.org [Online]. Available: http://www.mozilla.org/ [1999, April 16].
[29] muLinux Project Home Page [Online]. Available:
http://www4.pisoft.it/~andreoli/mulinux.html [1999, April 16].
[30] National Welcomes You [Online], Available: http://www.national.com/ [1999, November 23]
[31] Netwave Technologies [Online]. Available: http://www.netwave-wireless.com/ [1999, April
16].
[32] New microdrives from IBM [Online]. Available:
http://www.storage.ibm.com/hardsoft/diskdrdl/micro/ [1999, April 16].
[33] Oyvind Kolas' - hal91 [Online]. Available: http://home.sol.no/~okolaas/hal91.html [1999,
April 16].
[34] Personal communication, IBM Research and Marketing representatives.
[35] Personal communication, National Semiconductor representatives.
[36] PinPoint Corp. [Online], Available: http://www.pinpointco.com/ [1999, October 11]
[37] QNX Software Systems Ltd. - The Leading Realtime OS for PCs. [Online]. Available:
http://www.qnx.com/ [1999, April 16].
[38] Rubini, Alessandro. 1998. Linux Device Drivers. ISBN 1-56592-292-1, Sebastopol (CA, USA),
OReilly & Associates, Inc.

~ 66 ~

E MB E D D E D L I N U X

F OR

PU RP OSES

OF

INT E RNET APPL IANCES

M Sc . t he s i s r e po r t by Edi n B e kt e s e v i c

[39] SanDisk Corporation (NASDAQ- SNDK) Home of Flash Memory Cards [Online]. Available:
http://www.sandisk.com/ [1999, April 16].
[40] Small Linux - ELF format Micro Distribution [Online]. Available:
http://smalllinux.netpedia.net/smalldown01.html [1999, April 16].
[41] Sovereigntech Corporation [Online], Available: http://www.sovereigntech.com [1999,
December 2]
[42] Tanenbaum, Andrew S. 1992. Modern Operating Systems. ISBN 0-13-595752-4, Upper Saddle
River (NJ, USA), Prentice Hall, Inc.
[43] The Linux Documentation Project [Online]. Available: http://www.linuxdoc.org/ [1999,
November 23]
[44] The Linux ELF HOWTO [Online], Available: http://www.spade.com/linux/howto/ELFHOWTO.html#toc1[1999, November 23]
[45] The Xdenu Home Page [Online]. Available: http://xdenu.tcm.hut.fi/ [1999, April 16].
[46] tomsrtbt home page [Online]. Available: http://www.toms.net/rb/ [1999, April 16].
[47] Trinux A Linux Security Toolkit [Online]. Available: http://www.trinux.org/ [1999, April
16].
[48] Tyler, George. 1998. Linux Is A Great Prototyping Tool For Embedded-Hardware Designs.
Electronic design, June 27th issue. Available:
http://devel.penton.com/ed/Pages/magpages/june2899/embed/0628es1.htm [1999, July
28]
[49] W.A.S.T.E.-mailing lists-Linux-Embedded [Online]. Available:
http://www.waste.org/mail/?list=linux-embedded [1999, December 2].
[50] Welcome to padsurfer.com [Online]. Available: http://www.padsurfer.com/ [1999, November
23]
[51] Werb, Jay and Lanzi, Colin, Pinpoint Corp. 1998. Designing a positioning system for finding
things and people indors. Spectrum (IEEE), Spetember 1998 issue. Available:
http://www.spectrum.ieee.org/spectrum/sep98/features/rfid.html (User: spectrum98;
Password: tempid) [1999, October 11]
[52] WhereNet [Online], Available: http://www.wherenet.com/ [1999, December 2]
[53] WLANA - The Wireless LAN Alliance [Online]. Available: http://www.wlana.com/ [1999,
April 16].
[54] Yodaiken, Victor. 1997. RT- Linux White Paper [Online]. Available:
http://rtlinux.cs.nmt.edu/~rtlinux/papers/whitepaper/short.html [1999, November 23]
[55] Yodaiken, Victor. The RT Linux Manifesto [Online]. Available:
http://rtlinux.cs.nmt.edu/~rtlinux/papers/rtmanifesto.pdf [1999, November 23]
[56] Zawinski, Jamie. 1994.Remote Control of UNIX Netscape [Online]. Available:
http://home.netscape.com/newsref/std/x-remote,html [1999, October 25]
[57] ZLIBC-transparent access to compressed files [Online], Available: http://zlibc.linux.lu/ [1999,
November 25]

~ 67 ~

S-ar putea să vă placă și