← Back
JetBrains TV July 22, 2026 59m

Rust in Ubuntu

Read full transcript 45 segments
  1. Hey everyone, welcome to another Rust Hey everyone, welcome to another Rust Rover live stream. I am Orhun. I'm a Rover live stream. I am Orhun. I'm a Rover live stream. I am Orhun. I'm a Rust developer advocate at Jet Brains. Rust developer advocate at Jet Brains. Rust developer advocate at Jet Brains. I'm also an open-source maintainer and I'm also an open-source maintainer and I'm also an open-source maintainer and lead maintainer of Ratatouille. lead maintainer of Ratatouille. lead maintainer of Ratatouille. Today we are talking about a topic that Today we are talking about a topic that Today we are talking about a topic that brings a lot of things that we care brings a lot of things that we care brings a lot of things that we care about together. Rust, Linux, open source about together. Rust, Linux, open source about together. Rust, Linux, open source system software and bunch of other system software and bunch of other system software and bunch of other things. So Ubuntu is a mostly w most things. So Ubuntu is a mostly w most things. So Ubuntu is a mostly w most widely like deployed operating system widely like deployed operating system widely like deployed operating system links distribution. It has 15 million links distribution. It has 15 million links distribution. It has 15 million deployments all around the world. It has deployments all around the world. It has deployments all around the world. It has been used like I think 33% but don't been used like I think 33% but don't been used like I think 33% but don't quote me on that. I got this info from quote me on that. I got this info from quote me on that. I got this info from an LLM and it's a general like it's been an LLM and it's a general like it's been an LLM and it's a general like it's been like deployed on general purpose edge like deployed on general purpose edge like deployed on general purpose edge computing server servers and a lot of computing server servers and a lot of computing server servers and a lot of things and with the 25.3 release rust things and with the 25.3 release rust things and with the 25.3 release rust started taking over Ubuntu and today we started taking over Ubuntu and today we started taking over Ubuntu and today we have the person behind this rust have the person behind this rust have the person behind this rust adoption uh he is responsible for many adoption uh he is responsible for many adoption uh he is responsible for many rustification of Ubuntu tools and Ubuntu rustification of Ubuntu tools and Ubuntu rustification of Ubuntu tools and Ubuntu um tooling. Um John John Seager, welcome um tooling. Um John John Seager, welcome um tooling. Um John John Seager, welcome to the live stream. How are you doing?

  2. to the live stream. How are you doing? to the live stream. How are you doing? >> Thank you very much. It's good to be >> Thank you very much. It's good to be >> Thank you very much. It's good to be here. I'm uh I'm doing well. It's a here. I'm uh I'm doing well. It's a here. I'm uh I'm doing well. It's a little warm in the UK at the moment, but little warm in the UK at the moment, but little warm in the UK at the moment, but otherwise doing well. We're not used to otherwise doing well. We're not used to otherwise doing well. We're not used to it over here, so you know how it is. it over here, so you know how it is. it over here, so you know how it is. >> Yeah. So, you are the VP of engineering >> Yeah. So, you are the VP of engineering >> Yeah. So, you are the VP of engineering at Canonicle. And um I want to just like at Canonicle. And um I want to just like at Canonicle. And um I want to just like first like talk about uh your history first like talk about uh your history first like talk about uh your history with with uh Rust and Ubuntu in general. with with uh Rust and Ubuntu in general. with with uh Rust and Ubuntu in general. So how did you uh get to this position? So how did you uh get to this position? So how did you uh get to this position? Can you just talk about that briefly? Can you just talk about that briefly? Can you just talk about that briefly? >> Yeah, so I've been at Canonicle for just >> Yeah, so I've been at Canonicle for just >> Yeah, so I've been at Canonicle for just over five years now. For the first four over five years now. For the first four over five years now. For the first four years of that, I was focused on our years of that, I was focused on our years of that, I was focused on our cloud automation portfolio. Essentially, cloud automation portfolio. Essentially, cloud automation portfolio. Essentially, we have an open-source control plane we have an open-source control plane we have an open-source control plane called Guju and we build operators. And called Guju and we build operators. And called Guju and we build operators. And then two years ago, I was asked to take then two years ago, I was asked to take then two years ago, I was asked to take on leadership of Abuntu. And I I on leadership of Abuntu. And I I on leadership of Abuntu. And I I wouldn't necessarily say that at the wouldn't necessarily say that at the wouldn't necessarily say that at the forefront of my mind at that point, Rust forefront of my mind at that point, Rust forefront of my mind at that point, Rust was part of the story. But what was part was part of the story. But what was part was part of the story. But what was part of my story or I felt very strongly we of my story or I felt very strongly we of my story or I felt very strongly we had to do was take a moment to reflect had to do was take a moment to reflect had to do was take a moment to reflect on the fact that Abuntu had been around on the fact that Abuntu had been around on the fact that Abuntu had been around for 20 years at that point. Uh and you for 20 years at that point. Uh and you for 20 years at that point. Uh and you know firstly what a kind of wild ride know firstly what a kind of wild ride know firstly what a kind of wild ride that had been and in many senses against that had been and in many senses against that had been and in many senses against the odds it had been quite successful.

  3. the odds it had been quite successful. the odds it had been quite successful. But my view, the more I thought about But my view, the more I thought about But my view, the more I thought about it, was that the set of things that it, was that the set of things that it, was that the set of things that enabled it to be successful for those enabled it to be successful for those enabled it to be successful for those first 20 years probably were not the first 20 years probably were not the first 20 years probably were not the same set of things that were going to same set of things that were going to same set of things that were going to enable it to stay relevant and be enable it to stay relevant and be enable it to stay relevant and be successful for the following 20 years. successful for the following 20 years. successful for the following 20 years. So I did a bit of soulsearching I guess So I did a bit of soulsearching I guess So I did a bit of soulsearching I guess bit of thinking about what I want how I bit of thinking about what I want how I bit of thinking about what I want how I wanted to shape the platform and a big wanted to shape the platform and a big wanted to shape the platform and a big part of the story for all of our users part of the story for all of our users part of the story for all of our users whether it be whether it be whether it be uh users in education students whether uh users in education students whether uh users in education students whether it's startups or even fortune 500 it's startups or even fortune 500 it's startups or even fortune 500 companies or you know journalists companies or you know journalists companies or you know journalists whatever it might be is security and whatever it might be is security and whatever it might be is security and resilience and the in my opinion at this resilience and the in my opinion at this resilience and the in my opinion at this point rust provides the most compelling point rust provides the most compelling point rust provides the most compelling set of tools set of tools set of tools of the systems, programming languages of the systems, programming languages of the systems, programming languages that we have available to us for that we have available to us for that we have available to us for progressing that agenda essentially as progressing that agenda essentially as progressing that agenda essentially as well as often bringing the benefits of well as often bringing the benefits of well as often bringing the benefits of increased performance and I think increased performance and I think increased performance and I think critically a crowd of people who are critically a crowd of people who are critically a crowd of people who are interested in thinking about this interested in thinking about this interested in thinking about this category of problems. Uh I said this at category of problems. Uh I said this at category of problems. Uh I said this at Rust Nation back in February, one of the Rust Nation back in February, one of the Rust Nation back in February, one of the most interesting things about the Rust most interesting things about the Rust most interesting things about the Rust programming language is the people who programming language is the people who programming language is the people who are drawn to it. And so I wanted also to are drawn to it. And so I wanted also to are drawn to it. And so I wanted also to provide a path or an obvious path if you provide a path or an obvious path if you provide a path or an obvious path if you will for people who like solving these will for people who like solving these will for people who like solving these kinds of problems to come and contribute kinds of problems to come and contribute kinds of problems to come and contribute to them too.

  4. to them too. to them too. >> So when you talk about Rust I I watched >> So when you talk about Rust I I watched >> So when you talk about Rust I I watched your talk at Rust Nation and uh I read your talk at Rust Nation and uh I read your talk at Rust Nation and uh I read some of your blog posts. You talk about some of your blog posts. You talk about some of your blog posts. You talk about resiliency. Can you just explain that to resiliency. Can you just explain that to resiliency. Can you just explain that to us what Rust why Rust is resilient and us what Rust why Rust is resilient and us what Rust why Rust is resilient and why did you see that as as a resil why did you see that as as a resil why did you see that as as a resil resilient programming language at the resilient programming language at the resilient programming language at the time because there might be some other time because there might be some other time because there might be some other options but you specifically went with options but you specifically went with options but you specifically went with Rust and I want to just understand this Rust and I want to just understand this Rust and I want to just understand this part a little bit. part a little bit. part a little bit. >> Yeah. So the the obvious thing here is >> Yeah. So the the obvious thing here is >> Yeah. So the the obvious thing here is the memory safety aspect of it. uh and the memory safety aspect of it. uh and the memory safety aspect of it. uh and that is I still think one of the key that is I still think one of the key that is I still think one of the key drivers. My view is that there are other drivers. My view is that there are other drivers. My view is that there are other memory safe languages out there but I memory safe languages out there but I memory safe languages out there but I think what Rust has really pioneered is think what Rust has really pioneered is think what Rust has really pioneered is the approach. I think the borrow checker the approach. I think the borrow checker the approach. I think the borrow checker is a very interesting way of approaching is a very interesting way of approaching is a very interesting way of approaching the problem and I think it forces the problem and I think it forces the problem and I think it forces developers to think more carefully about developers to think more carefully about developers to think more carefully about the safety of their applications of the safety of their applications of the safety of their applications of their code. Uh [clears throat] we at their code. Uh [clears throat] we at their code. Uh [clears throat] we at Canonicle most of our revenue is made Canonicle most of our revenue is made Canonicle most of our revenue is made from patching security vulnerabilities from patching security vulnerabilities from patching security vulnerabilities and support. So the bluntly the fewer of and support. So the bluntly the fewer of and support. So the bluntly the fewer of those we have the better. Uh I actually those we have the better. Uh I actually those we have the better. Uh I actually didn't really see this until some months didn't really see this until some months didn't really see this until some months after I first announced the thing.

  5. after I first announced the thing. after I first announced the thing. Initially it was all about how can we Initially it was all about how can we Initially it was all about how can we basically set a course for adopting more basically set a course for adopting more basically set a course for adopting more resilient software. And I see resilience resilient software. And I see resilience resilient software. And I see resilience at the kind of intersection of security at the kind of intersection of security at the kind of intersection of security and reliability. and reliability. and reliability. So with increased memory safety often So with increased memory safety often So with increased memory safety often you do get better security but you also you do get better security but you also you do get better security but you also get better reliability. Right? An get better reliability. Right? An get better reliability. Right? An application that panics could well be application that panics could well be application that panics could well be more susceptible to an attack, but it more susceptible to an attack, but it more susceptible to an attack, but it might also just be susceptible to might also just be susceptible to might also just be susceptible to falling over and failing, right? That falling over and failing, right? That falling over and failing, right? That that is uh that's not necessarily always that is uh that's not necessarily always that is uh that's not necessarily always a security issue, but it is a a security issue, but it is a a security issue, but it is a reliability issue. Uh and in certain reliability issue. Uh and in certain reliability issue. Uh and in certain industries, um particularly heavily industries, um particularly heavily industries, um particularly heavily regulated industries, things like regulated industries, things like regulated industries, things like automotive, industrial, those things are automotive, industrial, those things are automotive, industrial, those things are very important. So there is a there is a very important. So there is a there is a very important. So there is a there is a sort of safety and security angle if you sort of safety and security angle if you sort of safety and security angle if you would if you think about it in those would if you think about it in those would if you think about it in those terms. So I think the the safety aspect terms. So I think the the safety aspect terms. So I think the the safety aspect is also very interesting. Most people is also very interesting. Most people is also very interesting. Most people will traditionally associate ibuntu with will traditionally associate ibuntu with will traditionally associate ibuntu with servers and desktops but of course it servers and desktops but of course it servers and desktops but of course it also runs in cars. It'll run in various also runs in cars. It'll run in various also runs in cars. It'll run in various safety critical systems all throughout safety critical systems all throughout safety critical systems all throughout the world and fewer panics you know more the world and fewer panics you know more the world and fewer panics you know more resilience broadly is is a nice resilience broadly is is a nice resilience broadly is is a nice property.

  6. property. property. >> Yeah absolutely. And when we have a >> Yeah absolutely. And when we have a >> Yeah absolutely. And when we have a Linux distribution such as Ubuntu Linux distribution such as Ubuntu Linux distribution such as Ubuntu running on these low-level running on these low-level running on these low-level systems and when you need some kind of systems and when you need some kind of systems and when you need some kind of safety on these tools and utilities that safety on these tools and utilities that safety on these tools and utilities that is shipped with Ubuntu um some of them is shipped with Ubuntu um some of them is shipped with Ubuntu um some of them comes to mind like the these Linux comes to mind like the these Linux comes to mind like the these Linux specific ones such as the sudo or like specific ones such as the sudo or like specific ones such as the sudo or like the core utils and those were actually the core utils and those were actually the core utils and those were actually being now replaced with the rust um rust being now replaced with the rust um rust being now replaced with the rust um rust versions like the the rust equivalents. versions like the the rust equivalents. versions like the the rust equivalents. So um maybe you can give us some insight So um maybe you can give us some insight So um maybe you can give us some insight on what which tools and like which parts on what which tools and like which parts on what which tools and like which parts of Ubuntu is now using Rust and um how of Ubuntu is now using Rust and um how of Ubuntu is now using Rust and um how those were going. those were going. those were going. >> Yeah. So the ones that we've shipped >> Yeah. So the ones that we've shipped >> Yeah. So the ones that we've shipped kind of generally available if you will kind of generally available if you will kind of generally available if you will in the latest LTS are indeed the core in the latest LTS are indeed the core in the latest LTS are indeed the core utils and sudo RS. Those projects are utils and sudo RS. Those projects are utils and sudo RS. Those projects are quite different in how they approach quite different in how they approach quite different in how they approach their work in that the core utils their work in that the core utils their work in that the core utils project the the u utils core utils project the the u utils core utils project the the u utils core utils project aims to be sort of 100% bug project aims to be sort of 100% bug project aims to be sort of 100% bug forbug like for like compatible with the forbug like for like compatible with the forbug like for like compatible with the GNU alternatives which kind of makes it GNU alternatives which kind of makes it GNU alternatives which kind of makes it an easy choice in a sense right you an easy choice in a sense right you an easy choice in a sense right you don't break any users uh except of don't break any users uh except of don't break any users uh except of course we found there were differences course we found there were differences course we found there were differences often in kind of esoteric uses uses of often in kind of esoteric uses uses of often in kind of esoteric uses uses of those things so we actually first did those things so we actually first did those things so we actually first did this in 254 this in 254 this in 254 for some of the utilities and and we for some of the utilities and and we for some of the utilities and and we kind of had a couple of cycles to polish kind of had a couple of cycles to polish kind of had a couple of cycles to polish ship because we knew there would be ship because we knew there would be ship because we knew there would be issues and we still occasionally run issues and we still occasionally run issues and we still occasionally run into them. There was one quite recently into them. There was one quite recently into them. There was one quite recently that we ran into that stopped us from that we ran into that stopped us from that we ran into that stopped us from building daily ISO images for a couple building daily ISO images for a couple building daily ISO images for a couple of days while we worked the problem. The

  7. of days while we worked the problem. The of days while we worked the problem. The pseudo RS tool is quite different that pseudo RS tool is quite different that pseudo RS tool is quite different that does not aim to be 100% compatible with does not aim to be 100% compatible with does not aim to be 100% compatible with the existing utility. That is basically the existing utility. That is basically the existing utility. That is basically saying if we were to reimagine what sudo saying if we were to reimagine what sudo saying if we were to reimagine what sudo would look like in 2026 having learned would look like in 2026 having learned would look like in 2026 having learned 30 years of security lessons, what would 30 years of security lessons, what would 30 years of security lessons, what would it look like? Like what would be the it look like? Like what would be the it look like? Like what would be the reasonable set of features for it to reasonable set of features for it to reasonable set of features for it to have? And so we have actually broken have? And so we have actually broken have? And so we have actually broken some workflows. Um some people are angry some workflows. Um some people are angry some workflows. Um some people are angry about that but we did it at the inter about that but we did it at the inter about that but we did it at the inter you know at the boundary of an LTS you know at the boundary of an LTS you know at the boundary of an LTS version which is a major operating version which is a major operating version which is a major operating system version and one way of mitigating system version and one way of mitigating system version and one way of mitigating that is um a lot of the work that we did that is um a lot of the work that we did that is um a lot of the work that we did while we're not responsible for while we're not responsible for while we're not responsible for authoring these rewrites ourselves. We authoring these rewrites ourselves. We authoring these rewrites ourselves. We have funded those projects to do work have funded those projects to do work have funded those projects to do work for us to get them ready but we're not for us to get them ready but we're not for us to get them ready but we're not the essentially the owners of those the essentially the owners of those the essentially the owners of those projects. The work that we have done is projects. The work that we have done is projects. The work that we have done is essentially the underlying engineering essentially the underlying engineering essentially the underlying engineering to allow people to revert back to the to allow people to revert back to the to allow people to revert back to the existing utilities if they need to. So existing utilities if they need to. So existing utilities if they need to. So if someone desperately wants to go to if someone desperately wants to go to if someone desperately wants to go to 2604 but knows that there is something 2604 but knows that there is something 2604 but knows that there is something they use in the OG sudo that doesn't they use in the OG sudo that doesn't they use in the OG sudo that doesn't work in the new sudu they can they can work in the new sudu they can they can work in the new sudu they can they can swap it out. [snorts] Uh so that's what swap it out. [snorts] Uh so that's what swap it out. [snorts] Uh so that's what we've done. In the upcoming release the we've done. In the upcoming release the we've done. In the upcoming release the first bits of NTPDRS will land which first bits of NTPDRS will land which first bits of NTPDRS will land which will replace Crony. uh that won't be a will replace Crony. uh that won't be a will replace Crony. uh that won't be a complete replacement in this cycle, but complete replacement in this cycle, but complete replacement in this cycle, but by 2804 all of the time syncing will be by 2804 all of the time syncing will be by 2804 all of the time syncing will be done by NTPDRS and the work that we're done by NTPDRS and the work that we're done by NTPDRS and the work that we're funding the Trifecta Tech Foundation for funding the Trifecta Tech Foundation for funding the Trifecta Tech Foundation for is basically to get that ready to have a is basically to get that ready to have a is basically to get that ready to have a single a single application that can do single a single application that can do single a single application that can do NTP NTS and PTP client and server and be NTP NTS and PTP client and server and be NTP NTS and PTP client and server and be fully integrated with the distribution fully integrated with the distribution fully integrated with the distribution with App Armor and all of the various with App Armor and all of the various with App Armor and all of the various other concerns. And then there is a other concerns. And then there is a other concerns. And then there is a Greenfield project that we're running in Greenfield project that we're running in Greenfield project that we're running in collaboration with the Russell's project collaboration with the Russell's project collaboration with the Russell's project called UPKI which is all about bringing

  8. called UPKI which is all about bringing called UPKI which is all about bringing browser grade cryptography to low-level browser grade cryptography to low-level browser grade cryptography to low-level system utilities particularly around system utilities particularly around system utilities particularly around TLS. So things like certificate TLS. So things like certificate TLS. So things like certificate revocation intermediate pre-loading. revocation intermediate pre-loading. revocation intermediate pre-loading. There is currently no answer for that in There is currently no answer for that in There is currently no answer for that in things like curl or wget or open SSL things like curl or wget or open SSL things like curl or wget or open SSL believe it or not. Um the other major believe it or not. Um the other major believe it or not. Um the other major operating systems like Mac OS and operating systems like Mac OS and operating systems like Mac OS and Windows have had this sort of figured Windows have had this sort of figured Windows have had this sort of figured out for some time. Linux doesn't have an out for some time. Linux doesn't have an out for some time. Linux doesn't have an answer. So this is an answer and my hope answer. So this is an answer and my hope answer. So this is an answer and my hope is that that goes much beyond Ubuntu uh is that that goes much beyond Ubuntu uh is that that goes much beyond Ubuntu uh and lands in as many places as it and lands in as many places as it and lands in as many places as it possibly can. possibly can. possibly can. >> So as a longtime user of Arch Linux and >> So as a longtime user of Arch Linux and >> So as a longtime user of Arch Linux and a recent user of Ubuntu on my work a recent user of Ubuntu on my work a recent user of Ubuntu on my work laptop, I always took Crony as granted. laptop, I always took Crony as granted. laptop, I always took Crony as granted. So I am not really aware of the crit So I am not really aware of the crit So I am not really aware of the crit criticality of uh of crony and can you criticality of uh of crony and can you criticality of uh of crony and can you maybe explain like why npdrs is such an maybe explain like why npdrs is such an maybe explain like why npdrs is such an important like uh rust replacement for important like uh rust replacement for important like uh rust replacement for for crony and what are you like planning for crony and what are you like planning for crony and what are you like planning to do? How is this going to affect as as to do? How is this going to affect as as to do? How is this going to affect as as a regular user or like as someone using a regular user or like as someone using a regular user or like as someone using at a larger scale? Uh how is this at a larger scale? Uh how is this at a larger scale? Uh how is this important? So the impact in my view is important? So the impact in my view is important? So the impact in my view is at its most critical in real time safety at its most critical in real time safety at its most critical in real time safety [clears throat and snorts] critical [clears throat and snorts] critical [clears throat and snorts] critical systems. So if you think rolling you systems. So if you think rolling you systems. So if you think rolling you know running some microcontroller on a know running some microcontroller on a know running some microcontroller on a plane in a car in a robot that has scary plane in a car in a robot that has scary plane in a car in a robot that has scary looking tools on the end of its arm looking tools on the end of its arm looking tools on the end of its arm accurate timekeeping can sometimes be accurate timekeeping can sometimes be accurate timekeeping can sometimes be safety critical. It also has security safety critical. It also has security safety critical. It also has security connotations particularly in

  9. connotations particularly in connotations particularly in cryptography. if you're dealing with cryptography. if you're dealing with cryptography. if you're dealing with keys that rotate often, things like keys that rotate often, things like keys that rotate often, things like that. Uh the time syncing can be very that. Uh the time syncing can be very that. Uh the time syncing can be very important. It can be very important for important. It can be very important for important. It can be very important for working with positional systems. None of working with positional systems. None of working with positional systems. None of that is to say that Crony doesn't do a that is to say that Crony doesn't do a that is to say that Crony doesn't do a good job of syncing your time good job of syncing your time good job of syncing your time accurately. Uh where it gets complicated accurately. Uh where it gets complicated accurately. Uh where it gets complicated is in uh the implementation of PTP, is in uh the implementation of PTP, is in uh the implementation of PTP, which is the precision time protocol, which is the precision time protocol, which is the precision time protocol, which most people don't really have much which most people don't really have much which most people don't really have much use for, but that's where it gets extra use for, but that's where it gets extra use for, but that's where it gets extra interesting, right? So that's when you interesting, right? So that's when you interesting, right? So that's when you get to the very very high precision time get to the very very high precision time get to the very very high precision time syncing and setting that up on Linux has syncing and setting that up on Linux has syncing and setting that up on Linux has always been quite unfun right you have always been quite unfun right you have always been quite unfun right you have always had to use crony and Linux PTP always had to use crony and Linux PTP always had to use crony and Linux PTP and potentially some external time and potentially some external time and potentially some external time source perhaps satellite time source source perhaps satellite time source source perhaps satellite time source perhaps some dedicated you know bespoke perhaps some dedicated you know bespoke perhaps some dedicated you know bespoke time source and configuring all of those time source and configuring all of those time source and configuring all of those to talk to each other can be unfun and to talk to each other can be unfun and to talk to each other can be unfun and so uh what we are trying to do is so uh what we are trying to do is so uh what we are trying to do is basically condense all of the functions basically condense all of the functions basically condense all of the functions that you might need for any application that you might need for any application that you might need for any application of time syncing into one utility with of time syncing into one utility with of time syncing into one utility with one configuration file that can kind of one configuration file that can kind of one configuration file that can kind of do all of it and with the added benefit do all of it and with the added benefit do all of it and with the added benefit that it's very efficient and it's memory that it's very efficient and it's memory that it's very efficient and it's memory safe. Um what that will look like is I safe. Um what that will look like is I safe. Um what that will look like is I hope that we will be able to create a hope that we will be able to create a hope that we will be able to create a tool that helps users migrate tool that helps users migrate tool that helps users migrate configurations. Uh those tools are configurations. Uh those tools are configurations. Uh those tools are always complicated and they always miss always complicated and they always miss always complicated and they always miss edge cases. But again this will this edge cases. But again this will this edge cases. But again this will this will happen at the boundary of an LCS will happen at the boundary of an LCS will happen at the boundary of an LCS release, right? And so the beautiful release, right? And so the beautiful release, right? And so the beautiful thing about that is if you have a really thing about that is if you have a really thing about that is if you have a really complicated Crony config running on complicated Crony config running on complicated Crony config running on 2604, we will keep maintaining that for 2604, we will keep maintaining that for 2604, we will keep maintaining that for 15 years. You don't have to change, 15 years. You don't have to change, 15 years. You don't have to change, right? Crony will still remain in the right? Crony will still remain in the right? Crony will still remain in the archive. You'll still be able to get it,

  10. archive. You'll still be able to get it, archive. You'll still be able to get it, but we would like to switch people by but we would like to switch people by but we would like to switch people by default to NTPDRS. >> Yeah. So another project that you >> Yeah. So another project that you mentioned uh UPKI. Um so this is also mentioned uh UPKI. Um so this is also mentioned uh UPKI. Um so this is also like U stands for universal, right? like U stands for universal, right? like U stands for universal, right? First of all, First of all, First of all, >> yeah. So um it's a as far as I >> yeah. So um it's a as far as I >> yeah. So um it's a as far as I understood it's a universal understood it's a universal understood it's a universal um demon for certificate handling um demon for certificate handling um demon for certificate handling intermediate certificate preloading and intermediate certificate preloading and intermediate certificate preloading and stuff like this right can you maybe stuff like this right can you maybe stuff like this right can you maybe explain this a little bit because that's explain this a little bit because that's explain this a little bit because that's also very very interesting not for just also very very interesting not for just also very very interesting not for just Ubuntu but I think for uh other Ubuntu but I think for uh other Ubuntu but I think for uh other distributions as well distributions as well distributions as well >> other distributions and even other >> other distributions and even other >> other distributions and even other operating systems like it should work operating systems like it should work operating systems like it should work fine on BSD and Mac and Windows 2 so fine on BSD and Mac and Windows 2 so fine on BSD and Mac and Windows 2 so it's not a demon interesting ly. it's not a demon interesting ly. it's not a demon interesting ly. [clears throat] So what this was [clears throat] So what this was [clears throat] So what this was actually in response to an LWN.NET actually in response to an LWN.NET actually in response to an LWN.NET article essentially illustrating how article essentially illustrating how article essentially illustrating how this piece has been missing. So a this piece has been missing. So a this piece has been missing. So a critical part of the web PKI critical part of the web PKI critical part of the web PKI infrastructure is the ability to issue infrastructure is the ability to issue infrastructure is the ability to issue certificates but also to revoke them.

  11. certificates but also to revoke them. certificates but also to revoke them. That was traditionally done with That was traditionally done with That was traditionally done with certificate revocation lists where certificate revocation lists where certificate revocation lists where essentially the certificate authorities essentially the certificate authorities essentially the certificate authorities that issue certificates also publish a that issue certificates also publish a that issue certificates also publish a list of certificates that are revoked. list of certificates that are revoked. list of certificates that are revoked. And the idea is that if your browser And the idea is that if your browser And the idea is that if your browser encounters or if your tool encounters a encounters or if your tool encounters a encounters or if your tool encounters a certificate that is revoked, it should certificate that is revoked, it should certificate that is revoked, it should consider it untrusted. consider it untrusted. consider it untrusted. In the interim, there is a there is a In the interim, there is a there is a In the interim, there is a there is a protocol called the OCSP, the online protocol called the OCSP, the online protocol called the OCSP, the online certificate. certificate. certificate. I forget exactly what it stands for, I forget exactly what it stands for, I forget exactly what it stands for, OCSP, but OCSP is going away. OCSP had OCSP, but OCSP is going away. OCSP had OCSP, but OCSP is going away. OCSP had that's embarrassing. OCSP had a couple that's embarrassing. OCSP had a couple that's embarrassing. OCSP had a couple of difficulties with respect to privacy of difficulties with respect to privacy of difficulties with respect to privacy in the sense that every time you in the sense that every time you in the sense that every time you requested a certificate, you would also requested a certificate, you would also requested a certificate, you would also have to hit an OCSP endpoint. uh to have to hit an OCSP endpoint. uh to have to hit an OCSP endpoint. uh to basically say I would like to understand basically say I would like to understand basically say I would like to understand the revocation status of this the revocation status of this the revocation status of this certificate which had the side effect of certificate which had the side effect of certificate which had the side effect of leaking all of the certificates that you leaking all of the certificates that you leaking all of the certificates that you were requesting right um there were some were requesting right um there were some were requesting right um there were some revisions to the protocol that fixed revisions to the protocol that fixed revisions to the protocol that fixed that or or rather mitigated it but that or or rather mitigated it but that or or rather mitigated it but ultimately OCSP was basically sunsetted ultimately OCSP was basically sunsetted ultimately OCSP was basically sunsetted and in the interim this article came out and in the interim this article came out and in the interim this article came out to say Linux doesn't do this the to say Linux doesn't do this the to say Linux doesn't do this the browsers do this in isolation so Firefox browsers do this in isolation so Firefox browsers do this in isolation so Firefox has an implementation chromium has an has an implementation chromium has an has an implementation chromium has an implementation but curl liss cell would implementation but curl liss cell would implementation but curl liss cell would get all the stuff that you use at the get all the stuff that you use at the get all the stuff that you use at the low level just doesn't pay any attention low level just doesn't pay any attention low level just doesn't pay any attention to CRLs at all.

  12. to CRLs at all. to CRLs at all. So So So along the journey to Firefox doing this along the journey to Firefox doing this along the journey to Firefox doing this themselves they Mozilla developed quite themselves they Mozilla developed quite themselves they Mozilla developed quite an interesting storage mechanism called an interesting storage mechanism called an interesting storage mechanism called CR Lite which is for storing revocation CR Lite which is for storing revocation CR Lite which is for storing revocation data in a binary format that is very data in a binary format that is very data in a binary format that is very very efficient. So essentially they very efficient. So essentially they very efficient. So essentially they publish a list a sort of you download a publish a list a sort of you download a publish a list a sort of you download a chunk of CL light data and then each day chunk of CL light data and then each day chunk of CL light data and then each day you can kind of fetch just a delta which you can kind of fetch just a delta which you can kind of fetch just a delta which is very very bandwidth efficient. And so is very very bandwidth efficient. And so is very very bandwidth efficient. And so what UPKI does is it runs depending on what UPKI does is it runs depending on what UPKI does is it runs depending on how the distribution packages it. It how the distribution packages it. It how the distribution packages it. It might run once a day, twice a day, once might run once a day, twice a day, once might run once a day, twice a day, once a week and it essentially just goes and a week and it essentially just goes and a week and it essentially just goes and fetches the latest CL light data from a fetches the latest CL light data from a fetches the latest CL light data from a mirroring service that we run and caches mirroring service that we run and caches mirroring service that we run and caches it on the file system. Then the it on the file system. Then the it on the file system. Then the additional work we have to do is additional work we have to do is additional work we have to do is essentially upstream in projects like essentially upstream in projects like essentially upstream in projects like curl and libsl and gutls to hook into curl and libsl and gutls to hook into curl and libsl and gutls to hook into those libraries and projects at the those libraries and projects at the those libraries and projects at the point where they are checking point where they are checking point where they are checking certificates to also check whether the certificates to also check whether the certificates to also check whether the certificate is revoked. And thankfully certificate is revoked. And thankfully certificate is revoked. And thankfully lib SSL has this kind of callbacks lib SSL has this kind of callbacks lib SSL has this kind of callbacks mechanism. And so part of the UPKI mechanism. And so part of the UPKI mechanism. And so part of the UPKI project is also to land the upstream project is also to land the upstream project is also to land the upstream contribution to all of these SSL contribution to all of these SSL contribution to all of these SSL libraries and important projects in the libraries and important projects in the libraries and important projects in the WebPKI ecosystem so that they can use WebPKI ecosystem so that they can use WebPKI ecosystem so that they can use UPKI if it exists. Down the line we may UPKI if it exists. Down the line we may UPKI if it exists. Down the line we may also introduce support for intermediate also introduce support for intermediate also introduce support for intermediate preloading. So that is where if you talk preloading. So that is where if you talk preloading. So that is where if you talk to a website and you request it to a website and you request it to a website and you request it certificate rather than getting the full certificate rather than getting the full certificate rather than getting the full chain you just get the last certificate chain you just get the last certificate chain you just get the last certificate uh and the route maybe uh a lot of a uh and the route maybe uh a lot of a uh and the route maybe uh a lot of a surprising number of websites do this surprising number of websites do this surprising number of websites do this and it's technically incorrect but and it's technically incorrect but and it's technically incorrect but browsers work around this with a thing

  13. browsers work around this with a thing browsers work around this with a thing called intermediate pre-loading where called intermediate pre-loading where called intermediate pre-loading where they can say okay well I know the leaf they can say okay well I know the leaf they can say okay well I know the leaf certificate I know the route and so I certificate I know the route and so I certificate I know the route and so I can fill in the gaps that is a can fill in the gaps that is a can fill in the gaps that is a capability we can put into UPKI and it capability we can put into UPKI and it capability we can put into UPKI and it may also serve as a nice proving ground may also serve as a nice proving ground may also serve as a nice proving ground or launching pad essentially for things or launching pad essentially for things or launching pad essentially for things like Merkel tree certificates which like Merkel tree certificates which like Merkel tree certificates which would be a next generation cryptography would be a next generation cryptography would be a next generation cryptography uh implementation essentially for the uh implementation essentially for the uh implementation essentially for the keys themselves and there are a couple keys themselves and there are a couple keys themselves and there are a couple other things certificate transparency other things certificate transparency other things certificate transparency enforcement for example is another thing enforcement for example is another thing enforcement for example is another thing it could do but right now we're focused it could do but right now we're focused it could do but right now we're focused on launching essentially 1.0 on launching essentially 1.0 on launching essentially 1.0 for certificate revocation and that for certificate revocation and that for certificate revocation and that should be in Auntu 2610 which comes out should be in Auntu 2610 which comes out should be in Auntu 2610 which comes out in October. in October. in October. >> That's really exciting. It's great to >> That's really exciting. It's great to >> That's really exciting. It's great to hear that like these things that you are hear that like these things that you are hear that like these things that you are working on and like these rust tools are working on and like these rust tools are working on and like these rust tools are now also like they're available for now also like they're available for now also like they're available for other distributions and operating other distributions and operating other distributions and operating systems as well. I am uh wondering like systems as well. I am uh wondering like systems as well. I am uh wondering like is is everything uh like the pseudo rs is is everything uh like the pseudo rs is is everything uh like the pseudo rs gaugori tools npdrs gaugori tools npdrs gaugori tools npdrs uh those tools are now like available uh those tools are now like available uh those tools are now like available for like other distros as well right for like other distros as well right for like other distros as well right these are not like Ubuntu specific these are not like Ubuntu specific these are not like Ubuntu specific because I remember because I remember because I remember >> they never they never were Ubuntu >> they never they never were Ubuntu >> they never they never were Ubuntu specific so I want to be really clear specific so I want to be really clear specific so I want to be really clear like we did not do these rewrites the like we did not do these rewrites the like we did not do these rewrites the uutils core util stuff existed before us uutils core util stuff existed before us uutils core util stuff existed before us sudo rs existed before well rather sudo rs existed before well rather sudo rs existed before well rather existed before we took interest so um existed before we took interest so um existed before we took interest so um they are I think available For some they are I think available For some they are I think available For some other dros they're packaged variously other dros they're packaged variously other dros they're packaged variously like Nixos allows you to use the core like Nixos allows you to use the core like Nixos allows you to use the core utils and pseudo RS stuff. I think it's utils and pseudo RS stuff. I think it's utils and pseudo RS stuff. I think it's packaged in fedora some of it. Uh what packaged in fedora some of it. Uh what packaged in fedora some of it. Uh what >> I actually package it for arch. Yeah >> I actually package it for arch. Yeah >> I actually package it for arch. Yeah it's package. Yes.

  14. it's package. Yes. it's package. Yes. >> Nice. So the the big thing that we did I >> Nice. So the the big thing that we did I >> Nice. So the the big thing that we did I think is we were the first major think is we were the first major think is we were the first major distribution to just say we're going to distribution to just say we're going to distribution to just say we're going to make it the default and we're going to make it the default and we're going to make it the default and we're going to fund the work needed to make that fund the work needed to make that fund the work needed to make that happen. Uh so hopefully that has made it happen. Uh so hopefully that has made it happen. Uh so hopefully that has made it easier for other distributions to make easier for other distributions to make easier for other distributions to make the same step. the same step. the same step. >> Yeah. The reason why I asked that >> Yeah. The reason why I asked that >> Yeah. The reason why I asked that because I once saw your blog post about because I once saw your blog post about because I once saw your blog post about a tool called Oxidizer I think. a tool called Oxidizer I think. a tool called Oxidizer I think. >> Yeah. >> Yeah. >> Yeah. >> Right. And this this was basically just >> Right. And this this was basically just >> Right. And this this was basically just for making the adoption easier. Right. for making the adoption easier. Right. for making the adoption easier. Right. So um if you know so so Ubuntu basically So um if you know so so Ubuntu basically So um if you know so so Ubuntu basically accepted those tools and started accepted those tools and started accepted those tools and started adopting them. They were already existed adopting them. They were already existed adopting them. They were already existed but now Ubuntu is just shipping them as but now Ubuntu is just shipping them as but now Ubuntu is just shipping them as part of the default uh version like part of the default uh version like part of the default uh version like this. True. this. True. this. True. >> Yeah. >> Yeah. >> Yeah. >> Yeah. Um, and Oxidizer was a bit of a it >> Yeah. Um, and Oxidizer was a bit of a it >> Yeah. Um, and Oxidizer was a bit of a it was just a bit of fun in the sense that was just a bit of fun in the sense that was just a bit of fun in the sense that when I said that we were going to do when I said that we were going to do when I said that we were going to do this, Oxidizer provided a nice little this, Oxidizer provided a nice little this, Oxidizer provided a nice little tool someone could run and get kind of a tool someone could run and get kind of a tool someone could run and get kind of a preview. The packages already existed, preview. The packages already existed, preview. The packages already existed, they were a bit broken. Some things they were a bit broken. Some things they were a bit broken. Some things didn't work, but it was kind of a way of didn't work, but it was kind of a way of didn't work, but it was kind of a way of saying to people like, "Look, if you saying to people like, "Look, if you saying to people like, "Look, if you have a like a place where you have a like a place where you have a like a place where you experiment, go try it out and tell us if experiment, go try it out and tell us if experiment, go try it out and tell us if something breaks, right? Like tell us if something breaks, right? Like tell us if something breaks, right? Like tell us if we're going to break you and then we can we're going to break you and then we can we're going to break you and then we can factor that in as we as we roll the factor that in as we as we roll the factor that in as we as we roll the default change out."

  15. default change out." default change out." >> Yeah. >> Yeah. >> Yeah. So I want to like ask why change these So I want to like ask why change these So I want to like ask why change these decade decade old Linux tools and you decade decade old Linux tools and you decade decade old Linux tools and you know not continue maintain these know not continue maintain these know not continue maintain these implementations but there's actually implementations but there's actually implementations but there's actually someone in the chat that asked uh a someone in the chat that asked uh a someone in the chat that asked uh a spicier question. I want to read that. spicier question. I want to read that. spicier question. I want to read that. How do you reply to those who say Rust How do you reply to those who say Rust How do you reply to those who say Rust replacements of core functionality are replacements of core functionality are replacements of core functionality are not ready and buggy? And I think this is not ready and buggy? And I think this is not ready and buggy? And I think this is kind of uh related to what I wanted to kind of uh related to what I wanted to kind of uh related to what I wanted to ask because there is some legacy tools ask because there is some legacy tools ask because there is some legacy tools they written in C they have been you they written in C they have been you they written in C they have been you know part of these distros for a while know part of these distros for a while know part of these distros for a while and there's now the rust version for and there's now the rust version for and there's now the rust version for those tools. So um there are like two those tools. So um there are like two those tools. So um there are like two paths here. Either you pick these you paths here. Either you pick these you paths here. Either you pick these you know legacy tools maintaining keep know legacy tools maintaining keep know legacy tools maintaining keep maintaining them or like you you pick maintaining them or like you you pick maintaining them or like you you pick the like you you rewrite them in rust the like you you rewrite them in rust the like you you rewrite them in rust and each one has its own like advantages and each one has its own like advantages and each one has its own like advantages and disadvantages. I think how do you and disadvantages. I think how do you and disadvantages. I think how do you see this distinction and how do you see this distinction and how do you see this distinction and how do you reply to uh this question?

  16. reply to uh this question? reply to uh this question? >> Yeah I get asked this quite a lot. Um in >> Yeah I get asked this quite a lot. Um in >> Yeah I get asked this quite a lot. Um in [clears throat] reality GNU core utils [clears throat] reality GNU core utils [clears throat] reality GNU core utils has been around for 30 years. It's great has been around for 30 years. It's great has been around for 30 years. It's great software like we all rely on it. I have software like we all rely on it. I have software like we all rely on it. I have nothing against it. I'm very grateful nothing against it. I'm very grateful nothing against it. I'm very grateful for the people that maintained it, but for the people that maintained it, but for the people that maintained it, but it still has bugs. Do you know what I it still has bugs. Do you know what I it still has bugs. Do you know what I mean? So the argument that the Rust one mean? So the argument that the Rust one mean? So the argument that the Rust one has bugs is not really a valid argument. has bugs is not really a valid argument. has bugs is not really a valid argument. It also still sometimes gets memory It also still sometimes gets memory It also still sometimes gets memory safety bugs filed against it. Very safety bugs filed against it. Very safety bugs filed against it. Very rarely, right? Like this is this rarely, right? Like this is this rarely, right? Like this is this software has had lots of eyes on it. And software has had lots of eyes on it. And software has had lots of eyes on it. And my point is that I expect Abuntu to be my point is that I expect Abuntu to be my point is that I expect Abuntu to be successful for the next 20 years. And I successful for the next 20 years. And I successful for the next 20 years. And I would like to take as much of the burden would like to take as much of the burden would like to take as much of the burden the you know if we can remove the the you know if we can remove the the you know if we can remove the lowhanging fruit to make the maintenance lowhanging fruit to make the maintenance lowhanging fruit to make the maintenance easier and the platform more secure and easier and the platform more secure and easier and the platform more secure and more resilient by default then we should more resilient by default then we should more resilient by default then we should do that and in reality these projects do that and in reality these projects do that and in reality these projects never get to be polished if no one uses never get to be polished if no one uses never get to be polished if no one uses them. So the GNU core utils project them. So the GNU core utils project them. So the GNU core utils project sorry the u utils core utils project the sorry the u utils core utils project the sorry the u utils core utils project the rust rewrite was already at some very rust rewrite was already at some very rust rewrite was already at some very high 80s percentage of tests passing high 80s percentage of tests passing high 80s percentage of tests passing against the upstream GNU test suite. against the upstream GNU test suite. against the upstream GNU test suite. It's now into the 90s and it's into the It's now into the 90s and it's into the It's now into the 90s and it's into the 90s because many thousands more people 90s because many thousands more people 90s because many thousands more people have used it. We found the bugs and we have used it. We found the bugs and we have used it. We found the bugs and we funded funded the developer to fix them.

  17. funded funded the developer to fix them. funded funded the developer to fix them. And so [sighs and gasps] And so [sighs and gasps] And so [sighs and gasps] yes could be rough for some people but yes could be rough for some people but yes could be rough for some people but essentially it was a calculated risk. We essentially it was a calculated risk. We essentially it was a calculated risk. We knew that there would be some edge cases knew that there would be some edge cases knew that there would be some edge cases that would break, but we were kind of that would break, but we were kind of that would break, but we were kind of willing to progress that agenda because willing to progress that agenda because willing to progress that agenda because in the long run, what it will mean is in the long run, what it will mean is in the long run, what it will mean is more of the base Linux system is sort of more of the base Linux system is sort of more of the base Linux system is sort of preh hardened against an entire category preh hardened against an entire category preh hardened against an entire category of attack. And there are actually some of attack. And there are actually some of attack. And there are actually some places where we can achieve better places where we can achieve better places where we can achieve better performance because of some of the performance because of some of the performance because of some of the primitives that Rust offers. So there primitives that Rust offers. So there primitives that Rust offers. So there are some parts of the GNU core utils are some parts of the GNU core utils are some parts of the GNU core utils which are super duper optimized and which are super duper optimized and which are super duper optimized and there's bits of assembly in there and there's bits of assembly in there and there's bits of assembly in there and like it's all very clever but there are like it's all very clever but there are like it's all very clever but there are and and so there are some of the GNU and and so there are some of the GNU and and so there are some of the GNU things that are slightly faster than the things that are slightly faster than the things that are slightly faster than the utils ones but actually the response utils ones but actually the response utils ones but actually the response I've seen in the Uutills community is to I've seen in the Uutills community is to I've seen in the Uutills community is to go chase that is to go and make the go chase that is to go and make the go chase that is to go and make the there's one interesting example where I there's one interesting example where I there's one interesting example where I ran a bunch of benchmarks synthetic ran a bunch of benchmarks synthetic ran a bunch of benchmarks synthetic benchmarks which proved that the word benchmarks which proved that the word benchmarks which proved that the word count utility for whatever reason was count utility for whatever reason was count utility for whatever reason was 11% slower than the GNU one. It's now 9% 11% slower than the GNU one. It's now 9% 11% slower than the GNU one. It's now 9% faster in most use cases because faster in most use cases because faster in most use cases because somebody saw that, thought it was somebody saw that, thought it was somebody saw that, thought it was interesting, and went and fixed it. And interesting, and went and fixed it. And interesting, and went and fixed it. And I think that optimization would I think that optimization would I think that optimization would obviously have been possible in GNU core obviously have been possible in GNU core obviously have been possible in GNU core utils, but I think Rust makes that kind utils, but I think Rust makes that kind utils, but I think Rust makes that kind of optimization more accessible to more of optimization more accessible to more of optimization more accessible to more developers. And there are more developers. And there are more developers. And there are more developers, particularly junior developers, particularly junior developers, particularly junior developers, who are interested in developers, who are interested in developers, who are interested in writing and contributing to Rust writing and contributing to Rust writing and contributing to Rust projects. And I want to attract that projects. And I want to attract that projects. And I want to attract that crowd. I can't just rely on all of the crowd. I can't just rely on all of the crowd. I can't just rely on all of the people that have been doing it for the people that have been doing it for the people that have been doing it for the last 30 years because what if they want last 30 years because what if they want last 30 years because what if they want to retire or what if they just aren't to retire or what if they just aren't to retire or what if they just aren't interested anymore? Like we have to interested anymore? Like we have to interested anymore? Like we have to appeal to the set of people who are

  18. appeal to the set of people who are appeal to the set of people who are interested in doing open source work and interested in doing open source work and interested in doing open source work and if all of if more of them are available if all of if more of them are available if all of if more of them are available in Rust, I'd like to tap into that. in Rust, I'd like to tap into that. in Rust, I'd like to tap into that. >> Yeah, absolutely. So last year I did >> Yeah, absolutely. So last year I did >> Yeah, absolutely. So last year I did something very similar to Rust in something very similar to Rust in something very similar to Rust in Ubuntu. So I'm part of the Arch Linux Ubuntu. So I'm part of the Arch Linux Ubuntu. So I'm part of the Arch Linux distribution and we had this really old distribution and we had this really old distribution and we had this really old like package management system and I was like package management system and I was like package management system and I was a part of project called ALPM Arch Linux a part of project called ALPM Arch Linux a part of project called ALPM Arch Linux package manager and we basically re package manager and we basically re package manager and we basically re rewrote bunch of parts of the Pac-Man rewrote bunch of parts of the Pac-Man rewrote bunch of parts of the Pac-Man package manager in Rust. small package manager in Rust. small package manager in Rust. small utilities, parsers, utilities, parsers, utilities, parsers, um some other stuff such as the package um some other stuff such as the package um some other stuff such as the package build like uh parser like data database build like uh parser like data database build like uh parser like data database handling, file handling and so on. And handling, file handling and so on. And handling, file handling and so on. And what we realized was more that we kind what we realized was more that we kind what we realized was more that we kind of peak into these like old formats, of peak into these like old formats, of peak into these like old formats, these like old legacy files, we f we these like old legacy files, we f we these like old legacy files, we f we found bugs and we found like things that found bugs and we found like things that found bugs and we found like things that really didn't make sense. So in your really didn't make sense. So in your really didn't make sense. So in your case, do you have some example of this case, do you have some example of this case, do you have some example of this with let's say corotils or or pseudo with let's say corotils or or pseudo with let's say corotils or or pseudo where there's some behavior that that where there's some behavior that that where there's some behavior that that was there for a long time and people was there for a long time and people was there for a long time and people just took it for granted because it was just took it for granted because it was just took it for granted because it was there but you look at it from a new there but you look at it from a new there but you look at it from a new perspective and you realize well this perspective and you realize well this perspective and you realize well this doesn't make sense. Let's just change doesn't make sense. Let's just change doesn't make sense. Let's just change this.

  19. this. this. >> So I do have examples but it's it again >> So I do have examples but it's it again >> So I do have examples but it's it again it comes back to how the two projects it comes back to how the two projects it comes back to how the two projects handle it. So what I will say is one of handle it. So what I will say is one of handle it. So what I will say is one of the things I really love about the UYU the things I really love about the UYU the things I really love about the UYU tools project and the pseudo RS project tools project and the pseudo RS project tools project and the pseudo RS project is that both of them are in regular is that both of them are in regular is that both of them are in regular contact and contribute patches to the contact and contribute patches to the contact and contribute patches to the original projects. So when we find original projects. So when we find original projects. So when we find things uh when [clears throat] Sylvest things uh when [clears throat] Sylvest things uh when [clears throat] Sylvest finds things in the core utils that are finds things in the core utils that are finds things in the core utils that are broken in upstream core utils, he'll go broken in upstream core utils, he'll go broken in upstream core utils, he'll go fix it there as well. Uh when the pseudo fix it there as well. Uh when the pseudo fix it there as well. Uh when the pseudo RS folks find a security issue in pseudo RS folks find a security issue in pseudo RS folks find a security issue in pseudo RS that also affects the original sudo, RS that also affects the original sudo, RS that also affects the original sudo, they collaborate and make sure they get they collaborate and make sure they get they collaborate and make sure they get fixed at the same time. Um, fixed at the same time. Um, fixed at the same time. Um, interestingly, I think Sylvest was in interestingly, I think Sylvest was in interestingly, I think Sylvest was in something like the top 10 something like the top 10 something like the top 10 contributors of the latest GNU core contributors of the latest GNU core contributors of the latest GNU core utils release, even though he's the utils release, even though he's the utils release, even though he's the project lead of UTS. And I love that project lead of UTS. And I love that project lead of UTS. And I love that like this I hope hopefully that like this I hope hopefully that like this I hope hopefully that illustrates to anybody who's skeptical illustrates to anybody who's skeptical illustrates to anybody who's skeptical that this is being done in good faith, that this is being done in good faith, that this is being done in good faith, right? It's not about winning and right? It's not about winning and right? It's not about winning and losing. It's just some people working on losing. It's just some people working on losing. It's just some people working on some software. But the two projects some software. But the two projects some software. But the two projects handle it differently. GNU utils and u handle it differently. GNU utils and u handle it differently. GNU utils and u Ututils are supposed to be 100% Ututils are supposed to be 100% Ututils are supposed to be 100% compatible. We had something recently compatible. We had something recently compatible. We had something recently where I with the help of a friend we we where I with the help of a friend we we where I with the help of a friend we we were troubleshooting a broken snap. It were troubleshooting a broken snap. It were troubleshooting a broken snap. It was for Obsidian and Obsidian packaged was for Obsidian and Obsidian packaged was for Obsidian and Obsidian packaged this old script from this like weird this old script from this like weird this old script from this like weird dependency buried somewhere down the dependency buried somewhere down the dependency buried somewhere down the tree. And it turns out that the head tree. And it turns out that the head tree. And it turns out that the head command when you read when you tell head command when you read when you tell head command when you read when you tell head to read a number of bytes, to read a number of bytes, to read a number of bytes, uh if you tried to read say five bytes uh if you tried to read say five bytes uh if you tried to read say five bytes or n bytes in a file that had no bytes, or n bytes in a file that had no bytes, or n bytes in a file that had no bytes, the GNU call utils return zero, which is the GNU call utils return zero, which is the GNU call utils return zero, which is weird because in reality it should weird because in reality it should weird because in reality it should return an error. Couldn't return any return an error. Couldn't return any return an error. Couldn't return any bytes. And that's exactly what the UU bytes. And that's exactly what the UU bytes. And that's exactly what the UU tools project did and that's an

  20. tools project did and that's an tools project did and that's an incompatibility. So the fixes of course incompatibility. So the fixes of course incompatibility. So the fixes of course we then change the maintainer then we then change the maintainer then we then change the maintainer then changed the new implementation to make changed the new implementation to make changed the new implementation to make it behave the same as the old one even it behave the same as the old one even it behave the same as the old one even though it was kind of counterintuitive. though it was kind of counterintuitive. though it was kind of counterintuitive. Whereas in pseudo RS sometimes they do Whereas in pseudo RS sometimes they do Whereas in pseudo RS sometimes they do make breaking changes and say this is a make breaking changes and say this is a make breaking changes and say this is a this is a departure from sudo and this this is a departure from sudo and this this is a departure from sudo and this is the reason why like we believe that is the reason why like we believe that is the reason why like we believe that this is a you know better for security this is a you know better for security this is a you know better for security or or whatever it might be. An example or or whatever it might be. An example or or whatever it might be. An example of that which lots of people lost their of that which lots of people lost their of that which lots of people lost their mind over was that when you type your mind over was that when you type your mind over was that when you type your pseudo password in the terminal, you now pseudo password in the terminal, you now pseudo password in the terminal, you now get the little asteris marks by default. get the little asteris marks by default. get the little asteris marks by default. You get some feedback in the terminal. You get some feedback in the terminal. You get some feedback in the terminal. Lots of people, far more people than I Lots of people, far more people than I Lots of people, far more people than I realized have opinions about that. Uh realized have opinions about that. Uh realized have opinions about that. Uh [clears throat] [clears throat] [clears throat] [sighs] [sighs] [sighs] >> that's great actually. I I would love to >> that's great actually. I I would love to >> that's great actually. I I would love to have that. Um it was always a bit have that. Um it was always a bit have that. Um it was always a bit confusing to not see what I'm typing. confusing to not see what I'm typing. confusing to not see what I'm typing. So, uh, when it comes to the the So, uh, when it comes to the the So, uh, when it comes to the the reaction to to what you're doing, was reaction to to what you're doing, was reaction to to what you're doing, was there like any resistance internally or there like any resistance internally or there like any resistance internally or externally? And how did you really react externally? And how did you really react externally? And how did you really react to that? to that? to that? >> Yeah, there was uh not so much >> Yeah, there was uh not so much >> Yeah, there was uh not so much internally. I think, you know, people internally. I think, you know, people internally. I think, you know, people came to me with questions and concerns came to me with questions and concerns came to me with questions and concerns and I think I comforted them somewhat by and I think I comforted them somewhat by and I think I comforted them somewhat by saying, "Look, I really want to try this saying, "Look, I really want to try this saying, "Look, I really want to try this and I really believe it's the right and I really believe it's the right and I really believe it's the right thing, but I'm also not going to destroy thing, but I'm also not going to destroy thing, but I'm also not going to destroy Abuntu's reputation just to be right."

  21. Abuntu's reputation just to be right." Abuntu's reputation just to be right." So, we had lots of points along the So, we had lots of points along the So, we had lots of points along the development cycle of the 2604 LTS where development cycle of the 2604 LTS where development cycle of the 2604 LTS where we kind of had to make a decision and we kind of had to make a decision and we kind of had to make a decision and go, "Oh, we've broken a bunch of stuff. go, "Oh, we've broken a bunch of stuff. go, "Oh, we've broken a bunch of stuff. Do we still want to go for it?" Uh, and Do we still want to go for it?" Uh, and Do we still want to go for it?" Uh, and and every time those are just you have and every time those are just you have and every time those are just you have to make an informed decision and it is to make an informed decision and it is to make an informed decision and it is taking a gamble, of course, it is an taking a gamble, of course, it is an taking a gamble, of course, it is an educated one, but we are taking a educated one, but we are taking a educated one, but we are taking a gamble. The biggest concern I think gamble. The biggest concern I think gamble. The biggest concern I think outside was about licensing uh outside was about licensing uh outside was about licensing uh >> and I was a little confused by that uh >> and I was a little confused by that uh >> and I was a little confused by that uh or I guess not confused been around the or I guess not confused been around the or I guess not confused been around the open source community long enough to open source community long enough to open source community long enough to know that that's important and the big know that that's important and the big know that that's important and the big change is that GNU core utils is of change is that GNU core utils is of change is that GNU core utils is of course GPL whereas the Uls project is course GPL whereas the Uls project is course GPL whereas the Uls project is MIT licensed and lots of people found MIT licensed and lots of people found MIT licensed and lots of people found that to be unacceptable and my response that to be unacceptable and my response that to be unacceptable and my response is honestly is honestly is honestly uh I think the GPL is incredibly uh I think the GPL is incredibly uh I think the GPL is incredibly important important and I think it has important important and I think it has important important and I think it has hugely contributed to the success and hugely contributed to the success and hugely contributed to the success and proliferation of Linux and open source proliferation of Linux and open source proliferation of Linux and open source and in fact most of Canonical's projects and in fact most of Canonical's projects and in fact most of Canonical's projects use derivations of the GPL license use derivations of the GPL license use derivations of the GPL license themselves themselves themselves but in this case this is not code that but in this case this is not code that but in this case this is not code that we are writing we are being a we are writing we are being a we are writing we are being a distribution we are picking someone distribution we are picking someone distribution we are picking someone else's project who you know whose values else's project who you know whose values else's project who you know whose values we choose or we believe align with ours we choose or we believe align with ours we choose or we believe align with ours and we are shipping it if the values of and we are shipping it if the values of and we are shipping it if the values of that project cease to be aligned with that project cease to be aligned with that project cease to be aligned with ours we will ship something else ours we will ship something else ours we will ship something else So in some senses and there was a there So in some senses and there was a there So in some senses and there was a there was this kind of undertone of well was this kind of undertone of well was this kind of undertone of well Canonicle is doing this so it can make a Canonicle is doing this so it can make a Canonicle is doing this so it can make a pile of money out of people to which my pile of money out of people to which my pile of money out of people to which my response has always been if you can response has always been if you can response has always been if you can think of a way for Canonicle to make think of a way for Canonicle to make think of a way for Canonicle to make money out of the CP command I'd love to money out of the CP command I'd love to money out of the CP command I'd love to hear it. Do you know what I mean? Like

  22. hear it. Do you know what I mean? Like hear it. Do you know what I mean? Like it it's just not on the agenda at the it it's just not on the agenda at the it it's just not on the agenda at the end of the day. It's one of those end of the day. It's one of those end of the day. It's one of those changes where I just felt like the changes where I just felt like the changes where I just felt like the license of the project that we were license of the project that we were license of the project that we were distributing to our users in this case distributing to our users in this case distributing to our users in this case was irrelevant. [clears throat] was irrelevant. [clears throat] was irrelevant. [clears throat] uh we have already proven I think that uh we have already proven I think that uh we have already proven I think that we are invested in the long term in we are invested in the long term in we are invested in the long term in contributing our changes upstream and contributing our changes upstream and contributing our changes upstream and making them available. Not only did we making them available. Not only did we making them available. Not only did we fund a whole bunch of the development fund a whole bunch of the development fund a whole bunch of the development work in the project but we also have our work in the project but we also have our work in the project but we also have our own engineers contributing patches in own engineers contributing patches in own engineers contributing patches in the open and would encourage others to the open and would encourage others to the open and would encourage others to do separately. So I in a sense I think do separately. So I in a sense I think do separately. So I in a sense I think it is good that people always bring the it is good that people always bring the it is good that people always bring the license question up but I think there is license question up but I think there is license question up but I think there is nuance in any decision like that and in nuance in any decision like that and in nuance in any decision like that and in this case I just I don't see a way that this case I just I don't see a way that this case I just I don't see a way that this could backfire for the community this could backfire for the community this could backfire for the community ultimately. Uh ultimately. Uh ultimately. Uh >> I was in similar situations myself. Um >> I was in similar situations myself. Um >> I was in similar situations myself. Um Rust ecosystem usually prefers MIT plus Rust ecosystem usually prefers MIT plus Rust ecosystem usually prefers MIT plus Apache 2 and I would say I don't want to Apache 2 and I would say I don't want to Apache 2 and I would say I don't want to generalize it but usually the Linux generalize it but usually the Linux generalize it but usually the Linux ecosystem is GPL 2 GPL 3 sometimes. So ecosystem is GPL 2 GPL 3 sometimes. So ecosystem is GPL 2 GPL 3 sometimes. So uh what are the licenses that you're uh what are the licenses that you're uh what are the licenses that you're using right now in these projects? I using right now in these projects? I using right now in these projects? I know that these are like separate repos know that these are like separate repos know that these are like separate repos managed by like separate people but uh managed by like separate people but uh managed by like separate people but uh like generally do you have let's say GPL like generally do you have let's say GPL like generally do you have let's say GPL code at all or do you all go for MIT any code at all or do you all go for MIT any code at all or do you all go for MIT any like like like >> internally internally most of >> internally internally most of >> internally internally most of Canonical's projects are GPL or AGPL Canonical's projects are GPL or AGPL Canonical's projects are GPL or AGPL with some exceptions so we use AGPL in with some exceptions so we use AGPL in with some exceptions so we use AGPL in kind of networkbased services like Lex kind of networkbased services like Lex kind of networkbased services like Lex uh guju and such uh [clears throat] the

  23. uh guju and such uh [clears throat] the uh guju and such uh [clears throat] the only places we really use the Apache only places we really use the Apache only places we really use the Apache license for example license for example license for example is in ecosystems where we expect so so is in ecosystems where we expect so so is in ecosystems where we expect so so for example we in my first four years at for example we in my first four years at for example we in my first four years at conical I spent it building operators conical I spent it building operators conical I spent it building operators cloudnative operators and that community cloudnative operators and that community cloudnative operators and that community almost exclusively uses Apache licensing almost exclusively uses Apache licensing almost exclusively uses Apache licensing and so our operators are nearly all and so our operators are nearly all and so our operators are nearly all Apache licensed but nearly nearly all of Apache licensed but nearly nearly all of Apache licensed but nearly nearly all of the software that canonical creates is the software that canonical creates is the software that canonical creates is some derivation of the GPL and I I don't some derivation of the GPL and I I don't some derivation of the GPL and I I don't expect that to change like this it is expect that to change like this it is expect that to change like this it is not a policy shift it is not a bid to not a policy shift it is not a bid to not a policy shift it is not a bid to get out of Linux it is not a bid to get get out of Linux it is not a bid to get get out of Linux it is not a bid to get away from GPL. It is just not a very away from GPL. It is just not a very away from GPL. It is just not a very interesting fact in this part of the in interesting fact in this part of the in interesting fact in this part of the in this particular decision in my view. I I this particular decision in my view. I I this particular decision in my view. I I I think it would be it would signal I think it would be it would signal I think it would be it would signal or rather I could see why people would or rather I could see why people would or rather I could see why people would think it would signal something bad if think it would signal something bad if think it would signal something bad if Cononicle was suddenly changing all of Cononicle was suddenly changing all of Cononicle was suddenly changing all of its licenses and abandoning the GPL. its licenses and abandoning the GPL. its licenses and abandoning the GPL. It's absolutely not what we're doing. We It's absolutely not what we're doing. We It's absolutely not what we're doing. We are just swapping a utility. And in are just swapping a utility. And in are just swapping a utility. And in reality, there's loads of software in reality, there's loads of software in reality, there's loads of software in the archive that isn't GPL license, the archive that isn't GPL license, the archive that isn't GPL license, right? There's BSD licensed stuff and right? There's BSD licensed stuff and right? There's BSD licensed stuff and MIT licensed stuff. There's proprietary MIT licensed stuff. There's proprietary MIT licensed stuff. There's proprietary stuff in Multiverse. It all comes down stuff in Multiverse. It all comes down stuff in Multiverse. It all comes down to to to which projects we think are going to which projects we think are going to which projects we think are going to serve our users best ultimately.

  24. serve our users best ultimately. serve our users best ultimately. >> Mhm. Yeah, that's usually the the best >> Mhm. Yeah, that's usually the the best >> Mhm. Yeah, that's usually the the best way to go with it. I think the the way to go with it. I think the the way to go with it. I think the the license dispute is is like all all the license dispute is is like all all the license dispute is is like all all the time it's there. Uh especially when time it's there. Uh especially when time it's there. Uh especially when something is open source, but um yeah, something is open source, but um yeah, something is open source, but um yeah, ultimately we should really just ultimately we should really just ultimately we should really just consider what we're shipping. So, we consider what we're shipping. So, we consider what we're shipping. So, we have one question from the chat. Uh have one question from the chat. Uh have one question from the chat. Uh Giorgio asks, "How do you think Giorgio asks, "How do you think Giorgio asks, "How do you think Canonicle's direction will influence Canonicle's direction will influence Canonicle's direction will influence other distribution actions? Do you think other distribution actions? Do you think other distribution actions? Do you think it will induce more Rust adoption it will induce more Rust adoption it will induce more Rust adoption elsewhere?" elsewhere?" elsewhere?" >> I hope so. I think it already has. Uh I >> I hope so. I think it already has. Uh I >> I hope so. I think it already has. Uh I saw a Fedora change proposal to adopt saw a Fedora change proposal to adopt saw a Fedora change proposal to adopt Pseudo RS by default a few months after Pseudo RS by default a few months after Pseudo RS by default a few months after we did. Um Nexos is traditionally more we did. Um Nexos is traditionally more we did. Um Nexos is traditionally more forwardleaning here. Um and I think they forwardleaning here. Um and I think they forwardleaning here. Um and I think they certainly will. My hope is that we are certainly will. My hope is that we are certainly will. My hope is that we are able to use our quite privileged able to use our quite privileged able to use our quite privileged position that we have earned over the position that we have earned over the position that we have earned over the years to make this easy for other years to make this easy for other years to make this easy for other distributions. Like this is another sort distributions. Like this is another sort distributions. Like this is another sort of sorry to come back to the licensing. of sorry to come back to the licensing. of sorry to come back to the licensing. It's another thing where I don't see It's another thing where I don't see It's another thing where I don't see this as some huge competitive advantage this as some huge competitive advantage this as some huge competitive advantage that we have a rust CP command. Do you that we have a rust CP command. Do you that we have a rust CP command. Do you know what I mean? Like it it just isn't know what I mean? Like it it just isn't know what I mean? Like it it just isn't a defining feature of the platform. And a defining feature of the platform. And a defining feature of the platform. And in reality, the whole Linux ecosystem in reality, the whole Linux ecosystem in reality, the whole Linux ecosystem will benefit if more people adopt this, will benefit if more people adopt this, will benefit if more people adopt this, if more distributions adopt this. I if more distributions adopt this. I if more distributions adopt this. I fully expect them to honestly because I fully expect them to honestly because I fully expect them to honestly because I don't see the reason not to. Um I don't don't see the reason not to. Um I don't don't see the reason not to. Um I don't judge that those that won't, but yes, I judge that those that won't, but yes, I judge that those that won't, but yes, I I expect it will trickle out in other I expect it will trickle out in other I expect it will trickle out in other distributions as well.

  25. distributions as well. distributions as well. >> I'm wondering if there's any lessons >> I'm wondering if there's any lessons >> I'm wondering if there's any lessons that you want to share in terms of the that you want to share in terms of the that you want to share in terms of the difficulties that you experienced like difficulties that you experienced like difficulties that you experienced like adopting Rust at at this scale. So um adopting Rust at at this scale. So um adopting Rust at at this scale. So um what's what was the like the hardest what's what was the like the hardest what's what was the like the hardest thing that you you encountered while thing that you you encountered while thing that you you encountered while adopting Rust? adopting Rust? adopting Rust? And in our case, I think some of the And in our case, I think some of the And in our case, I think some of the things were not because Rust. Some of things were not because Rust. Some of things were not because Rust. Some of the things were just because scale. the things were just because scale. the things were just because scale. Replacing the 60 or 70 most typed Replacing the 60 or 70 most typed Replacing the 60 or 70 most typed commands in Linux with an alternate commands in Linux with an alternate commands in Linux with an alternate implementation turned up some bugs. implementation turned up some bugs. implementation turned up some bugs. Matias Endler did some great analysis on Matias Endler did some great analysis on Matias Endler did some great analysis on this. He wrote a blog about one of the this. He wrote a blog about one of the this. He wrote a blog about one of the particular bugs that blocked us for a particular bugs that blocked us for a particular bugs that blocked us for a while about how, you know, while you do while about how, you know, while you do while about how, you know, while you do get memory safety from Rust, that get memory safety from Rust, that get memory safety from Rust, that doesn't stop you from having bugs in the doesn't stop you from having bugs in the doesn't stop you from having bugs in the code. And he did a really nice kind of code. And he did a really nice kind of code. And he did a really nice kind of opinion piece on it. We packaging is opinion piece on it. We packaging is opinion piece on it. We packaging is hard particularly in so modern languages hard particularly in so modern languages hard particularly in so modern languages that use package managers that speak to that use package managers that speak to that use package managers that speak to crates.io. We actually take a slightly crates.io. We actually take a slightly crates.io. We actually take a slightly different approach to how that's done. different approach to how that's done. different approach to how that's done. The Debian Debian tends towards creating The Debian Debian tends towards creating The Debian Debian tends towards creating a deb for every crate and landing that a deb for every crate and landing that a deb for every crate and landing that in the Debian archive. We don't do that.

  26. in the Debian archive. We don't do that. in the Debian archive. We don't do that. We do a vendoring thing a bit like Nyx We do a vendoring thing a bit like Nyx We do a vendoring thing a bit like Nyx where we essentially take all of the where we essentially take all of the where we essentially take all of the crates, dump them in a tarable and ship crates, dump them in a tarable and ship crates, dump them in a tarable and ship them as part of the the finished them as part of the the finished them as part of the the finished artifact. So that's been complicated. artifact. So that's been complicated. artifact. So that's been complicated. Again, back to licensing. Part of that Again, back to licensing. Part of that Again, back to licensing. Part of that is like you have to have a copyright is like you have to have a copyright is like you have to have a copyright file for every sit like Debian policy file for every sit like Debian policy file for every sit like Debian policy requires that you have a copyright file requires that you have a copyright file requires that you have a copyright file for every open source project that you for every open source project that you for every open source project that you you ship. And so we had to build some you ship. And so we had to build some you ship. And so we had to build some tooling around that. Um but honestly it tooling around that. Um but honestly it tooling around that. Um but honestly it hasn't you know aside from working hasn't you know aside from working hasn't you know aside from working through the backlog of bugs and features through the backlog of bugs and features through the backlog of bugs and features and things like that it hasn't been very and things like that it hasn't been very and things like that it hasn't been very painful. I was a little bit worried that painful. I was a little bit worried that painful. I was a little bit worried that we had put too much upon one of the we had put too much upon one of the we had put too much upon one of the maintainers at one point you know with maintainers at one point you know with maintainers at one point you know with uh while we committed funding and the uh while we committed funding and the uh while we committed funding and the funding that we committed was based on funding that we committed was based on funding that we committed was based on what the maintainers asked for. So what the maintainers asked for. So what the maintainers asked for. So before we started any of this or did before we started any of this or did before we started any of this or did anything public, you know, I went and anything public, you know, I went and anything public, you know, I went and spoke to the maintainers of the project spoke to the maintainers of the project spoke to the maintainers of the project and said, "Hey, I'm thinking about and said, "Hey, I'm thinking about and said, "Hey, I'm thinking about shipping your thing by default. What do shipping your thing by default. What do shipping your thing by default. What do you think? Is it ready? What would it you think? Is it ready? What would it you think? Is it ready? What would it take for us to support you?" And broadly take for us to support you?" And broadly take for us to support you?" And broadly what they asked for, we gave them in what they asked for, we gave them in what they asked for, we gave them in terms of funding and and support. But as terms of funding and and support. But as terms of funding and and support. But as we neared 2604, we neared 2604, we neared 2604, as you might imagine, lots of bugs, like as you might imagine, lots of bugs, like as you might imagine, lots of bugs, like we have lots of users, and so there was we have lots of users, and so there was we have lots of users, and so there was a point where I thought we had a point where I thought we had a point where I thought we had overcooked it slightly. uh and I would overcooked it slightly. uh and I would overcooked it slightly. uh and I would like to maybe think that through a bit like to maybe think that through a bit like to maybe think that through a bit better in future so we don't you know better in future so we don't you know better in future so we don't you know end up burying projects in bugs uh I end up burying projects in bugs uh I end up burying projects in bugs uh I things are stable and we work through it things are stable and we work through it things are stable and we work through it but ultimately I think there was a but ultimately I think there was a but ultimately I think there was a stressful few weeks for a couple of stressful few weeks for a couple of stressful few weeks for a couple of folks on those projects just as the folks on those projects just as the folks on those projects just as the adoption kind of increased and the we adoption kind of increased and the we adoption kind of increased and the we one of the things we did was funded two one of the things we did was funded two one of the things we did was funded two independent security audits on the core independent security audits on the core independent security audits on the core utils projects and we didn't for sudu utils projects and we didn't for sudu utils projects and we didn't for sudu because they'd already had a couple of

  27. because they'd already had a couple of because they'd already had a couple of formal security audits and we were formal security audits and we were formal security audits and we were content our internal security team content our internal security team content our internal security team looked at it and agreed that it was good looked at it and agreed that it was good looked at it and agreed that it was good for core utils they hadn't been a full for core utils they hadn't been a full for core utils they hadn't been a full security audit. So, we funded one round, security audit. So, we funded one round, security audit. So, we funded one round, fixed a bunch of issues, then funded fixed a bunch of issues, then funded fixed a bunch of issues, then funded another round and fixed a bunch of another round and fixed a bunch of another round and fixed a bunch of issues. And again, that just created issues. And again, that just created issues. And again, that just created lots of issues, right? Like lots of work lots of issues, right? Like lots of work lots of issues, right? Like lots of work to be done. And sometimes funding isn't to be done. And sometimes funding isn't to be done. And sometimes funding isn't all of it if you don't have the people all of it if you don't have the people all of it if you don't have the people to distribute the funding to to share to distribute the funding to to share to distribute the funding to to share the work, right? the work, right? the work, right? So, So, So, >> yeah, I definitely see that like funding >> yeah, I definitely see that like funding >> yeah, I definitely see that like funding open source while while doing this is is open source while while doing this is is open source while while doing this is is really valuable, but open source is open really valuable, but open source is open really valuable, but open source is open source, you know. So you just you just source, you know. So you just you just source, you know. So you just you just uh sometimes get buried in in bugs but uh sometimes get buried in in bugs but uh sometimes get buried in in bugs but it is what it is. it is what it is. it is what it is. >> Mhm. >> Mhm. >> Mhm. >> So uh you mentioned crates.io and >> So uh you mentioned crates.io and >> So uh you mentioned crates.io and packaging. How do you like handle packaging. How do you like handle packaging. How do you like handle packaging in in Ubuntu like and how do packaging in in Ubuntu like and how do packaging in in Ubuntu like and how do you see you see you see the crates IO ecosystem? What do you the crates IO ecosystem? What do you the crates IO ecosystem? What do you think about it? think about it? think about it? >> I think it's challenging. I think it has >> I think it's challenging. I think it has >> I think it's challenging. I think it has the same challenges realistically as npm the same challenges realistically as npm the same challenges realistically as npm and as pipi. like they're all they all and as pipi. like they're all they all and as pipi. like they're all they all suffer from a similar problem in that suffer from a similar problem in that suffer from a similar problem in that you are essentially allowing people to you are essentially allowing people to you are essentially allowing people to upload untrusted code and so part of the upload untrusted code and so part of the upload untrusted code and so part of the reason we announced some months ago that reason we announced some months ago that reason we announced some months ago that we joined the Russ Foundation and part we joined the Russ Foundation and part we joined the Russ Foundation and part of that was to be a part of the of that was to be a part of the of that was to be a part of the conversation on create.io security, conversation on create.io security, conversation on create.io security, supply chain security, what can be done supply chain security, what can be done supply chain security, what can be done at the infrastructure level to kind of at the infrastructure level to kind of at the infrastructure level to kind of shore that up and make sure that it we shore that up and make sure that it we shore that up and make sure that it we don't end up the butt of you know the don't end up the butt of you know the don't end up the butt of you know the left pad meme which I'm sure you left pad meme which I'm sure you left pad meme which I'm sure you remember from some years ago in the remember from some years ago in the remember from some years ago in the JavaScript ecosystem in reality while

  28. JavaScript ecosystem in reality while JavaScript ecosystem in reality while it's all very funny to laugh um that it's all very funny to laugh um that it's all very funny to laugh um that could easily have been Rust could easily have been Rust could easily have been Rust the the two things the two systems are the the two things the two systems are the the two things the two systems are just not that different we vendor like I just not that different we vendor like I just not that different we vendor like I said before we vendor things in devs so said before we vendor things in devs so said before we vendor things in devs so we sort of have like parallel universes we sort of have like parallel universes we sort of have like parallel universes in a sense and we have what's in the in a sense and we have what's in the in a sense and we have what's in the archive where we package for each Abuntu archive where we package for each Abuntu archive where we package for each Abuntu release a given version of the Rust release a given version of the Rust release a given version of the Rust compiler compiler compiler uh and all those pieces and the Rust uh and all those pieces and the Rust uh and all those pieces and the Rust crates that make up the packages in crates that make up the packages in crates that make up the packages in Auntu. But then we have the snap Auntu. But then we have the snap Auntu. But then we have the snap ecosystem and the the container image ecosystem and the the container image ecosystem and the the container image ecosystem where we can ship different ecosystem where we can ship different ecosystem where we can ship different versions of things. Uh and [sighs] so versions of things. Uh and [sighs] so versions of things. Uh and [sighs] so [gasps] [gasps] [gasps] while snaps people are varying opinions while snaps people are varying opinions while snaps people are varying opinions about snaps they're built the build about snaps they're built the build about snaps they're built the build system is generalized. So it's a what we system is generalized. So it's a what we system is generalized. So it's a what we call we have a team called the Starcraft call we have a team called the Starcraft call we have a team called the Starcraft team which isn't anywhere near as cool team which isn't anywhere near as cool team which isn't anywhere near as cool as it sounds. It's a it's a packaging as it sounds. It's a it's a packaging as it sounds. It's a it's a packaging tools team. But the idea behind that is tools team. But the idea behind that is tools team. But the idea behind that is we have a single grammar that represents we have a single grammar that represents we have a single grammar that represents how to build software and ship it in how to build software and ship it in how to build software and ship it in snaps, in container images, in VM snaps, in container images, in VM snaps, in container images, in VM images, in whatever format you need. And images, in whatever format you need. And images, in whatever format you need. And so a lot of our work on how to package so a lot of our work on how to package so a lot of our work on how to package something, if you think about for something, if you think about for something, if you think about for example the package build format for example the package build format for example the package build format for Arch Linux in your world or uh there's a Arch Linux in your world or uh there's a Arch Linux in your world or uh there's a team that handles this in Nixos, like team that handles this in Nixos, like team that handles this in Nixos, like what are the set of helpers that allow what are the set of helpers that allow what are the set of helpers that allow you to specify a Nix derivation with the you to specify a Nix derivation with the you to specify a Nix derivation with the right cargo hash and things like that.

  29. right cargo hash and things like that. right cargo hash and things like that. We have a similar set of things going on We have a similar set of things going on We have a similar set of things going on in our build system sort of tooling in our build system sort of tooling in our build system sort of tooling team. Uh and their view they they are team. Uh and their view they they are team. Uh and their view they they are looking at how can we build a common looking at how can we build a common looking at how can we build a common grammar for building software grammar for building software grammar for building software irrespective of what the output type is. irrespective of what the output type is. irrespective of what the output type is. Noting that most of the time you are Noting that most of the time you are Noting that most of the time you are still cloning some code building the still cloning some code building the still cloning some code building the code getting a binary and then shipping code getting a binary and then shipping code getting a binary and then shipping it in some it in some it in some container format whether that's a container format whether that's a container format whether that's a tarball or a deb or a OCI image or tarball or a deb or a OCI image or tarball or a deb or a OCI image or whatever. whatever. whatever. Do you like do anything extra to like give some insurance for the Rust like give some insurance for the Rust packages like because [clears throat] packages like because [clears throat] packages like because [clears throat] you mentioned crates IO and it's it's you mentioned crates IO and it's it's you mentioned crates IO and it's it's very similar to the to the other like very similar to the to the other like very similar to the to the other like packaging ecosystems. It's vulnerable in packaging ecosystems. It's vulnerable in packaging ecosystems. It's vulnerable in the same ways. So do you like do some the same ways. So do you like do some the same ways. So do you like do some like extra things? like extra things? like extra things? >> Um I don't know sbomb generation. >> Um I don't know sbomb generation. >> Um I don't know sbomb generation. >> Yeah. some uh checking hashes or >> Yeah. some uh checking hashes or >> Yeah. some uh checking hashes or reproducible builds maybe um can you reproducible builds maybe um can you reproducible builds maybe um can you maybe talk about that a little?

  30. maybe talk about that a little? maybe talk about that a little? >> We don't have a really strong >> We don't have a really strong >> We don't have a really strong reproducible builds story for the reproducible builds story for the reproducible builds story for the archive in the traditional sense. Uh archive in the traditional sense. Uh archive in the traditional sense. Uh packages are all built in you know packages are all built in you know packages are all built in you know offline offline offline ephemeral instances that can only you ephemeral instances that can only you ephemeral instances that can only you that can only pull from known sources. that can only pull from known sources. that can only pull from known sources. So they are uh not reproducible in the So they are uh not reproducible in the So they are uh not reproducible in the kind of like reproducible build brand kind of like reproducible build brand kind of like reproducible build brand sense but uh they are deterministic for sense but uh they are deterministic for sense but uh they are deterministic for sure. And from an sbond perspective we sure. And from an sbond perspective we sure. And from an sbond perspective we have just in this cycle implemented have just in this cycle implemented have just in this cycle implemented cargo auditable for all of the deb all cargo auditable for all of the deb all cargo auditable for all of the deb all of the software packaged as devs in the of the software packaged as devs in the of the software packaged as devs in the archive which means you essentially get archive which means you essentially get archive which means you essentially get like a little embedded sbomb of all the like a little embedded sbomb of all the like a little embedded sbomb of all the crates and versions that we used to crates and versions that we used to crates and versions that we used to build that software. So that change build that software. So that change build that software. So that change happened a couple of months ago in the happened a couple of months ago in the happened a couple of months ago in the archive which means every time a package archive which means every time a package archive which means every time a package gets rebuilt now it will get or rest gets rebuilt now it will get or rest gets rebuilt now it will get or rest package gets rebuilt cargo will be part package gets rebuilt cargo will be part package gets rebuilt cargo will be part of that of that of that >> that's pretty good like um I was not >> that's pretty good like um I was not >> that's pretty good like um I was not aware of that we should probably do the aware of that we should probably do the aware of that we should probably do the same for our Linux as well cargo same for our Linux as well cargo same for our Linux as well cargo autoable is just really really nice tool autoable is just really really nice tool autoable is just really really nice tool nice so u there's one question nice so u there's one question nice so u there's one question uh do you see rust replacing libraries uh do you see rust replacing libraries uh do you see rust replacing libraries called by and called by C binaries.

  31. called by and called by C binaries. called by and called by C binaries. Do you mean like shared libraries maybe? Do you mean like shared libraries maybe? Do you mean like shared libraries maybe? I don't know. I don't know. I don't know. >> I mean, I think Rust has a great Rust >> I mean, I think Rust has a great Rust >> I mean, I think Rust has a great Rust has a pretty good FFI story. Um, and in has a pretty good FFI story. Um, and in has a pretty good FFI story. Um, and in fact, we as part of the UPKI project fact, we as part of the UPKI project fact, we as part of the UPKI project have created a C library that people can have created a C library that people can have created a C library that people can call into as well. uh I don't fully call into as well. uh I don't fully call into as well. uh I don't fully understand the question but I think if understand the question but I think if understand the question but I think if the question is do I see foundational the question is do I see foundational the question is do I see foundational libraries that are written in C or other libraries that are written in C or other libraries that are written in C or other languages today being rewritten in Rust languages today being rewritten in Rust languages today being rewritten in Rust I think the answer is inevitably yes I think the answer is inevitably yes I think the answer is inevitably yes some of them right uh we've seen this uh some of them right uh we've seen this uh some of them right uh we've seen this uh a lot in the Python ecosystem so Python a lot in the Python ecosystem so Python a lot in the Python ecosystem so Python cryptography for example paidantic which cryptography for example paidantic which cryptography for example paidantic which is a scheming tool they're actually all is a scheming tool they're actually all is a scheming tool they're actually all just Rust under the hood makes perfect just Rust under the hood makes perfect just Rust under the hood makes perfect sense like why not have Rust back your sense like why not have Rust back your sense like why not have Rust back your cryptographic primitives and have a very cryptographic primitives and have a very cryptographic primitives and have a very nice way to call into it from Python and nice way to call into it from Python and nice way to call into it from Python and I think it's all just about using the I think it's all just about using the I think it's all just about using the right tools for the job at the end of right tools for the job at the end of right tools for the job at the end of the day. the day. the day. >> There's also one additional point uh >> There's also one additional point uh >> There's also one additional point uh which is which is which is AI is getting to a point where things AI is getting to a point where things AI is getting to a point where things are getting easier. So do you see like are getting easier. So do you see like are getting easier. So do you see like any like any possibility of using LLM to any like any possibility of using LLM to any like any possibility of using LLM to do C to Rust migrations in the future do C to Rust migrations in the future do C to Rust migrations in the future maybe?

  32. maybe? maybe? >> Yeah, I think so. I think Rust is really >> Yeah, I think so. I think Rust is really >> Yeah, I think so. I think Rust is really nicely positioned for the agentic era nicely positioned for the agentic era nicely positioned for the agentic era mostly because the compiler can be so mostly because the compiler can be so mostly because the compiler can be so complainy, right? Like it it almost it's complainy, right? Like it it almost it's complainy, right? Like it it almost it's a it's a free set of guardrails for your a it's a free set of guardrails for your a it's a free set of guardrails for your agent in a sense. The compiler isn't agent in a sense. The compiler isn't agent in a sense. The compiler isn't going to isn't going to let the agent going to isn't going to let the agent going to isn't going to let the agent make sloppy memory safety mistakes. So I make sloppy memory safety mistakes. So I make sloppy memory safety mistakes. So I think my experience of using Rust with think my experience of using Rust with think my experience of using Rust with agents has been very positive agents has been very positive agents has been very positive uh on the kind of mechanical rewrites. I uh on the kind of mechanical rewrites. I uh on the kind of mechanical rewrites. I think the answer is yes. I mean you may think the answer is yes. I mean you may think the answer is yes. I mean you may well have followed the story about bun well have followed the story about bun well have followed the story about bun the javascript runtime that was the javascript runtime that was the javascript runtime that was rewritten like a million lines of zig to rewritten like a million lines of zig to rewritten like a million lines of zig to rust and there was a great write up rust and there was a great write up rust and there was a great write up about that uh and my understanding is about that uh and my understanding is about that uh and my understanding is the core code is now shipping that the core code is now shipping that the core code is now shipping that runtime. So this is in the space of like runtime. So this is in the space of like runtime. So this is in the space of like a couple of weeks essentially one guy a couple of weeks essentially one guy a couple of weeks essentially one guy and a pile of agents rewrote a million and a pile of agents rewrote a million and a pile of agents rewrote a million lines of Zigg into Rust and then shipped lines of Zigg into Rust and then shipped lines of Zigg into Rust and then shipped it into claw code to be used by I don't it into claw code to be used by I don't it into claw code to be used by I don't know how many users lots right uh and know how many users lots right uh and know how many users lots right uh and sure the to start with I I saw lots of sure the to start with I I saw lots of sure the to start with I I saw lots of commentary saying oh my god well the commentary saying oh my god well the commentary saying oh my god well the first pass was horrible the rust code first pass was horrible the rust code first pass was horrible the rust code had loads of unsafe and it but if you had loads of unsafe and it but if you had loads of unsafe and it but if you read about how it was done they read about how it was done they read about how it was done they essentially did a mechanical file by essentially did a mechanical file by essentially did a mechanical file by file rewrite which necessitated a bunch file rewrite which necessitated a bunch file rewrite which necessitated a bunch of unsafe and scariness but over the of unsafe and scariness but over the of unsafe and scariness but over the course of a couple of weeks with some course of a couple of weeks with some course of a couple of weeks with some rules and bots of iteration, it's turned rules and bots of iteration, it's turned rules and bots of iteration, it's turned into a pretty well tested RS codebase into a pretty well tested RS codebase into a pretty well tested RS codebase that has all the properties of a Rust that has all the properties of a Rust that has all the properties of a Rust code basease you'd expect. And I think code basease you'd expect. And I think code basease you'd expect. And I think we're actually working with a university we're actually working with a university we're actually working with a university here in the UK on a project which is here in the UK on a project which is here in the UK on a project which is going to start shortly which is all going to start shortly which is all going to start shortly which is all about and I'll I'll post more details on about and I'll I'll post more details on about and I'll I'll post more details on this when we announce it formally, but this when we announce it formally, but this when we announce it formally, but essentially pairing LLMs with formal

  33. essentially pairing LLMs with formal essentially pairing LLMs with formal methods. methods. methods. So have LM rewrite existing C code into So have LM rewrite existing C code into So have LM rewrite existing C code into Rust but use formal methods to Rust but use formal methods to Rust but use formal methods to essentially prove that the software essentially prove that the software essentially prove that the software behaves the same um ideally without the behaves the same um ideally without the behaves the same um ideally without the abs you know with the absence of certain abs you know with the absence of certain abs you know with the absence of certain classes of bug. So I think it will classes of bug. So I think it will classes of bug. So I think it will happen. I think we've already seen it. happen. I think we've already seen it. happen. I think we've already seen it. We've seen a couple of massive rewrites. We've seen a couple of massive rewrites. We've seen a couple of massive rewrites. There's a there's a bunch of folks doing There's a there's a bunch of folks doing There's a there's a bunch of folks doing a Postgress rewrite in Rust which has a Postgress rewrite in Rust which has a Postgress rewrite in Rust which has been gaining some traction recently. Uh, been gaining some traction recently. Uh, been gaining some traction recently. Uh, I think lots of them are just I think lots of them are just I think lots of them are just experiments and I don't all I don't experiments and I don't all I don't experiments and I don't all I don't think we should just, you know, everyone think we should just, you know, everyone think we should just, you know, everyone should just down tools and rewrite should just down tools and rewrite should just down tools and rewrite everything in Rust with with LLMs everything in Rust with with LLMs everything in Rust with with LLMs because we can. But I think it puts it because we can. But I think it puts it because we can. But I think it puts it back on the table for a bunch of back on the table for a bunch of back on the table for a bunch of projects who have got to a point where projects who have got to a point where projects who have got to a point where that would have just been infeasible that would have just been infeasible that would have just been infeasible before, infeasibly expensive. before, infeasibly expensive. before, infeasibly expensive. It's now an option to them if it is done It's now an option to them if it is done It's now an option to them if it is done with discipline and planning and care with discipline and planning and care with discipline and planning and care ultimately. Do you are you like a do you use like Do you are you like a do you use like these um like LLM approaches as part of these um like LLM approaches as part of these um like LLM approaches as part of the Rust rewrites right now or the Rust rewrites right now or the Rust rewrites right now or not really like is this something new to not really like is this something new to not really like is this something new to you like new to these projects because I you like new to these projects because I you like new to these projects because I know that they existed for a long time know that they existed for a long time know that they existed for a long time um like especially the the core utils um like especially the the core utils um like especially the the core utils one is it existed before this agentic one is it existed before this agentic one is it existed before this agentic era so I'm not sure if they actually use era so I'm not sure if they actually use era so I'm not sure if they actually use it but do you use with with the other it but do you use with with the other it but do you use with with the other like rewrites or like the new like rewrites or like the new like rewrites or like the new implementations.

  34. implementations. implementations. >> I mean, we use it a lot in Canon. We're >> I mean, we use it a lot in Canon. We're >> I mean, we use it a lot in Canon. We're like everybody else still probably at like everybody else still probably at like everybody else still probably at the start of a very long journey. Uh, the start of a very long journey. Uh, the start of a very long journey. Uh, and my I wrote about this I wrote an and my I wrote about this I wrote an and my I wrote about this I wrote an article for anyone who cares called the article for anyone who cares called the article for anyone who cares called the future of AI in Auntu where I talked a future of AI in Auntu where I talked a future of AI in Auntu where I talked a bit about Abuntu and AI and what's going bit about Abuntu and AI and what's going bit about Abuntu and AI and what's going to happen from a product perspective but to happen from a product perspective but to happen from a product perspective but also just outline our approach on it in also just outline our approach on it in also just outline our approach on it in terms of how we incentivize people to terms of how we incentivize people to terms of how we incentivize people to use AI. We are not going down the like use AI. We are not going down the like use AI. We are not going down the like measuring people by token spend token measuring people by token spend token measuring people by token spend token maxing madness maxing madness maxing madness hopefully for all of the obvious reasons hopefully for all of the obvious reasons hopefully for all of the obvious reasons which is that that's a terrible idea and which is that that's a terrible idea and which is that that's a terrible idea and does not motivate good outcomes but we does not motivate good outcomes but we does not motivate good outcomes but we are trying to equip our engineers with are trying to equip our engineers with are trying to equip our engineers with the best tools that we can and encourage the best tools that we can and encourage the best tools that we can and encourage them to basically become professionals them to basically become professionals them to basically become professionals at using them. I am incredibly at using them. I am incredibly at using them. I am incredibly optimistic about the future of optimistic about the future of optimistic about the future of engineering with agents. But that engineering with agents. But that engineering with agents. But that doesn't mean that I think you can just doesn't mean that I think you can just doesn't mean that I think you can just one-shot all the things and expect good one-shot all the things and expect good one-shot all the things and expect good outcome. I think there is still a huge outcome. I think there is still a huge outcome. I think there is still a huge need for engineering judgment, right? need for engineering judgment, right? need for engineering judgment, right? And also understanding the problem And also understanding the problem And also understanding the problem you're solving in the first place. I you're solving in the first place. I you're solving in the first place. I think uh much more now a good software think uh much more now a good software think uh much more now a good software engineer is going to be someone or an engineer is going to be someone or an engineer is going to be someone or an excellent software engineer is going to excellent software engineer is going to excellent software engineer is going to be someone who is more at the be someone who is more at the be someone who is more at the intersection of like grassroots intersection of like grassroots intersection of like grassroots engineering skills and product because engineering skills and product because engineering skills and product because writing code is going to become free in writing code is going to become free in writing code is going to become free in quotes. It's not free. You have to pay quotes. It's not free. You have to pay quotes. It's not free. You have to pay for inference and all those things. But for inference and all those things. But for inference and all those things. But it's certainly much less expensive than it's certainly much less expensive than it's certainly much less expensive than it used to be hiring a team of humans to it used to be hiring a team of humans to it used to be hiring a team of humans to do it. So given the right product brief do it. So given the right product brief do it. So given the right product brief and the right engineering rigor in and the right engineering rigor in and the right engineering rigor in structuring something, writing code is structuring something, writing code is structuring something, writing code is easy now.

  35. easy now. easy now. But you still have to come up with the But you still have to come up with the But you still have to come up with the right problem to solve and the right right problem to solve and the right right problem to solve and the right structure and all those things. Right? structure and all those things. Right? structure and all those things. Right? So I I think people who perhaps have So I I think people who perhaps have So I I think people who perhaps have done less thinking on the product side done less thinking on the product side done less thinking on the product side and have just been traditional kind of and have just been traditional kind of and have just been traditional kind of programmers rather than engineers will programmers rather than engineers will programmers rather than engineers will really struggle in the agentic era. really struggle in the agentic era. really struggle in the agentic era. Whereas those who have really gone deep Whereas those who have really gone deep Whereas those who have really gone deep on architecture and engineering on architecture and engineering on architecture and engineering principles will just see it as a big principles will just see it as a big principles will just see it as a big enabler for them a kind of force enabler for them a kind of force enabler for them a kind of force multiplier. There's one comment in the in the chat There's one comment in the in the chat that is about it's a bit it's a bit a that is about it's a bit it's a bit a that is about it's a bit it's a bit a bit of a negative one. Um he says, "AI bit of a negative one. Um he says, "AI bit of a negative one. Um he says, "AI took my job and I'm unemployed. Not even took my job and I'm unemployed. Not even took my job and I'm unemployed. Not even Rust can save me." So do you have any um Rust can save me." So do you have any um Rust can save me." So do you have any um any tips for for these like new new Rust any tips for for these like new new Rust any tips for for these like new new Rust developers that is just came to this developers that is just came to this developers that is just came to this like agentic era and then they want to like agentic era and then they want to like agentic era and then they want to like use Rust and they're a bit like like use Rust and they're a bit like like use Rust and they're a bit like let's say pessimistic about the future let's say pessimistic about the future let's say pessimistic about the future of programming. Do you have any kind of of programming. Do you have any kind of of programming. Do you have any kind of like starter tips or any anything that like starter tips or any anything that like starter tips or any anything that you want to say to them actually? Yeah, you want to say to them actually? Yeah, you want to say to them actually? Yeah, I often hear people say things like um I often hear people say things like um I often hear people say things like um LLMs are going to ruin learning.

  36. LLMs are going to ruin learning. LLMs are going to ruin learning. I have had the opposite experience. I I have had the opposite experience. I I have had the opposite experience. I think you could use LLMs in such a way think you could use LLMs in such a way think you could use LLMs in such a way that you never learn anything if you that you never learn anything if you that you never learn anything if you just ask it to do your job for you. But just ask it to do your job for you. But just ask it to do your job for you. But I've built a couple of things with with I've built a couple of things with with I've built a couple of things with with LLM's. Uh one of which I think is LLM's. Uh one of which I think is LLM's. Uh one of which I think is probably one of the best pieces of probably one of the best pieces of probably one of the best pieces of engineering I've ever done. And it used engineering I've ever done. And it used engineering I've ever done. And it used a whole bunch of things which I've a whole bunch of things which I've a whole bunch of things which I've talked about and heard talked about for talked about and heard talked about for talked about and heard talked about for years but never done myself. and I use years but never done myself. and I use years but never done myself. and I use the LLM as a kind of, the LLM as a kind of, the LLM as a kind of, you know, encyclopedia partner to kind you know, encyclopedia partner to kind you know, encyclopedia partner to kind of navigate through those decisions and of navigate through those decisions and of navigate through those decisions and and learn a bunch about the trade-offs and learn a bunch about the trade-offs and learn a bunch about the trade-offs along the way. I think for people who along the way. I think for people who along the way. I think for people who are worried about losing their job or are worried about losing their job or are worried about losing their job or who have lost their job, I guess the who have lost their job, I guess the who have lost their job, I guess the question you it obviously always needs question you it obviously always needs question you it obviously always needs more context, but I would say focus on more context, but I would say focus on more context, but I would say focus on the core engineering skills. At the end the core engineering skills. At the end the core engineering skills. At the end of the day, the LLM is only going to ask of the day, the LLM is only going to ask of the day, the LLM is only going to ask you to write what you ask it to write. you to write what you ask it to write. you to write what you ask it to write. [clears throat] Sometimes they go off [clears throat] Sometimes they go off [clears throat] Sometimes they go off and do things you didn't ask them to do, and do things you didn't ask them to do, and do things you didn't ask them to do, but the point is you have to be able to but the point is you have to be able to but the point is you have to be able to spot that, too. And so I still believe spot that, too. And so I still believe spot that, too. And so I still believe very firmly in understanding engineering very firmly in understanding engineering very firmly in understanding engineering principles like all of those data principles like all of those data principles like all of those data structures and algorithms classes and structures and algorithms classes and structures and algorithms classes and distributed systems classes that people distributed systems classes that people distributed systems classes that people take they're still important if in fact take they're still important if in fact take they're still important if in fact if anything they're more important than if anything they're more important than if anything they're more important than ever right and so having a firm ever right and so having a firm ever right and so having a firm understanding of the seams of software understanding of the seams of software understanding of the seams of software the contracts the interfaces command the contracts the interfaces command the contracts the interfaces command lines APIs all of that stuff at least lines APIs all of that stuff at least lines APIs all of that stuff at least with today's models in my mind still with today's models in my mind still with today's models in my mind still requires a bunch of human judgment and requires a bunch of human judgment and requires a bunch of human judgment and so I think that's the place to upskill so I think that's the place to upskill so I think that's the place to upskill It's you think of it as you you can have It's you think of it as you you can have It's you think of it as you you can have the LLM do the painting by numbers but the LLM do the painting by numbers but the LLM do the painting by numbers but you still have to get the outline in you still have to get the outline in you still have to get the outline in place right um place right um place right um >> yeah I totally agree with that I mean I >> yeah I totally agree with that I mean I >> yeah I totally agree with that I mean I think now with the with the acceleration

  37. think now with the with the acceleration think now with the with the acceleration of of these LLMs and now we use agentic of of these LLMs and now we use agentic of of these LLMs and now we use agentic programming especially in Rust I think programming especially in Rust I think programming especially in Rust I think the the the having the knowledge of Rust the the the having the knowledge of Rust the the the having the knowledge of Rust concepts like deeper understanding is is concepts like deeper understanding is is concepts like deeper understanding is is way more important way more important way more important than before because now you can write than before because now you can write than before because now you can write rust using LLMs but you cannot really rust using LLMs but you cannot really rust using LLMs but you cannot really judge the code if you don't know how the judge the code if you don't know how the judge the code if you don't know how the borrow borrow checker works how the borrow borrow checker works how the borrow borrow checker works how the lifetimes work and and so on so I think lifetimes work and and so on so I think lifetimes work and and so on so I think um you know having the the base um you know having the the base um you know having the the base understanding and u the knowledge is is understanding and u the knowledge is is understanding and u the knowledge is is way more important now way more important now way more important now >> I definitely agree with that >> I definitely agree with that >> I definitely agree with that all right all right all right so um I want to ask about like what are so um I want to ask about like what are so um I want to ask about like what are you funding right now and what is you funding right now and what is you funding right now and what is prioritized next in in Canonicle and prioritized next in in Canonicle and prioritized next in in Canonicle and what should we expect from Ubuntu going what should we expect from Ubuntu going what should we expect from Ubuntu going from now [snorts] so the mo the main from now [snorts] so the mo the main from now [snorts] so the mo the main piece of funded work we're doing at the piece of funded work we're doing at the piece of funded work we're doing at the moment is with the trifect foundation on moment is with the trifect foundation on moment is with the trifect foundation on NTPDRS that work is just starting we've NTPDRS that work is just starting we've NTPDRS that work is just starting we've been talking about it for a few months been talking about it for a few months been talking about it for a few months and you know the the majority of that and you know the the majority of that and you know the the majority of that work will start happening over the work will start happening over the work will start happening over the coming weeks upki um I think we're coming weeks upki um I think we're coming weeks upki um I think we're pretty much at the end of that first pretty much at the end of that first pretty much at the end of that first round of funding we would need to have round of funding we would need to have round of funding we would need to have you know more conversation with the you know more conversation with the you know more conversation with the Russell project about where we want to Russell project about where we want to Russell project about where we want to go. There's been some interest from go. There's been some interest from go. There's been some interest from another distribution um at least passing another distribution um at least passing another distribution um at least passing interest on GitHub discussions and interest on GitHub discussions and interest on GitHub discussions and things. We joined the Russ Foundation as things. We joined the Russ Foundation as things. We joined the Russ Foundation as gold members, which is a kind of gold members, which is a kind of gold members, which is a kind of upfront, you know, contribution of upfront, you know, contribution of upfront, you know, contribution of $150,000 in general to support the Russ

  38. $150,000 in general to support the Russ $150,000 in general to support the Russ project. Uh, and as a part of that, I project. Uh, and as a part of that, I project. Uh, and as a part of that, I get to attend the board meetings and get to attend the board meetings and get to attend the board meetings and have opinions, which I think which I'm have opinions, which I think which I'm have opinions, which I think which I'm trying to use to steer it towards the trying to use to steer it towards the trying to use to steer it towards the things that Colonel cares about, of things that Colonel cares about, of things that Colonel cares about, of course. And we also joined the Trifecta course. And we also joined the Trifecta course. And we also joined the Trifecta Tech Foundation as gold members, which Tech Foundation as gold members, which Tech Foundation as gold members, which is a kind of 40,000 euros a year is a kind of 40,000 euros a year is a kind of 40,000 euros a year commitment basically to help them with commitment basically to help them with commitment basically to help them with the increased maintenance load that they the increased maintenance load that they the increased maintenance load that they will undoubtedly experience as a result will undoubtedly experience as a result will undoubtedly experience as a result of many thousands more people using of many thousands more people using of many thousands more people using their stuff because we turned it on by their stuff because we turned it on by their stuff because we turned it on by default. So that's that's kind of see it default. So that's that's kind of see it default. So that's that's kind of see it as a bit of a almost like a portfolio of as a bit of a almost like a portfolio of as a bit of a almost like a portfolio of investments across the ecosystem. And investments across the ecosystem. And investments across the ecosystem. And that doesn't have to be all. That's just that doesn't have to be all. That's just that doesn't have to be all. That's just the set of ideas that we've committed to the set of ideas that we've committed to the set of ideas that we've committed to for this cycle. Um I expect there'll be for this cycle. Um I expect there'll be for this cycle. Um I expect there'll be more. We what the next the next big more. We what the next the next big more. We what the next the next big thing as a category that we'll look into thing as a category that we'll look into thing as a category that we'll look into I think is compression algorithms I think is compression algorithms I think is compression algorithms >> particularly particularly ones where we >> particularly particularly ones where we >> particularly particularly ones where we can get an efficiency [clears throat] can get an efficiency [clears throat] can get an efficiency [clears throat] boost because if you think at the scale boost because if you think at the scale boost because if you think at the scale of Abuntu if we could make a very common of Abuntu if we could make a very common of Abuntu if we could make a very common compression algorithm 3 or 4% more compression algorithm 3 or 4% more compression algorithm 3 or 4% more efficient that could actually have a efficient that could actually have a efficient that could actually have a meaningful impact on power consumption meaningful impact on power consumption meaningful impact on power consumption worldwide and so you end up with this worldwide and so you end up with this worldwide and so you end up with this like lovely side effect of just making like lovely side effect of just making like lovely side effect of just making the software faster and nicer to use but the software faster and nicer to use but the software faster and nicer to use but also having a kind of wider effect. So, also having a kind of wider effect. So, also having a kind of wider effect. So, we're looking at shipping BZ Bzip 2 in we're looking at shipping BZ Bzip 2 in we're looking at shipping BZ Bzip 2 in Rust by default this cycle and we're Rust by default this cycle and we're Rust by default this cycle and we're investigating Z standard RS zib uh and investigating Z standard RS zib uh and investigating Z standard RS zib uh and uh there's another one which I can't uh there's another one which I can't uh there's another one which I can't quite remember right now but yeah so quite remember right now but yeah so quite remember right now but yeah so that's the next kind of category and that's the next kind of category and that's the next kind of category and there there's some interesting there there's some interesting there there's some interesting trade-offs there. So one of them I think trade-offs there. So one of them I think trade-offs there. So one of them I think is Z standard is safer and does catch a is Z standard is safer and does catch a is Z standard is safer and does catch a certain kind of unsafe operation that

  39. certain kind of unsafe operation that certain kind of unsafe operation that the current library will allow but it's the current library will allow but it's the current library will allow but it's also slower and you could turn off the also slower and you could turn off the also slower and you could turn off the safety checks and then it goes faster safety checks and then it goes faster safety checks and then it goes faster but do we want to turn off the safety but do we want to turn off the safety but do we want to turn off the safety checks and so we kind of have to make checks and so we kind of have to make checks and so we kind of have to make some decisions about what the set of some decisions about what the set of some decisions about what the set of defaults are that we present to our defaults are that we present to our defaults are that we present to our users. So you said uh Zlib and Bzip 2, right? So you said uh Zlib and Bzip 2, right? These These These >> and Z standard RS as well. Yeah, >> and Z standard RS as well. Yeah, >> and Z standard RS as well. Yeah, >> Z standard. Okay. And is were these like >> Z standard. Okay. And is were these like >> Z standard. Okay. And is were these like existing uh Rust projects before or you existing uh Rust projects before or you existing uh Rust projects before or you just Okay. You basically funding these just Okay. You basically funding these just Okay. You basically funding these projects. projects. projects. >> We haven't Canonical is not responsible >> We haven't Canonical is not responsible >> We haven't Canonical is not responsible for any of the rewrites in terms of for any of the rewrites in terms of for any of the rewrites in terms of actually taking the upstream project and actually taking the upstream project and actually taking the upstream project and rewriting it in this kind of campaign. rewriting it in this kind of campaign. rewriting it in this kind of campaign. So far up UPKI didn't exist before and So far up UPKI didn't exist before and So far up UPKI didn't exist before and we funded it, but we're not responsible we funded it, but we're not responsible we funded it, but we're not responsible for much of the code. We're working with for much of the code. We're working with for much of the code. We're working with the Russell maintainers who are writing the Russell maintainers who are writing the Russell maintainers who are writing that code. that code. that code. >> Yeah. >> Yeah. >> Yeah. >> Mhm. Okay. Got it. So packaging is is >> Mhm. Okay. Got it. So packaging is is >> Mhm. Okay. Got it. So packaging is is the next focus for Rust the next focus for Rust the next focus for Rust >> and we do write Rust code. We have to >> and we do write Rust code. We have to >> and we do write Rust code. We have to write we're writing we're doing some write we're writing we're doing some write we're writing we're doing some work on boot at the moment. Uh there's work on boot at the moment. Uh there's work on boot at the moment. Uh there's some work on FPGAAS and controlling them some work on FPGAAS and controlling them some work on FPGAAS and controlling them from Linux. There's there's a compositor from Linux. There's there's a compositor from Linux. There's there's a compositor that is getting some Rust work. It's not that is getting some Rust work. It's not that is getting some Rust work. It's not that we don't write Rust, it's that the that we don't write Rust, it's that the that we don't write Rust, it's that the these kind of big rewrites, the things these kind of big rewrites, the things these kind of big rewrites, the things that are making the headlines, they're that are making the headlines, they're that are making the headlines, they're not they're not our Rust code. We are not they're not our Rust code. We are not they're not our Rust code. We are playing the role of the distribution, playing the role of the distribution, playing the role of the distribution, which is to integrate them into Auntu which is to integrate them into Auntu which is to integrate them into Auntu and ship them.

  40. and ship them. and ship them. >> Mhm. >> Mhm. >> Mhm. So when it comes to like shipping apps So when it comes to like shipping apps So when it comes to like shipping apps in Ubuntu, snaps really come to mind in Ubuntu, snaps really come to mind in Ubuntu, snaps really come to mind because they're like very closely because they're like very closely because they're like very closely associated with Ubuntu. Do you see some associated with Ubuntu. Do you see some associated with Ubuntu. Do you see some some rust happening there or like how do some rust happening there or like how do some rust happening there or like how do you see it like the the general snap you see it like the the general snap you see it like the the general snap ecosystem right now? ecosystem right now? ecosystem right now? >> I mean snaps do work on other dros. I >> I mean snaps do work on other dros. I >> I mean snaps do work on other dros. I have personally run them for years on have personally run them for years on have personally run them for years on arch linux. I was an arch user for 10 arch linux. I was an arch user for 10 arch linux. I was an arch user for 10 years or so when I used to run snaps on years or so when I used to run snaps on years or so when I used to run snaps on there. Uh snaps can also run on suss. there. Uh snaps can also run on suss. there. Uh snaps can also run on suss. They can run on nyxos through a very They can run on nyxos through a very They can run on nyxos through a very very creative approach. um we actually very creative approach. um we actually very creative approach. um we actually employ people whose job it is employ people whose job it is employ people whose job it is specifically to make snaps and snapd run specifically to make snaps and snapd run specifically to make snaps and snapd run properly on other distributions. Um that properly on other distributions. Um that properly on other distributions. Um that said clearly mostly it's Ubuntu and I said clearly mostly it's Ubuntu and I said clearly mostly it's Ubuntu and I think think think there are a lot of mixed opinions out there are a lot of mixed opinions out there are a lot of mixed opinions out there about snaps and some of them are there about snaps and some of them are there about snaps and some of them are totally valid. I think canonical maybe totally valid. I think canonical maybe totally valid. I think canonical maybe you know years ago maybe went a bit soon you know years ago maybe went a bit soon you know years ago maybe went a bit soon on the graphical snaps and it was a bit on the graphical snaps and it was a bit on the graphical snaps and it was a bit bumpy for people and it left a bad bumpy for people and it left a bad bumpy for people and it left a bad taste. But there really is a category of taste. But there really is a category of taste. But there really is a category of software software software uh for which snaps are just a match made uh for which snaps are just a match made uh for which snaps are just a match made in heaven. Particularly low-level kind in heaven. Particularly low-level kind in heaven. Particularly low-level kind of systems agents, observability agents, of systems agents, observability agents, of systems agents, observability agents, those kind of things. It's great for those kind of things. It's great for those kind of things. It's great for browsers these days with the kind of browsers these days with the kind of browsers these days with the kind of increased sandboxing capability. It also increased sandboxing capability. It also increased sandboxing capability. It also allows if you think about the challenge allows if you think about the challenge allows if you think about the challenge that we have, which is that we release a that we have, which is that we release a that we have, which is that we release a long-term support distribution every two long-term support distribution every two long-term support distribution every two years that is going to be supported for years that is going to be supported for years that is going to be supported for 15 years. Like sometimes backporting 15 years. Like sometimes backporting 15 years. Like sometimes backporting things and making stuff work on old things and making stuff work on old things and making stuff work on old versions can be really hard. And because versions can be really hard. And because versions can be really hard. And because Snaps bring with them a runtime, it

  41. Snaps bring with them a runtime, it Snaps bring with them a runtime, it gives us a bit of a superpower and we gives us a bit of a superpower and we gives us a bit of a superpower and we can bring very very modern capabilities can bring very very modern capabilities can bring very very modern capabilities to very old Linuxes very easily because to very old Linuxes very easily because to very old Linuxes very easily because snaps. And so they they solve a bunch of snaps. And so they they solve a bunch of snaps. And so they they solve a bunch of different problems. It's been bumpy different problems. It's been bumpy different problems. It's been bumpy along the way, but it is a very along the way, but it is a very along the way, but it is a very interesting format. The build language interesting format. The build language interesting format. The build language like the way the the Snapcraft language, like the way the the Snapcraft language, like the way the the Snapcraft language, which is now portable across Rockcraft which is now portable across Rockcraft which is now portable across Rockcraft and Charmcraft and others, I think is and Charmcraft and others, I think is and Charmcraft and others, I think is laid out very nicely. And if you are laid out very nicely. And if you are laid out very nicely. And if you are interested in contributing to iuntu, interested in contributing to iuntu, interested in contributing to iuntu, that is a way to contribute to ibuntu. that is a way to contribute to ibuntu. that is a way to contribute to ibuntu. Like getting a snap in the snap store is Like getting a snap in the snap store is Like getting a snap in the snap store is contributing to ibuntu. Like you don't contributing to ibuntu. Like you don't contributing to ibuntu. Like you don't have to have us in the loop to have have to have us in the loop to have have to have us in the loop to have something that anybody on the other something that anybody on the other something that anybody on the other planet can install from the ibuntu app planet can install from the ibuntu app planet can install from the ibuntu app center. Whereas if you want to land center. Whereas if you want to land center. Whereas if you want to land something in the archive, you kind of do something in the archive, you kind of do something in the archive, you kind of do have to work with the ibuntu community, have to work with the ibuntu community, have to work with the ibuntu community, right? And have it vetted and all those right? And have it vetted and all those right? And have it vetted and all those kind of things. Um and it allows you, kind of things. Um and it allows you, kind of things. Um and it allows you, for example, Jet Brains. Jet Brains for example, Jet Brains. Jet Brains for example, Jet Brains. Jet Brains distributes its IDEs as snaps for iuntu. distributes its IDEs as snaps for iuntu. distributes its IDEs as snaps for iuntu. And it does that because it allows Jet And it does that because it allows Jet And it does that because it allows Jet Brains to take control of the release Brains to take control of the release Brains to take control of the release life cycle. It allows them to ship one life cycle. It allows them to ship one life cycle. It allows them to ship one version of for example Rust Rover that version of for example Rust Rover that version of for example Rust Rover that works on 2604, 2404, 2204 works on 2604, 2404, 2204 works on 2604, 2404, 2204 it as a mechanism to enable software it as a mechanism to enable software it as a mechanism to enable software vendors to distribute software on the vendors to distribute software on the vendors to distribute software on the world's most deployed platform. It works world's most deployed platform. It works world's most deployed platform. It works very well. it, but because there is very well. it, but because there is very well. it, but because there is security confinement, it's sometimes security confinement, it's sometimes security confinement, it's sometimes hard. And I don't know that we're going hard. And I don't know that we're going hard. And I don't know that we're going to be able to make that easy always.

  42. to be able to make that easy always. to be able to make that easy always. Like, it's just hard, right? Like Like, it's just hard, right? Like Like, it's just hard, right? Like there's always a trade-off when it comes there's always a trade-off when it comes there's always a trade-off when it comes to security. And so, there's definitely to security. And so, there's definitely to security. And so, there's definitely engineering work that we can do to make engineering work that we can do to make engineering work that we can do to make it better. it better. it better. Uh, but I do believe quite strongly in Uh, but I do believe quite strongly in Uh, but I do believe quite strongly in the packaging format. I like it's a the packaging format. I like it's a the packaging format. I like it's a strange thing to have to get religious strange thing to have to get religious strange thing to have to get religious over, but I do think it is a it's an over, but I do think it is a it's an over, but I do think it is a it's an interesting set of technologies that interesting set of technologies that interesting set of technologies that solve a set of problems that not many solve a set of problems that not many solve a set of problems that not many people have that it is a set of problems people have that it is a set of problems people have that it is a set of problems that we have. that we have. that we have. >> Yeah. I created one snap package I think >> Yeah. I created one snap package I think >> Yeah. I created one snap package I think and I got stuck because I needed some and I got stuck because I needed some and I got stuck because I needed some permissions to read the the kernel state permissions to read the the kernel state permissions to read the the kernel state or something and it was not working for or something and it was not working for or something and it was not working for me because I couldn't you know get me because I couldn't you know get me because I couldn't you know get approved or some some like permission approved or some some like permission approved or some some like permission issues. So I think that was the the most issues. So I think that was the the most issues. So I think that was the the most difficult thing for me as well. And um difficult thing for me as well. And um difficult thing for me as well. And um yeah but overall I think snaps are a yeah but overall I think snaps are a yeah but overall I think snaps are a great technology. Um, great technology. Um, great technology. Um, >> we're doing some work on that process at >> we're doing some work on that process at >> we're doing some work on that process at the moment. Um, it is possible to get the moment. Um, it is possible to get the moment. Um, it is possible to get snapped with elevated privileges, but we snapped with elevated privileges, but we snapped with elevated privileges, but we don't just hand that out to anybody. don't just hand that out to anybody. don't just hand that out to anybody. Like if someone shows up to our forum Like if someone shows up to our forum Like if someone shows up to our forum for the first time ever and says, hey, for the first time ever and says, hey, for the first time ever and says, hey, can I have classic consignment for this can I have classic consignment for this can I have classic consignment for this confinement for this thing that I just confinement for this thing that I just confinement for this thing that I just vioded?

  43. vioded? vioded? The answer is probably no because what The answer is probably no because what The answer is probably no because what you're basically saying is, hey, can you you're basically saying is, hey, can you you're basically saying is, hey, can you give me root on every Iuntu machine that give me root on every Iuntu machine that give me root on every Iuntu machine that installs this thing? installs this thing? installs this thing? Like I don't know that people would Like I don't know that people would Like I don't know that people would necessarily want us to say yes to that. necessarily want us to say yes to that. necessarily want us to say yes to that. Do you see what I mean? Whereas if it Do you see what I mean? Whereas if it Do you see what I mean? Whereas if it you know if Jetrains comes out with you know if Jetrains comes out with you know if Jetrains comes out with another IDE another IDE another IDE for another new lo new new madeup for another new lo new new madeup for another new lo new new madeup programming language and they come to us programming language and they come to us programming language and they come to us and say hey we jet brains would like to and say hey we jet brains would like to and say hey we jet brains would like to distribute our next IDE on a bloom and distribute our next IDE on a bloom and distribute our next IDE on a bloom and we have classic confinement because we we have classic confinement because we we have classic confinement because we need it for these ex for these reasons need it for these ex for these reasons need it for these ex for these reasons the answer is going to be yes it's just the answer is going to be yes it's just the answer is going to be yes it's just we have to we have to we have to the consideration is always could this the consideration is always could this the consideration is always could this application be confined and if it can't application be confined and if it can't application be confined and if it can't be confined and we are going to give it be confined and we are going to give it be confined and we are going to give it those permissions can we establish a those permissions can we establish a those permissions can we establish a level of trust with the vendor of this level of trust with the vendor of this level of trust with the vendor of this software like we'll have to look at it. software like we'll have to look at it. software like we'll have to look at it. Is it asking for those permissions Is it asking for those permissions Is it asking for those permissions legitimately or is it something legitimately or is it something legitimately or is it something malicious? Right. It's just a process of malicious? Right. It's just a process of malicious? Right. It's just a process of establishing trust with the vendor establishing trust with the vendor establishing trust with the vendor essentially. essentially. essentially. >> Yeah. There's one question. Is it an >> Yeah. There's one question. Is it an >> Yeah. There's one question. Is it an accepted practice to release Rustbased accepted practice to release Rustbased accepted practice to release Rustbased applications as snaps on Ubuntu? applications as snaps on Ubuntu? applications as snaps on Ubuntu? >> Yeah, for sure. Yeah, I've released it >> Yeah, for sure. Yeah, I've released it >> Yeah, for sure. Yeah, I've released it for you myself. Yeah, absolutely.

  44. for you myself. Yeah, absolutely. for you myself. Yeah, absolutely. >> Mhm. Yeah. >> Mhm. Yeah. >> Mhm. Yeah. >> There is uh one Rust specific question. >> There is uh one Rust specific question. >> There is uh one Rust specific question. And how does Ubuntu deal with Rust And how does Ubuntu deal with Rust And how does Ubuntu deal with Rust libraries that have high MSRVs? >> Uh so that is another place where snaps >> Uh so that is another place where snaps are great because you can install a snap are great because you can install a snap are great because you can install a snap with a core 26 base which is based on with a core 26 base which is based on with a core 26 base which is based on the Abuntu 2604 and you can install that the Abuntu 2604 and you can install that the Abuntu 2604 and you can install that snap on any version of Abuntu even if snap on any version of Abuntu even if snap on any version of Abuntu even if it's very old. And so that's how it so it's very old. And so that's how it so it's very old. And so that's how it so each it you know for each Auntu release each it you know for each Auntu release each it you know for each Auntu release you've kind of got the set of rust you've kind of got the set of rust you've kind of got the set of rust versions that are in the distribution in versions that are in the distribution in versions that are in the distribution in the archive you know apt install rust C the archive you know apt install rust C the archive you know apt install rust C will get you a version and that's the will get you a version and that's the will get you a version and that's the version you will get for the life of version you will get for the life of version you will get for the life of that version of Abuntu and so you're that version of Abuntu and so you're that version of Abuntu and so you're kind of pinned essentially to an MSRV kind of pinned essentially to an MSRV kind of pinned essentially to an MSRV for landing something in the DRO. Uh but for landing something in the DRO. Uh but for landing something in the DRO. Uh but snaps allow you to kind of circumvent snaps allow you to kind of circumvent snaps allow you to kind of circumvent that. So you could, you know, let's say that. So you could, you know, let's say that. So you could, you know, let's say the MSRV climbs dramatically in 10 years the MSRV climbs dramatically in 10 years the MSRV climbs dramatically in 10 years time, you would be able to take that time, you would be able to take that time, you would be able to take that snap from 10 years in the future and run snap from 10 years in the future and run snap from 10 years in the future and run it on today's Abuntu because it's a snap it on today's Abuntu because it's a snap it on today's Abuntu because it's a snap and the snap brings with it the modern and the snap brings with it the modern and the snap brings with it the modern runtime. runtime. runtime. >> Mhm. Yeah, that's pretty cool.

  45. >> Mhm. Yeah, that's pretty cool. >> Mhm. Yeah, that's pretty cool. So I think that's it from my side and So I think that's it from my side and So I think that's it from my side and thank you John for all the answers and thank you John for all the answers and thank you John for all the answers and you know just taking ownership in the in you know just taking ownership in the in you know just taking ownership in the in the Rust ecosystem in in Ubuntu taking the Rust ecosystem in in Ubuntu taking the Rust ecosystem in in Ubuntu taking ownership but no pun intended. Um but uh ownership but no pun intended. Um but uh ownership but no pun intended. Um but uh thank you so much. Do you have any like thank you so much. Do you have any like thank you so much. Do you have any like additional points or anything you want additional points or anything you want additional points or anything you want to share with with us before we sign to share with with us before we sign to share with with us before we sign off? off? off? >> Uh I do not. For those of you who want >> Uh I do not. For those of you who want >> Uh I do not. For those of you who want to come meet me, I'm at Ruscom in to come meet me, I'm at Ruscom in to come meet me, I'm at Ruscom in Montreal. I'll be speaking on the first Montreal. I'll be speaking on the first Montreal. I'll be speaking on the first day doing the keynote. Uh so come and day doing the keynote. Uh so come and day doing the keynote. Uh so come and say hi. If you want to work with us, say hi. If you want to work with us, say hi. If you want to work with us, we're hiring across a bunch of roles we're hiring across a bunch of roles we're hiring across a bunch of roles remotely all around the world. Other remotely all around the world. Other remotely all around the world. Other than that, thank you very much for than that, thank you very much for than that, thank you very much for having me and uh hope we speak again having me and uh hope we speak again having me and uh hope we speak again soon. soon. soon. >> Yeah, it was really fun. Thank you for >> Yeah, it was really fun. Thank you for >> Yeah, it was really fun. Thank you for joining our live stream. joining our live stream. joining our live stream. >> Thank you. >> Thank you. >> Thank you. >> All right, take care everyone. Goodbye.

Summary

This discussion highlights the integration of Rust into Ubuntu's system software, focusing on the significant efforts to "rustify" Ubuntu tooling. The conversation features John Seager, VP of Engineering at Canonical, who spearheaded this initiative following Ubuntu's 20th anniversary. The key takeaway is the strategic move towards leveraging Rust for building a safer and more robust Linux distribution, building upon Ubuntu's long-standing success.

View original episode ↗