Announcement

Collapse
No announcement yet.

Linux x32 Is Made Easier With Ubuntu 13.04

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

  • #11
    Originally posted by Ericg View Post
    Thats exactly what it does Delgarde, you get the performance benefits of the 64bit, without the memory implications. So say you've got a brand new CPU but only 1gig of memory (for whatever reason) x32 is your best option.
    I guess it makes sense if you have a purely x32 system... I was kind of assuming a hybrid of x86_64 for the stuff that needs it, and x32 for the rest.

    That said, I can't think that there are many people in the position where this is genuinely useful. You say "for whatever reason", but it's hard to think of one - more likely if someone is that constrained by memory, they're also running quite an old CPU, something on the order of six or seven years old. And such as person is probably quite happy running in traditional x86 mode...

    Comment


    • #12
      Originally posted by Delgarde View Post
      I guess it makes sense if you have a purely x32 system... I was kind of assuming a hybrid of x86_64 for the stuff that needs it, and x32 for the rest.

      That said, I can't think that there are many people in the position where this is genuinely useful. You say "for whatever reason", but it's hard to think of one - more likely if someone is that constrained by memory, they're also running quite an old CPU, something on the order of six or seven years old. And such as person is probably quite happy running in traditional x86 mode...
      My understanding is that there are certain server apps that can run significantly faster in x32 code, and that hardware vendors were excited to be able to pump up their benchmark results. Obviously it's only acceptable in certain circumstances, when those apps don't require 4+ GB of memory.

      On the client side, i wonder if Ubuntu is interested in it for possible use in an Intel tablet? I agree it's probably not useful for most people.

      Comment


      • #13
        Originally posted by Delgarde View Post
        I guess it makes sense if you have a purely x32 system... I was kind of assuming a hybrid of x86_64 for the stuff that needs it, and x32 for the rest.

        That said, I can't think that there are many people in the position where this is genuinely useful. You say "for whatever reason", but it's hard to think of one - more likely if someone is that constrained by memory, they're also running quite an old CPU, something on the order of six or seven years old. And such as person is probably quite happy running in traditional x86 mode...
        One of my machines is a core i5 with 4gb ram, and I certainly wouldn't mind using x32 on it, particularly if there are noticeable performance increases to be had in cpu intensive code (of course less memory usage is also nice, win-win). Note that the 32-bit addessing limitation is per-process, so while a single program can only address 4gb, another program could make use of another 4gb ram 'chunk' if it is available, atleast that is how I understand the way x32 was implemented.

        Of course unless a distro is maintaining a x32 branch it could probably get tedious to compile every package yourself (unless you use Gentoo). Someone has offered up x32 packages for Arch on AUR and I will try them out one of these days.

        Comment


        • #14
          Originally posted by XorEaxEax View Post
          Note that the 32-bit addessing limitation is per-process, so while a single program can only address 4gb, another program could make use of another 4gb ram 'chunk' if it is available, atleast that is how I understand the way x32 was implemented.
          That's correct. You just use a standard x64 kernel, so the OS can still access as much RAM as it needs. But each x32 app running can only access up to 4GB of virtual address space.

          Comment


          • #15
            Originally posted by smitty3268 View Post
            That's correct. You just use a standard x64 kernel, so the OS can still access as much RAM as it needs. But each x32 app running can only access up to 4GB of virtual address space.
            It's not quite a standard x64 kernel. It has to know not to allocate virtual address space to a userspace process that it can't handle but still has different semantics with "normal" 32-bit processes, e.g., the size of time_t and other values are 64-bit for x32/x64 apps but only 32-bit for x86 apps. It's true that most of the kernel is in x64 mode though, and I think that the x32-compatible kernel can also run x86/x64 apps.

            Comment


            • #16
              I can imagine x32 being useful in an x86-64-based phone or tablet running a flavor of Android. I haven't seen too many Android devices equipped with more than 4GB RAM quite yet.

              Comment


              • #17
                Originally posted by Veerappan View Post
                So, the next question... what sort of compatibility in a multi-lib system can we expect?

                The processor is 64-bit and is using the x86-64 instruction set, but with 32-bit pointers... so it's a bit of a hybrid.

                Will we get the lowest-common-denominator (i.e. x86), or do we also get compatibility with 64-bit libraries/programs?

                Or is x32 special and can only run x32 code?
                You run x32 libraries and binaries. If there is something else you need that there is no x32 version for it, you install the x86_64 libraries. If there is yet something else you need that there is no x86_64 version for it, you install the i586 libraries.

                Originally posted by Delgarde View Post
                I guess it makes sense if you have a purely x32 system... I was kind of assuming a hybrid of x86_64 for the stuff that needs it, and x32 for the rest.

                That said, I can't think that there are many people in the position where this is genuinely useful. You say "for whatever reason", but it's hard to think of one - more likely if someone is that constrained by memory, they're also running quite an old CPU, something on the order of six or seven years old. And such as person is probably quite happy running in traditional x86 mode...
                Yeap, you are free to use pure x32. Though the support for it is probably similar to running the packages on ARM - by far not everything has support for it.

                And it would work well for slow netbooks. I have one, an AMD Fusion E-350 device, which is x86_64 but could use the x32 advantages. Though I need to run things like Skype on it, so right now it's not a very good option...

                Comment


                • #18
                  Originally posted by GreatEmerald View Post
                  Though I need to run things like Skype on it, so right now it's not a very good option...
                  If you run a x86_64 distro right now it will be a benefit as you just replace the x86_64 stuff with x32 stuff. x86 stuff (like Skype) won't change at all.

                  Comment


                  • #19
                    Originally posted by TAXI View Post
                    If you run a x86_64 distro right now it will be a benefit as you just replace the x86_64 stuff with x32 stuff. x86 stuff (like Skype) won't change at all.
                    Yes, but I also need plenty of x86_64 programs. They are available in i586, of course, but that is also suboptimal. Though I suppose it's better than to have a i585+x32+x86_64 multilib. In either case, I'll put Gentoo on it for additional speed, since now I have a dedicated distcc server and all.

                    Comment


                    • #20
                      Advantage = Speed

                      Those shorter 32-bit instructions mean the CPU can visit more of them per second than in 64-bit (think memory bandwidth). More programs can live in the CPU cache.
                      But you also get the gains of more registers over i586 (and some new instructions) which allows longer function call parameter lists to stay in CPU registers instead of going onto the stack.

                      So yes, it's a slight memory benefit which is offset by having double the libraries (making no benefit), but the memory gain is in the instructions and they're upgraded 64-bit instructions. The 4gb limit downside probably doesn't apply to most software. Even a 32-bit movie player or video encoder can play files over 4gb as it doesn't keep it in-memory all the time.

                      In terms of software that shouldn't consider this:
                      - In-memory server databases probably should stay 64-bit (caching proxies?)
                      - Highly-monolithic software (some groupware servers)
                      - Complex modeling (rendering elaborate 3d scenes) == some games.
                      Though they benefit from tight memory use & going x32. It's a feature Linux has over games on Windows.
                      - Anything that needed 64-bit to begin with should stay. This really isn't much software at all.

                      The best solution would be to have x32 as the default in a distro, and the occasional program in 64-bit that actually needs it.

                      Comment

                      Working...
                      X