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

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)

Date: 2014-02-04 17:48:58 EST

Author: Les Kitchen

Org version 7.8.11 with Emacs version 23

Validate XHTML 1.0