Truly doing the lords work here.
At age 20, she reverse-engineered the Apple GPU. At age 40, I got the LED to blink on my Arduino.
Wins no matter how small are wins!
Don’t compare yourself to others, just enjoy the learning process & satisfaction it hopefully brings you for every single win, no matter the size!
Arduino is a fantastic platform for learning, I still remember a lot of my ‘firsts’ with it, I had no idea what I was doing, we all start somewhere. Have fun!
It all adds up ⬆️
What a wholesome comment
While I agree partially, want to mention that having someone to compare to is not as bad as it sounds. Its only bad if you think its unreachable and you give up doing anything. Sometimes you need a hero to look up and fight and dream about it, for the motivation. I think looking up to people like Alyssa’s work is inspirational. In a similar way how I look up to those magicians who create emulators… but that is a different topic for another day.
I used a toothpick to get some apple shell unstuck from my gum.
… by yourself !?
I mean I have decades of doing all sorts of IT work and this is way beyond my level. Absolutely amazing.
If you can’t get the Arduino lights to blink at this point I can only applaud your persistence
You mean you can’t just get Apple’s driver to work on Linux by turning it off and on again enough times?
or even by recompiling the kernel when apples driver is not part of it.
I have such immense respect for people who know how the bits are physically flowing through a machine. I took classes about it but I can’t imagine doing that daily, it’s so tedious.
yeah I remember not being able to get my voltron lion to run in basic when I was in junior high.
And imagine doing it without expecting a cent!
It’s the challenge of it though.
thaaaaat’s the shit, when it finally cracks and you laser focus on implementing your solution. better than drugs.
The high of cracking an intractable problem (pre-AI) was just unreal. I’d struggle to sleep, awaiting the morning so I could get back at it.
Nothing groundbreaking but writing my own Huffman compressor in C and seeing the whole thing work knowing where nearly all the real physical bits were going, was seriously satisfying. Recommended exercise ☺️
Good on a resume.
I’m 30 and I wiped my own ass. So I’m feeling pretty accomplished.
You must be male
The bar is subterranean
I sure do love when self-deprecation is used as fuel in gender wars.
Any other female crusters? #LetItCrustQueens
Removed by mod
Of you look at all of the work behind Asahi, it’s incredible. I’m so grateful for heroes like Alyssa who are saving millions of computers from landfills when Apple no longer supports them
How far developed is asahi now? Is every hardware working? Last time i looked into it wifi didn’t work, i think. So i thought it was not useful for me.
For M1 most things work except for USB-HDMI dongles and the fingerprint reader, I think M2 is in a similar boat now
I’ve been using Asahi as my daily driver on my m1 MacBook for a few weeks now. The only thing I’ve noticed that seems to not work is audio through the built in speakers. I normally use Bluetooth headphones anyways so I haven’t tried to fix it.
That’s a bummer… As an additional data point, my M1 MBP has had great audio on Asahi
Audio has been supported for a long time now, do you have “asahi-audio” installed?
I applaud them for their thankless work. I hate that it’s necessary in the first place.
saving millions of computers from landfills when Apple no longer supports them
Kindof except that their build quality tanked during the late Intel era and the motherboards will die a lot sooner now
My macbook pro, 2019, just stopped charging or responding to anything in the USB ports.
Took it to repair shop abcd they said “the logic board was fried” and it needed replacing.
It’s been a while since I dabbled with hardware (built my own pcs back in the day) but is logic board just apple for motherboard?
I have traveled extensively with my m1 and gave it 2 solid drops (which left massive dents in the metal) and I feel like they are holding up. To Apple’s credit, the original os which I use for photography still feels like new after 5 years. Yes, they have a myriad of other ethical problems, but the M series have been great hardware with not bad software… So far
Name is misspelled in the title: https://en.wikipedia.org/wiki/Alyssa_Rosenzweig.
Also, wow, impressive.Makes we want to buy a second-hand Apple device just to try it out.
I do, now!
I ran it on my M1 mini for several months a year or so back. At that stage it was probably 90% of what I needed it to be, which was bloody impressive. After I no longer needed it for work, I tried using it as my Home Assistant server, but with only 8gb RAM, ultimately it ended up being far more efficient to run HA in a virtual machine in macOS.
But yeah, if you can pick up an M1 for a good price, give it a go. It’s good fun.
m2 is also well-supported
True. I played about with it on my M2 Air for a bit. But I need my Air to be rock solid because it’s how I do my radio show.
I’ve already been using Linux for ten years, it definitely puts the fun back into computing. This would actually be primarily to know how to install it on a Mac, because when offering to install Linux as a replacement for Windows in groups I am part of, there have been multiple requests for doing so on a Mac. Unfortunately always had to answer I’ve never done so, so couldn’t promise anything.
Anyway, is €375 for an Apple MacBook Air 2020 M1, 256GB a good price?
So encouraging the bright young minds that are still being spawned. Amazing on her.
Her live streams are something else
Where does she stream? Does she post old recordings? I’d love to try catching one.
What does she do on the livestreams?
Something else
She does 10 hour reverse engeneering sessions
Oh shit!
Oh, I’m about to climax.
IIRC Apple were refusing to implement open standards because they were trying to force developers to use their proprietary Metal API.
I don’t know if a lack of direct support is exactly the same as trying to force everyone, as they could’ve easily prevented her from reverse engineering this project, but that’s sort of splitting hairs and they definitely know they have an open source community who would appreciate even a modicum of support that they’re ignoring.
People weren’t forced to use Metal as it turns out - they just didn’t make games for Mac instead.
Apple tried to force people to use Metal, they just forgot that MacOS isn’t the iPhone and they don’t have enough weight in the desktop PC market to dictate terms like that.
Hot take, but we, as a community should focus resources on improving hardware support for devices, manfacturers of which aren’t actively hostile to linux.
Sadly, linux and open source is managed in capitalist way.
based
She has this out-of-focus look that makes it seem like she’s visually impaired or blind - but I guess then she wouldn’t be working on graphics drivers, of all things?
Maybe you don’t like or understand that she’s transgender 🧐
What this has to do with eyes?
Why all of this even matter?
Post your face, it’s only fair.
She looks like someone who doesn’t get her photo taken often and may in fact be uncomfortable with the process, like a lot of people are. I worked for three years at a school for the blind and visually impaired, and people who have visual limitations don’t look directly into the lens.
Another hint is her eyes looking in different directions.
But it doesn’t make her bad or something.
It makes OC intrigued in her ability to work on heavily graphical matter.And if she truly has impaired vision, then I, for one, even more awed.
Well - I don’t want to overanalyse it. It was really only curiosity in combination with graphics driver development.
What do you mean by out-of-focus look?
Edit: I don’t fully understand your comment, but there are blind people who can program. So even if she was blind, it does not mean she couldn’t reverse engineer the graphics drivers. Can you be more specific?
As if you don’t know where the camera is. People with normal vision will typically look straight at the camera, or focus on some object behind the camera. And since blind people don’t see where the camera is, their eyes sometimes (often) appear to be looking unfocused. You can’t tell where their gaze goes because they are not gazing at anything. This is what the two photos (this one and wikipedia) look like and why I was curious.
So from one photo you conclude if a person is blind or not? I don’t get that what you described, the person looks to the camera. And even if not, sometimes its an artistic decision not to look into the camera (well to be fair in a portrait photo that would be unusual). As far as I know she is not blind, couldn’t find any documentation on that on the Wikipedia article about her.
Edit: In example on some photos of me I look a bit different, like I would be a demon or something like that. Would you conclude I’m a demon?
I didn’t conclude anything, I speculated. Because it’s relevant to graphics driver engineering.
Tell me dear, what made you so sour towards the world?
You…you do know you can like…represent the blinky lights as numbers right?
A fully blind programmer could contribute to graphics driver development just fine. They don’t need to appreciate the picture rendition of the math problems they’re solving, to solve them.
Yes, I do know that, but it’s more complicated doing it all in your head. Hence my curiosity. Also, specifically reverse engineering requires trial & error and visual cues in the output to assess the result of an attempt. Having to do all that with visual aids would be a lot more difficult.
No, you misunderstood me. You’re not translating the blinky lights at the correct layer.
Reverse engineering requires trial and error, and graphics output requires a nuanced assessment between the values and inputs expressed by different sources that correspond to mappings ultimately upon a display interface.
A sighted person would perform this work using their eyes, because that’s the most efficient set up they literally would have the hardware handy to use.
Computers being math, and the human sense of touch being pretty dang sensitive, means that other peripherals than screens, can represent that nuance required to reverse engineer, or anything else relating to computer code.
The difficulty you imagine in not having your vision to perform a task, would not be a reality or an inherently extant limitation on this hypothetical blind programmer, in of itself.
Maybe (definitely) in the availability and pricing of good specialty peripherals, but that’s it.
The term for what you are doing and which isn’t something that requires malice, is ableism.
Now the term for making the assumption that someone is blind or visually impaired, just from a critique based on perception of facial features from a picture? That one I’m not sure what to call. Weird maybe?
Computers being math, and the human sense of touch being pretty dang sensitive, means that other peripherals than screens, can represent that nuance required to reverse engineer, or anything else relating to computer code.
I am genuinely interested in what’s available today on that level - the last I checked, it was still Braille displays, and those were not good for much beyond text.
There are blind programmers, I am very much aware, and I could definitely see myself still enjoying development would I not be able to see. But for myself, I always assumed I would need someone else with normal eyesight to debate the algorithms and help me implement.
The term for what you are doing and which isn’t something that requires malice, is ableism.
Aren’t you jumping to conclusions now? I never made any comments about her skill, I expressed - poorly worded, I now admit - my curiosity. But the answer I was expecting was “yes, she is visually impaired but she did all of this anyway”, which would be all the more impressive. You do agree it is harder to work on graphics drivers as a visually impaired person, don’t you?
[…] just from a critique based on perception of facial features from a picture
Let me quote my original comment verbatim:
She has this out-of-focus look that makes it seem like she’s visually impaired or blind - but I guess then she wouldn’t be working on graphics drivers, of all things?
Where / how do you read any form of critique into that?
Oh dear, some people got triggered. I was genuinely curious. My bad for speaking face to face with quite a few blind people over the years and recognizing a similarity.
One of the most remarkable software engineers is shown for attribution
Some internet idiots: ”BuT loOk At HeR EyEs”
I think he’s intrigued about how she contrive to work on graphics with limited visual clues (if she has impaired vision that is)
That part is even more idiotic. No one needs to be able to see to understand and be very good at mathematics and physics.
But that’s not even what she needed to learn and understand. To reverse engineer, you need to be patient, clever, creative and understand how assembler works. To write a driver is then the easier part and again, has nothing to do with visual skills. She could be blind and deaf and would still be able to reverse engineer GPU’s and sound cards.
She could be blind and deaf and would still be able to reverse engineer GPU’s and sound cards.
Not simultaneously though.
She could have a braille display
That would be a feat for a demigod.
Embarassing comment.
one of the co heads of this graphics lab whose maine claim to fame was 3d stuff could not see 3d.
That’s fascinating. Have you got a link with further info on that?
I worked there so I don’t know if there is any public information on that but its not like he kept it hidden and I bet there are articles where it might have been mentioned. It was kinda funny because I was on the tech team and I had the opposite issue. 3D just pops for me and I will see it even if the system settings are real loose. Its funny because I would need to setup the projectors but he could do a much better job of getting it configured optimally. Turns out not seeing 3D and just seeing the individual images is an asset to that activity.
Definitely interesting, but also relatable - I mean we have mathematicians and physicists doing (useful) calculations in 4D and higher, and I bet most of them can’t picture a 4D space :)
It’s people like her who make life worth living. People who solve hard problems that need solving (or sometimes don’t even need it) are the best people.
…without asking a dime. Just love for the game.
VLC springs to mind.
Yes exactly! And exactly!
VLC exists because they wanted the university to upgrade its networking infrastructure so they could play CounterStrike.
Immense respect!
And here I am unable to ssh/putty/connect to my banana pi m5 so I can wipe lineageos off the emmc module. (Legit happy for her success!!!)
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.
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
By my recollection she started from the open source Imagination Technologies GPU drivers. As the Apple GPU is definitely not derived from the GPU they used to license for the iPhone, she was able to use it for the initial register definitions, etc.

















