# Intel 80386

De 80386-processor van Intel was de opvolger van de 80286-processor. In tegenstelling tot zijn voorgangers was de 80386 een 32 bitsprocessor; althans hij had een 32 bitsmode meegekregen, waarin hij als volwaardig 32 bits functioneerde. In de 16 bitsmode werkte de 80386 als een 80286, hij was dus ook compatibel met de 8086 processor waarop het populaire MS-DOS draaide.
De 80386 had geen last meer van de ontwerpfout die in de 80286 wel aanwezig was. Er kon vrijelijk tussen de real mode en protected mode geschakeld worden, en in de protected mode konden verschillende modes tegelijkertijd gebruikt worden. Zo kon een 32 bitsprogramma in 32 bitsmode draaien, en tegelijkertijd kon een 16 bitsprogramma in 16 bitsmode draaien. Verder was de v86-mode (ook wel 386-Enhanced-modus genoemd) toegevoegd. Dit was een alternatief op de 16 en 32 bitsmode. Als het besturingssysteem een programma in v86-mode liet draaien, zag het programma de processor als een 8086.
Dankzij de v86-mode werd het mogelijk een besturingssysteem te schrijven dat van de geavanceerde mogelijkheden van de protected mode gebruik maakte, maar nog wel de populaire MS-DOS-programma's kon uitvoeren. Deze konden zelfs gebruikmaken van virtueel geheugen en multitasking, omdat die functies door het besturingssysteem transparant geïmplementeerd werden, zonder dat daar in de v86-mode iets van te merken was.
Andere verbeteringen van de 80386 waren:
* Sterk verbeterd geheugenbeheer - De geheugenbeheermodule van de 80386 kon van paginering gebruikmaken, waarbij segmenten in pagina's van 4kB verdeeld werden en iedere pagina apart op fysiek geheugen afgebeeld kon worden.
* Nieuwe adresseermodes - In de 32 bitsmode werkte de geheugenadressering anders dan in 16-bitmode. Het was nu mogelijk alle registers als basis- en indexregister te gebruiken. Op het indexregister kon een vermenigvuldigingsfactor toegepast worden, waardoor voor veel operaties minder instructies nodig waren.
* Meer instructies - De 80386 voegde nieuwe instructies aan de x86-instructieset toe. Instructies als MOVZX en SETcc behoren vandaag de dag tot de meest gebruikte instructies.
* Efficiëntere uitvoering - De 80386 had voor veel instructies minder CPU-cycles nodig.

## DX vs SX

De oorspronkelijke 80386 kreeg later de toevoeging DX. Dit ter onderscheiding van de introductie van de SX-variant. De SX-variant beschikte slechts over een 16-bits databus (er wordt beweerd dat SX staat voor Sixteen eXternal). De SX was hierdoor aanzienlijk goedkoper, maar presteerde minder.

## Cache

Omdat de 80386 geen cachegeheugen in de processor had was het eigenlijk nodig om extern cachegeheugen te hebben. Dit leverde bijna een verdubbeling van de prestaties op. Pas bij de 80486 werd het gebruikelijk om cache-geheugen te gebruiken.

## Besturingssystemen ten tijde van de 80386

Om voluit van de mogelijkheden van deze processor gebruik te maken was een besturingssysteem nodig dat de protected-mode en v86-mode aan programma's beschikbaar maakte. Het heeft van 1986 tot de introductie van Windows 95 in 1995 geduurd totdat dit gerealiseerd werd. De 80386 was ondertussen al verouderd.
Het eerste besturingssysteem wat goed van de mogelijkheden van de 80386 gebruik maakte was OS/2, in versie 2.0. OS/2 beschikte over een 32 bits-, protected-mode-kernel en draaide programma's in gescheiden omgevingen waarbij preëmptieve multitasking toegepast werd om meerdere programma's tegelijkertijd te laten draaien.
In een politieke beslissing besloot Microsoft echter aan Windows te gaan werken. Windows kon programma's niet van elkaar scheiden en gebruikte coöperatieve multitasking. Vanaf het moment dat Microsoft niet meer meedeed aan het ontwikkelen van OS/2 werd de ontwikkeling van Windows 3.0 gestart.
Dit besturingssysteem kon zelfstandig apparatuur aansturen, maar draaide nog steeds bovenop MS-DOS. 80386-functionaliteit werd hier en daar mondjesmaat toegevoegd, dit begon met het ondersteunen van de v86 mode in Windows 3.1, het toestaan van 32 bits-programma's in Windows 3.11 en het aanbieden van een 32 bits-API met Win32s. Dat laatste had daarentegen geen geheugenbescherming, wat voor 16 bitssoftware inmiddels wel beschikbaar was.
OS/2 werd doorontwikkeld door IBM. Versie 2.1 en vooral 3 (Warp) boden de computergebruiker meer mogelijkheden. Maar de zware systeemeisen en concurrentie met Windows temperden de populariteit dusdanig dat van een doorbraak geen sprake was.
Uiteindelijk bracht Microsoft Windows 95 op de markt. Dit besturingssysteem draaide net als Windows 3.x bovenop MS-DOS, maar was 32 bits. Het bood een volledige 32 bitsomgeving aan zijn programma's. Ook had het geheugenbescherming en preëmptieve multitasking, maar dit laatste alleen als geen 16 bitsprogramma's gedraaid konden worden. Dit besturingssysteem sloeg wel aan.