Linked by Thom Holwerda on Sat 9th Feb 2013 18:54 UTC
Windows "The 16-bit Windows kernel was actually three kernels. One if you were using an 8086 processor, another if you were using an 80286 processor, and a third if you were using an 80386 processor. The 8086 kernel was a completely separate beast, but the 80286 and 80386 kernels shared a lot of code in common." As always, Raymond Chen delivers. If you don't yet follow his blog, you should. Right now. Click that bookmark or RSS button.
Thread beginning with comment 552030
To view parent comment, click here.
To read all comments associated with this story, please click here.
moondevil
Member since:
2005-07-08

By the standards of the day, I suspect DOS worked as well on the 286 as it did on the 386. But yea if by modern OS you mean something that used protected mode for process isolation and timeslicing, then 386 was the first serious intel processor for that.

It predates my experience, but my understanding is that the 286 included a very buggy form of protected mode, and lacked VM86 real mode virtualization. The silly engineers at intel failed to include a way to switch the processor out of protected mode, so the chipset makers actually incorporated external logic to do a hard reset on the processor every time one needed to switch between real mode programs.

So this is how windows multitasked on the 286, by continually rebooting the cpu - a feature MS continued to include a couple generations later. I kid ;)



You got it wrong. Let me explain as I was already a long time computer user on those days.

The 80286 already had everything a CPU needs for modern operating systems, at least 16 bit ones.

What happened was that Intel thought everyone would be so amazed with the possibilities of protected mode, that no one would care for real mode any longer, hence the no inclusion of programming instructions to switch back to real mode.

But MS-DOS users were reluctant to go 100% to Windows 3.0, specially given the hardware restrictions, lack of software and the novelty of the GUI for many of them.

So Microsoft needed a way to keep MS-DOS applications running inside Windows 3.0, that is how the continuous reset on Windows came to be.

Reply Parent Score: 5

MOS6510 Member since:
2011-05-12

I found this magazine, which I sadly trashed later, that featured an article about the 386.

It didn't see any need for the 386, because the 286 was so great and its development would go on well in to the late 90's.

Reply Parent Score: 5

kwan_e Member since:
2007-02-18

What happened was that Intel thought everyone would be so amazed with the possibilities of protected mode, that no one would care for real mode any longer, hence the no inclusion of programming instructions to switch back to real mode.


And history replayed itself with long mode.

Reply Parent Score: 2

siride Member since:
2006-01-02

But long mode isn't nearly as bad as 80286 protected mode, and it wasn't invented by Intel. You can still run legacy code on 64-bit processors just fine. It's just more painful than it was. But it's 2013 and if you need to run 16-bit real mode programs, you neither need a modern processor nor a modern OS.

Reply Parent Score: 2

Megol Member since:
2011-04-11

It's possible to switch from long mode, it isn't even hard (just setup the new environment with interrupts disabled and then clear the long mode bit).

In comparison the only way to return to real mode in the 80286 was to setup some data in the realtime clock module and then do a hardware reset. When the processor have initialized it jumps to the reset vector in the BIOS and pretty early the BIOS code checks the RTC memory and if enabled it jumps to a specified code location.

Reply Parent Score: 2

Alfman Member since:
2011-01-28

moondevil,

"You got it wrong. Let me explain as I was already a long time computer user on those days."

I actually agree with everything (else) in your post, but was anything factually wrong in mine? It's definitely possible but your response didn't make it clear what is wrong.

I find it very strange how intel failed to anticipate the need for a mode switch, but mainboard manufacturers did by implementing the external 286 reset logic. Was there an early generation of 286 mainboards which didn't support a cpu reset?

Reply Parent Score: 2

moondevil Member since:
2005-07-08

Your comment:

So this is how windows multitasked on the 286, by continually rebooting the cpu


This was only required if you needed to start a MS-DOS program from inside Windows. Otherwise it was running in full 16 bit protected mode with all required features.

Was there an early generation of 286 mainboards which didn't support a cpu reset?


I am not sure, but that could have been the case with Xenix systems, which did not require MS-DOS compatibility.

Reply Parent Score: 3

Megol Member since:
2011-04-11

moondevil,

"You got it wrong. Let me explain as I was already a long time computer user on those days."

I actually agree with everything (else) in your post, but was anything factually wrong in mine? It's definitely possible but your response didn't make it clear what is wrong.

I find it very strange how intel failed to anticipate the need for a mode switch, but mainboard manufacturers did by implementing the external 286 reset logic. Was there an early generation of 286 mainboards which didn't support a cpu reset?


No. There could perhaps be mainboards that doesn't support the reset protocol needed but that's unlikely.
Doing the reset itself can be done in software without extra hardware by triggering a triple fault, just load the interrupt description table pointer with something faulty and then do a software interrupt.

Reply Parent Score: 2