this post was submitted on 27 Aug 2026
1586 points (99.4% liked)

Linux

18874 readers
2230 users here now

Welcome to c/linux!

Welcome to our thriving Linux community! Whether you're a seasoned Linux enthusiast or just starting your journey, we're excited to have you here. Explore, learn, and collaborate with like-minded individuals who share a passion for open-source software and the endless possibilities it offers. Together, let's dive into the world of Linux and embrace the power of freedom, customization, and innovation. Enjoy your stay and feel free to join the vibrant discussions that await you!

Rules:

  1. Stay on topic: Posts and discussions should be related to Linux, open source software, and related technologies.

  2. Be respectful: Treat fellow community members with respect and courtesy.

  3. Quality over quantity: Share informative and thought-provoking content.

  4. No spam or self-promotion: Avoid excessive self-promotion or spamming.

  5. No NSFW adult content

  6. Follow general lemmy guidelines.

founded 3 years ago
MODERATORS
 
top 50 comments
sorted by: hot top controversial new old
[–] sinnsykfinbart@lemmy.world 8 points 2 hours ago

She’s amazing. Also fascinating life story, came out as transgender at 10, was raised Jewish but she is now a Quaker

[–] dermanus@lemmy.ca 7 points 3 hours ago (1 children)

Love that she did it, although I'm surprised they didn't sue her for contempt of business model (i.e. Some copyright BS)

[–] ytg@sopuli.xyz 5 points 2 hours ago* (last edited 2 hours ago) (1 children)

If you mean Apple, it wouldn't really make sense for them to do that. Apple primarily generates income from hardware sales, so they wouldn't care if people run other software on the hardware they already bought.

Edited to say: this doesn't really apply for the iPhone/iPad as the application ecosystem is locked down. macOS isn't though so users will do whatever they want anyway. There are even tiling window managers for macOS!

[–] Brimstone@lemmy.ml 2 points 1 hour ago

They don’t lock down macOS but it still has an App Store where Apple makes 30% on sales

[–] SchwertImStein@lemmy.dbzer0.com 5 points 3 hours ago (1 children)

@bytepursuits@programming.dev

Please fix the typo in the surname in the title of the post.

[–] qwerty123456@lemmy.world 22 points 7 hours ago

Reverse-engineering the M1 GPU with zero public docs is insane. Huge respect for managing to get an open-source driver working on Linux from scratch.

[–] ZombieCyborgFromOuterSpace@piefed.ca 29 points 9 hours ago (1 children)

I've always wondered how the fuck people do that? Absolute wizards.

[–] Ricaz@lemmy.dbzer0.com 13 points 3 hours ago (1 children)

Insane levels of dedication. And probably autism

[–] isthereanydeal@discuss.tchncs.de 3 points 3 hours ago (1 children)

Insane levels of medication. And probably flautism (fixed it for you)

[–] dhtseany@lemmy.ml 2 points 3 hours ago (1 children)

Oh no, my opinion is that medication for those of us with the "dig-in 'tisms" like this actually impedes our hyper focus performance.

[–] Ricaz@lemmy.dbzer0.com 1 points 1 hour ago* (last edited 1 hour ago)

To be fair it's not just your opinion, also one of doctors

[–] Aeder@lemmy.world 8 points 9 hours ago* (last edited 9 hours ago) (2 children)

I admire people like this because even though there's like 3 pieces of hardware I wish I could fix like this, I've got no clue where to start. And except for one, most are simpler devices than the M1 GPU.

[–] PumaStoleMyBluff@lemmy.world 2 points 1 hour ago

Some of the basics of reverse engineering:

  • Learn to use a binary editor to inspect compiled binaries
  • Learn to debug without symbols
  • Learn to use a decompiler
  • Learn to inspect the traffic between the device and the OS

It's kind of monumental and there's no real finish line for learning any of them.

[–] Johanno@feddit.org 6 points 9 hours ago (1 children)

Depending on what you want to do you need a lot of time, dedication, tools and probably money.

[–] Aeder@lemmy.world 4 points 7 hours ago (1 children)

Well, one is a GPU like this one that only has 2D support and it's apparently perpetually stuck as experimental. The second one is a trackpad / numpad combo that someone else got working but because the code never got upstreamed it broke. The last one is an internal microphone that might have support in the kernel but it might be missing quirk flags or a small change in how it works.

[–] Johanno@feddit.org 5 points 7 hours ago

That sounds like reading a lot of documentation and testing stuff out when no dox is available.

And probably you first need to learn about each device how they function on an os level...

[–] TheStaffmaster@lemmy.world 20 points 12 hours ago

Truly doing the lords work here.

[–] nroth@lemmy.world 22 points 12 hours ago

Immense respect!

[–] BillyClark@piefed.social 19 points 13 hours ago (1 children)

