Behind the 4GB Memory Limit In 32-Bit Windows
An anonymous reader points us to a very detailed post by Geoff Chappell, first put up early this year, explaining how the 4GB memory limit commonly bandied about for 32-bit Windows (he is writing mainly about Vista) is more of a licensing preference than an architectural limit. The article outlines how Chappell unlocked his system to use all the memory that is present, but cautions that such hackery is ill-advised for several reasons, including legal ones. "If you want [to be able to use more than 4GB in Vista] without contrivance, then pester Microsoft for an upgrade of the license data or at least for a credible, detailed reasoning of its policy for licensing your use of your computer's memory. ... [C]onsider Windows Server 2008. For the loader and kernel in Windows Vista SP1 (and, by the way, for the overwhelming majority of all executables), the corresponding executable in Windows Server 2008 is exactly the same, byte for byte. Yet Microsoft sells 32-bit Windows Server 2008 for use with as much as 64GB of memory. Does Microsoft really mean to say that when it re-badges these same executables as Windows Vista SP1, they suddenly acquire an architectural limit of 4GB? Or is it that a driver for Windows Server 2008 is safe for using with memory above 4GB as long as you don't let it interact with the identical executables from Windows Vista SP1?"
is more of a licensing preference then an architectural limit
So it's a licensing preference, followed by an architectural limit? If so, how is this a story?
Now they will say nobody needs more than 4G of RAM.
I remember back in the day when 8M of RAM was considered too much.
Looks like Microsoft will force upgrades to Windows 7 to get over the 4G RAM limits?
Ah for the days of the AST Rampage card that got over the 640M RAM limits using EMM/EMS memory standards. Can't someone just write a RAM extender driver for 32 bit Windows for XP and Vista to get over the 4G RAM limit?
Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
Linux does not have the same limit
That's how my Commodore=128 got around the 64k limitation of its CPU, and could access upto 16 banks or 1 megabyte of RAM.
If the same technology was used with 32 banks of Windows XP space, you could get 128 gigabytes.
FOX NEWS.com should be BANNED from television and internet. Have the Congress take it over and give us Truespeak.
Does Microsoft really mean to say that when it re-badges these same executables as Windows Vista SP1, they suddenly acquire an architectural limit of 4GB? Or is it that a driver for Windows Server 2008 is safe for using with memory above 4GB as long as you don't let it interact with the identical executables from Windows Vista SP1?
Windows Server 2008 drivers have to be signed. For them to get signed, they can't do stupid shit like assume they are loaded in the memory space between 3GB->4GB, I'd imagine.
"When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
Price is the same. In fact, you can barrow someone's 64 bit disk and use your 32 bit license key to to install 64 bit Vista. It is on the front page because it is quite interesting.
I have a feeling he hit it on the head when he mentioned third party drivers as being a possible reason for the limit.
Do you Gentoo!?
My Linux boxes never have these issues. hmmm.
On a 32-bit system a single process will always be limited to 4 GB due to the number of address bits, unless the programmer goes through hoops to access a larger memory area one small piece at a time (tricks like that were common in the DOS era -- anyone remember EMS?). On Windows the kernel typically reserves one half of the address space, cutting the usable memory of a single process down to 2 GB. Thus you won't get much advantage from a 64 GB capable kernel unless you run multiple programs that all require 1-2 GB of memory. Come to think of it, such usage is most likely on a server.
Linux doesn't have the same limit. Use of the 32 bit PAE (Page Address Extension, I think) kernel enables access to 64GB of ram, much as 32 bit server 2008 does. Limiting ram to 4GB on a 32 bit system is a software, not a hardware limit. 64GB is the actual hardware limit once software workarounds are applied, to the best of my knowledge.
As soon as Microsoft finds out they will put out a patch that closes this exploit down and God help you if you are running anything in production.
But of course none of us would ever do that :)
yes, PAE has been around forever infact you can enable it in Windows 32bit versions,
But it wont do you a lick of good in MS windows, except for a very few version of windows.
http://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx
I hate to break this to you, but Windows now runs on Intel processors as well!
Imagine that?
Mod me down, my New Earth Global Warmingist friends!
Doesn't work with an OEM license, but the retail or whatever it is called gives you both 32-bit and 64-bit editions of Vista, though you may have to request the 64-bit cd from Microsoft if it was not included.
Funny... What version of linux are you using that has the same limit? Slackware and Ubuntu don't have that limit.
Do not look at laser with remaining good eye.
In fact, you can barrow someone's 64 bit disk ...
Barrow:
A mound of earth and stones raised over a grave or graves.
Your plan to put 64 bit copies of Windows in the ground and cover them with grave stones and dirt intrigues me and I wish to subscribe to your newsletter.
My work here is dung.
Seriously, there are no real technical reasons why we can't just run 64bit operating systems. Let's just stop selling 32bit ones.
I skimmed the article.
What it boils down to is : it's possible for 32-bit windows to use more than 4 gigs of memory. Microsoft doesn't allow this for the consumer licensed versions of Windows. While the article makes various allegations that Microsoft is doing this to be bad, the author found out that many device drivers intended for 32 bit windows will break if PAE is enabled. In addition, PAE is an ugly hack, and it still won't let a single thread access more than 3 gigs of RAM. These days, single applications like games and video editing software can easily use more than 3 gigs of RAM.
Long story short : Get, and use 64-bit Windows for Windows machines with a lot of RAM. Since 64-bit XP is poorly supported, and Vista is dog-shit, then that means you should be using 64-bit Windows 7.
Are there people out there who have more than 4GB of memory but still run old 32b operating systems? How uncharacteristically anachronistic of any technology enthusiast...
A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
And in other news, it costs precisely the same to press a copy of Vista Home Crippled versus Vista L337 OMG, and yet Microsoft charges differently based on which bits are enabled on the particular copy that HP installed on your laptop. This called "market segmentation". If you think a proprietary software company's going to give the cheap version all the same features as the expensive one, just because it wouldn't directly cost them more to do so, then you are hopelessly naive.
Dewey, what part of this looks like authorities should be involved?
I dunno... maybe because they think that price maximizes their profitability?
Or do you feel that they're morally obligated to only make a certain profit margin off of their price?
Many server motherboards have more then 4 RAM slots. Many DDR3 desktop motherboards have 6 RAM slots. But it is not uncommon for server motherboards to have 12 or more RAM slots. Can one get 64 GB of RAM with 6 RAM slots? Sure, we can even do it with 4 RAM slots if you can get 16 GB RAM modules. Most people do not do that. And most regular people have no need for 32GB or 64GB of RAM in their desktop. Vista jokes aside, 64GB of RAM should really be in the for servers not desktops. That can be the thinking behind the 4GB of RAM limit for 32 bit desktop operating systems. Most people who use them will not have a need for more then that.
Also when the 4GB of RAM limit was set, RAM was really expensive. RAM prices have dropped a lot over the years. While having 4GB of RAM today can be commonplace, that was not the case 10 years ago.
.. read the article, and for good reason. I want to make sure, that the frontpage article is accurate enough. Pardon my French, by how can you access RAM above 4GB, if you are running a 32-bit OS? I'm not tech savvy, how would can code access memory it can't see?
TOP DSLR Cameras Reviews of the top DSLRs
I have added you to my newsletter as requested. Email confirmation should be received in 1-2 hours.
Do you Gentoo!?
This sounds like more PAE shenanigans. Using PAE on 32 bit Windows has already been well covered by The Old New Thing.
So is that the reason that Linux has the same limit?
Unless I'm misunderstanding you and the summary (not RTFAed yet - I know, I'm bad) Linux doesn't necessarily have the same limitation. The summary seems to imply that only 4GB of *physical* memory are being supported on 32-bit systems by some versions of Windows. All OSes running on 32-bit x86 are restricted to a 4GB virtual address space, therefore neither Linux nor Windows can offer more than 4GB of directly addressable memory *per process*. But many 32-bit x86 CPUs can address more than 4GB of physical memory using PAE mode.
The base requirement for using PAE is that the OS supports it - Windows can use it, Linux can too. PAE gets you the ability to address physical memory addresses over 4GB but only if the motherboard has enough address lines to actually relay these requests to the memory. Even if you can't / don't have more than 4GB of RAM installed, it may still be worth it because PAE also lets you use NX (no execute) on 32-bit. PAE on 32-bit doesn't make the process address space any larger, so any given process is still limited to 32-bit pointers.
32-bit Linux has to be compiled with or without PAE support, so your distro should make sure it installs a the right kernel version to correctly support your hardware. Some OSes (e.g. Solaris) can switch between PAE and non-PAE at boot time, so they only need one kernel image to support both modes. I don't know how Windows handles this.
A further benefit of PAE, that I've left till last because it's really somewhat gross: the memory mapped IO regions used by PCI devices also take up part of your physical address space. This can result in a "memory hole" where your *real* RAM is overshadowed by an area of memory-mapped IO regions - the real RAM is there but you can't access it. As a result, if you put 4GB of RAM in your system and use a non-PAE kernel (only 4GB of physical address space) then you are *guaranteed* not to be able to use all that RAM because you will *definitely* have hidden some of it "behind" the memory mapped IO regions. If you use PAE mode, the motherboard can potentially remap that "hidden" RAM to a higher physical address, so that you can use it. Not all motherboards support this remapping, even if they *do* support 4GB worth of DIMMs - which is rubbish because they're claiming to support memory that the hardware will never let you actually address. It pays to be wary of this kind of craziness - my mobo has this limitation, which I discovered after buying 4GB of DIMMs (so I stuck one in another PC, which kept me happy in the end).
Uh, sorry to the parent poster, I've rambled a bit off the point I was originally making and probably just told you a load of stuff you already knew!
... Foolishing believing that you could only address 4GB with 32-bits... It's all a Microsoft conspiracy !
It does work with OEM licenses. I upgraded my 32 bit OEM Windows Home Premium to 64 bit by downloading the 64 bit version through a torrent and using my existing key. I had to call microsoft but they approved it.
No ads, all on one page, plenty of technical analysis and rigor. It was very relevant a pleasure to read.
.. this was a very well documented decision that Microsoft made. http://support.microsoft.com/kb/929605 makes it abundantly clear that they stopped allowing access to > 4GB physical memory because they found a lot of the crappy consumer device drivers would crap out when they allowed that.
Sounds plausible to me and again it definitely is NOT an architectural limit simply based on the fact that 32-bit Windows Server 2003 does support >4GB RAM - the drivers for the server platforms happen to be written sanely.
But the article seems to be about a licensing-based restriction on allowed physical memory, depending on your version of Windows. So even if Windows and your hardware supports PAE, it may not let you use >4GB RAM. (nb. PAE is potentially useful even if you don't have more than 4GB RAM, since it gets you the NX bit).
What about loading the unaddressable space as a RAM disk, then telling the operating system to use it as "Virtual Memmory"? I've seen a possible solution here, but have yet to try it myself.
Who cares about the PAE hackery the past? Can you even buy a new computer today that cannot at least address a 64-bit memory space? This article is like a decade too late if it ever had any salient point to make at all.
Heck even windows XP is available on 64-bit platforms!
I have added you to my newsletter as requested. Email confirmation should be received in 1-2 hours.
Mr. Brinestar, confirmation of E-mail confirmation received at 3:31 PM EST:
Subject: Subscription Confirmation for Binestar's newsletter that you requested on slashdot.
This is an automated email confirming your subscription to Binestar's newsletter as requested in your slashdot post here: http://tech.slashdot.org/comments.pl?sid=1347281&cid=29191073
There is currently no way to remove yourself from this newsletter subscription. I hope you knew what you were doing when you subscribed!
Having completed reading your first newsletter (posted above), I found it vapid and devoid of the call to Microsoftalypse that I look for in all the periodicals I read (most notably my own newsletter entitled eldavojohn's Microsoftalypse that has a staggeringly high readership of a one eldavojohn of Slashdot.org).
Furthermore, to my horror, I noticed it was sent using an account from a hotmail.com address. Considering this datum, I found your footnote warning eerily apt. I shall post a scathing review of your newsletter (seven times longer than necessary) under the guise of frequent and unquestioned Slashdot contributor Bennett Haselton on the morrow. Good day, sir!
My work here is dung.
It is free to upgrade 32bit vista to 64bit. It is same product, different installation media anyways. Same actication key works for both "versions". I am happy to have upgraded my old 32bit OEM vista home premium to 64 bit equivalent. Just get installation media somewhere (microsoft offers free download for non OEM customers). I have not encountered any problems because of this and I am mostly plaiyng games on vista.
It would be pretty hard to get worked up about what you lose from the memory mapped regions(except on aesthetic grounds), except that your video RAM is one of those regions. All the weird legacy stuff below 16 megabytes is very nearly a rounding error; but with cheap, basic graphics cards packing 512megs(and high end cards pushing 1.5gigs, and possibly more than one card per system) you can exhaust a fair slice of the first 4GB that way.
Last time I checked, using software wasn't an exclusive right protected by Copyright. Why must you get a license to change a setting in the software that is legitimately on your computer?
Weren't 32-bit machines entry level before 1990? Yet, it took until MS shipped XP in 2001 before most consumers were running a 32-bit OS. We'll probably be running 64-bit Windows by 2030.
Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
Why is /. greenlighting yet another article just for the sake of MS-bashing? Other posters have already pointed out the remaining process memory limits and consumer driver issues that make this a non-starter technically. Not to mention that there's not much (any?) consumer-level 32-bit hardware that has BIOS/Northbridge support for more than 4GB of RAM. Since the 64-bit versions don't cost any more, who cares?
But this guy is saying that Microsoft is doing something "illegal" because he was able to hack his system and enable PAE, even though MS charges extra for that in their server OSes. Is it "illegal" for Ford to sell me a car that's computer governed to 105 MPH even though the engine can get it up over 130? Can I complain to the FTC if I chip the car to remove the limit and then destroy the transmission?
No sig, sorry.
Meh, us Linux users sneer at your pathetic Windows barrows. We put our stuff in SSH tunnels.
AT&ROFLMAO
PAE is a shitty hack and should no tbe used by anyone. Use a 64-bit OS.
MS is right to kill it in licensing. Servers that are stuck in 32-bit land for some reason may need more memory, PAE is a necessary evil.
Desktop users simply can't be supported because of all the shitty drivers out there that assume a 4 GB upper bound.
Isn't DMA limited to 4GB on most devices? That would make it hard for a device to work with memory that is remapped. Linux does support 64GB with PAE on 32-bit, but the extra work to support PAE hurts performance. Even linux kernel folks recommend 64-bit when you get above 8GB or 16GB.
In the USA, we like stuff watered down, like beer, television, and freedom.
I didn't see it in the article - and got sidelined by the whole PAE thing - but I seem to remember changing my Windows NT 4.0 Workstation to NT 4.0 Server by simply loading the HKLM hive (from another machine) and changing one value.
...oh yes: Kernel-WindowsMaxMemAllowedx86
Reading further....
Okay.
The Kai's Semi-Updated Website Thingy
While I am certainly not a Vista fanboi, I would like to say that once I got it properly configured, it has been running very smoothly since the beginning of the year. It boots in seconds, does everything I need it to do, and is snappy as I've ever hoped it to be.
64-bit Vista Ultimate SP1 on a 4.2 Ghz Core Duo (OC'd) with 8 Gb ram and 1 Gb Nvidia card. If you have an older machine, I wouldnt suggest Vista in the slightest, but with modern hardware and the proper configuration (Yes, I still use Aero), it runs well. Well enough that I am happier with it than I was my old 32-bit XP machine.
Or, you could install Linux or FreeBSD on a PC.
In the USA, we like stuff watered down, like beer, television, and freedom.
is more of a licensing preference then an architectural limit
So it's a licensing preference, followed by an architectural limit? If so, how is this a story?
Read the article: Physical Address Extension (PAE) can access up to 64 GB of RAM.
Windows Server 2008 (32 bit) can access up to 64 GB of RAM.
The exact same PAE in Windows Vista (32 bit) is artificially limited to 4 GB.
Microsoft is artificially limiting the 32 bit version of their software to access only 3.2 GB of memory in order to sell the 64 bit version, when both can actually access up to 64 GB of RAM.
Nothing new - business as usual - "What is good for Microsoft is good for (corporate) America!"
I hadn't realised that the video RAM was in those regions. I guess it makes sense, though, it has to be somewhere :-) That's going to be a bit hit in physical address space right away.
However, AIUI the other PCI MMIO regions can also waste more space than you'd expect since (depending on the machine) the BIOS sometimes sets them up in a sucky way and wastes way more space than it needs to. Which sucks.
Yeah, if you have a device that can't DMA above 4GB (as you say, this is common) in the case where you're DMA-ing to memory about 4GB the kernel often has to allocate "bounce buffers" in lower memory, DMA to them, then copy using the CPU.
That's the case for 64-bit systems, too. But with a 64-bit address space available, the kernel can probably keep mappings to all memory so that the copies are faster (I assume it does but I don't work with 64-bit and have never checked). On 32-bit, the kernel would have to create a temporary mapping each time a copy was needed, which would slow things down even more.
There seem to be a surprising number of systems out there that have >4GB of memory but are not 64-bit capable though - lots of people bought lots of cheap RAM for their 32-bit servers.
Does 64-bit cost more than 32-bit now?
So is that the reason that Linux has the same limit?
I think that it is more related to the reason that 2+2=5 and the Earth is flat -- in that it doesn't.
To the haters: You can't win. If you mod me down, I shall become more powerful than you could possibly imagine
Even 4GB is too much for 32 bit WinXP. The OS will only let any app. use a maximum of 2 GB.
Unless you enable the /3GB switch in boot.ini, which leads to other problems: your registry system hive must now remain smaller than 12 MB.
I say no more
So it's a licensing preference first, and -then- it's an architectural limit?
Interesting.
After reading through many of the many other pages on geoffchappell.com I can't help but feel he's one of the ones whipping the horses at the front of the anti-competitive & monopoly bandwagon.
Yes, we all know Microsoft is convicted monopolist, but sheesh, his website makes me want to break out my tin foil hat with all of his conspiracies!
And for the record, I know about PAE in 32-bit systems, and so do MS; and we both seem to agree it's total crap and should be hidden from the everyday user.
There are any number of expensive software products where features are licensed separately, and the only different between Fubar Basic and Advanced Fubar Enterprise is a license key. The basic product has the same binary, with some features disabled. It should be no surprise that Microsoft does this.
What's the other side to Microsoft, sir? Your sentence in your sig seems to have been cut off.
I work for a technology company and Microsoft partner that routinely does these same shenanigans. It's about testing. It costs a lot of money to put together larger systems and test them rigorously (our testing cycle is close to a year long).
It costs even more money to support said larger systems. When a customer with a large system has an outage, we have to reproduce the problem internally to figure out how to fix it. That may involve a lot of expensive equipment on top of the people time to set it up, configure it, load it, etc.
Our licensing and support fees are structured accordingly.
If you have an AGP video card you will not be able to access all the memory. AGP video is memory mapped just below the 4GB mark.
I tried via the microsoft site to get a 64-bit CD shipped but it would not accept my 32-bit OEM license key. I called to see what the deal was and they told me I couldn't because I had an OEM license. I guess persistence is the real key.
but with something like Linux and how it is developed, you don't have it being designed for marketing. With Windows, Microsoft does things like restrict the number of TCP/IP connections either in software or in their license. They disable part of the system to limit its usefulness and sell it at a lower price as in Windows XP Starter Edition and almost did the same with Windows 7 with all that talk about only being able to run 3 applications.
So there's been a hardware based solution to this since the days of the Pentium Pro( early 90s ) and it is used by open source while Microsoft uses the 4GB limit as a tool to get people to pay up. Surprise, that's why Microsoft has so much of your money in their bank account. These kinds of things are old news but it always helps to let others know that in the open source world, these restrictions and/or features get worked around to improve the product instead of getting used to extract money.
LoB
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
While XP x64 is dated I'm not sure I understand all the hate I see for it. I mean beyond the normal MS hate. (Oh and I hate MS too, got my card stamped at last weeks meeting. Hail brothers!)
As far as it goes thou on my Win desktop that I have I've been running XP x64 for a while now and it does just fine. Including games. And as a kicker it does it all with no swap file. Never even bitches about it unless the OS actually starts to run out of memory. Which I think has happened a grand total of once when I had like 4x Firefoxes open as well as a number of other things.
Until Win7 is polished I going to stick with XP x64 for my Windows machine.
Really, I know what I'm doing...Ohhhh, look at the shiny buttons!
Sounds great, I can't wait until I can play all my favorite games on Snow Leopard. Lord of the Rings Online, Left 4 Dead, Section 8, and I'm excited that Operation Flashpoint: Dragon Rising is going to work flawlessly.
What's that you say? Macs are only for people worried about productivity or pretentiousness? Because THAT is what I want to do with my free time; work all day, come home for my free time, then I get to... work all fucking night OR be an egotistical fucktard! Sign. Me. Up.
You're not just a toolbag, you're the entire fucking shed.
As far as I can tell they definitely won't send you a disc for the OEM copy... but according to several sources that I have read it is completely legal to obtain a 64 bit copy another way and do the install. They just won't provide the media.
I have 4gb installed on my Windows XP home SP3, yet, it only sees 2.49GB. It'd be nice if Microsoft could let itself see all the resources the computer can offer...
Just like that airplane seat, hotel room, rental car, theater ticket, etc... the same thing is sold for different prices according to willingness to pay. Just like senior discounts.
It's econ 101. demand curve pricing. if the demand versus price curve is actually curved with a long tale then maximum profit is achieved when a company is able to segregate consumers by willingness to pay. Your revenue is the are under the curve. and single price just gets the area of the larges rectangle you can place under the curve.
Econ 201: in second term economics we learn that the price demand curve is not actually a single curve but is a family of curves parameterized by the total number of units manufactured. So as the company is able to sell things at different prices to more people the entire curve shifts down, making it either cheaper for everyone, or mor profitable for the company depending who gets the benefit of the increased production.
even though it's galling to know the product you bought is just a dumbed down version of a beter one at no difference in manufacturing costs it may well be much cheaper than it would have been had they sold one thing at one price.
Of course it may be that your customers hate this. a few companies like Apple and Saturn use a more price fix model precisely because it fits their style of minimizing aggravation. But even they have college student or military discounts.
Some drink at the fountain of knowledge. Others just gargle.
Uh, sorry to the parent poster, I've rambled a bit off the point I was originally making and probably just told you a load of stuff you already knew!
Aw come on, admit it - you typed that sentence first didn't you!
Many server motherboards have more then 4 RAM slots. Many desktop motherboards have 6 RAM slots. But it is not uncommon for server motherboards to have 12 or more RAM slots. Can one get 64 MB of RAM with 6 RAM slots? Sure, we can even do it with 4 RAM slots if you can get 16 MB RAM modules. Most people do not do that. And most regular people have no need for 32MB or 64MB of RAM in their desktop. Win 3.11 jokes aside, 64MB of RAM should really be in the for servers not desktops.
The Kruger Dunning explains most post on
In other words, Windows is bona fide crippleware.
The article you failed to read pointed out that, although some Windows distributions claim to support PAE, they still artificially set the 4GB limit while the same machine running a PAE-enabled linux kernel benefits from a 64GB limit.
So, as GP rightfully pointed out, no, linux does not have the same limit as Windows.
Slashdot, fix your code or at least hire someone who is competent at it to do it for you.
If you remap the memory from 3.5-4G above 4G, you can put the PCI memory there and stick the .5G of ram on the end of your existing RAM.
"We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
How is this possibly a troll? XP 64 IS terrible, Microsoft didn't even recommend its use outside of certain professional environments.
-- "So they told me that using the download page to download something was not something they anticipated." - Bill Gates
The loss is all microsoft's. My company uses Cisco VPN dialer which works on 32 bit Vista but not 64 bit. Year and a half ago, unknowingly, I purchased a new PC with 4 GB RAM and had to return it. I am back to my old PC which already has 2 GB RAM. I am in no mood to buy a new machine if it comes with memory limit which is only 50% more than my 7 year old PC. I will purchase a new PC when my company supports 64 bit Windows (At this point, I am not prepared to totally ditch windows. Too much legacy stuff). If it supported more RAM, I would have purchased a PC 18 months ago and would have been ready to upgrade to Windows-7.
My first "PC" was an IBM 360. Submitted jobs by batch and waited minutes or hours for the job to get queued and run.
I could go on, but will summarize and say I've used and abused everything from a Sinclair kit to large mainframes.
I can't remember ever NOT screwing around to get more available memory. Heck, I never met a UNIX kernel I liked...with default settings, at least.
At one point in my career, I knew more about things like QEMM (Quarterdeck Extended Memory Manager) than any human should.
One time, I edited "mploader", the script for Microsoft MultiPlan (Excel's grandad), on a Xenix system to increase the available memory from 32K to 96K. Could have gone higher, but the total system RAM was only 768K. The CFO had run out of resources on a spreadsheet he was building.
The point is this; finding ways to get more memory started Day One. TFA is old news at best and a waste of...wait for it....memory!
I am my own gestalt.
The 32-bit x86 CPUs can only access 2^32 bytes (4 GB) of physical memory. Windows and other OS's implemented work arounds like PAE (Physical Address Extension) which allowed the kernel to reserve part of physical RAM to use like a disk paging file. PAE worked, in a way, but the overhead of moving bits of memory from higher addresses to lower addresses (so the CPU could access the contents) and back was hardly worth the effort. Calling this a "licensing issue" is complete BS.
Seriously, what apps don't run in 64-bit Windows? I ask because I run 64-bit Windows at home and at work, and part of what I do is check our apps for compatibility. Here is a list of some of the programs I've tested and verified work in 64-bit Windows. This is not a complete list, just off the top of my head:
Matlab 2008, HFSS 11, ADS 2008, VMWare 6.5, Visual Studio 2008, Firefox 3.5, Thunderbird 2, Office 2007, Adobe Audition 3, Sony Vegas 8, Geovision Multiview 8.3, Winamp 5, 7zip, Sonar 8, Play 1.2.5, Textpad 5.2, PerfectDisk 8, Adobe Acrobat 9, Adobe CS3, Eclipse 3.3.2, Xming 6.9, IMGBurn, Cadence 16.01, Mass Effect, World of Warcraft, Civ 4, Galatic Civilizations 2, Team Fortress 2, and so on.
In total I have probably tested over 300 programs of all different kinds that work. By work I don't mean "Run with errors," I mean that run like they did on a 32-bit system.
The 32-bit compatibility layer in Windows is extremely good. More or less any usermode 32-bit software seems to run, nor problems. The only compatibility issues I've run in to are:
1) Drivers. All drivers have to be 64-bit. In general, these days most companies have 64-bit drivers out. However if you have a piece of hardware that you need and it doesn't have 64-bit drivers then you are SOL.
2) Programs that make use of a kernel mode component. If you have something like a virus scanner or firewall that needs a kernel module installed, that module must be updated to 64-bit. There is no 32-bit code in a 64-bit kernel, no exceptions.
3) 16-bit programs. MS has stated there is no 16-bit compatibility layer in 64-bit Windows.
So seriously, what programs are you finding that don't work?
I thought the BIOS could just remap the rest of your RAM above 4GB, as shown in the article.
This isn't relevant to netbooks for two reasons:
1) The netbooks don't support more than 4GB of memory. As such trying to find a 32-bit hack to access more than 32-bits of memory isn't useful.
2) The netbooks don't support PAE, the hardware hack that is needed for more than 4GB of memory in 32-bit. Thus none of these hacks would work.
So if you are running a 32-bit netbook, fine, you have to run a 32-bit OS and cope with 4GB or less RAM. If you run a desktop that supports more than 4GB of RAM in hardware, it also supports 64-bit, run 64-bit.
I think some graphics cards either don't need the GART at all (can do high DMA natively), or don't need all of the GART's entries (maybe they just need a few). If GART hardware is present, the OS can effectively hijack some of the GART entries and use it as a general-purpose IOMMU, allowing devices limited to 32-bit DMA to do DMA to high addresses without bounce buffers by using the GART to translate from 32-bit space to high addresses .
Surprised at the XP64 hating out there. When it was first released, drivers were in rough shape. Today, I've found most of the motherboards and video cards I buy have Server 2003/XP64 support - that covers 99% of the drivers I normally bump into. Heck, I even got my laptop running XP64. That was a bit of a treasure hunt compared to the typical build, but still.
Anyhow, had a different point to bring up... There are a few games and apps that don't - but for the most part it just works. For those that don't, many cases it is just a brain dead installer. (Hey Apple iTunes developers, I'm looking at you!) Turns out you can fix an installer where the people did not think to test/support XP64 by modifying the MSI installer to not rule out a properly patched version of XP64.
Download Microsoft's Orca MSI editor. (Find it in this CAB, or google for it) Look for a "LaunchCondition" property, probably set to "VersionNT64>=600" and modify it to "VersionNT64>=501". Shazam! Very good chance it will just work - at least the installer will not stop you from trying to run it.
Some people (Apple) still need to update drivers, etc... but more often then not it works.
+++ UGUCAUCGUAUUUCU
However these is the equivalent of the Rosetta emulator. Actually, there is far superior to the Rosetta emulator. It's called WOW64, Windows on Windows. It is a compatibility layer that allows 32-bit software to run on 64-bit Windows. It isn't an emulator, it is just a translation service. 32-bit apps run in their own 32-bit virtual space (per app) and the processor hops in to a 32-bit compatibility mode when executing them. WOW64 handles all translation calls to the 64-bit OS. Compatibility is essentially 100%, speed is 100%, and there's no extra stuff to load, the app runs side-by-side with 64-bit apps.
You can, and I (and many others) do run 64-bit systems with 32-bit apps on them with no problem. I don't even know or care which apps on my system are 32-bit. They all work just the same.
Oooh, my brain hurts.
Often would have done - but this time ;-) I thought of it roughly in the middle of the rest of my ramble. Maybe I'm just slow today!
What im wondering is why this is news....we were using PAE like a year and a half ago....and to be perfectly honest the entire conversation is irrelevant, if your a guy who needs to use 4gb of ram or more, than chances are you know about the 32 bit limit and the first thing you did was get a 64 bit OS.
To be honest i dont even know why windows 7 has a 32bit option, theres no need for it anymore, 64 bit has very good backwards compatibility, and in a couple years, 32 bit OS will be useless.
They should be selling the 64-bit version. They should be preinstalling the 64-bit version. People *shouldn't* be using the 32-bit version, becuase there's still a very real architectural limitation in the 32-bit version: a given process can only see 3 GB of memory, no matter how you set up your licensing.
Mmmm - there was a guy at AMD (I think) working on (ab)using the GART to remap DMA so that virtual machines could drive DMA-capable hardware without knowing about the real memory layout on the host. He was doing this for Xen (which I also do work with, sometimes) but I don't know what came of it.
General purpose IOMMUs are good for all kinds of tasty stuff, so it would be nice to have them more widely available - it seems to be coming.
That for an app to use more than 2GB of memory on a PAE enabled system, the app itself has to specially support and use AWE (address windowing extension). Only apps that are coded to do that can make sure of more than 2GB. Well those are extremely rare. MSSQL server is the only one I know of. Any other apps is still limited to 2GB.
No such problems on a 64-bit system. Each 32-bit app gets 4GB of virtual address space. That means normal apps can access 2GB of memory, any app flagged as large address aware can get 4GB of memory (programs like LaaTiDo can flag any app, though some will crash because of bad pointer math). Any 64-bit app will have access to as much physical memory as the system has, without any special coding.
Thus these days playing with PAE is silly. If you buy a desktop computer that supports more than 4GB, it also supports 64-bit. For that matter, if you buy a desktop computer period, it is almost impossible to get one that isn't 64-bit. So, if you need more memory, run 64-bit. If you don't, well then run whatever you like.
Yeah as TFA says MS limits the physical address space in current client versions of windows (IIRC XP SP1 did not have this limitation but that is no longer supported). The author of TFA has found a way to hack out this limitation.
IIRC MS claims they do this due to driver compatibility issues, the MS haters would claim it's just to push people to the server versions. I suspect the reality is a bit of both.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
Big pet peeve of mine; then vs. than.
I agree with the intent of what you wrote. However, please note the following:
- what you wrote constitutes an incomplete sentence;
- semicolons are for lists, commas are for correlation.
People have gotten so lazy in their pronunciation, that they cannot determine which word they are even using. ...sigh
The specific thought that you wished to convey is obfuscated due to the following:
- the use of the comma is inappropriate as it introduces an unnatural pause;
- "are even using" is a split infinitive;
- the use of the noun "pronunciation" is inappropriate in this context unless you were reviewing an audio clip of the post or made an odd leap in logic.
Now I will leave it to other grammar nazis to trash the grammar in my post.
What the hell is a Windows "distribution"? This isn't Linux.
Don't take life so seriously. No one makes it out alive.
I RTFA and I have to say, I think the author is attempting to find a conspiracy where none exists. If the author had searched MS's website for information on PAE, he would have soon learned why MS decided to remove PAE, and thus support for more than 4 GB of physical memory, from XP SP2.
Why this is a non-story:
1) MS removed PAE in XP SP2 because of incompatibility with 32 bit drivers and resulting instability issues.
XP did support PAE before SP2. However, Microsoft received complaints from users regarding compatibility and instability issues resulting from the use of 3rd party 32 bit drivers. Many users were getting BSODs. It was only then that MS chose to remove PAE from XP SP2.
This decision makes quite a bit of sense. Manufacturers were unlikely to update drivers to include PAE support because, at the time, 4GB+ of memory was very uncommon, and relegated to power users who had a specific need for large amounts of RAM. The situation has since changed due to the plummeting cost of RAM, Vista's need for greater memory resources, more demanding applications, and Superfetch, which allows users to make use of idle memory to preload commonly used applications. My own experiences on Vista x64 show that programs start up significantly faster than in XP due with Superfetch enabled.
Now that 64 bit drivers can be had for pretty much all modern hardware, there is no reason to use a hack like PAE to support more than 4 GB of RAM. Most machines sold by Dell, HP etc. now include 64 bit Vista if the machine has 4 GB of RAM, which is now becoming standard.
See below for MS's explanation of the removal of PAE from SP2.
Source: MS Website, "Operating Systems and PAE Support", June 14 2006 - http://www.microsoft.com/whdc/system/platform/server/PAE/pae_os.mspx
Driver Issues Typically, device drivers must be modified in a number of small ways. Although the actual code changes may be small, they can be difficult. This is because when not using PAE memory addressing, it is possible for a device driver to assume that physical addresses and 32-bit virtual address limits are identical. PAE memory makes this assumption untrue.
Several assumptions and shortcuts that could previously be used safely do not apply. In general, these fall in to three categories:
Buffer alignment in code that allocates and aligns shared memory buffers must be modified so that it does not ignore the upper 32 bits of the physical address. Truncation of addresses information in the many locations this might be kept must be avoided. It is necessary to strictly segregate virtual and physical address references so DMA operations do not transfer information to or from random memory locations.
PAE mode can be enabled on Windows XP SP2, Windows Server 2003 SP1 and later versions of Windows to support hardware-enforced DEP. However, many device drivers designed for these systems may not have been tested on system configurations with PAE enabled. In order to limit the impact to device driver compatibility, changes to the hardware abstraction layer (HAL) were made to Windows XP SP2 and Windows Server 2003 SP1 Standard Edition to limit physical address space to 4 GB. Driver developers are encouraged to read about DEP.
2. Windows isn't trying to screw users over by purchasing a higher priced 64 bit version. Any retail version of Vista or Windows 7 comes with both the 32 and 64 bit installers. As others have mentioned, it's also possible to activate 64 bit Windows with a 32 bit OEM key.
3. PAE will not allow a single process to use more than 4 GB of RAM so a true 64 bit OS is still superior for programs that need large amounts of memory such as HD Video editing, editing of large images in Photoshop etc.
I'd also like to add that it gets crazier since you have to deal with the CPU and the chip set as well. If your CPU has a 32 bit memory controller section in it, PAE does nothing. This includes almost all Intel CPUs other than the newest 64 bit ones. But it's more insidious than that, even. People who are trying to use PAE on Linux and on homemade "Hackintosh" setups are finding that the Intel 64 bit chips work in either 32 bit or 64 bit mode. IE - if you are using a 32 bit OS, the 64 bit addresses and sections are just simply turned off. You have choice A or choice B. Blame Intel here.
So long story short, you need an AMD 64 bit processor (though I believe the *very* newest Intel 64 bit ones finally do this as well now, but they are expensive) which has the ability to use 64 bit memory space even when running in PAE/32 bit mode.
Then you have the second issue, which is the memory controller on the motherboard. If it's not 64 bit capable, it hits a wall as well. This includes ALL Intel chip sets, which enforce the same "32 bit/64 bit make choice A or B" nonsense as I wrote about above. If either link in the chain is messed up or hits a problem, you simply can't have more than 4GB on any single process.(the usual point why I get asked this is because someone is trying to run Photoshop or editing software and needs 6-10GB for that one process) Also, certain boards cheap out and have 32 bit only controllers as well - so you often have to look for a specific model as Lemming Mark mentioned above. In short, you need to get lucky or use a dedicated server board. This is a source of endless frustration for people trying to make home-made Macs work with more than 4GB. (and it's a very small list of combos that actually work at that)
So the CPU has to support PAE, the motherboard, the Northbridge, and the chip set/BIOS. Because more than half of the CPU market is/was using Intel's crippled designs and Microsoft don't want people's machines bricking 90% the time they tried to run more than 4GB(due to needing all four variables to work together for the PAE hack to work), Microsoft limited 32 bit to 4GB/turned PAE off, and left the 64 bit to the pros who knew how to do it.
In short, just buy a 64Bit capable OS and board and run it that way rather than trying to juggle all the variables. You've spent the money on a 64 bit processor, 8+ gigs of DDR3 memory, and a 64 bit capable motherboard, so there's no reason to cheap out and try to stuff an old haggard excuse for an OS on top of all of that.
.
Why should I have to beg Microsoft to be allowed to use my own computer hardware?
The limitiation comes from two areas:
1. Backwards compatablity with drivers not coping with >4GB physical addresses. Linux doesn't have this issue as drivers are typically 64 bit clean and anyway, you can check the source.
2. Licensing limitations (the main cause of the problems.)
Windows boots into PAE if the /PAE switch is on the kernel command line, or if the /NoExecute switch is present; which needs PAE on to implement NX as you point out. One image, chosen at boot time, although I wouldn't be surprised if PAE is normally *on* for the vast majority of Windows installs out there because NX is used by default ever since Windows XP Service Pack 2.
Annoyingly, the limits in Windows are not the amount of RAM, but the Amount of Physical Address Space. Thus, even if your motherboard does the remapping as you say, you still can't use 4GB of RAM on standard 32 bit editions of Windows. (Trust me, I've tried.) You need enterprise or datacentre.
Contary to what a lot of commeters here think, turning on PAE does NOT break drivers *at all* anywhere. It's the addresses above 4GB that do. And AWE is available on ALL windows versions.
There's a good summary at http://blogs.msdn.com/carmencr/archive/2004/08/06/210093.aspx
(AWE is expanded memory, 32 bit OS edition really. Lets 32 bit programs use over 4GB of RAM by letting them remap a window between their virtual address space and the physical space underneath.)
Linux has absoultely no incentive to disable features in order to push higher-priced editions and if a driver is broken, they fix it. That's why these issues don't exist on Linux. :)
Funny... What version of linux are you using that has the same limit? Slackware and Ubuntu don't have that limit.
Yes and no. If you install the standard 32 bit version of Ubuntu, you have a limit of (a bit less than) 4 G but you can get 4+ G by installing the server kernel. The reason is that they made a policy decision on the kernel compile options which, for the desktop, didn't include the hugemem patch. You could also take the standard kernel source code and recompile with hugemem enabled, but installing the server kernel is easier and it will probably not make a lot of difference for a lot of people.
I don't know about Slackware but I would guess that the same applies.
AGP is practically obsolete these days, so I doubt that would be an issue for most people. All computers I've seen within the last 4 years or so have not had AGP ports in them but use PCI express. (My oldest machine from 2003 has AGP but I only use that for low-end server purposes and there is no card in there right now anyway)
"It is a denial of justice not to stretch out a helping hand to the fallen; that is the common right of humanity."
That's complete bullshit. If you purchased the 32 bit version of Vista, you can go on the Microsoft website and order the 64 bit version for a little more than the cost of shipping. Or you can just buy 64 bit to start with - there's no price difference between the 32 bit and 64 bit editions.
Actually, it still depends on the BIOS and hardware, even under Linux. If someone has an AGP system, they probably also have a 32-bit MMU and won't be able to access all 4GB.
Intel has had 32-bit CPUs with PAE support since before 64-bit CPUs existed. AFAIK they specced PAE and AMD just implemented it. I think it might actually date back to the Pentium Pro, though I've not checked that's true for sure.
However, one source of trouble is that even years after they introduced it not *all* Intel CPUs actually support it. I've generally had the impression that most do, however I suspect they would have disabled it in their budget (and possibly in their mobile) lines. I had a Celeron M laptop that didn't support PAE but as it's both mobile *and* budget I never figured out who to blame ;-) I guess that's not entirely unreasonable as those chips probably wouldn't live in a motherboard that could address any more memory. These days it'd be a bit more annoying to lack PAE, even on small memory systems, since the NX bit depends on PAE being enabled.
I actually thought that all 64-bit x86 CPUs were backwards-compatible with PAE, however what you say seems to contradict this. I wonder if in the case of the hackintosh it's possible that it's a difference in chipset support or MacOS behaviour, rather than a CPU problem?
As you say, though, at the end of the day the approach that allows you to make the most of your memory is to have a decent mobo and a 64-bit CPU (of whatever make). That way you can use all physical memory and processes are not limited to a 4GB address space.
If you want the icing on the cake, either get PCI devices that can DMA to all your available physical memory (many won't be able to) or get a system with an IOMMU (and an OS that supports it) to compensate for those devices that can only access limited areas of physical RAM.
People *shouldn't* be using the 32-bit version, becuase there's still a very real architectural limitation in the 32-bit version: a given process can only see 3 GB of memory, no matter how you set up your licensing.
Whereas the 64-bit version only suffers from limitations on available component drivers...
Windows was switched from displays RAM installed to displaying RAM in use after the whole 4gb limit + GFX using addr space caused users to freak out. (Where is my missing RAM).
Not only that but I have to call FUD, as there is a REASON why 32bit XP and Vista don't support more than 3.25 and it AIN'T about licensing. You want to know why? One word-drivers. I have found that there are plenty of seriously flaky drivers that act buggy as hell if PAE is used, and that is with the standard 3.25Gb limit. Capture cards, some of the older Sata and IDE cards, and those are just the ones off the top of my head that I have run into personally.
So while there are those that want to scream about MSFT and look for any reason to have a shitfit, considering the 64bit and 32bit OS editions are the same price it makes no sense. More likely MSFT tested extending PAE like they allow with 2K3 and found that non server (read Cheap Chinese Crap) drivers get uberflaky and fuck up with large amounts of RAM enabled. This of course would lead to a HUGE spike in the "Why don't my shit work? Fix it!" calls to MSFT, and they decided it just wasn't worth the hassle. At least with X64 they can say "Hey it ain't OUR fault, as we didn't build the device. Contact the manufacturer for a driver" whereas with 32bit folks would go "I GOT a &%&^ driver! Your OS don't work!" thus raising support costs.
So in a way it IS a business decision, but it ain't got to do with licensing. It has to do with the millions of 32bit drivers out there, a probably not insignificant amount of which don't play nice with PAE over 4Gb.
ACs don't waste your time replying, your posts are never seen by me.
This gets +3 LAWL
Get your Unix fortune now!
Or you could just upgrade to 64bit hardware and software and stop trying to get around the limit with hacks that break things. Intel and AMD have been selling 64 bit processors for a long time now.
Simple question... Is PAE a reincarnation of LIM EMS, built into the CPU? (After all, the "I" in "LIM" stands for "Intel").
Windows 3.1x calc: 3.11 - 3.10 = 0.00
The 'crappy drivers excuse' is plain FUD. When PAE is enabled, driver code doesn't operate in PAE space.
The extended address space is used by apps' user memory area, not drivers, that get loaded in kernel memory.
Device drivers don't and shouldn't be aware of the extended memory areas, they only need to know about the address spaces used for DMA operations.
If it were an issue, Microsoft could very easily leave PAE off by default, and only allow it to be turned on when all your drivers are properly WHQL certified for PAE installs.
It's to describe everything you get given on the install media because technically a solitaire game for instance is an application and not a part of the operating system. Just calling it an OS doesn't really fit, and there are a lot of different versions of MS Windows you can get with just a few differences on the install media. The server versions have a lot of the same binaries.
Personally I'd call it different versions of MS Windows but I think the above poster thought distributions was close enough.
Example of several Windows distributions:
Windows XP
Windows XP Media Center Edition
Windows Server 2003
Same cat, different skin.
We have a first gen Heidelberg 9110 with Version 4 software ON THE PRINTER. Can't upgrade since each version upgrade (currently 7.0) costs $$$$ which is a waste of money for a printer that's near it's EOL. We have used the same Dell PC with Windows 2000 SP2 since 2000 when the company purchased both products. Vista 64 bit drivers currently are available for the 7.0 version PC driver only. Version 4 is good for 2000, maybe XP.
:)
So where did we spend our money? On THREE 250ppm b&w printers and a brand new Dell Studio PC with Intel Core i7 920, 6gb of ram, and Windows Vista 64bit OS. The problem is that this is to spool large files over as quickly as possible using PCL drivers. Variable addressing data per page. Times a few million, you get the idea of the number crunching. Only thing is we have a USB key with a license code to send this over to the printers for one PC. Can't use the old PC without ripping out the $30,000 license key and placing it back in the old PC to send files to the Heidelberg. Not an option at this point. Would Version 4.0 Win 2000 drivers work on Vista 64 bit? Haha, no. We could try the 7.0 64bit PC drivers (independent of the 4.0 software on the printer), but not sure they're all that compatible. Or downgrade to Windows XP 32 bit. Now you start to see the problem? We would lose half the ram on the PC if we downgraded and so a software hack might be useful in our case. Printer spool sizes do go up to 2gb from time to time and cause headaches with each page spooled around 100mb each. We can't wait 10 minutes sending files over. Personally, backwards compatibility is a dead issue if we get rid of the Heidelberg soon. Thrown over Niagara Falls preferably.
So, would all 6gb be helpful in this case? Would the hack help us spool large files?
In reality, how many people are actually going to have a single application that will need 3GB of memory. You need to be doing something like movie editing or sound recording to hit that limit.
32-bit Linux has to be compiled with or without PAE support, so your distro should make sure it installs a the right kernel version to correctly support your hardware. Some OSes (e.g. Solaris) can switch between PAE and non-PAE at boot time, so they only need one kernel image to support both modes. I don't know how Windows handles this.
Yes it can. In the boot.ini file you can specify the /PAE switch, which will load the PAE-enabled kernel at boot-time. In addition, you can specify the /3GB switch, which will enable allow user processes 3GB of memory to use rather than the usual 2.
Well there are two things going on here.
PAE is easy to get working in that you can have more than 4GB of memory. And almost all of the 64 bit processors are backwards compatible. But it's still going to limit you to 2 or 3gb per process because of the other hardware limitations. And that's really the issue. The client doesn't know or care - they want Photoshop to have more memory. PAE *can* work but it's crippled and doesn't accomplish the main goal of adding more memory. To do that it requires all of the variables to support larger than 32bit addressing and playing along nicely with PAE. Almost nothing does, and Microsoft decided to leave that to the Server versions where the admins would know how to deal with it properly if they decided to do so.
And, yes, you get situations of PAE capable chips from Intel that have a 32 bit controller only, which doesn't actually support PAE as intended. So you turn it on and the processes still hits that 2GB wall. If any link in the chain has a 32 bit bottleneck, it fails and your dream of 4gb+ Photoshop remains exactly that.
(note - the kludge for that is/was to install a big ramdisk and run the swap file and cache directory at DDR2 speeds) - not cheap, either.
Apple gets around it with a hack. The most recent OS, IIRC("Snow Leopard" will do this as well) - basically remaps the 32 bit space and extensions seamlessly into the 64 bit native without the A/B issues. It's a kludge but works well enough. You run 64bit all the time but 32 bit apps only "see" 32-bit. Apple apparently spent a hell of a lot of time working this out to keep everyone happy. Windows still forces you to make choice A or B, which is a whole other issue that they rightly deserve to take flak over.
Linux gets around it because it has enough "brains" and foresight to allocate everything properly and make(read - force) it to get along. Driver issues aren't a problem with Linux because every rig is its own custom setup, essentially. The tweaking and kludging that admins normally would do in Windows Server is pretty much normal daily work with Linux. You make the driver work and behave. Not some company who makes a program that is supposed to "work" with a thousand different combinations of hardware. So PAE is tons easier to make happen in Linux. But you can still run into motherboard issues which kill your fun, because almost all motherboards are made with a BIOS that figures it will be running Windows. Some, though, do recognize that you aren't running Windows and play along nicely.
But it's all a headache. Since all Linux apps have to be manually compiled/installed on your box, there's just about zero reason not to run 64 bit.
In short, just run 64 bit. Ten years from now, nobody will care - it will all be 64 bit just like how nobody runs 16 bit DOS software. Plus, 64 bit Windows may have less frills and games and so on(for now), but Windows 7/64 is stable as a rock. It's like running NT all over again - fussy with what you feed it, but no issues otherwise. Since businesses generally run the same 5-10 apps or chose ones that work with their setups and don't change for years at a time, 64 bit is also perfect there. Gamers, well, the companies better start writing clean code and producing 64 bit versions. If it was me, I'd have only releases 64 bit Windows 7 and forced everyone to adapt.
I am surprised ( and disappointed ) that FreeBSD has a similar inherent limit.
---- Booth was a patriot ----
I was just wondering whether Windows could support PAE and non-PAE with the same kernel binary - like Solaris and unlike Linux.
The /3GB switch intrigues me - surely there must have been some sensible reason why processes were limited to 2GB (presumably with the kernel taking 2GB). Do you lose anything by applying the switch?
and that is with the standard 3.25Gb limit.
What standard limit? My XP Pro gaming computer has 3.7GB available...
In other words, Windows is bona fide crippleware.
Can that be modded redundant? :P
Yes it does.
32bit Linux is subject to the same address mathematics as any OS. What you meant to say was that Linux uses PAE better than Windows can, true but most end users have never heard of it and it is not installed by default.
In Linux land we now have 64bit flash, java etc - there is no reason to stick with 32bit any more and with 64bit you can use as much ram as your motherboard can address. Linux drivers by their nature are 32/64bit ambidextrous.
It sounds like you think PAE could, in principle, enable 32-bit apps to support more than 4GB address spaces? Maybe I'm misunderstanding. For avoidance of confusion, that is not what PAE does; if you're using 32-bit + PAE you're *always* stuck with 4GB address space per-process no matter what (and 1-2GB will usually be taken up by your kernel). All PAE gives you is the ability to use more physical memory across the whole system. If you need one app to use lots of memory, as you rightly pointed out, you need 64-bit.
I saw another post on here suggesting that server versions of Windows have an API for giving an app access to >4GB memory on 32-bit but that is going to be some kind of hack (e.g. switching between multiple address spaces for one task or using effectively a big ramdisk like you mentioned), not true >4GB virtual memory.
I don't know exactly about the Apple technique but I do remember seeing a presentation by an AMD chap who was describing how you could use 64-bit to increase the address space available to 32-bit apps. In his example, though, that was "merely" enabling apps to use a *full* 4GB for application data whereas on a 32-bit system 1-2GB of the address space is occupied by the kernel. This sounds like the same kind of thing you're referring to. I'd guess it would be tricky to do this without upsetting some poorly or strangely coded apps somewhere along the line. It still leaves you stuck with 32-bit pointers, so really big apps are still ruled out :-(
There were patches developed for Linux to allow a usable 4GB address space (well, probably *slightly* less!) for applications on 32-bit platforms. That meant using a separate pagetable for the kernel and the userspace task and switching back and forth for each syscall. That's going to be expense so you wouldn't have wanted to run those patches unless you *really really* couldn't manage without.
For Linux, 64-bit would be my preference. But my only 64-bit machine is limited to 32-bit non-PAE for "technical reasons" at the moment (meaning the kernel I need to run needs that setup).
under the guise of frequent and unquestioned Slashdot contributor Bennett Haselton on the morrow. Good day, sir!
Don't you mean, marrow?
ME TOO!
METOO@AOL.COM
I'm not gonna trash the grammar in your post because I don't notice bad grammar unless it's obviously wrong or gets in the way of the meaning of the post, but there's nothing wrong with split infinitives. It's a nonexistant rule that English teachers—and the people they tell it to—spread.
No existe.
Linux does have a memory limit, it is subject to the same address mathematics as any OS. What you mean is that Linux can use PAE efficiently. Most end users have never heard of PAE and it is not installed by default on any disto I have used. With any 32bit OS you cannot even read a whole 4gb, after everything is loaded you only get about 3.5 of your 4gb. To even use the whole 4gb you need to go 64bit. Motherboards also have chip limitations, not all boards can be crammed with ram even with a 64bit operating system. Linux now has 64bit flash and java and Linux drivers are all 32 and 64 bit by design. I happily use 64bit Debian Sid and 64bit Ubuntu on my machines. FFMPEG can decode anything I need so 32bit codecs are a limitation of the past. Time to move up and move on.
You sneer only because you've never faced the evil of a Windows barrow white. Without the help of Tom Bomb-the-bad-DLL you'll never escape his clutches alive!
Now that I think about it, I'm pretty sure everything I just said is completely wrong.
True but what about a ton of concurrent apps? I sometimes run 2 virtualbox vm's in the background while running the usual work email client, web apps on the host. I'll usually be consuming close to 3gb of memory in that scenario.
A small vehicle used to carry a load and pulled or pushed by hand.
I think that meaning (of the noun) makes more sense (when verbed) in this context.
Goes even further than that. A given process can only use 2GB of memory, no matter how you set up your licensing, no matter whether you're using a 32-bit or 64-bit Windows OS, if the developers were stupid enough to not compile it as large address-aware.
"There is much pleasure to be gained from useless knowledge." - Bertrand Russell.
But then there are companies like canon who have not released any drivers for 64-bit windows. If you default to 64-bit, you may get a number of angry customers.
09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
For programs like MATLAB, the maximum amount of memory you can use for a session is more like 1GB under 32-bit windows. Funnily enough the same is not true for 64-bit Windows, or 32-bit Linux versions.
In Windows, one can invoke feature('memstats') to see just how much memory is available.
"Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
What's the problem? Just grab the source and recompile it.
Nathan's blog
I made the patch to the kernel at (bytes 0x30C43A and 0x30C47B for SP2), signed with a test certificate, set the necessary bcdedit configuration, and rebooted. It works and I now have 4GB where I once had 3GB. Everything seems to be working so far. Kudos to TFA. I always wondered why I couldn't find a technical limitation in the Vista binaries.
All you need is the certificate file from your existing install and the key that copy of windows was installed with from the factory (not the one on the sticker). Install with the 64bit windows dvd without using a key, install the certificate and enter the key.
Client versions of Win32 will enable PAE to get the NX bit, but the HAL will block access above 4GB. This is because many drivers used on consumer (client) versions of Windows are not designed to be able to handle 64-bit pointers (even though PAE addresses are only 36 bits, pointers are 64 bits wide anyhow). The way to support this is to compile your driver such that all pointers are *assumed* to be 64 bits wide, and let the high 32 bits go to waste on a non-PAE system. This behavior is required for Microsoft driver signing on newer versions of Windows, but there are a lot of older Windows drivers out there which lack this assumption. Those drivers will explode in an ugly manner if the memory manager hands then a 64-bit address, so only 32-bit addresses are used.
There's no place I could be, since I've found Serenity...
Good post. Two quick points, though:
Windows ships both PAE and non-PAE kernels, just like most Linux distros. The bootloader selects which binary to run at boot time.
The issue here is that the driver for that re-mapped RAM must support 64-bit pointers (well, technically it must support 36-bit pointers, but practically speaking 64-bit addresses are used and the high 28 bits are ignored). Many legacy Windows drivers (and some legacy Linux drivers) don't support this, and will crash when a pointer overwrites the memory following its 32-bit expected width.Driver crashes are a Bad Thing, so to avoid the danger, client versions of Windows use 32-bit pointers even in PAE mode. This means the (not-even-quite) 4GB limit is still in force, but means you can use legacy drivers. Server editions of Windows permit you to use the full address width (it's a different HAL, I believe)on the assumption that any driver you use on a server will be well-coded and adhere to the guidelines that allow PAE to work.
There's no place I could be, since I've found Serenity...
The /3GB switch intrigues me - surely there must have been some sensible reason why processes were limited to 2GB (presumably with the kernel taking 2GB). Do you lose anything by applying the switch?
Besides the kernel's address space being shrunk and some drives crapping out, no. Apps, however, must have a bit set in the executable to get at that extra memory. You can use an app like "CFF Explorer" to set that bit, which also works for 32-bit apps in 64-bit Windows (and can be helpful on stuff like older 32-bit photoshops). OF course, not all apps works with this bit set - presumably because they use signed ints to store pointers.
Perhaps you have a totally different understanding of kernel and user space in Windows but I thought the total address space was split in half between kernel and user mode. (I think it came be modified so userspace gets 3GB and the kernel gets 1GB though.) Are you saying that with PAE enabled, kernel drivers are loaded only into lowest 2GB and never into the highest 2GB?
In other words, there are drivers commonly in use that are incompatible with Enterprise / DataCenter 32-bit editions of Windows Server 2000 and 2003 using PAE.
-- All your bass are below two Hz
it is not installed by default on any disto I have used.
Although you may not have used it, Fedora is a pretty popular distro which includes PAE support during installation when appropriate.
Because all the crap it starts doing when you haven't entered the license key doesn't already qualify it enough. >_>
Seriously, even the Win7 RC is crippleware, because it starts crippling the system some time next year.
Good post. Two quick points, though:
Windows ships both PAE and non-PAE kernels, just like most Linux distros. The bootloader selects which binary to run at boot time.
Ah, cool, thanks! FWIW I did once ask a kernel hacker if the paravirt_ops stuff in Linux (which allows you to hook pagetable updates, etc) could be used to make the same Linux kernel binary work with PAE / non-PAE and he reckoned it'd still require a fair bit of work even with paravirt_ops.
Shipping two 32-bit kernels hardly seems that much of a sacrifice, given 64-bit is the future and will eventually fully take over.
The issue here is that the driver for that re-mapped RAM must support 64-bit pointers (well, technically it must support 36-bit pointers, but practically speaking 64-bit addresses are used and the high 28 bits are ignored). Many legacy Windows drivers (and some legacy Linux drivers) don't support this, and will crash when a pointer overwrites the memory following its 32-bit expected width.Driver crashes are a Bad Thing, so to avoid the danger, client versions of Windows use 32-bit pointers even in PAE mode. This means the (not-even-quite) 4GB limit is still in force, but means you can use legacy drivers. Server editions of Windows permit you to use the full address width (it's a different HAL, I believe)on the assumption that any driver you use on a server will be well-coded and adhere to the guidelines that allow PAE to work.
Interesting.
Are there any specific guarantees about server hardware? e.g. a compatibility list or a server-specific driver signing program? Or do you trust that your system vendor puts well-supported hardware in the box?
A "nice" thing about the Linux approach is that you don't end up wasting pointer space since your driver will be compiled for the correct memory mode when it's built. I can't imagine the wastage is very significant for most drivers, though. And the memory mapping API and DMA API should ensure that high memory are Done Right whatever the memory model but only if they're understood and used correctly by the driver authors. I can imagine that there are drivers doing more or less naughty things that will violate these APIs in interesting ways, though, as you say.
Development-wise, an interesting trick the Linux kernel has up its sleeve is the "sparse" tool Linus wrote, which amongst other things can handle annotations on pointer types to detect cases where the kernel deferences a pointer to userspace, which you usually "get away with" but no always. I understand it's found a fair few real bugs in the kernel so far.
Semicolons are not simply "for lists". They are primarily used in place of a comma and conjunction for joining two complete sentences. When used in lists, semicolons aren't used after every item, as you did; they are used only if "compound items" in the list contain commas, in order to avoid confusion.
WHO NEEDS SHIFT WHEN YOU HAVE CAPSLOCK/ DAMN1
What if the buggy drivers assume that all physical memory addressable using 32-bits? Many PCI cards can't DMA above 4G. If the drivers are not well tested on >4GB systems then they could barf on this sort of thing. It's not a PAE problem, it's just a large memory problem.
so what was that stuff about having to get the Windows Server kernel to get over the 4GB issue on the 32bit stuff?
Besides, I was also referring to the client TCP/IP connection limit they put in back when Netscape was selling their web server for Windows NT Workstation and providing a solution cheaper than Microsoft's restriction of only running IIS on their Windows Server productline. Games they play...
LoB
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
3.25GB is the normal limit unless you remap the swathes of memory addresses that are used by the PCI bus for DMA. Even if you are running in 64bit native mode, you need to remap memory addresses to get all your memory. There is usually a BIOS setting called something like "Memory Remap" which enables this remapping.
Support for PAE(36bit memory addressing) and memory remapping are separate technologies, but without PAE there wouldn't be anywhere for the BIOS to remap the memory to.
We'll probably be running 64-bit Windows by 2030.
WalMart.com lists 37 Vista desktops with a free upgrade to Win 7. 25 are 64 bit. Windows 7 Tech Upgrade
PAE is 36bit memory addressing support for 32bit OSs. The 32bit Windows Server kernels support PAE and the client versions don't...
This is more of a "because I can" hack than anything useful.
This is a BIOS limitation... if your BIOS doesn't allow remapping the PCI DMA ranges, then ~.75GB of memory in the first 4GB isn't usable. Just use 64bit FreeBSD and turn on remapping in your BIOS.
Not only can you enable it, but it's enabled by default. You can actually boost performance (significantly) on the versions of windows that are capped at 4gb by disabling it, since accessing memory using PAE requires an extra clock cycle (3 instead of 2, for direct access)
Client versions of Win32 will enable PAE to get the NX bit, but the HAL will block access above 4GB.
"I'm sorry PAE, I'm afraid I can't let you do that."
mod me funny
In a system with 4GB (or more of RAM), the first 2GB of address space (virtual memory address ranges 0x0 to 0x7fffffff) are for kernel memory, and the rest of the address space (0x80000000 and up) is user memory.
Operating system code and drivers are loaded into memory that is mapped from the kernel address space.
These predictably load (while your system is booting) into the lower physical memory addresses.
This thread, however, is a crowd of pedantics.
It's a stupid hack to get the 32 bit edition to run PAE. I'm not really sure why you'd want to do that when you can just run the 64 bit version instead. Maybe if you have a lot of legacy devices which don't have 64 bit drivers, I guess. Either way, it has nothing to do with money.
As others have pointed out, MS most likely chose to disable this feature because it would have been a nightmare when it came to support. Enabling PAE creates all sorts of potential problems due to the vast variety of hardware and software used by average consumers. The server version supports PAE, probably because server hardware/software isn't nearly as varied, and corporate clients tend to shell out a lot of cash for support.
That's not really surprising. NT Workstation and NT Server were almost identical outside of the domain controller functionality. If MS hadn't put some limitations in place, any small business with a competent IT staff would have purchased NT Workstation licenses for the majority of their servers. I can't blame them for trying to protect an existing market, instead of destroying it overnight. What they essentially did was say "here, you can have NT server for one tenth of the usual price ... but we're going to pull out some features first". I really don't see anything wrong with that.
Time for the obligatory car analogy: It's as if Lamborghini offered to sell me a car for $25,000 that looks and handles exactly like the Diablo ... but is missing a spare tire and is governed to a top speed of 100 mph. Even with the restrictions, it'd be a great deal.
*nods* That makes sense. Do you know a good reference that talks about that? In my cursory look, I didn't find any details on the NT arch's memory layout, although Win 9x used the upper 2GB for kernel memory. Looking back at your original comment, I guess I'm not totally convinced that there wouldn't be driver issues with PAE enabled, especially considering the thousands of drivers floating around out there.
The server is temporarily unable to service your request due to the site owner reaching his/her bandwidth limit. Please try again later.
I've got 101 mod points and you can't have them!
Tell that to my cheap ass capture card, that is a good 4x more flaky now that I have PAE enabled. Since I have no intention of getting rid of my nice gobs o' RAM, and I haven't had time to find a card with XP X64 drivers for under $80(If anybody knows of one it would be appreciated) I have just learned to deal with it. For example it will crash more when switching channels in the 25-35 cable range, which is naturally where 3 of my favorite channels are. i have tested it by comparing side by side with my buddies card (we bought ours together on a "buy two and save!" sale) and his you can flip through that range til hell freezes over with no crashes, but he only has 2Gb.
So you can scream FUD all you want, I have seen it with my very own peepers. Now imagine how many millions of devices there are out there with WinXP 32bit drivers. Everything from funky USB stuff to the truly weird ass shit (like that cassette deck I saw a couple of years back) and then figure how much MSFT would have to pay for the "My shit don't work! Fix it!" calls.
It is cheaper in the long run just to make the switch to x64 than it is trying to make a hack work, especially a bad hack like over 4Gb support in an OS released in 2001, when 128Mb of RAM was a common configuration. If you are foaming at the mouth and truly need to hate MSFT for something, hate them for this...XP was NEVER supposed to last this long. Longhorn was supposed to be out in 2K3, and because they decided to start over with the Longhorn reset, that of course ended in the clusterfuck that is Vista, you have an OS pushing the decade mark still in widespread use. XP32 just wasn't built to handle gobs of RAM, and trying to force it down is like trying to drop a Mac truck engine in a Pinto. It is just more of a PITA than it is worth.
ACs don't waste your time replying, your posts are never seen by me.
You also have to figure in the memory for the graphics card into that equation. Since I quit using the IGP and went with a 1Gb HD4650 I have noticed I went down from 3.25Gb down to 3Gb. I haven't had time to run GPU-Z but I wouldn't be surprised if 32 bit Windows isn't seeing all of that 1Gb on the GPU, since some of that 1Gb naturally has to be used for the capture card (the only reason I dual boot anymore), USB, PCI, etc.
That is why I made the jump to XP X64. All my games work, even my older bargain bin stuff like Delta Force Xtreme, and jumping from 4Gb to 8Gb cost me a whole $35 after $20 MIR. Sadly the cheap as capture card I have is from a company (Easy TV FM) that went out of business it seems in 2004, plus it is more than a little flaky in PAE. So if anybody knows of where I can get a capture card with XP X64 drivers for under $60, since I don't watch enough tube to make it worth more, please let me know. It can be analog only as all I watch is cable anyway.
ACs don't waste your time replying, your posts are never seen by me.
I don't know what hardware your using... but all my devices have 64-bit drivers available.
I haven't had any problems using 64-bit XP.
About the client TCP/IP connection limit? While I can't speak for NT Workstation (as I didn't see many hacked versions of that OS) when XP came out the net was flooded with reg hacks that would let you get around the 10 connection limit, and as a PC repairman I unfortunately found out REAL quick why that was a good idea to have the limit for client systems.
It took me awhile looking through connection logs to find out that there was certain malware and especially early P2P apps (early bearshare was the worst IMHO) that if the users had used the "Max connections" hack the app would crapflood the entire network, causing it to either grind down to a virtual standstill, or the cheaper crap would just shit itself and die.
So I can tell you from experience there are certain times you do NOT want the client to have "infinite connections" and since it caused all kinds of nasty when users hacked in more connections I can understand why to not have it by default. This way if the users went ahead and hacked it (which was a simple reg entry and takes all of 3 seconds) then MSFT can say "Hey not our fault, you're the one that hacked it and let the 'crapflood of doom' loose on your network" which I'm sure led to less support hassles. i know whenever I had a client that wanted that hack, usually gamers and P2Pers, I would give them the 'crapflood of doom' speech and tell them if they boned their network they would be paying up, as I don't work for free when you ignore warnings and go for it anyway. So while I haven't talked to a MSFT rep and heard reasons behind it, I can say on XP networks it can be a VERY good thing not to let the users have infinite connections.
ACs don't waste your time replying, your posts are never seen by me.
!! Exactly what I was thinking. +1 virtual mod point
... and watch the explosion when one of the PCI devices tries to use DMA, but can't do so above 4gb addresses.
For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
The best source for info for this is likely Mark Russinovich. His blog is the origin of the "difficult to measure risk" quote.
Because device vendors now have to submit both 32-bit and 64-bit drivers to Microsoft's Windows Hardware Quality Laboratories (WHQL) to obtain a driver signing certificate, the majority of device drivers today can probably handle physical addresses above the 4GB line. However, 32-bit Windows will continue to ignore memory above it because there is still some difficult to measure risk, and OEMs are (or at least should be) moving to 64-bit Windows where it's not an issue.
He also acknowledges the commercial aspect of product differentiation on MS 64-bit OS versions, but suggests that the 32-bit issue derives from actual experience;
64-bit Windows client SKUs support different amounts of memory as a SKU-differentiating feature, with the low end being 512MB for Windows XP Starter to 128GB for Vista Ultimate and 192GB for Windows 7 Ultimate...
the Windows team started broadly testing Windows XP on systems with more than 4GB of memory. Windows XP SP2 also enabled Physical Address Extensions (PAE) support by default on hardware that implements no-execute memory because its required for Data Execution Prevention (DEP), but that also enables support for more than 4GB of memory.
What they found was that many of the systems would crash, hang, or become unbootable because some device drivers, commonly those for video and audio devices that are found typically on clients but not servers, were not programmed to expect physical addresses larger than 4GB. As a result, the drivers truncated such addresses, resulting in memory corruptions and corruption side effects.
http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx
I'd suggest though, the decision to completely disable PAE instead of only enabling it when paired with drivers certified by WHQL as being PAE-safe was a commercial one, based on SKU differentiation rather than risk.
"I've got more toys than Teruhisa Kitahara."
Two different kernels. With the normal 32-bit kernel, you'll top out at 4GB of memory. Windows loads a PAE-enabled kernel if it sees PAE passed as a kernel argument (much like arguments in GRUB), or you're running on hardware that supports DEP, they system will load PAE-enabled kernel.
By default, on a 4GB system, 2GB is for userland and 2GB is for the kernel. Throw the /PAE switch and the kernel sacrifices a gig for user space. Not all apps can take advantage of the extra memory, but a very memory-hungry app like SQL Server can use the extra memory. Depending on what flavor or Windows Server you're using, you may have to throw /3GB, /PAE or both. Once you get over 16GB of RAM, you're generally looking at using /PAE only in boot.ini and running sp_configure in SQL to configure the use of AWE. MS says that generally you may wind up burning a gig of memory for AWE management. But otherwise, unless you're running an enterprise-class app, you won't get much of anything about of using /3GB or /PAE
You are forgetting about AWE, random google hit about it. (http://blogs.technet.com/rob/archive/2008/05/15/windows-memory-and-sql-server.aspx)
That's a completely different thing. He's referring to an incident where MS limited the number of inbound connections on port 80. They did that specifically to make it impossible for people to run large scale web-servers on NT Workstation. It had nothing to do with security/stability - it was purely an attempt to protect their profit margin.
And, btw, one of the first things I did after installing XP was get rid of that silly TCP/IP restriction. I agree that it was useful for at least slowing the transmission of worms, as well as limiting how effective they could be as part of a DDOS botnet attack, but I had the exact opposite experience from yours when it came to P2P apps.
I'm also fairly certain that you're wrong about it being "a simple reg entry". You actually had to patch TCPIP.SYS in order to remove/modify the connection limit.
Guarantees... not really any guarantees. Microsoft does have a driver signing program and a Quality Labs for hardware that will certify that the driver and hardware meet their standards (take your cheap shot here), but generally won't make any guarantees. So yeah, I can go to Fry's and get a mobo and 16GB of RAM, and find a copy of Windows Server Enterprise or Datacenter, and it will likely work, but nobody's going to gurantee that it works. If I spend the money buying a real enterprise-class server from a real systems vendor, you'll have better chances that the drivers and hardware have been WHQL certified, and they'll generally be of a better quality than the Fry's hardware.
Usually, the higher end you get, MS will start recommending particular hardware profiles known to run reliably. I'd think twice about any vendor that makes any kind of guarantee that everything will work unless it's been a tried and proven configuration.
If you are deploying Windows Server 2008 in a production environment you are going to take a long hard look at your total cost of ownership. Doing so you will likely come to the conclusion that paying a bit more upfront for hardware and drivers certified as server grade is a worthwhile investment. Joe Sixpack is going to buy the cheapest gaming rig he can find at Frys and grab whatever drivers he can get off the web. Writing a decent 64 bit driver stack for Windows is not the easiest thing in the world. MS is cognizant of this fact and it would appear they are heading off a massive influx of OCA bug reports by not allowing the rank and file of the world to live dangerously. I, for one, applaud such efforts.
The non-SP1 version of XP supported full 4GB of physical memory, with SP1 they limited it to 4GB of address space... the 4GB hinting at milking the market, whereas the SP1 additional limitation says something about driver quality.
As for the memory split, remember that there's the /3GB boot option if you feel like it and know what you're doing :)
Coffee-driven development.
If driver_string = "WHQL_PAE_OK"
then goto EnableBigRAM
else msgbox "Sorry, memory above 4GB is not supported on computers with " & $Driver_Version & ", any extra memory will be disabled until the driver is updated.
& vbCrLf & "Please ask your hardware vendor to upgrade their drivers.", vbExclamation, AbortRetryIgnore
Yep, impossible....
"I've got more toys than Teruhisa Kitahara."
WRONG!! WRONG!! WRONG!!
You are confusing virtual (app) memory and physical memory.
Virtual memory is ALWAYS limited to 4GB (with 2/2GB or 3/1GB split of user/kernel) on 32-bit, PAE or not, Workstation or Server.
PAE allows for more than 4GB PHYSICAL memory. That means you could have 2 3GB apps running all in RAM (no swap) in 6+GB RAM.
For ONE app to use more than 4GB, you NEED 64-bit.
Each application page (usually 4K) is mapped to physical space, whether it's RAM or swap (when idle of course). The PAE allows you to map a page on more than 4GB RAM. This is done entirely by OS.
The problem is that drivers need to know the physical address, because that is what HW devices can access. Some drivers are poorly implemented and fail to do this (like giving a 32-bit address when they sould give 36-bit to the HW).
For a server, the company usually has an IT department that can get certified HW (not off-the-shelf cheap HW) and they usually test the server before deploying. So any driver issue can be corrected (either change the HW or resolve the driver issue) before deployment.
So MS did not want to get calls of data corruption and limited PAE on client windows. My problem (and the article's author's) is that WE (tech-savy computer users) cannot activate it afterwards.
PS: PAE was implemented since Pentium Pro. As I recall it already had 36-lines for adresses (that is 64GB memory space).
With HD cameras becoming increasingly cheap and common, and recording your own music with software synthesizers and samplers (making music has never been cheaper), plus a large portion of the (affluent) population choosing to do both, this comment can be filed away in the same box the fictional "640 kb is enough for everyone" quote resides in.
People already complain about harddisks - when it says "1 TB" on the box and they can only use 931. What do you think they're going to say when their system is loaded up with 8 GB because the sticks are just so damn cheap and they can only see 3 GB?
It is cheaper in the long run just to make the switch to x64 than it is trying to make a hack work, especially a bad hack like over 4Gb support in an OS released in 2001
The hack is PAE, and is HW-related. 32-bit has a 4GB limitation/app which will NEVER be changed (unless recompiling to 64-bit). PAE allows and OS to use more than 4GB, but in client XP (Home/Professional) it was limited by SW. :
Pentium Pro (1995) was the 1st processor with PAE (36-bit address lanes). Windows 2000 already had a PAE implementation.
From http://en.wikipedia.org/wiki/Windows_2000
Windows 2000 Advanced Server is a variant of Windows 2000 Server operating system designed for medium-to-large businesses. It offers clustering infrastructure for high availability and scalability of applications and services, including main memory support of up to 8 gigabytes (GB) on Physical Address Extension (PAE) systems and the ability to do 8-way SMP.
Well, it happens. It depends on how much data you load into memory :)
Nothing requires to keep all of it in memory, you can always swap it out, even with movie editing or sound recording.
Sometimes you just don't want to.
Sometimes you designed your software to load everything, and it works for years.
Then suddenly, someone presents it with a 100 times larger dataset, and it would process it, except for this pesky 4G (2G?) limit.
Patents Drive Free Software as Hurricanes Drive Construction Industry
By default, on a 4GB system, 2GB is for userland and 2GB is for the kernel.
Another virtual vs physical confusion. /3GB is used) even on 64-bit OS.
2+2GB limitation is per process/task/application. This is the SW. If there is not enough RAM, swap is used.
4GB system is a system with 4GB of RAM. This is HW.
No matter how much RAM you have, ONE 32-bit application will NOT use more than 4GB (2+2 or 3+1 if
Let's just say that PAE on 32-bit OS allows you to use the above-4GB RAM as super-fast swap space. And this is the XP (as opposed to 2K3 server) limitation: XP just does not let you use it. I'm also thinking it's because of drivers and DMA devices.
PAE is a very old hack.
This whole article is bull. Hacking over 4GB support with old DOS EMS type of stupid ways is no brainer. Just switch to 64bit OS. Practically every new computer (non-netbook or smartphone :P) supports 64bit OS.
64bit driver support is already good and when Windows 7 comes out it will become even better.
P.S. I have used 64bit Windows since Windows XP x64 Edition (based on w2k3srv) and even games worked with it and ran more stable than 32bit XP ever did!
After all, back in the days of 32-bit CPUs, boards that actually supported more than 4GB were extremely rare. High end server stuff only. By the time larger amounts of RAM became something the consumer could afford, well CPUs were 64-bit so it isn't an issue.
Today this is a complete non-issue with desktop PCs, or at least ought to be. Any desktop PC you can get your hands on that supports more than 4GB of RAM, also supports 64-bit. In fact I can't find ANY desktop PCs today that don't support 64-bit. So, if you need more RAM, run 64-bit. There is no reason to run 32-bit with PAE. It is slower, single processes don't get more memory, and 64-bit OSes are readily available. 64-bit apps also are sometimes faster due to the larger integers and more hardware registers in 64-bit mode. Even some that are heavily FP based (like Prime95) see a small improvement in 64-bit mode.
For Linux, just download the appropriate version. For Windows, if you don't have a 64-bit copy, just ask MS for one. They'll change your license to 64-bit and mail you the media for the cost of shipping.
I would wager that all the people bitching about this and/or claiming Linux doesn't have this problem have never tried or needed it. They likely all have desktops with 4GB or less RAM, since that is what is extremely common these days. Anyone who really does need more RAM will get a 64-bit OS, since that is a much better solution to the problem.
Why is this story even newsworthy?
Is it because most computer users are fucking retarded as fuck and don't know shit about shit?
Windows has a hardware abstraction layer, or HAL. Your computer's manufacturer provides your HAL. The HAL shipped in 99% of windows xp/vista systems allows only 4 gig of ram to be used. As noted in the article, this is a licensing issue. If a vendor wanted to sell you a vista workstation with 64 gig of ram, they could, as long as they work with microsoft on the licence and on the HAL.
Heres a good one: Im typing this on a dell latitude laptop. The HAL in the XP install is apparently capable of > 4 gig of memory, by way of PAE. But it's a moot point, as the machine now runs fedora.
The crux of the 4 gig issue is shitty and old drivers written by chimps and people with down syndrome. Put one of these badly written binary blobs into a PAE enabled system, and shit can (and does) go wrong.
Quite frankly, if you need to address > 4 gig of ram, you are probably doing something more than facebook/msn/email/flikr, and you should buy hardware which can address your requirements. Such as windows server 64 bit, or linux 32 bit PAE, or linux 64 bit.
Honestly, I don't know why this is even newsworthy. It's definetly not new. And isn't really worthy. I learnt this stuff back in the NT 3.5/4 days, and not much has changed under the hood in this regard.
Oh right, It just dawned on me. You all use pirated versions of XP and vista which don't come from any specific hardware manufacturer. LRN2!EATCOCKFGTS
no, he means tomorrow. on the morrow = tomorrow.
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
For what it's worth, i've been running Vista 64 for the past 2 years (now running Win7-64) and most games just work. if they work on 32 bit vista/7, they will generally work on 64 bit vista/7. Even all the way back to Diablo 1.
There are exceptions, but they're generally shitty programmed games that crap out on the 32 bit Vista or Windows 7 OS anyway due to DirectX problems or whatnot. OR, they're *extremely old* and need the 16 bit subsystem for either running the game, or the game's installer. 64 bit windows removed the 16 bit subsystem.
But, for that, there's virtual PC or VMware...
And yes, its been my experience that Vista/7 in 64 bit flavor is rock solid, save death by hardware failure.
I agree that Win7 is the time to go 64 bit, and MS should push it. I'm going through this at the moment at work, however there's still a few (shitty, but mission critical) apps that we have in the workplace that are 32 bit only. Namely banking software dongles, a few software license dongles, etc. Microsoft should have cut off 32 bit after Vista though.... Vista is "close enough" to 7 to run the same apps, be managed by the same tools, etc
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
Despite having 4GB of Corsair memory installed, I can't get Win XP Pro 32bit to see more than 2GB for the life of me. Not even 4GB - video memory - misc memory = ~3GB, just plain 2GB... P5Q mobo recognizes 4GB with memory remap feature on, but OS sees only 2GB. If memory remap is turned off, as advised for 32bit OSes, BIOS sees 2GB, and OS inevitably 2GB again... /PAE or /3GB switches have done nothing for me. This is hopeless...
Or virtualization.
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
a given process can only see 3 GB of memory, no matter how you set up your licensing
This isn't exactly true. An application can address 4GB of memory, 2GB of which is kernel space (reserved for things like graphics memory etc) and 2GB of user space. A tweak can be applied to change the balance to 1GB kernel / 3GB user space.
I have an Asus P5B motherboard with the latest BIOS firmware installed. If I deactivate memory remapping in BIOS, when booting, only little above 3GB of RAM is displayed, although I have installed 4GB. Vista x64 or Windows 7 x64 can only see as much as BIOS sees, so not the full 4GB. On exactly the same hardware and settings, if I install Hackintosh, more precisely iDeneb, MacOS X can see the full 4GB of RAM. I think this is a little weird and I don't have an explanation for it. Also, /PAE on boot.ini on 32 bit Windows XP Pro doesn't work at all.
While I agree completely that PAE is a total hack, all these folks screaming their butts off because MSFT don't allow over 4Gb in client OSes just because they allow it in server is just nuts, which was what i was responding to. A server is a VERY different beast than a desktop, especially in Windows. With a server much more care is usually taken with the drivers, because if it crashes you are costing somebody serious $$$. You are also more likely to be able to contact a server hardware vendor and say "we need support for PAE. Without it we are gonna have to dump your product." and the will comply, because the money in server hardware is much fatter.
In desktops by comparison you have this myriad of funky ass cheap shit from all over the place, vendors can be here today and gone later today (like with my Easy TV FM capture card) and that is if you can even FIND the vendor, as some of this junk has been re-badged by a dozen different companies that just repackage the stuff and don't have jack shit to do with the drivers. It makes desktop support a hell of a lot harder than server. To try to support PAE over 4Gb in XP32 or Vista32 would be support hell for MSFT. In XP64/Vista 64 they can say "Not our fault, we didn't make that. Please find out who did and ask them for a driver" and that's it, end of story. But with PAE on 32bit they would get "I HAVE a *&^%&%$ DRIVER and it STILL don't work! Fix it!!!!" which of course they can't.
So I stand by my original statement that PAE support for over 4Gb would be super expensive for MSFT and just ain't worth the PITA. Whether because of PAE itself being a bad hack (which is the truth, especially if you got the wrong Intel CPU/chipset that as another points out can do 32 OR 64 bit, but not both) or the nasty driver getting flaky because it doesn't have a clue what to do with those wider addresses, either way it equals royal PITA for MSFT. Better just to get everyone to switch over to a REAL 64 bit OS, like XP64 or Vista/7 64 and just be done with it. That way everyone gets real hardware and driver support without the whole thing being a big kludge. And considering I just picked up 4Gb of RAM for a whole $35 after rebate it is just nuts to jump through flaming hoops for a hack like PAE.
ACs don't waste your time replying, your posts are never seen by me.
Sorry, at the time I wasn't on my home box so i couldn't look in my hacks folder. looking now I see it was a .bat file and not a reg hack. Still it takes all of 3 seconds, just go "clicky clicky" on the .bat and reboot.
Now about the workstation, considering the workstation was $80 and the server edition was IIRC $500, can you honestly blame them? I would rather be able to pick up a real workstation instead of this bling bling WinVista Win7 crap, like my beloved Win2K pro that I am typing this on, than have to buy a server OS and spend that kind of cash just to get a stripped down workstation. I for one would be happy for their little limitation if it would allow me to pick up "Win2K8 pro" which would just be Win2K8 server as a desktop. They have to limit it somewhere, and not allowing me the huge amounts of incoming connections that a server uses would be fine and dandy with me if I could pick up 2K8 for say $139 like I did XP x64.
Now you may not have liked that they did it that way, but that is one of the things that I like about the free market. You don't like MSFT you've got Linux, Solaris, BSD, Apple, etc. IIRC back then you still had Solaris, BSD, Apple, and I don't know if Linux was stable enough back then to be worth switching to, but you did have choices. i just wish they would go back to the home/workstation split, like they had with Win9x and WinNT/Win2K. I have tried 2K8 and if I could afford it I would buy it just to use as a workstation, but sadly blowing that kind of cash on a desktop is just too rich for me.
ACs don't waste your time replying, your posts are never seen by me.
But if Microsoft defaulted to 64-bit, Canon would HAVE to release 64-bit drivers. (BTW, my Canon Pixma ip2000 printer works on Windows 7 64-bit. I can't remember if the driver came from Windows itself or from Canon Europe. Canon Europe always has better drivers.)
Peter predicted that you would "deliberately forget" creation 2000 years ago...
Try the 64bit K-TV with your old card http://www.planetamd64.com/lofiversion/index.php?t7188.html or try the generic BT878 WDM driver http://btwincap.sourceforge.net/supportedcards.html
Open source to the rescue... maybe
Some versions of Windows are rumoured to be able to have more than one program open at a time. As it is, even the XP machine I use at work seems to be able to run the 9 programs I have currently open just fine.
Tell me, why is it a problem that each of those 9 programs are limited to 3 GB each, limiting my current memory usage to 27 GB (theoretically - I only have 2 GB installed)?
Are you really advocating that already bloated programs like Outlook should be bloated even more, to take more than 3 GB?
It will be several years before your average desktop PC has RAM enough to even allocate 3 GB to each of 10-15 programs.
Earlier this year i read an article about a software ram drive which could use this memory - you put 8gig in xp - xp could only see about 3.7 but the ramdrive could then use the rest for a ultra fast ramdrive.
And no, i can't remember the link.
If Google really cared they would fix Android Chrome to reflow text, instead of discriminating
If you purchased the 32 bit version of Vista, you can go on the Microsoft website and order the 64 bit version for a little more than the cost of shipping.
Unless you bought a laptop with an OEM version in which case the only way you get 64-bit is to pay full price for it (and no, the upgrade version only upgrades a non-OEM existing copy).
Yes, we all know you Linux users love to put your things in backdoor tunnels all the time.
Yehk!
If your system is going to use more than 4 GB of memory use the 64 bit version. I have 4 GB with 64 bit Vista and it has always ran smooth and very responsive. It is the same price if you buy the OEM or the upgrade.
No matter how much RAM you have, ONE 32-bit application will NOT use more than 4GB (2+2 or 3+1 if /3GB is used) even on 64-bit OS.
Not disagreeing with anything you said but thought I'd just note for interest's sake that something approximating 4+0 is also a possibility for user address spaces, even with 32-bit tasks.
On a 32-bit system that implies having a separate page table tree for the kernel (i.e. not mapped into the user process pagetables at all) and switching back and forth on each entry to the kernel. The userspace process then gets 4G to play with (well, probably a few pages less than that, as there'll need to be a little page table switching stub somewhere in there, with kernel-level protections on its memory). I know there were patches for Linux to do this but switching page tables all the time is going to really hurt performance. This is really a 4+4 split since the kernel has an entirely separate address space.
On 64-bit platforms, it's possible to have the kernel mapped into the address space all the time (as you usually would) but put it about the 4G boundary so that 32-bit tasks running in compatibility mode just cannot see it. This is really a 4G+ split but again from the the user process PoV the kernel isn't taking up any space. I heard an AMD chap say at a presentation that you could use this trick to get legacy 32-bit apps a bit more usable memory. Somebody hint in another thread on here that Apple do something like this. I wouldn't know, I don't get to play with 64-bit anything ;-)
Anyhow, not very relevant really but thought I'd chip in.
You do realize, that even in the standard edition of Windows server 32-bit, you are limited to 4GB ?
You have to pay extra for the Enterprise version of Windows server, to get PAE enabled to utilize more than 4GB.
Therefore, in the Windows server platform, even, it is a licensing restriction.
Also, Windows XP 32-bit drivers seem to work just fine on that platform. I have not yet seen such an install encounter issues of any sort that turning off PAE resolves.
Right! That's interesting to know but also slightly disturbing :-) I'm surprised that MS don't have a more structured way of doing this stuff. But given that it does rather sound like they're limiting the use of potentially flaky configurations to people who know what they're doing, which doesn't actually sound too crazy!
It'd still be nice to have a secret legitimate switch on other versions but I'd guess they do value the revenue.
I should really read the article and see if it mentions any of this, I've just been enjoying discussing the beauties of x86 design too much :-)
No one uses their PC for games. Get real.
Or as I do on XP-SP2, put a ram disk there
Wow, really, truly the most blatant lack of RTFA I've ever seen on Slashdot. I just read the whole, very clear and convincing thing before coming to skim comments on +5.... and it's all full of "PAE is a hack, get 64-bit", "he found lots of buggy drivers", "it's to do with drivers", "Windows 2008 drivers must be signed"... all stuff that is discredited in the article. It's very obvious that the limitation in 32-bit versions is artificial and it's not to do with the "long tale" of the demand curve as one commenter ignorantly suggested. Seriously, have you all turned into... journalists? Just nonsense: plain nonsense. +5 Insightful?! LISTEN AND YOU MIGHT LEARN SOMETHING.
Technically incorrect.
If you buy the RETAIL version, then yes. If you buy the OEM version, then no.
I tried this, they basically told me to take a hike.
No, I can't, and if you look at my responses to him you'll see that I made the same argument.
Interesting. Thanks for the correction. Have you tried downloading a ... ahem ... "unauthorized" version, and installing it using your OEM key?
I have, though I haven't bothered to install it and try my key as I can't be bothered to yet.
Reading down in the article it sounds like some people have done just that. It will require a phone conversation with MS, but it does apparently work.
MS it seems just won't send you copy, which really inadvertently is promoting the dissemination of their product through shall we say "alternate" channels. Thought I guess this way they save a few pennies on bandwidth or media.
Anyway it seems this has worked in the past, I am not sure about the present or future should it continue. I will likely give it a try at some point.
purely a side effect, this limit was added because Windows had little server marketshare and Microsoft was trying to sell a high priced version of of Windows as a server while at the same time trying to kill off Netscape. When Netscapes web server was packaged and marketed to run on Windows NT Workstation after Microsoft wedded MS IIS to Windows NT Server, sales of Netscapes web server jumped because it was a far far cheaper solution over Microsofts IIS and NT Server packaging. The solution for Microsoft was to impose a limit on TCP/IP connections.And I'd bet that they let businesses know about this legal license change too.
artificially limiting an OS just to segment the market into client and server markets is a marketing trick and one well used by Microsoft. It's something completely different when they bundle applications on top of the OS to enable more server features, but that is not what they did, they crippled the OS to segment the market. And anything they do once has no limit to how many times they'll use that trick. Like no enabling the mid 90s technology called PAE in 32bit Windows desktop OS. IMO
LoB
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
Or data processing, in the case of me or any of my users.
But in any case, manipulating video is something you see only rare specialized users doing?
Not only that but I have to call FUD, as there is a REASON why 32bit XP and Vista don't support more than 3.25 and it AIN'T about licensing. You want to know why? One word-drivers. I have found that there are plenty of seriously flaky drivers that act buggy as hell if PAE is used, and that is with the standard 3.25Gb limit. Capture cards, some of the older Sata and IDE cards, and those are just the ones off the top of my head that I have run into personally.
You didn't RTA - the author does point this out. However, he also makes the valid point that if you're a hardware manufacturer, e.g. say you make notebooks, then you can provide tested drivers with proper support, and hence why shouldn't hardware manufacturers at least have the choice to enable it on their own hardware lines? It's a valid question.
Ah, but you've probably tested fewer drivers than Microsoft has. I'm not saying you're wrong, but I am saying you're working with a smaller set of data than they are.
Karma: Poor (Mostly affected by lame karma-joke sigs)
PAE is no more of a hack than the EMS managers many of us used for the better part of a decade to access our RAM back in the earlier DOS/Windows days.
- Michael T. Babcock (Yes, I blog)
I ended up saying screw it and went with Vista x64. I built a new system in January 2008 with 2x SLI 512MB card, and a 256MB graphics card for dual monitor support from when multi monitor SLI wasn't supported. I also had a TV Tuner and a Auzentech X-fi soundcard with 64MB of RAM on it. The system properties in Windows 32bit reported me having 2.5GB of RAM when I was running 8GB due to it only costing around $60 at the time.
I managed to completely leave Microsoft behind by selling my PC and buying a Mac and an XBox 360--
D'oh!
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
I'm really getting sick of the crap that kdawson posts.
This is complete and utter crap. For anyone to write/post that article, you would have to have zero understanding of memory addressing. Guess what. 2^32 = 4 294 967 296. That means that a 32-bit processor can only handle 4 billion memory addresses, or 4GB of RAM. Clearly software written for 32-bit processors are only going to be able to access the first 4GB. How would you tell software or an OS where to look for something in the 6th gig? OH OH I KNOW! You'd write 64-bit software.
kdawson, you are an idiot, and a detriment to this site. DIAF.
...as the latest JVMs have a "compressed pointers" option that allows the 64-bit VM to be as memory-efficient as 32-bit. This option limits max heap size to 32Gb, but this should be plenty for even most huge applications, for many years to come.
BTW this optimization is a great advantage of all "managed" languages/VMs; it's just impossible for langs like C/C++. Of course, you've got to actually implement it in a JIT compiler like Java's. But I think even an interpreter could do it. Notice that there is no tradeoff to code speed; although the code needs a couple extra instructions to compress/uncompress pointers at every usage of heap objects, this overhead is greatly reduced/hidden by JIT optimizations. (And for an interpreter, it's certainly just noise in the performance map.) Not to mention that the gains in reduced paging, cache misses and TLB misses will more than compensate for any remaining overheads.
You missed the pun which was predicated on the previous pun in the g-g-p I believe.
- Michael T. Babcock (Yes, I blog)
For ONE app to use more than 4GB, you NEED 64-bit.
Might want to check out AWE. Pretty sure that my 32bit sql server, running on 32bit server 2003 is using more than 4GB of memory in one process.
That's complete bullshit. If you purchased the 32 bit version of Vista, you can go on the Microsoft website and order the 64 bit version for a little more than the cost of shipping. Or you can just buy 64 bit to start with - there's no price difference between the 32 bit and 64 bit editions.
PAE was available in Windows 2000 Advanced Server and Datacenter Server. Windows 2000 predates 64 bit windows. Microsoft has been playing this game for a long time, and only recently has a legal way around it become available to Windows users. If you are stuck on 32-bit Windows for driver compatibility, you are still SOL.
"I've generally had the impression that most do, however I suspect they would have disabled it in their budget (and possibly in their mobile) lines. I had a Celeron M laptop that didn't support PAE but as it's both mobile *and* budget I never figured out who to blame ;-) "
Indeed, even the higher end Pentium M didn't support PAE until they were forced to because NX required PAE support. What is even more embarrassing about this is that the first version of the Pentium M was released in March 2003, which was right when AMD released the Opteron processor as the first NX capable processor. While Windows was able to work-around this by auto-detecting PAE and NX in the bootloader and selecting the kernel appropriately, Linux's bootloader couldn't and so most Linux distributions defaulted to the non PAE kernels which lacked both NX and support for more than 4 GB of RAM until recently, when installer auto-detection was finally added to default to the PAE kernel for NX capable systems.
Sorry, tried both and no joy. The closest I ever got was according to device manager with a hacked Hauppguage driver I had the sound show up, but never could find the right tweak in the .ini file to get video working. If you look at the list you gave for a second link you will see there is NO support for the Easy TV FM, which is NOT the same as the Best Buy Easy TV, as one uses the Phillips and the other the Conexant.
Since the card I have is obviously some generic re-badged Chinese crap (as even the app itself has zero links or contact info anywhere) I am pretty much boned when it comes to getting it to work. Also with the first link you have to know not only which chip you are using but it addressing scheme to get the generic to work. Since this is a non name cap card there is no way in hell to have a freaking clue about which addressing scheme, and I tried every NTSC setting in that thing and never got sound or a picture. Hell I bought the thing for $15 on a "buy two and save!" sale, so I have gotten my money's worth out of her. I just need to find a new card that supports XP X64, hell I would even take analog only as I only watch cable, that is preferably under $60 as I don't watch enough tube to make it worth blowing a wad of cash on. I just hadn't had the time to look for one.
ACs don't waste your time replying, your posts are never seen by me.
Too bad, I haven't dealt with BT878s under Windows much, but under Linux I've been using them for ~10years. I have two different very generic BT878 cards.
It's out of your price range, but the HDHomrunner is a great option if you don't need analog signals http://www.silicondust.com/products/hdhomerun . There is also the Sling Box, but it's even more expensive http://www.slingmedia.com/go/slingbox-prohd-connections . I have a HDHomrunner.
Hmm, if you have a older PC to run Linux on, you could install MythTV and throw your BT878 card in their. A 1Ghz-ish class computer can compress raw BT878 video into MPEG4 using MythTV. http://www.mythtv.org/
MythTV is my favorite DVR, and is very easy to setup.
If I saw a process using anything close to 3 gigs of ram, I'd probably kill it.
if Microsoft defaulted to 64-bit, Canon would HAVE to release 64-bit drivers.
Microsoft doesn't default to anything, because Microsoft doesn't sell computers. Moreover, Vista and Win7 both come with licenses to install both 32 and 64-bit versions with the same product key, so this fellow's argument about licensing issues is moot.
It's the hardware sellers like Dell & HP that would need to install 64-bit OSes by default, but they won't do that just yet because people are still mostly buying computers with 4GB of RAM become more common. But every month/year they can put it off is another month/year for old devices to die and be replaced with more modern devices with existing 64-bit drivers. That means fewer "[Perform 30 minutes of generic troubleshooting steps] followed by [we're sorry, you need to contact the device manufacturer]" calls they'll receive, and fewer people returning their new PC because of unmet expectations, however misguided.
https://www.eff.org/https-everywhere
So (umm), do you have an alternate explanation for why they limit you to 4GB of address space in Windows server 2003/2008 Standard, but in Windows server 2003/2008 Enterprise, you are allowed to use all physical memory?
Keep in mind both editions use the same kernel. There must be some configuration and registry bits that are different.
The drivers between 32-bit XP, Server Standard, and Server Enterprise are not different; the same drivers are used in all 3.
Microsoft does not actually test drivers. Only certified drivers that get signed have to be tested according to Microsoft's specifications.
And you can load unsigned drivers into all these versions of Windows (Except 64-bit versions of XP which carries a special restriction that unsigned drivers cannot be loaded)
Most Socket 754 boards were still AGP (that would be the first generation Athlon 64's). However, good luck finding a board from back then that would also support more than 4GB of DDR memory. So I agree, few people are going to be running into that problem.
They should be selling the 64-bit version. They should be preinstalling the 64-bit version. People *shouldn't* be using the 32-bit version, becuase there's still a very real architectural limitation in the 32-bit version: a given process can only see 3 GB of memory, no matter how you set up your licensing.
There is one very real exception to this rule, in the current market: the netbook. Netbooks tend to have less than 2GB (or only 1GB if Windows is installed - once again MS licensing greed) and the Atom is currently a 32-bit processor if I'm not mistaken. Could be wrong, but even so netbooks and people who specifically *need* 32-bit should be the only ones buying it. Almost all new computers being sold have 64-bit processors regardless of memory installed - why preinstall 32?
Windows has detected an undetectable error.
I thought MythTV used the client/server method. So wouldn't I need TWO boxes? And the problem with that suggestion is I live in a teeny tiny apartment. I can't really bitch because for $225 I get all utilities and trash paid along with neighbors that are quiet as church mice, but I already have three boxes going-a 1.1Ghz Celery Win2K "nettop", a 733Mhz with an old FX5200 I use for my Win9x gaming rig, and my new baby, my monster AMD 7550 dual core, 8Gb of RAM with 1Gb of GPU RAM bad boy.
I doubt the 733Mhz or the Celery would be good for TV, as the Win2K is busy pretty much 24/7 as my downloader which usually leaves it with only around 100Mb of RAM free. The 733 is maxed out at 384 of PC100 which in my experience usually equals choppy picture, not to mention it uses a funky proprietary PSU that is only 175 watts, so putting anything besides the FX5200 and the USB 2.0 card probably wouldn't be smart, so that leaves the bad boy. I have an old AMD Athlon 1.5Ghz board, but it is a full size board so i would need to build a tower and I just can't figure out where in the hell I would actually put another tower here. If I could find a SFF case where it would fit I could put it under the monitor as a riser, but I have found the SFF cases end up costing too much to make it worth building.
So probably the best bet for me would be to find a cheap analog capture card that has XP X64 drivers. I know they are out there I just haven't had time to look for one. The other problem with going Myth is that it is Linux only, and I have yet to get a Linux box to work out of the box. In fact the only one which a LiveCD actually detected most of the hardware was the bad boy, which since it is my gaming rig would be dual booting anyway. If I am gonna do that I might as well stick with the XP 32/64 dual I have set up now. Thanks for the idea, but me and Linux are two unmixy things.
ACs don't waste your time replying, your posts are never seen by me.
Pretty much the only thing I DO need is analog, so neither of those would help, plus I don't actually own a TV since I have always had a cap card I have always just watched TV on my PC and my apartment doesn't have room for another pile of gadgets like a TV and box anyway. I think my best bet is just gonna be finding me a nice affordable analog card with XP x64 drivers. I know they are out there, I just can't blow a lot of cash as the county fair is coming up and my GF really wants me to take her. She has been broadly hinting if I want to get 'extra lucky' (damned curious to find out what exactly is extra lucky) I will take her and try to win her a stuffed animal. What it is with fairs and girls and stuffed animals, damned if I'll ever know
So until I have the time and extra cash to go prowling the net for what I need I'll just have to keep dual booting XP 32/64. Because naturally if it comes down to a cap card or finding out what 'extra lucky' is I am going to have to go with the latter. Scientific curiosity and all, you know?
ACs don't waste your time replying, your posts are never seen by me.
I'm running the 32-bit version of Arch Linux on my desktop with the default kernel, and it has that limit. I know I could work round that limit with a different kernel, but I don't really need 4G of RAM and I mostly only use the box for MythTV anyway these days, so I haven't bothered. I did intend to use 64-bit when I upgraded the hardware, but I had trouble migrating the MythTV database to the new install.
The official MythTV frontend runs on Win/Mac/Linux... except for 64bit Windows... so ya, not a good fit for you.
Because we have this little thing called "The Internet" and whatever hack they used would spread across the net like wildfire. Just look at how the "unlimited connections" XP hack spread like the clap. As someone who has been building PCs since the days of Win3.x I can tell you that gamers would get a hold of this pretty damned quick. I have seen gamers running all kinds of crazy shit just to squeeze a few more FPS, I even once met a guy who paid for an MSDN just so he could get a copy of XP Embedded and WinFLP to run on his gamer rigs.
Of course even if they managed to tie it specifically to that companies hardware you STILL have the problem of USB and express card devices causing all kinds of trouble when they expect 32bit addresses and they get 36bit. That is most likely the reason why my cap card is so buggy under PAE, as it is from 2004 and doesn't like the 36bit addressing.
So in the end my statement still stands. Server is a VERY different beast than desktop, where their admins do a hell of a lot of work to make sure their purchases work with what they are running. Home users will pick up any generic Cheapo Chinese Crap that is on sale at Best Buy this week. So unless you are advocating making laptops and boxes with NO USB or any other kind of expandability (yeah that would sell well) then in the end they would still have the same royal PITA, it would just be on a smaller scale than if they released it to the general public. With so many millions of XP32 drivers out there, many of which I'm betting will choke and puke on 36bit addressing, it just makes more sense to get everyone over to true 64 bit and be done with it.
Lets face it...RAM sizes are going nowhere but up, even the cheapo boxes now come with 2Gb, and many come with 4Gb, and the prices for RM just keep getting easier on the wallet every day. Like I said after rebate I doubled my RAM, going from 4Gb to 8Gb for just $35. So even if they were to release it the shelf life for 32bit has just about come to an end, and trying to stretch it for another year with a bad hack that will cause more problems than it solves just doesn't make any sense. Even in the enterprise server market where they allowed PAE over 4Gb they advised just going ahead and switching to 64bit. The 32bit PAE mode hack just isn't worth the extra work involved, especially since I've found that even old software works pretty damned good in XP X64 thanks to WOW64.
ACs don't waste your time replying, your posts are never seen by me.
The reason PAE bones drivers is this-PAE uses 36bit wide addresses, and if the card can only send/receive 32bit addresses....well you get the idea. Despite what others have said here I have seen with my own peepers how the 36bit addresses can cause glitching with my capture card.
And since Mark Russinovich, who is pretty much THE go to guy when it comes to low level Windows coding says, and I quote
"Windows XP SP2 also enabled Physical Address Extensions (PAE) support by default on hardware that implements no-execute memory because its required for Data Execution Prevention (DEP), but that also enables support for more than 4GB of memory. What they found was that many of the systems would crash, hang, or become unbootable because some device drivers, commonly those for video and audio devices that are found typically on clients but not servers, were not programmed to expect physical addresses larger than 4GB. As a result, the drivers truncated such addresses, resulting in memory corruptions and corruption side effects. "
I am guessing the video and audio devices of which he is speaking is video capture cards, which of course is something you're not gonna find in your average server, but at least around here is quite popular. And of course there is a bazillion different cheap Chinese analog cap cards floating around out there right now, most with 32bit only drivers. I myself have an Easy TV FM card that I can't find a 64bit driver for to save my life, which is why I have to dual boot XP 32/64. And I can tell you from experience that it is a LOT more flaky and crash prone now that I have PAE enabled. So it isn't so much the memory as the width of the addresses that causes the flakiness. And THAT, not some licensing conspiracy, is why MSFT doesn't allow PAE over 4Gb, because things like capture cards get seriously flaky with PAE.
ACs don't waste your time replying, your posts are never seen by me.
And even back then, the Athlon 64's memory controller supported memory remapping, unlike desktop Intel chipsets of that era. But not all BIOSes exposed that support back them.
Well, that is true on Intel with it's desktop chipsets (even the 945 did not support memory remapping), but AMD has supported memory remapping on all their AMD64 processors since the beginning.
If you want to support this site, consider donating to Geoff Chappell: http://geoffchappell.com/viewer.htm?doc=support/index.htm&tx=3