Slashdot Mirror


AMD64 Surpasses i386 As Debian's Most Popular Architecture

An anonymous reader writes with a quick note about the changing tides of computer architecture. From the article: "Bill Allombert announced [yesterday] via the Debian-devel mailing list that the X86_64 version of Debian has now surpassed all of the other supported architectures by a narrow margin. The most surprising part of this announcement however, and accompanying info-graphics provided on the Debian Popularity Contest page, is that this was not already true."

38 of 216 comments (clear)

  1. Not surprising... by jaymz666 · · Score: 3, Insightful

    considering lots of people use older machines to install Linux on to breathe life into them, to act as servers, etc.

    1. Re:Not surprising... by bill_mcgonigle · · Score: 4, Interesting

      And Debian, no less. You don't pick Debian for 'new hotness'.

      I still carry i386 minimal install CD's with me, but it's been feeling odd lately to have to use them on servers. Even some of my Atom machines can handle the AMD64 instruction set. It looks like i386 (especially -proper not i586+MMX) is destined to become a 2nd-rung arch along with MIPS, PPC, etc. At the same time kernel ARM support (e.g. OMAP) is really starting to mature. It looks like the two dominant arches the not-too-distant future will be ARM and AMD64.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    2. Re:Not surprising... by jellomizer · · Score: 3, Insightful

      I actually choose Debian for servers, the biggest and fastest servers I can get my hand on. Debian isn't a desktop distribution, you got Ubuntu for that. But for a server you want a small and fast OS, You don't care much about X the server should be able to run by itself for weeks at a time and casual maintenance.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    3. Re:Not surprising... by vlm · · Score: 2

      I do find it funny how Windows and Linux, were not as graceful from the 32bit conversion to 64bit like Apple and Sun Microsystems.

      I think you might not know about the alpha linux port in the mid 90s. 64 bit native kernel is not much of an issue. How the distros handle multi-arch, now that has been recently exciting.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    4. Re:Not surprising... by Lumpy · · Score: 2

      "I don't think I've seen a 32-bit app that won't run on 64 bit Windows."

      I have plenty here. Old apps for programming older integration software, Car ECM programming, etc.... All fail under Windows X86. I have a old laptop with windows 2000 installed on it for using these programs.

      --
      Do not look at laser with remaining good eye.
    5. Re:Not surprising... by xaxa · · Score: 4, Informative

      And Debian, no less. You don't pick Debian for 'new hotness'.

      Ubuntu has less amd64 installs than i386: http://popcon.ubuntu.com/

      sudo dpkg-reconfigure popularity-contest and "Yes" to join the contest (mine was disabled for some reason).

    6. Re:Not surprising... by HAKdragon · · Score: 2

      I haven't seen 64-bit versions of Windows (Vista and 7) having any problem running 32-bit applications. What I have noticed is that a number of older applications utilize 16-bit installers which 64-bit versions of Windows won't run, but many times those will lay down 32-bit executables and libraries that the OS handles fine.
       
      As an aside, I run the 64-bit version of Debian at home and I haven't had any issue running 32-bit applicaitons, assuming ia32-libs is installed (Wouldn't be a bad idea to install this by default (a la SUSE) or at least prompt during the install).

      --
      "Our opponent is an alien starship packed with atomic bombs. We have a protractor."
    7. Re:Not surprising... by Nursie · · Score: 2

      Stable, sure. But with testing or unstable you get a fantastic OS that does have a lot of the new hotness. I've been running testing as my business desktop in a large corporate for some years now.

    8. Re:Not surprising... by jawtheshark · · Score: 2

      The only Atom CPUs, intended for netbook or desktop usage, that are not 64-bit enabled are the two "original" netbook Atoms, being the N270 and N280. Ever since the Atom 230 and the Atom 330 (the only two without a letter designating their usage), all Atoms are 64-bit provided they are for netbook or desktop usage, which means their model number is prefixed with N or D.

      It is true that the Atoms with model numbers prefixed with E or Z are 32-bit, but those are for embedded application (E) or "mobile internet devices" (Z). I'm sure you can get them, but it's much much harder. Interestingly these Atoms are those that support hardware virtualization, which I always found odd. The first Atom desktop CPU to support hardware virtualization is the D2700, which is a very recent one. (Do note, software-only virtualization works. I have a Windows XP VM in VirtualBox on my 330-based Linux desktop)

      So, I don't find it all that surprising that most Atom CPUs you encounter are 64-bit enabled.

      --
      Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    9. Re:Not surprising... by washu_k · · Score: 2

      Are you sure they are 32 bit and not 16 bit, ie Windows 3.X apps? Lots of old apps are 16 bit and many older 32 bit Windows programs have 16 bit installers. 64 bit Windows tries to work around the 16 bit installer problem, but it's not perfect.

    10. Re:Not surprising... by danomac · · Score: 4, Interesting

      On Ubuntu's download page it doesn't recommend using amd64, it recommends x86.

      That's probably why Ubuntu shows less amd64 installs than x86. They could get with the times and recommend amd64 -- my 6 (or was it 7?) year old laptop even supports the amd64 instruction set.

    11. Re:Not surprising... by Bert64 · · Score: 2

      Windows has no problem running 32bit apps on 64bit hosts, although 64bit windows came years later than 64bit linux...

      Drivers ofcourse are a problem on windows, a lot of older hardware has no 64bit drivers and likely never will because the manufacturers have long since abandoned the hardware.

      64bit linux has no problems running 32bit binaries either, however since most applications can easily be recompiled as 64bit native, the necessary libraries required for compatibility with 32bit applications are often not installed... Personally i have had no need for 32bit compatibility on any of my 64bit linux machines.

      Drivers on linux are much less of a problem, not only has 64bit linux been around a lot longer than 64bit windows, but most of the drivers come with sourcecode and are trivially recompiled...

      On 64bit windows and solaris, the 32bit userland libraries are included by default so there is no compatibility problem... Also on Sparc it makes sense for the userland to be 32bit because 64bit sparc programs just use more ram unless you are actively making use of 64bit specific features like >4gb ram etc. On x86-64 you get the benefit of a larger register set, so programs generally run faster as 64bit.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    12. Re:Not surprising... by ifiwereasculptor · · Score: 2

      Seconded. I have been using Debian for a long time, mostly because its installation is a lot more modular than other distros and because you can find .debs pretty much anywhere. Though I have been thinking of moving to Mint on my next PC (probably Debian Edition, though). Debian stable is also great for installing on the machines of senior family members. Other than the outdated version of Firefox, they're fine. So I just install a recent version Opera or Chrome and they're good to go for a year or so (getting a newer Firefox from testing is a no-no, because it pulls pretty much the whole distro - even Gnome 3, which is verboten on old PCs, especially the ones with NV30-40 chips - and newer versions of Firefox can't use the old openjdk, which is needed for banking).

  2. Re:Wow! by dickplaus · · Score: 5, Informative

    Erm... AMD64 doesn't mean AMD proc's.

  3. Talking about Debian and AMD64 by thms · · Score: 2

    How far is multiarch support, i.e. being able to install 32 and 64 bit packages along side each other, and that not just on the Intel architecture but any CPUs which support both 32 and 64bits?

    Have any other distros pulled this off?

    1. Re:Talking about Debian and AMD64 by Carewolf · · Score: 3, Interesting

      How far is multiarch support, i.e. being able to install 32 and 64 bit packages along side each other, and that not just on the Intel architecture but any CPUs which support both 32 and 64bits?

      It has started to actually work this year in Debian and *buntu distributions (on Debian use testing or unstable). Though you should be warned: You will likely end up with duplicates of all major libraries.

  4. Re:Wow! by AliasMarlowe · · Score: 4, Informative

    You should check up on PAE kernels.

    Microsoft's flawed implementation (or lack of implementation) of PAE modes means that 32bit Windows can access and manage only 4GB of address space in total, even on a 64bit processor. Linux, BSD, and others implemented PAE correctly, and 32bit Linux can access and manage 64GB of RAM on a 64bit machine. Since it is rare for a single process to require more than 4GB of its own address space, there is not much reason to migrate from i386 to amd64 on Linux. On 32bit Windows, however, the total address space of all processes including the base OS and hardware I/O space cannot exceed 4GB. Hence the rapid shift from 32bit to 64bit in Windows, but the much more leisurely migration on Linux and BSD.

    --
    Those who can make you believe absurdities can make you commit atrocities. - Voltaire
  5. Re:first! by Walterk · · Score: 3, Funny

    Oh dear, you must've been posting from a 32 bit Debian install.

  6. Not a huge surprise. by PhotoJim · · Score: 2

    This isn't the most massive surprise. I run 32-bit Linux on 64-bit processors in some cases. If the machine has 4 GB or less RAM (and in some cases, 64-bit machines have a maximum RAM capacity of 4 GB anyway), then there is no point in running a 64-bit distribution. Executable files are slightly larger and there is no speed gain.

    Of course, if you have a 64-bit CPU and your machine has or can accept more than 4 GB RAM (and in the latter case, you plan to expand it to 8 GB or more at some point), it makes sense to start with 64-bit installs at the beginning. Yes, you could use a 32-bit install with a PAE kernel but it seems more sensible to me in that case to just use 64-bit Linux to begin with.

    Also, the points made above that Debian is not bleeding edge and that people often run Linux on older hardware are absolutely valid.

    I'm not the most current person, but my most modern two machines are an i7 and a Core 2 Quad. The latter is maxed out at 4 GB and so runs a 32-bit distro. The i7 has 8 GB so it runs a 64-bit. The server is an old PIII that is doing just fine on 32-bit, and the netbook is an N270 Atom so again, 32-bit.

    1. Re:Not a huge surprise. by cryptizard · · Score: 4, Interesting

      Executable files are slightly larger and there is no speed gain.

      That depends on what applications you are running. Things that are math heavy can run significantly faster in 64-bit mode. As an example, RSA requires modular exponentiation of very large numbers. Algorithms to do this are comprised of a number of multiplications of equally large numbers. Since these numbers are on the order of 2048 bits, they need to be chunked into machine size blocks in order to actually do the multiplication. Having a 64-bit integer size already gives you at least a 2x speedup here because you have half as many blocks. Multiplication algorithms are also not quite linear (close to n log(n)) so it really gives you a bit more speed than that.

  7. Re:Very slow news day by bluefoxlucid · · Score: 2

    you mean not confusing long int with int in C programs? Which, by the way, is WRONG, but works on i386 because sizeof(long) = sizeof(int) whereas sizeof(int) may be sizeof(uint32) while sizeof(long) is sizeof(uint64) on amd64. In C, long long >= long >= int >= short >= char. On one platform long > int, and on another long = int.

    Here's a tip: say what you god damn mean; if you want a long int, declare a long int instead of just an int. If you want a short int, declare a short int instead of just an int. If you declare just an int, declare just an int everywhere where that interface is going to come into play.

    Programmers do a lot of allocating something big and shoving it into something generic, and it works because the generic thing is also big. But then they change platforms and the generic thing is now big but the big thing is now HUGE, and they put something HUGE in the big thing and then copy that into the generic thing and lose half of their storage space and get weird values out and the program doesn't work. Programmers think the computer should understand what they mean, not what they say, especially when it's "always been that way before." Like being in the midwest and asking for a coke, and you get a pepsi--because coke means soda. Go out east coast and ask for a coke and they're like... we have pepsi, is that ok? People are like, what? Yes that's what I said, what the hell? Programmers have this happen on computers and don't know why it breaks.

  8. Re:Very slow news day by tepples · · Score: 2

    you now know that we crossed a point where 64bit is more common then you will make your programs take more advantage of the 64bit systems.

    What is the practical advantage of 64-bit code for processes whose working set is far smaller than 2 GB? Do the extra architectural registers in x86-64 really make that much difference in practice?

  9. PAE has worked fine on Windows Server by tepples · · Score: 4, Informative

    Microsoft's flawed implementation (or lack of implementation) of PAE modes

    PAE has worked fine on Windows Server. Microsoft just disables PAE on 32-bit client operating systems because developers of drivers for desktop PC peripherals have been even slower to make their drivers PAE-clean.

    1. Re:PAE has worked fine on Windows Server by Anonymous Coward · · Score: 3, Insightful

      Yeah

      This is actually an example of Linus being right to push for drivers to be source code which lives in his kernel repository, not binaries you get on a CD with the product.

      When Linux went 64-bit, Linux developers went through the drivers and replaced stuff that said "Yeah, I can just use any hardware address, I have 32-bit DMA" with code saying "Is this address suitable for 32-bit DMA? If not, I will use a bounce buffer like shitty ISA drivers used to". They ripped out any code that crammed hardware addresses into a 32-bit integer, and so on.

      Then when new drivers were submitted they rejected ones that showed no sign the author had done the same work.

      So for end users the effect was that most drivers just worked, and of course because it's Free Software any which somehow didn't could be fixed quickly. Whereas over in Windows land it's ten years since 64-bit went widespread and they're still having this problem.

  10. Re:About time. by Lumpy · · Score: 4, Insightful

    "Who owns a system that still cannot run 64bit software?"

    I have plenty of them. Two routers that are still 32 bit only. I have several embedded PC104 industrial computers that are running robotics that are 32 bit only.

    you know, those of us doing REAL work with computers. We need the older 32 bit Linux OS builds.

    --
    Do not look at laser with remaining good eye.
  11. Re:Wow! by ThePhilips · · Score: 4, Informative

    Was some AMD fanboy trying to make a point or did someone post this pre-coffee?

    Debian gave moniker "AMD64" to the Intel/x64 systems to honor the facts that (1) AMD had introduce it and (2) without AMD we would never had the affordable 64-bit systems. (Intel's version of the 64-bit future was the IA-64.)

    Similar sentiment btw was shared by Linux kernel folks, but they decided (== Linus decided) in the end to use vendor-neutral 'x86-64' moniker.

    --
    All hope abandon ye who enter here.
  12. Re:Wow! by gman003 · · Score: 4, Informative

    It's really just that naming is a mess.

    The 32-bit architecture is known, variously, as "x86", "x86-32", "x32", "i386", "i686", or "IA-32".

    The 64-bit architecture is known, variously, as "x64", "x86-64", "Intel 64", "IA-32e" ("IA-64" was taken by Itanium), "AMD64", "EM64T", and I think VIA has their own name for it.

    Intel, obviously, uses the term "Intel 64" in marketing, "IA-32e" in technical writing. AMD obviously uses "AMD64", but as they were the first, many open-source projects were started under that name, and the term remains in use for historical purposes. Proprietary software tends to use the vendor-neutral "x64", while technical literature tends to use the more precise "x86-64" (as it is, after all, not the only 64-bit architecture around).

  13. Re:Very slow news day by Circuit+Breaker · · Score: 2

    > Do the extra architectural registers in x86-64 really make that much difference in practice?

    For tight computations, they do. Most people run memory and i/o bound loads, so the memory overhead (64-bit pointers instead of 32-bit pointers) tend to cancel that out, and you only see modest speed gains.

    And the 2GB limit of addressable memory is much more than a working set limit; it's easy to hit a fragmentation limit if you "only" need 1.5GB with some workloads. And the ability to mmap() every file and let the OS handle caching etc for me is also something I miss when I need to do 32 bit work.

  14. More interesting by Anonymous Coward · · Score: 3, Interesting

    What I found more interesting is, if you look at the graphs, i386 installs are not decreasing. The rise of 64-bit installs appears to be coming either from new users or from other architectures. The level of i386 installs has remained fairly constant for the past several years. This suggests to me that people are no abandoning 32-bit builds.

  15. Re:About time. by Rockoon · · Score: 4, Insightful

    You do know that no 64-bit OS can run 16-bit applications without a virtual machine emulation on AMD64, right?

    Once the processor is in 64-bit mode it cannot get back to 16-bit mode without a processor reset. Not even Linux can thunk from 64-bit back to 16-bit, because the processor architecture makes that impossible.

    Your suggestion that "windows flopped" due to this is horse shit.

    --
    "His name was James Damore."
  16. Re:size lies by Chemisor · · Score: 5, Informative

    Stop spreading FUD. 64 bit executables have smaller code. The larger executable size is due not to the increase in code size but to the unwind tables. On i386 executables are typically compiled with the frame pointer model, where functions store the current frame address (the start point for local variables) on the stack. On x86_64 the normal method is to let the compiler figure out where the local variables are based on the stack pointer. This way there is at least one memory access removed.

    Omitting frame pointers incurs the cost of emitting a table of function information to allow C++ exceptions to walk back up the stack. This information is stored in the .ehframe section of the executable and only needs to be loaded when the application throws an exception. This section is not part of the working set. It is also not used by pure C programs. So, although the executable size is larger on x86_64, the extra space it is consuming is on the disk, not your CPU cache.

    Yes, you always benefit from building everything for x86_64 if your OS is x86_64. And unless you are running some application where benchmarks definitively show a performance decrease in the 64 bit version, there is no reason whatsoever to run 32 bit any more. Drivers are no longer a problem. So stop spreading FUD!

  17. Re:Run the 16-bit applications in a real emulator by tlhIngan · · Score: 2

    Then run the 32-bit operating system in a virtual machine on the 64-bit operating system, such as the XP Mode powered by Windows Virtual PC that is available to all Windows 7 Professional users, or run the 16-bit applications in Windows 3.1 in a real emulator such as DOSBox.

    Once a processor is in x64 mode, it cannot run real mode/16-bit code at all. Even virtualized. It's just physically incapable of it.

    The only way to run 16-bit code is to emulate it because the CPU will only take in 32-bit instructions in 32-bit compatibility mode.

    Some virtualization software do have software emulators so they don't have to bother virtualizing 16-bit modes (VirtualBox does - in order to run the loaders of most OSes - the virtualization only takes over once the CPU is switched into 32 bit mode or better).

    Windows has an interesting problem - because of the limitation of 64-bit mode, you'd think Microsoft would eliminate all the deprecated API calls for 64-bit Windows (but keep them around in the 32-bit libraries because theres enough legacy software out there that uses them). Calls like OpenFile(). But they didn't - their reasoning is purely developer convenience - you recompile your app for 64-bit windows without having to change many lines of code...

  18. Re:Wow! by ssam · · Score: 2

    i suspect that quite a few people downloading debian (and linux distros in general) do not realise this. if the architectures were labelled more clearly a lot more people would probably be using the 64 bit version, and enjoying a significant performance increase.

  19. Re:Wow! by Anonymous Coward · · Score: 2, Interesting

    In reality, while you can access 64GB on a 32bit x86 kernel with linux, there are issues. You will find that memory used to store those (massive) page tables will want to be used by other things, and running out of kernel space memory and crashing is pretty much the same as running out of memory generally and crashing, when looking at the final outcome.

    I've tried 64GB + PAE on the blacksheep RH box in the corner running commercial 32 bit software (that was only supported on RH), and saw this very issue. Reducing mem with a kernel boot param to 16GB made things stable (something in between may have worked too; the box was purchased for a different purpose and will only temporarily be running this work load-- so spec'd for its ultimate purpose [which will be running a distro that doesn't suck-- Debian, of course]).

    Debian packages 64bit kernels on 32 bit archs which solves the problems of PAE by avoiding them completely.

    RH is (as usual) a bit behind the times with their solution-- to overcome this PAE issue they map the entire address space into both user and kernel, and do swaps at every user/kernel context switch (slow-- so slow that folks like VMWare recommend against using these RH kernels, as I guess between the RH kernel overhead and VMWare's overhead, things start really sucking badly. Never personally tried "hugemem" kernels on that RH box after reading the VMWare article about it-- the RH patch also never went mainline which probably says something about it too; besides the temp workload fits in 16GB just fine.

    Of course none of this refutes your comments on M$'s issues. Part of M$s problem is with 3rd party drivers that just don't work in PAE mode, though.

    The other M$ problem over the years has been, if you talk to some of their developers in person, they seem competent (or at least the two people I personally know do), so I'm guessing must be organizational issues that prevent solutions from competent devs being implemented. Things like font rendering occurring in kernel space so kernel level exploit vector to just include a funky font in any document is crazy talk. Things like not adding salt to pwords even though others were doing it since the 70s, seems to show either NIH on steroids, or an insular society where nothing others are doing is even looked at. Things like making pword hashes pword equivalent, so you could use the _hash_ of the pword to gain any access the real pword could (using 3rd party client tools; all the "security" in the M$ solution was an illusion that required the official M$ clients that "prevented this access client-side"-- yeah right! Apparently nobody with a security background had anything to do with their "security" implementation) etc. etc. etc.

    All new Deb boxes, at my work, were 64bit for years (depending upon arch) before M$ offered a 64bit implementation. But, it is just so damn easy to upgrade a deb box, the older stuff stayed on 32 (we have boxes that while being migrated to newer hardware (dump |ssh | restore), have been upgraded all the way from potato without issues (I think debian potato was from win95 days for the M$ crowd). I don't understand this clean install stuff the M$ and RH folks do.

    Mulit-arch (for you RH folks, NO multiarch is NOT just including a lib32 dir which has been around since the first days of the amd64 arch; it means seamless mixing of 32 bit and 64 bit arch bins [look it up is is quite a bit more than lib32]) allows a migration path without reloading to a 64 bit system; Also, I bet multiarch will incorporate the new 32bit address space with 64bit registers abi that just came out too, which will allow better perf than either i386 or amd_64 with the ability to run those few programs that need a huge address space on the same box where the majority of userspace is small 32 bit address space + amd 64 register bins). Multiarch will probably be avail when wheezy goes stable, so it will be an easy transition to 64 bit (or armel to armhf etc.) without a re-load on debian, so for the zillion legacy boxes we have-- we can wait (also, we can use 64bit kernels on these 32bit userspace boxes which gives us most of the benefits anyway.

  20. You should pick Debian for 'new hotness' by G3ckoG33k · · Score: 2

    You should pick Debian for 'new hotness'.

    You also will if you're running the Debian version named Sid.

    That is in fact the version used by Mint and Ubuntu when they roll their distributions.

    So, it is in fact both hotter and cooler.

    Still read this http://raphaelhertzog.com/2010/12/20/5-reasons-why-debian-unstable-does-not-deserve-its-name/

  21. Re:Very slow news day by Tough+Love · · Score: 2

    Here's a tip: say what you god damn mean; if you want a long int, declare a long int instead of just an int. If you want a short int, declare a short int instead of just an int. If you declare just an int, declare just an int everywhere where that interface is going to come into play.

    No, don't do that. Where it matters (and it usually does not) use stdint.h.

    --
    When all you have is a hammer, every problem starts to look like a thumb.
  22. Re:Wow! by Carewolf · · Score: 2

    x32 is not IA32. It is actually AMD64 binaries using 32bit pointers. That way you get the small datastructures from 32bit, and the extra registers from x86 64bit mode.

  23. Re:Not AMD specific by Compaqt · · Score: 2

    Yeah, and that would be favoring Intel over AMD.

    Why? Because Intel's supposed to be the "default" and AMD is only just "compatible" with it?

    In fact, AMD's the one who created AMD64, and Intel licensed it from them.

    --
    I'm not a lawyer, but I play one on the Internet. Blog