Announcement

Collapse
No announcement yet.

Linux 6.8 Will Let You Know When x86 32-bit Support Is Disabled

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

  • Linux 6.8 Will Let You Know When x86 32-bit Support Is Disabled

    Phoronix: Linux 6.8 Will Let You Know When x86 32-bit Support Is Disabled

    Linux 6.7 introduced the "ia32_emulation=" boot option for enabling/disabling support for x86 32-bit programs and the ability to execute 32-bit system calls. This is part of the effort of some Linux distributions working to restrict x86 32-bit user-space support where not needed in order to reduce the software attack surface while still having a boot-time option for those wanting to enable 32-bit support or to otherwise disable it if your kernel build keeps it enabled...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Does current Versions of Windows and usual Windows-Applikations free of 32-Bit Code?

    Comment


    • #3
      Originally posted by dibal View Post
      Does current Versions of Windows and usual Windows-Applikations free of 32-Bit Code?
      To my understanding, Windows has been employing similar mechanisms for quite some time. It uses WoW64 (Windows on Windows subsystem) to emulate 32-bit syscalls and avoids making 32-bit calls directly to the NTKernel, unlike what we are doing on Linux which we install all 32bit libs and do 32bit syscalls to the kernel. If a similar approach is used in Linux, we could run 32-bit applications even if ia32_emulation is disabled by the kernel as such emulation would then be entirely in userspace.

      Comment


      • #4
        Originally posted by gnattu View Post

        To my understanding, Windows has been employing similar mechanisms for quite some time. It uses WoW64 (Windows on Windows subsystem) to emulate 32-bit syscalls and avoids making 32-bit calls directly to the NTKernel, unlike what we are doing on Linux which we install all 32bit libs and do 32bit syscalls to the kernel. If a similar approach is used in Linux, we could run 32-bit applications even if ia32_emulation is disabled by the kernel as such emulation would then be entirely in userspace.
        Linux on Linux = LoL? lol, no thanks

        Comment


        • #5
          Originally posted by bezirg View Post

          Linux on Linux = LoL? lol, no thanks
          League of Linux

          I choose Konqi as my Champion

          Comment


          • #6
            Originally posted by gnattu View Post

            To my understanding, Windows has been employing similar mechanisms for quite some time. It uses WoW64 (Windows on Windows subsystem) to emulate 32-bit syscalls and avoids making 32-bit calls directly to the NTKernel, unlike what we are doing on Linux which we install all 32bit libs and do 32bit syscalls to the kernel. If a similar approach is used in Linux, we could run 32-bit applications even if ia32_emulation is disabled by the kernel as such emulation would then be entirely in userspace.
            Would it be a lot of work for distributions to adopt this approach?

            Comment


            • #7
              This'll be great for servers/containers (Linux's primary market) but I can already tell this is going to lead to at least some people not being able to use Stream and Discord* because they naively chose a distro that disables this, lol.

              *Both Steam and Discord are still, somehow, 32-bit only. Discord is especially perplexing since it's just Electron.

              Comment


              • #8
                I guess you could have a version of the dynamic linker that sets up a 32-bit code segment, replaces the __kernel_vsyscall entry point with a 64-bit translation function and uses default signal handlers to trap direct int 80h calls. But then what about programs that override the default handler for the relevant signal (not sure if it's SIGSEGV, SIGSYS, or something else), or statically-linked 32-bit programs…

                Comment


                • #9
                  Originally posted by Ironmask View Post
                  This'll be great for servers/containers (Linux's primary market) but I can already tell this is going to lead to at least some people not being able to use Stream and Discord* because they naively chose a distro that disables this, lol.

                  *Both Steam and Discord are still, somehow, 32-bit only. Discord is especially perplexing since it's just Electron.
                  is it? discord on arch is on [extra], not [multilib]. i tried running it with ia_emulation=0 and it seemed to work fine.

                  even if discord was 32-bit it wouldn't matter for me personally, since i dont use the discord as a program, because the website does everything i need except notifications, which are handled by kde connect. infact, the website works better, since trying to screenshare via the program just gave me a black screen

                  Comment


                  • #10
                    Originally posted by Noitatsidem View Post

                    Would it be a lot of work for distributions to adopt this approach?
                    It would, and it would be more difficult than what Windows is doing. On Linux, any application can make a syscall to the kernel and don't have to use a "standard library", which means you will always face some edge cases that some program is doing weird things. Maybe someone like RedHat would come up with something to support their customers for selected software and not covering all use cases. But this kernel switch is not going to be enforced to be off I don't see unfixable impacts so far. You can always turn the kernel emulation on and call it a day.

                    Comment

                    Working...
                    X