Re: Seeing VERSIONINFO under Vista?



80286 didn't have virtual memory map, nor virtual mode. It only had
segmentation through a LDT/GDT, it was called protected mode. The segment
base address could only go up to 16 MB.

Different sources refer to "1 GB virtual memory" of 80286. It's nothing else
as segment-based virtual memory. 64 KB*(8192 LDT selectors+8192 GDT
selectors) = 1GB. Swapping was supposed done at segment basis. Actually, by
switching LDT per task, it would be possible to have bigger VM.

Restart to real mode was later implemented through a triple fault. It was a
bit faster.


"Joseph M. Newcomer" <newcomer@xxxxxxxxxxxx> wrote in message
news:3cfj53dorqk36q109hdk9r5to5sv7fmm1i@xxxxxxxxxx
This was not an architectural restriction of the x86 family (which always
had supported
32-bit addresses, however weirdly configured) but a pin limitation issue
in the
implementaiton of the 286. However, that was not the real reason the 286
was
unsupportable. There were seriously deep architecture issues that could
not be handled in
the 286, for example, its virtual memory map had problems, and in an era
in which it was
still necessary to return to the BIOS frequently, it had been designed so
that once it
entered virtual mode, it could not be reset to real mode (this was where
the student paid
too much attention to the professor; we knew that having monotonic
mutability was critical
for security, but it required that you have software that worked entirely
in virtual
mode!). Read the BIOS code of a 286 to see how this was handled, but
don't forget your
anti-nausea pill! What it did was have a line in one of the I/O ports
that actually reset
the processor (I have this vague memory of port 60h or 61h). So when the
processor reset,
it started up in real mode. Before tweaking this bit, a bit was written
to the NVRAM to
say that this was a real-mode restart, so when it picked up the initail PC
out of the BIOS
and branched off to handle it, there was code that checked this bit and
then went off to
the virtual-to-real handler code to dispatch it.
joe



.



Relevant Pages

  • Re: cannot solve a memory leak
    ... I develop an program based on a module names 'SHM' based on ... I have then concurrent access to the memory segment. ... I note then that the virtual memory grow till 1,8 Go for the process ... configuration (more that 9 segments created for only one hash of hash ...
    (comp.lang.perl.misc)
  • Re: Using SS for non-stack operations?
    ... > third segment register as two data sources combine to affect a third. ... Well, if you're real mode DOS, and you need an extra data segment, the ... So long as you can put the third area in the code or stack ...
    (comp.lang.asm.x86)
  • Re: [PATCH 1/2] OLPC: Add support for calling into Open Firmware
    ... When the kernel calls into the BIOS, it has to do a grotesque dance that involves jumping through a chain of several segments of different flavors, thus gradually shutting down the multi-tiered address translation mechanism. ... Then, if the BIOS is actually operating in protected mode, it has to perform the inverse process, do the requested work, then go back into real mode to return to the kernel. ... f) Switching from protected mode to real mode (or in some cases, V86 mode instead, which requires an additional Task State Segment dance to set the IO permission mask) ...
    (Linux-Kernel)
  • Re: [RFT] x86 acpi: normalize segment descriptor register on resume
    ... That may be how real mode is *documented*, but that's not how it works. ... The segment descriptor registers is always active. ... The segment descriptor registers contain of the following sub-registers: selector, base, limit and flags. ...
    (Linux-Kernel)
  • Re: Prefix 0x0F is used in 16 Bit
    ... but the point was that MSDOS uses the real mode memory model. ... The segment settings are not updated until a segment register ... running in real mode combined with the simplicity of 32 bit flat pointers. ...
    (comp.lang.asm.x86)

Loading