How about we keep this in the current millenium?
Of course the migration path from Win3.11 up to Windows 8 is almost impossible, I'm half joking. But I try to attract the attention to a few key points (yes I know. Don't explain the joke...):
- HairyFeet's challenge works more or less because he's cherry picked a few key point (I wanna have working wifi) and a specific time frame (very recent history of windows, where it is more or less the same kernel under the hood, with only relatively minor additions).
The thing is, before comparing, you have to decide which criteria you're using to compare in order to avoid comparing oranges and apples, and be sure you're on a common ground. What's constitute an actually good common ground can be somewhat subjective.
My joke is about breaking the test by changing these conditions. Selecting things which are completely unfair to Windows.
You mention that a machine able to run Win95 or even able to run Win3.11 is very unlikely to have the ompf to run Windows 8. Simply order of magnitudes differences in requirement.
Well, just think about Linux. It happens that you can run lots of modern distribution on *very old* hardware.
Of course, it does require some tweaking (during the "upgrade game", installer would probably suggest jumping from KDE 2.x to KDE 3.x and then KDE4.x because that's what most people needed back then. If you need to run your distro on out-dated hardware, you might need to prefer jumping to another DE with much lower requirement and stick to it. FXCE is a possibility, LXDE is another. There are even other environment with simpler requirement).
Linux has two big advantages: the ability for the end-user to tune its environment for much lower requirement, and better support for older hardware (older hardware for Linux means more time to get tested and better support. For windows it usually means the maker went belly up and nobody is here to write driver for newer versions of windows, so usually every big upgrade also means throwing away all your cheap old noname peripherals).
Starting with your "stay at the same millenia" criterium, I could also speak about "staying with approximately the same generation of technology".
Hairyfeet's challenge exactly as formulated is unfair to linux because, under the hood there's almost no difference between Windows 2000 and Windows 8. It's a nearly identical kernel with nearly identical APIs during the whole lifetime. The only minor changes are a few changes with the graphic driver model (but which isn't covered by the Hairyfeet challenge. But which regularily kick you back into non accelerated famre buffer mode at each major change - indeed breaking) and security having been overhauled around the time of XP SP3 and Vista, because microsoft was forcibliy dragged kicking and screaming into doing it, because of business needs. (For why just everything else stagnated, just refer to TFA - yes, I know, slashdot, etc.)
(If we had started earlier, we would go thourgh racidally different types of drivers, dos .SYS and win3x .DRV, then Win9x. VXD, then WinME's ugly hack, then WinNT's .SYS - 100% guaranteed breakage)
Meanwhile Linux has seen quite a few changes in architecture and its a miracle that you can actually upgrade accross so much distribution generation. This miracle is mostly due to package managers being clever (hal is deprecated by udev and everything is un-installed and re-installed as necessary, thank you RPM-/DEB-'s dependency checking !) and the software being opensource (at each generation switch, package manager can have access to almost everything needed to make sure that everything plays out nicely).
Only two exceptions exist:
- graphic drivers - they are produced by 3rd parties and not in control of the distribution's package manager. Distribution could play a little bit around (writing package which try to automatically pull the correct blob while leveraging the package dependency solving) but they are limited by lack of access to source and complex re-distribution licensing terms.
- wireless networking. Whereas the situation works nicely for ethernet cards (they have been used in servers since ages and thus strong pressure from community and makers to have everything work perfectly). But wireless has been a nightmare until recently. We've been going from "sorry no drivers for you", through "manufacturer ships a shitty half-working blob which require an exact specific kernel revision which is completely out-dated", through "here a wrapper which implements standard windows API and can try to tap into the win drivers", through "some opensource enthousiasts are trying to reverse engineer all this mess and write a coherent driver". It's only recently, with Linux getting widespread on home router and on portable devices (where the situation currently boils down to android on nearly everything except when it's running iOS), that manufacturer have started to pay attention to the situation and correctly collaborate with kernel developer to have decent wireless drivers. (Now you can even find drivers for ahteros where even the firmware running on the adapter is opensource).
So by choosing a certain time frame (say Windows XP to Windows 8) you can end up in a situation where nothing change on the Windows side (it's actually the exact same driver running. no need to upgrade, so as long as you don't break the hardware enumeration, upgrade will be problemless - at least for the for the WiFi) whereas the Linux situation is an awful mess (going through all the shit mentioned before).
On the other hand, you could very probably pass the hairyfeet test with flying colours if you start in a point of time where modern well written drivers are available and all the configuration is automatically handled by NetworkManager, and keep upgrading for the following 5 years.
just pick cyanogen mod to have a type of distribution (although using android user space instead of GNU - but still the same Linux kernel) where upgrading works perfectly, mostly because the manufacturer did care about writing decent drivers.
Hairyfeet will have to move his challenge to other target:
- graphic drivers can be a good target to pick on. By then, the Windows API will probably stabiliser around the version introduced in Vista (with probably minor new version introducing new capabilities, but basically the same framework so probably backward compatible). Whereas Linux is going to have quite a ride:
we're starting with a point where the current big companies (AMD and Nvidia) have a mix of proprietary blob more or less working and opensource drivers at various stage of completeness, overhauls in the 3D stack (kernel mode setting, modularised Gallium, etc.) and even big changes in the graphics environment (X stepping aside and letting Wayland coming in. And maybe Mir too if Cannonical can get their shit together in time).
But luckily that is currently also heading in the correct direction both thank to maker (Intel is 100% opensource, AMD helps opensource effort, Nvidia has at least recently started helping on embed) and to industry interest (Valve, lots of Indie developper, specially with Humble Bundle, lots of crowd-funded projects: all are moving into Linux. Valve has already helped fix or improved several things in Linux grahpical drivers)
So yeah. In my joke I'm comparing orange to apples, but hairyfeet's challenge is comparing pineapples to kiwis anyway.