1 of 17

Software on a Manned Interstellar Expedition

By Bryan Quigley

Canonical - Ubuntu

2 of 17

Challenges - Communication

  • Latency - 10 years round trip time�
  • Bandwidth�

Both get worse the further away you get

3 of 17

But When Leaving Earth

Take everything you can!

Any OSes, Games, Movies, Music, data, etc- because the bandwidth costs are nil.

4 of 17

Scope - What software will be needed?

  • Control Systems (navigation, environmental, etc)
  • Operating Systems
  • Data center operations
  • People Management (EHR, Gov’t)
  • Educational Software
  • Entertainment

5 of 17

The Colonists need the source

Where will they need to make changes to their software?

We have no idea, so they need it all.

They are entering the unknown. Let’s not send them with unknowns around software.

6 of 17

How to get the latest source?

Example: Linux

Releases every 3 months

  • Total diff compressed was 8 MB*
  • Total source is ~ 81 MB compressed
  • Binary for 1 architecture 41 MB

*This includes the commit messages.

7 of 17

The Colonists need to know...

Source Code

Source code with commit history (git)

How to build it

Linux Distribution and build system (Launchpad)

How to deploy it

Example configs (Puppet, Juju)

How to use it

User and admin documentation

8 of 17

The Colonists need to know...

Source Code

Source code with commit history (git)

How to build it

Linux Distribution and build system (Launchpad)

How to deploy it

Example configs (Puppet, Juju)

How to use it

User and admin documentation

How to debug it

Bug reports, Mailing Lists?

How best way to modify it

Roadmap to help reduce overlap work

Best practices for this piece of software

How to test it

Test cases, CI Suite

9 of 17

The Colonists pick the cadence

Earth sends out code on regular basis

Launchpad

Interstellar Linux Stable

(every 3 years?)

Interstellar Linux Rolling

(every other month?)

10 of 17

Cost of multiple architectures

Cost

  • Time - Colonists need to understand them
  • Energy - to run more build/testing machines
  • Possibly limits replaceable parts

Benefits

  • Use the architecture most suited for a specific task

11 of 17

So what would I build today?

  • Supercomputers
  • Work standalone when needed
  • Work as one ship
  • As few different connectors as possible (USB 3.1?)

12 of 17

The “Main” Computer

  • Science
  • Navigation
  • Communication Processing
  • Security
  • Build/Test Interstellar Linux (Launchpad, Building systems, etc)

13 of 17

The “Main” Computer

  • 3 Data Centers with Cloud Technologies for scaling up and down (OpenStack)
  • 2 Run Stable, 1 closer to rolling for testing
  • Arch: Intel/PowerPC/AMD
  • Highly efficient per watt computing
  • Main storage

14 of 17

Stationary Workstations

  • Arch: Intel/AMD or ARM
  • Tappable as backup or extra computing
    • Extra redundancy for critical data
    • When more power efficient
    • When main systems fail or computing time is critical

15 of 17

Sensors, Control Circuits

  • Low power
  • Low computing potential
  • Stability
  • Arch: ARM, MIPS
  • Arch for electronically sensitive systems: PowerPC
  • OS: Ubuntu Snappy, FreeRTOS

16 of 17

Mobile, Laptops - Why?

  • Battery Tech
  • Surrounded by integrated computers
  • Power losses (Wifi and charging)

17 of 17

Future

...in software...

  • Fully FOSS friendly hardware
  • Source code analysis in MB changed
  • Reconstructing corrupted diffs

...elsewhere...

  • Recycling of CPU/GPU chips
  • Long-term storage medium (Optical, SSD?)