Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Being mostly written in C was key.

Though it was written for x86 initially, it was nearly all C, with GCC extensions and macros/inline functions containing a tiny bit of inline assembly where x86 instructions were needed.

That made it easy to port to other architectures as soon as someone was motivated, by replacing macro/inline definitions, the bootloader, entry/exit/interrupt paths, and simple architecture-specific device drivers such as keyboard and console.

If Linus had said no, it would have been difficult, as there were many changes that needed to be maintained for each new architecture, and internal APIs that needed changing to help them perform well.

Luckily Linus was happy to accommodate new architecture changes as people did the ports, and over many years the internal APIs gradually shed their x86-flavoured semantics to become more portable.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: