Memory

Here you can discuss ReactOS related topics.

Moderator: Moderator Team

Post Reply
Strider2370
Posts: 2
Joined: Tue Nov 22, 2011 5:05 am

Memory

Post by Strider2370 »

Not sure if this has been covered, I didn't find anything in the search. Will ReactOS limit the amount of ram, in other words if you are running xp on a machine that can handle 6gb of ram only 4 will be seen by the o/s, unless you are using xp pro or a server version like server 2003, and then certain settings have to be correct for more than 4gb to be seen.
Peterbjornx
Posts: 19
Joined: Fri Jun 04, 2010 2:48 pm

Re: Memory

Post by Peterbjornx »

Well, its a little more complicaten than that, a 32-bit CPU (or 64-bit CPU in 32-bit protected mode) can only address 4 GB of virtual address space,
this can be extended using Physical Address Expansion, which allows up to 64GB of memory, but the kernel would have to support this and it would have to be enabled, but to provide more than 4GB to any single application is impossible without the OS running in long mode (64-bit), and i can imagine why only XP pro would have PAE , it must have required rewriting of parts of the kernel, and i cant tell how large a part without knowing the win2k3 source (which i dont) , but if it was a good design (i doubt this) , only the paging code would have to be rewritten, and MS wouldnt provide such updates to clients usually not needing it (home edition)
DOSGuy
Posts: 585
Joined: Wed Sep 14, 2011 5:55 pm
Contact:

Re: Memory

Post by DOSGuy »

To simplify, 32-bit OSes can only address 4 GB of RAM. So yes.
Today entirely the maniac there is no excuse with the article. Get free BeOS, DOS, OS/2, and Windows games at RGB Classic Games.
vicmarcal
Test Team
Posts: 2733
Joined: Mon Jul 07, 2008 12:35 pm

Re: Memory

Post by vicmarcal »

Generalizing a little:
16 bits OSes can address 2^16 = 65KB
32 bits OSes can address 2^32=4GB RAM
32 bits OSes+PAE 2^36=64GB RAM
64 bits OSes........Left as Homework ;)
PurpleGurl
Posts: 1790
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: Memory

Post by PurpleGurl »

Peterbjornx wrote:Well, its a little more complicaten than that, a 32-bit CPU (or 64-bit CPU in 32-bit protected mode) can only address 4 GB of virtual address space,
this can be extended using Physical Address Expansion, which allows up to 64GB of memory, but the kernel would have to support this and it would have to be enabled, but to provide more than 4GB to any single application is impossible without the OS running in long mode (64-bit), and i can imagine why only XP pro would have PAE , it must have required rewriting of parts of the kernel, and i cant tell how large a part without knowing the win2k3 source (which i dont) , but if it was a good design (i doubt this) , only the paging code would have to be rewritten, and MS wouldnt provide such updates to clients usually not needing it (home edition)
Actually, regular XP supports PAE, since PAE mode is required to make use of the "No Execute" instruction. "No Execute" is a very valuable feature in that it helps stop a whole class of exploits (like jumping into code that was loaded as data or executing past where a program was intended to execute). But XP deliberately caps the memory to under 4 GB to leave the address space clear for buggy drivers. I don't see why we cannot provide an override to where more can be used if we are not running misbehaving drivers. Being 100% compatible doesn't mean that we cannot add options (loading parameter switch or registry key) to stray outside such boundaries on a case by case basis. But that is extra work, and we would do good to make things work for now.

Also, the RTM version of XP home did allow access to memory above 4 GB, but they rewrote HAL to cap it after reports of serious driver problems because driver writers went outside Microsoft standards.
User avatar
EmuandCo
Developer
Posts: 4723
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: Memory

Post by EmuandCo »

Windows Server 2003 did not cap anything. We aim for 2003, not XP, so this will come in the future anyway.
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

If my post/reply offends or insults you, be sure that you know what sarcasm is...
DOSGuy
Posts: 585
Joined: Wed Sep 14, 2011 5:55 pm
Contact:

Re: Memory

Post by DOSGuy »

vicmarcal wrote:Generalizing a little:
16 bits OSes can address 2^16 = 64KB
32 bits OSes can address 2^32=4GB RAM
32 bits OSes+PAE 2^36=64GB RAM
64 bits OSes........Left as Homework ;)
Of course, DOS initially supported 2^20 memory addresses because the 8086 supported 1 MB of RAM, so DOS was never a fully 16-bit OS. The 80286 added 24-bit addresses (16 MB) before the 80386 went fully 32-bit. Yes, a 386 can address 4 GB of RAM.
Today entirely the maniac there is no excuse with the article. Get free BeOS, DOS, OS/2, and Windows games at RGB Classic Games.
jmalcolm
Posts: 4
Joined: Sat Nov 27, 2004 8:37 pm
Contact:

Re: Memory

Post by jmalcolm »

> Yes, a 386 can address 4 GB of RAM.

Good luck finding a 386 motherboard and/or chipset that will do that though. :-)
PurpleGurl
Posts: 1790
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: Memory

Post by PurpleGurl »

I've posted my response to the comments about old architectures at the link below, since the 4GB dilemma is the current topic:

http://www.reactos.org/forum/viewtopic.php?f=13&t=10859

Personally, I think if we support the memory uncapped, we should provide a means for individuals to cap it if they cannot find suitable drivers which won't conflict with memory over 4GB. I mean, we should be able to use buggy XP drivers if no 2003 drivers exist for our motherboard. Gateway Dimension motherboards only have XP drivers for them. There are no drivers for anything lower nor higher.

Speaking of addressing, XP can use multiple swap files, with the size of each not being over 4 GB. Right now, our swap file addressing is capped somewhere below that (2 GB?) as a bug workaround.
sh4ring4n
Posts: 120
Joined: Thu Oct 30, 2008 2:05 am
Location: Canada
Contact:

Re: Memory

Post by sh4ring4n »

Let's update this:

8080/8088 - 1MB
80286 - 16 MB
80386, 486, Pentium, K5, K6 - 4GB
Pentium Pro, Athlon, anything else 32 bit - 64 GB (not that anyone uses it, because of bad drivers -_-)
Window's implementation of 64 bit - 16TB (not that anyone would needed for 6 years)
Current implementation of 64 bit - 256 TB (see above)

I don't think we'll need 64 bit after PAE
The cake is a lie!
User avatar
EmuandCo
Developer
Posts: 4723
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: Memory

Post by EmuandCo »

And now look what maximum of memory a app/thread may use on 32 bit and how much on 64 bit. Then you know what this step is for
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

If my post/reply offends or insults you, be sure that you know what sarcasm is...
Post Reply

Who is online

Users browsing this forum: Bing [Bot], Trendiction [Bot] and 33 guests