Skip to content

Comment on How to Make a Computer Operating System in C/C++parent

Comments

For example, look at all of the legacy stuff in an x86 system. You have the strange structure of the interrupt descriptor table/global descriptor table. You have the good old Intel 8042 keyboard controller, Intel 8259 programmable interrupt controller, old-style programmable interval timer, A20 gate and so much more.

There's so much legacy baggage inherent in the x86 architecture, all because of software compatibility. (ROM-BASIC will still run on a modern PC!)

ARM on the other hand has less to really worry about, sure there's some legacy infrastructure, such as the ARM vector table. Modern ARM architectures such as ARMv8-A remove old legacy baggage in favor of completely renovating it. (Look at the old coprocessor interface for instance. In A64 mode, it is completely gone. You must use 'mrs/msr' instructions compared to 'mrc/mcr'). There's also far less legacy software to worry about.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.