You wake up one day in the morning, make a commit to the Linux kernel and go on with your life. Three years later you find out that this kernel with your collaboration is used in Ingenuity, the helicopter that has made history with that first autonomous flight in the thin atmosphere of Mars. Boom.
That’s the story of Antonio Larrosa (@antlarr), who works for SUSE (a well-known Linux distribution) from Malaga. It is not the only one, and in fact in Xataka we have also had the opportunity to talk to Daniel Stenberg (@bagder), head of the curl and pycurl projects that have also been used in Ingenuity. Even NASA has given him credit for it. Boom (II).
Two developers with many sticks in the world of Free Software
Antonio Larrosa is a mathematician, but he tells us that “I have never worked as such. In 1995 I started using Linux and since then I have been an advocate and developer of Free Software”.
For the last eight years Antonio has been working on the well-known SUSE distribution, and he does it from Malaga, “where I participate in the development of both SUSE Linux Enterprise and the openSUSE, Leap and Tumbleweed distributions”.
The first thing we asked both developers is if they knew about the involvement of their work in the Mars 2020 mission and the Ingenuity helicopter.
Antonio told us how “the truth is that before the Ingenuity flight I had not seen any announcement about it, but I had no doubt that at least they would use the Linux kernel in most of their systems”.
The truth is that NASA has long been taking advantage of the power and versatility of Open Source software for various projects and space missions, and in fact this agency has a large repository of contributions that it shares with all users and that allow taking advantage of some of these advances for projects of all kinds.
We learned that Ingenuity boasted Open Source at heart a few weeks ago, but as Antonio says, the use of this type of projects is extensive in NASA, which for example will also take advantage of several Open Source developments for its next lunar rover, called VIPER, to be launched in 2023.
Daniel Stenberg is another old Open Source rocker. He is the main responsible for the development of “curl, an Open Source project that allows using a command line tool and a library for file transfer over the Internet”.
To give you an idea of the magnitude of curl, “it is estimated that it is used in more than 10 billion installations globally and is one of the most used software components worldwide”.
As Daniel tells us, “the project was born in 1998 and I contributed as a hobby for many years, but since 2019 it is my full-time job”, and although his dedication there is full, he also contributes to other Open Source projects.
This developer was also unaware of how his work on curl was being leveraged in the Ingenuity mission on Mars. Still, he explains, “I’m used to users using FLOSS (Free/Libre Open Source Software) without notifying the people running those projects. It’s normal and there’s nothing strange about it. The most surprising thing is perhaps that this is a space mission with FLOSS code in it. It appears to be the first of its kind, and it’s a mind-blowing development.”
Proprietary vs. Free Software debate rages on
The ubiquity of Open Source code and Free Software is legendary. The eternal phrase “this is the year of Linux on the desktop” may have become an Open Source meme, but the truth is that Linux has won the war.
It has done so invisibly, it’s true. The average person knows that there is a Windows, a macOS, an Android and an iOS, but what many do not know is that these proprietary developments have a strong relationship with Open Source projects.
Android is in some ways an extension of Linux for mobile devices (the AOSP project on which it is based proves it), for example, but there is even more, and that presence is noticeable in all those web services and applications that work thanks in large part to Open Source projects in the field of web servers or databases.
This situation means that the debate between proprietary software and free software is still present. Antonio believes that “doing something of this magnitude exclusively with proprietary software is, in my opinion, totally impossible”.
For this developer, the hardware used at Ingenuity “is very specific” and must therefore be adapted to very specific needs. “In this sense, the advantages of free software over proprietary software are indisputable. By having all the source code at their disposal they can control exactly how everything works without depending on a manufacturer allowing (or not) a change.”
The head of curl development was of a similar opinion, “Almost everything in software can be written proprietary or open source,” Daniel Stenberg clarified, “so it sure could have been done either way. However, with open source,
there’s going to be less vendor lock-in, a longer life of the software, and a greater ability to cooperate on software with more developers all over the world.”
In fact, he added, the pace at which everything is moving forward in the technology world means that “it’s not possible for companies to write all the code
themselves and keep it proprietary.” Instead, many of them rely on open source and use it, something he calls “a sound and wise business decision to make sure they can compete.”
Small and large contributions to a Martian helicopter that has already made history
What our two protagonists demonstrate is that in the end, small contributions matter as much as big ones. Antonio Larrosa acknowledged that “in reality my contributions to these projects have been quite small”, but as he pointed out, “I like to think that this is precisely what Free Software is based on, many people making small contributions can create something big in the end”.
In his case the collaboration has been in three projects: “the Linux kernel, where years ago I added support for a very specific hardware, numpy a scientific computing library where I fixed a compilation bug a few months ago, and flask, a framework for creating web services where I fixed a coding problem in the function that sends a disk file over the network”.
Antonio, as Daniel pointed out at the beginning of the interview, had assumed that all that work is done but they never think about where it will end up being used. “Simply when for work (as in the case of numpy) or while programming in my free time (as in the case of the kernel or flash) I see that if something fails in some application or library I try to fix it. Then I send that change to the developers so that they can include it if they think it is convenient in the next versions”. This is once again the spirit of the Open Source community, emphasized this developer.
Daniel explained how “for this specific Ingenuity helicopter mission I have been told that two particular components are used to which I have contributed code: curl and pycurl. I am the lead developer of curl and have made almost 2/3rds of all the changes to date.”
It’s funny, but as this developer commented, “the version of curl that NASA uses is very old, and in those days I had made an even larger part of all the changes. I basically wrote the code that performs data transfers using internet protocols such as HTTP, FTP and the like”.
Daniel explains how “I had no idea that NASA used curl until a few months ago. Even then I didn’t know what they used it for until the very day I found that Ingenuity helicopter badge on my GitHub profile,” a sort of symbolic award recognizing his indirect contribution to the success of a historic mission.
How does it feel to have helped Ingenuity make history on Mars?
Our last question was aimed at finding out what these developers’ feelings were about how their contributions have enabled something as spectacular as achieving the success of NASA’s mission with their Ingenuity.
Antonio felt “very happy to have put an (infinitesimal) grain of sand in something so important”, and also recognized that this was the work of many others such as Daniel Stenberg himself and other developers like Dario Faggioli (who fixed a problem with the kernel process scheduler) or Marcus Meissner (who has worked on various subsystems, mainly on security issues), colleagues of his at SUSE and both with badges for their contributions to Open Source projects leveraged by Ingenuity. On Github they also recently paid tribute to those contributions.
Precisely Antonio said goodbye “encouraging all readers to collaborate with any Open Source project they like. It can be done in many ways: fixing bugs, adding new functionality, writing documentation… even the mere use of Free Software is a form of collaboration, especially if they can report bugs. All collaborations, no matter how small, are important and make Free Software better for everyone (including NASA) ;)”.
Daniel also felt especially good about that contribution: “I offer my Open Source code to the world in the hope that it will be used and appreciated, so when that goes to a level where it is even used in a space mission the feeling is spectacular. It makes me very happy!”.