===== History of the Linux port ===== This page gives a short history of Linux on Alpha, from Digital's first port in 1994 to the present. The companies involved are described under [[history:companies|Companies]], the distributions under [[:distributions|Distributions]], and the mailing lists and Gentoo's port under [[history:community|Community History]]. ==== Milestones ==== ^ Date ^ Event ^ | September 1994 | Digital's 32-bit Linux/AXP port, based on Linux 1.0, described publicly | | March 1995 | Linus Torvalds's 64-bit Alpha port becomes self-hosting | | July 1995 | BLADE 0.1, the first installable Alpha/Linux distribution; Alpha changes appear in the mainline 1.3 kernel | | June 1996 | Linux 2.0, the first stable kernel to support Alpha directly | | October 1996 | Red Hat Linux 4.0, the first ELF-based Red Hat release for Alpha | | January 1997 | glibc 2.0.1 renames Alpha's C library to ''libc.so.6.1'' | | 1999 | Debian 2.1, the first Debian release for Alpha | | October 2003 | HP cancels the EV79 | | April 2007 | Last Alpha firmware update, V7.3 | | October 2009 | Alpha demoted as a Debian release architecture | | October 2011 | LLVM removes its Alpha back end | | December 2011 | QEMU 1.0 adds Alpha system emulation | | July 2024 | Linux 6.10 drops support for processors before the EV56 | ==== Digital and the first ports (1994 to 1996) ==== Linux on Alpha began at Digital with a 32-bit port of Linux 1.0 by Jim Paradis and his colleagues, which led to the Linux/Alpha Software Developers' Kit in January 1995; see [[software:operating_systems#the_first_port|Operating Systems: The first port]]. At the same time, Linus Torvalds was working in Helsinki on a 64-bit Alpha port of his own, on Alpha systems lent by Digital. In March 1995 he announced that his port was self-hosting. It ran the compilers from Digital UNIX, because he had made its system calls compatible with those of Digital UNIX, and Digital's team then moved from its own 32-bit kernel to his 64-bit code. [(>[[https://www.linuxjournal.com/article/1178|"Porting Linux to the DEC Alpha: The Kernel and Shell"]], Jim Paradis, Linux Journal, December 1995)] Digital showed the self-hosting system at DECUS in May 1995. [(>[[https://www.linuxjournal.com/article/2677|"Linux at DECUS"]], Michael K. Johnson, Linux Journal, July 1995)] Alpha code was already in Torvalds's own kernel tree during the 1.1 and 1.2 series, but the published kernel change summaries left it out "until the respective port is working". [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/comp-os-linux-announce-mbox/googlegroups-1995-April.mbox#L1941|"Kernel change summary 1.2.1 -> 1.2.2"]], Russell Nelson, comp.os.linux.announce, 8 Apr 1995)] Digital's BLADE 0.1, released in July 1995, used a 1.2.8 kernel with "Linus' Alpha patches" applied. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/comp-os-linux-announce-mbox/googlegroups-1995-July.mbox#L10349|"Linux/Alpha installable kit now available!"]], Jim Paradis, comp.os.linux.announce, 1 Jul 1995)] The same month, the summaries began listing the Alpha changes in the mainline 1.3 development kernels. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/comp-os-linux-announce-mbox/googlegroups-1995-July.mbox#L9184|"Kernel change summary 1.3.1 -> 1.3.2"]], Russell Nelson, comp.os.linux.announce, 15 Jul 1995)] Linux 2.0, released in June 1996, was the first stable kernel to support Alpha directly: "The standard Linux-2.0 kernel directly supports both intel x86 (and clones) and Digital Alpha machines." [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/comp-os-linux-announce-mbox/googlegroups-1996-June.mbox#L7622|"Linux v2.0 released"]], Linus Torvalds, comp.os.linux.announce, 9 Jun 1996)] Red Hat released its first Alpha distribution in December 1995 and its first official one in January 1996; see [[history:companies#red_hat|Companies: Red Hat]]. ==== ELF and glibc (1996 to 1997) ==== The early Alpha/Linux userland used the ECOFF object format, as Digital UNIX did, and an older C library. In June 1996 David Mosberger-Tang was preparing "the transition from ECOFF/oldlibc to ELF/glibc". [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1996-June.mbox#L3753|"disk sponsor?"]], David Mosberger-Tang, axp-list, 7 Jun 1996)] Red Hat Linux 4.0, released for Alpha in October 1996, [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1996-October.mbox#L4753|"Red Hat Linux/Alpha 4.0 Available Now! (fwd)"]], Erik Troan, axp-list, 4 Oct 1996)] was ELF-based, so ECOFF-only commercial software, such as Metro Link's Motif, could no longer be linked on it. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1996-December.mbox#L4412|"Re: Metro-link Motif and 4.0"]], Erik Troan, axp-list, 3 Dec 1996)] In January 1997, glibc 2.0.1 changed the Alpha ABI, and Alpha's C library was renamed ''libc.so.6.1'' to keep binaries built against the old library from loading the new one. Alpha still uses that name; see [[documentation:porting:libc_soname|Why Alpha Has libc.so.6.1]]. ==== The Compaq years (1998 to 2002) ==== During the Linux 2.1 development series, Compaq's Alpha Linux engineers had SMP support that "seemed pretty stable" on the Rawhide, Sable, and DP264 platforms, and were working on the generic kernel, one kernel that runs on many Alpha systems. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1998-September.mbox#L1861|"Re: Prevalence of SMP Alpha systems & Linux?"]], Jay Estabrook, axp-list, 3 Sep 1998)] Compaq gave Torvalds an AlphaServer DS20 at LinuxWorld in March 1999. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1999-March.mbox#L8784|"Compaq announcement at Linux World"]], Bill Roman, axp-list, 3 Mar 1999)] In 2000 a Linux 2.4 kernel ran on all 16 processors of an AlphaServer GS160. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2000-September.mbox#L24136|"RE: ANNOUNCE Hardware Compatibility Database"]], Huw Davies, axp-list, 12 Sep 2000)] This was the period of the most commercial support. Red Hat, SuSE, MandrakeSoft, and TurboLinux all released Alpha versions, and Compaq released its C and Fortran compilers and math library for Alpha/Linux; see [[history:companies#compaq|Companies: Compaq]]. Debian first released Alpha as an official architecture in Debian 2.1 (1999). [(>[[https://www.debian.org/releases/slink/|Debian GNU/Linux 2.1 ("slink")]], debian.org)] ==== Decline of commercial support (2001 to 2009) ==== Compaq announced in June 2001 that it would sell its Alpha technology to Intel (see [[history:companies#compaq|Companies: Compaq]]). The commercial distributions left Alpha in the following years. Red Hat Linux 7.2 was Red Hat's last Alpha release, and in 2002 its Alpha CD was sold only by HP, without support. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2002-August.mbox#L1|"Red Hat Linux 7.2 for Alpha CD Media Kit now available"]], John Goshdigian, axp-list, 31 Jul 2002)] SuSE discontinued SuSE Linux 7.1, its last Alpha release, in May 2003. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2003-May.mbox#L6651|"Re: [suse-axp] is dead too :( [announce] SuSE Linux 8.1 Alpha Edition available."]], Farkas Zsolt, axp-list, 23 May 2003)] The last releases of each distribution are listed under [[:distributions#historical_distributions|Distributions]]. HP canceled the EV79 in October 2003 and replaced it with the EV7z, [(>''HP confirms Alpha EV79 dead, and Superdome 128 Itanic delayed'', The Inquirer, 26 Oct 2003, listed on [[history:news_coverage|News Coverage]])] which arrived in 1.15 GHz and 1.3 GHz versions in 2004 as the last Alpha processor. [(>''Alpha EV7z finally arrives'', The Inquirer, 24 Jul 2004, listed on [[history:news_coverage|News Coverage]])] HP released the last Alpha firmware update, V7.3, in April 2007. [(>{{wiki:software:firmware:alpha_systems_firmware_update_v7.3_release_notes_overview.pdf?linkonly|Alpha Systems Firmware Update V7.3 Release Notes Overview}}, April 2007, p. 2)] HP's commitments on Alpha are described under [[history:companies#hewlett-packard|Companies: Hewlett-Packard]]. Debian 5.0 (2009) was the last Debian release for Alpha. [(>[[https://www.debian.org/releases/lenny/|Debian "lenny" Release Information]], debian.org)] In October 2009 Debian's release team demoted Alpha as a release architecture for Debian 6.0, [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/debian-alpha-mbox/2009-October.mbox#L336|"Re: current status of alpha in squeeze"]], Andreas Barth, debian-alpha, 7 Oct 2009)] and the port continued unofficially in Debian Ports. ==== Community maintenance (2009 to present) ==== From 2009 the port was maintained by volunteers. In October 2009 fixes by Michael Cree and Matt Turner made the X server work on Alpha again, after a change made during the development of xorg-server 1.6 had broken it; [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2009-October.mbox#L1|"Need X testers on Alpha. I think we've got it this time."]], Matt Turner, axp-list, 7 Oct 2009)] the fixes were released in xorg-server 1.7.1. [(>[[https://gitlab.freedesktop.org/xorg/xserver/-/commit/a08186fe59f003fc9e1edceb1d95d2e316766e2a|"Fix breakage on alpha caused by c7680befe5ae"]], xorg-server 1.7.1)] In November 2009 Torvalds began pulling Alpha patches from a tree kept by Turner, starting with Linux 2.6.32. [(>[[https://git.kernel.org/torvalds/c/df87f8c06c7f|"Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha-2.6"]], Linux 2.6.32)] Linux 2.6.36 removed the Big Kernel Lock from ''arch/alpha'' [(>[[https://git.kernel.org/torvalds/c/12e750d956ee|"alpha: kill big kernel lock"]], Linux 2.6.36)] and fixed a signal handling bug in ''sigreturn()'' tracing present since Linux 1.3.95. [(>[[https://git.kernel.org/torvalds/c/53293638618f|"alpha: fix a 14 years old bug in sigreturn tracing"]], Linux 2.6.36)] In December 2011 Uros Bizjak fixed GCC bug 27468, which made GCC emit unnecessary sign-extending instructions on Alpha, for GCC 4.7. [(>[[https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=64729d8c5d47f1d2f50f508f61303e3be0c1b64a|"re PR rtl-optimization/27468 (sign-extending Alpha instructions not exploited)"]], GCC 4.7)] Linux 3.5 implemented more OSF/1 system calls, improving the kernel's ability to run Tru64 UNIX binaries. [(>[[https://git.kernel.org/torvalds/c/7a8bb98ca965|"alpha: implement various OSF/1 stat syscalls"]], Linux 3.5)] The toolchain lost ground elsewhere. LLVM removed its Alpha back end in 2011, [(>[[https://github.com/llvm/llvm-project/commit/c8338b1b14fa6235d125de36c12f5b3f5c3fbc85|"Remove the Alpha backend."]], llvm-project, 27 Oct 2011)] so Clang and Rust are not available on Alpha; see [[:status#what_is_missing|Current Status: What is missing]]. QEMU, which had emulated Alpha user-mode programs since version 0.9.1, [(>[[https://gitlab.com/qemu-project/qemu/-/commit/4c9649a967e45bc3086d2e752871878e08d6cdf2|"Alpha architecture emulation core."]], Jocelyn Mayer, 5 Apr 2007, QEMU 0.9.1)] added system emulation of an ES40-class machine in QEMU 1.0. [(>[[https://gitlab.com/qemu-project/qemu/-/commit/80bb2ff770e3e6ff2922a7b60978394571ec64cb|"target-alpha: Add CLIPPER emulation."]], Richard Henderson, 25 Aug 2011, QEMU 1.0)] Debian's Alpha port now builds packages on QEMU as well as on real hardware; see [[software:emulators#qemu|Emulators: QEMU]]. Linux 6.10, released in July 2024, removed support for the EV4, EV45, and EV5 processors, because the kernel needs the byte/word extension (BWX) to make byte and word stores atomic. [(>[[https://git.kernel.org/torvalds/c/a4184174be36|"alpha: drop pre-EV56 support"]], Linux 6.10)] [(>[[https://lwn.net/Articles/973687/|"The first half of the 6.10 merge window"]], LWN.net, 16 May 2024)] Current kernels require an EV56 or later; see [[:status#processor_baseline|Current Status: Processor baseline]]. The current maintainers and the state of each project are listed on [[:status|Current Status]], and the history of Gentoo's port under [[history:community#the_gentoo_alpha_port|Community History]]. {{tag>history}}