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

Reply via email to