5 ms·
I just want to point out something a bit pedantic, but I feel is an important distinction: Linux community and devs need to stop saying i386 and say i586 or eve
by BirAdam 3y ago
I just want to point out something a bit pedantic, but I feel is an important distinction: Linux community and devs need to stop saying i386 and say i586 or even i686 as this is closer to what is meant. Linux doesn’t support 386 anymore, you can make it work on 486 but most distributions don’t enable support for this. Pentiums (586) are usually the minimum and some even push toward Pentium MMX/Pentium II which would be 686.
- rurban 3y agoTell that the big vendors. Only mingw AFAIK ships i686 packages (with simd support), all others stay in the safe i386 camp still, without simd support.
- westurner 3y agoGentoo ebuild USE and CFLAGS flags allow the user to specify custom compilation settings as necessary for optimization on a given processor architecture like i386, i486, i586, or i686. For example, with ebuild (or dpkg-repack or rpmrebuild) a person could build the compiler packages with all of the appropriate optimization flags for the chipset on the box where the package will be installed: https://packages.gentoo.org/useflags/custom-cflags https://packages.gentoo.org/useflags/custom-cflags Cross-compilation is easier with clean build containers. With distrobox (and qemu, qemu-user-static, and binfmt-support) https://github.com/89luca89/distrobox/blob/main/docs/useful_tips.md#using-a-different-architecture https://github.com/89luca89/distrobox/blob/main/docs/useful_... : $ uname -m x86_64 $ distrobox create -i aarch64/fedora -n fedora-arm64 $ distrobox enter fedora-arm64 user@fedora-arm64:$ uname -m aarch64
- zokier 3y agoAfaik Debian is fully i686 these days: https://www.debian.org/releases/stable/i386/release-notes/ch-information.en.html#i386-is-i686 https://www.debian.org/releases/stable/i386/release-notes/ch...
- dralley 3y agoFedora ships i686 packages. At least that's what they're called.
- unleaded 3y agoLinux kernel hasn't supported 386 for over 10 years, I don't think there's any reason for them to do that
- numpad0 3y agoLinux dropped support for real 80386 a decade ago in 3.8, so `Linux > 3.8` and `CPU model == Intel 80386` are mutually exclusive. Whatever i386 is supposed to be, it's something more modern. 1: https://www.phoronix.com/news/MTI0OTg https://www.phoronix.com/news/MTI0OTg
- wtallis 3y ago> Only mingw AFAIK ships i686 packages (with simd support), all others stay in the safe i386 camp still, without simd support. Conflating i686 vs i386 with SIMD vs no SIMD is wrong. The Pentium Pro was an i686 processor with no SIMD, and the Pentium 2 was its successor that added MMX — a very narrowly-useful integer-only SIMD extension (which was first introduced on the pre-i686 Pentium MMX). Floating point SIMD (SSE) didn't show up until the Pentium 3 (on the Intel side; AMD's 3DNow was earlier but was eventually dropped). It's certainly reasonable to enable SSE and SSE2 when building for 32-bit x86 these days, but calling that target "i686" doesn't accurately describe the hardware requirements.
- fingerlocks 3y agoIt’s the name of the compilation target architecture in the compiler. Unless the architecture changes, the name doesn’t change. i386 refers to Intel 32-bit, which was superseded by x86_64
- zokier 3y agoIn gcc the target triplet is i686-pc-linux-gnu
- fingerlocks 3y agoHuh, I’ve been mentally translating i386 to mean “32-bit intel” for at least a decade, but I use clang.
- Dwedit 3y agoi686 is very easy to accidentally misread and confuse for x64.
- MichaelZuo 3y agoHow? There isn't even a 4 or an x in the name.
- hakfoo 3y agoIt definitely reminds me more of "x86-64", the name used on early publications before they decided to brand it (AMD64, Intel calling it EM64T or something, and eventually x64 appearing as a shorthand). You've got the "86" and a 6, and unlike i386 or i486, "686" never had significant currency as a "real" chip name. I feel like "i586" and "i686" are sort of a hairball logistically. I can recall a friend in the late 1990s whose forum signature boasted having a "686" overclocked to 262MHz-- an AMD K6. While we sort of understand i586 to mean Pentium, and i686 to be PPro/PII/PIII and beyond, you can make cases for the non-Intel Pentium-class CPUs to be anywhere from i386 (NexGen Nx586-- where's the FPU),to i686 (something like a K6-IiI+ is clearly more advanced than, say, the original i586 Pentium 60, although not necessarily matching PPro additions one-for-one) Going completely on a further tangent, it feels like we stopped awarding architecture tiers like that. There were definitely new instructions in some of the later-generation parts, why didn't the Pentium III with SSE, for example, become an 'i786' tier? Why is there only one 'amd64'? Guessing the overall strategy is that modern code feature-detects and compilers build a binary with multiple code paths-- something that will run grudgingly on a Pentium Pro or original Socket 940 Opteron, but will pick more efficient code paths on a more recent CPU. Although, wasn't that sort of the promise of things like Gentoo-- by building things yourself, you could make a hyper-lean system knowing it only needed to run on the exact hardware you had? I'd expect a marginal performance uptick, just because you'd be avoiding checks and branches related to feature selection and smaller binary sizes, but it doesn't seem like there's a clear consensus it carries its weight.
- zokier 3y ago> Pentiums (586) are usually the minimum and some even push toward Pentium MMX/Pentium II which would be 686. At least in gcc i686 is Pentium Pro, not Pentium II or MMX. It is important distinction as it lacks MMX extensions
- PakG1 3y agoAh, the days when I ran a Pentium Pro and thought I was hot stuff....
- hkgjjgjfjfjfjf 3y ago[dead]
- amluto 3y agoI fixed a bunch of kernel bugs for 486 and Cyrix support a while back. It ought to work. But userspace is not the kernel, and a lot of userspace code requires newer CPUs, for good reason.
- chasil 3y agoThe i386 lacks both MMX and SSE2. SSE2 is the endorsed floating point architecture for x86_64, although the 8087 extensions remain present. It is reasonable to assert that i386 is an insufficient designation to describe these capabilities.