Slashdot Mirror


Microsoft To Dump 32-Bit After Vista

SlinkySausage writes "Microsoft has used its annual hardware engineering conference to announce that Windows Vista and Server 2008 will be the last versions of Windows capable of booting on 32-bit CPUs such as Intel Pentium 4 and Core Duo. AMD, which introduced 64-bit CPUs early — much to the derision of Intel, which said there was no use for them at the time — must be delighted with Microsoft's decision. Owners of first-generation Intel Macs that used (32-bit only) Core Duo CPUs may not be so happy knowing that Vista will be the last Windows they will be able to run."

15 of 527 comments (clear)

  1. Is there a tangible reason to drop 32-Bit? by anss123 · · Score: 3, Interesting

    Linux, *BSP, etc, etc, are happy to support 32-Bit/64-Bit at the same time. I tried out the 64-Bit version of Windows Vista in VMWare (which can run 64-Bit Vista on top of 32-Bit Vista) and the only "benefit" I got was that my old 16-Bit apps stopped running. (Got several great 16-Bit games, and a 16-Bit dictionary.) What can the newfangled 64-Bit future Windows do that won't be feasible with a 32-Bit version lurking around?

  2. YES! by Quantam · · Score: 4, Interesting

    As a programmer I've been waiting for this. I was actually disappointed that Vista would support 32-bit CPUs, but I guess there was no way around that, given how common 32-bit x86s still are. Having one architecture to support will make things much easier, as well as get people to actually update their legacy code. Now if MS could get them to actually fix all the problems due to generally crappy code (like requiring admin)...

    --
    You have tried to support your argument with faulty reasoning! Go directly to jail; do not pass Go, do not collect $200!
    1. Re:YES! by Undertaker43017 · · Score: 2, Interesting

      Dream on!

      You think the hardware vendors are waiting around? They are already dreaming of 128-bit CPU's.

      In 7-8 years when/if Vista's successor is ready the hardware vendors will already have had 128-bit CPU's on the market for at least a year, and convinced everyone that they need one.

  3. Good! by default+luser · · Score: 4, Interesting

    The 4GB memory barrier is fast-aproaching for high-end users, and dealing with it is a MESS. Most motherboards don't support PAE (either due to lack of re-mappable PCI address space, or even lack of 36-bit address lines!), so we have a hard-limit of 2-3GB in the most popular version of Vista (32-bit). This is going to be a rough few years for game developers.

    I really don't see why Microsoft went 32-bit on this version anyway...I'd say over %80 of the potential upgrade platforms and over %95 of all shipping PCs today support x86-64 mode. But when you look back, history paves the way:

    Windows 386 = Windows 2.0 with 32-bit enhancements bolted-on. Equivilant of Windows XP 64
    Windows 3 = crossover version with support for 16-bit and 32-bit processors. Equivilant of Vista.
    Windows 95 = supports only 32-bit processors. Equivilant to the next revision of Windows.

    Too bad Microsoft didn't have the balls to jump the gun and make Vista 64-bit only.

    --

    Man is the animal that laughs.
    And occasionally whores for Karma.

    1. Re:Good! by default+luser · · Score: 2, Interesting

      That's why they have WOW64 mode on their 64-bit operating systems. Tghe x86-64 platform was designed with full 32-bit compatibility in mind. This is why I was amazed MS didn't make Vista a core 64-bit OS - like the 386 (running 16-bit applications in 32-bit mode), it has support for running 32-bit applications in 64-bit mode.

      This provides excellent backward-compatibility for 32-bit apps, with all the benefits of a 64-bit OS and drivers. This allows you to unify development of applications and drivers to one platform, instead of splittiing it between Vista 32 and 64.

      Right now Vista 64 is the black sheep becausde all focus is on the 32-bit version.

      --

      Man is the animal that laughs.
      And occasionally whores for Karma.

  4. Re:as the owner of a first gen intel mac.... by Kadin2048 · · Score: 4, Interesting

    Actually, what I thought was crazy is that Apple customers aren't the only ones using the Core processors, why single them out? Is Apple even the largest customer of Intel 32-bit processors?

    Apparently because on Slashdot, making some sort of backhanded Apple comment at the end of every story guarantees a lot of comments.

    I thought it was a total non sequitur, too. Apple users will be upset? How about all the people who can't reboot into OS X and go on their merry way? I think they're going to be a bit more pissed.

    --
    "Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
  5. Re:This will make things interesting by billcopc · · Score: 2, Interesting

    Will this increase the amount of lead going into our landfills?


    No, but it will increase the amount on my hydro bill when I build a cluster of "obsolete" 32-bit processors in the basement :)

    Just because Microsoft gives up on something, doesn't mean everyone else has to. Just look at Vista, it was more exciting when it was still vaporware. Even people buying new Vista-ready PCs still prefer XP, because Vista does hardly anything new, certainly nothing better. Microsoft should have released a new Theme pack for XP instead. I'm sticking witn XP for as long as I can, despite having a perfectly fast dual-core with gobs of ram and a beast of a graphics card. I didn't buy all that nice kit to waste all its power on a filesystem and mouse driver... I spent the cash to do video processing, rendering and GAMING! Anything that takes power away from those primary activities is a bad thing. That's why I like Linux because I can make it as lean as I want to squeeze out a few extra cycles.

    If I wanted a pretty OS, I'd buy a Mac. They manage the slick graphics without the outlandish hardware requirements, and they can actually do two things at once without both processes stuttering.
    --
    -Billco, Fnarg.com
  6. Re:Mac Owners (not) Running Windows by Sancho · · Score: 2, Interesting

    The hardware VT bit is a bit misleading. Some instructions are slower under Intel's VT instruction set than under software emulation or native virtualization. However some instructions are faster. A virtualization company who tests these things will be able to utilize some of the hardware VT to gain an edge.

    Regardless, VMWare uses native virtualization in all of its products, meaning it still needs to be run on the same type of CPU. It runs the instructions directly on the CPU, so the switch to Intel was still important. Virtual PC for the Mac uses emulation, which is much slower.

    Of course, being able to boot Windows is certainly a factor, too. Before Boot Camp, though, it was probably beyond the capabilities of most people.

  7. Re:as the owner of a first gen intel mac.... by AKAImBatman · · Score: 4, Interesting

    Since I've been itching to try out the new Charts feature on Google Spreadsheets anyway, I threw together a spreadsheet of the Windows memory requirements:

    http://spreadsheets.google.com/ccc?key=pdgLUlhjY22 Avkn0zhNfTcQ

    If that isn't a hockey stick chart, I don't know what is.

    BTW, does anyone know how to get the labels to show up correctly?

  8. 64-bit is annoying because of its 32-bit ints by Anonymous Coward · · Score: 1, Interesting

    Let's hope that when 128-bit machines come out, gcc makes its ints have the same width as the pointer.

    The number of programs that break on compiling for 64-bit because of the retro 32-bit ints is just plain ridiculous. Sure, I agree, that's because they weren't written very well in the first place, but you can't expect to fix everyone's old programs when recompiling code to larger architectures. That doesn't scale.

    That was a *very* poor decision by gcc designers, and unnecessary. The "natural" size of an integer register on any given architecture (which is 64-bit on both Intel and AMD 64-bit architectures) should also be the size chosen for gcc's int.

  9. Sun already got rid of 32-bit long ago by gd23ka · · Score: 2, Interesting

    Beginning with Solaris 10, 32-bit Hardware is no longer supported on SPARC.
    The operating system still ships with support to run 32-bit applications.

    Microsoft will certainly never be a serious contender in the tiers of
    professional computing filled by Sun and IBM and I know you can argue that
    with me for arguments sake but after everything is said and done it is
    still IBM Mainframe/AIX muscle and Sun Solaris tendon that make the world
    go around. And as far as rotating the globe goes, Microsoft excels of course at
    marketing spin so while the major players all abandoned 32-bit more or less
    quietly one wonders how Microsoft will flaunt and celebrate the fact in
    front of a impressionable lay public.

  10. Re:Obligatory... by TheThiefMaster · · Score: 2, Interesting

    Actually, last time I checked modern 64-bit cpus could actually only address 2^40 bytes of Ram, because you couldn't physically attach that much ram to them. 2^39 starting at 0 and 2^39 at the other end of the 64-bit spectrum.

    Essentially the upper half IS reserved for the OS (which is much more than 2^48, it's 2^63), but it will be a long while before it's a problem, because at the moment there's a big no-man's-land between the valid program and OS memory addresses.

  11. Re:as the owner of a first gen intel mac.... by AKAImBatman · · Score: 2, Interesting

    They're not *my* recommended requirements. They're pulled from the source pages. (check the column on the right of the first sheet) Those pages appear to pull from the requirements that Microsoft published. I don't know if you remember back in the old days, but Microsoft tended to lowball their memory requirements. (Presumably to sell more copies.)

    If you've got a reliable source that gives different values for these features, please share and I'll update the sheet.

  12. Re:The real question is: by Monkey · · Score: 2, Interesting

    In order for a vendor to provide Microsoft approved "Certified for Vista" drivers, the company also has to release an x64 version of the driver.

  13. Re:as the owner of a first gen intel mac.... by dgatwood · · Score: 2, Interesting

    Go get yourself a Mac with a Core 2 Duo processor and see for yourself.

    It is not necessary for the kernel to be 64-bit to support 64-bit executables in user space. It is only necessary for the kernel to know how to manage an MMU that supports 64-bit addressing and for the kernel to maintain all unmapped user-space addresses as 64-bit values. Once mapped into the kernel, the kernel-space representation can safely be a 32-bit value without limiting anything other than the maximum aperture within a 64-bit app that the kernel can directly examine/modify at any one time.

    No special hardware is necessary to do this. The Mac OS X kernel does not use any 64-bit instructions; the same kernel is used for both 64-bit-capable Core 2 Duo CPUs and 32-bit-only Core Duo CPUs. It probably has a few lines of special-cased assembly language at the system call interface layer and the pmap layer (where memory mappings are stored into the MMU) to access the upper halves of registers, so for a dozen instructions per system call, it might be running in 64-bit mode (on x86---on PowerPC, it doesn't even do that, AFAIK), but the kernel as a whole does not run in 64-bit mode.

    If you think back to your Operating Systems class, you'll recall that memory management never really uses pointers. At worst, it uses things that look like pointers but aren't really used as such. Ideally, though, a well-written memory management subsystem just uses integers (or equivalent opaque types). Pointers in a user-space application have no meaning in the kernel. Those user-space addresses generally point to entirely different physical addresses in the kernel unless you get really lucky. Thus as far as the kernel is concerned, they are just numbers. It really doesn't matter whether those numbers are 32 bits in length or 64 bits. As far as the kernel is concerned, it's just a uint64_t or equivalent, which allows for 64-bit numerical computation even on 32-bit CPUs. As long as the kernel doesn't do something careless and truncate it to a 32-bit value, the kernel doesn't care about how long the value is.

    Similarly, physical addresses in RAM are meaningless to the kernel. They are just numbers. As long as the kernel is careful not to truncate those numbers to 32-bit values, it doesn't matter how long they are. The only thing that needs to understand the longer value is the MMU, and of course, it does. All the kernel cares about is that the page 0x000423847362739a maps onto address 0x00341ac0 in the 32-bit kernel address space and also maps onto address 0x000001c538273847 in a user-space process with a 64-bit address space. Those are just numbers that get plugged into the MMU, and it does all the work.

    I could probably implement a kernel that supports 64-bit user space processes with an 8-bit kernel address space if any 64-bit CPU still supported 8-bit addressing. The biggest problem would be finding room in an 8-bit address space to map the page table for a 64-bit process; it might be kind of tight. In theory, though, you could do it. The point is that for 64-bit executable support, the only real requirement is the ability to perform 64-bit math, which can be (and is) easily emulated using a small number of 32-bit math instructions.

    There are exceptions to this, of course. The Linux kernel, for example, historically divided a 4GB address space between user-space apps and the kernel and ensures that the two address spaces do not overlap. There are performance advantages to doing that because you can leave mappings in place during boundary crossing. However, such an layout won't allow 64-bit processes on a 32-bit kernel unless you do some really weird lower-4GB bounce buffer tricks on every system call (at a huge performance loss). It's a feature vs. performance tradeoff, really. I think that Linux has pretty much stopped doing that at this point, but I'm not certain.

    Mac OS X does not do a split address space. The kernel has a full 4GB address spa

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.