Episode 29
Stack/Unstuck: The Overlooked Operating System
Show Notes
The operating system wars are over. We’re still left with Windows, Linux, and MacOS—along with Android and iOS. Many argue that there’s little left to accomplish with the bottom of the software stack. But work on the OS is far from over.
The kernel and user space provide the literal foundation for the rest of the software stack. Drivers, networking, and countless other features are abstracted away as common resources so the other layers of the stack can focus on their own functions. So when the overlooked layer gets an upgrade, it can really make a difference.
Transcript
00:02 — Colin Walters
When I started out, I have a sense of the infinite possibility of software, especially developing software. I felt like what I can do is sort of just limited by what I can type. No one can fly if they just flap their wings hard enough, right? But what is the limits of what we can do with software?
00:19 — Johan Philippine
So that's Colin Walters. About 20 years ago, he fell in love with coding and programming and tech industry in general, and it's all thanks to an operating system.
00:30 — Colin Walters
Where I got interested in Linux was in my dorm room in college, we only had one modem that was shared between four of us in the dorm room. I had a friend that knew stuff about Linux and he came and he set up a big PC box at the time and had a modem, and then we all connected to that box via ethernet.
00:49 — Johan Philippine
So his roommate turned his own PC into a router that the four of them could then share the internet connection, because back in the day options to do that kind of thing were pretty limited.
01:01 — Colin Walters
And this is of course, before wifi routers existed. This is before wifi, right? And I was like, "Wait, that's neat. He can just take this PC and make it do this thing that was really useful to all of us." Now of course, the next year, the school did deploy ethernet for everyone, which updated the need for this. And of course everyone now has wifi and cheap routers, but it was so interesting that he could just make this computer do this. I was only sort of familiar with Windows as a user. That's what led me into Linux and operating systems, is what can I do with the computer?
01:35 — Johan Philippine
For this episode, we've reached the alleged bottom of the stack, which is the operating system. Now, while some people view it as passe, it's a layer that provides the foundation for the rest of the stack, and there's a lot to learn.
01:51 — Brent Simoneaux
This is Compiler, an original podcast from Red Hat. I'm Brent Simoneaux.
01:57 — Angela Andrews
And I'm Angela Andrews.
01:58 — Brent Simoneaux
We're taking you on a journey through the software stack. We call this series Stack/Unstuck.
02:05 — Angela Andrews
If you want to listen to it from the beginning, you can start from our episode The Great Stack Debate. Today's episode, the Overlooked Operating System.
02:17 — Brent Simoneaux
Producer Johan Philippine is here to get us started.
02:22 — Johan Philippine
We're going to start with definitions like we do in this series. And I'm going to start with what is an operating system?
02:27 — Brent Simoneaux
All right.
02:30 — Johan Philippine
So the basics is that it's kind of a bridge from the hardware to the software. It used to be that operating systems were tied to the hardware. And if you changed computers, you'd have a whole new operating system to deal with. At some point, operating systems like Unix came along to provide kind of a movable platform that made changing the hardware less extreme to the rest of the stack. So you'd be able to get a computer, install Unix on it, run your software. And eventually if you wanted to move to a new computer, you wouldn't have to rewrite that whole software stack again to work with the operating system that was tied to the hardware. You could just run it on Unix again, which would know the differences between the hardware and do that translation for you.
03:14 — Brent Simoneaux
It seems like a pretty big evolution, right?
03:16 — Angela Andrews
Let's be honest, if you're a Mac user, you still deal with this. You can definitely cut that, but I just needed to let you know that we really have not moved too far away from this, but I digress.
03:30 — Johan Philippine
That's true, right? You can't move between macOS to Windows or Linux very easily, if at all. If you're on a PC and you go from one PC to another, it doesn't really matter what the processor is anymore or what the graphics card is anymore, right? That operating system is doing the bulk of the work for you-
03:48 — Angela Andrews
Exactly.
03:49 — Johan Philippine
... in making that connection from the hardware to the software.
03:52 — Brent Simoneaux
And by hardware, what kind of hardware are you talking about here?
03:55 — Johan Philippine
Well, it's pretty much everything. Any physical piece of technology that needs instructions while the operating system is going to translate the code into the ones and zeros that the hardware is going to need to function. So it acts as that translator.
04:11 — Brent Simoneaux
So operating system is a bridge. It is a translator. It's connecting software and hardware.
04:18 — Johan Philippine
Exactly.
04:19 — Angela Andrews
You sum that up so beautifully.
04:23 — Johan Philippine
Now, Colin's going to help us out a little bit more with the different components of an operating system.
04:29 — Brent Simoneaux
Okay.
04:29 — Angela Andrews
Okay.
04:31 — Colin Walters
So usually what we say is you have the kernel, it is responsible for managing the hardware and sort of mediating between different processes or applications I talked about. What I usually call everything else is user space. That's what the kernel developers call it for Shark. Everything else to them is an application, and it's called user space. So that's things usually running with less privileges than the kernel. So most software that runs in user space shouldn't be able to crash the machine when we try and run most software with less privileges. So that's what we call it. So an operating system is a combination of those two things.
05:09 — Johan Philippine
In other words, the kernel is the translator we were talking about earlier, and it runs with the highest privileges. It's able to talk directly to the machine, and very few other things are able to do that. Now, the user space is everything that's built on top of that, and it handles everything from the graphical user interface or the command line and things like user authentication, web browsing and media playing.
05:33 — Angela Andrews
It's all been abstracted away.
05:35 — Johan Philippine
Exactly.
05:35 — Angela Andrews
It's almost like it just works, yeah. Can you imagine though if you were a developer and you had to concern yourself with, how do I get my Z to actually turn into 1s? Can you imagine that's how they used to do it?
05:53 — Brent Simoneaux
I mean, it's almost like a shared resource. Is that right, Johan?
05:56 — Johan Philippine
That's exactly what it is. It's a shared resource that applications can then make use of without having to become these huge things that would have to do everything, right? Like Angela just said, it's abstracting away a lot of features that the applications can then use without having to reprogram every time.
06:14 — Brent Simoneaux
Gotcha. Are consumer operating systems and enterprise operating systems the same, or are they different in any way?
06:24 — Angela Andrews
They're more alike than not, in my opinion.
06:26 — Brent Simoneaux
Okay.
06:27 — Angela Andrews
It's a difference of a couple of packages. It's the packages that you choose to install. Let's look at it this way. Say if I was running a Linux desktop distro, you could probably install a couple of extra packages and turn it into a server. They say, "Oh, servers don't have GUIs." You can install a GUI on a server. It doesn't matter. Most of us don't do that of course, but it's literally the difference in the packages you choose to install.
06:55 — Johan Philippine
But the bones, the bones are the same is what you're saying?
06:58 — Angela Andrews
Yes. The meat, it's right there. That's the same. It's what you decide to put on top of it.
07:03 — Brent Simoneaux
Okay. So the operating system, it acts as a bridge between your hardware and your software. And what it allows a lot of developers to do is not have to add in a lot of repeatable things into each application. And a lot of the most common operating systems, you got Windows, macOS, and Linux. And then in the data center and the cloud, it's Windows and Linux, right?
07:35 — Johan Philippine
That's right.
07:35 — Angela Andrews
That's correct.
07:39 — Johan Philippine
Now, there's a certain perception out there about the current state of development of operating systems. We're going to hear from Evan Stoner about how right now the development is apparently a little stale.
07:55 — Evan Stoner
The operating system shouldn't be interesting. I mean, if everything's humming along, that's the last thing you think about these days, is the OS and what's going on there. That layer is considered "done" as of a couple, I don't know, decades ago or something like that.
08:10 — Johan Philippine
Now, Evan's take here isn't rare. A lot of developers don't think about the operating system, and he's going to tell us a little bit about why.
08:18 — Evan Stoner
I think as we see the move towards public cloud providers and platforms as a service and Kubernetes, we are allowed as software engineers to think a lot less about the operating system. To a large extent, it's abstracted from us. And that's on purpose because if we can build our apps to run in the way that doesn't rely on the OS, it's much easier to move it around and replicate it and all that kind of stuff.
08:42 — Brent Simoneaux
This is a line of argument that I've heard quite a bit. Like you said, this is not a rare take on the operating system.
08:50 — Angela Andrews
This is true, but let's be clear, someone is thinking about the operating system that developers are running and writing software for.
08:58 — Johan Philippine
Absolutely.
08:59 — Angela Andrews
Someone is concerned about that and making sure that those choices and decisions are being made smartly for the enterprise.
09:09 — Johan Philippine
That phrase, again, that we'd heard in that the operating system has been abstracted away, it's made everything convenient to the point where it just works.
09:16 — Angela Andrews
It has.
09:18 — Johan Philippine
And that the portability that he is talking about is in large part thanks to Linux becoming the dominant operating system in the enterprise space, at least for new development. Any kind of disruption that happens in this part of the stack now usually takes place within the Linux ecosystem. And to some, that makes the operating system less exciting to work on.
09:39 — Evan Stoner
But under the hood, there's still an offering system and there's still things that have to get patched and updated at that level because all those types of functions around containerization and virtualization are what let developers have that abstraction a couple layers away. So it's almost like, I don't want to you call it the unsung heroes of cloud native development, but there's still a CIS admin somewhere who's responsible for that base operating system.
10:06 — Johan Philippine
I will. I'll do that. I'll call them the unsung heroes.
10:09 — Angela Andrews
Please do.
10:10 — Johan Philippine
Yeah.
10:10 — Angela Andrews
Please do. Hard emoji.
10:12 — Johan Philippine
It's a lot of hard work, right? they don't get enough credit.
10:15 — Angela Andrews
Shout out to all the CIS admins out there.
10:17 — Brent Simoneaux
I remember a couple years ago, there's a lot of conversation. Maybe it was just in the circles that I was running in at the time, but a lot of people were talking about this question of does the OS matter? And maybe it's like, to whom does the OS matter?
10:33 — Angela Andrews
That's the right question.
10:35 — Brent Simoneaux
Is that a better question to ask here?
10:37 — Angela Andrews
You're asking the right question, because developers are going to have an answer that's very similar to Evan's answer. But the rest of us, and I still kind of count myself as a systems administrator, that's what I've been doing for most of my life, making those decisions is such a huge part of our job. Making sure that what we decide to put on a system for you to run and write applications for, that matters. Making sure that it is secure, that it has the proper support, it's the right version, the compatibility, oh my gosh, there's a lot that goes into that thinking and it shouldn't be forgotten. We do it so you don't have to.
11:20 — Brent Simoneaux
Right.
11:22 — Angela Andrews
That sounds like a commercial or something, but yeah. You know?
11:26 — Johan Philippine
Yeah. And even if they don't have to think about it every day, it's really a mistake for developers to ignore the operating system.
11:33 — Evan Stoner
I always recommend at the organizations I was with before, that the developers there get some sort of Linux certification just to have a basic idea about what's going on under the hood, because so much of that is tied into that part of the stack that you really have to understand what's going on there. It doesn't mean you're going to build a career out of that, but I think just having that basic understanding gives you the appreciation for what that layer contributes to the whole process.
11:58 — Johan Philippine
Now again, that layer contributes a lot to the whole process. And in order for that to work, you need a lot of really smart people who do build a career out of working on the operating system and maintaining the operating system and configuring it properly. And that's how we're going to get back to Colin Walters who did exactly that. He's built his career around working on Linux operating systems.
(12:21):
We're back to Colin, and before we push back on some of what Evan said, we've been doing a little bit of that pushback, but we're going to cover a little bit about what he got right about the state of the operating system.
12:33 — Colin Walters
When I was growing up, Windows was the dominant operating system. And Linux, Linux was the up and coming challenger. I think it's very interesting how much technology has changed in that respect. Windows is still very important, but Linux has really become the de facto default in the cloud and on servers in a lot of cases.
12:57 — Johan Philippine
So there was once a lively competition in the enterprise operating system space. Linux has come out on top.
13:06 — Angela Andrews
It has.
13:06 — Brent Simoneaux
Yeah, that was pretty fierce competition too, right?
13:09 — Johan Philippine
Oh yeah.
13:09 — Angela Andrews
Remember though the OS wars? Ugh.
13:12 — Brent Simoneaux
Uh-huh.
13:12 — Johan Philippine
Yeah. And if you don't, you can check out our podcast Command Line Heroes.
13:16 — Angela Andrews
Command Line Heroes.
13:17 — Johan Philippine
The first two episodes-
13:18 — Brent Simoneaux
Shameless.
13:19 — Johan Philippine
... they're literally called the OS Wars.
13:21 — Brent Simoneaux
Shameless.
13:24 — Johan Philippine
All right, so back to Linux coming out on top. Here's a brief version of that history of those episodes, but essentially cost, customizability, and ultimately performance help Linux get there and stay there for years now. Becoming the standard and becoming somewhat invisible to application developers doesn't mean that it's no longer relevant though.
13:49 — Colin Walters
You know what I would say is it's just the operating system is very fundamental. It's something that you always need. I guess what I find interesting is the work that I do can have a potentially high impact, right? If I was able to contribute something that helps optimize the operating system, that sort of optimizes all the applications above it. And if I and my team does something that makes the operating system much easier to configure, that can have an impact across many industries, right? And so again, because of how pervasive the OS is, I just find it fascinating and rewarding because I can have a high impact across all these different industries.
14:27 — Johan Philippine
And there's a lot of room for optimizations, right? Because like we've been saying this entire time, the operating system handles so much all those shared resources that applications built on top of it use.
14:39 — Brent Simoneaux
Yeah, I see what he's saying here. Because he's working on the operating system, he just ends up helping an uncountable number of people out there, right?
14:50 — Johan Philippine
Uh-huh.
14:51 — Angela Andrews
Exactly. Because his changes, his optimizations, we all get to benefit from that. I mean, can you imagine having a job that when you do something, it impacts everybody pretty much? I don't know if we can even consider the gravity of that when you're working in open source and it's on a huge project like Fedora, right?
15:15 — Johan Philippine
Yep.
15:15 — Angela Andrews
And you do something that is super impactful and everyone who uses it gets to benefit. That's another unsung hero. We're using these products and it's like, "Oh, they're great. They're awesome. They work." Yay, open source, but it's people like Colin who really do deserve a lot of credit for making these operating systems safe and functional and giving us what we need to do what we need to do. So kudos to that.
15:49 — Johan Philippine
Now, one area of impact that the operating system has a lot of knock on effects is with hardware changes.
15:56 — Colin Walters
There's a bunch of different variants of this hardware, and that hardware requires something that's called a driver. That's a bit of software that knows how to program that specific hardware to send and receive packets and that sort of thing. And that's not something, again, that you would want every application to implement. If I'm a streaming music app like Pandora or a web browser or all these things, you wouldn't want them to need to be updated whenever a new wifi card comes out. So the operating system provides this level of abstraction drivers for the hardware, but also crucially, most of them support multitasking and fairness. So you can have multiple applications running and the operating system is in charge of isolating applications from each other.
16:44 — Johan Philippine
All of you parents and teachers and people who deal with multiple children at a time out there can really relate to this to some degree, right? The operating system using tools like memory isolation and resource fairness acts as an intermediary between applications to make sure that your music player doesn't crash your web browser or that one of them doesn't hog too much of the system memory so that the others can keep running smoothly.
17:10 — Angela Andrews
Everybody gets their fair share.
17:12 — Johan Philippine
Mm-hmm. However, that line is starting to get blurred a little bit.
17:18 — Angela Andrews
How so?
17:20 — Colin Walters
Yeah, taking a database, like a relational database, MySQL or Postgres, a lot of them use kind of standard APIs to write files. It's the same API that a text editor may use. If you just open up a standard text editor and type things and click save, crucially for example, something that happens normally is what's called buffering. So when you click save in the text editor or word processor or the database when it wants to save something, the normal IO path involves something called buffering where it doesn't immediately get written to the persistent storage. Instead, the operating system queues up data that gets written and then kind of writes it all at once because this allows a lot of optimizations. But it's a perfect example of where there's a level of performance. The operating system is being a strong intermediary here. And for databases, things that care about high performance IO, they increasingly have been using different IO paths. So there's one called O Direct where the application tells the OS, "Hey, don't cache anything. When I tell you to write, put this on the disc exactly where I want it."
18:24 — Brent Simoneaux
I don't think I quite followed that. Help me out here, Johan.
18:26 — Johan Philippine
So the idea is that the operating system, typically there's an API for different tasks, right? Each task has a different API, and then those applications then use those APIs to do those tasks, and the operating system then decides what order it's done. And that provides a lot of efficiencies. More recently, what's starting to happen is that some applications, some components of the stack for better performance, they say that they're given priority essentially, where they're given a different path, a shortcut that it still goes through the operating system, but it gets to jump the line essentially. So instead of everyone waiting in line together to be written to persistent storage, the database is saying, "Don't buffer this with the rest of the text editor because that's going to take too much time. Just write this stuff directly to the persistent storage so that it happens more quickly than having to wait for the buffering."
19:19 — Angela Andrews
Like fast pass.
19:20 — Johan Philippine
Exactly.
19:21 — Angela Andrews
You don't have to wait in line. You jumped the line.
19:23 — Brent Simoneaux
I was going to say traffic control, but I think we're kind of on the same metaphor there, right, Angela?
19:29 — Johan Philippine
Mm-hmm.
19:29 — Angela Andrews
Yeah, exactly. Exactly. Imagine that. I mean, the efficiency of the database not having to contend with the smaller applications with. It's a database server, its job is usually to do one thing. So it doesn't have to contend with the other services that are running on the system. That's smart design right there.
19:49 — Johan Philippine
And a lot of these changes again have to do with recent upgrades to hardware.
19:56 — Colin Walters
Increasingly, storage devices have been getting so much faster. There is a big transition on consumer hardware from spinning drives, hard drives to SSDs, which are much faster. And then especially on servers, there's modern... It's called NVMe drives, which are even a level above that. This IO stack is so high performance that the operating system has grown sort of separate high performance APIs that databases and things like that may use to sort of have the fastest path they can while still being abstracted from the hardware a little bit. Again, you wouldn't want your database to know how to write to a specific Samsung SSD, right?
20:38 — Angela Andrews
Point taken. But that's so smart though, that technology has moved us away from "Wait your turn before you get written. We're going to cache you all," to now, "You know what? I'm writing. This is me right here. I'm jumping the line." That is super smart. And for the sake of performance, drives have gotten so much faster. And for them to have this technology and the smarts built in, imagine where we'll be next, right?
21:06 — Johan Philippine
Right.
21:07 — Brent Simoneaux
This seems like just another example of the operating system making everyone else's lives easier.
21:15 — Johan Philippine
Mm-hmm.
21:16 — Angela Andrews
Basically.
21:17 — Colin Walters
There's levels of attraction and tooling, but there is a separate person whose job is, for example, to configure the networking for these operating systems, to manage the security updates for them to maintain that abstraction from the application developers. So in some cases I would say it's a goal that the operating system should feel invisible and automatic, but there's always going to be people there maintaining it and keeping it up to date, because as we have covered here, it's absolutely essential.
21:47 — Johan Philippine
So we made this point earlier, right? But I thought it was so important that we should make it again, because while we were earlier talking about using that point as to why a lot of developers ignore the operating system, here we're reiterating that it's important, but it's also the goal that it's invisible, right? You don't want the developers to be thinking about it too much even though it's providing all of this functionality that makes their jobs possible.
22:13 — Angela Andrews
True. But to Evan's point, even understanding a little bit of it, it gives you a healthy respect for what's going on under the covers.
22:24 — Johan Philippine
Absolutely.
22:24 — Angela Andrews
So I would never discount someone saying, "Oh, well, should I learn a little bit of Linux?" Yeah, you should. I really do think it helps you understand more of your job. And this is what this whole series is about, knowing and understanding bits and pieces of everything that's going on in the stack-
22:41 — Brent Simoneaux
Just enough.
22:42 — Angela Andrews
... so you can communicate and you can understand. So when a systems administrator says something to you about the operating system and how it's impacting you, you really do understand it and vice versa. It makes sense that we're all bringing this stack together so folks can communicate effectively.
23:02 — Brent Simoneaux
This seems like a huge responsibility though, right?
23:06 — Johan Philippine
Mm-hmm.
23:06 — Brent Simoneaux
I think if I were working on an operating system, I think I would be a little scared.
23:11 — Johan Philippine
I mean, it would be scary, right? The operating system handles so much and you're on that border between hardware and the rest of the software stack, especially for kernel work. But Colin assured me that like many other parts of the software stack and many other parts of software development in general, it's maybe not as scary as you might think.
23:32 — Colin Walters
Operating systems can seem intimidating, but actually it's not that hard to do and contribute to parts of it. Certainly it's easier to contribute to user space, I think. When people, again, think of operating systems, they often think of the kernel. I actually have not done much kernel hacking at all because the user space aspect, there's so many things to fix there. The kernel has a large community that's keeping things going. So definitely a message I would give is, if you want to make that transition, you can. If web programming, it's definitely possible to dive down to the operating system and learn some things and contribute.
24:07 — Brent Simoneaux
When he says contribute to the operating system, what kind of work is that? What exactly does that entail?
24:16 — Angela Andrews
I understand it to be, if you want to contribute to an operating system, you're contributing to its upstream open source project. And if there are things out there, like he said, there's so many things that need fixing, if you have an understanding of programming in general, there's probably tons of projects that you can look at that are being used in the OS and contribute there and make that difference. So to his point, everything isn't about the kernel, but that other stuff is super important as well. And if open source is something that you've ever considered, definitely look into some of these open source projects. I'm going to assume he's probably talking about Fedora. That is a very open and welcoming community.
25:03 — Brent Simoneaux
And large.
25:03 — Angela Andrews
Yeah, and it's large that tons of folks can contribute to no matter where your skillset is. So kudos for him for shouting that out.
25:12 — Johan Philippine
Yeah. In our conversation, he spoke a lot about the issues in user space that haven't been solved yet. Things like accessibility features that are still in development and could be a lot better. Things that, again, a lot of applications could use but just hasn't been developed yet, and that eventually they'll be able to share that resource in the future when it does get built. But in order for those features to be built, they need people to work on them.
25:44 — Brent Simoneaux
Maybe it's just my perception, but I feel like when people talk about working on, for example, the Linux kernel, I feel like there's this air of, I don't know, importance or like-
25:55 — Angela Andrews
Mysticism? Yeah.
25:57 — Johan Philippine
Uh-huh.
25:57 — Brent Simoneaux
... mysticism. Or like...
25:59 — Angela Andrews
It is. I mean, it's what talks to the hardware. It is so important. And it seems so far outside of the realm of what's possible. And as we've seen from previous episodes, it is not. It's very specific skillset. But because operating systems are so complex, the fact that open source makes it available for people to help and contribute and improve their own experiences, it's something special. So yes, the kernel is what it is. And although we've learned from some of our past guests, it's not as scary as it seems, but we got to love open source for making stuff like this so accessible.
26:42 — Johan Philippine
What's really great about open source is that software like the Linux kernel source code, is freely available and it's the basis for all Linux distributions. Now, these different flavors of Linux take that kernel and can modify it to fit their needs. But some of the more visible differences are in how they build the user space on top of it. And that's the result of different focus and priorities. Now, what's great about open source is that this source code is available for everyone who wants to build their own version of Linux, right? They can go ahead and take that kernel and change it and build the user space on top of it based on what they want. That's how we have this huge ecosystem of Linux distributions that's available, tailored to whatever needs you have.
27:31 — Brent Simoneaux
So in this episode, we've been toying around with two themes. One, does the operating system matter or to whom does the operating system matter. And then the second one is that the operating system might not be as scary as we think it is, right?
27:52 — Johan Philippine
Mm-hmm.
27:52 — Brent Simoneaux
I'm curious, Angela, I think you have some pretty strong opinions on that so I want to hear your final thoughts on that first question.
28:02 — Angela Andrews
Well, definitely operating systems are super important. I don't think we would be here right now recording this podcast if it weren't for an operating system that would support this type of functionality. There's so much that needs to be taken into consideration when you're choosing the right operating system to do the job. I know we kind of split it up in between Windows and Linux, but again, there's a little bit more to it than that. So making sure that the right choices are made, especially around security and functionality and support and reputation. They're so important when choosing operating systems, deciding what will be the platform for your stack. That's something that shouldn't be overlooked. But I do respect the fact that operating systems do their jobs so well that developers and folks like Evan who do their jobs day in and day out, they don't even have to think about it. So again, another hat tip for people who are managing operating systems out there. Shout out.
29:15 — Brent Simoneaux
And Johan too, that second theme that we've been sort of playing with this episode, the operating system isn't as scary as we might think it is. How are you thinking about the operating system now?
29:29 — Johan Philippine
I mean, full disclosure, before working for Red Hat, I worked for a company called CoreOS, which was basically a startup, initially centered around building an operating system for containers and stuff like that. So my thinking has always been along the lines of operating systems are important, the choices are important, and even though there's this perception that operating systems may be "solved," you can still have a whole lot of innovation within that space. Seeing that kind of thing and then having my experience be open to all the different operating systems that are out there, makes it seem like it's not impossible to go in and take the kernel and build your own version of Linux and do something that is useful to you and useful to your company, and that that's maybe not as scary as it's reputation would entail.
30:20 — Brent Simoneaux
I'm sort of curious for both of you, what advice would you give someone who is listening to this episode, maybe works in another part of the stack, for maybe learning just a little bit more about the operating system?
30:37 — Angela Andrews
I'd love to take that one. So for all my developers and coders that are walking this journey for the first time and learning about stacks, we hope these episodes really help make it make sense. But if you're choosing an operating system to be the foundation of where you're making your learnings, I would say definitely pick something that speaks to you, right? What exactly are you trying to do? Does it have to run on a Linux system or a Windows system? If you're building apps in Windows containers or Linux containers, what does that look like? So again, your mileage may vary, but do what speaks to you. Especially if you're in the learning mode, there's so much out there. And you can always change, which is the great thing about technology. You're never stuck doing the same thing. So I hope that helps.
31:34 — Brent Simoneaux
And it sounds like if you want to kind of dip your toe into actually working or contributing to an operating system, there are ways to do that, right, Johan?
31:44 — Johan Philippine
Yeah. And that's how Colin got his start 20-ish years ago, is he saw Linux in action and decided to go see if he could contribute something and went to the Deviant project and started contributing, and they welcomed him with open arms.
32:02 — Brent Simoneaux
All right. So that was the operating system. Johan, I'm curious what's next on our journey? Where are we going from here?
32:09 — Johan Philippine
So I asked Kim about the next episode.
32:12 — Brent Simoneaux
What did she say?
32:13 — Johan Philippine
All she would tell me was that it would include testing, PDFs and donkeys.
32:21 — Angela Andrews
That's all she told you? She didn't give you any more than that?
32:24 — Johan Philippine
That's all she told me.
32:25 — Angela Andrews
Okay.
32:26 — Johan Philippine
So we are going to have to tune in next time to hear how those things all come together.
32:32 — Angela Andrews
And we definitely want to hear from you. What's your favorite operating system? What's your favorite flavor of Linux? Hit us up at Red Hat on Twitter and Instagram. Always use the hashtag #CompilerPodcast.
(32:49):
And that does it for the operating system episode of Compiler Stack/Unstuck.
32:54 — Brent Simoneaux
Today's episode was produced by Johan Philippine and Caroline Craighead, Victoria Lawton makes sure no one hogs the spotlight.
33:04 — Angela Andrews
Our audio engineer is Kristie Chan. Special thanks to Sean Cole. Our theme song was composed by Mary Ancheta.
33:13 — Brent Simoneaux
We want to give a big thank you to our guest, Colin Walters and Evan Stoner.
33:18 — Angela Andrews
Our audio team includes Leigh Day, Laura Barnes, Stephanie Wonderlick, Mike Esser, Nick Burns, Aaron Williamson, Karen King, Boo Boo Howse, Rachel Ertel, Mike Compton, Ocean Matthews, Alex Traboulsi, and Laura Walters.
33:37 — Brent Simoneaux
If you like today's episode, one of the best things you can do is share it with a friend. It really helps the show.
33:44 — Angela Andrews
Thank you so much for listening. Until next time.
33:48 — Brent Simoneaux
All right, see you later.
Featured guests
Colin Walters
Evan Stoner
Stack/Unstuck
In this limited run of Compiler, we speak to people within development teams and communities to bring clarity to the tech stack.