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: Joshua Branson
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 14:47:24 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu)

Samuel Thibault <samuel.thibault@gnu.org> writes:

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

Of course.  I didn't realize you had commited it.  Will do shortly.

> 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
>> 

-- 

Joshua Branson
Sent from the Hurd



reply via email to

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