Colorado Space Grant Symposium
description
Transcript of Colorado Space Grant Symposium
Colorado Space Grant Symposium
The Advantages of Linux in Space
Cory Maccarrone
What Is Linux?
Linux is a free, open source operating system created in April of
1991 by Linus Torvalds at MIT. The project was started in an
attempt to bring the power of UNIX to commodity hardware, replacing
the simpler OS called Minix. In over ten years, Linux has grown to
be an extremely scalable OS, running on everything from
wrist-watches to high-end mainframe servers, and supported by
industry such as IBM.
The Community Behind Linux
At first, Linux was developed and maintained by a closely-knit
group of programmers. Over the years, Linux has attracted more and
more users and developers, forming a close community of supporters.
Now, millions use and develop the platform across the world, but
remain close through user-maintained support forums, chat lists,
and web-sites, ready and willing to provide help for anyone in
need.
Software in Space
In space-based missions, duration and cost of development are both
heavy concerns, influencing decisions project-wide. For example,
hardware decisions are made by weighing the costs of COTS hardware
versus home-built devices. Some hardware is bought to decrease lead
time and save money. Other hardware is made where doing so would
cost less and lead to a better product.
Software in Space
Most software is not COTS, but developed in-house to provide for
the specifics of a mission. Software development is more critically
dependent on time than money. To save time, projects often reuse
code from previous work, making modifications as needed. This
includes the operating system. This is a very safe method of
development, leading to stable, tested code, proven across many
projects.
Current Development Strategies
Surprisingly, Linux has very little experience in space-based
applications, serving as ground software for the analysis of data
or controlling of satellites. VxWorks, developed by Wind River as
an embedded OS, has become the de facto standard used in satellites
from academia and industry, and even in the Mars rovers. VxWorks
has been around much longer than Linux, so it was able to take the
market early on, providing full support for their product in case
of a fault.
Exploration of New Possibilities
Many space-based organizations have recently opted to take another
approach, implementing or replacing their previous solution with
Linux. Budgets can be very constraining. VxWorks carries a steep
price for its use and support, a price which may prove prohibitive
to some. Conversely, Linux carries no cost for use, development, or
support. Documentation and an extensive user body exist for any
support issues that may come up.
Exploration of New Possibilities
Developers feel more comfortable developing in a known environment.
Because of its heavy price, VxWorks is not available as a
general-use OS for anyone to work with. As a result, new developers
need training in its use. In contrast, Linux is taught in many
colleges as a part of the standard Computer Science curriculum. As
such, developers are more likely to be familiar with this OS and
will feel comfortable jumping into it.
Exploration of New Possibilities
Hardware Support VxWorks carries a large list of supported
hardware, running on most embedded computers. Other boards are
typically provided with board support packages (BSPs) to give
VxWorks support. Linux, out of the box, supports a wide range of
both embedded computers and commodity systems. Modern devices such
as USB, firewire, and digital cameras are supported through free
libraries. As an example, in the CSGC project DINO, Linux is being
used in cooperation with a digital camera suite called GPhoto2 to
control two science cameras and an extra tip-mass camera. VxWorks
was unable to provide such robust support.
The Hurdles in Migration
The use of previous code can be the biggest hurdle in migration to
Linux. Previous code is implemented in a substantially different
environment, with different (and sometimes incompatible) APIs. Past
projects have tested the code over and over, and as a result, the
previous base is proven to work as expected. A move to Linux would
mean porting over the existing code, or in many cases throwing this
code out completely and starting over. This can cost both time and
money in the end.
Overcoming the Odds
Some of these issues can be eased through use of robust tools
available for Linux. Libraries and programs can be used to simplify
hardware access and to allow developers to work in a very modular
and object-oriented fashion. GLib provides tools to create code
'objects' that can have actions and properties associated with
them. This is useful for abstracting, for example, sensors and
switches. GPhoto2 is a library supporting over 400 digital cameras.
It can be used to automatically take and retrieve pictures, as well
as advanced camera operations like zoom and focus.
Overcoming the Odds
Commercial software is also available for Linux. ICS distributes a
package called SCL (Spacecraft Command Language) for both Linux and
VxWorks. This makes projects dependent on this easier to port.
Linux carries a huge base of documentation and support. All APIs
have been very well documented by both developers and users, and
this documentation is freely available across the Internet. The
huge community of users and developers provides an extensive
support base in which an answer is lots of times an email
away.
Overcoming the Odds
Linux can ease training needs. Other proprietary systems such as
VxWorks have limited areas of market penetration, and as such,
incoming developers are less likely to have worked in these
environments, leading to an increase in training time and costs.
Since Linux is most popular on the desktop and server markets,
incoming programmers are more likely to have used and programmed in
Linux. Programmers are even more likely to know Linux coming from
areas of study in which Linux is taught, such as the modern
Computer Science curriculum.
Overcoming the Odds
Development tools exist under Linux to aid in rapid programming and
debugging. The Linux kernel the heart of the OS can be built in a
matter of hours using a very friendly menu-driven interface, full
of item-by-item help. Projects such as Open Embedded have been
created to automate development and deployment of embedded Linux
solutions. This project will be used to create the flight system on
the DINO satellite project, which utilizes a flight board based on
the Intel XScale processor. Open Embedded was designed to make use
of this processor.
In Summary
In any large project, managers must weigh costs and time in making
decisions concerning hardware and software. In software, most
organizations have chosen not to move to Linux. Existing code bases
would take too long or cost too much to port over, and the mission
carries no requirements that conflict with past code.
In Summary
Some have decided to make the change towards Linux. New hardware
designs and coding styles have warranted the need for a newer, more
compatible OS. Decreasing budgets have made proprietary solutions
prohibitively costly. Some just want to use Linux for the chance to
try something new.
Closing
Use of Linux in space is an experiment all in its own. Over time,
more and more satellites and spacecraft will use Linux For the DINO
project, the move to Linux means greater compatibility for new
hardware, and the ability to test new technology in space.
Thank you for coming!