FLOSS-873
Jonathan: This week, Aaron and Andy join me to talk about QNX. It's the other operating system that runs in a whole bunch of different places. It really has safety and real-time nailed down. There's just one little problem. This is FLOSS Weekly, episode 873, recorded Tuesday, June the 30th. Wait, that's not open source It's time for Floss Weekly.
That's the show about free, libre, and open source software. I'm your host, Jonathan Bennett, and today we're talking about a Unix or a Unix derivative or a Unix-like. I'm not sure which of those terms is technically correct. We're talking about QNX. It runs a whole lot of places. It used to run on your BlackBerry, and it runs a lot of places that you don't think about.
Maybe not on your toaster, but maybe on your car. Anyway, we've got we've got Andy Green and we've got Aaron Bassett to talk about QNX, where the company is, where they're going, what changes are there, and why, maybe you should think about doing some development on it. Let's go ahead and bring them on.
Guys, welcome. Welcome to the show. It is great to have you both here.
Andy: Thanks so much. Really appreciate it.
Jonathan: Thanks for having us. Yeah. And now, we gotta start with this. We have to start with this, right? So this is the show about open source, Floss Weekly, free, libre, open source software. We're not...
We don't do dentistry here. We do open source stuff. QNX, at least like the core of it, the kernel of it it's closed source. And what are we even doing here, guys? Get get out. What's
Andy: the conversation? Yeah.
Why are we on this show?
Jonathan: Why does this
Andy: make sense? Yeah, no that, that's very fair.
So I, we have had a kind of a really interesting and long evolving story with open source, and I think for some of your audience who may remember, we did go fully open source at one point in our history. And and that was like right around the time when we were acquired by Research In Motion for use in the BlackBerry, and they were thinking, "Hey this stuff is special sauce.
We really don't want this to be, like-" "... our... one of our defining characteristics. We don't want to be fully out there because we wanna actually have some of that proprietary goodness for ourselves, for our own phones." So we clawed that back. And so that that is something that I think, a lot of us in QNX were not necessarily...
we understood the business rationale for that and all that. But I think that there was always this feeling that, there's a lot of good and value that we get with working in the open source community and with the open source community, and we wanted to bring some of that back.
And so I think relatively recently we've had this, So I guess QNX Everywhere has been a program that, that both Aaron and I are part of both sides of the, on the technical side and on the s- sort of more on the business side. And that's been around for about a year and a half.
And that's been our start back to recognizing, l- look we need to be more involved with the community. We need to be more transparent. We need to open ourselves up a little bit more. So I'm not gonna make a commitment and say, "Hey, yeah, we're going all open source," or anything like that.
We're not gonna, make that same mistake of making commitments and then pulling back on them. But what we are doing is we are trying to open up a lot of the pieces that we see don't really have impact on our business. Because I'll be frank, there's a few different things that are factors as to where- whether or not we do things open source or not.
And one of the big ones is that a majority of our business is based on regulated industries. Things that either have functional safety components or cybersecurity components or things like that. And in a lot of cases there's this thing called SOUP, which is software of unknown providence that is an acronym that's used within those sort of, certification bodies or regulatory communities.
And having open source software in a lot of cases makes things extremely difficult to pass through certification. Not because of the testing or anything like that, it's because you can't really guarantee where that software has come from, or you have a very difficult time tracing the line through of all the edits that have been made to it- from different contributing parties. So we have to be super careful and super cautious about things that are gonna impact our business. So we don't we're not gonna go and say, "Oh, yeah, hey, you're, we're gonna open source the kernel," because then anybody can contribute to it, and then we turn around and find out, oh, somebody put this really super clever hack in that- wasn't really intended, all that kind of stuff, right? But to that extent, though, we are doing things like, making sure that we're open sourcing all of our board support packages, open sourcing our development, our driver development kits- ... open sourcing pieces of our software stack that actually originally may have come from open source and we've made changes to it or things that we don't think are, impacting, functional safety or any of those kind of things.
So keep your eye on that space because that's the one aspect and, but the other aspect is us working with the community because we get a lot of value out of working with open source and making sure that, like open source software runs on our platform or that we can use it or deploy it in, for either hobbyists or academia or, companies that are doing prototyping or proof of concept or R&D or any of that kind of stuff, right?
So there's a lot of people that are playing with different open source things, and we wanna make sure that all those people are enabled. So there's like a lot of things that are going on within the company right now around open source, and we think we're good open source supporters, and we do recognize that, yes, we haven't thrown the kimono open for everything, but-
but we're doing that in an intelligent way, right?
Jonathan: Yeah. I do wanna touch on one, one thing that you mentioned, and this is something that we've seen several projects make moves in this space. But the idea of when you're open source, that means that you accept pull requests.
And that is-- we've seen several projects come to the point where they say, "Look, we're open source. All the source is out there, but we do not accept pull requests," or, "We only accept pull requests from people that are already in the project." And, I think AI is leading to some of that. In some cases it's because of just very high code standard quality, code quality standards.
I think in other cases, though, it's because of that legal question. And so there's a relatively famous blog post from DHH that talks about this, and it's like open source is a license. It's not a community management style. And I just think that's interesting in this particular context to think about that.
And it goes all the way back to this idea of the cathedral and the bazaar, right? From ESR way back in the day. And you can do things that are free software and open and still, the monks in the cathedral are the ones that are slowly working away on it, and it's not just a bazaar where everybody can push code in.
Andy: No, I agree. And I, and, and certainly I've seen things where it's yeah, but people are gonna have to stop taking software because of all the AI slop that's being generated and I think, our approach to that might be, like, even more conservative than- ... is strictly necessary.
But I think that we're approaching this as a, we, we learned a lesson from what we've done before. We don't wanna actually, go a step far and then take a step back, right? So- ... so we're gonna do that i- in an intelligent way. I, the CEO of our company John Wall, has made a lot of comments about, how he feels that we, we should, open source as much as we humanly can.
But there are gonna be, w- we have to still do that with all of the processes that we adhere to, with all of the regulations that we adhere to, all the rest of that stuff. Honestly, yes, we could immediately pivot to saying, "Oh, yeah we're gonna just do an open source methodology and modality to manage all that stuff."
But kind of it's, I'll just say it's the path of least resistance to not do that- ... and to just say, "Okay, for those things that actually have critical components that we're j- we're gonna manage them the way that we always have," because we have processes that we know work that have been vetted.
We've actually been audited on all that stuff. We don't have to re-audit everything and re- like reinvent the world when it comes to that,
Jonathan: yeah. I, th- there's a lot more to talk about with this, but I do wanna bring Aaron in on the conversation. And you are- Absolutely ... you're part of the open source team, Aaron.
What, so what are the bits of, in the company that, that you work on specifically? What's the open source story there?
Aaron: Yeah, so primarily for myself, I work on the QNX developer desktop. So that is the self-hosted developer system that we've been making to allow Basically anyone who wants to use QNX, whether it's hobbyists, students, to get easier access to QNX.
Primarily it's been cross-compiled, embedded system, right? So you've done Arduino development that, you cross-compile your thing, you copy it there, you flash a board, you go there. A lot of people don't m- know how to do that or it's something they've never learned, so it's really hard to get into, especially at hackathons.
48 hours, let's learn how to cross-compile and flash- ... an SD card and everything, right? That's something you just don't do. But part of that is, is I maintain the package manager that we have for that. How many... couple hundred or thousands of packages that we have now that are in there that we've built and distributed across that.
So we touch a lot of stuff.
Jonathan: Have you guys found that that AI is making a big change with the way that people interact with this whole system?
Andy: Yes. Yeah. Yeah. Yeah, so I started this is s- cr- this job like just about a year ago. And when I first started doing it...
So I've been in the industry a long time, but I came back to QNX after running my own company for a while. But in any case when I first did it, we were doing, we'd go to a hackathon, we'd be seeing somebody's project, and they'd be like I guess we used AI to do part of this," right?
And hackathons now, it's "Yeah, no, we're 100% full in A- AI. We're- we- there's no bones about it. We're not being bashful about it. Like-" "... we just had Cloud Code do the whole damn thing." And it's like in the course of a year, like that's the perception- ... change that we've had, at least, from students, and maybe they're on the leading edge of that kind of thing.
Sure. But I don't think they're the only ones.
Jonathan: Yeah. So it, this is obvious. This is one of those observations that I made that's obvious in retrospect, and maybe I was late to this game, but open source makes AI work. And if you're if all of the things that you're doing is closed and not documented publicly, then AI is not gonna be able to do much with it.
But when you put it all out there- ... on the internet, and it's part of the training data, then AI knows exactly how to work with your stuff. I- is that s- s- part of the consideration that QNX makes with, like, how much of this to publish and how much to make open?
Aaron: Andy, I have an interesting observation on that.
So-
Andy: Yeah,
Aaron: please go for
Andy: it.
Aaron: Yeah, so I have been playing on on my own time, on my own hardware what does AI on QNX look like? 'Cause, again, you go to these hackathons, and we actually were just at an AI hackathon- ... at Berkeley, and very surprisingly, there's next to no code that knows how to write a QNX Resource Manager, which is how you do devices and drivers.
And I was able to, in an afternoon, ask it, "Hey, let's make a temp- like a memory file system," and it spit out some of like perfect QNX-isms, I'll call them. It knew exactly APIs I was able to use, how to do it, found the stuff that you're missing. But I was like what, like where did it learn this all?"
There's no code out there that it's open source, like lots of it that doesn't do this. And it may just, it's just all from our documentation. We have really detailed technical documentation that's all public and free. And just by scraping that, it's actually able to do- to do things like that.
I saw a lot of that at the AI hackathon. It was able to spit out things that looked like a professional QX, someone who's in QX development for years would write.
Andy: Yeah. Yeah. And actually that so that's a really good point and I'll come back to, I think, your opening comment, Jonathan, that led us into this, which was I don't know if it's Unix or this or that or whatever."
Yeah. And technically we're none of those things, but we are POSIX. So we're POSIX compliant- ... meaning that we use the same APIs essentially that Unix and Linux do for the most part. There's a little bit of stuff at the f- three signal layer that we differ for and Linux does and Unix does.
But for the most part, that means that a lot of stuff runs very easily or without, minor stuff. And when you start playing with the hardware or dealing with, some of the minutiae of device drivers and stuff like that, yes, then you can start running into some things where we're different because of the nature of a microkernel or because of the nature of real time or whatever it is.
But a lot of stuff will just work out of the box, and that's one of the really interesting things that, that we've been, like leveraging in terms of a lot of work that, that Aaron and team have been doing to, create all those things that are open source software but that runs on QNX.
Jonathan: What, what does that process look like? So if someone has, let's just say, an open source project oh, I don't even know what a good one would be. Nano. All right? Text editor Nano. They, I wanna compile Nano for this QNX board. What does that look like? Can we use GCC?
Does CMake work under QNX? How alien is the landscape for someone that's used to like Linux tools?
Aaron: I am confident enough to say that if I gave you an SSH connection to my RPi that has QNX on it, if you didn't run uname, you probably would not be able to tell the difference. I'll get rid of the uname thing, 'cause you're probably like, "Oh, uname, hey, oh, it's a QNX system."
It looks and feels like a Unix system. I can say the same thing about FreeBSD nowadays. You do SSH to FreeBSD, it, it feels and looks like everything you're used to. And that's one of the things that we really strive to with QNX Everywhere, is make the development system as close to as possible as FreeBSD or Linux, right?
So for QNX Everywhere, we have the, we use the Clang compiler for self-hosted development. Obviously for cross compilation, QNX uses GCC with our QCC wrapper, which is, has all the safety stuff for it. But yeah, you just have, you have Clang, you can run Make. We have Mason. Actually just recently, about a couple months ago, you can run oh, what's the Java one called?
Bazel. Oh. You can run Bazel on it, right? So we can... You can run everything on it. It's very familiar. Yeah. So- So but go back to your thing for Nano though. Nine times... you grab Git, you do your Git clone or grab it for release tarball. Start off with your standard configuration just like how you'd do it on Linux, and then start following the errors.
Most of the time it's just telling it, "Hey, QNX, we are a system, we are a Unix system. Please respect us." But past that, all our headers look the same. There may be the odd header that you have to like, oops, it's not at sys something, it's just in the regular location. Most of the time you're not massively touching the code base to fundamentally rewrite it, 'cause like Andy said, it's POSIX compliant.
Yeah. Nano is a very simple example obviously, 'cause, Nano's been around for a long time. I'm fairly certain it's already been ported to QNX, at least QNX 6.0 and probably QNX 4.0. I've found lots of remnants of QNX 4.0 and QNX 6.0- ... throughout a lot of old software Net- the Netscape libraries that power the web.
You'll find QNX 4.0 patches left in there. It's like, "Oh, wow, that's a history lesson for you."
Jonathan: It... And so you mentioned a package manager. Is there a package manager built into QNX that probably already has some of this stuff where you can just, you know, It's obviously it's not apt, it's not DNF, but, can I just install Nano if I want it on a QNX system?
Aaron: On QNX Everywhere, yeah, 100% that's what we started with, funny enough. We started with a package manager before we went self-hosted like compiling on QNX. We actually use Alpine, so if Alpine Linux, APK tools, their package manager. If you've done any Docker environments on Linux, it's like the thing you use to make- Yes
Docker environments a lot smaller. Standard. Yep. We just ported APK tools. We use their able package package builder system, so you know, if you've grabbed an Alpine Linux system before, it looks the exact same. It's the same tool.
Andy: So that is one place where I do, I wanna just i- insert my, my kinda legal tiny print quotes.
Yeah.
Aaron: The
Andy: legal version. Because this, that's all true on QNX Everywhere. QNX Everywhere is like our non-commercial version that anybody can download. But the stuff that we have for our commercial version, which is our SDP8 we don't have a package manager yet. So there's a lot of things that we're able to do I would say on the bleeding edge- that's in QNX Everywhere because it doesn't have to go through all the safety certs, because it doesn't have to, meet, like cybersecurity process, blah, blah, blah. So there's a lot of things that we can do there that takes us a while to do, and, in terms of moving those things over to product haven't been done yet.
So the package manager doesn't exist in a commercial product. So if you're actually doing the free version, there's a l- few things that you can do that you can't do on the other side. But that's just the tiny print. That's-
Jonathan: Yeah, and that's interesting. I think that's something to dig into here.
I went to the Ubuntu Summit recently- ... and there was a representative from Nvidia, actually, that was there, and was talking about their plan to try to make, in this case it was the Linux kernel actually compliant with some of the safety regulations. And safety with a capital S, you could say.
... Because there's, there's regulations and there's tooling around how this works. I- I assume because of the places that QNX runs, that's already something that's baked into it from the beginning. But what does that process look like both in the production versions, but also in trying to pull more of this bleeding edge and more of the open source world in to QNX?
Andy: Yeah. Yeah, that's a really good question. Like N- NVIDIA's a good example. Like we, ... NVIDIA has, I don't know, probably almost as many QNX developers as we have maybe. Because they, they do all of their own BSPs. So normally for a board support package, we would do the board support package.
NVIDIA doesn't ... So they're like, "No. No, we're doing all of our own." It'll ... And so they're very proprietary about their IP and who touches it and who knows what. Yeah. But as a result of that and because they're in all the automotive applications and stuff like that, we're on a bunch of their hardware.
Not all of their hardware- ... but we're on a lot of their hardware. And I think that they, like we're like their known partner for most of those sorts of engagements. I think that they probably want to expand that as much as possible to add Linux into the portfolio and things.
I know that there was a big exercise done by, some car makers and others to try to basically do a safety certified version of Linux, and they spent a lot of year like two years and a ton of money on- ... doing that. And I think they eventually came to the conclusion that they, it really, that they didn't wanna do it.
So what's necessary to do that? Honestly, I don't know. I haven't lived through that exercise. And to be perfectly honest despite the fact that I work with the colleagues that do that stuff is so incredibly boring. I like, I ... As soon as you start talking about "Oh, the safety this and that," like my brain just tunes it all out.
So I really can't like- You know, knowledgeably speak about what is required to do it. I just know it's difficult and we've already done it. So there you go.
Jonathan: Yeah, ... QNX is a real-time operating system, I think.
Andy: Yes.
Jonathan: Yeah. Yeah. That, that's- That's right ... that's one of those, that's one of those boxes you have to check to be able to be in certain places the actual drivetrain loop of a car or some of those things.
Yeah, interesting.
Andy: Yeah, it... it's funny though, but real time is a very flexible kind of a thing. For example you can use Linux with preempt RT patches and get a certain level of real time. But it depends on what it is that you need to do.
What real time means f- for you, right? I think for a lot of our stuff that needs super, super critical real time we have customers that use us because, they need to be able to respond to an interrupt within 10 microseconds or less, and we can give them that.
But that's super, super unusual. And in fact most things that I think you'd call real time, as long as you respond within a couple milliseconds, it's probably fine. And, Linux in the right environments can do that- ... most of the time. The problem is when the unusual cases happen, how do you manage that and things like that?
Yeah. I think the bigger thing that we contribute is the reliability aspect because we are a microkernel and because there's very little trusted code that runs in kernel mode, and pretty much all of the rest of the system runs in user mode. So all the device drivers, file system stacks, USB stacks, networking all of the other components that you might consider kernel mode drivers like in Linux, they all run as applications for us.
And so that way if they crash, doesn't bring down the system, right? So that tends to be something that has a very strong need across a lot of domains as opposed to real time, which is, I would say a lot of things in medical and robotics need real time, but y- and cars I guess too.
Yeah, cars too, de- depending on what it is. But a lot of the car stuff doesn't need it, right?
Jonathan: Yeah, and that's something else that's interesting. U- QNX runs on the head unit, but also maybe the engine management unit, and also maybe on a self-driving car in the loop to do the driving, right?
You've got- ... you've got a whole bunch of different places and different scenarios where you can run and with different requirements on each of those.
Andy: Yeah. I would say honestly though, we're not usually in the drive loop stuff because those are sometimes just microcontrollers that are bare metal.
They have no OS, no nothing. They've been fine-tuned by the, the OEMs for a long time, and people just don't wanna really touch them, right? So y- like when it's that critical a thing, you tend to not wanna play with it a lot. But to your point though, we're in a lot of different applications in the car, like domain or zonal controllers tends to be like the new thing where you're trying to like do ECU consolidation by taking a whole bunch of different modules in the car and saying, "Hey, look, we've got, 20 different 16-bit or 32-bit micros here.
Why don't we just put it all into one beefy 64-bit micro and just have it do everything that's there? Throw in a couple hypervisors or multiple different things, and we can manage all that stuff." And I th- that's the way that a lot of the automotive industry is going, and that sort of is a continuation of that is, more consolidation.
It's leading to autonomous cars and all the rest, right? So yes, you're right. There, there's a lot of different places that we can play.
Jonathan: Yeah. So I think you've probably... L- let me put it this way. I know the answer to this based on some things you're saying. But I think it's an interesting question all the same.
Can you do crazy things like take the QNX kernel and run a Linux user space underneath? Or do it the other way around, take your QNX user space and run it with a Linux or a BSD kernel?
Andy: I know we can run things on top of QNX because we have a hypervisor, and we do that all the time. I don't know about the other way around.
That might be an Aaron question as to whether that's technically possible or not. I,
Aaron: I guess it depends on what do you mean by user space? That's an interesting question. What's, what is Linux user space on QNX to you?
Jonathan: So I've ... I am thinking of user space being everything but the kernel, and I think the answer to that technically is no, because it's such a different kernel architecture, being a microkernel.
But I think it's probably interest- So maybe let's break this down into sub-questions. So what does the QNX init system look like? Can you run system D with... I don't know why you would
Aaron: want to, but- Oh, okay. Yeah. So yeah, that's an interesting question. So based off that, so system D, no, 'cause that is just it needs C groups and everything.
But that being said we're actually working on OpenRC right now for the QNX Everywhere system anyway, right? Yeah. We're using OpenRC 'cause it's just more around. We do have other init systems for the productized one it's called SLM, which is like a similar idea to OpenRC and all that.
It serves the same purpose, but and things like that yeah, you can usually just get any anything that is running Linux that is not using specific Linux sys call. So if you pick something and you say, "Does this run on Linux? Does this run on FreeBSD? Maybe macOS 'cause they're all Unix systems," then yeah, it should just more than likely run on QNX, unless there's a very specific thing it needs implemented like C groups.
Yeah, we're not gonna support C groups anytime soon. But-
Jonathan: i- is
Aaron: there
Jonathan: been some work done to emulate those things that you don't actually support?
Aaron: Yeah. Epoll is a great example. We actually have, ... So let's think. Epoll, timerfd, signalfd. There's one more I'm forgetting, but those sort of family of things.
We actually have user space implementations of those. It will run actually as part of your application. It will spit up another thread that actually handles all the epoll stuff for your program. Nice. But yeah, we do try to actually have compatibility layers. That was actually really important when I did when I ported Java.
Trying to write a, the, like an epoll style, like just doing like poll and select in Java would've been super slow, and I was able to just utilize our epoll user space implementation to accelerate the porting of it, 'cause it's good enough. Yeah.
Andy: Interesting. One of the- Yeah. One of the things- Kind of to your- Go ahead.
Oh, sorry. Go ahead, Jonathan. No, I was just gonna- I was just gonna say d- to that question that you were asking about like what's the boot process like. It's probably worth spending just a second or two to explain how QNX does it, which ... 'Cause it's very different from what a Linux or Windows world is like.
And so basically when we start up, the only thing that's really running is the kernel. And you, as the system architect, and because we're an embedded system, there, there's always this concept that there is going to be somebody who's like planning out what the system does.
So we don't really have a, out-of-the-box desktop model, other than some of the, QDD stuff that, that Aaron works on. But in order to do that, like you start with absolutely nothing. So if you want a disk driver, like you wanna actually see files on a disk, you start up a disk driver.
If you wanna actually talk to a terminal, you start up like, like a serial port and, so there's ... You actually literally start every service that you want- ... in the order that you want them, and that's like one of the things that's used to get us super fast boot times too, right?
So like- Sure ... in cases where hey the car starts, you don't wanna wait for three seconds while, like the whole thing is initializing. It's like you wanna actually start the car and go. And so that gives us, like the ability to get enough of the system up and running in, however many, 10, 15 milliseconds or whatever is required to do that.
But because of that, it is super different from, yeah init D, R- RCA, all those kind of things, right?
Jonathan: Yeah. Y- so Aaron mentioned something a minute ago, and that was his his Raspberry Pi. And I am- ... I am, I'm a Raspberry Pi geek. I've been a fan of- Nice ... of their stuff just as long as it's been around.
I added up one time how many Raspberry Pis I had in my house and, lost track after a couple of dozen. What is the, what does the process look like to run QNX Everywhere on a Pi? How difficult is that?
Aaron: I'm gonna say it's dead simple 'cause we just directly support it. That's the cheap answer.
From a process, I guess probably look at what a process of supporting it would be.
The nice thing is Andy kinda started off saying, "Oh, the kernel is the starter thing." There actually is one more thing above the kernel that is our, was the BSP. It's our startup code.
Okay. So right above the ker- the kernel is not the thing that actually initial- initializes the CPU cores. It does- it doesn't actually do that level of initialization, the startup code does. So the startup code is the first thing that hits. So when you're flashing an RPi you have- we have a little syntax on how to say I want this startup code and then this kernel with these arguments.
The startup code will run, do a- it'll actually set up the hardware. For instance, on the R- Raspberry Pi, it'll talk to the RP1 chip, initialize that, initialize the graphics core. And then from there it'll ... There's a bit of a proto- I'll call it a protocol for conversation.
It does a protocol in memory effectively, and then it runs the kernel. The nice thing about that is the kernel you run on my Abund- oh, sorry, my, I say Abundu. My QEMU machine or this board or that board, it's all the exact same kernel. It's just the startup code that changes.
Jonathan: Okay.
Aaron: So actually our Raspberry Pi startup code is all open source under the Apache 2 license.
Jonathan: Very cool.
Aaron: Let's see if I can remember this off the top of my head. Github.com/qnx, and then it's BCM, the chip, Raspberry Pi. And they are actually the Raspberry Pi 4 as well. So all that startup code- ... is all open source which is an interesting reference point if you're like, "How do I boot up a Raspberry Pi from scratch and then have a ch- have a core that's initialized?"
It's quite interesting to read.
Andy: Yeah. I can give you the TLDR version is we have a quick start image for a Pi 4 and a Pi 5. So you can go on and download them and burn them onto a card and then boom, you boot it up. It's pretty simple.
Jonathan: Now, the question: Do you have to register an account somewhere to be able to download those?
Andy: Yes, you do have to register an account. Oh. Honest- I- so if y- oh my gosh. Y- you, ... So as the ecosystem director of the ecosystem kind of development and trying to get that thing off the ground and make sure that we could, have it a- available in the Raspberry Pi flasher, d- this and this, I'm like, "Look, guys, I don't want any addresses anywhere.
I just wanna provide an image you can download." And they're like, "Okay, but w- how do we do export controls?" I'm like, "Oh, God, why are you ... legal guys are killing me on this." And, so yes, you still have to do an email address. I'm trying to get that as simple as possible. I really do wanna get it to just be able to do that, but, just make a, make up a Gmail thing, whatever.
I don't care. It's fine. But you need one.
Jonathan: Yeah. Export controls, that that's, ... And I get that. I have had to work a little bit with that over the years. They just ruin all the fun.
Andy: Y- it, it does ruin all the fun. The, and then, it gets into all these conversations that are really oh, is it a mass market thing?
It's if it's ... I'm like, oh, God, y- again, the lawyers start going on about all the details of everything. I'm like, "Okay, can we make this work? Yes? No. And can we make it as simple as possible? Yes or no? Yes? Okay, good. Let's do that."
Jonathan: Yep. I- when someone does jump through the hoops, are there some limitations on what you're allowed to do with QNX Everywhere?
Andy: Yes. You're not allowed to use it for high-risk applications. You basically take all of the liability of what you're gonna do.
Jonathan: Oh, okay.
Andy: You're also not allowed to use it for commercial applications. You can't build a Kinix thing and then start selling it, because that's a commercial application.
Now, to be fair, we... That- that's the guideline that's in the QDL, the Kinix developer license- ... that we provide. When it comes to startups and proof of concept and, prototyping work and stuff like that, we know that those are, like, sometimes paid engagements. We know that you're building something and you're trying to actually sell a handful of them to see if there's any viability in it and all that stuff.
So we really don't care about that. What we care about is look, you're building a product, you're selling millions of dollars worth of it, then that has to become a conversation- Yeah ... because then that engages with the business part of the organization. But if you're just using it to play around with then that's fine.
Yeah. Yeah.
Jonathan: Yeah, y- and again I'm gonna beat the open source drum because that's what I do.
Andy: Yeah. Do
Jonathan: it. Companies have solved this problem rather than saying no commercial, because that's, it- this is a thing that's been, like, a conversation in open source for a long time.
And so you've got things like the business source license, which technically makes things source available and not open source. But one of the other solutions that I think is better is people use the the Affero public license, the AGPL, which is, that, that sort of closes the, "Oh, I'm running your open source code, but it's on my server, so I don't have to share my changes," right?
And so I think there's a, there's an interesting approach to this where as a business you say, "Look, we're gonna open up all the code, but the license that we give it to everyone with is the AGPL, which means if you put it in your commercial project, you also have to release everything as open source.
And if you want to put it in a commercial project that you have some closed bits in there, then you have to have a business conversation with us." And that's a, an- another way to go about it. It's an interesting approach. And for those of us that are the real open source enthusiasts that's the way we like to see it done.
Andy: Yeah. No, that's fair. And I think, if you're coming at it certainly from the approach of y- you know everything open source and the infectious model of trying to encourage that ecosystem- ... I think that does make sense. Again, I think, we are approaching it and we're trying to actually make sure that, we're true to our word, that we don't you know- go out over our skis, so to speak.
Maybe that's a Canadian analogy. I don't know if they use that term in Oklahoma very well. It translates okay. It translates okay. Yeah. Yeah. So like we're not gonna, we don't wanna kinda go all, all out like that then just realize, okay, that's like a terrible thing from a business model point of view- Sure
because a lot of those things are done for companies that are fundamentally not the same sort of business that we are. I'm not gonna say that we couldn't ever get there. That's not where we're at right now. That's not what the current thinking is.
Jonathan: Yeah. No. That's fair.
It is interesting though. So the, one of the other sort of big open source projects that that you guys have worked with is is Eclipse, isn't it?
Andy: Yeah.
Jonathan: What's the- Yeah, we- ... what's the story with Eclipse? Why did so- so- ... why did someone at QNX say, "Let's give a lot of money to the Eclipse Foundation.
Let's work on this source code"?
Andy: I think we... So when we had... so we, we support Momentics IDE, which is our, development environment, and that's all based on Eclipse. And I think when we were trying to figure out what are we gonna do from, a software development standpoint?"
That looked like really the best choice, and we decided that, th- that relationship was a good one to do. Now, that's not to say that we're not working with Eclipse on other stuff. So like- ... there's the various different automotive consortiums, and Eclipse has one of those, and we're working with them on that.
But we also have seen like that Microsoft has taken over the IDE environment, with Mi- and so we're- Yeah, that's true ... we're embracing both worlds on that front. I think, like we're still big fans of Eclipse, to be quite honest, like our tooling on that side is a little long in the tooth.
And we had a bunch of Eclipse experts who left the company to go start their own company, and so they started their own, UI framework company. And we were like, "Okay, we still have people to work on that, but like it just hasn't been as high of a priority. And so now it's okay, now there's a shiny new kid in town, so people are chasing that, so you know.
I don't know. I don't know where that's gonna be. But yeah.
Jonathan: Yeah. Aaron, do you do work on the Eclipse side of things?
Aaron: No, I don't actually. I know quite a few people though that do that via some of our... They're not part of the open source team funny enough, but they're part of more of some of the services teams.
UProtocol I believe is part of, under the Eclipse Foundation for automotive, and that's a big thing. I know we ha- we have a full-time dev who does internal stuff, but he's also like one of the lead maintainers of uProtocol. His name is escaping me off the top of my head, so I, ugh, apologize to him. But yeah, no, he's a...
He works for us and he does a lot of stuff with uProtocol. So that's a proto- that's an automotive protocol that allows you kinda to, I don't wanna say it's like gRPC, but if you're trying to imagine in your head, it solves like the service discovery and protocol between how to like between cars and services and offline support and multiple languages.
Jonathan: Yeah. Interesting what does it look like trying to build a community around QNX without the fully open source part? That's gotta be a, that's gotta be a challenge. You can't accept pull requests from your community, and that's one of the ... That's one of the best things about having a community.
What-
Andy: Yeah ...
Jonathan: how does that work?
Andy: I think it's probably important to think about what it is we offer and what the community means, right? So it's if you're building Linux like some Linux system, like how much of the code is actually stuff that you're changing in the kernel versus stuff that you're creating on a application side?
And, so do you really need to be submitting pull requests to like, tinker with the kernel s- task scheduling- ... priorities and stuff like that? Probably not. Probably that's never gonna happen, right? There's been, thousands of people beating on it, and we have the same sort of dynamic, right?
There are very few people who are interested or care about, the really gooey inside, details of how things get done. They just know, oh, hey if I use this software package on a QNX system, I can get this thing done. And yeah, there might be bugs in that and I have to get that fixed, or I want a feature request on that, but it's mostly at the application level or the library level.
And that's, that stuff is all open, and that stuff is things that ride on top of our OS. So I think for the most part our interaction with building a community, if you can... I- if you're the kind of open source person that kind of says, "Oh, you know what? I'm not gonna touch it if it's not open source," we're probably not for you.
If, like it's the same thing with Qt, I know Qt has had a on-again, off-again relationship there because, they have a commercial side, and it's yes, and they're a business just like us. Like- ... they have to make money they have to figure out a way to monetize what they're doing.
But if you're gonna do stuff and you don't need to use that stuff and you can use their free stuff, then great. And we basically are in that same model. We just don't have a open source component to it. If you wanna use it and you wanna do your own projects with it, and you can deal with the fact that we're not, 100% morally within your open source framework, and you can do it for free though, then yeah, then it's actually cool and you can do all these kind of cool real-time things or, experiments with, your Raspberry Pi and, and- all of that kind of stuff. So yeah it's actually been okay.
Jonathan: Yeah. Is there at least an avenue where someone can say, "Hey I've messed around with all of your open source stuff. I'm running into this bug. I think it's upstream into the stuff that I can't touch"? Can I go and report a bug- Oh, yeah.
For sure ... to QNX as just a regular- 100% ... individual person?
Andy: 100%. W- we would probably do that through our Discord. So we have a very active Discord in terms of, we have y- our chief architect is on there. He- I think he's addicted to Discord. He's on there- ... responding to people.
People put on questions like, "Oh, how about blah, blah?" It'll be some simple question, and he'll come back with this crazy answer. I'm like, "Okay, Elad, do you... it's okay." So he gives all this detail and all this crazy stuff. So but we have a very active development community.
And yeah if you had bugs there, we would track 'em down, submit internal JIRAs, get 'em fixed. Yep.
Jonathan: Yeah. Very interesting. So I do to ask, and the question I normally ask is, what's the weirdest thing that you've seen somebody from the community do? And maybe that makes sense here as well.
You, you've got a similar question in the rundown here, where they gave me some questions to ask. And it's the other way around. What's the weirdest thing that you guys have done? So maybe both of these are good questions.
What's some, what's some- I don't know ... oddball projects?
Andy: Aaron, you go first.
Aaron: I, I have a couple, 'cause I'm quite free in the Discord. I've... People 'cause kinda going back to your question of building the community, there's a lot of people really enthusiasts who basically we have un- I'll say uncharted water. Maybe the, maybe not the right word, but there's a lot of things that if you wanted, like when somebody ported Kerberos to QNX 'cause they needed the libraries for something.
Like- ... that's an interesting thing. How the heck did you get that to work? And then you'll... the software is there, it's just, like, how do you make it work on a new operating system? And people like that discovery, having something existing, working, and then porting it. I am gonna forget the guy's name, but there is some, this is not for QNX 8, but just someone who's having fun in the community. He took the Black, old BlackBerry Passport, so it's running QNX 6, and he's been doing op- he been doing open source development on it, like AI work and drivers. And it's really cool to see people take even some of the older hardware that, that was more, a little more open source.
But taking some modern stuff and porting it over, and updating it,
Has
Jonathan: anybody, has anybody tried to port like KDE
Aaron: to QNX? I have had some requests that, to do that, 'cause we have Qt 6 all ported over for self-hosted, so- Oh, ... it's been on my radar personally. But hey, if someone wants to go port the libplasma and see what that looks like, be my guest.
I'd be very happy personally. I
Jonathan: mean, if you've got, if you've got the Qt libraries, it might not be as much of a lift as I expected So it's, but it's a good p- Yeah, I mean- ... good
Andy: portion of the work done ... and it's similarly like we like what is it, XFC or something that we run that runs on- Yeah
Wayland that's on top of, QNX. So there's definitely good chunks of things that- Oh, yeah ... already exist. So I would recommend to anybody who might be serious into looking at this kind of stuff, is go to oss.qnx.com.
And that's that's our open source portal. So that shows every package that we've ported and/or tested, where it lives, if we're the ones maintaining it or if it's being maintained on another server somewhere in GitHub or GitLab or wherever else.
And what the status of it, what architectures that we know it works on, all that stuff. And there's some, I don't know, 2,000 some different packages that are there or y- somewhere around there. So it's actually, it's got a lot of stuff in there that's interesting to see if you, for example, if you're doing AI stuff and you wanna use TensorFlow or MediaPipe or any of those kind of things, that those are all ported.
And you can just find what stuff's been ported and what stuff you've got access to. And those are all things that you can either get and, clone 'em onto your machine or, use the APK tool like Aaron was talking about and get access to 'em. So- ... makes it pretty simple.
Jonathan: Yeah. I will tell you my most interesting QNX story, my only really QNX story. Okay. I've got a I've got a dbx DriveRack. It's a speaker management platform for doing pro audio. And turns out that I'm pretty sure it actually runs QNX inside of it. And I know this because this version of QNX, somebody accidentally left the debug port open and you can-
Ask it to debug bash for a shell. Ask it to de- debug shell for you, and it will gladly do that. Which, means that you send it a single packet and you pop a shell, and you've got root access to it, which is fun. So I've crawled around inside of that, inside the QNX system inside of it which is yeah, it was quite an experience.
That's been around for a long time. That is some- Oh, yeah ... old software.
Aaron: Yes, I'm really curious what version it's running, 'cause it must be six or four if it's been around for a long time.
Jonathan: Yeah. I, at one point I had the the actual CVE. I don't remember the CVE number that it was. I could I could probably find it again.
I'm not... My Google fu is not quite good enough to pull it up right now.
Andy: No, Google Flu is actually getting ruined too, because it's like you get results that are like, what that means nothing. Like what year did Biden die? Oh, 2039? Wait, what are you talking about?
Jonathan: Yes. Just all hallucinations.
Absolutely.
Andy: Yeah. E- everything pure hallucination. Yeah, the Google Flu d- means nothing. Yeah. So
Jonathan: I will tell you- Yeah, my- ... speaking of hallucinations, when I Googled for that- ... Google's AI told me that both QNX and DBX are owned by Harman. I'm like, "I don't know that's true."
Andy: Was true. It was true actually for, so I was here during that period. So 2005, I think we were acquired by Harman, and I think Harman sold in 2010 to RIM, to Research In Motion. So there was a period of time when we were doing a lot of stuff with Harman yeah- It was probably during
Jonathan: that time. I would... That would be very likely this is during that time that, that,
Andy: that change was made.
Probably was very likely during that time. Yeah. Yep. Yeah. And we were in like some guitar pedals and yeah, a bunch of cool applications, you
Jonathan: know? QNX on a guitar pedal. That's- Yeah. I can't say much. Linux runs in some really weird places too, and,
Andy: Yeah, Linux runs in weird places.
And we're in things like space arms and nuclear power plants, so we're in l- we're in some pretty niche applications. And my crazy stories tend to come from my first stint around when I was at QNX as a FAE, and, finding out that it's oh yeah, this whatever it was, a coal plant or something like that, hadn't rebooted their system for 10 years, and then they tried to reboot it and it was running off of a floppy.
The entire system was running off of... And the floppy wouldn't work. Yeah it hadn't been used in 10 years. So I'm, like, helping this guy who's frantically panicking as you know- ... the entire plant is brought down because they haven't even tried to run it. I'm like, l- on eBay looking for floppy.
Okay, what is it? It's a model, something that, and I'm like, "Okay, I think I found one." That there's one in Arizona somewhere. We can get them to overnight it,
Jonathan: like-
Andy: Yeah, so-
Jonathan: I- is- Yeah ... is QNX still a part of Research In Motion? Is that still the sort of corporate overlord?
Andy: Research in Motion renamed to BlackBerry, and we still are a division of BlackBerry.
So there's basically, there's two main divisions. So one is QNX and the other is Secure Comms. So if you think about what, what made the BlackBerry phone kinda all, secure and, its own very highly protected ecosystem, all that software, they've taken all of that stuff and turned that into a business.
So like governments large corporations, institutions, all those kind of big company players that really value corporate security and those kind of things, they're customers of Secure Comm, so our sister company. And then QNX, we- we're doing the basically the same thing that we've always done.
We just don't do it on phones,
Jonathan: so they- they've- they've forked it. They've split the streams. That's right. You guys are no longer doing the phone stuff. Ah that's good to know.
Andy: We're not... Yeah, basically as of whenever BlackBerry kinda folded up shop on the hardware business, then, we stopped sup- supporting the phones.
But yeah, like we, even through all that whole period, we were still doing tons of automotive work, lots of robotics, industrial, all that kind of stuff.
Jonathan: Yeah. Super interesting. What as you look into your crystal ball of the future, what what interesting things do you see coming for specifically for the, like the QNX ecosystem?
What are some things people should be watching out for?
Andy: Yeah, that's- This- That's actually a really good question ...
Jonathan: this is where you can make your earth-shattering announcement that you're gonna open source it-
Andy: Yeah ... if you want to. Yeah it probably won't be that earth-shattering. I like I- I'll tell you honestly, I think that one of the biggest challenges that, that I am trying to struggle with is just what are we doing with AI?
And there's a lot of smart people in the company that are trying to figure that out, and we're looking at lots of different approaches to that. One is that we think we're, like, the ideal platform for people implementing physical AI systems because we provide all the safety and the real time and all of these kind of characteristics that you need.
But we're also POSIX compliant, and so therefore, all of these AI things that people are experimenting with will run on our system. And like, when, Aaron had mentioned we had just gone to the Berkeley Hackathon, and yeah, that it was a AI-based hackathon, and we had people using our stuff to, implement, tank detecting or, looking for patterns outside cars or, doing whatever, doing games, all kinds of interesting applications to AI.
So one of them is enabling AI, and that I think we have a relatively good handle on. But what I don't have a good handle on is what are we gonna do from a tooling standpoint to enable people to be better using AI with our platforms? And it's a little tricky for us because our entire brand is all about safety and security and reliability and stuff like that.
You don't put us in a wind turbine 'cause you think, so you vibe coded what that is, and then it kind of- ... starts feeding the wrong current back into the, thing at the wrong phase and totally blows out the system or whatever, right?
But there's all these serious consequences to this stuff. So- I think that there, there's that, but then there's the realization that it's okay people are gonna be using AI and we need to figure that out. And we're kinda undergoing that exercise ourselves of trying to understand, okay, how do we take AI and merge that with a lot of the lessons that we know about- functional safety and certification and process and all of those ways that you can use to kinda get a handle on a system. Yeah. And in some ways, it's very similar to just kinda hey, what if you hired a bunch of interns that are really eager, and you just set 'em at a task. How do you- Absolutely
control their energy, right? Like, how do you vet that they're doing something right? And I think I- we're gonna come around to that, and I think the industry will come around to figuring that out. But- ... that's the biggest challenge, and I think that's the biggest place for us to kinda make a splash.
But we're not quite there just yet.
Jonathan: Yeah. Aaron, can we run Python and PyTorch on inside a QNX Everywhere?
Aaron: Oh, of course, yeah. PyTorch. Let's see here, what's on my list? Llama CPP. I know we have Stable Diffusion, the PR up for that coming out in a minute or two again, it's one of those things.
You, you name it, either we got it or tell me I don't and I'll make sure it works. Somebody's
Andy: working on it, yes. I'll send you... Yeah, I'll send you a blog afterwards that- Okay ... that has all of the things that, that are AI related that we've got ported, and it's a list of a, I don't know couple, three dozen different packages that are in that space that, that would be useful.
Actually, there's a couple blogs that I could send you that, that might be useful for that.
Jonathan: Yeah. And something we briefly touched on this earlier, but I think it's interesting. Can I take one of the QNX images for... Obviously I've gotta make an account somewhere, which I'm not super happy about, but I use a burner Gmail address.
It's fine. Can I take one of those images and run it a inside a virtual machine on my Linux machine? Play with it- Yes ... that way I don't have to, I don't have to dedicate any hardware to it. Yeah. And then does it work the other way? Yeah. Can I run a Linux VM inside of a, inside a QNX Hypervisor?
Andy: Yeah, you can. Yeah. And a QNX Hypervisor is also part of the QNX Everywhere. The stuff you get for free is part, the Hypervisor is part of it, so you can do that too.
Jonathan: Okay.
Andy: Honestly, there's also a bunch of stuff about Graviton and running an AWS and, running in Azure as well.
I- ... I'm not as familiar with that. A lot of the stuff that, that I've and Aaron do are, like, a lot of university stuff, but I do know that, people use our stuff to run in cloud instances as well. I would not- But if you start asking me any kind of detailed questions there, I'm gonna get way out of my depth instantly,
Jonathan: I would not have thought of running QNX in the cloud. That's actually really interesting.
Andy: I- It is interesting. It's, people use it for a scalability thing. And if they wanna have a whole bunch of developers work on the same kind of system across time zones and across the world or be able to scale up how many instances are running or not, there's a lot of reasons to be able to say, "Oh, hey, yeah, you wanna actually use this particular..."
Let's say you're developing a, a digital instrument cluster or something like that, and you've got developers all around the world that wanna be working on it at the same time. It's easy to do that in a cloud instance, whereas it's tricky to do that with a physical piece of hardware, right?
And plus you can get out ahead of, the needs. Like we're very much an embedded company. Almost all of our applications are embedded in some way, but that also means that you're tied to a piece of hardware. So as soon as you break that you can say, "Okay.
Let's get this working in the cloud first, and then as soon as we get the hardware shipping, then we can start tying it." But otherwise you're waiting for hardware to come and it's "Okay. We can't run anything, so what are we gonna do?" I... it's, it just helps accelerate that whole thing.
Jonathan: Yeah. I've gotta, I've gotta ask, and this is a meme-y, troll-y question, but Andy, did you inspire any- Awesome ... did you inspire any of the characters in the Blackberry movie?
Andy: No.
Jonathan: Were you around for that time period?
Andy: I was around for that time period, but I-
I actually, I left after that and then I came back. So yeah, but I was around during the kind of the acquisition and the phone sort of thing. Yeah some interesting times, that's for sure. Y- honestly, because I, at the time I was on the automotive side- ... and they had this really l- like this firewall of stuff.
So it's like we knew that half the company was being hived off for something. And for a long time we didn't know what it was. We were like, "What the heck is going on? Are we being sold? Are we being bought? Are we..." We had no idea. And then it was then there was the announcement like, "Oh, okay, now it all makes sense."
And that's why I couldn't talk to this guy for four months, yeah.
Jonathan: That's hilarious. Yeah.
Andy: Yeah, it was pretty weird.
Jonathan: Yeah. Fun. All right, so before I let you go, it's been a, it's been a fun conversation. I gotta ask you, each of you though what's your favorite text editor and programming language?
Let's go,
Aaron: I'll,
Andy: I'll go
Aaron: first here ... Aaron's geo first. So I used to say VS Code, but because VS Code does not run on QNX, I am now a Neovim user.
Jonathan: Ah, there you go.
Aaron: For favorite language, I've been a JavaScript fun- I've worked in a betting company. I've been a JavaScript developer for a long time, but I've really come to appreciate Rust and those newer languages like Zig have been very interesting to see what they're doing in the space and modernizing embedded development.
Jonathan: Yeah. Have you guys done anything with WebAssembly? I, that, that's something that really blew me away- Yes ... is that people are doing WebAssembly in, in embedded. And we're actually- Yeah ... in, in my company, Mesherastic, we're actually doing sort of that in reverse. We're taking some embedded code, compiling it to WebAssembly, and then running it in the browser or, on Android.
Yeah. All kinds of crazy stuff. I'm just blown away by- We- ... by what you can do with WebAssembly.
Andy: WebAssembly is pretty cool. We were talking with some people at Carnegie Mellon, and they were super into WebAssembly. And they were like what do you guys have for WebAssembly? What can we do there?
'Cause we, we think you got a really cool product, and we want to do all this WebAssembly stuff." And then we do support it as a outshoot of the fact that we have a browser, but we don't have ... we're not natively doing anything in it. So it's when they're talking about "Oh, can we do research projects with it and stuff?"
We're like you can, but we're not ... We don't have a vested interest in it because we don't have any customers using it." But, we'll keep our finger on the pulse there, but yeah, I don't know. It is pretty interesting. Okay. So I'll answer those two questions with regard to favorite editors and stuff like that.
Favorite editor that's like a weird sort of a question in my mind. I've got two answers to that- ... and you'll ... You'll probably say, "Oh my God, this guy." So one of my answers is VI. And okay, now please hear me out on this one because it just works everywhere. I can go anywhere, and I can do what I need to do with VI.
You can tell I'm not- So it's like I'm not, like- You could tell that into a
Jonathan: router and it'll be there
Andy: Ex- exactly. Like I, I can always depend on it being there. Yeah. So that's But like for day-to-day use, oh God no. Like I used to know a guy who I worked with and like he did that with his main editor.
And I'm like, okay, he was astounding. Like he knew all these colon commands and he could do crazy stuff. I was like, I would just watch him going, "Wow, if I knew like half of what you knew like that would be amazing." But I can get by. But Xcode, and I'm sorry, yes I do Mac and I'm, my next thing is not gonna surprise you, Swift.
I love Swift. It like, it's just so well-designed. Like I just, I can't get over how nicely designed of a language it is. And now it really irritates me that the interfaces change like every flipping release. But other than that- that's a very Apple thing to do,
Jonathan: I think.
Andy: Yeah. They're just trying to make it perfect.
So then of course why not break everyone's code every single time that they release something. So- Of course ... yeah.
Jonathan: C- can you run Swift on QNX?
Andy: No, but I want to.
Aaron: Oh man, that would be amazing. I know, but the thing is that Swift is finally getting Linux better Linux support.
Relatively recently. I remember there's a whole thing with Ladybird was looking at using Swift, but- ... it just wasn't there yet, I believe is what it was, if they get a little support Aaron, I had a couple of- ... maybe I'd love to do it ... kids come
Andy: up to me and say, "Can we get Swift on, on QNX?" I
Aaron: know.
I-
Andy: And I was like, "Yes! I found my people." I,
Aaron: I love, every language we add to QNX just makes the ecosystem better and better, right? P- pick a, I don't care what language it is. Totally
Andy: agree. Odin,
Aaron: right? I take Odin, it's for 3D graphics and everything, but hey, people, auto- auto manufacturers need a good 3D programming language and do stuff like that.
So yeah, every language you put there, let's do it. Yeah. It's fun. That's
Jonathan: fun. Yeah. That's great. All right. Thank you, guys. Yeah, that was really cool. Thank you, guys, for coming on the show. Thank you for being patient with my questions and my badgering. It's been a lot of fun, though.
Andy: It has. It's been an absolute pleasure.
Thank you. Thank you so much.
Jonathan: All right. Good to have both of you. That is Andy Green and Aaron Bassett from QNX, and it's been a bit of an oddball show, but that that's fine. We've had a lot of fun with it. We've got some fun stuff coming up as well. Next week we are scheduled to have Andrea Gallo.
We're doing the complete opposite next week. Not only is the operating system open source but all the way down to the ISA, we're talking about RISC V. And then the week after that we're gonna talk about JavaScript and hopefully some WebAssembly because we've got Neriman Jelva of Pewter, somebody else I met at the Ubuntu Conference.
And then after that we're talking with Michael Meeks of Collabora, and then we're having Francois Pol again, talking about smoked meat. That is security, specifically security on GitHub. A fun schedule coming up. You don't wanna miss it. And we will see everybody next week. Just wanna say thank you to everybody that watches, and yeah, we'll see you then
Avsnitt sparat!
Du hittar sparade avsnitt på Mina sidor.
Kunde inte spara avsnitt
Något gick fel. Försök igen.