OSDev.org
https://forum.osdev.org/

Memory map for Win3, 9x, NT4/5/6
https://forum.osdev.org/viewtopic.php?f=1&t=33498
Page 1 of 1

Author:  ~ [ Tue Feb 12, 2019 9:44 am ]
Post subject:  Memory map for Win3, 9x, NT4/5/6

Is there information in the Wiki or somewhere else about the concrete memory map for Windows 1, 3, 9x, 2000, NT, 7?

Things like where, physically, the kernel is located, where the system data is generated, the maximum size of the kernel and system modules (for ranges), where standard device/DMA memory is, where the Real Mode system image (BIOS/DOS) is stored, and so on.

A memory map for Windows 98 would be enough for a start.

In fact, memory maps for all major operating systems should be known, fully documented, such as Linux, BSD, DOS and OS/2.

Author:  Schol-R-LEA [ Tue Feb 12, 2019 10:40 am ]
Post subject:  Re: Memory map for Win3, 9x, NT4/5/6

Quite honestly, WRT Windows, I doubt that the information in question is even available, both because it involves proprietary details, and because it is going to vary depending on the system's hardware configuration and runtime operations.

Perhaps someone here knows more about it than I do, but I am guessing that the best answers you can get are "it depends", "it's confidential", and/or "it's somewhere in this general vicinity".

Excluding the proprietary aspects for the FOSS systems, the same will be true of other OSes as well. Even MS-DOS didn't necessarily have everything in fixed locations - after all, part of the reason for the IVT in real mode is to allow the interrupt routines to be located in different addresses for different versions of the system monitor/kernel (Intel had no expectations as to what OS would be running on an 8086 - if any, given that it was meant to be a souped-up microcontroller).

For more elaborate systems, ones with virtual memory management and paging - including 32-bit Windows - the physical locations are hardly relevant, and the system is likely to relocate some of them over the course of a given uptime.

To the best of my knowledge, all of the Unices - Linux, FreeBSD, NetBSD, etc. - are Higher Half Kernels, meaning that the kernel is mapped into the upper half of the virtual address space of every user process. However, it could be mapped to almost anywhere in the physical address space, in principle anyway. Quite frankly, once you have the virtual mapping enabled, the physical locations are for the most part of interest only to the kernel memory pager itself.

In other words, even if we could answer the question, it probably wouldn't gain you anything to know the answer.

Author:  mallard [ Wed Feb 13, 2019 5:06 am ]
Post subject:  Re: Memory map for Win3, 9x, NT4/5/6

As it turns out, for a closed-source commercial OS, the workings of Microsoft Windows are surprisingly well documented and published.

The "Windows Internals" series from Microsoft's own publishing division contain everything you'd ever want to know about how memory is arranged and managed in the system and is probably the best resource of its kind. I'm not sure about the legality, so won't link to them, but PDF copies of this book are extremely easy to find online.

There are also online resources like this which contrasts the Windows 95 (identical in this regard with 98) memory layout with that of Windows NT.

As for other operating systems, the amount of detail available varies. OS/2 (1.x) was largely developed by Microsoft and received a similar book treatment called "Inside OS/2". I've actually just ordered a copy since used copies are going very cheaply on Amazon...

On most UNIX systems, you can get a listing of a particular process's memory map using the "pmap" command, although the usefulness of that varies.

Author:  ~ [ Wed Feb 13, 2019 10:16 am ]
Post subject:  Re: Memory map for Win3, 9x, NT4/5/6

Probably a bit can be deduced by investigating the target OS booting process, then inspecting the size of the boot and kernel files loaded in all of their versions (to deduce a standard memory ange by those files), and the same for the maximum size of drivers, kernel modules, subsystem images, and when information isn't really available, constructing a reasonable map that works well with and without paging even for computers with as little as 4 Megabytes (a single page directory entry) or less, for good optimization.

Author:  iansjack [ Wed Feb 13, 2019 11:57 am ]
Post subject:  Re: Memory map for Win3, 9x, NT4/5/6

I'm not convinced that it is the purpose of this site to document obsolete operating systems.

Page 1 of 1 All times are UTC - 6 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/