bug-hurd
[Top][All Lists]
Advanced

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

[PATCH] Updated the information about the rump kernels, and included a g


From: address@hidden
Subject: [PATCH] Updated the information about the rump kernels, and included a guide on how to use them on the Debian qemu image.
Date: Wed, 24 May 2023 14:43:04 -0400

* 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                        | 43 +++++++++++++++++
 rump_kernel.mdwn                              | 42 -----------------
 5 files changed, 92 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..0fe85875 100644
--- a/hurd/running/qemu.mdwn
+++ b/hurd/running/qemu.mdwn
@@ -24,6 +24,49 @@ 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:
+
+     # apt-get update
+     # apt-get dist-upgrade
+
+New 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.
+
+
 ## 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




reply via email to

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