
DebianDebian GNU/LinuxGNU/Linux portport forfor RISCRISC-V-V 64-bits64-bits Manuel A. Fernandez Montecelo <[email protected]> 8th RISC-V Workshop :: May 7-10, 2018 Barcelona Supercomputing Center && Universitat Politècnica de Catalunya OutlineOutline ➢Goals of this project ➢Why a Debian Port for RISC-V? ➢What is Debian? ➢What is a Debian Port? ➢The Plan ➢History / Making Of (1st and 2nd bootstrap) ➢Current Status ➢How the RISC-V community can help ➢... and what are the benefits ➢Thanks ➢Questions / comments 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 2/46 GoalsGoals ofof thisthis projectproject ➢To have Debian ready to install & run on RISC-V based systems ➢Fully integrated with Debian infrastructure ➢Not a “one shot”, but continously updated ➢With time, to make it as well supported as “the big ones” ➢i386, x86_64 (“amd64” in Debian), arm64, ppc64el 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 3/46 WhyWhy aa DebianDebian PortPort forfor RISC-V?RISC-V? (1)(1) ➢Personal reasons: ➢Interested in both Debian and RISC-V ➢I’m already a Debian Developer ➢I like RISC-V design and goals, started following in 2014 ➢They are a good fit, philosophically and technically ➢And I would like to improve and help to grow both projects ➢I worked previously in the OpenRISC or1k port ➢... and had lots of fun!! ➢No other major GNU/Linux distributions in sight ➢(... by the time that I started, 2014~2015) ➢And ultimately, I would like to run Free Software and Debian when I get my own RISC-V based hardware 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 4/46 WhyWhy aa DebianDebian PortPort forfor RISC-V?RISC-V? (1(1 bis)bis) ➢Personal reasons: ➢Interested in both Debian and RISC-V ➢I’m already a Debian Developer ➢I like RISC-V design and goals, started following in 2014 ➢They are a good fit, philosophically and technically ➢And I would like to improve and help to grow both projects ➢I worked previously in the OpenRISC or1k port ➢... and had lots of fun!! ➢No other major GNU/Linux distributions in sight ➢(... by the time that I started, 2014~2015) ➢And ultimately, I would like to run Free Software and Debian when I get my own on the now-existing RISC-V based hardware 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 5/46 WhyWhy aa DebianDebian PortPort forfor RISC-V?RISC-V? (2)(2) ➢Technical and philosophical reasons: ➢Debian welcomes and already supports many ports ➢Including similar architectures, active now or in the recent past, some listed from “RISC-V Genealogy”: ➢MIPS (mips, mipsel) ➢Hitachi SuperH (sh4) ➢IBM PowerPC (powerpc, ppc64, ppc64el) ➢... and DEC Alpha, SPARC (32 and 64), older ARMs, PA-RISC ➢Similar or compatible goals, and methods, e.g.: ➢Aiming for openness, freedom ➢Both based, built upon same tools ➢GNU toolchain ─among others─, Linux, FOSS ecosystem ➢Striving for good technical solutions over other considerations 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 6/46 WhatWhat isis Debian?Debian? (1)(1) ➢The Project: A community of individuals ➢Mostly volunteers ➢No overall or significant control by companies ➢... who care about Free, Open-Source Software ➢Goal: to create a full, comprehensive “Operating System” ➢Large set of software packages, coherent and well integrated ➢“stable” releases every ~2 years (also used as “rolling release”) ➢Keeping “Software Freedom” as a core goal ➢Manifesto: “... developed openly in the spirit of Linux and GNU...” ➢Social Contract ➢Debian Free Software Guidelines (DSFG) 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 7/46 WhatWhat isis Debian?Debian? (2)(2) ➢Mostly known as a GNU/Linux “distribution” ➢Started by Ian Murdock in 1993 ➢First “stable” release in 1996 ➢One of the major “flavours” (.deb packages) ➢More than 27k source packages in 2018 ➢Basis of many derivatives (“downstreams”) ➢Ubuntu, Raspbian, SteamOS, Knoppix, gNewSense, Linux Mint Debian Edition, Tails... ➢...which also supports other kernels ➢Currently: FreeBSD and GNU Hurd 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 8/46 WhatWhat isis aa DebianDebian Port?Port? (1)(1) ➢In short, ABI of the combination of {computer arch + OS kernel + libc} ➢Computer architecture: ➢Many, currently and over the years (details in next slides) ➢Kernel + C library: ➢Mostly Linux + GNU libc (if not mentioned explicitly) ➢But also: ➢kFreeBSD, FreeBSD kernel + GNU libc (amd64 and i386) ➢GNU Hurd + GNU libc (i386) ➢C library: ➢GNU libc in all existing ports within the Debian infrastructure ➢But some people are interested in experiments ➢e.g. Linux + musl (libc) 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 9/46 WhatWhat isis aa DebianDebian Port?Port? (2)(2) ➢Three kinds of ports: ➢Outside of Debian infrastructure ➢Some derivatives are arguably an “external” port ➢e.g. Raspbian, mostly recompilation / optimisation for Raspberry Pi ➢Anybody can start one of these without official help or coordination with Debian ➢But often there’s collaboration in one way or another ➢Unofficial / unsupported ➢Not in “stable” releases, but hosted in Debian infrastructure ➢Officially supported ➢Part of the “stable” releases and fully supported ➢Ports don’t born “fully supported” ➢they work their way up to it 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 10/46 WhatWhat isis aa DebianDebian Port?Port? (3)(3) ➢Criteria for “officially suported” ports: ➢Be able to build almost all of the “source” packages ➢Have enough people responsible for it ➢addressing issues during full Stable release cycles ➢Have hardware available, redundant, well managed, etc. ➢And in return: ➢Become part of the “stable” releases and have full support for all packages (all ports) ➢For 3-5 years (“stable” release lifetime) ➢Including security support for all, not only a “core” set of packages 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 11/46 WhatWhat isis aa DebianDebian Port?Port? (4)(4) ➢“Unofficial” or “unsupported” ports: ➢When they don’t qualify as “official” for some reason ➢Hardware not available ➢Not enough people behind ➢Many packages fail to compile ➢e.g. missing Java or Haskell ecosystem (no working compiler), no GUIs, ... ➢... but are hosted in the infrastructure: ➢Can be downloaded / upgraded from *.debian.org ➢Secure, cryptographically signed ➢Get continous updates of software packages ➢When contributors upload new versions to the archive, they are compiled automatically for all ports, within minutes/hours 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 12/46 WhatWhat isis aa DebianDebian Port?Port? (5)(5) ➢Currently active: ➢ Fully supported ports, “officially suported”: ➢amd64 (x86_64), i386 (targetting i686 nowadays) ➢arm64/armel/armhf, mips/mipsel/mips64el, ppc64el, s390x ➢Not well supported: ➢Old ones with decreasing interest or available hardware: ➢alpha, ia64, hppa, m68k, powerpc/powerpcpse/ppc64, sh4, sparc64, x32 (x86_64 with ilp32)... ➢... and new ones ➢Retired: ➢Supported once, but not in the infrastructure anymore: ➢arm/armeb (old 32 bits ABIs, LE/BE), sparc (32 bits), parisc, s390 (32 bits BE)... 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 13/46 WhatWhat isis aa DebianDebian Port?Port? (6)(6) ➢What maintainers of packages see: ➢e.g. for Firefox: https://buildd.debian.org/status/package.php?p=firefox-esr 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 14/46 WhatWhat isis aa DebianDebian Port?Port? (6)(6) ➢What maintainers of packages see: ➢e.g. for Firefox: https://buildd.debian.org/status/package.php?p=firefox-esr Port/Arch Build Build machines, logs, Name Status historic, etc. 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 15/46 WhatWhat isis aa DebianDebian Port?Port? (6)(6) ➢What maintainers of packages see: ➢e.g. for Firefox: https://buildd.debian.org/status/package.php?p=firefox-esr Port/Arch Build Build machines, logs, Name Status historic, etc. riscv64 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 16/46 TheThe PlanPlan (1)(1) ➢Broad steps: 1)Bootstrap and create viable, basic OS disk images 2)Get it to the state of “unofficial” / “unsupported”, until all criteria for “stable” are met ➢Prepare infrastructure (e.g. auto-builders), wiki, doc, etc. ➢Import bootstrapped set in the infrastructure ➢Fully rebootstrap ➢Build as many packages as possible ➢And make sure that they work ➢Keep the port running, in good state 3)In the future, when feasible, “official” ─ as well supported as main ports 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 17/46 TheThe Plan:Plan: SoftwareSoftware decisionsdecisions (2)(2) ➢Software-wise, the target is to have a port with: ➢Linux kernel ➢GNU libc ➢GCC-based toolchain ➢LLVM available (when ready), but not the main toolchain ➢Rationale: all current and well supported Debian ports target these ➢Userland is basically the same for all Debian ports ➢including those with other kernels 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 18/46 TheThe Plan:Plan: HardwareHardware decisionsdecisions (3)(3) ➢Hardware-wise, the target is 64-bit little-endian ➢Both 64-bit and LE have been the focus for general purpose computing for years ➢Debian (Linux/Unix)-capable RISC-V hardware implement this ➢Simply, it was announced (and then became true) the most popular target capable of running general purpose OS ➢Dev boards or servers that might become available in the next few years for end-users, likely 64-bit LE too ➢RV64GC ➢As it’s the “default flavour” recommended by the people most involved ➢could be reverted if needed (e.g. popular hardware without it) ➢...or have both flavours 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 19/46 TheThe Plan:Plan: NotNot ConsideredConsidered (4)(4) ➢Why not 32-bit or 128-bit variants: ➢RISC-V side: ➢Design, toolchain and simulator support have not been explored as deeply for 32-bit, support lacking in some areas ➢RV32 hardware that appeared over time not ready for general purpose OSs ➢...and 128 is simply not realistic at this time ➢But maybe in the future? :-) ➢Debian side: ➢32-bit ports already struggle to get large packages built ➢e.g.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages46 Page
-
File Size-