bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Updated the information about the rump kernels, and included


From: Samuel Thibault
Subject: Re: [PATCH] Updated the information about the rump kernels, and included a guide on how to use them on the Debian qemu image.
Date: Thu, 25 May 2023 18:45:05 +0200
User-agent: NeoMutt/20170609 (1.8.3)

Hello,

Could you rebase it on your previous patch, which I have already
commited?

Samuel

jbranso@dismail.de, le jeu. 25 mai 2023 11:56:44 -0400, a ecrit:
> * community/gsoc/project_ideas/driver_glue_code.mdwn: changed rump
> kernel link.
> * hurd.mwdn: added a link to hurd/rump.mdwn.
> * hurd/rump.mdwn: new file.
> * rump_kernel.mwdn: deleted file.
> ---
>  .../gsoc/project_ideas/driver_glue_code.mdwn  |  2 +-
>  hurd.mdwn                                     |  3 +-
>  hurd/rump.mdwn                                | 46 ++++++++++++++++
>  hurd/running/qemu.mdwn                        | 52 +++++++++++++++++++
>  rump_kernel.mdwn                              | 42 ---------------
>  5 files changed, 101 insertions(+), 44 deletions(-)
>  create mode 100644 hurd/rump.mdwn
>  delete mode 100644 rump_kernel.mdwn
> 
> diff --git a/community/gsoc/project_ideas/driver_glue_code.mdwn 
> b/community/gsoc/project_ideas/driver_glue_code.mdwn
> index db1816c9..3d0a9192 100644
> --- a/community/gsoc/project_ideas/driver_glue_code.mdwn
> +++ b/community/gsoc/project_ideas/driver_glue_code.mdwn
> @@ -27,7 +27,7 @@ This is [[!GNU_Savannah_task 5488]].
>  [[open issues/user-space device drivers]].
>  [[open issues/device drivers and io systems]].
>  
> -The most promising approach for getting newer drivers seems to be the 
> [[Rump_kernel]]:
> +The most promising approach for getting newer drivers seems to be the [[rump 
> kernel|hurd/rump]]:
>  it already does the hard work of providing an environment
>  where the foreign drivers can run,
>  and offers the additional benefit of being externally maintained.
> diff --git a/hurd.mdwn b/hurd.mdwn
> index ff30f48b..8365740f 100644
> --- a/hurd.mdwn
> +++ b/hurd.mdwn
> @@ -62,7 +62,8 @@ in the *unstable* branch of the Debian archive.
>  * [[running/Distrib]] -- Distributions
>  * [[Public_Hurd_Boxen]]
>  * [[Neighborhurd]]s and [[Subhurd]]s
> -* [[DDE]] -- Device Driver Environment
> +* [[DDE]] -- Old Device Driver Environment
> +* [[RUMP]] -- Modern Device Drivers
>  
>  ## Common Problems
>  
> diff --git a/hurd/rump.mdwn b/hurd/rump.mdwn
> new file mode 100644
> index 00000000..6e4a00db
> --- /dev/null
> +++ b/hurd/rump.mdwn
> @@ -0,0 +1,46 @@
> +[[!meta copyright="Copyright © 2009, 2010, 2011 Free Software Foundation,
> +Inc."]]
> +
> +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
> +id="license" text="Permission is granted to copy, distribute and/or modify 
> this
> +document under the terms of the GNU Free Documentation License, Version 1.2 
> or
> +any later version published by the Free Software Foundation; with no 
> Invariant
> +Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the 
> license
> +is included in the section entitled [[GNU Free Documentation
> +License|/fdl]]."]]"""]]
> +
> +[[!tag stable_URL]]
> +
> +  * [[community/gsoc/project ideas/driver glue code]]
> +
> +  * [[open issues/user-space device drivers]]
> +
> +  * [[open issues/device drivers and io systems]]
> +
> +---
> +
> +The rump kernels provide existing real world drivers from netbsd.
> +Since [[DDE]] no longer seems like a promising approach to get drivers
> +for the Hurd, it appears that rump kernels are the best alternative.
> +It already does the hard work of providing an environment where the
> +foreign drivers can run, and offers the additional benefit of being
> +externally maintained. Rump also offers the necessary facilities for
> +running all drivers in separate userspace processes, which is more
> +desirable than drivers running in the microkernel.
> +
> +A rump kernel is a minimal and portable NetBSD kernel running in
> +userspace. Rump kernels provide drivers for modern hard drives, sound
> +cards, usb support, and a TCP/IP stack.  Instead of re-inventing and
> +maintaining drivers ourselves, we can re-use the existing NetBSD
> +drivers.
> +
> +Hurd developers have enabled experimental support for modern hard
> +drives with a rump kernel.  We call it rumpdisk, and you can try it in
> +the [[Debian GNU/Hurd image|hurd/running/qemu]].
> +
> +As of May 2023, Hurd users are having good success with it in qemu
> +environments and some are using it on real hardware!
> +
> +We do hope to use rump kernels for usb support, sound support (this
> +was working at some point), and possibly a new TCP/IP stack, but work
> +has not completed on those projects.
> diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn
> index 24e7fdea..a8078061 100644
> --- a/hurd/running/qemu.mdwn
> +++ b/hurd/running/qemu.mdwn
> @@ -24,6 +24,58 @@ You can use the following images to give the Hurd a try.
>  
>  [[!inline pages=hurd/running/debian/qemu_image raw=yes feeds=no]]
>  
> +#### Trying out rumpdisk
> +
> +[[Rump kernels|hurd/rump]] provide new modern drivers for the Hurd.
> +We refer to rumpdisk as a rump kernel that provides drivers for modern
> +hard drives, SSDs, etc.  The Rump kernels' integration into the Hurd
> +are still somewhat experimental, but they seem to work fairly well on
> +bleeding edge Debian.
> +
> +Once you have your latest qemu Debian GNU/Hurd image running, then you
> +can try the rumpdisk (be sure to pass "-m 2GB" or more).  First,
> +upgrade to the bleeding edge Debian GNU/Hurd:
> +
> +Add these sources to your /etc/apt/sources.list
> +
> +    deb http://deb.debian.org/debian-ports unstable main
> +    deb-src http://deb.debian.org/debian unstable main
> +    deb http://deb.debian.org/debian-ports unreleased main
> +
> +Now update debian to the latest:
> +
> +     # apt-get update
> +     # apt-get dist-upgrade
> +
> +Now test to see if the rump kernel works before you make the change
> +permanent.  Manually tweak your /boot/grub/grub.cfg like so:
> +
> +    #        multiboot       /boot/gnumach-1.8-486.gz root=part:2:device:hd0 
> console=com0
> +     multiboot       /boot/gnumach-1.8-486.gz root=part:2:device:wd0 
> console=com0 noide
> +
> +and your /etc/fstab
> +
> +    #/dev/hd0s2      /               ext2    defaults        0       1
> +    /dev/wd0s2      /               ext2    defaults        0       1
> +    #/dev/hd0s1      none            swap    sw              0       0
> +    /dev/wd0s1      none            swap    sw              0       0
> +    #/dev/hd2        /media/cdrom0   iso9660 noauto          0       0
> +    /dev/wd2        /media/cdrom0   iso9660 noauto          0       0
> +
> +Now you can poweroff your machine, reboot, and start using the
> +rumpdisk!  You can make these changes permanent by tweaking
> +/etc/default/grub and telling it to use rumpdisk:
> +
> +     GRUB_CMDLINE_GNUMACH="noide"
> +
> +Then update your grub:
> +
> +     # update-grub
> +
> +Check that "noide" does appear in your /boot/grub/grub.cfg.  That is
> +the easiest way to make sure that you are using the rumpdisk.
> +
> +
>  ## Arch Hurd Live CD
>  
>  [[!inline pages=hurd/running/live_cd raw=yes feeds=no]]
> diff --git a/rump_kernel.mdwn b/rump_kernel.mdwn
> deleted file mode 100644
> index 7f7d7cc5..00000000
> --- a/rump_kernel.mdwn
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
> -
> -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
> -id="license" text="Permission is granted to copy, distribute and/or modify 
> this
> -document under the terms of the GNU Free Documentation License, Version 1.2 
> or
> -any later version published by the Free Software Foundation; with no 
> Invariant
> -Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the 
> license
> -is included in the section entitled [[GNU Free Documentation
> -License|/fdl]]."]]"""]]
> -
> -
> -# Discussion
> -
> -  The rump kernels provide existing real world drivers from netbsd.  Since 
> DDE no longer seems like a promising approach to get drivers for the Hurd, it 
> appears that rump kernels are the best alternative.  It already does the hard 
> work of providing an environment where the foreign drivers can run, and 
> offers the additional benefit of being externally maintained. Rump also 
> offers the necessary facilities for running all drivers in separate userspace 
> processes, which is more desirable than drivers running in the microkernel.
> -
> -
> -  * [[community/gsoc/project ideas/driver glue code]]
> -
> -  * [[open issues/user-space device drivers]]
> -
> -  * [[open issues/device drivers and io systems]]
> -
> ----
> -
> -# Documentation
> -
> -  * <http://www.fixup.fi/misc/usenix-login-2015/login_oct15_02_kantee.pdf>
> -  
> -    This is an an opinion paper that explains why operating systems need 
> compartmentalized kernel drivers.
> -
> -  * <https://github.com/rumpkernel/wiki/wiki/Tutorial:-Getting-started>
> -
> -    A tutorial introduction for those interested in using and deploying rump 
> kernels.
> -
> -  * <https://core.ac.uk/display/41816390>
> -
> -    "User space approach to audio device driving on UNIX-like systems" by 
> Robert Millan Hernandez.
> -
> -
> -# Source Code
> -
> -  * <https://github.com/rumpkernel>
> -- 
> 2.32.0
> 

-- 
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]