Skip to main content
LawHub
Search

All Your Kernels Belong to Rust

Feb 23, 2025
Listen to this episode

There have been major Rust developments in the Linux Kernel; we discuss what's new and how it will impact the future. Plus, we're joined by a special guest.

Sponsored By:

Support LINUX Unplugged

Links:

Transcript

WEBVTT 00:00:11.345 --> 00:00:15.825 Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris. 00:00:16.045 --> 00:00:16.725 My name is Wes. 00:00:17.025 --> 00:00:17.985 And my name is Brent. 00:00:18.225 --> 00:00:21.705 Well, hey, gentlemen. Coming up on the show today, we're going to really focus 00:00:21.705 --> 00:00:23.245 on the Linux kernel again. 00:00:23.705 --> 00:00:26.745 There's been a lot of hoopla about the state of Rust and going-ons there, 00:00:26.765 --> 00:00:30.905 so we're going to recap the latest and then dive into what Linus and Greg have said recently. 00:00:31.345 --> 00:00:34.745 We'll also chat with Hannah from Scale, who's going to give us the four-on-one 00:00:34.745 --> 00:00:36.825 on what you need to know to go to Scale. 00:00:37.265 --> 00:00:39.885 And then we're going to round out the show with some great boosts, 00:00:40.045 --> 00:00:41.925 some picks, and a lot more. 00:00:42.365 --> 00:00:44.445 So before we get to any of that, I've got to do the right thing, 00:00:44.525 --> 00:00:47.885 and I've got to say time-appropriate greetings to that virtual lug. Hello, Mumble Room. 00:00:48.485 --> 00:00:53.465 Hello. Hello, Chris. Hello. Hello, Brent. Hello. 00:00:53.965 --> 00:00:55.965 Hello. That's a serious showing. I like it. 00:00:55.965 --> 00:00:58.505 It's a little echoey because we had to get a huge room to fit everyone. 00:00:58.505 --> 00:01:01.645 Yeah, a lot of people in there. Thank you, everybody, for joining us over there. 00:01:02.345 --> 00:01:06.225 It's nice to have you. And a big good morning to our friends over at TailScale. 00:01:06.225 --> 00:01:10.585 Well, tailscale.com slash unplugged, that's where you go to get TailScale for 00:01:10.585 --> 00:01:13.645 free, 100 devices, three users, no credit card required. 00:01:13.945 --> 00:01:18.305 This is a modern networking solution for connecting your devices securely to 00:01:18.305 --> 00:01:22.545 each other, your applications, servers, systems, whatever it might be, 00:01:22.885 --> 00:01:26.925 to each other directly on a mesh network protected by WireGuard. 00:01:26.925 --> 00:01:31.345 It really is what we've all wanted to see from the moment we heard WireGuard 00:01:31.345 --> 00:01:32.545 was coming to the Linux kernel. 00:01:32.745 --> 00:01:37.565 Secure remote access to your systems that just works so intuitively. 00:01:37.945 --> 00:01:42.825 And it's easy to deploy. It actually is a zero config, no fuss VPN. 00:01:43.185 --> 00:01:45.805 I've been running it for years now. You set it up and it just goes. 00:01:46.345 --> 00:01:49.685 You don't really have to think about it. And with the 100 device plan, 00:01:49.845 --> 00:01:53.205 you can use it on just about everything you got and support the show. 00:01:53.365 --> 00:01:58.625 So you go to tailscale.com slash unplugged. You get it for free on 100 devices, support the show. 00:01:59.025 --> 00:02:03.325 And then you might do what I did, and I inevitably rolled it out in the company. 00:02:04.550 --> 00:02:08.110 It's great for your back-end infrastructure when you have multiple different 00:02:08.110 --> 00:02:10.330 data centers and you want to bring everything together. 00:02:11.210 --> 00:02:13.510 Thousands of companies do this, like Instacart, Hugging Face, 00:02:13.650 --> 00:02:17.950 Duolingo, more. They all use TailScale, so go try it out for yourself or for your business. 00:02:18.610 --> 00:02:22.030 The free plan is at tailscale.com slash unplugged. 00:02:24.710 --> 00:02:28.250 Well, as you listen to today's episode, we're going to get into the Linux kernel, 00:02:28.330 --> 00:02:30.030 and we have a question you'd like to answer. 00:02:30.150 --> 00:02:32.970 Just something put in the back of your mind, and when it comes to you as we're 00:02:32.970 --> 00:02:34.370 talking about this stuff, boost in. 00:02:35.150 --> 00:02:39.470 If you could be Linus Torvalds for a day, what would you change or get done? 00:02:39.650 --> 00:02:40.790 Oh, that's a fun one. 00:02:41.310 --> 00:02:42.090 Think about that. 00:02:42.170 --> 00:02:44.930 You know, the pet thing you've always hated in the kernel, the one tweak you'd 00:02:44.930 --> 00:02:46.570 make, or is it something different? 00:02:46.750 --> 00:02:48.710 Bigger, broader. I think we're going to get some good answers. 00:02:49.190 --> 00:02:51.070 Whatever it might be, though, boost in and let us know. 00:02:51.450 --> 00:02:56.130 You've been hearing us talk about Planet Nyx, and that's coming up really fast, 00:02:56.190 --> 00:03:00.410 and that runs right along Scale. And so we wanted to get you up to speed on 00:03:00.410 --> 00:03:04.850 what you need to know if you're going to attend Scale 22X this year. 00:03:05.350 --> 00:03:10.710 And Hannah from Scale, she is the chair of publicity, joins us to talk about that. 00:03:13.890 --> 00:03:16.470 Hannah, welcome to the show. It's great to talk to you. 00:03:17.210 --> 00:03:20.070 Yeah, thanks so much. I'm so happy to be here to talk about Scale. 00:03:20.370 --> 00:03:25.130 We are really close. Scale 22X is coming up on March 6th. 00:03:25.190 --> 00:03:26.670 That's less than two weeks now. 00:03:26.670 --> 00:03:30.830 Yeah. And so we wanted to have you on to help everybody kind of know what they 00:03:30.830 --> 00:03:34.550 need to do in order to attend and what they should do once they get there, like on day one. 00:03:35.617 --> 00:03:39.977 Yeah, of course. So I would be remiss if I didn't give you the quick spiel about 00:03:39.977 --> 00:03:42.897 what SCALE is first before how you can attend. 00:03:43.297 --> 00:03:46.637 SCALE stands for the Southern California Linux Expo. 00:03:46.837 --> 00:03:51.397 We're in our 22nd year, and we're hosted in Pasadena, California. 00:03:51.397 --> 00:03:54.597 And so we're so excited to be back and if 00:03:54.597 --> 00:03:58.457 you've never heard of scale or have not been it 00:03:58.457 --> 00:04:01.777 is all things open source we're an entirely volunteer run 00:04:01.777 --> 00:04:08.097 conference scale is run on love and passion for open source and so it is a great 00:04:08.097 --> 00:04:11.877 time to get together and talk and meet other people who care about all things 00:04:11.877 --> 00:04:17.657 open source and the other thing that i absolutely love about scale is we have 00:04:17.657 --> 00:04:19.017 been around for a long time. 00:04:19.237 --> 00:04:21.617 We have great roots in Southern California and beyond. 00:04:21.877 --> 00:04:26.437 And we also use scale as a launching pad for other open source communities who 00:04:26.437 --> 00:04:30.017 might not have the infrastructure or want to plan a conference. 00:04:30.017 --> 00:04:35.297 So you might see some of your other favorite open source events co-located at scale. 00:04:35.617 --> 00:04:41.057 So DevOps Day LA, Kauai Summit, Planet Nix, Linux training even. 00:04:41.057 --> 00:04:45.197 So we have a little bit of everything if you are in the open source world, 00:04:45.217 --> 00:04:48.117 which I imagine everyone listening here is. 00:04:48.757 --> 00:04:52.957 So now that we've got kind of the details out of the way, if you want to come 00:04:52.957 --> 00:04:56.317 to scale, we would love to have you in a little under two weeks. 00:04:56.477 --> 00:05:02.097 You can go to our website, socalinuxexpo.org and get registered. 00:05:02.657 --> 00:05:05.917 We really pride ourselves on the conference being approachable. 00:05:05.917 --> 00:05:10.237 And I think we're probably one of the only conferences that run a four-day event 00:05:10.237 --> 00:05:12.197 for under $100 for a ticket. 00:05:12.557 --> 00:05:17.997 So we think it's really good value. But if you want a little extra motivation 00:05:17.997 --> 00:05:24.477 to get your ticket before the event, you can use the promo code Linux for 50% off that ticket. 00:05:24.697 --> 00:05:29.417 That's great. Great. Okay. Promo code Linux. And so also I just want to say, 00:05:29.557 --> 00:05:32.897 I do love these side events that have been happening over the last few years. 00:05:33.077 --> 00:05:38.177 It's such a brilliant idea because you folks really are the experts now at the 00:05:38.177 --> 00:05:43.697 infrastructure and the event. And that is such a massive undertaking for smaller 00:05:43.697 --> 00:05:47.917 projects or groups or communities to undertake. It's a really incredible thing you're doing. 00:05:48.317 --> 00:05:53.037 Yeah, we're quite proud of it. Event planning is no joke. And we have hundreds 00:05:53.037 --> 00:05:55.457 of volunteers that make this conference run year round. 00:05:55.717 --> 00:05:58.077 And it would not be possible without volunteers. 00:05:58.437 --> 00:06:01.297 So another shameless plug is if you ever want to volunteer and help with the 00:06:01.297 --> 00:06:06.137 conference, you can always, there's an email on the website where you can volunteer 00:06:06.137 --> 00:06:10.197 either the week of or if you want to work on our network or marketing, 00:06:10.197 --> 00:06:11.617 shameless plug for my team, 00:06:12.237 --> 00:06:14.417 we're always taking volunteers to do it. 00:06:15.020 --> 00:06:18.780 Yeah, we love having other events there that would not have the resources otherwise. 00:06:19.220 --> 00:06:22.560 So there's a place for everyone who cares about open source here, 00:06:22.560 --> 00:06:24.860 and it's in Pasadena in two weeks. 00:06:25.100 --> 00:06:29.200 That's great. I feel like, too, getting involved like that would really build 00:06:29.200 --> 00:06:31.820 some skills that could be marketable in the workplace there. 00:06:32.380 --> 00:06:35.560 I just kind of want to make it clear, when people show up, they do need to proceed to it. 00:06:35.640 --> 00:06:39.060 There's a proper registration process and all of that that they need to follow 00:06:39.060 --> 00:06:41.380 when they first get there, or at least get their badges and whatnot, right? 00:06:41.660 --> 00:06:45.720 Yep. So we're a pretty standard conference. You can register for your tickets 00:06:45.720 --> 00:06:50.420 ahead of time at SoCalLinuxExpo.org with that promo code Linux. 00:06:51.100 --> 00:06:54.900 And you're all registered. You will go to the building that says, 00:06:55.000 --> 00:06:57.740 welcome, there's a big Linux penguin. 00:06:58.860 --> 00:07:02.600 That'll give you an idea of what buildings we're in. The Pasadena Convention 00:07:02.600 --> 00:07:06.200 Center is a little confusing. It is two buildings with a theater in between. 00:07:06.480 --> 00:07:10.060 So if you're facing the convention center, the building on the right is where 00:07:10.060 --> 00:07:11.380 you check in your first day. 00:07:11.380 --> 00:07:17.800 And we've got self-serve systems where you enter your name and your registration 00:07:17.800 --> 00:07:23.000 number and it'll print your badge and then you get a swag bag like most conferences 00:07:23.000 --> 00:07:29.620 full of open source swag and then you get to go in and see all the topics for the four days. 00:07:30.020 --> 00:07:33.540 So make sure you go to the right side building on your first day, 00:07:33.600 --> 00:07:38.120 get your badge and once you have your badge you can go to all the events throughout the four days. 00:07:38.280 --> 00:07:41.120 Yep, and then it's easy after that. That's the hardest part is just figuring 00:07:41.120 --> 00:07:43.620 out which building to go in and get your badge. It's not too bad. 00:07:44.134 --> 00:07:47.034 I would say the hardest part is picking which talks to go to. 00:07:47.274 --> 00:07:47.514 Yeah, really. 00:07:47.854 --> 00:07:52.014 So many good ones that happen all at once. And the other good thing about our 00:07:52.014 --> 00:07:55.654 conference is don't get FOMO, because if you have two concurrent talks, 00:07:55.834 --> 00:07:57.794 we stream and record all of them. 00:07:58.034 --> 00:08:01.194 So you can go back and listen to the ones you missed as well. 00:08:01.514 --> 00:08:04.034 Also, no small feat, which we really appreciate, too. 00:08:04.614 --> 00:08:10.034 Yeah, the tech on that is insane. It takes dozens and dozens of people all year 00:08:10.034 --> 00:08:11.454 to get those recordings up. 00:08:11.534 --> 00:08:15.374 But we're quite proud of them. You can always check out our past talks from 00:08:15.374 --> 00:08:17.594 events on our YouTube channel as well. 00:08:17.834 --> 00:08:20.314 So if you're still on the fence, you don't know what kind of content, 00:08:20.534 --> 00:08:22.554 check out the YouTube channel from the years past. 00:08:22.694 --> 00:08:25.874 We've got a lot of great content there, and it gives you an idea of what we're 00:08:25.874 --> 00:08:27.094 putting on for the week as well. 00:08:27.474 --> 00:08:31.134 For sure. I will say it never quite captures the social element and the hallway 00:08:31.134 --> 00:08:33.354 track and, you know, going out and having lunch and all that stuff. 00:08:33.454 --> 00:08:36.914 But that's just the bonus that you get to come discover on your own when you visit. 00:08:37.114 --> 00:08:40.834 So sounds like they need to get registered. They can use promo code Linux to 00:08:40.834 --> 00:08:43.034 save some money. Anything else we need to let folks know? 00:08:44.154 --> 00:08:48.554 Yeah, just like you said, like the hallway track is really the highest value 00:08:48.554 --> 00:08:51.834 add. So if it's your first time coming to scale, introduce yourself. 00:08:52.094 --> 00:08:55.314 I always hang out at registration. So you're always welcome to say hi to me. 00:08:55.414 --> 00:08:58.174 So you already have one friend, but get to know other folks. 00:08:58.374 --> 00:09:03.194 We love the cross population of communities and it comes to really amazing things 00:09:03.194 --> 00:09:07.274 outside the conference. So I would really encourage you not to be shy and make 00:09:07.274 --> 00:09:08.554 some new friends there as well. 00:09:09.014 --> 00:09:13.234 Absolutely. Hannah, thank you for taking some time on your Sunday and joining us. 00:09:13.694 --> 00:09:18.114 Yeah, thank you so much for having me. And I hope to see everyone listening at scale in March. 00:09:20.134 --> 00:09:20.574 Wonderful. 00:09:23.729 --> 00:09:26.449 Well, I know the world is full of news these days, but geez, 00:09:26.649 --> 00:09:30.769 the colonel has been seeing some newsworthy notes from day to day. 00:09:31.169 --> 00:09:34.789 And you guys have been doing a deep dive. My favorite thing. 00:09:35.769 --> 00:09:39.029 Should we go through what's been happening and dust them off a little bit? 00:09:39.469 --> 00:09:43.569 Yeah, we started capturing this for the members in the members bootleg, 00:09:43.689 --> 00:09:46.169 and then it really has developed further. 00:09:46.309 --> 00:09:51.689 So let's go back, like Brent says, and kind of just briefly just cover what's happened here. 00:09:53.009 --> 00:09:57.409 Obviously we've talked about Rust in Linux kernel a bit last September we did 00:09:57.409 --> 00:10:01.289 an episode about it and that was sort of the recap on the state of things. 00:10:01.289 --> 00:10:08.749 Right an ongoing effort to add the ability to write new code to add drivers 00:10:08.749 --> 00:10:13.929 to the Linux kernel using Rust which is a secondary language in the kernel and 00:10:13.929 --> 00:10:18.289 it's a big change and that's why it's been a slow and long effort and why we're 00:10:18.289 --> 00:10:19.689 continuing to talk about it The. 00:10:19.689 --> 00:10:23.009 Idea of adding another language is a big deal, right? 00:10:23.389 --> 00:10:27.929 And of course, you know, you have to say Rust is not new, but it's still moving 00:10:27.929 --> 00:10:29.709 fairly fast and does things. 00:10:29.889 --> 00:10:32.709 It's a very different language than C. So you've got that to contend with. 00:10:32.829 --> 00:10:37.529 So with our current event, we actually need to go back to late January of 2025. 00:10:38.189 --> 00:10:42.929 And the Rust DMA patch proposal sparks a bit of a conflict on the Linux kernel 00:10:42.929 --> 00:10:47.369 mailing list. A patch is proposed to enable Rust-written device drivers to call 00:10:47.369 --> 00:10:51.249 the Linux kernel's core direct memory access, or what is referred to as DMA. 00:10:51.909 --> 00:10:57.269 Obvious drivers need this, right? The goal here is to expand Rust's usability within the kernel. 00:10:57.749 --> 00:11:01.749 Christopher Hillwig, though, had some, I would say, concerns. 00:11:02.716 --> 00:11:06.276 And probably raised the largest rejection. There's a quote from him that says, 00:11:06.456 --> 00:11:09.036 no Rust code in kernel slash DMA, please. 00:11:09.536 --> 00:11:12.636 Yeah, there's a lot to digest here. For the first part, you know, 00:11:12.856 --> 00:11:16.756 fairly simple patch, not a huge amount, three files changed, 00:11:17.856 --> 00:11:21.616 273 insertions, and the text of the commit, or the request reads, 00:11:22.496 --> 00:11:25.856 add a simple DMA coherent allocator Rust abstraction. 00:11:26.216 --> 00:11:28.636 And that abstraction has a specific meaning here. 00:11:29.476 --> 00:11:33.076 There's sort of the automatic bindings that get generated to be able to like 00:11:33.076 --> 00:11:36.756 talk to the C data structures from the Rust side of things. 00:11:36.936 --> 00:11:41.156 But then there's the like the higher layer part of really using Rust and Rust 00:11:41.156 --> 00:11:43.596 type system in what they're calling abstractions, 00:11:43.736 --> 00:11:48.076 which is where you do the work to wrap the C side at a semantic level to sort 00:11:48.076 --> 00:11:53.296 of encode how to safely use where possible the C side from Rust. 00:11:53.416 --> 00:11:56.416 So then you have this abstraction layer that kind of sit between. 00:11:56.876 --> 00:11:59.816 And it's actually, for the most part, for non-exceptional cases, 00:12:00.076 --> 00:12:02.556 you're not even allowed to go call the C directly in drivers. 00:12:02.696 --> 00:12:04.476 You're not supposed to. You want to use this abstraction. 00:12:04.736 --> 00:12:09.936 So that's where this code is trying to sort of bridge the gap to enable downstream 00:12:09.936 --> 00:12:12.276 Rust things to be able to use the bus. 00:12:12.536 --> 00:12:16.896 The DMA bus. And that's the idea, is that downstream Rust things could read the DMA bus. 00:12:17.216 --> 00:12:24.316 And the very events that transpired this week come back to this very patch and this very discussion. 00:12:24.476 --> 00:12:29.916 So this event that happens in January is pretty noteworthy as time goes on the 00:12:29.916 --> 00:12:31.256 discussion kind of escalates, 00:12:32.176 --> 00:12:36.216 you'll see this there's several people in there that are kind of anti-Russ there's 00:12:36.216 --> 00:12:40.056 folks in there trying to explain stuff there's other folks that seem to be just 00:12:40.056 --> 00:12:41.296 kind of in a watch and see mode. 00:12:42.623 --> 00:12:46.823 Maybe it's worth also touching on um as you 00:12:46.823 --> 00:12:49.943 said uh helwig said no rust code in kernel 00:12:49.943 --> 00:12:52.863 slash dma and what that's referring to is sort of the various trees 00:12:52.863 --> 00:12:56.003 inside this kernel source tree itself 00:12:56.003 --> 00:13:00.343 uh so that's we'll see coming back to this already if you just look at the diff 00:13:00.343 --> 00:13:06.183 you know how you view whether it's a part of the subsystem or not versus like 00:13:06.183 --> 00:13:09.683 where it lives in the source tree could be a whole separate question but this 00:13:09.683 --> 00:13:14.203 was all under rust slash at the top layer so it's all kind of in the. 00:13:14.203 --> 00:13:15.043 Rust subtree. 00:13:15.043 --> 00:13:20.283 In its own it is of course wrapping code that lives in the dma side but. 00:13:21.483 --> 00:13:24.183 Yes and so it's in its own container that is important to 00:13:24.183 --> 00:13:27.803 understand later so this kind of brews for a bit you know there's a there's 00:13:27.803 --> 00:13:32.343 fosdem there's a talk about rust for linux there held by miguel odeja is that 00:13:32.343 --> 00:13:37.043 oyeda oyeda and he's the lead maintainer of rust for linux he presented at fostum 00:13:37.043 --> 00:13:40.443 uh he liked so he highlighted there some of the progress and some of the things 00:13:40.443 --> 00:13:43.963 that landed in linux 6 6 13 also. 00:13:43.963 --> 00:13:48.983 Tried to go and get i believe a bunch of quotes from various uh maintainers 00:13:48.983 --> 00:13:53.483 both you know neutral for and against i think it did seem to have he's able 00:13:53.483 --> 00:13:58.003 to get more responses from people interested in the project but it was an interesting survey. 00:13:58.003 --> 00:14:03.263 As you can imagine though after that talk the debate kind of heats up again until later on, 00:14:04.203 --> 00:14:07.403 linus and hector martin kind of start to get into it and 00:14:07.403 --> 00:14:10.263 hector martin takes to social media to call out 00:14:10.263 --> 00:14:13.183 the process as being you know just really hard 00:14:13.183 --> 00:14:16.983 on the contributors who are trying to get rust in the linux kernel that very 00:14:16.983 --> 00:14:20.963 act sparks a debate on the linux mailing list about social brigading and trying 00:14:20.963 --> 00:14:25.883 to influence the kernel process through social media posts linus steps in says 00:14:25.883 --> 00:14:30.503 this is essentially social brigading says it pushes him away from supporting the patch, 00:14:31.043 --> 00:14:33.343 says to Hector, maybe the problem is you. 00:14:33.623 --> 00:14:36.683 And that got quite a bit of attention just a couple of weeks ago. 00:14:38.273 --> 00:14:44.073 To kind of try to take us from the dust up over that to actual, 00:14:44.073 --> 00:14:49.653 like, tangible policy, Miguel introduced what he's calling, on February 11th, 00:14:50.093 --> 00:14:55.113 the Rust kernel policy, which is meant to clarify how Rust should integrate 00:14:55.113 --> 00:14:57.553 with the kernel, hoping to reduce tensions. 00:14:58.693 --> 00:15:03.273 Yeah, he wrote, given the discussions in the last days, I decided to publish 00:15:03.273 --> 00:15:07.773 this page with what our understanding is. Hope it helps to clarify things. 00:15:08.273 --> 00:15:09.573 Did it clarify things, Wes? 00:15:10.293 --> 00:15:16.053 Well, that probably depends on who you ask. There was obviously some pushback. 00:15:16.213 --> 00:15:18.653 But maybe it's worth looking at kind of like what it was. 00:15:19.393 --> 00:15:19.553 Yeah. 00:15:19.693 --> 00:15:22.233 You know, it had some points about, like, who's pushing this? 00:15:22.353 --> 00:15:25.313 It's not the Rust project or the foundation or even necessarily. 00:15:25.313 --> 00:15:28.073 There are companies interested, but it's like its own, you know, 00:15:28.513 --> 00:15:30.513 they're kernel contributors who want to add Rust. 00:15:31.153 --> 00:15:34.553 Then I mentioned some key folks, maintainers, other people that are involved. 00:15:35.933 --> 00:15:36.893 Here's some quotes. 00:15:38.513 --> 00:15:41.253 Some subsystems may decide they do not want to 00:15:41.253 --> 00:15:44.513 have rust code for the time being typically for bandwidth reasons 00:15:44.513 --> 00:15:50.913 this is fine and expected now in the kernel maintainer summit 2022 we asked 00:15:50.913 --> 00:15:54.913 for flexibility when the time comes that a major user of rust in the kernel 00:15:54.913 --> 00:16:00.413 requires key apis for which the maintainer may not be able to maintain rust 00:16:00.413 --> 00:16:03.853 abstractions for it this flexibility, 00:16:04.413 --> 00:16:08.873 is the needed counterpart to the ability of maintainers to decide whether they 00:16:08.873 --> 00:16:11.093 want to allow Rust or not. 00:16:11.853 --> 00:16:14.713 It also says some stuff about what happens if things break. 00:16:14.873 --> 00:16:19.693 So on their FAQ, who's responsible if a C change breaks a build with Rust enabled? 00:16:19.873 --> 00:16:21.453 That's been a big contentious question, right? 00:16:21.873 --> 00:16:26.093 Well, this site's position, their understanding is, the usual kernel policy applies. 00:16:26.313 --> 00:16:30.773 So by default, changes should not be introduced if they are known to break the build, including Rust. 00:16:31.113 --> 00:16:37.133 However, exceptionally for Rust, a subsystem may allow to temporarily break Rust code. 00:16:37.493 --> 00:16:41.593 The intention is to facilitate friendly adoption of Rust in a subsystem without 00:16:41.593 --> 00:16:46.993 introducing a burden to existing maintainers who may be working on urgent fixes for the seaside. 00:16:47.073 --> 00:16:51.433 That feels like a big compromise from the Rust side, where they're essentially 00:16:51.433 --> 00:16:54.993 saying, we're willing to let Rust code break for a while, and we'll try to sort 00:16:54.993 --> 00:16:59.633 it out if it just means the seaside will roll with us here. That's a big give. 00:16:59.813 --> 00:17:02.713 And you've seen various versions too, right? Like that's where there's, 00:17:02.773 --> 00:17:06.653 you know, some subsystem maintainers are interested in figuring out some of 00:17:06.653 --> 00:17:07.633 the rust stuff for themselves. 00:17:07.893 --> 00:17:12.213 Other ones appoint like a co-maintainer or like a, you're maintaining the rust 00:17:12.213 --> 00:17:15.913 side of this subsystem while I'm going to do the C side or all kinds of other mixes. 00:17:16.693 --> 00:17:18.633 And some of this flexibility on both sides, at least... 00:17:19.551 --> 00:17:24.871 As some people felt was kind of an agreement before, was to accommodate all of that. 00:17:25.031 --> 00:17:29.411 And the idea would be if the Rust code does break, you actually fix it before 00:17:29.411 --> 00:17:33.851 it gets to Linus's tree and it actually ships. It's not like you ship broken Rust code. 00:17:34.291 --> 00:17:37.071 There's an idea that gets caught, but that is still a pretty big compromise. 00:17:38.451 --> 00:17:41.971 Now, there are concerns with some of this in practice, particularly around like, 00:17:42.051 --> 00:17:45.931 okay, you say it's fine to break it, but am I going to get yelled at still? 00:17:46.071 --> 00:17:47.131 Who knows it's even broken? 00:17:47.131 --> 00:17:49.891 You have to make sure that you've set up, and I don't think they're not doing 00:17:49.891 --> 00:17:51.231 this, but just, you know, you have to make sure you've set up, 00:17:51.311 --> 00:17:54.551 like, who do you then, if we've all agreed you're not going to fix it, 00:17:54.611 --> 00:17:58.471 but it being broken is a problem, then, like, who is actually in practice fixing it? 00:17:58.631 --> 00:17:58.711 Yeah. 00:17:59.571 --> 00:18:03.511 Helbig also said, I don't think having a web page in any form is useful. 00:18:03.911 --> 00:18:08.071 If you want it to be valid, it has to be in the kernel tree and widely agreed on. 00:18:08.631 --> 00:18:12.251 It also states factually incorrect information, e.g. 00:18:12.471 --> 00:18:17.691 Some subsystems may decide they do not want to have Rust code for the time being. We read that. 00:18:18.431 --> 00:18:23.091 Helwig continues, while Linus in private said that he absolutely is going to 00:18:23.091 --> 00:18:25.991 merge Rust code over a maintainer's objection. 00:18:26.411 --> 00:18:31.371 Yeah. And this has been sort of the, one of the complaints has been mixed messaging here. 00:18:31.511 --> 00:18:34.871 Like, oh, it's a maintainer's choice, but also I am going to be publishing Rust code. 00:18:34.871 --> 00:18:41.811 But Helwig's been kind of emerging as maybe the most vocal critic of Rust getting 00:18:41.811 --> 00:18:49.751 in and I think has probably raised the most points in the most recent rounds of going back and forth. 00:18:49.931 --> 00:18:52.711 And he's kind of calling out Linus here. He says, quote, yeah, 00:18:52.791 --> 00:18:55.311 like you said, while Linus in private said that he absolutely is going to merge 00:18:55.311 --> 00:19:01.411 Rust code over a maintainer's objection, he says this is a very dishonest way of communication. 00:19:01.411 --> 00:19:08.091 Yeah. And that was pointed at Miguel over including that quote about you don't have to take it. 00:19:08.171 --> 00:19:08.311 Right. 00:19:08.451 --> 00:19:12.191 And that's where there's a bunch of nuance and we'll eventually see spoilers 00:19:12.191 --> 00:19:14.811 that Linus sort of does eventually chime in. 00:19:14.891 --> 00:19:17.371 But I think there has been a question in many folks minds of like. 00:19:18.651 --> 00:19:22.471 Where, you know, has there been enough communication? We've seen Greg Cage chime 00:19:22.471 --> 00:19:26.211 in a few times in various small ways, especially to clarify stuff about, 00:19:26.311 --> 00:19:29.951 oh, what was broken in this previous case that people were pointing to at one time. 00:19:30.571 --> 00:19:36.131 You know while this is going on right so we start in january we're mid-february right now, 00:19:36.971 --> 00:19:43.291 maintainers are hitting a wall hector martin resigns right uh burned out disappointed 00:19:43.291 --> 00:19:47.931 with leadership in the kernel frustrated with their post approach to rust integration 00:19:47.931 --> 00:19:52.291 ceases maintaining upstream linux kernel code for the arm stuff you know the 00:19:52.291 --> 00:19:54.111 solid project has to rework that now, 00:19:55.051 --> 00:19:58.031 um we've seen others that burned out like that that 00:19:58.031 --> 00:20:00.931 is so you understand the context in the background while all 00:20:00.931 --> 00:20:05.751 of this is sort of playing out while also at the same time publicly greg and 00:20:05.751 --> 00:20:10.291 linus kind of would from time to time say fairly pro rust stuff even though 00:20:10.291 --> 00:20:14.391 this superheated debates happening in the background during all of this you 00:20:14.391 --> 00:20:18.111 know you'd see comments from both of them saying oh yeah no rust is coming yeah. 00:20:18.111 --> 00:20:21.691 And i think there has been maybe some lack of clarity in 00:20:21.691 --> 00:20:24.611 general or at least there's been some confusion around the like okay so 00:20:24.611 --> 00:20:27.831 it's clear that rust has been kind of an experiment in the kernel but 00:20:27.831 --> 00:20:31.651 to some people's mind experiment means it's not 00:20:31.651 --> 00:20:37.271 been like like we're not doing it whereas i think maybe in some of the higher 00:20:37.271 --> 00:20:40.731 maintainers minds experiment means well we don't know how we're doing it and 00:20:40.731 --> 00:20:43.471 we're figuring out the right way to do it and it may be painful and bright things 00:20:43.471 --> 00:20:46.751 but like in general we're doing it we may decide we ultimately don't want to 00:20:46.751 --> 00:20:49.071 do it and stop doing it but for the moment we're doing it. 00:20:49.071 --> 00:20:53.571 I gotta say one of the debates and it's just like a hard line is we just should 00:20:53.571 --> 00:20:56.971 not have a multi-language project like this. 00:20:57.711 --> 00:21:00.431 We should not just introduce for us this is going to make it hard to maintain 00:21:00.431 --> 00:21:01.571 this is going to make it more of a bear. 00:21:01.931 --> 00:21:05.871 We should just improve the sea stuff if we want. If we want we should go back 00:21:05.871 --> 00:21:07.931 and retrofit that. And I think, 00:21:08.959 --> 00:21:13.019 What they're ultimately pushing back on is, well, where do you draw the line? 00:21:13.419 --> 00:21:17.819 Do you completely rewrite the Linux kernel one day in Rust? Is that where this leads to? 00:21:18.319 --> 00:21:21.199 Every time we find a bug now, are we just going to write a Rust version and 00:21:21.199 --> 00:21:22.799 essentially this is going to become a Rust kernel? 00:21:23.399 --> 00:21:26.399 They don't want that. That's ridiculous. We should just fix the problems and 00:21:26.399 --> 00:21:29.819 see is what they're – I'm sure you've seen that opinion in the mailing list. 00:21:29.959 --> 00:21:33.579 Yeah, well, and I think it's also like it means you have to have double the infrastructure. 00:21:33.579 --> 00:21:36.919 Sure you're now at some point maybe become dependent on 00:21:36.919 --> 00:21:39.879 the right version of cargo and you 00:21:39.879 --> 00:21:44.319 can just imagine right if you are a maintainer who spent years knowing the 00:21:44.319 --> 00:21:46.959 ins and outs of you know how to 00:21:46.959 --> 00:21:50.799 maintain a complicated and important c project uh 00:21:50.799 --> 00:21:54.259 even if you can you know even if you're willing to take like a co-maintainer 00:21:54.259 --> 00:21:58.119 path it's a lot of trust it's a lot of change and you are going to have code 00:21:58.119 --> 00:22:03.179 that's either making you know has expectations of you or is directly interfacing 00:22:03.179 --> 00:22:06.559 with code that you're using that you don't maybe have a full understanding of 00:22:06.559 --> 00:22:07.859 and that's imagine a situation. 00:22:07.859 --> 00:22:11.759 Where you're trying to push a feature and it does break something in rust and 00:22:11.759 --> 00:22:14.439 now you're kind of trying to be polite so you're trying to wait for the rust 00:22:14.439 --> 00:22:17.339 stuff to get fixed but now maybe you've missed the merge window like you can 00:22:17.339 --> 00:22:20.879 understand there there is a little bit of concern there that does seem legitimate. 00:22:20.879 --> 00:22:24.599 And that's where this is you know a complicated question because it is ultimately 00:22:24.599 --> 00:22:27.919 one like most things in the real world of trade offs right like there are real 00:22:27.919 --> 00:22:32.079 costs to having multiple languages regardless of the language and there's real 00:22:32.079 --> 00:22:34.599 costs for the Rust in particulars and it's a big change. 00:22:35.039 --> 00:22:39.439 But what the Rust for Linux folks and as we'll see some others are advocating 00:22:39.439 --> 00:22:46.459 is that especially maybe if we focus this on net new code and new drivers in particular, 00:22:47.219 --> 00:22:50.159 there's a lot of upside and a lot of wins that can help the kernel overall. 00:22:53.247 --> 00:23:00.427 1password.com slash unplugged. That's the number 1password.com slash unplugged, all lowercase. 00:23:00.607 --> 00:23:04.427 And you're going to want to go there because this is something that if I had 00:23:04.427 --> 00:23:08.807 when I still worked in IT, I think it would have sustained me for many, many more years. 00:23:08.967 --> 00:23:13.607 The reality is your end users don't, and I mean without exception, 00:23:13.907 --> 00:23:16.767 work on only company-owned devices, applications, and services. 00:23:17.167 --> 00:23:21.207 Maybe you get lucky and they mostly do, but I don't find that to be the reality 00:23:21.207 --> 00:23:25.867 today. And so the next question becomes, how do you actually keep your company's 00:23:25.867 --> 00:23:29.827 data safe when it's sitting on all of these unmanaged apps and devices? 00:23:30.847 --> 00:23:34.427 Well, that's where 1Password has an answer. It's extended access management. 00:23:34.647 --> 00:23:39.287 1Password extended access management helps you secure every sign-on for every 00:23:39.287 --> 00:23:44.147 app on every device because it solves the problems that your traditional IAMs 00:23:44.147 --> 00:23:46.087 and MDMs just can't touch. 00:23:46.827 --> 00:23:51.927 And it's the first security solution that brings unmanaged devices and applications 00:23:51.927 --> 00:23:55.067 and identities under your control. 00:23:55.527 --> 00:23:59.047 It ensures that every credential is strong and protected, every device is known 00:23:59.047 --> 00:24:01.647 and healthy, and every app is visible. 00:24:02.207 --> 00:24:06.207 This is some powerful stuff, and it's available for companies that use Okta 00:24:06.207 --> 00:24:09.627 or Microsoft Entra, and it's in beta for Google Workspace customers, too. 00:24:10.487 --> 00:24:14.327 1Password changed the game for password management, and now they're taking everything 00:24:14.327 --> 00:24:18.307 they've learned there and expanding it to the login level and the application level. 00:24:18.687 --> 00:24:22.127 You know what a difference it makes when people have proper password management. 00:24:22.367 --> 00:24:25.627 Now let's have proper login management and authorization. 00:24:26.347 --> 00:24:31.547 1Password also has regular third-party audits and the industry's largest bug 00:24:31.547 --> 00:24:33.527 bounty. They exceed the standards set by others. 00:24:33.907 --> 00:24:38.047 They really do. So go secure every app, every device, and every identity. 00:24:38.047 --> 00:24:39.947 Even the unmanaged ones. 00:24:40.107 --> 00:24:43.667 You just go to 1password.com slash unplugged, all overcase. 00:24:44.067 --> 00:24:47.587 That's 1password.com slash unplugged. 00:24:50.347 --> 00:24:57.287 Now, with all this happening, Greg and also Linus did chime in just a few days ago. 00:24:57.567 --> 00:25:02.307 Greg came in with a rather compelling case, actually, for new drivers, 00:25:02.327 --> 00:25:04.387 at least, to be written in rough, like Wes was saying. He says, 00:25:04.507 --> 00:25:09.167 quote, yes, mixed language code bases are rough and hard to maintain, but, 00:25:10.728 --> 00:25:14.048 We're kernel developers, damn it. We have been maintaining and strengthening 00:25:14.048 --> 00:25:17.028 Linux for longer than anyone ever thought was going to be possible. 00:25:17.348 --> 00:25:21.168 We have turned our development model into a well-oiled engineering marvel, 00:25:21.368 --> 00:25:24.188 creating something that no one else has ever been able to accomplish. 00:25:24.928 --> 00:25:27.808 Adding another language really shouldn't be a problem. 00:25:28.108 --> 00:25:31.928 We've handled much worse things in the past, and we shouldn't give up now on 00:25:31.928 --> 00:25:35.188 wanting to ensure that our project succeeds for the next 20-plus years. 00:25:35.548 --> 00:25:39.128 We've got to keep pushing forward when confronted with new good ideas, 00:25:39.728 --> 00:25:43.808 and embrace the people offering to join us actually doing the work to help make 00:25:43.808 --> 00:25:45.268 sure that we all succeed together. 00:25:46.128 --> 00:25:49.588 Yeah, I like that. I really think Greg's done some good, you know, 00:25:49.728 --> 00:25:54.488 just sort of on the edges and a little stronger here, but just with a very nice tone. 00:25:54.648 --> 00:25:58.368 It's so positive. It makes you want to go help make Linux better yourself. 00:25:58.868 --> 00:26:02.028 And I think it's right to call out that, you know, whether you agree with the 00:26:02.028 --> 00:26:07.168 mission or not, you have to agree that the Rust for Linux folks are trying hard. 00:26:07.788 --> 00:26:11.628 You know, I noticed, I think it was a week or two ago, they're working on the 00:26:11.628 --> 00:26:15.268 Phobus, and Greg posted on Masto about it. 00:26:15.668 --> 00:26:20.908 And he made sure to call out, you know, from the get-go, this has Rust API bindings. 00:26:21.008 --> 00:26:22.368 It's ready to go for the Rust crew. 00:26:22.528 --> 00:26:25.968 We're introducing a C-side and a Rust-side, and it's good. Try out the Phobus. 00:26:26.168 --> 00:26:29.588 Well, I think that's been influenced, not some small amount, 00:26:29.788 --> 00:26:33.008 by, you know, he's been super involved with, you know, maintaining the stable 00:26:33.008 --> 00:26:36.128 side of things and dealing now with the kernel CVE process. 00:26:36.128 --> 00:26:42.468 So he started that post by saying, as someone who's seen almost every kernel 00:26:42.468 --> 00:26:46.028 bug fix and security issue for the past 15 plus years, 00:26:46.268 --> 00:26:50.568 well, hopefully all of them, and who sees every kernel CVE issued, 00:26:50.748 --> 00:26:52.188 I think I can speak on this topic. 00:26:52.408 --> 00:26:55.528 The majority of bugs, and here he's trying to be clear, quantity, 00:26:55.528 --> 00:26:57.028 not quality or severity, are... 00:26:57.792 --> 00:27:02.532 The majority of bugs we have are due to the stupid little corner cases in C 00:27:02.532 --> 00:27:05.132 that are totally gone in Rust. 00:27:05.452 --> 00:27:08.792 Things like simple overwrites of memory, error path cleanups, 00:27:08.972 --> 00:27:11.892 forgetting to check error values, and use after free mistakes. 00:27:12.272 --> 00:27:15.072 That's why I'm wanting to see Rust get into the kernel. 00:27:15.352 --> 00:27:19.992 These types of issues just go away, allowing developers and maintainers more 00:27:19.992 --> 00:27:23.652 time to focus on the real bugs that happen, i.e. 00:27:23.772 --> 00:27:25.892 Logic issues, race conditions, etc. 00:27:25.892 --> 00:27:30.832 Yeah, the memory problems developers create themselves. And then, 00:27:31.172 --> 00:27:35.532 so a moment that really impressed me was Linus. 00:27:35.652 --> 00:27:38.672 And, you know, I've been critical of him recently on some of his decisions, 00:27:38.672 --> 00:27:44.672 but I really felt like Linus showed he still really got his hands around this entire thing. 00:27:45.272 --> 00:27:48.352 He popped in on the mailing list a couple of days ago. 00:27:48.532 --> 00:27:53.472 And remember, this went all the way back to January, the beginning of the nuance of all of this. 00:27:54.272 --> 00:27:57.592 And none of it missed Linus's catch. And I was impressed by that. 00:27:57.712 --> 00:28:00.352 And he was responding to Hillwig, I believe, when he writes, 00:28:00.532 --> 00:28:04.032 you're not forced to take any Rust code at all or care about Rust code in the 00:28:04.032 --> 00:28:06.012 DMA code. You can just ignore it. 00:28:06.252 --> 00:28:11.072 But the, quote, ignore the Rust side, end quote, automatically also means that 00:28:11.072 --> 00:28:13.952 you don't have any say on the Rust side. 00:28:13.952 --> 00:28:16.792 You can't have it both ways you can't say quote 00:28:16.792 --> 00:28:19.452 i want to have nothing to do with rust and then in 00:28:19.452 --> 00:28:22.532 the very next sentence say quote and that means that the rust code 00:28:22.532 --> 00:28:27.552 that i want to ignore cannot use the c interfaces i maintain maintainers who 00:28:27.552 --> 00:28:32.272 want to be involved in the rust side can be involved in it and by being involved 00:28:32.272 --> 00:28:37.052 with it they will have some say in what the rust bindings will look like they 00:28:37.052 --> 00:28:39.732 basically become the maintainers of the rust interfaces and. 00:28:40.943 --> 00:28:44.363 What Linus did here, in my kind of short, horrible read there, 00:28:44.583 --> 00:28:52.903 is he recognized that what Hillwig was originally complaining about wasn't really applicable here. 00:28:53.203 --> 00:28:56.803 The Rust folks weren't asking to change anything on the C side. 00:28:56.923 --> 00:29:00.623 They weren't touching anything on the C side for the DMA bus that we originally talked about. 00:29:00.803 --> 00:29:02.823 As we touched on it, it was in a separate subtree. 00:29:02.903 --> 00:29:06.683 It's in its own separate subtree. And all they would be doing is reading the 00:29:06.683 --> 00:29:12.063 DMA bus like anything else might in the Linux kernel. And that is a line too far for Linus. 00:29:12.143 --> 00:29:16.583 You can't be not involved and also say what these programs can and cannot use in a Linux kernel. 00:29:16.783 --> 00:29:19.563 As he puts it, it just simply does not work that way. 00:29:19.723 --> 00:29:23.503 Like he says, but that wall of protection goes both ways. 00:29:23.523 --> 00:29:27.863 If you don't want to deal with the Rust code, you get no say on the Rust code. 00:29:28.023 --> 00:29:33.503 Put another way, the nobody is forced to deal with Rust does not imply everybody 00:29:33.503 --> 00:29:35.903 is allowed to veto any Rust code. 00:29:36.823 --> 00:29:39.803 I think I just want to reiterate. You know, people have been saying, 00:29:39.983 --> 00:29:42.423 Linus needs to say more. Linus needs to chime in. 00:29:42.763 --> 00:29:47.143 Linus, if you look at this mailing list thread, he's chiming in pretty frequently, 00:29:47.323 --> 00:29:49.283 not all the time, but pretty frequently throughout. 00:29:50.183 --> 00:29:53.023 It does seem like, I mean, it seems maybe it failed, but he did clearly also 00:29:53.023 --> 00:29:55.303 have some private communiques with Miguel. 00:29:55.643 --> 00:30:00.803 But I was impressed that the original nuance all the way back in January did 00:30:00.803 --> 00:30:06.303 not miss his grasp. And that was a fundamental nuance to kind of saying to Hillwig, 00:30:06.503 --> 00:30:08.063 hey, I respect your arguments. 00:30:08.243 --> 00:30:10.903 You're often right. You call and Linus even says you call me on my BS. 00:30:11.123 --> 00:30:12.663 I'm calling you on your BS here. 00:30:13.243 --> 00:30:16.323 That's the other thing. If you just hear the parts we read, the most intense 00:30:16.323 --> 00:30:20.683 parts of the, you know, the debate and Linus putting down his policy. 00:30:20.883 --> 00:30:20.963 Right. 00:30:21.043 --> 00:30:23.803 But he also says things like, you know, you're saying like, I respect what you're 00:30:23.803 --> 00:30:27.143 saying. He also says, I respect you technically and I like working with you. 00:30:27.143 --> 00:30:31.803 Yeah. I'm not looking for yes men. And I like it when you call me on my BS. 00:30:32.163 --> 00:30:35.783 I say some stupid things at times. There needs to be people who can stand up 00:30:35.783 --> 00:30:37.563 to me and tell me I'm full of S. 00:30:38.003 --> 00:30:40.023 But now I'm calling you out on yours. 00:30:41.780 --> 00:30:42.540 It's pretty good. 00:30:43.100 --> 00:30:47.960 It's a very different Linus than we've seen previously. I love it. 00:30:48.140 --> 00:30:51.740 I think one of the MVPs in this thread is Miguel. Don't you think? 00:30:51.980 --> 00:30:56.600 Yeah. I will say there's been, you know, we focused on a lot of the, 00:30:56.880 --> 00:30:59.780 you know, the more intense parts, as I was just saying. 00:31:00.140 --> 00:31:03.720 But there was a lot of good interactions in there as well. 00:31:03.960 --> 00:31:08.260 You know, I saw James Bottomley asking a lot of, like, legit and good natured 00:31:08.260 --> 00:31:10.820 questions, a lot of developers trying to learn more. 00:31:10.820 --> 00:31:14.880 Kent Overstreet chiming in how this could be beneficial for BcacheFS or how, 00:31:14.960 --> 00:31:17.560 you know, how to maybe reframe things from time to time. 00:31:18.160 --> 00:31:23.640 Yeah. And, you know, there's just there's there's a lot of different levels of knowledge, right? 00:31:23.680 --> 00:31:25.460 Some folks have used Rust, but 00:31:25.460 --> 00:31:28.000 like for user land stuff and never thought about the kernel side of it. 00:31:28.060 --> 00:31:31.160 Some people have never touched Rust at all. So you get levels of like, 00:31:31.320 --> 00:31:33.700 do you is your understanding of Rust accurate? 00:31:33.840 --> 00:31:37.240 Are you are you asking about a nuance of like where the type system isn't complete? 00:31:37.240 --> 00:31:40.380 Are you asking sort of like you don't understand you know how the compiler side 00:31:40.380 --> 00:31:45.420 of it works there's a lot of areas and yeah uh miguel has just sort of been 00:31:45.420 --> 00:31:46.760 seemingly tirelessly and for 00:31:46.760 --> 00:31:54.280 the most part quite you know politely uh answering trying to clarify this. 00:31:54.280 --> 00:31:58.860 Has not been an easy process for the community and it has not been without its 00:31:58.860 --> 00:32:02.360 costs of some really good contributors you know and uh, 00:32:03.581 --> 00:32:07.581 I know that it's cliche to say the process is messy, but sometimes when you 00:32:07.581 --> 00:32:09.621 actually see the mess unfold, it's hard to watch. 00:32:09.841 --> 00:32:12.541 Neil, did you have any thoughts from sort of the Asahi side, 00:32:13.061 --> 00:32:15.821 you know, watching that project as closely as you do now being tied in over 00:32:15.821 --> 00:32:17.141 there at Fedora? Did you have any thoughts on this? 00:32:17.481 --> 00:32:21.521 I think part of the—my personal feeling on this is that I think Linus should 00:32:21.521 --> 00:32:24.381 have stepped in two weeks ago about this. 00:32:25.901 --> 00:32:29.781 Not because he hasn't stepped in and doesn't have good thoughts about this but like, 00:32:30.681 --> 00:32:36.501 the downward spiral that this whole the whole conversation has had could have 00:32:36.501 --> 00:32:37.441 been completely avoided, 00:32:38.241 --> 00:32:46.021 if he had said this earlier I get why he didn't I understand the desire to have 00:32:46.021 --> 00:32:52.081 the community sort itself out I just think that this is one of those things that is going to require, 00:32:53.541 --> 00:32:57.141 more tough love type stuff as we keep going. 00:32:57.281 --> 00:33:00.241 Because there's this contention with groups of people saying, 00:33:00.341 --> 00:33:03.581 oh, this can't ever be enterprise ready, and so it's a toy. 00:33:03.821 --> 00:33:07.721 There are people saying, I don't want to deal with this because multi-language is terrible. 00:33:08.441 --> 00:33:11.321 Ignoring the fact that the Linux kernel actually been a multi-language project 00:33:11.321 --> 00:33:12.381 since almost the beginning. 00:33:12.721 --> 00:33:16.161 It's been C in Assembler, and then C, Perl, Python, and Assembler, 00:33:16.281 --> 00:33:22.641 and Makefiles, and Shell, and like there is code in there that generates code 00:33:22.641 --> 00:33:25.141 that generates code that is then used to compile code. 00:33:25.341 --> 00:33:29.561 Like it is a morass of complexity all the way through it. 00:33:29.801 --> 00:33:34.761 Not acknowledging that and then kind of complaining about Rust bringing in a 00:33:34.761 --> 00:33:39.821 new thing of multi-languageness and complexity I think kind of is missing the 00:33:39.821 --> 00:33:40.921 forest for the trees there. 00:33:41.181 --> 00:33:44.641 There's a lot more complexity in the Linux kernel today than there ever has been. 00:33:45.808 --> 00:33:50.048 So basically, I think a lot of people are going to need reality checks fairly 00:33:50.048 --> 00:33:52.008 frequently as this keeps going on. 00:33:52.168 --> 00:33:55.808 Now, I'm not going to say that I'm like the most amazing fan of Rust. 00:33:55.988 --> 00:33:59.568 I think that there are things about Rust that I'm not the biggest fan of. 00:33:59.568 --> 00:34:11.468 But it is pretty clear at this point that there are significant drivers towards, pun intended. 00:34:12.008 --> 00:34:17.388 Towards Rust in the Linux kernel and people who are interested and enthusiastic about it. 00:34:17.528 --> 00:34:22.548 And I think the job of a good community leader is to encourage and support the 00:34:22.548 --> 00:34:28.308 people that are doing these sorts of things to enable the next generation to be successful. 00:34:28.308 --> 00:34:32.268 Like the Linux kernel has a very very big 00:34:32.268 --> 00:34:35.228 problem that it's that it can't that it hasn't really started 00:34:35.228 --> 00:34:38.128 looking at addressing which is the churn rate 00:34:38.128 --> 00:34:41.048 of maintainers in the Linux kernel is unbelievably low 00:34:41.048 --> 00:34:44.648 most of the people that are maintaining subsystems in Linux kernel have been 00:34:44.648 --> 00:34:51.948 doing it since almost the beginning of that subsystem and you look at the progress 00:34:51.948 --> 00:34:55.948 of bringing in new people to stay in for the long haul and it's not terribly 00:34:55.948 --> 00:34:59.608 high and that can be concerning as everyone's getting older. 00:35:00.048 --> 00:35:06.768 And what's going to happen when a critical subsystem loses a maintainer for reasons? 00:35:06.888 --> 00:35:11.268 Like we lost wireless subsystem Larry Finger last year. 00:35:11.308 --> 00:35:14.888 And this is not going to be a new thing. This is going to keep happening. 00:35:15.988 --> 00:35:21.328 And so we have to start, I mean, we, the people in the Linux kernel community, 00:35:21.548 --> 00:35:25.368 the subsystem leaders and whatnot, have to start acknowledging that. 00:35:26.520 --> 00:35:29.900 There has to be some give and take. There has to be some give to be where the 00:35:29.900 --> 00:35:31.980 people are or where the people want to be. 00:35:32.600 --> 00:35:37.580 And some people want C++. Some people want Rust. Some people want to be on Forges 00:35:37.580 --> 00:35:39.300 rather than using mailing lists. 00:35:39.780 --> 00:35:44.260 This is all going to be things that have to be dealt with because you need the 00:35:44.260 --> 00:35:46.640 next generation or the project dies. 00:35:47.280 --> 00:35:52.140 So this is something where I think Linus is going to have to take some tougher 00:35:52.140 --> 00:35:55.900 leadership on because otherwise I don't know what's going to happen. 00:35:56.880 --> 00:36:01.300 I thought maybe we could end. I saw a nice post during part of this discussion 00:36:01.300 --> 00:36:05.300 from Keys Cook, who's been a long time leading the kernel self-protection project 00:36:05.300 --> 00:36:10.380 and doing a lot of good security vulnerability focused work on the C code in the kernel. 00:36:10.800 --> 00:36:12.780 And Chris, you mentioned kind of the contention of like, well, 00:36:12.860 --> 00:36:15.020 where does this end? And are we trying to rewrite the whole kernel? 00:36:15.140 --> 00:36:17.020 And what is the goal of this experiment, really? 00:36:17.860 --> 00:36:23.740 So Keyes wrote, Speaking to the what is the goal question, I see the goal as 00:36:23.740 --> 00:36:26.980 eliminating memory safety issues in new drivers and subsystems. 00:36:27.100 --> 00:36:33.460 The pattern we've seen in Linux with security flaws is that the majority appear in new code. 00:36:33.820 --> 00:36:38.180 Focusing on getting new code written in Rust puts a stop to these kinds of flaws. 00:36:38.360 --> 00:36:42.700 And it has an exponential impact, as Android and Usenix have found. 00:36:42.800 --> 00:36:44.400 And then he included a bunch of citations. 00:36:45.100 --> 00:36:49.180 In other words, I don't see any reason to focus on replacing existing code. 00:36:49.380 --> 00:36:55.140 Doing so would actually carry a lot of risk. But writing new stuff in Rust is very effective. 00:36:55.720 --> 00:36:59.280 Old code is more stable, and it already has fewer bugs. 00:36:59.660 --> 00:37:03.000 And yet, we're still going to continue the work of hardening C, 00:37:03.160 --> 00:37:05.100 because we still need to shake those bugs out. 00:37:05.320 --> 00:37:11.840 But new code can be written in Rust and not have any of these classes of bugs at all from day one. 00:37:16.174 --> 00:37:20.894 Jupiterbroadcasting.com slash river. You know I'm all about decentralized systems 00:37:20.894 --> 00:37:23.714 like Linux, podcasting, and Bitcoin. 00:37:24.054 --> 00:37:28.034 Self-hosted, user-controlled, no vendors pulling the strings. 00:37:28.334 --> 00:37:32.714 And Bitcoin really is the Linux of money. When we first started talking about 00:37:32.714 --> 00:37:35.974 boosts on the show, Bitcoin was around $30-something thousand dollars, 00:37:36.154 --> 00:37:38.994 and now it's around $100,000-something dollars? 00:37:39.454 --> 00:37:42.874 Now, why did that happen? It's because of a couple of things, 00:37:42.974 --> 00:37:45.074 and scarcity and network effect come to mind. 00:37:45.154 --> 00:37:49.994 There's only 21 million Bitcoin that will ever exist, and there is unlimited 00:37:49.994 --> 00:37:51.894 printed fiat chasing it. 00:37:52.614 --> 00:37:56.934 This is why the Bitcoin ETFs were the most successful ETF launches in history. 00:37:57.714 --> 00:37:59.894 There was just a little story that went by in the last year, 00:37:59.974 --> 00:38:02.594 but they were the most successful ETFs in history. 00:38:03.174 --> 00:38:07.614 So if you're like me, you don't really want an ETF because that's essentially an IOU. you. 00:38:08.154 --> 00:38:13.934 You want to own the real thing. The challenge is finding a legit, 00:38:14.454 --> 00:38:19.734 secure, trusted space that isn't a scam or isn't something that is going to go away in a few years. 00:38:20.234 --> 00:38:25.654 You want a place you can buy, DCA, or sell your Bitcoin. And my answer to that is River. 00:38:26.194 --> 00:38:30.114 Go to jupiterbroadcasting.com slash River. That'll take you to our partner page. 00:38:30.354 --> 00:38:33.154 River is where I buy my Bitcoin, my family's Bitcoin. 00:38:33.674 --> 00:38:38.034 What I like about them is they have proof of reserves, and anyone can audit 00:38:38.034 --> 00:38:39.794 their supply at any time. 00:38:40.574 --> 00:38:43.634 They also are a Bitcoin-only focused company. 00:38:43.754 --> 00:38:47.654 So that means top tier services for Bitcoiners, slick mobile and web apps, 00:38:48.134 --> 00:38:49.814 lightning support, the works. 00:38:50.774 --> 00:38:54.714 And one of my favorite features is actually their cash savings account with 00:38:54.714 --> 00:38:57.294 a 3.8% interest paid in Bitcoin. 00:38:58.640 --> 00:39:01.500 Now, your galaxy brain move here is you stash some cash in there, 00:39:01.680 --> 00:39:06.960 you earn the 3.8%, and then you smash buy Bitcoin when the price dips a little bit. 00:39:07.240 --> 00:39:09.580 And trust me, it adds up fast. 00:39:10.180 --> 00:39:14.480 River is the most trusted spot in the United States for individuals and businesses 00:39:14.480 --> 00:39:16.800 to buy, sell, send, or receive Bitcoin. 00:39:17.020 --> 00:39:20.500 That's why I use them, and that's why I am pumped to recommend them to you. 00:39:20.500 --> 00:39:25.180 So if you just want some sats to boost the show, or you're looking for a long-term 00:39:25.180 --> 00:39:30.360 store of value, River makes it easy to get started with Bitcoin in three simple steps. 00:39:30.880 --> 00:39:34.200 Get started by going to jupiterbroadcasting.com slash river. 00:39:34.700 --> 00:39:38.320 It's real easy. That'll take you to our partner page for businesses or individuals. 00:39:39.360 --> 00:39:41.400 Jupiterbroadcasting.com slash river. 00:39:44.940 --> 00:39:48.720 Well, it is certainly conference season coming up, and we have one who's planning 00:39:48.720 --> 00:39:53.280 way ahead. Texas Linux Fest is, of course, back again this year, 00:39:53.440 --> 00:39:57.060 but with a new season, October 3rd to 4th this year. 00:39:57.320 --> 00:40:01.100 That's in Austin, Texas. And there's a call for paper open. 00:40:01.280 --> 00:40:05.580 You have until August 3rd, so no excuses for getting a talk in. 00:40:05.740 --> 00:40:10.500 But we would love to see what you can throw at Texas Linux Fest. 00:40:10.680 --> 00:40:13.940 Make it good. That way, we feel like we have to go. 00:40:14.220 --> 00:40:17.580 Yeah. Yeah, it's a great little fest. They're looking for sponsors, too. 00:40:19.640 --> 00:40:26.580 2025.texaslinuxfest.org for more details and I think Austin in October is going to be wonderful. 00:40:26.960 --> 00:40:31.100 October 3rd through the 4th at the JJ Pickle Research Campus. 00:40:32.120 --> 00:40:34.440 Is that real? Is that real? Is that not right? 00:40:34.700 --> 00:40:36.280 I think I named that one maybe. 00:40:36.700 --> 00:40:37.320 JJ Pickle? 00:40:37.540 --> 00:40:39.340 Yeah, it is a different location from last year. 00:40:39.420 --> 00:40:41.880 That's a good old Texas boy name right there. JJ Pickle. 00:40:43.740 --> 00:40:45.420 Get some culture in too while you're at it. 00:40:45.600 --> 00:40:49.080 Is it close to barbecue? That's what we need to figure out. 00:40:49.260 --> 00:40:52.380 I mean, Carl is, I believe, involved, so... 00:40:52.380 --> 00:40:52.980 You would hope, right? 00:40:53.040 --> 00:40:53.160 Right. 00:40:57.950 --> 00:41:02.490 Yes, it is, and Vamax is our baller booster for episode 603, 00:41:02.490 --> 00:41:07.190 the only 603 there will be, and he came in with 100,000 sats. 00:41:10.730 --> 00:41:19.750 Not bad at all. It says, I am, of course, advocating for a K-8s challenge. Yes, I know. 00:41:20.730 --> 00:41:25.650 And after that gets shot down, maybe some kind of exciting network challenge? 00:41:25.850 --> 00:41:26.170 Ooh. 00:41:27.050 --> 00:41:28.190 They know us so well. 00:41:28.490 --> 00:41:32.850 Yeah, they do. Also, I randomly saw hybrid sarcasm in the Gavio contribution 00:41:32.850 --> 00:41:35.350 release logs as I was getting it set up. 00:41:35.890 --> 00:41:40.210 Really? That's cool. Condesas, cheers to hybrid. That's really neat. 00:41:41.330 --> 00:41:43.530 Okay, so a networking challenge. 00:41:43.930 --> 00:41:45.810 You skipped right over the first idea. 00:41:45.970 --> 00:41:49.350 What was the first idea? Oh, because as he knows, the K8s challenge. 00:41:49.490 --> 00:41:51.670 That was an obvious skip, right? That's obvious. 00:41:53.010 --> 00:41:55.710 I mean, unless you want to do, I do have plenty of Raspberry Pis. 00:41:55.710 --> 00:42:00.810 We could do like a pie thing, but I don't know if we have enough pies for all of us. 00:42:01.190 --> 00:42:06.370 The idea of networking, quote unquote, as something we should do has come up 00:42:06.370 --> 00:42:07.670 about a bajillion times, though. 00:42:07.850 --> 00:42:16.830 So we do need to hone in on networking and figure out what we can do there because it's come up a lot. 00:42:17.010 --> 00:42:20.910 Thank you very, very much, Vey. We really appreciate that. You are the Max. 00:42:21.590 --> 00:42:26.190 Thanks for the boost. And if anybody has any networking challenge ideas that 00:42:26.190 --> 00:42:29.010 we could realistically pull off, because remember, one of the things we do like 00:42:29.010 --> 00:42:31.970 is if the audience can participate too. Please do send those in. 00:42:32.050 --> 00:42:34.890 We just have to not take down the live stream while we're doing the show. 00:42:35.090 --> 00:42:36.450 Right, right, right. 00:42:36.830 --> 00:42:40.470 The Doodamide comes in with 42,000 sats. 00:42:43.643 --> 00:42:48.743 I didn't have time to get on with the BSD challenge, but it was fun listening to your adventures. 00:42:49.543 --> 00:42:54.523 I'm wondering, how would it be if you use something like PFSense or OpenSense 00:42:54.523 --> 00:42:57.103 or TrueNAS Core as a base for the challenge? 00:42:57.803 --> 00:43:01.663 Technically, they all use free BSD, so would that still count? 00:43:03.383 --> 00:43:03.843 No. 00:43:04.443 --> 00:43:04.903 Oh. 00:43:05.543 --> 00:43:10.423 I'd say no, but I think it would count as one of the, you know, 00:43:10.463 --> 00:43:12.823 because one of the points is like a re-spin of free BSD. 00:43:13.423 --> 00:43:17.523 Because otherwise we'd have to say ghost BSD counts and ghost BSD didn't count, right? 00:43:18.443 --> 00:43:21.483 Well, I was just going to be nice and say, you know, make it your own challenge. 00:43:21.623 --> 00:43:22.103 Oh, yeah. 00:43:22.143 --> 00:43:24.043 If you learn something about how the BSD works. 00:43:24.063 --> 00:43:24.763 Oh, yeah, sure. 00:43:24.923 --> 00:43:25.103 Okay. 00:43:25.543 --> 00:43:26.703 Everybody gets a trophy. 00:43:29.543 --> 00:43:31.443 And what do you think, Brent? You get a tiebreaker here. 00:43:32.463 --> 00:43:37.263 Oh, if you put me in that hard position. I think we gained a lot of background 00:43:37.263 --> 00:43:40.563 and knowledge and context running FreeBSD. 00:43:40.563 --> 00:43:44.643 And that meant that when we went into running a non-FreeBSD, 00:43:44.823 --> 00:43:48.963 you know, one of the derivatives, we had all of that context and it gave us a bigger appreciation. 00:43:49.623 --> 00:43:52.043 So you're siding with me, I think, is what I'm hearing there. 00:43:52.843 --> 00:43:54.483 I was trying not to choose a side. 00:43:54.563 --> 00:43:57.943 But yeah, I guess I did. I think it was. All right. But I still, 00:43:58.163 --> 00:44:00.083 like Wes said, I think it's very valuable. 00:44:00.943 --> 00:44:05.563 And also, worth checking in on OpenSense. They've been doing a lot of good stuff over there. 00:44:05.863 --> 00:44:09.683 Well, I think it also says something that all these projects are based on FreeBSD. 00:44:09.683 --> 00:44:12.423 So there's certainly value to diving into any of them. 00:44:12.723 --> 00:44:13.903 Yeah, they don't like the GPO. 00:44:16.783 --> 00:44:21.743 Well, adversaries sent us in 32,768 sats. 00:44:23.823 --> 00:44:25.263 Adversaries, of course, obviously. 00:44:25.403 --> 00:44:28.983 I try to get it right to the way you get it wrong, and then I get it wrong. 00:44:29.243 --> 00:44:31.463 So my trick is just do both. 00:44:32.023 --> 00:44:32.223 What? 00:44:32.543 --> 00:44:35.203 Yeah, adversaries, adversaries, you just, you know, use both. 00:44:35.403 --> 00:44:35.643 Okay. 00:44:35.703 --> 00:44:38.463 Or, you know, we get a little more colloquial in 17. 00:44:38.463 --> 00:44:40.023 Yeah, it's Big 17! 00:44:42.623 --> 00:44:49.003 Lucky 17 came in and says, I loved all the BSD coverage. What a wild ride that must have been. 00:44:49.543 --> 00:44:53.083 Oh, thank you. I'm glad to hear it was positive. I know this sounds silly, 00:44:53.203 --> 00:44:56.043 but we did have the discussion, like, should we be talking about BSD in our 00:44:56.043 --> 00:44:58.603 Linux podcast? So I'm glad that people liked it. 00:44:59.103 --> 00:45:01.943 Thank you for that. It's always good to hear from you, Big 17. 00:45:02.203 --> 00:45:05.963 I heard Chris had to go and reinstall ifconfig on his next box. 00:45:06.963 --> 00:45:09.403 Hey, I still got one machine with ghost BSD. It lingers. 00:45:09.563 --> 00:45:09.803 Oh. 00:45:10.203 --> 00:45:14.743 It lingers. Turd Ferguson's here with 24,500 sats. 00:45:17.121 --> 00:45:20.881 How's about a video game challenge? Three of you get a co-op game working on 00:45:20.881 --> 00:45:23.041 Linux. Extra points if the audience can join. 00:45:23.301 --> 00:45:23.641 Oh. 00:45:24.281 --> 00:45:26.021 Oh, that sounds super fun. I'm in. 00:45:26.161 --> 00:45:26.801 It does sound fun. 00:45:27.081 --> 00:45:32.281 Okay, also, Turd says, what about a no-build Gen 2 challenge? 00:45:32.361 --> 00:45:35.221 Same rules as the BSD challenge, but no building software. 00:45:36.441 --> 00:45:40.441 How does that work? I mean, they have a binary cache, right, now? 00:45:41.421 --> 00:45:45.341 Could you get Nix working on Gen 2? That'd be hilarious. 00:45:45.341 --> 00:45:47.121 Does it strap a small little alpine on there? 00:45:47.141 --> 00:45:50.821 If we could somehow do the Gen 2 challenge without doing the Gen 2 challenge, 00:45:50.821 --> 00:45:52.401 I think turns on to something here. 00:45:52.501 --> 00:45:54.961 You know, you get the pre-built stage 2 or whatever. 00:45:55.281 --> 00:45:58.521 Okay, and then here's a philosophical question for you, Brent. 00:45:59.121 --> 00:46:03.141 If your favorite Linux distribution was a pizza topping, what would it be and why? 00:46:03.861 --> 00:46:04.661 Oh, man. 00:46:07.761 --> 00:46:12.281 Well, I think I have to say pineapple because it's so divisive. 00:46:12.401 --> 00:46:13.381 There's a Linux for everyone. 00:46:13.841 --> 00:46:14.241 Pineapple? 00:46:16.301 --> 00:46:16.761 What. 00:46:16.761 --> 00:46:21.301 I'm challenging the question just a bit because instead of distro specific i'm 00:46:21.301 --> 00:46:25.141 just gonna say nyx and i don't know if this is technically a topping more of 00:46:25.141 --> 00:46:30.361 a sauce but uh i'm gonna say nyx is like pesto because it goes with everything. 00:46:30.361 --> 00:46:37.961 Oh all right not the cheese or the dough no pesto okay all right i was gonna 00:46:37.961 --> 00:46:42.721 say it's the sauce but all right okay all right okay well so uh i do kind of 00:46:42.721 --> 00:46:45.221 like that we have never done a video we have not done a video game thing for 00:46:45.221 --> 00:46:46.781 a while on the show. We've never done a video game challenge. 00:46:48.399 --> 00:46:50.979 Like, wouldn't that be fun if we did a stream, like, sometime in, 00:46:50.999 --> 00:46:53.119 like, an evening during the week where everybody got in, we could do, 00:46:53.199 --> 00:46:54.139 like, a big co-op session? 00:46:54.239 --> 00:46:56.159 Why don't they make Race the Sun co-op edition? 00:46:56.399 --> 00:46:59.739 Right. That's all I'm saying. That's all I'm saying. Thank you, 00:46:59.799 --> 00:47:00.699 turd. Appreciate the boost. 00:47:01.819 --> 00:47:06.779 Our buddy, our pal Gene Beanboosin with 4,444 sats. 00:47:07.799 --> 00:47:11.599 Oh, first question. Did y'all play any with Beehive? Yeah, I did a bit. 00:47:11.699 --> 00:47:13.279 Not as much as I would have liked to. 00:47:13.439 --> 00:47:16.999 I got a Linux VM going. I started down the path of trying Windows on it. 00:47:16.999 --> 00:47:19.639 I'd like to come back to that and get that working a little better. 00:47:19.839 --> 00:47:23.639 I did not this go around. Beehive is the one thing I've played around with before 00:47:23.639 --> 00:47:26.199 where I've loaded FreeBSD just to try Beehive. 00:47:26.339 --> 00:47:30.279 And I think I've also, at some point, tried some sort of version that's on macOS. 00:47:30.599 --> 00:47:33.199 I mean, I haven't done anything in anger with it. 00:47:33.359 --> 00:47:34.199 Yes, X-Hive. 00:47:34.339 --> 00:47:38.639 But it's neat to see. I mean, you know, KVM has worked so well for us on Linux, 00:47:38.799 --> 00:47:41.819 and FreeBSD deserves a great virtualizer, and now it has one. 00:47:42.039 --> 00:47:45.259 At least they're starting to integrate VertIO support. So we may actually see 00:47:45.259 --> 00:47:53.079 things like USB redirection, GPU, para-virtualization, that sort of stuff show 00:47:53.079 --> 00:47:56.039 up in Beehive in the future. 00:47:56.319 --> 00:48:01.739 I mean, like Apple integrated it with their hypervisor framework for macOS, 00:48:01.959 --> 00:48:06.099 so it kind of supersedes XHive in that respect. But, you know, 00:48:06.159 --> 00:48:10.239 I'd like to see the virtio stuff be usable in more hypervisors. 00:48:10.719 --> 00:48:11.239 Agreed. 00:48:11.319 --> 00:48:14.299 You know, Wes, I'm looking here. Do you see this here? It seems like maybe the 00:48:14.299 --> 00:48:16.639 message got degraded. I'm trying to connect and pull it again. 00:48:17.719 --> 00:48:22.999 I think the facts got cut off for the report, but I think he had something about 00:48:22.999 --> 00:48:25.759 skipping the Gentoo challenge in there. Did you see that? 00:48:26.179 --> 00:48:32.379 Yeah, Gene's trolling us here. Rightly so. Oh, you say you're in need of another challenge, huh? 00:48:32.859 --> 00:48:36.739 How about that Gentoo challenge you've been putting off forever? 00:48:37.079 --> 00:48:38.139 I'm not from Gentoo. 00:48:38.139 --> 00:48:40.159 Never heard of it. No, that was Brent's challenge. 00:48:40.419 --> 00:48:40.779 Yeah, right. 00:48:40.899 --> 00:48:43.899 I take offense to that. I don't think we've been putting this off. 00:48:43.999 --> 00:48:45.459 I think we've just been focused elsewhere. 00:48:45.699 --> 00:48:46.099 Oh, okay. 00:48:46.999 --> 00:48:48.259 All right. I.e. putting it off. 00:48:48.419 --> 00:48:49.859 We'll let you know, Gene. We'll let you know. 00:48:50.139 --> 00:48:50.439 Neil. 00:48:52.877 --> 00:49:00.877 Well, Neural P sent in 5,000 sats. No message on this one, just a kind little send. 00:49:02.097 --> 00:49:06.057 Well, Monty came in with a row of adorable ducks, 2,222 sats. 00:49:07.457 --> 00:49:11.117 I got my AlbiHub set up, he says. Congratulations. 00:49:12.597 --> 00:49:15.837 That's a nice little journey. Tried several times to get Nick's Bitcoin up and 00:49:15.837 --> 00:49:17.697 running, but just couldn't get it to build. 00:49:17.957 --> 00:49:20.897 AlbiHub, though, I had it up in 10 minutes. Any suggestions on the simplest 00:49:20.897 --> 00:49:22.057 way to boost from AlbiHub? 00:49:22.637 --> 00:49:26.697 For this, I installed the Albi browser extension and opened up Linux Unplugged on the podcast index. 00:49:27.397 --> 00:49:30.697 That probably is the simplest way, actually, really, if you have Albi Hub. 00:49:31.077 --> 00:49:34.977 So here's the order if you're curious about boosting. Fountain makes it the 00:49:34.977 --> 00:49:38.597 easiest because it's all hosted by them. Okay, that's the easiest. 00:49:39.577 --> 00:49:43.137 Breeze is the next easiest because it's all hosted inside the app. 00:49:43.217 --> 00:49:44.917 You get a lightning node in the app. 00:49:45.537 --> 00:49:47.957 You put some sats in there. You can go find the podcast. You can boost. 00:49:48.037 --> 00:49:50.917 You don't really have to change podcast apps. That's Breeze, B-R-E-E-Z. 00:49:51.477 --> 00:49:54.837 And then the next tier, which you're hearing people talk about, is AlbiHub. 00:49:55.137 --> 00:49:58.017 And AlbiHub is where you self-host the entire thing. I mean, 00:49:58.117 --> 00:50:02.017 it is, after all, an open source peer-to-peer network, and anybody can participate. 00:50:02.297 --> 00:50:07.277 And AlbiHub is a stack of basically a lightning demon and a bunch of great software 00:50:07.277 --> 00:50:10.237 and a nice UI on top of that to manage all of this. 00:50:10.377 --> 00:50:12.897 But you don't really need it to boost. But if you want to go to, 00:50:12.897 --> 00:50:16.957 like, you know, Chad-level tier tech guy, then you go the AlbiHub setup. 00:50:16.957 --> 00:50:19.897 But if you just want to send some sats to the show, something like Fountain 00:50:19.897 --> 00:50:22.797 or Breeze, B-R-E-E-Z, make it really easy. 00:50:23.097 --> 00:50:26.517 And then you can go chat-o-matic if you want later on. And congratulations, Monty. 00:50:26.617 --> 00:50:30.277 I'm really impressed. And I'm also really impressed you tried the next Bitcoin 00:50:30.277 --> 00:50:33.317 route, too, and still ended up on Albie Hub and love it. It's great to hear. 00:50:34.457 --> 00:50:37.557 Distress 2 boosts in with 10,000 sats. 00:50:40.297 --> 00:50:42.457 Short and sweet. Planet Nix, y'all. 00:50:42.597 --> 00:50:43.917 I agree. Planet Nix, indeed. 00:50:44.257 --> 00:50:45.977 Yeah. Looking forward to hopefully seeing you there. 00:50:46.197 --> 00:50:46.357 Yeah. 00:50:47.517 --> 00:50:51.397 Well, Kongaroo Paradox sends one, two, three, four, five Satoshis. 00:50:56.459 --> 00:50:59.739 They're sending in a late update on their free BSD challenge. 00:50:59.759 --> 00:51:05.339 I tried out OpenBSD on a Raspberry Pi 4 as a server, but busy life with two 00:51:05.339 --> 00:51:09.939 young children didn't let me do much else apart from the manual install and installing Neovim. 00:51:10.099 --> 00:51:11.519 Hey, you got the important work done. 00:51:13.179 --> 00:51:18.599 I will say that I very much liked the vibe of OpenBSD. The installer is very guided and clear. 00:51:18.939 --> 00:51:22.639 And once rebooted, you have a message that states that you have mail. 00:51:22.799 --> 00:51:26.659 I do like that. I love the old Unix Mail system when you got messages in there. 00:51:28.059 --> 00:51:32.299 Said Mail has very interesting information for newcomers. I think I'll keep 00:51:32.299 --> 00:51:38.879 playing with this in my free time. And once I get a feel for BSD, on to NixBSD for me. 00:51:40.019 --> 00:51:46.059 P.S. I'll let you guys decide if this suffices or if I'll have to go server with Windows 11. 00:51:46.299 --> 00:51:50.779 I'm feeling like it does because we didn't get very many open, 00:51:50.879 --> 00:51:54.899 or if all, open BSD reports. And I think it's extremely valuable to get an open 00:51:54.899 --> 00:51:57.339 BSD report. And he got it on a Raspberry Pi 4. 00:51:59.099 --> 00:52:01.719 So I'm saying even though it's not free BSD, I think he wins. 00:52:01.859 --> 00:52:04.799 I think he wins right there. So no Windows 11 for you. You've at least avoided that. 00:52:06.059 --> 00:52:12.799 Enough points to avoid that. Autobrain comes in with 5,000 sats. That's a Jar Jar boost. 00:52:14.019 --> 00:52:16.999 My dual monitor. Oh, good. I've been hoping to get more dual monitor setups. 00:52:17.199 --> 00:52:19.439 By the way, I want more dual monitor setups out there. 00:52:19.539 --> 00:52:20.079 Boost them in. 00:52:20.199 --> 00:52:25.919 Multi monitor setups. Autobrain says, my dual monitor setup for work is a 2K 00:52:25.919 --> 00:52:30.199 fast refresh display on an X-Pen display drawing tablet. Whoa. 00:52:30.399 --> 00:52:31.439 Ooh, interesting. 00:52:32.239 --> 00:52:39.639 Whoa. Really? A drawing tablet? And it works great on Nix with GNOME. 00:52:41.099 --> 00:52:45.659 A drawing tablet on the desktop for Linux. Autobrain, I'd love to know what 00:52:45.659 --> 00:52:48.459 you're doing there. That's interesting. That's really interesting. 00:52:48.859 --> 00:52:52.819 See, Chris, I think I have a problem with these requests for multi-monitor setups 00:52:52.819 --> 00:52:54.519 because it just makes me really jealous. 00:52:55.199 --> 00:52:56.739 Yeah, how come it doesn't come with a budget? 00:52:59.559 --> 00:53:04.539 You know, that would be a great, oh man, you know how much, if JB had like, 00:53:04.679 --> 00:53:08.579 you know, like some of these YouTubers that just get these stupid ad deals and 00:53:08.579 --> 00:53:09.759 they just go spend money like crazy. 00:53:10.299 --> 00:53:13.699 Ours would be, we do tech makeovers, like we go to Brent's cabin, 00:53:13.979 --> 00:53:15.199 we do a total tech makeover. 00:53:15.219 --> 00:53:15.639 Bring it on. 00:53:15.979 --> 00:53:19.139 Oh, I would love it. That'd be so great. One day. 00:53:19.319 --> 00:53:23.539 One day when Linux is the most popular thing ever and everybody out there cares 00:53:23.539 --> 00:53:26.239 about it real hard. I'm sure we'll get to do that. That'll be an opportunity. 00:53:26.859 --> 00:53:28.279 Thank you, everybody who boosted 00:53:28.279 --> 00:53:31.479 the show. That's all the boosts above the 2,000-set cutoff for time. 00:53:31.839 --> 00:53:35.259 But I want to give a special shout-out to our sat streamers. 00:53:35.359 --> 00:53:39.579 35 of you streamed 70,762 sats to the show. 00:53:39.719 --> 00:53:39.999 Dang. 00:53:40.179 --> 00:53:43.399 Just as you sat back and listened, thank you very much. When you combine that 00:53:43.399 --> 00:53:49.219 with our boosters, that means we stacked a grand total of 309,141 sats. 00:53:54.310 --> 00:53:58.490 Thank you very much. That system is nice and easy. Once you get set up with 00:53:58.490 --> 00:54:02.210 Fountain or Breeze or something like that, you can boost. And also check out the splits. 00:54:02.610 --> 00:54:05.030 You never know. We're sometimes sending some sats to a project. 00:54:05.270 --> 00:54:09.810 Editor Drew gets a set. It's just the way the whole system works is so freaking cool. 00:54:10.350 --> 00:54:13.530 And you just need a podcasting app like Fountain or something like that to try 00:54:13.530 --> 00:54:16.230 it. You can find them at podcastapps.com. 00:54:16.730 --> 00:54:19.390 And then you can also listen to the live stream in your podcast app and all 00:54:19.390 --> 00:54:22.530 that kind of stuff, too. and you're using a decentralized index instead of like 00:54:22.530 --> 00:54:26.970 apples or Spotify's, you know? Mm, or Spotify. 00:54:29.370 --> 00:54:33.950 We have a couple of picks, and this one's kind of a time-appropriate pick, if you will. 00:54:34.290 --> 00:54:39.510 That is because Amazon is about to remove your ability to download any e-book 00:54:39.510 --> 00:54:41.230 that you've bought from them in the past. 00:54:41.410 --> 00:54:45.190 Yeah, I think this takes effect on the 26th, February 26th, 2025. 00:54:45.530 --> 00:54:48.030 Yeah, it's just a few days after the show comes out, so we wanted to get this 00:54:48.030 --> 00:54:53.530 in here, And the app pick that we have for you is Amazon Kindle Bulk Downloader. 00:54:53.850 --> 00:54:59.230 Yeah, right. The backstory here is since time forgot, you could go and download 00:54:59.230 --> 00:55:04.010 like an actual file and then transfer it over USB or even email things to your Kindle. 00:55:04.150 --> 00:55:08.530 And, you know, then you could use open source tooling to strip DRM and then 00:55:08.530 --> 00:55:13.250 have like a proper backup file or something you could use with a different e-reader if you wanted. 00:55:13.390 --> 00:55:15.330 Or, you know, like any of the things that you might think that you want to be 00:55:15.330 --> 00:55:17.130 able to do with the thing that you purchased. Yeah. 00:55:17.626 --> 00:55:20.746 Well, now Amazon's doubling down on the whole, you didn't buy this. 00:55:20.806 --> 00:55:23.066 It's just a license. No, you can't download it. 00:55:24.146 --> 00:55:24.626 Oh, yeah? 00:55:25.546 --> 00:55:29.246 But, so, you can still do that. I think you have to have a compatible device, 00:55:29.266 --> 00:55:33.286 because maybe they've already stopped this for newer devices or something. I have not tested that. 00:55:33.546 --> 00:55:33.826 Okay. 00:55:34.326 --> 00:55:38.006 You can go onto their site and download them one by one. If you have a few books, 00:55:38.086 --> 00:55:40.666 that's fine. But if you have, you know, maybe you have a big library. 00:55:41.126 --> 00:55:44.486 So, I don't have a crazy library, but I had, you know, 100 or so. 00:55:44.746 --> 00:55:47.966 Didn't want to do that. So I was able to find a little open source app. 00:55:48.146 --> 00:55:52.046 Actually, no, an unlicensed app. I think they intended to be open source. 00:55:52.206 --> 00:55:55.166 So fire beware on that one. There's not yet a license file. 00:55:55.586 --> 00:55:57.546 I'm thinking I'll open an issue on that. 00:55:57.926 --> 00:55:58.706 Licensed TBD. 00:55:58.986 --> 00:56:02.166 But, you know, you're archiving Kindle books in a rush anyway. 00:56:02.306 --> 00:56:05.366 So maybe that's not your biggest concern. You can get the code and run it on 00:56:05.366 --> 00:56:07.226 yourself, on your computer, all you like. 00:56:08.346 --> 00:56:12.266 It's a TypeScript app set up with Bun. So I just did it in like a little Ubuntu 00:56:12.266 --> 00:56:16.266 container and that worked totally fine. and then you just give it some nvars 00:56:16.266 --> 00:56:18.526 with your Amazon login info. 00:56:18.646 --> 00:56:20.786 And it's not very big, so you can go check out the source. 00:56:20.946 --> 00:56:24.966 And then it'll do, it spins up a Chrome instance to control via Puppeteer to 00:56:24.966 --> 00:56:26.526 then go like auth into Amazon. 00:56:26.666 --> 00:56:26.806 Okay. 00:56:27.206 --> 00:56:30.226 If you do it locally too, I didn't have a problem, but they do have support 00:56:30.226 --> 00:56:33.766 for actually not doing it headless and popping the browser up if you need to 00:56:33.766 --> 00:56:36.386 do like a manual login if the auto login doesn't work. 00:56:37.406 --> 00:56:38.366 That's nice. Yeah. 00:56:38.606 --> 00:56:42.166 It worked quite well. Just downloaded real fast, had progress bars and everything. 00:56:42.386 --> 00:56:43.306 Get your books, people. 00:56:43.306 --> 00:56:44.086 Hopefully that helps. 00:56:44.226 --> 00:56:46.046 Get your books. Get your books. 00:56:46.246 --> 00:56:47.866 And go find somewhere else to download them. 00:56:48.286 --> 00:56:53.046 We have a bonus pick. This came in from Bear, listener Bear, and I love it. 00:56:53.306 --> 00:56:57.606 I double-checked. I cannot believe we have not picked this before because it 00:56:57.606 --> 00:57:01.986 is 100% up our alley. It is called N-Ping. 00:57:02.226 --> 00:57:04.746 It is a ping tool, and it is developed in Rust. 00:57:06.240 --> 00:57:09.360 It supports concurrent ping for multiple addresses, and then it, 00:57:09.580 --> 00:57:14.900 on the command line, gives you a visual chart display with real-time data updates and other features. 00:57:15.160 --> 00:57:17.800 Look at this, boys. Look how beautiful this is. 00:57:18.540 --> 00:57:20.260 Yeah, okay. I like it. 00:57:20.760 --> 00:57:26.960 I am experiencing a very strange problem with my one workstation up in my office at the studio. 00:57:27.560 --> 00:57:33.020 Particularly in the mornings, it's dropping packets. I can't even ping my router, so it's on my LAN. 00:57:33.600 --> 00:57:36.620 And then it kind of seems to like settle out by the afternoon and 00:57:36.620 --> 00:57:39.440 it never happens but like it sucks because i get 00:57:39.440 --> 00:57:42.280 here early in the morning like i was in at the studio at 4 00:57:42.280 --> 00:57:47.340 30 a.m today to do the show and that's when it's absolutely the worst no and 00:57:47.340 --> 00:57:51.900 so it's like come on i'm here early to get this done and it doesn't and it wasn't 00:57:51.900 --> 00:57:56.080 until about oh i don't know nine eight a.m somewhere in that you know hour it 00:57:56.080 --> 00:57:59.720 starts to smooth out so being able to throw this on there i could actually visualize 00:57:59.720 --> 00:58:01.100 the issues which was really cool. 00:58:01.100 --> 00:58:04.300 I was gonna say you know this seems like something you maybe traditionally would 00:58:04.300 --> 00:58:08.880 use a tool like smoke ping for but having this in a zelige session exactly in 00:58:08.880 --> 00:58:11.140 the background could be a nice way to do it i just need for a. 00:58:11.140 --> 00:58:16.300 Couple of hours you know run it there so n ping we'll put a link to that and it is mit licensed. 00:58:16.300 --> 00:58:20.040 I like it so by default you get like a graph per thing that you're pinging you 00:58:20.040 --> 00:58:24.160 can ping multiple things has a slick little graph going and it shows you the 00:58:24.160 --> 00:58:28.820 recent records that target resolved to and the latency to each of them. 00:58:28.960 --> 00:58:30.360 So there's a lot of handy info right there. 00:58:30.600 --> 00:58:37.540 You know, I think next week might be our last live episode before we take off to scale in Planet Nix. 00:58:37.740 --> 00:58:37.920 Whoa. 00:58:38.500 --> 00:58:42.120 And we may or may not do a live episode from there. We probably will have a pre-record. 00:58:42.260 --> 00:58:46.180 All of this, we'll try to get this on the Jupyter Broadcasting calendar, 00:58:46.180 --> 00:58:49.760 and of course we'll try to mark it pending in podcasting 2.0 apps. 00:58:49.860 --> 00:58:53.960 But I do know we have one more regular live show next Sunday coming up. 00:58:54.080 --> 00:58:56.540 So join us for 12 p.m. Pacific, 3 p.m. Eastern. 00:59:00.620 --> 00:59:05.940 Now, don't forget, links to what we talked about today are at linuxunplugged.com slash 603. 00:59:06.200 --> 00:59:10.480 You can use that promo code Linux to take 50% off your scale tickets. 00:59:10.740 --> 00:59:14.000 And of course, we're really excited about Planet Nix. We want to see you there. 00:59:14.060 --> 00:59:16.900 And the team at Phlox is making it possible for us to attend Planet Nix. 00:59:17.000 --> 00:59:19.520 And we'll have so much great coverage for you coming soon. 00:59:20.100 --> 00:59:23.400 And last but not least, I'd really encourage you to consider setting up our 00:59:23.400 --> 00:59:27.540 Mumble Room. We have it going now for the launch on Tuesdays and for LUP on Sundays. 00:59:27.700 --> 00:59:31.200 And it's a great way to just listen and get high-quality opus right from the mixer. 00:59:31.900 --> 00:59:34.980 But if you just listen, that's all that really matters. Thanks so much for joining 00:59:34.980 --> 00:59:37.520 us on this week's episode of the Unplugged program, and we'll see you right 00:59:37.520 --> 00:59:40.040 back here next Tuesday, as in Sunday!
Previous episode Next episode

Related episodes