path: root/community/gsoc/project_ideas/driver_glue_code.mdwn
diff options
authorThomas Schwinge <>2018-05-09 22:46:31 +0200
committerThomas Schwinge <>2018-05-09 22:46:31 +0200
commitdec7cfc3be51acb52bf6dbba4cd0c2be35786d0a (patch)
treea9e3ee41086dceff53369679ab2d7e23b3ac2843 /community/gsoc/project_ideas/driver_glue_code.mdwn
parent3581c9cf04f239b8fc6dc0bfa77a818416f70e7f (diff)
parent96dba7ef358153dd1a608ab45f52226d08d62e3c (diff)
Merge commit '96dba7ef358153dd1a608ab45f52226d08d62e3c'
As part of the merge, fix some typos, adjust copyright headers, and apply a few more minor changes.
Diffstat (limited to 'community/gsoc/project_ideas/driver_glue_code.mdwn')
1 files changed, 13 insertions, 23 deletions
diff --git a/community/gsoc/project_ideas/driver_glue_code.mdwn b/community/gsoc/project_ideas/driver_glue_code.mdwn
index 0f921590..1771756e 100644
--- a/community/gsoc/project_ideas/driver_glue_code.mdwn
+++ b/community/gsoc/project_ideas/driver_glue_code.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2016 Free Software
-Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2016, 2017, 2018 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
@@ -27,22 +27,24 @@ 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 [[DDE]]:
+The most promising approach for getting newer drivers seems to be the [[Rump_Kernel]]:
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.
-DDE also offers the necessary facilities
+Rump also offers the necessary facilities
for running all drivers in separate userspace processes,
which is more desirable than drivers running in the microkernel.
-[[Zheng Da|zhengda]] has already done considerable work on this.
+Robert Millan worked on a port of the Rump kernel, which allowed to run a sound
+driver in userland. This work now needs to be extended.
+[[Zheng Da|zhengda]] has already done considerable work on a similar approach, using [[DDE]]
The basic framework for using DDE in the Hurd is present,
and network card drivers are already working very well.
However, this work isn't fully integrated in the Hurd yet.
The additional kernel interfaces that were created for this
-are still prototypes, and will need to be reworked.
-Also, there is no build system for automatically compiling
-all Linux network card drivers in one go.
+are still prototypes, and will need to be reworked. This environment can be
+reused and polished for Rump.
Other types of drivers are missing so far.
Support for IDE drivers has been partially implemented,
@@ -51,13 +53,10 @@ To fully replace the old in-kernel drivers,
further infrastructure will be necessary
to make userspace disk drivers usable for the root filesystem.
-Some other subsystems are missing or incomplete in DDE itself,
-and will require additional work that is not specific to the Hurd implementation.
The goal of this task is to fix at least one of the mentioned major shortcomings:
rework the kernel interfaces;
-provide a streamlined build system for the drivers;
-finish IDE support;
+polish the rumpkernel changes;
+componentize the rumpkernel elements for sound;
or implement support for some other subsystem.
<!-- should probably provide separate task descriptions for each... -->
@@ -69,13 +68,4 @@ such as memory management for example.
Possible mentors: Justus Winter (teythoon), Samuel Thibault (youpi)
-Exercise: Get one of the not yet integrated Linux network card drivers to work.
-(Note: This should be straightforward,
-once you have the framework properly built and set up...)
-# 2016-02-14, Justus Winter
-`s/dde/rump/g` of course.
+Exercise: Install and run the current rumpkernel library (librump0) and the corresponding mplayer, get it to run.