Linux fat/bloated

D. Hugh Redelmeier hugh-pmF8o41NoarQT0dZR+AlfA at public.gmane.org
Mon Apr 10 05:13:45 UTC 2006


| From: Colin McGregor <colinmc151-bJEeYj9oJeDQT0dZR+AlfA at public.gmane.org>

|  This was
| followed by the 80186 chip (that for several reasons
| tanked in the market), then came the 80286 chip.

The 186 was a fine re-do of the 8086.  It was a bit faster (shift-by-n
took 1 cycle instead of n, multiply was much better).  It had a few
nice new instructions (push immediate was useful).  Nothing too
dramatic.

As I remember it, there was only one reason that I know of for it to fail
in the PC market.

The IBM PC BIOS was entered by an INT instruction.  This instruction
simulates an interrupt.  Actually, this is an evolution from the 8080
where (advanced) hardware interrupts actually jammed an INT
instruction into the CPU.  So it isn't just a simulation.

An INT instruction has a one-byte immediate operand (i.e. a built in
constant) to specify the interrupt vector to use.

Certain interrupt numbers could be generated by
built-into-the-microprocessor hardware (i.e. not optional).  So a few
numbers were reserved.  In the 80186, these reserved interrupt numbers
overlapped with some of the numbers chosen by IBM for BIOS calls.
Oops.

So: MSDOS could run on a '186, but programs that used (some?) BIOS
calls could not be run on a '186.

This seems like a tiny problem, but the market demanded that IBM PC
binaries run on clones.  This only became clear after a few products
were released using the '186.  Actually, some of the manufacturers
wanted to be a little different and better, thinking that they could
capture the market (think Victor, Olivetti, Tandy).  It didn't work
out that way.

I own a UNIX machine that used an 8086.  I sped it up by installing a
NEC V30 CPU.  This had the same pin-out as the 8086 but was
essentially a 80186 (with a z80 or 8080 mode, I forget which).  The
only problem I had was that there was a bug in the kernel that caused
it to flip in 8080 mode.  I hacked the compiler to exploit some new
instructions to gain a little code density.

So the reason the '186 "failed" is because of a silly detail of
compatibility.

Since then, x86 CPUs lean over backwards to be backward compatible.
To a fault.  One example: the A20 gate.
  http://en.wikipedia.org/wiki/A20_line
We LINUX users don't need this and it is just hystorical cruft to us.
--
The Toronto Linux Users Group.      Meetings: http://tlug.ss.org
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://tlug.ss.org/subscribe.shtml





More information about the Legacy mailing list