[Music]
hello everyone and welcome back from
your afternoon tea i hope you had a
great time uh we're in the kia ora
theater at uh linuxconf australia in
2022 and next up we have sambish sam
bishop is a professional software
developer amateur rocket scientist and
astronomer who loves python django cats
working on their personal software and
hardware projects everything space
playing games of all kind and tinkering
with 3d printers
sam's going to be talking about the
users challenges and opportunities
involved in open source software
running in space he does have time for
questions at the end
so we will
make sure that you're writing your
questions in the venulis tab while we go
take it
away hi
so yeah boldly going linux in space i'm
sam bishop uh freelance software as you
heard my contact info is there on the
slide there
and
just for perspective
let's get a timeline going as i said
questions at the end it's a very broad
talk so
plenty of time for questions at the end
so you can ask whatever sort of peaks
your interest
now
going through the timeline here we've
got
a few useful tidbits here linux started
in 1991 we got slackware two years later
a few more years down the line we got a
mascot
and then we start to see the more
business side more enterprise
stable
reliable
we can trust this to you know not die on
us
type things happening just after two
year 2000 we've got red hat in 2002 and
then four years later ubuntu coming out
in 2004
and why this is relevant is that when
you start to look at the history of
linux in space
what you see is that it didn't take long
for linux to
start turning up in space as soon as
people started to trust it
you've got in 1999
the start of a project
nasa evaluating whether linux could fit
into a
software stack designed for running a
space mission um that didn't really
result in any actual missions but it was
a thorough evaluation of how this kind
of software fits into their overall
planning
you've got 2003 quake sat which was an
earthquake investigation it was powered
with a diamond systems prometheus
pc104 module with the regular old x86
cpu and despite it being only one year
old at the time it was running red hat
linux
now
in a few years later we have
another mission interestingly enough
using the micro linux which is a version
of linux designed for computers without
a memory management system because the
sort of hardware you can put in space
tends to be very power constrained
one of the things people tend to say is
that when you put it in space you put it
back in time 10 years because you end up
picking software and hardware that's
been around so long it's considered
reliable and solid
in 2007 we got another mission here
we've got arm running linux on a payload
controller now the difference between a
payload controller and a full flight
computer is that it's only responsible
for part of the mission so linux wasn't
responsible fundamentally for that
entire mission there
uh we've got a follow-up to that first
micro linux
mission there where they were running it
on their second follow-up mission in
2009 and then
out the gate strong linux in 2010 is
what's powering the falcon 9 rocket so
they put that rocket into space flow it
all the way there with linux flying all
the avionics and then once the second
stage reached orbit it was responsible
for the operation of that entire second
stage in space
um
and then following on through that they
also had their crew
the cargo capsule
again all of its avionics and flight
management running with a set of linux
computers
so
we have another mission in 2011
it was just running the payload
controller again so not super
interesting
but you'll start to see a trend here so
2012 we've got
another set of rocket launchers
we've got
lots of those happening that year we've
got three launches
so
we keep moving on
we've got 2013 we have another set of
missions happening with actual linux
flying satellites instead of rockets
we've got
an arm9 cpu running some fairly stock
linux there on the ipex science mission
we have the strand mission which is
running a micro linux on a very small
board but the reason it's such a small
board is because the other half of that
mission was actually a stock google
nexus one
i say stock there was some hardware
modifications it was stock software
running
android linux
in the same year we also had planet labs
putting their first dove satellites into
orbit so they put four highly modified
well actually not even modified highly
customized x86 linux powered machines
running regular ubuntu linux and half a
terabyte of solid state storage on each
of them into space
and those were taking uh satellite
photography now
spacex put up three more launches that
year the iss also switched to debian
linux that year because they were trying
to make the environment more secure and
reliable and didn't want any repeat
incidences like the time the worm
managed to get you know infect to the
windows laptops on the international
space station because someone had
brought it up on a floppy disk uh they
kind of didn't want any more of that so
they switched to linux
um
2014 kicks things off even more
aggressively while we had just six linux
satellites in 2013 planet labs launched
33 of them in 2014 so we've gone from
six
and and one here and there
to 33 linux powered satellites in one
year
now spacex also flew back their first
successful landing with their linux part
avionics driving that all the way
through to successful landing
uh
we have
another landing success there once again
successfully touching down and being
fully reusable powered by linux and then
we have linux on the second ever solar
sail mission so the planetary society
launched the light cell one mission
which is a in tyvac intrepid board
and that was controlling all of their
deployment and mission software and that
was just running linux there planet labs
also dropped out another 40 dove
satellites
we keep moving forward we've got yet
more doves 32 more doves from planet
labs we have eight more launches five
landings and two
space drones if you think of it
autonomously flown all the way to the
space station on linux
we have a really big year in 2017
because planet labs dropped out
a whole heap of satellites as something
in the 140 and then
and spacex dropped out 18 launches three
more flights to the space station
entirely autonomously flying themselves
they're powered by linux and hp
shipped a
supercomputer past the one teraflop mark
into space it was a
um it was based on one of their stock
machines but it had to be modified and
put into a specific chassis in order to
make it fit into the equipment racks of
the iss
but it also ran there for a whole year
so in 2018 the hp machine was considered
operational after a year of testing and
it was made available for people who
were doing science on the iss to have
their
payloads run the software that they
needed to process their data running
that in space on the space station so
they didn't have to download the data so
if they sent up an instrument that did a
lot of data production and they wanted
to process it before it came down so
that they didn't have to send back so
much there was now a computer on the
space station that they could use to run
regular operational software like they
would in a lab back at home
powered by linux
uh the marco cubesats in 2018 also
carried linux into deep space with the
cafeteria linux board running one of
their cameras you can't barely read the
font there but yes it was a module once
again this kind of payload controller
scenario but that board was running
linux taking photos of mars
as it flew past with the insight lander
mission
uh planet labs launched a whole heap
more
we've got spacex doing a whole bunch
more landings
uh they also put out the first starlink
satellites this in 2018 and those
styling satellites are really going to
set a trend for linux so
the other highlight being the
cherry red tesla roadster those videos
coming back to earth streamed from
starman orbiting were powered by linux
so
linux had a fairly big year in space
that year
2019 we get 32 more doves we get spacex
actually landing more times than they
launched because they had two falcon
heavy launches which meant that they
actually landed more times than they
launched uh we get more autonomous
flights to the space station and we have
spacex actually just blowing away
all of the stuff that even from back in
2017 when planet labs
was putting out 140 of their doves
spacex just
almost eclipsed them in two single
launches they put out 60 of their first
prototype set and then another 60 of
their final production set for 120
towards the end of the year and that's
just the start so at this point we've
got 120 plus
several hundred more doves all running
linux so several hundred linux
satellites in space at this point in
2019
and it starts to increase fairly
aggressively
so in 2020
we've got a few just a few more doves
we've got
crude missions so linux is now being
trusted with the lives of astronauts in
2020 so
the crew dragon flies all the way to the
space station powered by linux and
nasa has trusted it to run
that software stack on top of linux
there's a whole bunch as to how they get
to that level of trust but it's being
powered by linux and that's freaking
awesome
so
we get 890
starlink satellites which means that we
go from having only a few
to starlink being one of the dominant
sets of satellites in the entire
low earth orbit area to the point where
based on the stats i was able to
estimate
31 and a half percent of all active
satellites were now powered by linux
almost entirely based on starlink
2021 was a pretty big year with even
more satellites going up we get another
nearly 900 coming from starlink we get
the ingenuity drone on mars
that's entirely powered by linux and
more about that coming up planet labs
drop out another just short of 50 of
their dove satellites we get a whole
bunch more landings we get more
autonomous flights to the space station
and at the end of 2021 we had 40.5
percent of active satellites
running linux so we've literally gone up
by nine percent in the span of one year
off the back of spacex launching their
styling satellites so linux is becoming
extremely well established in space
now
in 2022 so far that's continued to grow
already we've had
flock 4x another 44 dove satellites
going into space from planet labs
they're continuing to run their linux
stack in space returning fantastic
imagery from that we have already had a
bunch more starlinks going up and we
still
have 40.5 percent coming through we
haven't had any disaster that's chipped
them away
so let's get to some pictures of what
these satellites actually look like and
what sort of things that are running
this linux stack in space what do they
actually look like it's one thing
everyone thinks a satellite is a certain
kind of thing well
let's have a look at what they actually
look like so we've got quake sat i
mentioned earlier that was just a
diamond prometheus pc104 so it's just
this little 10 centimeter board
it it's tiny
you can see that you know you can't
really see it without having a cad
diagram to sort of cut it apart but the
inside of that is mostly
being done to keep springs and batteries
and folding to keep the weight down
because there's a weight limit on these
things they're only allowed to weigh
three kilos so there's a kilo for every
10 centimeter cube of volume and so
they're quite mass constrained and don't
have a lot of room for things inside so
they end up using these fairly small
boards
a large part of the inside was taken up
by the
room they needed for that telescoping
boom you see at the top which was part
of their experiment to look for
electromagnetic disturbances about
earthquakes
we've got the dove satellites so
planet labs put their dove it's actually
now called planet uh put their dove
satellites up there they're a low
powered x86 processor
nothing crazy it's just running ubuntu
server but in order to make it fit into
their package which is actually mostly
just a telescope you can't see it from
the front there because this is the rear
view but the a lot of the electronics
are down in that end there because
almost the whole body of that satellite
is taken up with a huge camera lens it's
not even a camera lens it's actually a
catadioptric telescope uh it's if i
remember off the top my head the focal
length is about uh a meter so they've
folded it up a meter long
lens arrangement into a 30 centimeter or
30.
35 centimeter long little box and it
didn't leave a lot of room around the
edges so they actually designed their
own motherboards and electronics wrapped
them around that lens
and then put all of the sensors down at
the end there in that little protrusion
it's it's a very impressive feat of
achievement that they've managed to
engineer all of that into such a tight
package
we've got
the dragon spacecraft which people might
be a bit more familiar with now that
there is a first generation dragon one
on one of the cargo resupply missions
it was flying in formation there in that
video you saw powered by linux linux
powered flight computers using sensors
to determine the position of the space
station the real-time position of the
dragon capsule in space
and making a whole bunch of flight
corrections firing thrusters and keeping
itself in position there waiting to be
grabbed
the whole time all being done with linux
now
from
spacex haven't published this stuff
publicly but the
questions they have answered in public
things like reddit ask me anythings and
a few interviews people have done
have covered in depth some of the things
that they do to make these more
resilient so they're running with a
three sets of dual core x86 processors
apparently the dragon capsule's running
a 3.2 kernel with the real-time patches
and they are actually using one instance
of linux on each processor core so
they've probably got some kind of
hypervisor thing going on there that
sort of divides the two cores into two
systems
um unless they're dual sockets again not
something they've really made public so
what we've got here though is we've got
dual pairs that are working in
triplicate so they're having each pair
vote against each other and then the
group of three are looking for consensus
on those votes
and it's quite a sophisticated system of
redundancy and uh checking against other
systems in order to give them the
reliability they need to
have people on board and for you know
nasa to trust that because they carried
forward that same flight architecture
and that same software and computer
stack into the second generation of the
dragon capsule
they also are using linux on starlink
which has even less info about what's
going on board because other than the
fact that it runs linux
i
actually can't find anything about the
processors on board but
it is definitely running linux that much
i can
confirm uh
we've got the more famous example of
late which is uh
i mean everyone should be able to see it
there i'm sure everyone's familiar with
that all right how about i zoom in a bit
uh we have the ingenuity space
helicopter which is a snapdragon 801
uh it has a 3.4 kernel with the
real-time pre-empt patches on it it's a
lenara based operating system and it has
a radiation hardened fpga for critical
power management timer stuff so that it
can keep its batteries alive in the cold
martian night
um
the interesting thing that goes with it
is it's actually not the only linux
computer on mars so
there's actually a matching snapdragon
801 in with zigbee radio and
it's in the belly of the mars
perseverance rover and that actually
communicates with the helicopter by
having the rover which is the primary
computer for the whole mission that
rover passes a set of data to the
computer on
the rover the snapdragon 801 on the
rover via a uart um i think it's just an
1115 board you know regular old uart
like you'd use to talk to you know a
little embedded computer on your desk
and then that processes it sends it over
to the to the helicopter with the zigbee
radios on board them both
and then that's how they talk together
now
there's also a third so that third
computer was actually the one that
recorded all the pictures and video that
we saw during the perseverance landing
so if you remember the seven minutes of
terror and a lot of the footage that
came back during that was actually being
sent back from a linux computer running
off usb cameras in a ruggedized compact
pci system
so
let's get into what's difficult in space
i'm going to stick to the stuff in space
because
making things sturdy for launching into
space is that's that's just regular
engineering you can make it more sturdy
you can seal it up put packaging foams
and and other stuff to keep things in
place it's not as much of a it's not a
challenge we're going to focus on here
um
you know so
space radiation
is probably the most obvious one that
people tend to get because the super
dense ram is already vulnerable to
cosmic rays we get bit flips and these
sort of things that's why we have ecc so
the electrical transients we get from
radiation is a pretty well understood
thing but it can even degrade silicon so
if you get a high-energy cosmic ray that
slams into the silicon chip it can
actually damage the chemical nature of
that silicon and and physically degrade
that chip which over time can lead to
failures um
air
there's no air in space it is a vacuum
and air takes away heat from everything
down here on earth so space doesn't let
us get away with having too much heat we
have to be really careful about that
uh volatile substances also outgas in a
vacuum all the little oils and things
that sort of make most of the world move
around here on earth you have to be very
careful about them in space because they
will slowly evaporate in space and
coat instruments and equipment that you
don't want coated in these things and so
if you put a camera up there and you're
not careful about what you assemble this
with you might end up with this oily
film over your camera that ruins
everything
the vacuum being a very good insulator
means that you can get these massive
electrostatic charges of over 10 000
volts just building up on the surface of
a satellite which is why you have to be
very careful about your grounding and
your installation and the electrical
connections um and a silent killer from
many many years back that's still a
persistent problem is tin whiskers which
are these really fascinating little
sort of icicles that grow out of
tin
parts and if you get them growing in the
wrong places they can create shorts so
you can get electrical shorts in your
equipment just growing out of the
physical equipment just over time if you
don't you know take the effort to not
use tin solder
and and to try and make sure that you
don't have any tin leads in areas
that comes back to again the electrical
grounding because you get these kinds of
discharges with those kind of
electrostatics as well
and
you have to use things like the
outgassing because
um yeah so your thermal management is is
the key mainly the rest of it is just
careful engineering
for what you have to do with those
hardware failures
you end up using a lot of consensus
algorithms uh hardware redundancy and
you can if you're lucky have radiation
shielding
um power is another fun one because
uh on the earth power is easy to get we
you know usually you're not going to be
too far from where you need to be or if
you're putting something somewhere you
can plan for it and easily stick a
little windmill or a solar panel or
something and it doesn't matter because
you can just put it on the ground or on
a pole or whatever
in space you're not so lucky
because every kilo you have to send up
costs a lot of money and so you want to
use as little as you can and solar
panels aren't terribly light at least
good ones so you've got to carefully
balance the amount of mass you're
willing to give to having a solar panel
with the amount of mass
you're willing to get
you know power from
so
very careful trade there and the same
thing goes for batteries because
batteries are fairly heavy as well um
you do have to be careful about which
kinds of batteries some won't work in
space you can't just have a regular old
lead-acid car battery the water would
evaporate and it would be dead so you
tend to see most things using things
like lithium-ion batteries now yeah
there were more fancy complicated ones
back in the day but that's mostly
started to phase out now and and
lithium-ion batteries uh just like the
18650s you see in sort of like the the
vape pens the drones the remote control
cars and all the other things that they
go into these days um
communication is the other big one
now on earth it's pretty easy to set 24
7 communication in most places you'd
want to put a computer
even if it's just via a radio link it's
not too hard and on earth radio links
are quite easy to get because you can
you can use wi-fi or you can use laura
or any of these other unlicensed bands
that let you do whatever you like with
them
in space everything needs a license you
can't actually have any kind of a radio
in space without getting appropriate
permits it's it's pretty paperwork heavy
so you tend to see fairly narrow band
very specific radios that you only use
when you're over a ground station that
you control
tends to make all that paperwork a lot
more easy so you end up with the
situation where your communication
window
might be quite short so maybe just one
hour as it's quickly or less than an
hour even as it zips overhead and then
it might not be overhead again for a
whole week so you might only be able to
talk to your satellite once a week for
30 minutes and in that 30 minutes you've
got to tell it everything it needs to do
for the next week so you tend to send
your instructions in batches use data
compression as much as possible um some
people are now experimenting
experimenting with satellite to
satellite communications so the kind of
companies like um inmarsat and
iridium are now providing
through various companies in the
aerospace industry uh modules you can
use on a satellite that will give you a
tcp ip connection just like your home
internet but to the satellite because
they've put a tiny radio on the
satellite that talks to the satellites
further up
and then
just like if you're an airplane with a
satellite phone it can talk up to this
satellites above it and you get a
consistent regular old
network connection to the satellite but
these things are all trade-offs in terms
of cost and power and a lot of people
get those so
same thing goes for the other thing that
people are experimenting with now to get
more data even if it doesn't get them
more time which is optical communication
so you're starting to see more
experimenting around laser
communications so using high speed laser
links just like if you effectively it
even uses the same frequency of light
actually
the same kind of lasers just more
powerful as you would see in a fiber
optic connection between two networks
which is in iraq so you know uh
1500 nanometer sort of territory laser
light
just through the air not through a
optical fiber so
that's the sort of challenges and
responses we have to some of the
problems in that and and
you know that's just a very high level
stuff um
but
similarly high level we have the kind of
ways you approach
you know uh keeping the reliability so
you tend to with all those challenges
want to break down and isolate your
failure domains so you get control
domains where you put as little uh
responsibility on a piece as possible so
if you have an instrument uh it will
only be responsible for its own tasks
you'll have effectively a button a
software button so to speak that says
take picture and a software button that
says give me the data and and you won't
expect it to be managed by the same
computer you'll have small computers
spread around in order to delegate the
tasks and and separate that risk out uh
the same thing goes for super
supervisory hierarchies what you get is
you get a chain of these things so you
get
top down control you get a most
important thing and then less important
things and and you can make those less
important things less robust to save
money you get watchdogs good
old-fashioned watch dog timers to let
you know if something's dead and give it
a kick to try and make it come back and
you get good old-fashioned redundancy
i don't really think i need to go too
deeply into redundancy
most people who get into computing and
you know listen to linux conferences and
stuff have probably come across the idea
of a redundant system before you know
either through a load balancer or
redundant power supply or some other
redundant hardware it's a pretty common
concept kind of self-explanatory
you see it a lot in spacecraft you get
redundant hardware
you just do
control domains are there for isolating
failures like i said so you minimize the
complexity of each subsystem and you
increase the robustness only where
necessary so if you're willing to
sacrifice a science instrument there
you can make that one holding the beaker
you know die at the drop of a hat
because it's the least important thing
and you can trade the kind of
protections whether they be cost or
power or
mass because you're always trying to
trade those so you can trade those to
put the robustness where it is most
critical so you can have your power and
communications and data be
more robust than the instruments on
board so that you've always got those
working and then you know you can have
your your management one be the most
robust system you might have that spacex
style triplicate redundancy on your on
your mission management computer or it
might be the only radiation hardened
piece of equipment on the whole
satellite just just to guarantee that
level of reliability you need to get
that working
we've got watchdog timers
they are very widely used software and
hardware versions of them exist
if you haven't come across a watchdog
timer it is essentially something going
are you awake are you awake are you
awake
you have a reset loop and it resets
every time you get that positive
response saying it's awake if it isn't
awake and you expire the timer you kick
it
they get fancier you've got ones that
have self resets
precision timing ones that you know send
the message before the timeout and much
more fancy versions for specific use
cases but in general principle you see
them used in a whole variety of ways in
this in domain because it's one of the
staple systems for increasing the
reliability of a system you you keep an
eye on it and if it dies you reset it
and if it doesn't come back then you
start investigating your failure
you get the supervisory hierarchies
which is part of that whole if it dies
kick it make it come back so
you might have a watchdog in software so
your operating system running the flight
control software might be looking at the
flight control software and going hmm i
didn't get my answer back fast enough
reboot
but that's a very high level version
what you see when you actually break it
down and start to look at these kinds of
watch dogs is it starts to look more
like this
so you'll see a sort of division between
systems there you'll have that lower
half which is your you know payload
control
and then you've got your
flight control on the top half so you've
got software watchdogs coming from your
flight control software watching all the
parts of your payload control software
so that your flight control knows
everything that's going on in all of the
subsidiary systems and you've got
varying hierarchies of these things so
that you've got most critical stuff at
the top like i said back on that
ingenuity helicopter one they had an
fpga that was radiation hardened for
power management that's the kind of
thing that you might put at the top of
this kind of a supervisory hierarchy
because it's the piece you know is most
reliable you you have it this sort of a
chain of trust in these control systems
and management processes to kick things
back to life in order to avoid losing
your mission
and and even that is an abstracted
version because when you actually get
into the sort of examples that people
put up in textbook versions of this it
starts to look way more complicated it's
a lot more like that in the real world
but
we don't have time to sit here and talk
through a process flow like that that's
no that's no one's idea of fun
so let's talk more about making an
actual space worthy linux so
if you have your linux kernel what do
you have to do with it in order to
actually make it safe for space
well
you're obviously going to need to have
the drivers and software for the
hardware you want that's your first
problem but linux has a lot of those
built in but a lot of space hardware is
pretty custom so it might not have them
you might need to build those and test
them
in both software and hardware because
sometimes you're driving hardware like
case in point recently the unlatching on
something like the mirror in the james
or space telescope they had software
driving that and that software had to be
tested that it matched the hardware that
when the software tells the hardware to
do something it's not telling you to do
the wrong things you test the hardware
and the software
and then you have to you know have the
mission management software on top of
your kernel to actually do that so you
get this interface there of software
talking to a kernel asking hardware to
do things and the software on top of it
and then it ends up being a very large
amount of integration testing
so so that is actually the primary thing
and you know the the 80
that gets done is is validating testing
revalidating re-testing changing
revalidating re-testing because it's all
about reliability and and you have to
try and make that reliability threshold
get reached
uh real-time operating systems are one
of the ways you get that uh it's a way
you can have a hard real-time versus a
soft real-time versus a i don't care
it's the question of is it okay to be
late if you have to send a signal to a
motor or a valve or a sensor or
something um and it has to happen
exactly on time or it might break you
might need a hard real-time system if it
only has to be fast enough
you might only need a soft real-time
system uh if you need to have something
that responds instantly to a sensor the
moment that sensor is tripped
you again might need to have a hard
real-time system because you might need
something that can always handle that in
the moment it happens nothing blocking
it and immediately handling that
interrupt
again this comes down to preemption and
interrupt handling and the final part
being scheduling algorithms uh
scheduling algorithms in real-time
operating systems tend to be more fair
they tend to guarantee you get a certain
amount of time
and your software then has enough time
to do its job um you kind of trade
guaranteed time for throughput so each
individual process doesn't have as much
power but they all definitely get time
which is part of the basis for rt
preempt you get the scheduler
modifications
it started out back from ingomola and uh
to 2005 start off with the 2611 kernel
uh it added two more preemption levels
which are how deeply you can say no
immediately respond to this uh and
those have
in large part actually wound up in
mainland but there still is a a chunk of
code that has yet to become mainline
kernel um and even with all of that work
over you know over a decade's worth of
work there are still small sections that
are not fully preemptable even with your
fully preemptable mode turned on uh they
are the most critical parts of the
kernel that there just hasn't been a
good way to make preemptable so so even
with the real-time patches there are
going to be places where linux
might not work and you might need to
look at a different real-time operating
system say like free free rtos or
something if you need that truly hard
real time
and that free free free rtos is a
real-time operating system sponsored by
amazon and it is
another open source example that could
be used in instead of real-time linux in
that scenario
embedded linux is what you'll normally
find used in these environments you get
things like yocto and open embedded
you get build root i didn't include
linaro in here because it's sort of out
of fashion in the embedded space it's
kind of more of a phone thing
you get open wrt
less commonly because it's not as
flexible uh it works where the hard work
gets done to make it work but it's not
as inherently flexible um you also see
sort of more high level build tools like
a number of tools are built on top of
debian such as isr and elbe which
combines some of the lower level things
like build root into automation tooling
to take and combine your own embedded
debian version
and there are similar tools for the gen2
ecosystem so again two being a very
flexible linux distro has a number of
tools to build down into tiny embedded
images um
and then there's obviously the do it all
from scratch um which has been part of
the process in a lot of these other
cases like the uc linux ones would
likely have been quite custom from
scratch ones
this is the sort of thing you see
gradually becoming more and more common
is the reusability and repeatability
which is where you started to get the
software ecosystem come together
so there's things like cubos which is a
build route based custom linux
distribution
and nasa's cfs and opensat kit which
builds cfs on top of linux so
you get the coreflight system which is
an operating system agnostic uh flight
software set it does a bunch of hardware
abstractions and uh it runs on a number
of operating systems it's built around a
message bus so that you can have
multiple people all talking together
without any piece getting blocked again
getting back to that real time thing
they have to do their job immediately
and it has a number of things that are
already built for common spacecraft
tasks but it's not really well designed
around beginners the a lot of the
documentation is very technical down in
things like registers mode sets and and
very low level documentation it can be a
bit intimidating to get get your head
around and it is more designed around
real-time systems linux is it's not
treated literally as a second-class
citizen but it is definitely a less
supported platform they view it as sort
of a development target for getting your
development environment up and running
and and getting started with that kind
of a thing
um
the
the other one i mentioned was cubos
which was originally developed by the
qboss corporation they are no longer
maintained it
and
the
issue for them was that they were seeing
more customers come for their um
for their mission operations management
software stack not the software on the
satellites so they naturally shifted
their business but it is open source and
it is actually maintained by a community
uh as as you saw there there is actually
a still group of people keeping that one
open um
and it's as i said earlier a linux based
system using build route a large portion
of the stack is built in rust uh they
have rust and python sdks and it uses
graphql apis between the talking of the
components so it's quite a more modern
environment than the very low level
uh you know
like the very different contrast is a
very more modern uh
graphql it's hard to get more modern
than that when you compare that to sort
of a a
raw memory message bus
and as for how i actually end up
traveling down here is because um i
decided i wanted to build a satellite i
was looking in the mirror one day at the
start of the pandemic in 2019
and well 2020 i guess and and sort of
was like i really should do something
and uh yeah i decided to build a
satellite you can see there that's the
uh
my benchtop prototyping it doesn't have
all the pieces it needs it has the
computer hardware it needs the rest of
it is just space to make sure i've got
room for things uh like batteries
yeah i don't know you can't really see
it in there but that's a battery from
linux linux.conf that iu from 2015.
um there's a raspberry pi wedged in
there and there's a a fairly large
camera lens of my own in there um but
yeah that's what dragged me into getting
stuck into all of this um
i still want to get that finished
so naturally i'm still involved in all
of this
which leads to the bigger picture so
as you saw earlier the number of
satellites being launched with linux is
rapidly growing but a lot of it is
uh if if
the information is being published is to
believed
fairly antiquated with the exception of
ones that are frozen and kept up to date
so
you see a situation where you know we've
got
a need for a bigger organization the
situation is quite a bit similar to
where the automotive industry was a
decade ago we had the start of the
automotive grade linux project in 2012
and it might be time for us to see an
equivalent in the space and aerospace
area we have a number of things around
the drone and the the aero in aerospace
but we don't really have a equivalent
for space um you know and and there's a
number of things that might be relevant
for us to do um
yeah so uh
questions
hello it's me again i'm here to ask
questions that was a great fun talk
uh
we've got a bunch of questions if people
want to vote them in the questions tab
so that we can prioritize the popular
ones and take the rest to the text chat
afterwards uh we've got about six
minutes for this
um
that was so good uh the first question
that we've got
is are security concerns a common
consideration for space platforms
especially since the systems are related
to human well-being
oh ab absolutely in in the uh diagram
there there was a it might be a little
bit hard to see but there's actually a
whole block there dedicated to security
uh things like encryption are called out
and and it's one of the primary systems
in you know in the actual control flow
um you know the
from the telecommand block on the left
side there straight down into the
authentication and the decryption and
the security before being passed on to
anything else and encrypting the
downlink as well so so encryption is
definitely something that is actually
considered an important part of these
systems absolutely
that makes a lot of sense
uh our next highest voted one is how do
these systems get tested on earth
uh that is a fun and interesting topic i
skipped over my little one
because i have been getting to grips
with that now on
a lot of the commercial projects it gets
built
custom for your project you'll build
your test harnesses you'll build your
own
uh testing equipment you'll wire up a
system to a test harness and you'll have
it hooked up to signal monitoring
equipment like a signal analyzer and
things like that and you'll guarantee
that your software is sending out your
signals with the exact right timing and
you'll run it into a simulator that
determines whether it's doing things
like that so
you'll effectively like using something
like the dragon capsule as an example
they would have the computers hooked up
to a flight simulator and the software
running on the computers would fly the
simulator instead of a person to test
that the simulator
flies the way the computers are supposed
to fly it and you sort of build these
scenarios up in order to do testing um
that's the large end on the smaller end
with things like these open source
projects and and where we really need to
start seeing more things is is similar
to the regular embedded space you you
need things like reconfigurable micro sd
cards in order to
flash an os image onto a piece of
hardware run it through a test cycle and
then
critically test that it upgrades
correctly because
what you need to be able to do is you
need to be able to send up a whole bunch
of data and then have it do the update
while you're not looking and if it fails
it has to fall back uh there's been a
number of instances over the last few
years of the
mars rovers needing to fall back more uh
engine yeah more ingenuity than
perseverance um
sorry curiosity instead of perseverance
and and it has had to fall back to its
alternative computer a number of times
but this is routine they build them with
two computers an a and a b
and they do this naturally in order to
have the level of robustness in that
fault tolerance stuff we mentioned
earlier but to do that on cheaper
hardware where you don't have a billion
dollar budget you you do that in
software you have things like how on an
android phone if your update is broken
you fall back to the old version and and
we need to be in a position to test that
sort of thing on
regular old linux and and you test that
with things like a reconfigurable micro
sd card
that makes a lot of sense that's really
cool
uh our next question is given how much
of linux has been historically based
around community and that linux in space
is entirely deopolized by the two
largest satellite operators how do we
encourage sharing their learnings to
enable more small operators to leverage
this for small smaller missions i'll put
that in the text chat
this slide right here um i'm i'm
wondering if that question was asked it
was earlier on before i
yeah yeah no that that is actually
something i'm quite concerned about um
i'm i'm sure that the people at spacex
are doing an absolutely
tremendous job um they are running a
custom kernel so i'm sure they're
putting on all the security fixes they
find but it's 3-2
so
you know that's that's getting kind of
long in the tooth um
maybe in a situation where it's being
talked to by other equipment that might
not be good i mean they're not obviously
having any random computer connected to
the into the rocket or the space capsule
they're in control of all that so
they're not really at risk there but
it's still
the sort of thing that if your satellite
is talking you know as part of a network
you need to know about and so we do need
a bigger community we need to to start
looking seriously at starting a broader
community around this
that's really useful um
i lost track
the problem with doing this out of water
is that now it's out of shape
uh i'll go from the bottom what's the
market share of linux and space these
days compared to traditional embedded os
says this is an early question as well
so you've probably answered this one yep
definitely covered it on uh
it was uh
back to here 40.5
that was a very early question
uh what sort of code encoding methods
are used for these platforms also is the
linux networking used locally or for the
up down link
uh interesting example considering i
stopped right on the correct slide here
the linux networking is used internally
for cube os uh so it's actually using
http with regular on on the loopback so
these services are all popped into ports
on the loopback ip address and they will
talk to each other on the loopback so
you see it's actually using the linux
native stack internally but for
communication up and down uh barring the
instances
where there's someone who's using uh
like like i mentioned earlier there's
these companies that are developing sort
of
satellite to satellite communication so
that you get the equivalent of a
satellite internet connection but for
your satellite
other than that
no because
the space to ground and ground to space
is normally done over radio protocols
sort of more more akin to like frame
relay where you'll just build a big
buffer of data broadcast it up with the
radio on the other end giving you
minimal acknowledgement and then you get
an acknowledgement at the end of your
broadcast and then
it comes back
it's a little bit more sophisticated
with optical stuff it tends to be a lot
more of a continuous acknowledgement of
the data transmission but it's still not
a proper tcp sort of native networking
stack but
there are definitely a number of
projects that use that internally
because it's quite a valuable way to
break up a system so if you want that
robustness in terms of having things
split into multiple segments
you will often have those two segments
talk over a network stack so you might
have
something like a
like a network switch done in a you know
brad hardened fpga
and uh you might split the two computers
in half
i will cut us off there uh we are out of
time and i have missed an important
question which i'll put into the text
chat there are a few other questions as
well cats sniffing i'll definitely be
sticking around to uh answer the
questions
i head into the post talk chat for kia
ora theater and then um
next up we've got ryan verna with
virtual events behind the scenes of an
engaging community conference and
for people as well if you're a
professional or a contributor uh ticket
holder remember to join us from 6 30
aedt in venulis for the professionals
delegates
uh networking session and a really
interesting presentation from anthony
green on election analysis thank you so
much sam this has been really great i
hope you have a great rest of your day