summaryrefslogtreecommitdiff
path: root/community/gsoc/project_ideas/driver_glue_code.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'community/gsoc/project_ideas/driver_glue_code.mdwn')
-rw-r--r--community/gsoc/project_ideas/driver_glue_code.mdwn73
1 files changed, 0 insertions, 73 deletions
diff --git a/community/gsoc/project_ideas/driver_glue_code.mdwn b/community/gsoc/project_ideas/driver_glue_code.mdwn
deleted file mode 100644
index 8581c7cb..00000000
--- a/community/gsoc/project_ideas/driver_glue_code.mdwn
+++ /dev/null
@@ -1,73 +0,0 @@
-[[!meta copyright="Copyright © 2008, 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]]."]]"""]]
-
-[[!meta title="New Driver Framework"]]
-
-[[!tag stable_URL]]
-
-The Hurd presently uses hardware drivers
-implemented in the microkernel, [[GNU_Mach|microkernel/mach/gnumach]].
-These drivers are old Linux drivers (mostly from 2.0.x)
-accessed through a glue code layer.
-This is not an ideal solution, but works quite OK,
-except that the drivers are extremely old by now.
-Thus we need a new framework,
-so we can use drivers from current Linux versions instead,
-or perhaps from one of the free BSD variants.
-
-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]]:
-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
-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.
-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.
-
-Other types of drivers are missing so far.
-Support for IDE drivers has been partially implemented,
-but isn't fully working yet.
-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;
-or implement support for some other subsystem.
-<!-- should probably provide separate task descriptions for each... -->
-
-This is a doable, but pretty involved project.
-Previous experience with driver programming probably is a must.
-To be able to work on the framework,
-the student will also have to get a good understanding of certain aspects of Hurd,
-such as memory management for example.
-
-Possible mentors: Zheng Da, 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...)