Contrast that with the world of PCs where I can still run recent versions of Linux on devices 10-20 years old.
10 sure, but not 20. 20 years ago the devices had 32 bit CPUs, the support for them is being phased out. The last 32-bit Ubuntu LTS is 16.04.6, from 2016.
Yes. But I think it’ll only a matter of time before they stop, too.
> using 64-bit has little value if you have less than 8 Gb of RAM.
Address space brings much value. No need to worry about address space fragmentation, also you can safely use memory mapping, even for large files.
Extra registers also very nice performance-wise, both general purpose r8-r15 and vector xmm8-xmm15.
Finally, when you code AMD64 you can rely on having at least SSE1 and SSE2 SIMD, their support is a requirement.
It will probably take at least 5-10 years before all major distributions will stop and their support periods will be over.
Once we are there, there is still NetBSD and OpenBSD. Heck, NetBSD still supports VAX.
I wonder about the level of VAX support. Do they just have old code lying in the repository, do they build it, or do the devs actually have a working VAX machine and they test new builds?
a) build.sh allows cross compilation, which helps with build validation (although openbsd built native until they dropped vax ~3y ago)
b) there are a few dedicated devs on vax. these pretty much do the work as a hobby, and things are best effort, but generally in sync with the rest of the tree. most of these own a vax or three, but you can also run on SimH and probably other vax emulators.
c) really, the system source is modular enough that adjusting device drivers for well documented hardware which has existed for years, and tweaking a few already-implemented since the 80s macro primitives is most of what is needed to keep things running -most of the adjustments to the system itself happen higher up the stack (e.g in the generic c portion of the kernel, or in the c library). Granted, this does mean knowing the ISA and HW in and out, and having skills to debug/reason about low-level instruction/hardware sorts of issues, but, hey, that's who codes open source os'es anyway.. Besides, if you are a true VAX BSD UNIX hacker, you've been tweaking your kernel sources since you manually toggled in the 3BSD bootstrap in 1979 :b
While you might not get the latest kernel with it, as far as I can tell, there is nothing in its package manager that doesn't run on hardware from 2016. Unkike typical Android devices from the same era.
Right, but 20 years ago was 1999. I won’t be surprised to find out many packages won’t work: that CPU doesn’t have SSE2, the RAM limit is 512 MB, and typical systems usually had 64 or 128 MB.
The official page says recommended minimum requirements for Ubuntu 16.04 are 2 GHz dual core processor with 2GB RAM. 20 years old PCs don’t fit.
I got my daughter a newer device later that year, so don't know if it still works. I've lost track of it again.
Same happened with mobile devices, where designers and manufacturers were looking for the ideal recipe of a mobile phone.
The iPad 3 was quite problematic as a device in that it was very RAM- and CPU-limited. With a 1GHz dual-core A9 and 1GB RAM, it was not going to handle future iOS updates well.
The next version, the 2012 iPad, runs iOS 10 and is still useful -- I still have one lying around for when I need an iPad (and I do have 1Password on it). And the 2013 iPad Air runs the latest iOS and I expect this to continue as iPad tech plateaus.
Lack of OS updates isn't unique to Android, but Android manufacturers collectively have a very blasé attitude to updates, much worse than Apple and Microsoft.
[1] https://discussions.agilebits.com/discussion/comment/408090/...