upvote
My general rule was:

Assembly for anything that HAS to be assembly: bootloader, GDT/IDT setup, interrupt handlers, context switching, and port I/O wrappers.

C for everything else: window manager, apps, drivers, GUI rendering.

Some parts I probably could have done in C with inline assembly but I found writing pure ASM for the low-level stuff helped me understand exactly what was happening at the hardware level.

What choices looked different to you? I'd love to hear your perspective always looking to improve!

reply