Space age : software programming

Since the beginning of time man wanted to go to space and explore it’s the vast reaches and emptiness. Since man started to look up into space, we have tried to be there and aim beyond it. Lots have tired and some have succeeded. Neil Armstrong the first man on the moon said “That’s one small step for a man, a giant leap for mankind”.

Well astronauts are not the only human’s to touch the open space, Software programmers too have reached there, may be not actually being in space but through the software programs they have written.

Software has enabled space crafts; Shuttles to zoom into space, explore the heavens and bring the voyagers safely back home. Modern software techniques and programming paradigm had enabled us to explore the moon, Mars and other planets without ever leaving the Earth.

As I write this blog, ‘Curiosity’ is zapping Martian rocks to find some evidence that we are not alone in this Universe, with the controller safely back on the planet Earth.

One of the major things that have helped us in space exploration is the use of software to control the hardware without having to actually be on the craft. Some of the important and major language and Operating system used for space exploration are

HAL/S (High-order Assembly Language/Shuttle)

HAL/S is a real-time aerospace programming language, best known for its use in the Space Shuttle program designed by Intermetrics for NASA. It was designed to have reliability, efficiency and machine independence as it main features. You don’t have to be a software guru to code with this language.

Some features:

  • There is no support for dynamic memory allocation.
  • HAL/S has native support for integers, floating point scalars, vector, matrices, Booleans and strings of 8-bit characters, limited to a maximum length of 255.
  • HAL provided for new types of program blocks. Two of these specific to real-time processing are COMPOOL and TASK.
    • “Compools” are declarations of data to be kept in a common data area, thus making the data accessible to more than one process at a time.
    • Task blocks are programs nested within larger programs that execute as real-time processes dependent on one of the most powerful HAL statements, SCHEDULE.
  • NASA added to the list of statements several specifically designed to create real-time processes, such as WAIT, SCHEDULE, PRIORITY, and TERMINATE.

VxWorks (Real time operating system)

VxWorks is a real-time operating system developed as proprietary software by Wind River Systems of Alameda, California, USA. VxWorks is the RTOS that powers more than 1 billion real-time systems across the globe, from small consumer products to commercial airliners. VxWorks RTOS has been optimized for performance, determinism, and code footprint on each processor platform it runs on. VxWorks RTOS is also optimized for specialized hardware support for such features as network acceleration and graphics.

Significant Strengths

  • Footprint: VxWorks has a completely configurable and tunable small memory footprint for today’s memory-constrained systems. You control how much of the operating system you need.
  • Real-time performance: Capable of dealing with the most demanding time constraints, VxWorks is a high-performance RTOS tuned for both determinism and responsiveness.
  • Reliability: A high-reliability RTOS, VxWorks provides certification evidence required by strict security standards. Even for non-safety-critical systems.
  • Scalability: An indispensable RTOS foundation for very small-scale devices, large-scale networking systems, and everything in between, VxWorks is the first RTOS to provide full 64-bit processing to support the ever growing data requirements for embedded real-time systems. VxWorks is scalable in terms of memory footprint and functionality.

Notable uses

several spacecraft have used VxWorks as the onboard OS:

Reference-
windriver.com

[slideshow]