HN user

blkhp19

1,495 karma
Posts5
Comments176
View on HN

I started with CLion, and found the UX to be completely foreign (not at all Mac-like) and overall frustrating to use.

Xcode is definitely not perfect, but it's IDE I'm most used to, so I ended up doing my most of my editing in it.

I considered this! There were a lot of things I wanted to try but didn't want the timeline of this project to blow up any more than it already had. Now that I've done the hard part of writing about it and publishing it, I can revisit some of these ideas :)

Thanks! The project was mostly C for the bootloader and C++ for the drivers.

As for which part was the most challenging... probably understanding the IOKit driver model. I really would have benefitted from having an expert explain some of the concepts to me, and give me some advice about how to structure my own drivers.

Yes - this project (and countless others) would not have been possible without the incredible work to hack the Wii from Team Twiizers (now fail0verflow) back in the day. The work they did was a huge inspiration for me getting into computer science when I was a teenager.

I felt similarly. The learning curve was a tad steep, especially since I had never written a driver before, but once I figured out how to structure things and saw the system come alive, I grew to appreciate the approach IOKit takes.

With that said, I haven't developed drivers for any other platforms, so I really can't say if the abstraction is good compared to what's used by modern systems.

I used plenty of non-agentic AI to help understand the XNU codebase, and also research various topics. It wasn't always correct, but it certainly helped at times! My philosophy for this project was to use it as a learning tool - since that was kind of the whole point of me attempting this :)

There are bugs and undocumented behaviors that need to be understood in order to be worked around - I wish it wasn't the case but such is life developing for closed-source platforms.

Thank you for the kind words!

I like using it for disassembling UIKit (for my day job working on iOS apps), and overall, I like the UI/UX and how it feels like a native Mac app.

I've tried Ghidra, and while extremely impressive and capable, it might be the most Java-feeling app I've ever used. I'd love for someone to whip up an AppKit + SwiftUI shell for it.

It's also a fun one to write an emulator for. There are plenty of example programs out there to test, and they draw graphics by writing bytes to a frame buffer at some offset in memory. You can read from that region in memory, interpret each byte as a color from a preset palette, and use it to display visual output / graphics.

I wrote one in Swift a few years back, and then ended up developing it further into an NES emulator capable of playing Donkey Kong. It was a great learning experience.