Draft:Operating system/Operating Systems/x86

X86 Architecture
X86 is a microprocessor architecture initially created by Intel in 1978, introduced with the 8086 microprocessor. The x86 architecture is now used in most modern computers and most Operating Systems are designed to be compatible with it.

Operating Systems and X86
There are specific instructions that need to be followed when writing assembly code for x86. In order for an Operating System or any other low level program requiring assembly to be compatible, the code must use the x86 instruction set provided by the hardware manufacturer.

The instructions for x86 assembly code have undergone many changes and additions since the architecture was created. What this means for an OS Programmer is that he/she sometimes has to consider the benefits of the newest and greatest additions to the architecture while also considering the costs of losing backwards compatibility. An example of the problems created by this situation can be seen in the Windows 95 through Millenium Edition Operating Systems. At this time, the Windows programmers needed to introduce the newest 32 bit x86 architecture into their OS, but they also needed to include 16 bit backwards compatibility. Users of these Operating Systems saw some negative results such as the "Blue Screen of Death" and the frequent "Freezing" of the OS itself.

Writing code in assembly can be a long and difficult process as the code itself can be difficult to understand and lengthy. Regardless of these setbacks, assembly programs are some of the fastest and smallest programs written. It is for this reason that the lowest functions in an OS are usually written in assembly. Some OS's, such as Menuet OS, are written entirely in assembly in order to take advantage of the benefits. Others, such as Ace OS are written using a mix of C and Assembly in order to cut down on programming time. Both OS's are written to be compatible with the x86 architecture and their source code is available for download on their web pages.

Operating Systems Written for X86

 * AtheOS
 * BeOS
 * BRiX
 * BugOS
 * DOS
 * EROS
 * Exopc
 * Fiasco
 * FreeBSD
 * FreeVMS
 * GEM
 * ReactOS
 * GEOS
 * GNU Hurd
 * Linux
 * MAC OSX
 * Microsoft Windows
 * MINIX
 * NetBSD
 * OpenBSD
 * OS2
 * QNX
 * RadiOS
 * RMX
 * Sun Solaris
 * TinyOS
 * Unix
 * Xenix