
i386 architecture will be dropped starting with Ubuntu 19.10 - jcastro
https://discourse.ubuntu.com/t/i386-architecture-will-be-dropped-starting-with-eoan-ubuntu-19-10/11263
======
BonesJustice
The headline makes it sound like they're dropping support for just the i386
architecture (as opposed to other x86 architectures, e.g., i686). The linked
article makes it sound like they're dropping support for the 32-bit x86
platform entirely.

Are Ubuntu's 32-bit x86 packages limited to those targeting the i386
instruction set? As in, "we ship x64, or ancient i386, but nothing in
between"?

Or do they use the i386 moniker used as an umbrella for all x86 architectures?

~~~
matthewbauer
This is very confusing, but is standard naming convention for Debian/Ubuntu.
Basically i386 means x86_32 and amd64 means x86_64. Why they can't use the
latter is beyond me. True i386 doesn't even work with recent Linux kernel and
Glibc. i386 in Debian-speak is actually i686.

~~~
acdha
It makes more sense when you look at the history: i386 has been around for
going on three decades and was originally the only x86 architecture. When the
world started to go 64-bit, Intel was pushing Itanium as IA-64 as the top-
performance option which could go head to head with high-end 64-bit RISC
processors such as Alpha, PA-RISC, PowerPC, SPARC, etc. They attempted to
rebrand x86 as IA-32 as a marketing exercise to match IA-64, both to demarcate
it as the lesser architecture and to continue making the competing x86 vendors
look less legitimate to business customers.

AMD was the first to develop and announce a 64-bit x86 extension back in 1999
and since they shipped the first hardware, the amd64 name distinguished it
from Intel's IA-64. When Intel wrote off IA-64 and adopted AMD's extensions
the “amd64” name was already used in a number of places.

~~~
Phrodo_00
amd64 does make sense because the distro will work in all amd64 computers
(including EM64T stuff).

Calling i686 i386 doesn't, unless packages are actually compiled for i386
(which I don't think they are).

------
seabrookmx
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?

~~~
wtallis
The kernel still supports 486 processors, but most distros compile targeting a
minimum of 586 (Pentium [MMX]) or 686 (Pentium Pro).

~~~
orf
So the compiled kernel potentially misses out on instructions that newer CPUs
support?

~~~
kjeetgill
Yes. 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
The 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
> 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.)

------
Wowfunhappy
I'm a little confused by the FAQ post in the linked article. Some of the
questions make it sound like 32 bit _software_ will also stop working? Are the
compatibility packages going away too?

This would have some crappy implications for Wine and games in particular.

~~~
kstenerud
You need the 32 bit wine binaries to support 32 bit Windows apps, so if they
get removed, you'll need to install the 32 bit libraries manually, or perhaps
someone will provide PPAs.

------
danmg
How will this impact Wine users who rely on 32 bit libraries to run 32 bit
windows programs?

~~~
Crestwave
It's listed in the FAQ...

> __Q. How can I run 32-bit Windows applications if 32-bit WINE isn’t
> available in the archive? __

> Try 64-bit WINE first. Many applications will “just work”. If not use
> similar strategies as for 32 bit games. That is use an 18.04 LTS based
> Virtual Machine or LXD container that has full access to multiarch 32-bit
> WINE and related libraries.

~~~
danmg
Just use a VM with an old version of Ubuntu is not a solution.

------
timw4mail
Shed a tear for the Winchips, and Cyrixes that will never be useful again.

~~~
squarefoot
Upgrading from Ubuntu to Debian solves this one among other problems. Ubuntu
comes from a company, Debian from a community; the main difference being that
companies must be kept profitable, so they will axe any piece of the product
that won't be or appear as profitable to them, either because it doesn't sell,
or because it consumes resources (developers time).

~~~
__s
To be fair, Arch dropped i686 years ago. How many people are really stuck on
32 bit? & if companies are so quick to axe things, why is Windows still
offered on 32-bit where it'll run many 16-bit programs?

Your post is really slanted "upgrading to Debian", "Company vs Community",
suggesting that profit goes against the user's best interest

I'm writing this as someone who uses Arch at home & Debian at work

~~~
squarefoot
edit: hit submit too early leaving partial post...

'"Company vs Community", suggesting that profit goes against the user's best
interest'

That depends on what users interests are: if they match with the company
goals, then profit will help users as well. Killing parts of a project because
they don't bring money is perfectly acceptable for a company (just look at how
many project were axed by Google recently), but again, we should ask to users
who invested time and money working with them.

BTW, Many small appliances, embedded systems etc. still run 32 bit cpus. Linux
isn't just for servers or desktops.

------
nottorp
So long, my Atom D2500 homebrew router.

Say, what's the state of fanless dual (or even triple) NIC boards these days?
Intel network chips please, the CPU can be whatever. It looks like I need one
that does 64 bit before 18.04 runs out of support.

