diff options
29 files changed, 359 insertions, 334 deletions
diff --git a/community.mdwn b/community.mdwn index 73812494..5d58ae5a 100644 --- a/community.mdwn +++ b/community.mdwn @@ -22,8 +22,6 @@ Further ways of getting in contact or getting information: [[GSoC]] -- Participation in the Google Summer of Code -[[Hurd/WhoRunsGNU]] - [[Hurd/HurdDevelopers]] -- Who's who? [Hurd User's Guide](http://www.gnu.org/software/hurd/users-guide/using_gnuhurd.html). diff --git a/community/gsoc.mdwn b/community/gsoc.mdwn index 0986f528..ed1f7a52 100644 --- a/community/gsoc.mdwn +++ b/community/gsoc.mdwn @@ -23,8 +23,8 @@ always open to introducing newcomers to the world of the GNU Hurd outside of any Google Summer of whatever project. Just pick a task from the list pointed to below on this page and get in touch with us! -Application for GSoC projects is possible [on Google's -site](http://code.google.com/soc/) until April 3rd. +The GSoC 2009 student application time has come to an end -- we are now +evaluating your applications. # History diff --git a/community/gsoc/project_ideas/maxpath.mdwn b/community/gsoc/project_ideas/maxpath.mdwn index 992b91ee..d78297d5 100644 --- a/community/gsoc/project_ideas/maxpath.mdwn +++ b/community/gsoc/project_ideas/maxpath.mdwn @@ -33,7 +33,7 @@ by `char *foo`, and using dynamic memory allocation, i.e. e.g. a loop that tries geometrically growing sizes. Sometimes this is tricky, but more often not very hard. Sometimes it is even trivial because the GNU system has proper replacements. See the corresponding section of the -[[Porting_issues_page|unsorted/PortingIssues]] for more details. With a bit of +[[porting_guidelines_page|hurd/porting/guidelines]] for more details. With a bit of practice, it should be easily possible to fix several programs per day. The goal of this project is to fix the PATH_MAX and related problems in a diff --git a/community/gsoc/project_ideas/unionmount.mdwn b/community/gsoc/project_ideas/unionmount.mdwn new file mode 100644 index 00000000..89b53123 --- /dev/null +++ b/community/gsoc/project_ideas/unionmount.mdwn @@ -0,0 +1,60 @@ +[[meta copyright="Copyright © 2009 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="Union Mounts"]] + +When setting a translator on Hurd -- similar to mounting a file system on UNIX +-- the new node(s) exported by the translator are obscuring the original node +where the translator is set, and any nodes below it in the directory tree. The +translator itself can access the underlying node (which is a very nice feature, +as it allows translators presenting the contents of the node in a different +format); but it's no longer accessible from the "outside". + +Plan9 has a feature where a file system can be mounted in union mode: the new +file system doesn't obscure the mount point in this case, but instead the +contents are combined. (This feature has also been under discussion in Linux +for a couple of years now, under the label "VFS-based union mounts".) + +This kind of union mounts is generally useful, as it's sometimes more +convenient than unioning existing filesystem locations with unionfs -- it's not +necessary to mount a file system that is to be unioned at some external +location first: just union-mount it directly at the target location. + +But union mounts also allow creating passive translator hierarchies: If there +is a passive translator on a parent node, and further passive translators on +child nodes, the union mount allows the child nodes with the further translator +settings still to be visible after the parent translator has started. + +This could be useful for device nodes for example: let's say we have an +ethernet multiplexer at /dev/veth. Now the virtual subnodes could all be +directly under /dev, i.e. /dev/veth0, /dev/veth1 etc., and explicitely refer to +the main /dev/veth node in the translator command line. It would be more +elegant however to store the virtual nodes direcly below the main multiplexer +node -- /dev/veth/0, /dev/veth/1 etc. + +There are two possible approaches how union mounts could be implemented in the +Hurd. The first one is to let the various translators handle union mounts +internally, i.e. let them present the underlying nodes to the clients in +addition to the actual nodes they export themselfs. This probably can be +implemented as some kind of extension to the existing netfs and diskfs +libraries. + +The other possible apporach is less efficient and probably more tricky, but +probably also more generic: create a special unionmount translator, which +serves as a kind of proxy: setting the union-mounted translator on some +internal node; and at the actual mount location, presenting a union of the +nodes exported by this translator, and the nodes from the underlying file +system. + +The goal of this project is implementing union mounts using either of the +approaches described above. (Though it might be useful initially to prototype +both for comparision.) The ethernet multiplexer shall serve as an example use +case -- any changes necessary to allow using it with the union mount +functionality are also to be considered part of the task. diff --git a/community/meetings.mdwn b/community/meetings.mdwn index ca99393a..1b994e13 100644 --- a/community/meetings.mdwn +++ b/community/meetings.mdwn @@ -14,10 +14,10 @@ is included in the section entitled # Upcoming * [[Self-organised]] - * [[EuroSys_2009]] # Past + * [[EuroSys_2009]] * [[FOSDEM_2008]] * [[Weekend_at_stesie's|stesie_2007-10-12]] * [[FOSDEM_2007]] diff --git a/community/meetings/self-organised.mdwn b/community/meetings/self-organised.mdwn index ece96696..7a19960b 100644 --- a/community/meetings/self-organised.mdwn +++ b/community/meetings/self-organised.mdwn @@ -36,6 +36,9 @@ Please add any suggestions here, and add to your name above if that time is good This likely has the benefit of being relatively close to most people +<http://www.linuxhotel.de/community.html> might be a suitable venue at very +reasonable pricing. + ## Somewhere in Italy This likely has the benefit of better weather. ;-) @@ -92,6 +92,7 @@ in the *unstable* branch of the Debian archive. * [[libhello_example]] -- Hurd library example * [[libnetfs]] -- short introductory material * [[IO_Path]] +* [[Porting]] * [[Debugging]] * [Hurd Sourcecode Reference](http://www.htu.tugraz.at/~past/hurd/global/): Searchable and browsable index of the code. * [[Networking]] diff --git a/hurd/faq/old-stuff.mdwn b/hurd/faq/old-stuff.mdwn index 1bcc09a0..e4132d50 100644 --- a/hurd/faq/old-stuff.mdwn +++ b/hurd/faq/old-stuff.mdwn @@ -28,7 +28,7 @@ If you still have problems, do not hesitate to make use of the [[mailing_lists]] * These are different versions of the Mach microkernel that supports the Hurd that runs on top of it. For more info, see [[Mach]] * **_What software is available for GNU?_** - * Most packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in <http://packages.debian.org/>. Programs which need pthreads, including [GNOME](http://www.gnome.org), [KDE](http://www.kde.org), [Mozilla](http://www.mozilla.org), [OpenOffice](http://www.openoffice.org), [SDL](http://www.libsdl.org), etc. are being worked on currently using Neal Walfields libpthreads. See the [[Distrib/PortingIssues]] document for some common build problems and their solutions. + * Most packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in <http://packages.debian.org/>. Programs which need pthreads, including [GNOME](http://www.gnome.org), [KDE](http://www.kde.org), [Mozilla](http://www.mozilla.org), [OpenOffice](http://www.openoffice.org), [SDL](http://www.libsdl.org), etc. are being worked on currently using Neal Walfields libpthreads. See the [[porting/guidelines]] document for some common build problems and their solutions. * If you can't fetch a package with "apt-get install ", try building it from source: "apt-get source && cd <package\_dir> && debian/rules binary". * As of January 2007, 50% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome. diff --git a/hurd/hurd_hacking_guide.mdwn b/hurd/hurd_hacking_guide.mdwn index 2ef08f8a..6ee5b2f2 100644 --- a/hurd/hurd_hacking_guide.mdwn +++ b/hurd/hurd_hacking_guide.mdwn @@ -13,6 +13,8 @@ introduction to GNU Hurd and GNU Mach programming, an overview of some of the Hurd's features. It also contains a tutorial on writing your own [[translator]]. +Before using the code in the example (trivfs) please do read the Changelog. A lot of changes might have taken place. + * [HTML version](http://www.gnu.org/software/hurd/hacking-guide/hhg.html) for browsing online, * [PostScript version](http://www.gnu.org/software/hurd/hacking-guide/hhg.ps) diff --git a/hurd/porting.mdwn b/hurd/porting.mdwn new file mode 100644 index 00000000..d1900f0b --- /dev/null +++ b/hurd/porting.mdwn @@ -0,0 +1,14 @@ +[[meta copyright="Copyright © 2009 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]]."]]"""]] + + * [[Guidelines]] + * [[System_API_Limitations]] + + * Debian: [[running/debian/Porting]] diff --git a/unsorted/PortingIssues.mdwn b/hurd/porting/guidelines.mdwn index e26fa710..f9fac668 100644 --- a/unsorted/PortingIssues.mdwn +++ b/hurd/porting/guidelines.mdwn @@ -1,26 +1,27 @@ -## <a name="Table_of_Contents"> Table of Contents </a> +[[meta copyright="Copyright © 2002, 2003, 2005, 2007, 2008, 2009 Free Software +Foundation, Inc."]] -%TOC% +[[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]]."]]"""]] -## <a name="Overview"> Overview </a> +This is a compilation of common porting problems and their solutions. -This is a recompilation of common porting problems and their solutions. Information is gathered from the following sources: -* [Debian GNU/Hurd port guidelines](http://www.debian.org/ports/hurd/hurd-devel-debian) +Additionally to this page, also see the section *General Porting Issues* of +<http://www.debian.org/ports/hurd/hurd-devel-debian><!-- TODO: merge these two +pages. -->, as well as further Debian-specific [[running/debian/porting]] +information. -* [James Morrison's GNU/Hurd pages](http://hurd.dyndns.org/) +There is a separate page about [[System_API_Limitations]]. -as well as other misc. sources. +You may ask on the [[mailing_lists/bug-hurd]] mailing list for details or +questions about fixing bugs. -First of all, see [[BtsFiling]] if you need instructions on manipulating [Debian](http://www.debian.org/) source packages and submitting patches to their [Bug Tracking System](http://bugs.debian.org/). - -## <a name="System_API_limitations"> </a> System API limitations - -Sometimes building or running a program will fail due to bugs in the system API implementation (in Glibc and the Hurd). Make sure you check this list and know them before porting, otherwise you'll end up debugging something just to find out its an already known bug. - -We maintain a separate Wiki page for information on these bugs, see [[Distrib/SystemAPILimits]] - -If you think you can fix any of them and send a patch to the debian BTS, that'd be much appreciated. You may ask in <bug-hurd@gnuNOSPAM.org> for details or questions on the bug. ## <a name="Undefined_bits_confname_h_tt_mac"> Undefined `bits/confname.h` macros (`PIPE_BUF`, ...) </a> @@ -234,37 +235,3 @@ Not implemented, not POSIX. Try to disable the feature in the package. ## <a name="broken_libc6_dependency"> broken libc6 dependency </a> Some packages use an erroneous dependency on `libc6-dev`. This is incorrect because `libc6` is specific to GNU/Linux. The corresponding package for GNU is `libc0.3-dev` but other OSes will have different ones. You can locate the problem in the `debian/control` file of the source tree. Typical solutions include detecting the OS using `dpkg-architecture` and hardcoding the soname, or better, use a logical OR. eg: `libc6-dev | libc0.3-dev | libc-dev`. The `libc-dev` is a virtual package that works for any soname but you have to put it only as the last option. - ----- - -## <a name="ChangeLog"> ChangeLog </a> - --- [[Main/TWikiGuest]] - 13 Jan 2005 - -Fix xgethostname example. - Neal - --- [[Main/RobertMillan]] - 22 Jul 2002 - -Formatting and minor grammatical fixes. - --- [[Main/JoachimNilsson]] - 09 Sep 2002 - -Added more examples and misc semantical fixes. - --- [[Main/RobertMillan]] - 05 Oct 2002 - -Added `xgethostname` example. - --- [[Main/RobertMillan]] - 15 Nov 2002 - -Added broken libc6 dependency - --- [[Main/RobertMillan]] - 21 Nov 2002 - -Text formatting. - --- Ognyan Kulev - 12 Mar 2003 - -Added `ioctl` entry. - --- [[Main/RobertMillan]] - 19 Mar 2003 diff --git a/unsorted/SystemAPILimits.mdwn b/hurd/porting/system_api_limitations.mdwn index 8930ef9c..83a54654 100644 --- a/unsorted/SystemAPILimits.mdwn +++ b/hurd/porting/system_api_limitations.mdwn @@ -1,17 +1,22 @@ -## <a name="API_Limitations_of_the_GNU_syste"> </a> API Limitations of the GNU system - ----- - -Sometimes building or running a program will fail due to bugs in the system API implementation (in Glibc and the Hurd). Make sure you check this list and know them before porting, otherwise you'll end up debugging something just to find out its an already known bug. - -Taken from the bug lists in debian BTS. If you find more of them (and it is clear in the bug log that it is a bug), please add them to the list below. See: - -* <http://bugs.debian.org/hurd> ([source](http://packages.qa.debian.org/h/hurd.html) and [binary](http://packages.debian.org/hurd) debs not synchronized) -* <http://bugs.debian.org/hurd-dev> ([binary](http://packages.debian.org/hurd-dev)) -* <http://bugs.debian.org/libc0.3> ([source](http://packages.qa.debian.org/g/glibc.html) & [binary](http://packages.debian.org/libc0.3) debs) -* <http://bugs.debian.org/libc0.3-dev> ([binary](http://packages.debian.org/libc0.3-dev)) - ----- +[[meta copyright="Copyright © 2003, 2004, 2005, 2009 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]]."]]"""]] + +Sometimes building or running a program will fail due to bugs in the system API +implementation (in [[glibc]] and the [[Hurd]]). Make sure you check this list +and know them before porting, otherwise you'll end up debugging something just +to find out its an already known bug. + +Taken from the bug lists in [[running/Debian]] BTS. If you find more of them +(and it is clear in the bug log that it is a bug), please add them to the list +below. These are the known system API limits that have porting implications. @@ -24,7 +29,3 @@ These are the known system API limits that have porting implications. **_[\#187391](http://bugs.debian.org/187391): libc0.3-dev: `sockaddr_un.sun_path` can't be assigned a `const char *` when compiling with g++_**<br />**breaks:** fam, gail<br />**status:** maybe this should be in [[PortingIssues]] (see _long_ bug log) **_[\#190367](http://bugs.debian.org/190367): libc0.3-dev: `fcntl` `F_GETLK` not implemented (`ENOSYS`)_**<br />**breaks:** gnome-session (and others) from running<br />**error:** misc lock-related errors - --- [[Main/RobertMillan]] - 01 May 2003 - -Text formatting.<br /> -- [[Main/OgnyanKulev]] - 02 May 2003 diff --git a/hurd/running/debian/BtsFiling.mdwn b/hurd/running/debian/BtsFiling.mdwn deleted file mode 100644 index 90f451a8..00000000 --- a/hurd/running/debian/BtsFiling.mdwn +++ /dev/null @@ -1,52 +0,0 @@ -When you encounter any GNU/Hurd related bugs in a Debian package you can fix, please use the Debian BTS (Bug Tracking System) to report them. - -Managing Debian packages and using the BTS is quite simple. If you're new to Debian, here's a short guide: - -* first of all, check [http://bugs.debian.org/<package>](http://bugs.debian.org) to ensure the problem is not in the BTS already. This is possible for packages and bug numbers. [[TWiki/InterWikis]] is a shorthand way of linking to bugs and packages from this site. i.e. [[DebianBug]]:hurd [[DebianPackage]]:oskit -* you can fetch package sources with: - - apt-get source <package> - -note: this should unpack already - -* and unpack with: - - dpkg-source -x <package>x-y_z.dsc - -* then get all dependencies: - - apt-get -y build-dep <package> - -note: if some dependencies are missing, it most probably means you have to port them first. follow this instructions recursively until done - - :) - -* Debian packages have a makefile in debian/rules, with (at least) the following targets: <dl> - <dt> build</dt> - <dd> Yup, to build </dd> - <dt> binary</dt> - <dd> Generates deb files in <code>../</code></dd> - <dt> clean</dt> - <dd> Full clean </dd> -</dl> - -* when you have a patch, send it to the BTS using the reportbug utility (or manually as explained in <http://bugs.debian.org/)>. The following parameters should be used: - - Severity: important (when the package is unbuildable or uninstallable, lower otherwise.) - Tags: sid, patch - -* be nice to the maintainers. most are friendly and cooperative, and a few could annoy you for months before applying. Be patient. - -Read <http://bugs.debian.org/> for extensive documentation on the BTS. - --- [[Main/RobertMillan]] - 10 Jun 2002 - ----- - -Wikification & small changes. - --- [[Main/JoachimNilsson]] - 24 Jun 2002 - -Updates with the new [[TWiki/InterWikis]] rules. - --- [[Main/GrantBow]] - 15 Jan 2003 diff --git a/hurd/running/debian/GnuDebianRelationship.mdwn b/hurd/running/debian/GnuDebianRelationship.mdwn index ede808c8..94fd6265 100644 --- a/hurd/running/debian/GnuDebianRelationship.mdwn +++ b/hurd/running/debian/GnuDebianRelationship.mdwn @@ -2,11 +2,11 @@ I have hesitated in starting this page due to the sensitive nature of this relat This is a work in progress. Please email me directly if you have comments or suggestions. -* Debian Advantages of Hurd [[Distrib/PortingIssues]] Efforts +* Debian Advantages of Hurd [[porting/guidelines]] Efforts * One of the first ports to non-Linux system along with \*BSD and win32. * Official GNU system distribution. -* Debian Disadvantages of Hurd [[Distrib/PortingIssues]] Efforts +* Debian Disadvantages of Hurd [porting/guidelines]] Efforts * Perceived zealous GNU and FSF promotion. * Hurd Port Advantages of Debian diff --git a/hurd/running/debian/porting.mdwn b/hurd/running/debian/porting.mdwn index eb46c4c3..3ad25e01 100644 --- a/hurd/running/debian/porting.mdwn +++ b/hurd/running/debian/porting.mdwn @@ -1,4 +1,5 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[meta copyright="Copyright © 2007, 2008, 2009 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 @@ -30,6 +31,8 @@ that need someone to work on them. When you have a patch to submit, please adhere to the [[patch_submission]] guidelines. +There is also further information available about [[hurd/porting]]. + [[inline pages="hurd/running/debian/porting/* and !*/discussion" show=0 diff --git a/hurd/running/distrib.mdwn b/hurd/running/distrib.mdwn index 935c0c2d..bbf0a380 100644 --- a/hurd/running/distrib.mdwn +++ b/hurd/running/distrib.mdwn @@ -68,7 +68,7 @@ about getting applications to work (if possible). </dl> <dl> - <dt>[[PortingIssues]] FAQ</dt> + <dt>[[porting/guidelines]] FAQ</dt> <dd> What does it take to move a piece of Debian packaged software to the GNU/Hurd port? </dd> </dl> @@ -79,7 +79,7 @@ about getting applications to work (if possible). <dl> <dt> Debain Infrastructure</dt> - <dd> Testing is critical in helping the development effort. Bugs (defect reports) can be filed against the Debian software package in which they are found. [[BtsFiling]] tells how to file a Debian bug report. [[DebianPackages]] has some information about how Debian splits the software into packages and some references. There is a buildd autobuilder compiling the Debian Sid archive software for the GNU/Hurd port. [[BuilddStatus]] includes information on the buildd &amp; turtle efforts. </dd> + <dd> Testing is critical in helping the development effort. Bugs (defect reports) can be filed against the Debian software package in which they are found. [[debian/patch_submission]] tells how to file a Debian bug report. [[DebianPackages]] has some information about how Debian splits the software into packages and some references. There is a buildd autobuilder compiling the Debian Sid archive software for the GNU/Hurd port. [[BuilddStatus]] includes information on the buildd &amp; turtle efforts. </dd> </dl> <dl> @@ -95,7 +95,7 @@ about getting applications to work (if possible). * GNU [Coding Standards](http://www.gnu.org/prep/standards.html) * [[TestSuites]] - Posix, Perl, results feedback, etc. * [[Documentation]] -* [[SystemAPILimits]] +* [[System_API_Limitations]] * [[CodeAnnouncements]] - Recent coding projects related to the Hurd <dl> diff --git a/hurd/running/gnu/universal_package_manager.mdwn b/hurd/running/gnu/universal_package_manager.mdwn index 440f1122..5a160409 100644 --- a/hurd/running/gnu/universal_package_manager.mdwn +++ b/hurd/running/gnu/universal_package_manager.mdwn @@ -151,3 +151,4 @@ To join the project just list your name below. 5. Nidhin Raghavan 6. Ajish.B 7. Ambili.B + 8. Abhradip Mukherjee diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn index f13ef5c8..d5f27311 100644 --- a/hurd/running/qemu.mdwn +++ b/hurd/running/qemu.mdwn @@ -15,7 +15,7 @@ volunteers and may not have been tested extensively. * [Disk image](http://draketo.de/dateien/hurd/bab-hurd-qemu-2008-10-29.img.tar.bz2) with a short intro on translators. Just start it with 'qemu *disk_image.img*'. - It should work without any of the configuration below. -[[community/weblogs/ArneBab]] + It should work without any of the configuration below. when you use it, please [tell me your experience with it](http://draketo.de/contact)! - [[community/weblogs/ArneBab]] <!--* [Announcement](http://lists.debian.org/debian-hurd/2007/09/msg00000.html) of another image. - The link in the email doesn't work anymore, too old. //--> @@ -78,6 +78,9 @@ The Hurd [[`fatfs`_translator|translator/fatfs]] currently is read-only, but for testing executables (etc.) that is enough. And it is much easier than loop-mounting the file systems images. (Also you don't need `root' rights.) +However, note that there is a bug in [[translator/fatfs]]: [[GNU_Savannah_bug +25961]]. + # Networking in QEMU diff --git a/hurd/translator/fatfs.mdwn b/hurd/translator/fatfs.mdwn index b534b97e..fd537896 100644 --- a/hurd/translator/fatfs.mdwn +++ b/hurd/translator/fatfs.mdwn @@ -1,4 +1,5 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[meta copyright="Copyright © 2007, 2008, 2009 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 @@ -8,4 +9,5 @@ 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]]."]]"""]] -The current `fatfs` translator is read-only. +The current `fatfs` translator is read-only, and it has a severe bug: +[[GNU_Savannah_bug 25961]]. @@ -1,5 +1,5 @@ -[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -Free Software Foundation, Inc."]] +[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +2009 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 @@ -76,8 +76,7 @@ Find more information about it at the There are [[various_possibilities|hurd/running]] of running a GNU/Hurd system. And these web pages are a living proof of the usability of the Hurd, as they -are rendered on a Debian GNU/Hurd system. More people using GNU Hurd in -production can be found on [[Hurd/WhoRunsGNU]]. +are rendered on a Debian GNU/Hurd system. ## Current Status diff --git a/microkernel/mach/gnumach/ports/xen.mdwn b/microkernel/mach/gnumach/ports/xen.mdwn index b3d8a3e4..b9e2fac7 100644 --- a/microkernel/mach/gnumach/ports/xen.mdwn +++ b/microkernel/mach/gnumach/ports/xen.mdwn @@ -1,4 +1,5 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[meta copyright="Copyright © 2007, 2008, 2009 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 @@ -16,7 +17,7 @@ is included in the section entitled You can either get binaries at <http://youpibouh.thefreecat.org/hurd-xen/> or build them yourself. -- Copy `gnumach-xen-pae` and `hurd-modules` to your dom0 /boot. If you still have a non-PAE hypervisor, use gnumach-xen-nonpae instead. +- Copy `gnumach-xen-pae` and `hurd-modules` to your dom0 /boot. If you still have a non-PAE hypervisor, use `gnumach-xen-nonpae` instead. - Copy `hurd` into `/etc/xen`, edit it for fixing access to your hurd / and swap ## GNU/Hurd system diff --git a/microkernel/viengoos/building.mdwn b/microkernel/viengoos/building.mdwn index 000a582c..d70ea47d 100644 --- a/microkernel/viengoos/building.mdwn +++ b/microkernel/viengoos/building.mdwn @@ -1,4 +1,4 @@ -[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] +[[meta copyright="Copyright © 2008, 2009 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 @@ -8,97 +8,93 @@ 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]]."]]"""]] -## Viengoos build +Check out Viengoos and switch to the viengoos-on-bare-metal branch +(all development is currently done on this branch and it will +eventually be merged into the master branch): -####Checkout viengoos-master: + $ git clone git://git.savannah.gnu.org/hurd/viengoos.git + $ cd viengoos + $ git checkout -b viengoos-on-bare-metal origin/viengoos-on-bare-metal - git clone git://git.savannah.gnu.org/hurd/viengoos.git +Generate the autoconf environment (note that --force is not specified +as we have our own version of config.guess and config.sub): -Configure: + $ autoreconf -i - autoreconf -i - mkdir test build +Configure a build directory: -Make check on test (fails to complete as on July 7, 2008): + $ mkdir build + $ cd build + $ ../configure --host=x86_64-pc-viengoos-gnu --with-newlib - cd test - ../configure --enable-l4-abi=x2 --host=i686-pc-viengoos-gnu --enable-tests - make check +Now, build Viengoos. Running make the first time will automatically +fetch binutils and gcc from the Internet and build a cross compiler. +Running make again will build the Viengoos proper. Again, the build +process with fetch several tarballs including Newlib, the Boehm GC and +Sqlite. -Build the compiler: + $ make + ... + The cross compiler is now set-up. Re-run `make' and proceed as usual. + make[2]: Leaving directory `.../viengoos/build' + make[1]: Leaving directory `.../viengoos/build' + $ make - cd ../build - ../configure --enable-l4-abi=x2 --host=i686-pc-viengoos-gnu --with-newlib +# Booting Using QEMU -Build cross-compiler: +To boot Viengoos, use Grub 2. You cannot use Grub Legacy: Viengoos is +an ELF64 executable, which Grub Legacy does not support. - make +First, check out Grub 2 from svn: -Build Viengoos proper: + $ svn co svn://svn.savannah.gnu.org/grub/trunk/grub2 + $ cd grub2 - make +Before building Grub 2, you should apply the following patch, which +makes it easy to tell Grub to load a specific grub.cfg at start up +([details](http://lists.gnu.org/archive/html/grub-devel/2009-01/msg00099.html)). -Install the built executables: + $ wget http://www.gnu.org/software/hurd/microkernel/viengoos/grub2-config.diff -O /dev/stdout | patch -p0 - cd .. - mkdir install - install -s build/laden/laden install - install -s build/viengoos/viengoos install - install -s build/hieronymus/hieronymus install +Next, build Grub 2: -## BUILD L4 + $ ./autogen.sh + $ mkdir build + $ cd build + $ ../configure --prefix=`pwd`/../install + $ make && make install -Get Pistachio using hg: +Create the boot disk: - hg clone http://hg.l4ka.org/l4ka-pistachio + $ cd ../install + $ bin/grub-mkrescue boot.img --configfile=grub.cfg --image-type=floppy --modules='help reboot serial multiboot pc configfile normal boot fat' -Build: +Now, create /viengoos and link viengoos and hieronymus into that +directory: - cd kernel + $ mkdir /viengoos + $ cd /viengoos + $ ln -s ~/viengoos/build/viengoos/viengoos.stripped viengoos + $ ln -s ~/viengoos/build/hieronymus/hieronymus.stripped hieronymus - make BUILDDIR=/absolute/path/to/build - cd build +Also, create a grub.cfg file in /viengoos/grub.cfg: -Check Makeconf.local: + set timeout=1 + set default=0 + set root=hd0,1 + + menuentry "Viengoos" { + multiboot /viengoos -D 3 -o serial + module /hieronymus + } - make menuconfig - Kernel->Enable experimental features->Pager ExchangeRegisters - - make +NB: If you edit grub.cfg and a backup file called grub.cfg~ is +created, qemu will use grub.cfg~ instead of grub.cfg! Thus, after +editing grub.cfg, be sure to delete any grub.cfg~ file! -## Build sigma0 +Finally, boot! - cd user + $ qemu-system-x86_64 -serial stdio -fda ~/grub2/install/boot.img -hda fat:/viengoos -boot a - autoheader - autoconf - ./configure - make - -## Test! - -Install all executables to /usr/local/hurd. Create a menu.lst - - title The GNU Hurd on L4 - root (hd0,0) - kernel /laden -D - module /x86-kernel - module /sigma0 - module /viengoos -D 3 -o serial - module /hieronymus -D 3 - -Get specific grub version: - - wget ftp://alpha.gnu.org/gnu/grub/grub-0.97-i386-pc.ext2fs - -Use the following to boot: - - qemu -serial stdio -hdb fat:/usr/local/hurd -fda grub-0.97-i386-pc.ext2fs -boot a - -At grub prompt: - - grub> root (hd0,0) - - grub> configfile /menu.lst - -It will boot to a kernel debugger prompt. +By default, Hieronymus is configured to load ruth, a test suite. Ruth +can take a long time to complete. diff --git a/microkernel/viengoos/grub2-config.diff b/microkernel/viengoos/grub2-config.diff new file mode 100644 index 00000000..e4b1ef40 --- /dev/null +++ b/microkernel/viengoos/grub2-config.diff @@ -0,0 +1,47 @@ +2009-01-17 Neal H. Walfield <address@hidden> + + * util/i386/pc/grub-mkrescue.in: Add new option --configfile. If + not the set and not the empty string, load it from the generated + config file on boot. + +Index: util/i386/pc/grub-mkrescue.in +=================================================================== +--- util/i386/pc/grub-mkrescue.in (revision 2148) ++++ util/i386/pc/grub-mkrescue.in (working copy) +@@ -49,6 +49,7 @@ + --image-type=TYPE select floppy or cdrom (default) + --emulation=TYPE select El Torito boot emulation type floppy + or none (default) (cdrom only) ++ --configfile=FILE config file to load (default: none) + + grub-mkimage generates a bootable rescue image of the specified type. + +@@ -93,6 +94,9 @@ + echo "Unknown emulation type \`$emulation'" 1>&2 + exit 1 ;; + esac ;; ++ --configfile=*) ++ configfile=`echo "$option" | sed 's/--configfile=//'` ++ ;; + -*) + echo "Unrecognized option \`$option'" 1>&2 + usage +@@ -121,9 +125,15 @@ + ${aux_dir}/boot/grub/ + + modules="biosdisk `cat ${input_dir}/partmap.lst` ${modules}" +-for i in ${modules} ; do +- echo "insmod $i" +-done > ${aux_dir}/boot/grub/grub.cfg ++{ ++ for i in ${modules} ; do ++ echo "insmod $i" ++ done ++ if test x$configfile != x ++ then ++ echo "configfile $configfile" ++ fi ++} > ${aux_dir}/boot/grub/grub.cfg + + for d in ${overlay}; do + echo "Overlaying $d" diff --git a/public_hurd_boxen.mdwn b/public_hurd_boxen.mdwn index bc902384..b4ea6169 100644 --- a/public_hurd_boxen.mdwn +++ b/public_hurd_boxen.mdwn @@ -1,4 +1,4 @@ -[[meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation, +[[meta copyright="Copyright © 2006, 2007, 2008, 2009 Free Software Foundation, Inc."]] [[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable @@ -13,11 +13,10 @@ Here are some Hurd boxes that users have made available to the public: [[table class="table_style_1" data=""" "Host Name","Operator","Access","Distro","Machine Specs","Comments" -"flubber.bddebian.com","[[Barry_de_Freese|bddebian]]","ssh; port 2250","Debian","PII 550 MHz; 384 MiB","used for the wiki, and a bit short on disk space, so please don't use for general work" +"flubber.bddebian.com","[[Barry_de_Freese|bddebian]]","ssh; port 2250","Debian","Celeron; 2.2 GHz; 333 MiB","domU on zenhost" "clubber.bddebian.com","[[Barry_de_Freese|bddebian]]","ssh; port 2251","Debian","PIII 1 GHz; 384 MiB" "gnubber.bddebian.com","[[Barry_de_Freese|bddebian]]","ssh; port 2254","Debian","PII 733 MHz; 384 MiB" "goober.bddebian.com","[[Barry_de_Freese|bddebian]]","ssh; port 2255","Debian","?" -"hurd.nipl.net","[[AlastairPoole]]","ssh; port 24","GNU","AMD Sempron 2800 MHz","not sure if this machine is still alive" """]] To request an account on the `*.bddebian.com` machines either contact @@ -25,20 +24,6 @@ To request an account on the `*.bddebian.com` machines either contact or send email to <hurd-shell-account@gnu.org>. Also use these contact addresses for requesting support with respect to software installations, etc. -For the `hurd.nipl.net` host, please see <http://www.nipl.net/>. - -For a list of people using the Hurd in production systems, please see -[[Hurd/WhoRunsGNU]]. - ---- - -/!\ SSH access to the machines is very instable at the moment. This is -probably due to problems with the [[hurd/translator/pfinet]] server. - - * <http://lists.gnu.org/archive/html/bug-hurd/2008-07/msg00052.html> - ---- - To be able to use just `ssh [machine]`, you should append your public SSH key to `~/.ssh/authorized_keys` on the remote machine. diff --git a/rules/savannah_group.mdwn b/rules/savannah_group.mdwn index 14139719..ab84e75d 100644 --- a/rules/savannah_group.mdwn +++ b/rules/savannah_group.mdwn @@ -22,3 +22,18 @@ for sending your contributions, for asking questions, and so on. Have a look at the page for [[contributing]]. Also be sure to have a look at the [[contributing/questionnaire]]. + +## List of members + +The list of members can be seen at +<http://savannah.gnu.org/project/memberlist.php?group=hurd>. + +<a name="copyright_assignment"> +## Copyright assignment +</a> + +If you have pieces of code or documentation to contribute, then, in order to +install them into our [[source_repositories]], you have to assign the copyright +of your changes to the [Free Software Foundation](http://www.fsf.org/). + +Please [[contact_us]] to request the needed forms. diff --git a/rules/source_repositories.mdwn b/rules/source_repositories.mdwn index 2ecc6fe6..ed09b8c6 100644 --- a/rules/source_repositories.mdwn +++ b/rules/source_repositories.mdwn @@ -1,4 +1,5 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[meta copyright="Copyright © 2007, 2008, 2009 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 @@ -8,54 +9,67 @@ 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]]."]]"""]] -CVS repositories on Savannah, see <http://savannah.gnu.org/cvs/?group=hurd>. +Git repositories on Savannah, see <http://git.savannah.gnu.org/cgit/> (search +for *hurd*). # Branches -Members of the Hurd Savannah group, -<http://savannah.gnu.org/project/memberlist.php?group=hurd>, are allowed to -create branches without formal permission... +Members of the [[Hurd_Savannah_group|savannah_group]] are allowed to create +branches without formal permission: -* named *SAVANNAH_LOGIN-WHATEVER-branch* for general-purpose branches, or + * named `BASE_BRANCH-SAVANNAH_LOGIN[-TOPIC]` for private general-purpose or + topic branches, respectively, or + * named `BASE_BRANCH-TOPIC` for public topic branches basing on + `BASE_BRANCH`. -* named *BASE_BRANCH-WHATEVER-branch* for topic-branches basing on - *BASE_BRANCH*. +`TOPIC` shall be a suitable tag describing the branch's main concern. These +tags can be applied recursively (`TOPIC-SUBTOPIC-SUBSUBTOPIC`). -*WHATEVER* shall be a suitable tag. +*private* vs. *public* does, of course, in this scenario not mean visibility, +but instead authority: *private* branches are those that the user +`SAVANNAH_LOGIN` has authority over, whereas public branches are open for +every committer to install changes on. The private branches are those that +you would typically host on your own machine and publish through your own web +server, but we offer that you can instead do this from the centralized Savannah +repository, as a number of people don't have an always-accessible web server +running on their own machines. Examples: -* GNU Mach + * GNU Mach - * *gnumach-1-branch-Xen-branch* - * *gnumach-1-branch-gdb-branch* + * `master` -- the mainline branch + * `master-oskit` -- port to OSKit; branched off of `master` at some point + * `master-gdb_stubs` -- add support for GDB stubs; branched off of + `master` at some point -* GNU Hurd + * libpthread - * *miles-orphaned-changes* - * *hammy-libchannel-branch* - * *mmenal-soc2006-nfs-branch* + * `master` -- the mainline branch + * `master-viengoos` -- port to Viengoos; branched off of `master` at some + point + * `master-viengoos-on-bare-metal` -- port to Viengoos running on bare + metal; branched off of `master-viengoos` at some point -Also, create helper tags for merging mainline changes into your branches. - -Examples: - -* GNU Mach +## Merging - * *gnumach-1-branch-Xen-branch*: *gnumach-1-branch-Xen-branch-merge_helper* - * *gnumach-1-branch-gdb-branch*: *gnumach-1-branch-gdb-branch-merge_helper* +Merging between Git branches is trivial, at least as long as no conflicts +arise. -* GNU Hurd +Due to this, you are encouraged to freely make use of separate branches for +different working topics, as this really faciliates concentrating on one +specific working topic. - * *hammy-libchannel-branch*: *hammy-libchannel-branch-base* - * *mmenal-soc2006-nfs-branch*: *mmenal-soc2006-nfs-branch-base* +You are encouraged to regularely merge from the respective mainline branches +(`BASE_BRANCH`; should be `master` in most cases) into your working branches, +and ensure that your modifications are still fine in the context of new +mainline changes. -## Merging - -Merging between CVS branches is not trivial. Unless you really know what -you're doing, please talk to [[Thomas_Schwinge|tschwinge]] or -[[Samuel_Thibault|samuelthibault]], to avoid cluttering the repositories -unintendedly. +Merging from working branches into the mainline branches will usually be done +by one of the project administrators, unless negotiated otherwise. For this to +happen, the copyright of your changes has to be assigned to the Free Software +Foundation; read about the +[[copyright_assignment_process|savannah_group#copyright_assignment]]. # Tags @@ -63,38 +77,42 @@ Equivalent rules apply. # Behavior -## ... on your branches +Try to not introduce spurious, unneeded changes, e.g., whitespace changes. -Most branches are to be eventually be merged back into the mainline branch. To -faciliate (and also to help other contributors) we'd like you to write a short -summary log in a top-level (or wherever else appropriate) `ChangeLog.WHATEVER` -file. +Adhere to the coding conventions that are already used. These are usually the +[GNU Coding Standards](http://www.gnu.org/prep/standards/html_node/) for stuff +written by ourselves, including new files, of course. -Examples: +GNU Mach code is largely based on external code. Don't GNU-ify it, as this +would make merging external patches unnecessarily difficult. -* GNU Mach +## Behavior on branches - * *gnumach-1-branch-Xen-branch*: `ChangeLog.Xen` - * *gnumach-1-branch-gdb-branch-merge_helper*: `ChangeLog.gdb` +Usually, branches are to be eventually merged back into their respective +mainline branches. To faciliate (and also to help other contributors) we'd +like you to write a short summary log in a top-level (or wherever else +appropriate) `ChangeLog.TOPIC` file. -* GNU Hurd +Examples: - * *hammy-libchannel-branch-base*: `channelio/ChangeLog`, `libchannel/ChangeLog` - * *mmenal-soc2006-nfs-branch-base*: `nfs/ChangeLog` + * GNU Mach -This need not be a full-fledged [GNU-style *ChangeLog* + * `master-gdb_stubs`: `ChangeLog.gdb` + +This need not be a full-fledged [GNU-style `ChangeLog` file](http://www.gnu.org/prep/standards/html_node/Change-Logs.html). E.g., -don't waste time writing *ChangeLog* entries for debugging stuff that will be +don't waste time writing `ChangeLog` entries for debugging stuff that will be removed again before merging back into mainline. But please do write something. Short notes. -## ... in general +### Behavior on *private* branches -Try to not introduce spurious, unneeded changes, e.g., whitespace changes. +Even though you are said to be the owner of branches tagged with your +`SAVANNAH_LOGIN`, it is generally nevertheless good to not do history-rewriting +stuff and the like (`git rebase` and friends), as others may in turn be basing +their work on your private branches. -Adhere to the already-used coding conventions. These are usually the [GNU -Coding Standards](http://www.gnu.org/prep/standards/html_node/) for stuff -written by ourselves, including new files, of course. - -GNU Mach code is largely based on external code. Don't GNU-ify it, as this -would make merging external patches unnecessarily difficult. +We could establish a branch-tagging policy for branches that others should +expect their history possibly to be rewritten. This may be useful for branches +that are only meant for aggregating the changes of (several) development +branches, like `master-proposed_for_general_testing`. diff --git a/unsorted/SeenHurd.mdwn b/unsorted/SeenHurd.mdwn index be9e1aba..8e883d5f 100644 --- a/unsorted/SeenHurd.mdwn +++ b/unsorted/SeenHurd.mdwn @@ -12,9 +12,6 @@ <dt>[[IRC]]</dt> <dd> </dd> - <dt>[[WhoRunsGNU]]</dt> - <dd> - </dd> <dt>[[HurdDevelopers]]</dt> <dd> Who's who? </dd> <dt>[[PersonalHurdPages]]</dt> diff --git a/unsorted/WhoRunsGNU.mdwn b/unsorted/WhoRunsGNU.mdwn deleted file mode 100644 index ad1685b7..00000000 --- a/unsorted/WhoRunsGNU.mdwn +++ /dev/null @@ -1,31 +0,0 @@ -## <a name="Who_runs_GNU_"> </a> Who runs GNU in production? - -On an official [GNU Project](http://www.gnu.org/gnu/thegnuproject.html) page I found a quote, attributed to Rabbi Hillel: - -> If I am not for myself, who will be for me? -> -> <br /> -> -> If I am only for myself, what am I? -> -> <br /> -> -> If not now, when? - -There are many now using test installations of Debian GNU/Hurd for testing and development. This page is set aside to list those sites using full GNU systems (GNU/Hurd) for non-testing and non-development purposes. - -## <a name="I_run_GNU_"> </a> I run GNU! - -<dl> - <dt> Budi Rahardjo</dt> - <dd><a href="http://hurd.indocisc.com" target="_top">http://hurd.indocisc.com</a>, contact at <a href="mailto:budi@research.indociscNOSPAM.com">budi@research.indociscNOSPAM.com</a></dd> - <dt>[[Main/JamesAMorrison]]</dt> - <dd><a href="http://hurd.dyndns.org" target="_top">http://hurd.dyndns.org</a> - -seems to be offline -- [[Community/weblogs/ArneBab]] - 2008-09-02</dd> -</dl> - -### Testing and developer installations - -Installations for testing purposes are listed as [[public_hurd_boxen]]. - -These also contain the wiki server. diff --git a/user/zhengda/howto.mdwn b/user/zhengda/howto.mdwn index 3f0d0d13..ed13acc2 100644 --- a/user/zhengda/howto.mdwn +++ b/user/zhengda/howto.mdwn @@ -1,4 +1,4 @@ -[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] +[[meta copyright="Copyright © 2008, 2009 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 @@ -18,7 +18,7 @@ This document briefly introduces how to set up the virtual network and connect t Step 1: Get the Hurd and compile it. - cvs -z3 -d:ext:username@cvs.savannah.gnu.org:/sources/hurd co -r zhengda-soc2008-virt-branch + cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co -r zhengda-soc2008-virt-branch hurd Step 2: apply the [patch](http://www.assembla.com/spaces/VNetHurd/documents/b0eLzUxHmr3ymXab7jnrAJ/download/A%20patch%20of%20gnumach) on the GNU Mach. @@ -42,31 +42,26 @@ The network device file is used to help other translators open the device. Step 5: create the virtual network device with eth-multiplexer. -eth-multiplexer is responsible to create the virtual network device and dispatch the packet to the right clients that connect to the virtual device. It also connects the virtual network and the external network. +eth-multiplexer is responsible to create the virtual network device and dispatch the packet to the right clients that connect to the virtual device. It also connects the virtual network and the external network. Eth-multiplexer of the current version is a netfs translator and can create virtual devices and the device files dynamically, according to the request from the client. - # settrans -acfg /root/multiplexer /root/hurd/eth-multiplexer/eth-multiplexer -v 2 -i /dev/eth0 + # settrans -acfg /root/multiplexer /root/hurd/eth-multiplexer/eth-multiplexer -i /dev/eth0 -Step 6: create the network device files for the virtual network device with devnode. +Step 6: setup the filter translator eth-filter on the network device. This step is optional. - # settrans -acfg /dev/veth0 /root/hurd/devnode/devnode -d veth0 -M /root/multiplexer - # settrans -acfg /dev/veth1 /root/hurd/devnode/devnode -d veth1 -M /root/multiplexer +eth-filter is used by the user to force the traffic policy on the network device. -Step 7: setup the filter translator eth-filter on the network device. This step is optional. -eth-filter is used to set up the traffic policy on the network device. + # settrans -acfg /dev/fveth0 /root/hurd/eth-filter/eth-filter -i /root/multiplexer/veth0 -S 192.168.8.0/24 -R 192.168.8.0/24 + # settrans -acfg /dev/fveth1 /root/hurd/eth-filter/eth-filter -i /root/multiplexer/veth1 -S 192.168.8.0/24 -R 192.168.8.0/24 - # settrans -acfg /dev/fveth0 /root/hurd/eth-filter/eth-filter -i /dev/veth0 -S 192.168.8.0/24 -R 192.168.8.0/24 - # settrans -acfg /dev/fveth1 /root/hurd/eth-filter/eth-filter -i /dev/veth1 -S 192.168.8.0/24 -R 192.168.8.0/24 - -Step 8: setup the pfinet server on the virtual network device. +Step 7: setup the pfinet server on the virtual network device. # settrans -afgc /root/socket0/2 /root/hurd/pfinet/pfinet -i /dev/fveth0 -a 192.168.8.10 -g 192.168.8.1 -m 255.255.255.0 # settrans -afgc /root/socket1/2 /root/hurd/pfinet/pfinet -i /dev/fveth1 -a 192.168.8.11 -g 192.168.8.1 -m 255.255.255.0 - # settrans -afgc /root/socket2/2 /root/hurd/pfinet/pfinet -i /dev/fveth1 -a 192.168.8.12 -g 192.168.8.1 -m 255.255.255.0 #### 1.3 Run the command with the customized pfinet server. -Step 9: Set environment variables to use the customized pfinet server. +Step 8: Set environment variables to use the customized pfinet server. The environment variable of SOCK_SERV_DIR is used to override all socket servers and SOCK_SERV_%d to override a specific socket server. %d after SOCK_SERV_ is the domain of the protocol that the socket server supports. The environment variable SOCK_SERV_%d has the higher priority than SOCK_SERV_DIR. @@ -83,13 +78,13 @@ A SHELL script is provided to run all translators I mentioned automatically: htt ### 2. Connect the subhurd with the main hurd. -In the main hurd, we still need to do Step 1-9. +In the main hurd, we still need to do Step 1-8. We run subhurd, # /root/hurd/boot/boot -m eth0=/dev/fveth0 -m eth1=/dev/fveth1 servers.boot /dev/hd1s1 In the subhurd, we do Step 1, 4, 8. Step 4: # settrans -acfg /dev/veth0 /root/hurd/devnode/devnode -d veth0 -Step 8: # settrans -afgc /servers/socket/2 /root/hurd/pfinet/pfinet -i /dev/veth0 -a 192.168.8.20 -g 192.168.8.1 -m 255.255.255.0 +Step 7: # settrans -afgc /servers/socket/2 /root/hurd/pfinet/pfinet -i /dev/veth0 -a 192.168.8.20 -g 192.168.8.1 -m 255.255.255.0 Now we can communicate from the subhurd with any pfinet server of the main Hurd that runs in the virtual network. |