It's an amazing accomplishment, but if anybody is wondering why it's not flat-out impossible, she very likely was snooping on how it was controlled by existing drivers, either by looking at the software side, which honestly, I'm less familiar with, or by using something like a logic analyzer, which can be used to record signals being sent to the hardware directly. So, if she did it that way, she didn't reuse the code of the existing driver, but analyzed the output. I've had to debug some drivers in the past with a logic analyzer, and just that was a lot of work.

If she did it without existing drivers, then it would have been an absolute slog, I think bordering on impossible. You'd have to guess every signal. GPUs may be more specialized than CPUs, meaning that their instruction set will be smaller, but that would be insane.

[–] AdrianTheFrog@lemmy.world 47 points 12 hours ago

lol I randomly searched for a page from collabora about how they reverse engineer GPU drivers (since I've seen that they've done that for other GPUs) and the very first page I went to was written by this person. Apparently this was a side project while she did fairly similar work on Mali GPUs at Collabora.

Anyways, here's what she said about the process:

Typically, for Linux or Android driver reverse-engineering, a small wrap library will be written to inject into a test application via LD_PRELOAD that hooks key system calls like ioctl and mmap in order to analyze user-kernel interactions. Once the “submit command buffer” call is issued, the library can dump all (mapped) shared memory for offline analysis...

it took some elbow grease to identify the three critical calls: memory allocation, command buffer creation, and command buffer submission...

With those obstacles cleared, we can finally get to the shader binaries, black boxes in themselves. However, the process from here on out is standard: start with the simplest fragment or compute shader possible, make a small change in the input source code, and compare the output binaries. Iterating on this process is tedious but will quickly reveal key structures, including opcode numbers.

From https://alyssarosenzweig.ca/blog/asahi-gpu-part-1.html , there's a lot more details about the subsequent parts of the process in the next articles but they're harder to summarize

[–] Felis_Catus_Domesticus@lemmy.world 23 points 14 hours ago* (last edited 8 hours ago) (2 children)

clearly she is on the spectrum..

[–] onlinepersona@programming.dev 3 points 7 hours ago

So are we all.

[–] nanometer1625@thelemmy.club 10 points 12 hours ago
[–] DickFiasco@sh.itjust.works 368 points 21 hours ago (11 children)

At age 20, she reverse-engineered the Apple GPU. At age 40, I got the LED to blink on my Arduino.

[–] HubertManne@piefed.social 117 points 20 hours ago (10 children)

I mean I have decades of doing all sorts of IT work and this is way beyond my level. Absolutely amazing.

[–] Cypher@aussie.zone 4 points 6 hours ago

If you can’t get the Arduino lights to blink at this point I can only applaud your persistence

load more comments (9 replies)
load more comments (10 replies)
[–] BigTurkey@lemmy.dbzer0.com 120 points 18 hours ago* (last edited 1 hour ago) (1 children)

Sometimes I think I'm smart then I hear stories like this and I'm humbled.

She is a hero and a legend. It just makes me think, it's so sad that we live in a world where the most altruistic, talented, and capable people make less than those that are the best at taking advantage of the system and others for their own greed.

[–] anarchy79@lemmy.world 56 points 18 hours ago* (last edited 18 hours ago) (2 children)

That's what our economic system suppresses to bring the losers to the top.

Wanna bet someone else profited off her hard work in some fashion without her seeing a dime? I know AI did.

Did you know that the board game "Monopoly" was originally called The Landlord's Game, meant to showcase how property ownership breaks the capitalist system for the common man?

A capitalist came along, rebranded it "Monopoly", took all the credit and lived like a king.

Sweat of my brow indeed.

load more comments (2 replies)
[–] idealpink@feddit.nu 41 points 16 hours ago (3 children)

We need more people who know how to reverse engineer

[–] a1studmuffin@aussie.zone 39 points 14 hours ago (1 children)

We need more open hardware standards. Late-stage capitalism ruins everything.

[–] SalmonTractor@discuss.tchncs.de 23 points 13 hours ago (1 children)

It's so weird how Apple basically explicitly said, "yeah so you can write software for it if you want, we won't stop you. Also, we will obfuscate everything and provide no documentation." So it is a very soft fuck you that should likely prevent lawsuits.

I miss Apple, the company that gave you schematics and programming instructions for their computers. Wonder whatever happened to them.

[–] ReptilianCleric@lemmy.zip 10 points 11 hours ago

The Apple you miss ended when they got rid of the Woz, I bet.

load more comments (2 replies)
[–] thethunderwolf@lemmy.dbzer0.com 39 points 16 hours ago* (last edited 16 hours ago) (3 children)

very based

personally grateful as i daily drive asahi linux

posting this comment from an m2 macbook pro running fedora asahi

load more comments (3 replies)
load more comments
view more: next ›