The costs of the i386 to x86-64 upgrade
blogsystem5.substack.com
blogsystem5.substack.com
That being said, the larger register set, the register-based calling convention, SSE2 for floating point math, PC-relative addressing (important for shared objects) together usually compensate the cost of wider pointers. Unless your workload happens to be pointer-heavy and fit into slightly less than 4 GiB of address space.
It is supported, but the list of broken packages is rather long... [1]
You don't need an official build, as Gentoo builds itself and also cross-builds itself for any target and any ABI. In this case, you don't even need a cross-build.
Just install Gentoo x86_64 multilib, enable x32 support in kernel, enable abi_x86_x32 USE flag for the packages you want to test and run emerge to build them. They won't even interfere with the rest of the running system. See [2].
[1] https://github.com/gentoo/gentoo/blob/master/profiles/arch/a...
EDIT: And several of those packages are binaries. Apart from the *-bin packages, I've identified TeamSpeak, dev-libs/amdgpu-pro-opencl, Skype, and Slack. That leaves 138 packages.
You're right about firefox though, which is weird. Apparently node is a build dependency, but I can't figure out if that's something specific to the ebuild (that Arch's PKGBUILD does as well) or just generally something the buildsystem requires, but it's not listed as a dependency at https://firefox-source-docs.mozilla.org/setup/linux_build.ht....
Now, in 2024, 32 bit cell phone CPUs seem like a distant memory and nobody remembers what the hell x32 was even for.
Realistically, Windows is the platform keeping 32 bit code alive, in the form of all those legacy binaries. MacOS and Linux have moved on. So if you design something new for 32 bit that can't be used by Windows, it's DOA.
Which distro is this ? In debian I'm pretty sure CONFIG_X86_X32 was enabled in the kernel not too long ago, enabling this to work without issues. When I benchmarked it was on average 20% faster than x86_64 and used quite less memory for GUI apps IIRC - I think that for most utilities like coreutils, image viewers, file explorers, media players, etc. they'd benefit from it ; >4GB is only really meaningful for web browsers, compilers & interpreters, games and creative apps such as anything doing 3D, audio or large data processing.
A 20% penalty sounds insane, but I can very well believe it. What benchmarks did you run?
https://wiki.debian.org/X32Port
But, maybe support has gone away recently, too since upstream apparently was interested in removing support?
It has been a long time, but I was using x32 containers on an amd64 host (both Debian), and things worked fine without having to build anything from source. After moving to a different VPS provider who was less stingy with RAM in their base offering, I just simplified and used straight amd64.
While I didn't try adding x32 as an additional arch with Debian's multi-arch, I'm pretty confident, it would "just work" just as adding i386 as an additional arch does.
Yes, but...
> web browsers
...includes Electron, Cordova/PhoneGap, WebView-based UIs, et cetera.
So yes, so long as software-houses uncritically jump on Electron as their platform-of-choice then all those apps will also ultimately be "web browsers" in disguise
...even a simple utility to flash an SD card[1] is a 150MB behemoth... I'm dying inside at this point.
[1]: https://github.com/balena-io/etcher/releases/tag/v1.19.21
Meanwhile, I have a dozen firefox processes each above 500M RES and a few above 1G...
https://www.intel.com/content/www/us/en/developer/articles/t...
...that said, Microsoft and some hardware partners tried this when Windows XP came out; they were called "Legacy-free PCs", which in-practice just meant (excepting video and audio) all periphial ports were USB 1.1, with zero (exposed) ports for PS/2, parallel, serial, ISA, and gameport/MIDI; no floppy drive either; it was also a convenient excuse to omit a 56K modem too. (Anyone remember the iPAQ Desktop[2]?).
...but it was more style than substance: those computers were still x86 machines using the same mobo chipsets as a traditional box, so the hardware support for PS/2 and the like was still there in the chips, just without the traces connected to anything and the functionality disabled via BIOS settings or maybe something like an e-fuse.
I also wonder how much power those "super I/O" chips are wasting with this unused circuitry.
And why is PS/2 internally used for touchpads anyway? Inertia? There's plenty of perfectly good serial protocols out there for these kinds of low-speed serial I/O applications, such as SPI.
But to briefly summarize when I did write:
> installing PS/2 ports on modern motherboards
I haven't seen a PS/2 port on any brand-new (non-industrial) computer, even rackmount servers, since 2009. My own last mobo with PS/2 ports was bought in 2008; I haven't seen PS/2 on a laptop since 2003.
> and just contributes to e-waste
e-waste is a problem, yes; but PS/2 ports are really, really, not a meaningful cause of any problems in this area.
> I also wonder how much power those "super I/O" chips are wasting with this unused circuitry.
Zero. ICs (mostly) consume power only when their transistors undergo a state-change. If the PS/2 microcircuitry in an IC is never used, then there won't be any concordant transitor state-changes, ergo, there won't be any (measureable) power-draw. This is why microprocessor lithography is great: you really do get stuff for free.
> why is PS/2 internally used for touchpads anyway?
I wrote "ostensibly"; in reality, it usually isn't actually "PS/2" as-we-know-it, but is some other protocol over I2C or even SPI as you suggested (e.g. Synaptics calls theirs "InterTouch"[1]), but the hardware-interface that the OS uses is compatible with Intel's i8042 which was the original PS/2 ( https://wiki.osdev.org/%228042%22_PS/2_Controller ) even though the i8042 no-longer exists today.
[1] https://investor.synaptics.com/news-releases/news-release-de...
-----
As for why practically every laptop seems to use "PS/2" for their touchpads today, I speculate that laptop OEMs prefer this "PS/2-a-like" for 2 reasons:
1. Consumes less power (and with far less overhead overall) compared to an internal USB connection, which is important in a laptop computer.
2. Laptops likely only have a single USB root controller, which is usually for the latest USB revision when the laptop was engineered - so a new laptop today likely has only a USB4 controller, which will be backwards-compatible with older USB devices, but you'll have issues if you need to use an OS or EFI application (e.g. BIOS Setup utility, Bitlocker manual unlock screen, custom boot-manager, etc) due to spotty support for future USB controllers, so it makes sense to ensure that the laptop's fundamentally-essential input devices (i.e. mouse and keyboard) are connected via a mature, widely-supported interface like the i8042's) to avoid the laptop becoming completely unusable if something goes wrong with USB support (because it's not like you'll be able to plug-in an external USB mouse/keyboard and expect that to work...). Whereas on desktops I've noticed that whenever there's support for some cutting-edge USB revision (e.g. USB 3.x in 2012ish or USB4 today) the board will have a couple of USB 2.0 ports via a different controller, so you won't be SOL if anything goes wrong with the new stuff.
They're in lots of B550 chipset (AM4 socket) motherboards. Here's some examples:
https://www.amazon.co.jp/-/en/gp/B089Y9PFH1 (ASUS Prime B550M-A) https://www.amazon.co.jp/-/en/gp/B0CXNK17WT (MSI B550M PRO-VDH) https://www.amazon.co.jp/-/en/dp/B089W26FCB (AsRock B550M-HDV) https://www.amazon.co.jp/-/en/dp/B08MXSQS49 (AsRock B550M Phantom Gaming 4)
Granted, these are a generation old and not the latest AM5 socket stuff, but still AM4 chips are fairly popular; these motherboards probably all came out around 2019.
>e-waste is a problem, yes; but PS/2 ports are really, really, not a meaningful cause of any problems in this area.
It all adds up. Millions upon millions of never-used PS/2 across all these systems for the many years these motherboards have been manufactured is a big pile of PS/2 connectors, all gone to waste.
This is mostly not a problem nowadays. The issues arose from cheaper/poorly implemented devices and the use of hubs (both internal and external) to provide more ports.
Everything else matches the 64-bit version - not the 32bit one - the instruction encoding, the extra registers, the minimum isa extensions (x86_64 puts a baseline of sse2), the calling convention advantages etc. etc.