O'Reilly logo

Beautiful Architecture by Diomidis Spinellis, Georgios Gousios

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Proof of Concept

The x86 PC has been around for over 30 years and has evolved through many different generations of hardware. At each stage, backward-compatibility has been maintained so that even today, an original 8086 program is likely to run on a new PC. Although this has had undoubted benefits and has contributed to the unparalleled success of the platform, it does mean the architecture is packed with extra complexity as new technologies are incorporated, in order to avoid breaking existing code. If a PC were built today from scratch, many aspects of the hardware would be substantially different, and almost certainly a lot simpler.

Nevertheless, this x86 platform is ubiquitous, with over 1 billion in the world today and over 200 million more being manufactured each year. Consequently, the most widely useful emulator will be one that targets the x86 PC architecture.

However, this is not an easy task. Just some of the hardware components that must be emulated in software include the x86 processor, hard disk (and its controller), keyboard and mouse drivers, VGA graphics card, DMA controller, PCI bus, PCI host bridge, interval timer, real-time clock, interrupt controller, and PCI ISA bridge. Each device has its own specification sheet, which must be read and translated into software. The x86 processor manual runs to 1,500 pages, and in all there are approximately 2,000 pages of technical manuals. The x86 instruction set is large, with up to 65,000 possible instructions that could ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required