summaryrefslogtreecommitdiff
path: root/user/zhengda.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'user/zhengda.mdwn')
-rw-r--r--user/zhengda.mdwn43
1 files changed, 29 insertions, 14 deletions
diff --git a/user/zhengda.mdwn b/user/zhengda.mdwn
index e15aade1..dd8e6bac 100644
--- a/user/zhengda.mdwn
+++ b/user/zhengda.mdwn
@@ -2,14 +2,40 @@
Email: zhengda1936 at gmail dot com
-Project: Network virtualization for subhurds etc.
+---
+
+#Project: Porting DDE to Hurd.
+
+##The goal:
+porting DDE developed by DROPS to the Hurd, and it will still run in the user space.
+
+##Introduction
+The introduction of DDE/DDEKit can be found in [here](http://wiki.tudos.org/DDE/DDEKit) and more information can be found [here](http://os.inf.tu-dresden.de/pipermail/l4-hackers/2009/004291.html). DDE/DDEKit is a library, and it should be compiled with the code of Linux or FreeBSD drivers. DDE Linux26 is still under development and it can now support network and block devices (but doesn't support SCSI).
+
+## My work
+I separate DDE Linux26 to 2 parts: libddekit and libdde_linux26. I also provide a library called libmachdev on the top of the Linux code to provide the Mach device interface, so it is easy for the user to compile a Linux driver and run it in the Hurd. The latest code can be found in the dde branch of the incubator repository.
-The [code](http://www.assembla.com/spaces/VNetHurd/trac_subversion_tool).
+The current status: the pcnet32 driver can work very well in DDE Linux26 now. I hope someone can try other NIC drivers. Please run DDE with GNUMach in the [master-user_level_drivers](http://git.savannah.gnu.org/cgit/hurd/gnumach.git/) branch.
-The [[howto]] shows the instructions of setting up the virtual network in hurd and subhurd.
+There is a minor problem when we compile a Linux driver. Linux drivers use jiffies to measure time. Unfortunately, Mach doesn't provide it, so whenever we need it, we need to calculate it by ourselves. I decide to provide a macro to calculate it for the sake of performance and the cost is that the source code of Linux drivers has to include ddekit/timer.h.
+
+## Build and run DDE drivers
+
+To build a Linux driver with DDE Linux, the easiest way is to use dde_pcnet32 (also in the dde branch) as a template. The directory of dde_pcnet32 has Makefile, Makeconf.local, default.ld, pcnet32.c and main.c. If we need to build a new driver file, we only need to replace pcnet32.c with the new file and change Makefile accordingly.
+
+To run a DDE NIC driver:
+
+settrans -acfg pcnet32 hurd/dde_pcnet32/dde_pcnet32
+settrans -acfg /dev/eth0 hurd/devnode/devnode eth0 -M pcnet32
+settrans -acfg /servers/socket/2 hurd/pfinet/pfinet -i /dev/eth0 -a 172.16.172.10 -g 172.16.172.2 -m 255.255.255.0
---
+#Project: Network virtualization for subhurds etc.
+
+The [code](http://www.assembla.com/spaces/VNetHurd/trac_subversion_tool). The [[howto]] shows the instructions of setting up the virtual network in hurd and subhurd.
+
+
## The design and the implementation
### The requirements:
@@ -45,17 +71,11 @@ A filter translator is needed to enforce the policies between the interface and
* BPF is also ported to the filter translator. There are two filers in the translator, one for outgoing packets, the other for incoming packets.
* Only one pfinet can connect to the translator at a time.
-
----
-
## TODO
### Coding
- - make subhurds running without root privileges
- merge BPF rules from the filter translator and the multiplexer
----
-
## Completed tasks
### Coding
@@ -92,11 +112,6 @@ the devnode translator:
- Create a device file to help open the network device.
-
-### The Code Read
-
-- boot
-
### Documentation Read