Edit: x86_64 CPU please, not ARM.

~~~
paulirwin
You still have 3+ years until free security support runs out in 2023. But that
said, check out this QOTOM fanless unit that has 4 Intel NICs with a Celeron
J1900 64-bit processor. I can attest that it works great as a home/SMB router
with Sophos XG (although you could use Ubuntu if you wanted). Just add memory
and an msata SSD. There are similar models available on Amazon too with
varying hardware configurations.

[https://www.amazon.com/gp/product/B01KX9OU58](https://www.amazon.com/gp/product/B01KX9OU58)

~~~
nottorp
I know i have 3 years but... new toys ;)

Thanks for the suggestion (amazon reviewers aren't so happy with it though). I
want a motherboard not a NUC-like system though. Still using sata, running
some servers on it etc.

~~~
paulirwin
I've learned to take Amazon reviews, especially those where there's a high
likelihood of user error such as this case, with a giant grain of salt :-)

------
iamcreasy
Bryan kept a track of what flavors have dropped i386 from their images.
[https://bryanquigley.com/pages/papers/ubuntu-
drop-i386.html](https://bryanquigley.com/pages/papers/ubuntu-drop-i386.html)

------
Hydraulix989
Steam is 32-but only, I wonder what will happen?

~~~
viraptor
It already ships with its own libraries, so it may not even be affected. If it
is, then a new snap is going to be created for it. Right now you can also use
flatpak:
[https://flathub.org/apps/details/com.valvesoftware.Steam](https://flathub.org/apps/details/com.valvesoftware.Steam)

~~~
Hydraulix989
Which libraries? I recall having to pull in a whole 32-bit system on Arch
Linux to install Steam’s binary package.

~~~
vengefulduck
Arch gives you the option to use the system libraries or the built in one
using steam-runtime or the steam-native binaries. But the package needs to
install the 32 bit libraries to give you the option.

------
craftoman
Am I the only one who gets emotional here? I remember when I installed Linux
Ubuntu 7.x on my first laptop (which it's still working in perfect condition).
Truth is, I don't use this laptop anymore but I always wanted to install the
latest Ubuntu just for the flash backs.

------
ars
I have a 64-bit machine but I'm running 32-bit Debian because there's no good
upgrade path, and I really don't want to reinstall because that would take a
months to get everything set up again.

I'm running Debian not Ubuntu, but the absolute minimum they owe their users
is an automatic upgrade path.

~~~
urda
> but the absolute minimum they owe their users is an automatic upgrade path.

How exactly do you purpose they perform an "automatic upgrade" on their user's
hardware? You don't just patch or upgrade to go from 32 bit to 64 bit. You
can't hotfix hardware like that.

~~~
ars
As I said, I'm running 64 bit hardware, and a 64 bit kernel.

But shifting the packages from 32 bit to 64 bit is not supported
automatically.

And that _despite_ the ability to install both 32 and 64 bit packages side by
side.

It's like they did all the hard part for the upgrade, and just didn't finish
that last little bit (find 64 bit versions of existing 32 bit packages, and
install them, then remove the 32 bit).

------
pmarin
>There is lack of support in the upstream Linux kernel, toolchains, and web
browser

Except firefox who become useless on 32 Bit after quantum I don’t have any
problem with Debian on my netbooks. I am really curious about the “lack of
support” in the kernel, Any idea?

~~~
szbalint
Talking about Firefox, I've recently heard some people getting annoyed that
Firefox now depends upon Rust and Rust doesn't build on their obscure legacy
platform.

I'm in turn getting annoyed at the complete lack of cost/benefit analysis that
this entails.

Every software project has to deal with limited resources and the attitude
that the vast majority of people running on more mainstream platforms should
forsake improvements (in security or usability by Rust for example) in order
to support Solaris, Illumos, HP-UX or any of those niche platforms, well that
just pisses me off.

I still have a 32bit Debian installation (originally installed around 2003 and
been Ship of Theseus-d over the years so it actually has 64bit hardware now)
that I didn't have the time or motivation to upgrade, but if 32bit support
would go away tomorrow I'd understand. What's the percentage of 32bit vs 64bit
users? 0.3%?

~~~
Wowfunhappy
The other way to view this is as rich software developers asking the rest of
the world to pay to upgrade their hardware, or else forgo security patches.
That may be hard if you're in a poor country, or are otherwise living near the
poverty line.

Commercial interests have little incentive to serve this demographic, due to
their lack of buying power. That leaves open source projects that were created
for the public good.

------
muterad_murilax
I assume the same goes for the more lightweight Ubuntu-based distros Xubuntu
and Lubuntu? What are som good alternatives to these that will continue to run
on older 32-bit machines?

~~~
McGlockenshire
Each of these questions is answered in the article.

~~~
muterad_murilax
Not the second one.

~~~
nix0n
Fedora has a 32-bit LXDE version available[0], although I've never tried it. I
did use regular Fedora and Lubuntu simultaneously for about a year, and didn't
find it hard to switch back and forth.

[0][https://spins.fedoraproject.org/lxde/download/index.html](https://spins.fedoraproject.org/lxde/download/index.html)

------
listic
Are there other Linux distributions left that still support i386?

~~~
Crestwave
Void, Debian, Fedora, Gentoo, NixOS, Slackware, Guix System, Tiny Core, and
Mageia are the independent distributions I know of that have 32-bit images.
Also, most distributions support multilib; Ubuntu is actually the first I've
heard of dropping it.

------
bArray
Why are they dropping i386? Surely 32 bit Ubuntu is still very much in demand
in developing Countries or for people wanting to get old machines running with
"okay" hardware? I can still get my IBM T22 to load a lightweight browser and
navigate the internet.

The kernel still supports i386 and surely it's not that much effort to make
sure Gnome and the various packages compile for it? They still plan to support
32 bit ARM systems?

~~~
Sohcahtoa82
> Surely 32 bit Ubuntu is still very much in demand in developing Countries or
> for people wanting to get old machines running with "okay" hardware?

Every mainstream desktop CPU since late 2005 has had support for 64-bit, and
mobile CPUs since 2008. If you're still running pre-2005 hardware, is the
latest version of Ubuntu even really running that well at all?

Besides, they can continue to use 19.04 or 18.04 LTS. It's not like
discontinuing support means existing installs are going to break.

~~~
bArray
> If you're still running pre-2005 hardware, is the latest

> version of Ubuntu even really running that well at all?

Ubuntu server and Lubuntu are still very agreeable for older hardware.

> Besides, they can continue to use 19.04 or 18.04 LTS. It's

> not like discontinuing support means existing installs are

> going to break.

After just a few versions of Ubuntu it becomes harder to find archive
repositories, especially if you want to do anything like cross-compiling. It
basically is a death sentence.

------
Newtonip
Dammit! My LAN server is an old 32-bit only Pentium4 running Ubuntu.

~~~
McGlockenshire
As noted in the article, the LTS 18.04 release will continue getting security
updates for many years to come. You should retire that hardware well before
then, and not just because of security issues. Those old P4s are really power
hungry compared to anything made in the past decade.

~~~
isostatic
I suspet my 5-watt fitlet outperforms most P4s

~~~
Scuds
A raspberry pi will replace a P4 system, no problem. It's a waste of space and
energy keeping a loud dusty P4 around.

~~~
acuozzo
> A raspberry pi will replace a P4 system, no problem.

How does it compare on single core benchmarks?

~~~
syntheticnature
A bit stale on the Pi side (2015), but:
[https://www.phoronix.com/scan.php?page=article&item=raspberr...](https://www.phoronix.com/scan.php?page=article&item=raspberry-
pi-burst&num=2)

------
CondensedBrain
For some reason I thought this happened a long time ago.

~~~
meruru
They dropped 32-bit images sometime ago. This is about packages.

------
shmerl
I hope Debian will drop x86_32 distro too, and finally will support 32-bit
multiarch properly as a forced consequence. Cross-compiling 32-bit Mesa on
64-bit Debian is a major pain, due to multiarch being incomplete, multilib not
working and so on.

UPDATE: Looks like Ubuntu isn't dropping just the distro - they want to drop
multiarch packages as well. That's already nasty.

~~~
dima55
Huh? Can I get a pointer about Ubuntu dropping multiarch? As for Debian's
multiarch, it's a work in progress like most things. If something doesn't
work, please file a bug.

~~~
shmerl
Looks like it. Check the article link, and these:

 _> Q. Doesn’t Steam use 32 bit libraries? How can I play my games?_

 _> Q. How can I run 32-bit Windows applications if 32-bit WINE isn’t
available in the archive?_

It means they are dropping 32-bit packages for good, not just the distro.

I'm using GOG, not Steam. They don't commonly rely on bundled runtime.
Proposed solutions with lxc and such are quite annoying. And it's not about
32-bit Wine, it's about WoW64 Wine requiring 32-bit libraries to run 32-bit
stuff. Lot's of older games are 32-bit and will never be converted to 64-bit.

If there is no 32-bit multiarch, how are we supposed to build 32-bit Mesa and
dxvk / d9vk for example? And if we can't, everything will be stuck with
outdated versions. It's a huge mess they are pushing for. I hope Debain won't
do this horror if they can avoid it.

~~~
Wowfunhappy
Yeah, if I'm reading this right, I feel like everyone buried the lead here.

Dropping support for 32 bit _software_ is super sucky.

