::documentation::linux on obsolete hardware  

Linux on Obsolete Hardware

Copyright © 2014 – 2017 Finn Thain

People sometimes ask why anyone would care about a Linux port for old m68k systems. Surely one Linux system works the same as another? And Moore's law means that everyone should just upgrade, right? Maybe not.

Long Tail

Re-using old hardware prevents waste. You don't need 100x more compute capacity until you have 100x more work to do.

Re-using old code is important because old designs continually reappear in new systems — albeit in systems that are smaller, faster and more highly integrated. Some problems only need to be solved once.

The m68k architecture has a very long tail of production systems. Coldfire devices are still in production and 680x0 cores continue to execute in new re-programmable hardware.

Shared Burden

If you stop people installing their own software on systems they supposedly own then you are part of the problem, and whatever whining and marketing you do you share responsibility with the powers who abuse what you created.Alan Cox

[The Nexus 1] broke the promise of open source, making it impossible for users to put a new kernel onto their devices.Jonathan Corbet

Keeping legacy systems secure is a sizeable problem — witness the growing Internet of Things, or the sheer volume of mobile device manufacturing.

By sharing the maintenance burden, open source software tends to protect an end-user's hardware investment by filling the void left by the OEM who abandons its "obsolete" designs in order to push new ones.

The incomplete Linux port to the 68k Apple Mac is like the missing Linux port to the Apple iPhone, iPad or iPod: they are consequences of a business model which deliberately restricts technical collaboration. This model tends to either generate waste hardware or keep devices in service after hidden flaws have developed into security vulnerabilities.

If a Linux port can mitigate these problems, then old proprietary hardware should be the ideal test case.

Actual Progress

The purpose of computing is insight not just numbers — R.W. Hamming, Bell Labs 1955

Historically, different computer architectures have made different design trade-offs. To evaluate those compromises, one needs to execute a realistic workload on a variety of architectures. A modern code-base like a Linux distribution offers such a workload.

An interesting experiment is to run a typical UNIX workload on stock UNIX hardware, but with a modern Linux kernel in place of the stock UNIX kernel.

If and when a machine designed and built to run UNIX is no longer capable of running Linux then it follows that UNIX has finally failed as a design or Linux is no longer equivalent to UNIX (or both). Those outcomes may hold interesting lessons.

Similarly, by keeping the architecture constant whilst varying the workload, one can evaluate diverse software algorithms and their time/space trade-offs.

By comparing the series of Linux kernel releases for a given architecture spanning two decades, one can measure the effects of changes that Linux itself has undergone. Only a few architectures (alpha, x86 and m68k) can be used in such an experiment.

Network Effects

Porting code to a wide variety of architectures means dealing with corner cases by increasing generality. This tends to make source code more robust and more easily re-usable regardless of the number of systems deployed.

Porting to old resource-constrained machines helps to identify and resolve bloat. This in turn helps ports to more modern architectures: both small embedded systems and large high performance clusters.

Re-use fosters further re-use. Open Source Software benefits from unforeseen synergies between different groups of end users: between users of very small and of very large systems and between different projects having different purposes, and so on.

For example, porting an open source operating system to a particular architecture helps the developers of an emulator for that architecture. That open source emulator in turn helps those attempting to preserve the actual hardware.

Cultural Heritage

The enthusiasts who develop emulators and operating systems and restore vintage hardware do so to mutual advantage, and this work also assists that of archivists, curators and librarians whose job it is to preserve cultural artefacts.

Collections of antique machinery have long been kept and preserved for posterity. Keeping old computers useful helps to keep them around, and running modern software helps to keep them useful.

Enthusiasts, like other special interest groups, depend on an inclusive software development process; one that serves the broader community. The Open Source process fails everyone when it fails those groups.

Porting an open source software project to an obsolete or commercially nonviable platform is an ideal litmus test as to whether commercially sponsored maintainers are able to serve the project's users and contributors (past and present) and derive the most value from the code base and its license.

Job Satisfaction

Restoring old computers is its own reward, like restoring vintage cars or antique furniture or historic buildings. If you enjoy nostalgia, or the satisfaction of repairing something, there's plenty of work to do!

Valid HTML 4.01 Transitional Valid CSS! Copyright © 2000-2017 Linux/m68k for Macintosh Project.