ljk-nonintel
Table of Contents
1 GNU/Linux on non-(standard Intel) architectures, "NSIA"
1.1 Preface
- Heraclitus (via Plato)
- "πάντα χωρεῖ καὶ οὐδὲν μένει" καὶ "δὶς ἐς τὸν αὐτὸν ποταμὸν οὐκ ἂν ἐμβαίης"
- "Everything changes and nothing remains still … and … you cannot step twice into the same river"
- What's here is a peculiar mixture of web-research, hearsay and personal experience.
- It's incomplete, probably in places out of date or wrong.
- But I hope it's sufficiently interesting and informative.
1.2 Processor architectures
- NOT i386, amd64
- ARM: ubiquitous on phones, tablets, mini-PCs, SOC/SBCs (Raspberry Pi, Beaglebone, Radxa Rock, etc.)
- PowerPC: older Apple Macs (G3, G4, 64-bit G5); various servers (IBM, etc.); game consoles: SONY's PS3 (Cell Broadband Engine), Nintendo's Wii and Wii U, Microsoft's XBox 360
- others: MIPS (SGI, PS2, PSP, Loongson / Lemote Yeeloong, Fuloong); Alpha (DEC); Itanium (Intel / HP); HP's PA-RISC; etc.
1.3 Partial history
- Linux started on 80386 (Linus Torvalds, 1991)
- First Debian ports to other architectures, 1995
- First ported releases:
- 1998, 2.0, Hamm: m68k
- Earlier Amiga port
- 1999, 2.1, Slink: alpha, sparc
- Also Red Hat, Suse alpha
- 2000, 2.2, Potato: powerpc, arm
- 2002, 3.0, Woody: ia64, hppa, mips, mipsel, s390
- 1998, 2.0, Hamm: m68k
- First ported releases:
1.4 Principal distros
- Mostly "official" ports here; there are "unofficial" ports as well.
- Distrowatch's Top Ten:
- Linux Mint, Ubuntu, Fedora, Debian, openSUSE, Arch Linux, PCLinuxOS, Centos, Mageia, Slackware, FreeBSD
- Only these currently support NSIA:
- Debian: armel, armhf, mips, mipsel, powerpc, s390x, sparc, ia64, s390, s390x
- FreeBSD: arm, armel, ia64, mips, mipsel, sparc64, pc98, powerpc, powerpc64, ps3, xbox
- Fedora: armhfp, ppc, ppc64, s390x
- Ubuntu: armhf, powerpc
- Slackware: arm
- Other notable distros / projects:
- Gentoo: alpha, arm, hppa, ia64, mips, ppc, ppc64, sparc
- Yellow Dog Linux: powerpc (Mac, PS3, servers)
- Maemo / Meego: Nokia Internet Tablets: N770, N800, N810, N900 (phone)
- Raspian: armhf on Raspberry Pi
- Picuntu: Ubuntu for mini-PC sticks, e.g. MK808
- Ubuntu Touch / Ubuntu TV
1.5 Porting
- kernel, libc, dynamic linker
- gcc (cross-compile code generation + native)
- packages, coreutils, etc.
- peculiar hardware
- booting process
1.6 Problems
- technical
- endian-ness
- synchronization, memory model
- often lack of JIT (e.g. for Javascript)
- human
- smaller user base
- proportionally fewer bugs reported and fixed
- is it a general bug or peculiar to my hardware?
1.7 Plusses
- diversity
- finding architecture-dependent bugs
- migration to new architectures
- frugality, avoiding waste
- keep old machines useful for longer
- exploit cheap hardware
- universality
- smooth transition between machines
1.8 Personal experience
- Powerbooks: Ti-Book, Pismo (2000 vintage)
- MacOS 10 as mutant BSD
- Fink / MacPorts
- Apple dropped support as of MacOS 10.5
- Yellow Dog Linux (up to 6.2)
- now stock Debian powerpc Wheezy
- almost everything works fine, including sleep, media bay, dual batteries
- latest versions of software, browsers, etc.
- generally better performance than with MacOS
- acceptable performance for almost everything, considering age of hardware
- occasional weirdness when waking from sleep with USB Wifi in USB2.0 PC-card in PCMCIA slot.
- no external VGA output, out of the box
- PS3
- OtherOS feature (now removed by SONY on newer hardware and firmware)
- Yellow Dog Linux 6.2
- fast
- no access to GPU and one of the SPUs (runs hypervisor)
- limited CPU RAM 265MB, though can access GPU RAM as fast swap
- Debian, Fedora possible
- NIT:
- Maemo with armel Debian in chroot (qole on maemo.org)
- Raspberry Pi:
- Raspian
- I can have essentially identical environment across all these diverse machines (as well as on my i386 / amd64 machines)
1.9 Sources
- http://en.wikipedia.org/wiki/Heraclitus
- http://www.debian.org/ports/
- http://distrowatch.com/
- http://www.debian.org/doc/manuals/project-history/
- http://docstore.mik.ua/orelly/weblinux2/rlinux/appb_01.htm
- http://penguinppc.org/
- other distro-specific websites
- Various Wikipedia articles on distros, architectures, devices, companies.
- http://mirror.internode.on.net/pub/linux.conf.au/2013/mp4/Big_and_Little_Endian_inside_out.mp4
- Rodney Brown