On 8/9/25 06:43, ben via cctalk wrote:
On 2025-08-09 5:42 a.m., Peter Corlett via cctalk
wrote:
>
> I have no love for the x86 architecture, but note that the 80286 did
> succeed
> at what we can safely assume was the design brief: improve on the
> 8086, and
> add a protected mode. That it's not a very efficient protected mode
> is an
> rather unfortunate design mis-step which still dogs x86 to this day,
> but if
> you pretend that feature doesn't exist and leave the CPU in real mode
> than
> you get a very welcome performance boost.
>
> I would perhaps go further and note that it delivered a technically
> useful
> protected mode in 1982, before my personal favourite architecture of
> that
> era, m68k. The MC68451 external MMU *added* base-and-bounds
> segmentation to
> m68k which seems to date from 1983 (in as much as the oldest
> datasheet is
> from April 1983) and of course ideally also needed to be paired with at
> least the 68010 rather than the 68000 which couldn't restart
> instructions.
> That we forget the MC68451 exists shows what a dead-end
> base-and-bounds was
> even back then.
>
> Wikipedia claims the following, which explains Gates' attitude: 'Bill
> Gates
> referred to the 80286 as a "brain-damaged" chip, because it cannot use
> virtual machines to multitask multiple MS-DOS applications[22] with an
> operating system like Microsoft Windows.' In other words, he didn't
> like it
> because it didn't provide a feature that he wanted for Microsoft. Well,
> tough, you should have been working with Intel instead of just
> freeloading.
>
> I mean, look at the complexity with base-and-bounds, rings, and all that
> other arcane stuff which looks like mainframes rather than
> microprocessors.
> Protected mode was clearly designed with IBM rather than Microsoft in
> mind.
I believe most folks disliked the segmentation scheme because they
wanted stuff to look like a VAX. I have used segments in a number of
OS's and they provided distinct advantages in speed (doing cross address
space copies can be incredibly fast if you set up a segment each for
source and destination...no need for bounds checking during the
copy...if the copy exceeds the bounds you'll get a fault...so you're in
a error path anyway...this is opposed to checking bounds during the copy
in software) and security. A lot of the security exploits in today's
OS's can be mitigated if not out right eliminated by using call gates
and related features. But of course, AMD when designing the x86-64
instruction set architecture eliminated segments. I find it ironic that
to eliminate various security exploits, mechanisms are being
re-introduced piecemeal that would have been implemented in a much
better way (and more general) if they had just retained segments. :-/
The 8086 and 8088 was stopgap measure, while Intel worked on the BIG
cpu, iAPX 432. I suspect that chip design had major impact on how
segments and segment registers where thought of in computer
architecture up to the 286.
Absolutely it did. The '286 was a way for Intel to recoup some of the
work on the 432. Intel's mistake on the '286 was that they expected
everyone to switch to protected mode and only use real mode as a means
to boot up (which x86 still requires...gack).
--
TTFN - Guy