{"id":46750,"date":"2025-02-14T16:08:42","date_gmt":"2025-02-14T21:08:42","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=46750"},"modified":"2025-05-19T15:22:52","modified_gmt":"2025-05-19T19:22:52","slug":"asahi-linux-lead-resigns","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2025\/02\/14\/asahi-linux-lead-resigns\/","title":{"rendered":"Asahi Linux Lead Resigns"},"content":{"rendered":"<p><a href=\"https:\/\/marcan.st\/2025\/02\/resigning-as-asahi-linux-project-lead\/\">Hector Martin<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=43036904\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/marcan.st\/2025\/02\/resigning-as-asahi-linux-project-lead\/\">\n<p>When Apple released the M1, I realized that making it run Linux was my dream project. The technical challenges were the same as my console homebrew projects of the past (in fact, much bigger), but this time, the platform was already open - there was no need for a jailbreak, and no drama and entitled users who want to pirate software to worry about.<\/p>\n<p>[&#8230;]<\/p>\n<p>Unfortunately, things became less fun after a while. First, there were the issues upstreaming code to the Linux kernel, which I&rsquo;ve already spoken at length about and I won&rsquo;t repeat here. Suffice it to say, being in a position to have to upstream code across practically every Linux subsystem, touching drivers of all categories as well as some common code, is an <em>incredibly<\/em> frustrating experience.<\/p>\n<p>[&#8230;]<\/p>\n<p>No matter how much we did, how many impossible feats we pulled off, people always wanted more. And more. Meanwhile, donations and pledges kept slowly <em>decreasing<\/em>, and have done so since the project launched. [&#8230;] It seemed the more things we accomplished, the less support we had.<\/p>\n<p>[&#8230;]<\/p>\n<p>I consider Linus&rsquo; handling of the integration of Rust into Linux a major failure of leadership. Such a large project needs significant support from major stakeholders to survive, while his approach seems to have been to just wait and see. Meanwhile, multiple subsystem maintainers downstream of him have done their best to stonewall or hinder the project, issue unacceptable verbal abuse, and generally hurt morale, with no consequence. One major Rust for Linux maintainer already resigned a few months ago.<\/p>\n<p>As you know, this is deeply personal to me, as we&rsquo;ve made a bet on Rust for Linux for Asahi.<\/p>\n<\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2024\/03\/04\/m3-macbook-pro-multi-display-support-via-software-update\/\">M3 MacBook Pro Multi-Display Support via Software Update<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/11\/20\/the-lack-of-compensation-in-open-source-software-is-unsustainable\/\">The Lack of Compensation in Open Source Software Is Unsustainable<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/08\/02\/dogfooding-linux-5-19-on-apple-silicon\/\">Dogfooding Linux 5.19 on Apple Silicon<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/02\/17\/apple-ssd-benchmarks-and-f_fullsync\/\">Apple SSD Benchmarks and F_FULLSYNC<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/10\/18\/apple-m1-pro-and-m1-max\/\">Apple M1 Pro and M1 Max<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/04\/15\/rust-support-in-the-linux-kernel\/\">Rust Support in the Linux Kernel<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/01\/14\/macos-11-2-beta-2-adds-full-custom-kernel-support\/\">macOS 11.2 Beta 2 Adds Full Custom Kernel Support<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/01\/11\/dissecting-the-apple-m1-gpu\/\">Dissecting the Apple M1 GPU<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2020\/12\/02\/porting-linux-to-apple-silicon-macs\/\">Porting Linux to Apple Silicon Macs<\/a><\/li>\n<\/ul>\n\n<p id=\"asahi-linux-lead-resigns-update-2025-02-16\">Update (2025-02-16): <a href=\"https:\/\/arstechnica.com\/gadgets\/2025\/02\/asahi-linux-lead-resigns-from-mac-based-distro-after-tumultuous-kernel-debate\/\">Kevin Purdy<\/a>:<\/p>\n<blockquote cite=\"https:\/\/arstechnica.com\/gadgets\/2025\/02\/asahi-linux-lead-resigns-from-mac-based-distro-after-tumultuous-kernel-debate\/\"><p>Rust is <a href=\"https:\/\/arstechnica.com\/gadgets\/2021\/03\/linus-torvalds-weighs-in-on-rust-language-in-the-linux-kernel\/\">a far more memory-safe coding language<\/a> than the Linux kernel&rsquo;s native C. But getting more than 1,700 maintainers, including branch bosses, to accept Rust code after decades of work in C is <a href=\"https:\/\/arstechnica.com\/gadgets\/2024\/09\/rust-in-linux-lead-retires-rather-than-deal-with-more-nontechnical-nonsense\/\">no small feat<\/a>. Linux lead Linus Torvalds has shifted ever-so-slightly from <a href=\"https:\/\/arstechnica.com\/gadgets\/2021\/03\/linus-torvalds-weighs-in-on-rust-language-in-the-linux-kernel\/\">a &ldquo;wait and see&rdquo; approach in 2021<\/a> to noting in the summer of 2024 that he expected Rust updates to be faster while admitting that it&rsquo;s largely kernel developers&rsquo; familiarity with C standing in the way. At that time, Microsoft engineer Wedson Almeida Filho resigned from the Rust for Linux project, citing &ldquo;nontechnical nonsense&rdquo; as the motivation.<\/p><p>That conflict between the energy of <a href=\"https:\/\/rust-for-linux.com\/\">Rust for Linux<\/a> contributors and the strictures of kernel practices collided once more this winter in an early January kernel mailing list thread about a patch with the deceptively non-controversial name &ldquo;<a href=\"https:\/\/lkml.org\/lkml\/2025\/1\/8\/801\">Add dma coherent allocator abstraction<\/a>.&rdquo;<\/p><p>Kernel maintainer Christoph Hellwig opposed a patch that would have allowed drivers written in Rust to access the Direct Memory Access (DMA) API. &ldquo;No rust code in kernel\/dma, please,&rdquo; <a href=\"https:\/\/lkml.org\/lkml\/2025\/1\/8\/951\">Hellwig wrote<\/a>. After some back-and-forth about suggested alternatives, Hellwig <a href=\"https:\/\/lkml.org\/lkml\/2025\/1\/10\/370\">comes out with it<\/a>: &ldquo;Don&rsquo;t force me to deal with your shiny language of the day. Maintaining multi-language projects is a pain I have no interest in dealing with.&rdquo; A <a href=\"https:\/\/lore.kernel.org\/lkml\/20250128092334.GA28548@lst.de\/\">later post<\/a> by Hellwig pushed further, and his attempt to clarify that it was &ldquo;a cross-language codebase&rdquo; he was comparing to &ldquo;cancer,&rdquo; not just Rust, did not likely soften its impact.<\/p><\/blockquote>\n\n<p>Update (2025-02-25): <a href=\"https:\/\/lore.kernel.org\/rust-for-linux\/2025021954-flaccid-pucker-f7d9@gregkh\/\">Greg Kroah-Hartman<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=43101204\">Hacker News<\/a>, <a href=\"https:\/\/www.phoronix.com\/news\/Greg-KH-On-New-Rust-Code\">Michael Larabel<\/a>):<\/p>\n<blockquote cite=\"https:\/\/lore.kernel.org\/rust-for-linux\/2025021954-flaccid-pucker-f7d9@gregkh\/\"><p>The majority of bugs (quantity, not quality\/severity) we have are due to\nthe stupid little corner cases in C that are totally gone in Rust.\nThings like simple overwrites of memory (not that rust can catch all of\nthese by far), error path cleanups, forgetting to check error values,\nand use-after-free mistakes.  That&rsquo;s why I&rsquo;m wanting to see Rust get\ninto the kernel, these types of issues just go away, allowing developers\nand maintainers more time to focus on the REAL bugs that happen (i.e.\nlogic issues, race conditions, etc.)<\/p><p>I&rsquo;m all for moving our C codebase toward making these types of problems\nimpossible to hit, the work that Kees and Gustavo and others are doing\nhere is wonderful and totally needed, we have 30 million lines of C code\nthat isn&rsquo;t going anywhere any year soon.  That&rsquo;s a worthy effort and is\nnot going to stop and should not stop no matter what.<\/p><p>But for new code \/ drivers, writing them in rust where these types of\nbugs just can&rsquo;t happen (or happen much much less) is a win for all of\nus, why wouldn&rsquo;t we do this?  <\/p><\/blockquote>\n\n<p><a href=\"https:\/\/arstechnica.com\/gadgets\/2025\/02\/linux-leaders-pave-a-path-for-rust-in-kernel-while-supporting-c-veterans\/\">Kevin Purdy<\/a>:<\/p>\n<blockquote cite=\"https:\/\/arstechnica.com\/gadgets\/2025\/02\/linux-leaders-pave-a-path-for-rust-in-kernel-while-supporting-c-veterans\/\"><p><a href=\"https:\/\/lkml.org\/lkml\/2025\/2\/20\/2066\">Torvalds&rsquo; response from Thursday<\/a> does offer some clarification on Rust bindings in the kernel, but also on what die-hard C coders can and cannot control.<\/p><p>Maintainers like Hellwig who do not want to integrate Rust do not have to. But they also cannot dictate the language or manner of code that touches their area of control but does not alter it. The pull request Hellwig objected to &ldquo;DID NOT TOUCH THE DMA LAYER AT ALL,&rdquo; Torvalds writes (all-caps emphasis his), and was &ldquo;literally just another user of it, in a completely separate subdirectory.&rdquo;<\/p><p>&ldquo;Honestly, what you have been doing is basically saying &lsquo;as a DMA maintainer I control what the DMA code is used for.&rsquo; And that is not how *any* of this works,&rdquo; Torvalds writes.<\/p><p>[&#8230;]<\/p><p>The leader goes on to state that maintainers who want to be involved in Rust can be, and can influence what Rust bindings look like. Those who &ldquo;are taking the &lsquo;I don&rsquo;t want to deal with Rust&rsquo; option,&rdquo; Torvalds writes, can do so&mdash;later describing it as a &ldquo;wall of protection&rdquo;&mdash;but also have no say on Rust code that builds on their C interfaces.<\/p><\/blockquote>\n\n<p id=\"asahi-linux-lead-resigns-update-2025-03-19\">Update (2025-03-19): <a href=\"https:\/\/www.phoronix.com\/news\/Asahi-Lina-Steps-Down-Linux-GPU\">Michael Larabel<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=43406393\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/www.phoronix.com\/news\/Asahi-Lina-Steps-Down-Linux-GPU\">\n<p>Asahi Lina announced today that she is pausing work on all of the Apple GPU driver development she had been pursuing for Asahi Linux with the open-source DRM kernel driver as well as Mesa contributions.<\/p>\n<p>[&#8230;]<\/p>\n<p>Asahi Lina had been leading the effort working on a Rust-written Apple DRM kernel graphics driver that has yet to be mainlined to the Linux kernel. Plus contributions to the Asahi AGX Gallium3D and Honeykrisp Vulkan drivers within Mesa too. As part of that, Asahi Lina was also involved in reverse-engineering the Apple M1\/M2 GPU.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Hector Martin (via Hacker News): When Apple released the M1, I realized that making it run Linux was my dream project. The technical challenges were the same as my console homebrew projects of the past (in fact, much bigger), but this time, the platform was already open - there was no need for a jailbreak, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2025-02-14T21:08:44Z","apple_news_api_id":"8549a6a1-91ef-46bd-a0c1-de48ad534502","apple_news_api_modified_at":"2025-05-19T19:22:54Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAw==","apple_news_api_share_url":"https:\/\/apple.news\/AhUmmoZHvRr2gwd5IrVNFAg","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[2014,448,991,71,408],"class_list":["post-46750","post","type-post","status-publish","format-standard","hentry","category-technology","tag-apple-m1","tag-linux","tag-open-source-software","tag-programming","tag-rust-lang"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/46750","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=46750"}],"version-history":[{"count":5,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/46750\/revisions"}],"predecessor-version":[{"id":47809,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/46750\/revisions\/47809"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=46750"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=46750"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=46750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}