Announcement

Collapse
No announcement yet.

Linux x32 Is Made Easier With Ubuntu 13.04

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

  • Linux x32 Is Made Easier With Ubuntu 13.04

    Phoronix: Linux x32 Is Made Easier With Ubuntu 13.04

    While there isn't yet a release yet of Ubuntu in the Linux x32 ABI flavor, some packages now found in Ubuntu 13.04 make it easier to setup this binary interface that brings some 64-bit advantages to the 32-bit world...

    http://www.phoronix.com/vr.php?view=MTM1OTA

  • #2
    Sounds cool Michael, excited to see the result.

    Comment


    • #3
      binary interface that brings some 64-bit advantages to the 32-bit world.
      No, that's the other way round. It brings some 32-bit advantages to the 64-bit world, if you want to use such a construct.

      Comment


      • #4
        if programs are compiled as x32, which libraries will they link to? x86 libraries, or x64 libraries?

        Comment


        • #5
          Originally posted by Sonadow View Post
          if programs are compiled as x32, which libraries will they link to? x86 libraries, or x64 libraries?
          None of them. They will link to x32 libraries.

          Comment


          • #6
            Indeed, x32 is its own architecture in that regard.

            Comment


            • #7
              Originally posted by TAXI View Post
              None of them. They will link to x32 libraries.
              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?

              Comment


              • #8
                Originally posted by GreatEmerald View Post
                Indeed, x32 is its own architecture in that regard.
                Which is what puzzles me about why it's deemed necessary. As far as I can tell, its only advantage is that it gains some of the performance benefits of 64-bit hardware, without the extra memory use that comes from doubling the size of every pointer. That's not a big advantage, considering the hit you're taking from having to install duplicates of every library from glibc through to KDE/Gnome - and if you're actually running a mix of both x32 and x86_64, having to have both sets of libraries loaded into memory. Is anyone actually going to be coming out ahead by using this?

                Comment


                • #9
                  Originally posted by GreatEmerald View Post
                  No, that's the other way round. It brings some 32-bit advantages to the 64-bit world, if you want to use such a construct.
                  Most appropriate to say that it brings AMD64 advantages (more registers, newer instructions, new calling convention) to the 32-bit world that doesn't need or want the larger address space and pointer size.

                  Comment


                  • #10
                    Originally posted by Delgarde View Post
                    Which is what puzzles me about why it's deemed necessary. As far as I can tell, its only advantage is that it gains some of the performance benefits of 64-bit hardware, without the extra memory use that comes from doubling the size of every pointer. That's not a big advantage, considering the hit you're taking from having to install duplicates of every library from glibc through to KDE/Gnome - and if you're actually running a mix of both x32 and x86_64, having to have both sets of libraries loaded into memory. Is anyone actually going to be coming out ahead by using this?
                    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.

                    Comment


                    • #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

                              Working...
                              X