5 ms·
Random question.. they use i386 as their internal name.. but you can't actually run it on an Intel 386 right? I was under the impression that modern Linux kerne
by seabrookmx 7y ago
Random question.. they use i386 as their internal name.. but you can't actually run it on an Intel 386 right? I was under the impression that modern Linux kernels needed a Pentium Pro or newer.. meaning i586 or i686 would be more accurate?
- slimscsi 7y agoI386 as an architecture, not a CPU family line (although they have a relationship). In this context, it means dropping 32 bit application support in favor of 64.
- wtallis 7y agoThe kernel still supports 486 processors, but most distros compile targeting a minimum of 586 (Pentium [MMX]) or 686 (Pentium Pro).
- orf 7y agoSo the compiled kernel potentially misses out on instructions that newer CPUs support?
- kjeetgill 7y agoYes. This is why distros like Gentoo and others prefer building from source. Then you can enable as many architecture specific extensions your compiler supports. I don't know how much of a difference this makes in practice however.
- wtallis 7y agoThe justification for dropping 386 support was that it was a maintenance burden specifically for SMP locking primitives, IIRC. Dropping support for other 90s microarchitectures would mean not needing a workaround for the Pentium F00F bug, and having access to SIMD and prefetch instructions that can make things like a memcpy more efficient.
- vardump 7y ago> SIMD and prefetch instructions that can make things like a memcpy more efficient. Or just use REP MOVS. Modern CPUs recognize it and do optimal memory copy internally. Prefetch instructions are rarely beneficial, and often cause worse performance. Edit: Apparently AMD Ryzen lacks REP MOVS optimization. SIMD based memcpy performs the best on it. (Intel supports REP MOVS optimization since Ivy Bridge.)
- Daviey 7y agoNo. Support for anything below i686 was dropped in 2010. Which was annoying as I both owned i586 hardware and worked for Canonical/Ubuntu at the time.
- sdinsn 7y agoi386 is a architecture. Really they should be calling it IA-32 which is the real name. https://en.wikipedia.org/wiki/IA-32 https://en.wikipedia.org/wiki/IA-32 i586 / i686 are later iterations of IA-32
- Phrodo_00 7y agoIA-32 would imply it'd run in any IA-32 processor, the same as i386 since later versions are backwards compatible up to there, so they're functionally the same. It won't run in i486 or i386, though, so they're both inaccurate names