As the world becomes more digital, the distance between software and hardware widens. Unspoken competition, gatekeeping, differences in perspective, these reasons and more push experts from the software and hardware spaces apart. So what is the key to furthering collaboration and innovation in technology development? In episode 6 of Traceroute, we look deeper into the digital space and how it intrinsically connects to physical hardware. Open-source advocates Jon Masters and Brian Fox share their insights on hardware and software proprietary rights, and how the road to renaissance lies in open source.
We arbitrarily separate ourselves into hardware and software people. We say, oh, I'm a software guy and or a girl and all those hardware people, they do this and whatever, all the hardware people will say, well, you know, those software folks are all crazy. Most of the time that stuff happens because we don't talk to each other. We don't understand each other's languages. We don't understand the troubles that we each face.
GRACE: This is Traceroute [rowt]...
a podcast about the inner workings of our digital world - all the PHYSICAL STUFF that most of us never have to think about. In a world that is increasingly defined by digital…. We look at the real people and services building, maintaining, and scaling the internet.
I’m your host, Grace Andrews. a technical storyteller and product evangelist at Equinix.
In this episode: OPEN SOURCE.
##[Act I: What’s Software Got To do With it?]
When you make a cup of coffee in the morning, you're turning on your coffee machine. Your coffee machine is completely standardized device in many cases. In most cases, your coffee comes in a bag. It's a standard size. You know, everything just kind of plugs together. You turn the faucet on to get. The water out well comes the water comes through plumbing, the plumbing is all a standard size, it all just clicks together]
Jon Masters is a distinguished engineer at Red Hat, an open source enterprise software company. But just because he tends to focus on software, doesn’t mean he ignores the physical stuff that makes it run.
People don't worry in the morning about when they turn on that coffee machine, do my or my water pipes. The right size is my electricity running at the right frequency. All this kind of stuff, it all just works because of standards that exist behind the scenes that make that work. And that's the sort of stuff that we do an infrastructure to. We build very boring, elaborate standards so that the average user, if they don't want to, doesn't have to understand every layer of what's going on.
Red Hat has been around since the early 90s, and became a public company around the turn of the 21st century. But Masters’ journey in tech began before that.
I'm a recovering software person, My father was a high school computer science teacher, If you're a kid growing up in the 80s and your dad has lots of fun toys, that's quite dangerous to get you started
Masters knew he wanted to get into the software space - he studied it in school.
But then I realized later that I might have made a terrible mistake just focusing on software.
You fall into these things based on, you know, your own experiences and those of others around you. And I really enjoyed starting with software. But, you know, I could see a different world where I started from the other side and started from the hardware perspective
Now, many people in the tech space, they focus on one or the other - coding, or building physical things. But Masters thought that was a lost opportunity. And so in recent years he’s spent a lot of time getting to understand the hardware that supports his software work.
I've got very, very far down the stack into, you know, transistor level technologies and semiconductor fabrication and you name it. But so what I like to think of is my definition of full stack engineer is different than many other people's definition. My definition is somebody who likes to think about fields of transistors, wiggling metal stacks, connecting these transistors, staring up above like trees, and then little signal signals wiggling up and down as these transistors do things that are interesting to us. And and then looking at it from the software side, talking down the stack to get these transistors to dance]
In some ways, his journey is emblematic of the entire tech space right now. Because as cloud computing has brought about a renaissance in the development of hardware - more people have become interested in how the two intertwine.
If you look at where the industry is going right now, hardware and software, they were always important counterparts to one another. You know, Alan Kay had this great quote that was People that are very serious about software should make their own hardware. And I think there's a lot of truth to that. I think that the next few years in particular are going to show that there's tremendous value in having hardware and software people.
I'm very interested in hardware. I'm very interested in software and the intertwining of the two.
Masters points out just how much the software industry - and the internet - really need strong infrastructure. But just as important - hardware also needs those developments in software. As more and more people awaken - or reawaken - to this reality, it means a LOT of opportunity. And some of that opportunity comes out of the growth of open source software -- and the trend of open hardware.
I think it's very interesting to see what's happening in the hardware community, in a sense, mirroring what happened in the early days of open source software. So today, I think the open source software space is tremendously sophisticated, a very developed landscape of different vendors. You have the cloud vendors in particular coming up now, driving a lot of interesting developments that are happening, as well as the traditional players. And it's a very established space that that has a lot of people contributing and a lot of people understand the rules of the road.
To understand the parallels in today’s heavily networked environment between the openness of hardware and software… we need to go back to understand a bit more about how the free or open source software movement began.
##[ACT II Software and Open Source]
My name is Brian Fox. I am an open source advocate and a technologist.
I've been involved in technology since the very early 80s and was the first employee at the Free Software Foundation where I wrote some pieces of software, some of which you might know, like the bass shell of the maintainer, VMAX and so forth
Fox has worked at a number of startups. And he understands the roots of software.
Software was a way to express ideas the same way writing down a mathematical formula as a way to express an idea, and there were people from many walks of life who wanted to express their ideas symbolically
If I tell you I have a memory location and a computer and I'm going to put the number 65 in that memory location, what does that mean?
We don't know what it means.
It means what we say it means. And this is true for everything that humans do. This is the way humans communicate. This semantics, this notion of semantics is the way we communicate. So when somebody writes a computer program, they're simply expressing some collection of ideas they have in a structure that I can read the same way as if they had written it down in English or if they had written a song and made me feel emotionally a certain way about something. And so the meaning in software is what is what people put into it and what we're able to get out of it. I want to be able to consume your thoughts, your thoughts and profound thoughts on the way the world works. And some of that is delivered to me in software.
We might think we know how software works, because we use it each and every day. But what’s going on behind the scenes is a bit more complicated.
So a computer has a central processing unit and it speaks in what we would call very, very simple binary instructions, you know, add a number, divided number, so forth.
And then on top of that, we'd like to to to create an environment that makes it easy. We'd like to create an abstraction that makes it easy for us to do many things simultaneously on this computing platform, which I mean, you can't do that with a standard processor.
So we have to fake it by time. Slicing your access to that processor. And the thing that does the time slicing is called the operating system. So the operating system manages the software that runs on that computer. It manages your access to the hardware devices. It manages the access of those programs to those hardware devices and basically is the interface between the the human and the hardware, if you will.and the best show lives on top of the operating system. But that is the kind of most touchable form, most touchable form of software that talks directly to the to the operating system.
In the early days, students and academics wrote a lot of the code. And it was all about sharing.
FOX: They shared all that code because why wouldn't I? I'm working on a vision detection system and I want the other guy who was working on it to also be able to enhance it in the direction that he cares about or that she cares about. And it shouldn't stop me. And that way we can
share and collaborate and the entire science moves up
That noble vision of the early years didn’t last long, before proprietary software showed up, says Fox.
It kind of shut that down. It meant you couldn't share your ideas. You couldn't say, well, you know, here's a formula that you can use and let's further the science. Now, I understand something about audio. Maybe you can build a telephone and maybe you can build a radio. And we didn't have that.
And the people who still believed in the importance of sharing code - well, it was from them that the idea of free software - open software - was born.
Free software is software that is unencumbered by a license that prevents the the recipient of the software from. From sharing that software with other people the same way the software was shared with them.
Free software and open source software aren’t exactly the same thing, Fox says. They often get conflated. But behind both is the idea that people should have access to code. There’s an ethos behind this kind of idea sharing.
Most of the people who advocate for open source come from a place of ethical understanding, it's there. You can patent many things, but you can't patent a mathematical formula. And the reason for that is mathematical formula are the building blocks of the of productivity, of the things we want to make know products and processes and so forth. And and so if you put if you put a restriction on that, you're putting a restriction on innovation and on the exchange of ideas.
The thing that makes something open source isn't specifically the collaboration, it's the openness of the collaboration. It's the idea that, well, here's here are not only my database definitions, but the code I'm using to talk to those database definitions. And you would like to take this application that I've built and add a feature that you find important or useful. And you're not only capable of doing that, but you're capable of giving it away to the rest of the world so that other people can build on top of that feature, other people can get the advantage of that feature and so forth. So that for me, this is the benefits of open source
And there’s an institution that backs this vision of open access. The Free Software Foundation.
The Free Software Foundation is the grandfather of what people like to call open source and what we like to call free software, we mean free as in speech, not as in beer The non profit was founded in the mid 80s…with the idea of making free software for the masses.
Your average computer programmer at the time used something called Unix, which was owned by Bell Labs. The foundation set out to try to build a full blown, free operating system based on Unix. It wasn’t always easy.
Now, at the Free Software Foundation, we use what's the what's known as the cathedral form of development, where there's a small group or a single person who's kind of a dictator over the project until it reaches a certain maturity and then everybody can do what they want. Now, that entire process is open and they're open to hearing arguments and discussions about everything. But somebody is the gatekeeper to the final say so.
The “dictator” for this project realized it wasn’t quite working. But around the same time, a software engineer named Linus Torvalds independently came up with an important piece of the puzzle.
He did that in the early 90s. And then there was a complete system and it was called Linux. And that complete system immediately started to take off. Hobbyists started to use it right away. And then, you know, as the. As the Internet grew, its very interesting idea, but as the Internet grew, people began to understand, oh my goodness, these servers are actually just commodity items and we could run commodity software on them. Why are we paying for Sun and Netscape and all these things when we can actually have this free as in price software running?
One of the big software players to come out of that process… was Red Hat itself. And the vision the Free Software Foundation had - to create a free version of the most common industrial operating system at the time - it’s had a lasting impact.
Everything became Linux computers because suddenly you didn't have to pay for a Unix computer anymore, you didn't have to have kind of all these heinous licenses to deal with and to think about excuse me. And and everybody had access to a high quality engineering industrial system, including hobbyist programmers and people who programed at home. And those people started building software that mattered to them.// it was similar to what happened with the spread of the Macintosh and software with the Macintosh in the Apple, except that the spread happened like wildfire because the access to develop and deliver on a platform that was ubiquitous was that was pretty intense. And that wasn't really the the case before for for these types of applications.
This operating system - is still ubiquitous today.
So let me let me put it to you this way, nearly every computing device out there is running. Open source software that I wrote. That's that's an interesting thing, your Mac comes with my software in it, your PC has my software in it, every server on the Internet has my software in it. Most not most many phones have software written in it.
And so that especially when we started talking about the Internet and the need for these commodity servers everywhere. So every server basically ran a version of Unix, whether it was Sun OS or. Any of the others, but they went away because Linux kept maturing because of the nature of open source and the, you know, hundreds of programmers working on it as opposed to dozens. You got a very robust system that satisfied the needs of the users.
That's that's the beauty for me, this is the beauty of open source that that we can build something useful and then that utility can be delivered, can actually be delivered to the people who want to use it.
Even as the tech landscape has drastically changed, Brian Fox continues to believe in the mission of technology that is open to all, and the free flow of ideas.
You've certainly heard the phrase pay it forward. And you've probably. Felt that way yourself, maybe you've given somebody something, you know, I gave 20 dollars to a person who needed it and and somebody else had given me twenty dollars when I needed it. And I'm paying it forward and it feels good to to be doing that. What if. You didn't do that.What if somebody gave you 20 dollars and you're like, great, I'm never going to give anybody 20 dollars, I'm only going to be the one who receives it.
For me, that's an ethical problem and that is a problem that can exist with common open source licenses. It doesn't have to and people don't have to do that, but it's possible for them to do that.
The common knowledge is, oh, we can't have open source software. Everybody will do what we're doing. And that's not true. Everybody won't do what you're doing One place we’re seeing free and open source software have a big impact today is in the growth of blockchain technology.
From Ethereum, you know, Bitcoin, Ethereum and so forth, these crypto currencies and other projects like the Orchid Project, which I co-founded, these are all about free software and exposed and delivered software for everybody to use and to collaborate on and and build upon. And that is that is the future. That is at least the near term future of our world, where it creates a it creates a new Internet, which is much more like the old Internet where everybody was able to share equally. And and we didn't funnel everyone through proprietary and and commercially owned, you know, networks. I think I think Block Chain is a is a great area for open source, and I'm very excited about that
Today, Fox is working to enable another kind of free internet - one that’s free from surveillance. At Orchid Labs, the startup he cofounded, he’s looking to solve some of the problems he sees in the way the web has developed.
To me, it was very interesting at that time that we had gone from everyone used one computer, the mainframe to in a lab, for example, to everyone had their own computer that they used. And that was good. We distributed the computing, but we lost the community. You know, it used to be that you log into the mainframe and you're like, who's here? And you'd see, oh, 10 other people are up working on this mainframe. I want to talk to.
His company is working to bring this kind of community back - and building a new kind of network. The hope is that people have more freedom to do what they want online, without always being tracked.
I mean, this is exactly what. What social networks provide? But instead of having all these things be centralized, they were decentralized, each machine on the network provided services to other machines on the network. We didn't have a central machine that had the information about who was working where. 00:41:02] And so that is a structure that is a semantic structure for a network where where everybody has their own agency and people make decisions about whether they're part of the network or not. there's no choke point. There is no central place where where people stop communication from happening
And for Fox, like many others - it’s important to have open access software - just like it’s important to have access to the building blocks of technology -- infrastructure and networks. More on THAT connection... after the break.
[Act III: From Software to Hardware]
While many people still think of software and hardware as totally different spaces, one couldn’t develop and improve without the other.
So if you take a look at your cell phone a lot of people have these very expensive computers in their pocket that do amazing things
Again, Jon Masters of Red Hat.
If you look at how, say, the iPhone is built, the iPhone is a computing device. It also has software. But inside that device, it has a lot of hardware that's very heavily optimized to perform particular functions they call these accelerators. So when you take a picture and it does all kinds of processing of these images, it's using special purpose hardware inside the phone to do a lot of that stuff. And what that does for you is, number one, it performs whatever function it is faster than would be possible if it was just doing it in software.
Phones might be an obvious place where software and hardware work better together. A less obvious area might be in the building and running of servers in data centers.
We're going to see a lot more special purpose hardware that integrates very carefully into future platforms because it will give you a lot more performance and it will also save energy.
And Masters predicts this will only accelerate - as the ability for hardware to continuously improve... actually slows down.
And I would add one more thing, which is I think the the obligatory Moore's Law is dead kind of quote, which is that over the past few decades, we've seen multiple phases in the industry. We've seen a phase that ended about 10 or 15 years ago where every year. Computers were getting, on average, fifty two percent faster is what the numbers said, so Moore's Law talks about transistor density and the economics of silicon manufacturing. But what it translates into is that if you did nothing and ran the same software every year, it seemed to get 50 percent faster, which all that meant was that software developers would find ways to use that. And the software never seemed to get much faster. But you had the hardware just magically doing things for you. And what happened about 10 years ago is that that started to completely run out of steam
So if we want to continue to see faster and faster computers - we’ll need new ways to improve tech.
We have a lot of chips now where we have what's called dark silicon that you can't actually power up because if you did, the chip would melt so many transistors now that you want to have doing stuff. And if you couple that with what's happening as the world transitions towards you and everybody's got a smartphone, everybody's processing data. Everybody wants to do all kinds of machine learning and inference at the edge and all these different kinds of things. There's this explosive desire for interesting amounts of data processing happening just at the moment where we're not getting just magically faster computers every year. And so there's a renewed interest in could we do things very differently.
When it comes to internet infrastructure, improvements in hardware and software have been necessary for networks and the cloud to grow. One way the infrastructure industry has been able to do that is through the rise of open hardware.
Now, Masters is quick to point out that open source hardware and software aren’t EXACTLY the same thing.
So with open source hardware, you know, somebody still has to build a High-Performance implementation of whatever it is if you want to take over the world. And that still costs a lot of money, even if you have entirely, you know, collaborative development with low cost in terms of people, you still have tremendous costs in terms of fabricating the high performance and chips, if you want to take it that far. So it's not the same because software I can I can iterate it. I can share it with you. I don't have the same the same cost model.
Licensing can also differ between physical items and lines of software. But there are important parallels, especially when it comes to openness. Like software before it, many companies have been worried that they need to hold their hardware technology tight. But in both places, opening up the technology to others can actually spur more innovation.
In the case of software, open source code allows for developers to build on others’ ideas and create something even better. In the case of hardware, standardized physical technology allows companies to put their time and energy into other kinds of value creation, and worry less about keeping their hardware under lock and key.
Masters says both trends are a good thing long term - because openness and sharing - mean greater access - and more opportunity.
I'm a big believer in trying to make technology more democratic and more accessible to people. The interesting thing with modern sort of composable architecture and, you know, cloud and similar online based elastic infrastructure, I guess, is that you don't have to go out and say, I want to run something.
The first thing I have to do is go and spend one hundred thousand dollars or a million dollars or whatever it is just to get started right in the same way that I can. I don't have to have a thousand dollar cell phone. I could go and buy a 30 dollar Raspberry Pi and I could use that to do some interesting stuff.
But the fabulous thing about the world we live in now is that you don't need to do any of that. You can come up with an idea. You can rent infrastructure by the hour. That's far more reliable than anything you could build for yourself on. And you can deploy some very fabulous technology, again, very inexpensively.
And that's as we've seen with the sort of app economy we live in now. Right. Like anyone can try something new, they can, you know, spin it up and scale up when they get successful. But if you only have 50 users for your app as you're starting out, your costs are pretty low because you didn't have to go and, you know, speculatively build a crazy amount of infrastructure just to see how it would work]
[Act IV: Here in my Car]
One way this increasing connection between hardware and software might play out? The way many of us get around every day. In CARS.
There's a transition happening in the automobile market or the automotive market, you know, not just cars, but trucks and busses and all kinds of transportation. And, yes, you see a trend towards self-driving vehicles and all of these things, but you also see a trend towards, you know, software is eating the world and it's also eating all of these things.
And cars of the future are, you know, basically computers on wheels with all kinds of capabilities. Today, says Masters, the auto industry is going big on general purpose software.
So instead of saying this is a heavily integrated embedded system with hundreds of millions of lines of code that's written specifically for this one car and will never run on anything else, or if it does, we'll have to do a lot of work to move it over instead of basically welding this thing shut. Wouldn't it be great if you could take that and put that into some of these new emerging spaces?
For car makers, this could mean building new hardware standards, so that this kind of general purpose software can run on top of it.
And this hardware and software - won’t just be limited to the cars themselves. Because there needs to be developments in network infrastructure as well.
So I think there's that moment in history when you have that we have this does that iPhone moment, right, when someone brings something out that's completely different and it upends an entire industry. And I think people equate Elon Musk and the launch of Tesla vehicles as that kind of iPhone moment for the automotive industry, because what he's doing is very different than what's come before]
Tesla might just set the tone for the auto industry - and other areas - for the way hardware, software, and networking can come together.
He's running standard, you know, Linux distributions basically on computers, in his cars. He's doing over the air software updates. He's pushing the idea that you buy a car. And then a lot of the features are software that just gets better over time] Thinking about how these systems can work together also allows for flexibility - and growth.
You don't know when you launch a device, all the uses that might come later for it. And if you make that all fixed function at the beginning, at the outset, you can't change it later. On the other hand, if you have a big flat screen and you can just create soft buttons, you can add some interesting button to do something else later.
And the growth of a company like Tesla is made possible not just by the products they make - but by the improvements in hardware and software more broadly - the innovations that have made networks what they are today.
So, you know, for every autonomous car you see driving around, there's a data center somewhere that's doing a tremendous amount of processing on the back end to make that work. So Tesla is collecting tremendous amounts of video.
They are using very, very aggressive image processing to construct, to reconstruct a representation of the environment that they're driving in that requires a tremendous amount of machine learning in the vehicle. But it also requires a tremendous amount of processing in the back end. And they will take all this footage that they've collected from all these vehicles driving around and they will analyze it to death on the back end with all their their infrastructure.
And it all requires strong, modern networks. Which is part of the reason many people are so excited about the advancement of 5G technology.
5G is about not just high bandwidth, but also very low latency. So you're going to have networks over the next few years that will allow a lot of these vehicles to be communicating in real time with backend infrastructure and getting smarter and doing all kinds of analytics] For the tech to work well - and safely - a lot of this processing has to happen on the device itself. Devices need to get smarter.
You can't wait for a cloud sender somewhere to say whether or not to hit the brake, but you can do some analysis on the back end and teach a car to get smarter at recognizing bicycles and telling the difference between a bicycle and a unicycle. This was an example that that Google had with their self-driving cars, where at first they couldn't tell the difference between a bicycle or a fixie bike where somebody was idling and just like their feet were off the ground and they had taught their cars that you can tell a bicyclist is waiting to go because they're stopped at a stoplight. They have their feet on the ground. Well, then the car saw a bicycle with a fixie bike where somebody was idling, moving the pedals back and forth and they were not on the ground. And so the car got very confused and didn't really want to move through the intersection because it was afraid this bicycle was about to start racing ahead any moment.
This is the kind of situation where it'd be very hard to predict ahead of time if you just had simple rules that that a bicycles are a thing that you need to worry about. these platforms have to become very adaptive in terms of learning and processing and taking this information off the back end and feeding that to the devices that are at the edge and then in the cars.
And increasingly companies will also start relying on edge computing to get the job done.
In these future networks, what you see is you see a lot of traditional sort of. Data centers doing processing, but you also have what's called edge computing, which means lots of things to different people, but effectively it's moving a lot of that compute closer to the action and in the case of autonomous cars. That's because, I mean, effectively, you could you could have you can have very, very high bandwidth between two different data centers. You could have pretty good bandwidth between, you know, a 5G phone and a data center.
But at the end of the day, you're never going to have all the bandwidth you might want right now to have every single device that might need to do some processing at this exact moment and get a timely response. And the idea with edge computing is that you can bring some of that processing much closer to the action. So instead of me talking to a data center, I'm talking to some equipment that's co-located with the actual cell network that I'm using. Maybe it's next to the antenna, next to the the cell tower, doing some processing there locally. And then it's communicating just a little bit of information back to the back end.
Autonomous vehicles, though, are just one example where the future of tech means the need for better hardware - as well as software.
I think hardware matters. I think if you are a software company, it may seem to. Be boring in a solved problem underneath, but if you want to go into new and novel areas, you actually need to start caring a lot about what's running underneath.
And for Jon Masters, he sees a future where more people can be interested in both worlds.
I want to see a world in which there are not hardware people and software people. you know, software people tend to not understand that hardware has tremendous complexity. And there are some things you just can't implement in hardware without having tremendous cost and time or efficiency and hardware. Folks tend to not always embrace the idea that software can be hard to change, because even though it seems like you just tweak it and do whatever, you know, you might want to run that same software on different pieces of hardware. there are impedance mismatches sometimes in terms of our understanding of one another. And the way to solve that is to talk more to each other, not to put ourselves in little boxes. So if I could have one wish in life, it would be to remove that us versus them kind of language and just have us all collaborate more together. And I think that's going to be very important in the decade ahead.
Next time on Traceroute...
ALI FENN [00:22:42] when you think about sort of what I call the the negative underbelly or the the negative, you know, the down side or dirty underbelly of this industry it's a little bit out of sight. Out of mind People think, oh, it just things just all magically running, but they don't see these massive data centers like that are literally just booming everywhere around the world.
Thanks for listening to Traceroute, an Equinix production.
Our theme music is by Ty Gibbons. Be sure to subscribe in Apple, Spotify, or wherever you get your podcasts.
You can learn more by heading to metal dot equinix dot com slash traceroute.
Want to get in touch? Reach out to us at [metal dot equinix dot com]. And make sure to leave us a review and tell us what you think!