Announcement

Collapse
No announcement yet.

Should Linux start paying more attention to 64bit ?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    Ah I didn't realize that -- thanks for the info! So yes, ubuntu also provides a lib32 subdir but the default is /usr/lib64 -> /usr/lib

    now what about 32/64 bit executables? Can both versions coexist? I only see one /usr/bin... I suppose if you're manually installing apps yourself you can install them in seperate subdirs and maybe adjust LD_LIBRARY_PATH, but what of packaged installations?

    Comment


    • #22
      The easiest way to get 64bit in Linux is to simply install a 64bit Linux kernel on a 32bit system.

      That way you get a hybrid system were individual applications won't be able to address more then 4GB of RAM, but you can use as much ram as possible for your total system.


      ---------------------

      As far as history goes...

      Linux has been running on 64bit platforms for years and years.

      The first non-x86 platform that Linux supported was the Alpha DEC architecture. It's also the first 64bit system supported. And unlike the Windows port it actually ran 64bit and not in 32bit compatibility mode.

      This was around 1995. So Linux has been running on 64bit systems for over 12 years.

      And Alpha is not the only 64bit platform that Linux supported. It runs on Intel Itanium, Sun Sparc, IBM POWER and PowerPC... All of which have 64bit versions and Linux runs in native 64bit mode.

      With the release of AMD64 platform the PC platform was finally introduced to it's first 64bit processor (of course people have been using 64bit systems for over a decade previous to that). Linux support for that platform was measured within weeks of the first comercially-avialable AMD64 stuff. AMD worked with Suse and a few others to make sure that Linux supported it natively.

      The full suite of open source software was ported to 64bit long time before AMD64 came along, with a few notable exceptions. (like OO.org)

      Debian has native support for Alpha, Itanium, and a couple other 64bit arches. This means that it's 24,000+ software packages are ported onto multiple 64bit systems.

      Since Ubuntu runs using Debian-developed software and packages then Ubuntu is mature 64bit-ness.


      --------------------------


      The AMD64 platform was designed with backward-compatibility in mind. It has the ability to run both 32bit and 64bit software natively, side by side. Not all 64bit systems can do this, but AMD64 can.

      (and since Intel copied AMD with the EM64T platform and is mostly compatible then it can run it to)

      Similar to how you can run 16bit software side by side with 32bit software you can now run 32bit software side by side with 64bit software.

      --------------------------------


      For Linux to run both 64bit software and 32bit software you need to have the dependencies of both times in their native bit-types.

      So if you run Gnome in 64bit mode, but you need some gnome stuff to run a 32bit-only program then you must have both 32bit and 64bit versions of Gnome's libraries installed.

      This means more space used up on your harddrive and more memory used.

      You have to have memory to contain both the 32bit and 64bit lib files.. which are otherwise shared between multiple processes. With a 32bit-only system or a 64bit-only system if you have a dozen applications using the same GTK libs or Gnome libs then only one copy is stored in memory and shared between all the applications (unless your using statically compiled software). By mixing 64bit and 32bit you have to keep one copy of each bit-ness.

      Also 64bit binaries use more memory then 32bit binaries. Just because.

      So if your running 64bit and 32bit software side by side your going to use up a lot more RAM then you otherwise will.


      --------------------------

      The main reason why most people still use 32bit Linux on their desktops has to do with the fact that proprietary applications for Linux are almost all 32bit.

      The biggest problem for most people right now is that Adobe Flash is 32bit-only.

      This means that you have to keep a copy of a 32bit Firefox (or use mozplugin wrapper hacks) to run flash.

      This is a PITA and is not very easy to do in Linux for most distributions, unlike Windows.

      Also most your games are going to be 32bit-only anyways. So tough shit on the performance enchancements.

      --------------------------


      But remember a 64bit Linux kernel for AMD64 has the ability to run either 32bit binaries or 64bit binaries natively.


      So....


      Your options are:

      ONE:

      32bit-only system on a 64bit processor. This is what most people do and is appropriate for systems with less then 4GB of RAM (which is the cut-off point for 32bit support)


      TWO:

      Run 64bit Linux kernel with a 32bit-only userland.

      This is good if you have more then 4GB of RAM, but depend on proprietary software to make you happy and/or make you money.

      This allows you to address up to 4GB per process, but still be able to have multiple proccesses use up more then 4GB of RAM. Win-win.

      There are other ways to use more then 4GB of RAM with a 32bit system by using things like PAE... but your a moron to do that nowadays. It's old fashioned and obsolete with 64bit-enabled processors.



      THREE:

      You can run 64bit-only system.

      This is appropriate for systems were you have more then 4GB of RAM and want to allow processes to use more then 4GB of RAM. (say for big 3D renders, big 64bit native games, ram-stored databases, or whatever)

      You can install a small 32bit-only chroot environment for running 32bit applications.

      X Windows, being a network protocol and all that can easily run those applications side-by-side with your existing stuff.

      There are scripts that can help with that sort of thing and make it as painless as possible. Don't expect it to be very pleasent, however. It's not a slick solution.

      However the vast vast majority of open source software is 64bit and most of it has been 64bit for a very long time now.

      --------------------------------------

      Keep in mind that I am coming from a Debian Linux background and Debian does Pure-64bit systems. With Fedora or other Linux distributions then they may have a better way to do mixed-mode. But I haven't looked into it to much because currently my two 64bit systems I have only 1 or 2GB of RAM.

      I am looking at purchasing 4GB of RAM and migrating my laptop over to 64bit however.

      The only proprietary application I still use is Flash, so that's a PITA, but it's not that big of a deal.

      Comment


      • #23
        you forgot
        FOUR: have a multilib system with libs for 32 and 64bit. Which is btw gentoo default.

        Also, you can use flash with firefox64bit by using nspluginwrapper. Easy to use and setup. Has the advantage that firefox will survive when flash goes down.

        Comment


        • #24
          Originally posted by npcomplete View Post
          really? I haven't checked out many distros at all but just going by mainstream ones like Ubuntu whos libs in /usr/lib are all 64bit and I recall Fedora was the same around FC8 or so last I checked.
          First mistake is assuming Ubuntu is what the linux community follows.....

          Comment


          • #25
            @drag

            Using a PAE enabled kernel (like the Ubuntu server variant) you have got all your RAM available with 32 bit too.

            Comment


            • #26
              isn't PAE incredible slow? And very hated by kernel devs?

              Comment


              • #27
                Win 32 bit uses PAE for NX flag only, but basically it is used there too. Nobody noticed any speed decrease with a PAE kernel, just do your own benchmarks if you like to.

                Comment


                • #28
                  no thanks, I am very happy with my functional and fast 64bit system.

                  Comment


                  • #29
                    Ya.

                    isn't PAE incredible slow? And very hated by kernel devs?
                    I mentioned PAE in my excessively long post.

                    Basically the kernel devs don't like it for the same reason why I don't like it: Modern CPUs for server stuff are all 64Bit. (which is were you'd see hardware that supports PAE) It's very silly to use 32bit mode with PAE when you can run a 64bit kernel and get better performance.

                    ( This won't allow you to automatically extend 32bit apps to use more then 4GB per process, but multiple processes can be spread around to use the entire RAM. )

                    Like I said above you can easily 'upconvert' a Pure-32bit system to support more then 4GB by simply installing a 64bit kernel. Running PAE mode is like driving 2 miles to get a nasty chocolate shake from BurgerKing when you have a Baskin Robbins next door to your house that will give free icecream in any flavor you want.

                    you forgot
                    Also, you can use flash with firefox64bit by using nspluginwrapper. Easy to use and setup. Has the advantage that firefox will survive when flash goes down.
                    Na. I mentioned that in passing.

                    It's still a extra step and a hack, and it doesn't help you with other software that is 32bit-only.

                    Your desktop really has zero need to be 64Bit right now, which is why it's not pushed more by distributions. I mean.. do you really want Nautilus to be able to address more then 4GB for pushing icons around on your desktop? Hopefully I will never see a weather applet that needs 5GB of RAM to run efficiently.

                    Ya 64bit system has advantages and there are some performance improvements.. but mostly that requires benchmarks to get any noticable difference, in real-world usage it won't make a difference.

                    Now if you running a database that you want to store entirely in RAM or your doing some app that needs all the RAM and proccessing power that your system can eek out.. then that's were you need 64Bit.

                    -------------------------


                    The one thing I am wondering about though is graphics cards that can address more then 1GB of RAM.

                    Intel 32bit platform really has a limitation at 1GB RAM. It's architecture-dependant and it's something to do with the Linux kernel.. I don't know if it's the same way with Windows exactly.. I don't understand all of it yet.

                    Well... There is a limitation in the 32bit Intel Linux system were it originally could only do 1GB of RAM. In order to get Intel 32bit to support more then that the Linux devs had to divide up the memory space between 'high memory' and 'kernel memory'.

                    Windows does a 2GB/2GB split between kernel and userspace. Linux does a 1GB/3GB split.

                    (there are ways to get Windows to do PAE and 1GB/3GB splits and whatnot.. but it's not binary compatible normally. That is in order for Windows application to take advantage of the 1GB/3GB split it has to be setup by it's developers to do so)

                    Like I said I don't understand all of it yet, as I've never really taken the time to study the Linux documentation on the subject.

                    But for the Linux kernel to be able to access more then 1GB it needs Kmem and that sort of thing to do Highmem. Highmem is what you need to get up to 4GB on 32bit and up to 64GB on 32bit systems that support PAE.

                    Well that's extra overhead for the Linux kernel to deal with, and memory latency and whatnot is a very sensitive area performance-wise.

                    Well with newer Intel onboard graphics stuff it's able to address very large amounts of RAM for doing 3D desktops and whatnot. Upwards 1GB or so.

                    So that's out in 'high-mem' territory and the kernel can't directly access it, and thus the DRM stuff can't directly access it... without Kmem stuff.

                    So Intel devs designed a way for Gem to take advantage of Kmem to be able to address very large amounts of RAM for their stuff. A classic Linux move were you take existing functionality and extend it in novel directions.. kmem is well tested and very fast.

                    But it's not perfect. So Linus and friends asked why they were bothering to use this method on 64bit systems... With a 64bit kernel there is no highmem or overhead associated with large amounts of RAM and all that stuff. It's all immediately addressable.

                    So the DRM hackers disabled using Kmem for 64bit systems... This had a dramatic improvement in performance: 18x increase in performance for Quake3 FPS. They had a similar improvement with glxgears with reduced CPU usage.

                    I like that alot. Now that is with development code that is otherwise not optimized (meaning it runs like shit no matter what; compared to existing code used by end users), but that's still a nice improvement.

                    So I am hoping that you will still get the same performance with a 64bit 2.6.28 kernel with GEM on a otherwise 32bit userland. That would make it very easy for me and other people to get a nice performance boost.

                    Comment


                    • #30
                      a) 32bbi only software is very seldomly encountered - and works fine if your distri doesn't suck
                      b) a lot of people have 4gb+ in their desktops and USE IT. You can't have too much ram.
                      c) with 32bit - you are still lossing ram.
                      d) the problem with graphic cards starts at 256mb (see pci).

                      Comment

                      Working...
                      X