Debian GNU/Linux Port for RISC-V 64-Bits

Debian GNU/Linux Port for RISC-V 64-Bits

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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    46 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us