Remix.run Logo
aeblyve 2 days ago

Not unlike web development, you're working against a contract (in this case, CPU instructions/features, storage formats, bus formats) defined by some megacorporate legacy. You also have support from pieces of embedded firmware running inside storage devices or other peripherals.

The book at http://ostep.org gets into some details.

Another useful illuminator: https://gwern.net/computers

As much as possible is generally done using simulators before testing on any real hardware.