From ecad2cc77dd1d216ed8e94b4c0dd42a09b2b16d0 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 19 Sep 2007 01:31:03 +0000 Subject: web commit by steevithak: added link to console tutorial --- hurd/console.mdwn | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'hurd') diff --git a/hurd/console.mdwn b/hurd/console.mdwn index 5ce57008..3895531b 100644 --- a/hurd/console.mdwn +++ b/hurd/console.mdwn @@ -13,6 +13,9 @@ The latest Hurd package in Debian has all that is needed to run (dunno about hur -- [[Main/JoachimNilsson]] - 17 Apr 2005 +Additional information about the console can be found in the [Hurd Console Tutorial](http://uwhug.org.uk/index.pl?Hurd_Console_Tutorial) + + ## Table of Contents %TOC% @@ -35,7 +38,7 @@ The console server provides a scrollback buffer for each virtual console. Curren The client interface of the server is quite complicated, because it is based on shared memory and broadcasts the data to potentially many clients without blocking. It also includes a notification scheme so that clients remain idle when there is no console activity. This saves cpu power (compared to the alternative which would be polling). -**The default console client**, which you will normally use to use a virtual console in a console server. Rather than writing many similar console client programs, I decided to write only one initially and make it extensible via dynamically loaded modules called "drivers". +**The default console client**, which you will normally use to use a virtual console in a console server. Rather than writing many similar console client programs, I decided to write only one initially and make it extensible via dynamically loaded modules called "drivers". The console client uses libcons, of course. There are a number of drivers that exists already: @@ -62,7 +65,7 @@ _Note:_ * _LeftCtrl_ + _LeftAlt_ + _Backspace_ terminates the console client, and reverts the VGA card etc to its original state. * _RightAlt_ + _Keypad_ enables you to directly enter unicode characters in hexadecimal numbers. 0-9 have their standard meaning, and NumLock is 0xa, Keypad `/` is 0xb, `*` is 0xc, `-` is 0xd, `+` is 0xe and the enter key at the lower right of the keypad is 0xf. Up to four digits are memorized, if you type more, the earlier ones are forgotten. This allows to cover up typing mistakes. -_For example:_AltGr + (Keypad 4, Keypad 1) = 0x41 = 'A'.
AltGr + (Keypad 2, 6, 3, NumLock) = 0x263a = smiley. +_For example:_AltGr + (Keypad 4, Keypad 1) = 0x41 = 'A'.
AltGr + (Keypad 2, 6, 3, NumLock) = 0x263a = smiley. You can get unicode tables from * The generic\_speaker driver supports the speaker commonly found in PCs and other computers. It is good enough for a simple bell tone or a small melody. I have several default bell styles implemented, but currently there is no configuration option to access them at run time, sorry! Load this module to make the console beep on ^G. @@ -236,7 +239,7 @@ The `console-server` watches for new hurdio terms (devices translated with `/hur Squeezed at the end so nobody sees it ;) -**console server:** Is probably too lax in permission checking. Does not implement settable tab stops. Does not allow to change encoding at run time. Does not allow any other screen size but 80x25. +**console server:** Is probably too lax in permission checking. Does not implement settable tab stops. Does not allow to change encoding at run time. Does not allow any other screen size but 80x25. Combining characters is not supported. @@ -248,11 +251,11 @@ Copy & Paste not supported. Should support other text modes (integrate svgatextmode?) -**pc\_kbd driver:** No keyboard layout but US supported! Maybe in some cases left/right shift/ctrl/alt is allowed where both left and right should be allowed. Keyboard LEDs are only supported when using OSKIT-Mach or the CVS branch gnumach-1-branch of GNU Mach. +**pc\_kbd driver:** No keyboard layout but US supported! Maybe in some cases left/right shift/ctrl/alt is allowed where both left and right should be allowed. Keyboard LEDs are only supported when using OSKIT-Mach or the CVS branch gnumach-1-branch of GNU Mach. -**ncursesw driver:** Doesn't work properly on other terminals but UTF-8. Should not use C-w, this should be configurable. Does not support use of scroll back buffer. +**ncursesw driver:** Doesn't work properly on other terminals but UTF-8. Should not use C-w, this should be configurable. Does not support use of scroll back buffer. -**Other programs:** Readline doesn't support multibyte encodings (4.2 and earlier). term doesn't either (all versions). +**Other programs:** Readline doesn't support multibyte encodings (4.2 and earlier). term doesn't either (all versions). ---- -- cgit v1.2.3 From 44b64a5abb6ce90b485ab5ab34890253410ef4ec Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 20 Sep 2007 01:54:49 +0200 Subject: Add an example about how to attempt debugging Hurd libraries using GDB. --- hurd/debugging.mdwn | 1 + hurd/debugging/hurd.mdwn | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 hurd/debugging/hurd.mdwn (limited to 'hurd') diff --git a/hurd/debugging.mdwn b/hurd/debugging.mdwn index 3ff2fba4..25686615 100644 --- a/hurd/debugging.mdwn +++ b/hurd/debugging.mdwn @@ -25,3 +25,4 @@ redistribute your contributions. # About Specific Packages * [[glibc]] +* [[Hurd]] diff --git a/hurd/debugging/hurd.mdwn b/hurd/debugging/hurd.mdwn new file mode 100644 index 00000000..3d3f69c5 --- /dev/null +++ b/hurd/debugging/hurd.mdwn @@ -0,0 +1,43 @@ +Say you want to try running file system server (`[[translator/ext2fs]]`, +`[[translator/jfs]]`, ...) against a modified version of [[libpager]] and +debug the latter one using [[GDB]]. + +Set the translator like this: + + $ settrans -fgap ↩ + jfs.img.i ↩ + /usr/bin/env ↩ + LD_LIBRARY_PATH=~tschwinge/tmp/hurd/hurd.ogi/build/libpager ↩ + "`pwd`"/jfs.obj/jfs ↩ + "`pwd`"/jfs.img + +Then, when starting GDB, start it like this (or use an equivalent method, of +course): + + $ LD_LIBRARY_PATH=~tschwinge/tmp/hurd/hurd.ogi/build/libpager ↩ + gdb ↩ + ~tschwinge/tmp/jfs/jfs.obj/jfs 15436 + GNU gdb 6.5-debian + [...] + Reading symbols from /lib/libdiskfs.so.0.3...Reading symbols from /lib/debug/lib/libdiskfs.so.0.3...done. + done. + Loaded symbols for /lib/libdiskfs.so.0.3 + Reading symbols from /devel4/tschwinge/tmp/hurd/hurd.ogi/build/libpager/libpager.so.0.3...done. + Loaded symbols for /devel4/tschwinge/tmp/hurd/hurd.ogi/build/libpager/libpager.so.0.3 + Reading symbols from /lib/libstore.so.0.3...Reading symbols from /lib/debug/lib/libstore.so.0.3...done. + done. + Loaded symbols for /lib/libstore.so.0.3 + [...] + (gdb) break pager_demuxer + Breakpoint 1 at 0x105c98d: file ../../libpager/demuxer.c, line 27. + [...] + Breakpoint 1, pager_demuxer (inp=0x12bded0, outp=0x12bbec0) at ../../libpager/demuxer.c:27 + 27 { + (gdb) list + 22 /* Demultiplex a single message directed at a pager port; INP is the + 23 message received; fill OUTP with the reply. */ + 24 int + 25 pager_demuxer (mach_msg_header_t *inp, + [...] + +Voilà. -- cgit v1.2.3 From 7e0b01926d78a9cefbd31157f8ec08782f81f29d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 20 Sep 2007 01:59:33 +0200 Subject: Add copyright and licensing header. --- hurd/debugging/hurd.mdwn | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'hurd') diff --git a/hurd/debugging/hurd.mdwn b/hurd/debugging/hurd.mdwn index 3d3f69c5..2f809c9a 100644 --- a/hurd/debugging/hurd.mdwn +++ b/hurd/debugging/hurd.mdwn @@ -1,3 +1,20 @@ +[[license text=""" +Copyright © 2007 Free Software Foundation, Inc. + +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.txt]]. + +By contributing to this page, you agree to assign copyright for your +contribution to the Free Software Foundation. The Free Software Foundation +promises to always use either a verbatim copying license or a free +documentation license when publishing your contribution. We grant you back all +your rights under copyright, including the rights to copy, modify, and +redistribute your contributions. +"""]] + Say you want to try running file system server (`[[translator/ext2fs]]`, `[[translator/jfs]]`, ...) against a modified version of [[libpager]] and debug the latter one using [[GDB]]. -- cgit v1.2.3 From 471ec4055f2479acdedc794c37e36b71c2de17e3 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 20 Sep 2007 08:02:20 +0000 Subject: web commit by tschwinge: Work around another ikiwiki bug (I suppose). --- hurd/debugging/hurd.mdwn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'hurd') diff --git a/hurd/debugging/hurd.mdwn b/hurd/debugging/hurd.mdwn index 2f809c9a..6d0d99aa 100644 --- a/hurd/debugging/hurd.mdwn +++ b/hurd/debugging/hurd.mdwn @@ -15,11 +15,11 @@ your rights under copyright, including the rights to copy, modify, and redistribute your contributions. """]] -Say you want to try running file system server (`[[translator/ext2fs]]`, -`[[translator/jfs]]`, ...) against a modified version of [[libpager]] and +Say you want to try running file system server (*[[translator/ext2fs]]*, +*[[translator/jfs]]*, ...) against a modified version of *[[libpager]]* and debug the latter one using [[GDB]]. -Set the translator like this: +Set the [[translator]] like this: $ settrans -fgap ↩ jfs.img.i ↩ -- cgit v1.2.3 From cf414349e257de8e837f11bff328123dc2aab9f8 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 20 Sep 2007 17:45:11 +0200 Subject: Re-integrate `Hurd/BuildingHurd' as `hurd/building'. --- Hurd/BuildingHurd.mdwn | 92 -------------------------------------------------- hurd.mdwn | 4 ++- hurd/building.mdwn | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 93 deletions(-) delete mode 100644 Hurd/BuildingHurd.mdwn create mode 100644 hurd/building.mdwn (limited to 'hurd') diff --git a/Hurd/BuildingHurd.mdwn b/Hurd/BuildingHurd.mdwn deleted file mode 100644 index 03c0f8de..00000000 --- a/Hurd/BuildingHurd.mdwn +++ /dev/null @@ -1,92 +0,0 @@ -# Building the Hurd from Source - -If you want to build the Hurd libraries and servers (translators) yourself instead of just using pre-built binaries, follow these instructions. - -One note before we begin: the likelihood that the compiled result will actually do what you expect it to do is the highest if you try building from the Debian source packages. This is especially true if you want to use your compilation within a Debian system. - -## Getting the Source Code - -You can chose between getting the [sources from the developers's RCS](http://www.gnu.org/software/hurd/download.html#cvs): - - $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co hurd - -... or (if you are working on a Debian system) the ones that are used for the [current Debian hurd package](http://packages.debian.net/source/unstable/hurd): - - $ apt-get source hurd - -Please see the Debian [[running/debian/FAQ]] before using _apt-get source_. - -The unpacked source tree is around 20 MiB, and the build tree (configured with _--disable-profile_) is around 100 MiB. - -## Preparing for the Build - -### ... on Debian systems - -Building the Hurd requires the _build-essential_ and _fakeroot_ packages, their dependencies and additional packages that are specified by the source hurd package: - - # apt-get install build-essential fakeroot - # apt-get build-dep hurd - -### ... on non-Debian systems - -[TODO] - -## Building - -### Debian _.deb_ Files - -Change into the directory with the downloaded / unpacked Hurd sources, e.g. - - $ cd hurd-[TODO] - -If you want to work on the sources before building them, it's advisable to first apply the patches the Debian hurd package additionally contains: - - $ debian/rules apply-patches - -Then edit and change whatever files you want and finally start the build process with - - $ dpkg-buildpackage -us -uc -nc -b -rfakeroot - -The _.deb_ packages will then drop out at the _../_ directory. - -### Building, but not the Debian Way - -The Hurd has to be built in a separate directory: - - $ mkdir hurd-build - $ cd hurd-build - - $ [...]/hurd-[TODO]/configure --disable-profile - $ make - $ make install - -Notice that _make install_ will install the Hurd in _/_, not in _/usr/local/_ or _/local/_, so your current Hurd servers will be replaced. [TODO: how to install somewhere else.] - -By default profiling versions of all the libraries and code are generated but this is useless in most of the cases, so we disable them by specifying _--disable-profile_ on \_configure\_'s command line. - -If you just want to build a specific server or library, you can pass its name to _make_: - - $ make ext2fs - $ make libtrivfs - -This will automatically build all libraries that are required to build the requested server or library. - -### Cross Compiling - -See and for now. - -## RPC Ids - -[TODO: update / integrate somewhere.] - -If you want to trace the RPC calls made by some process by using `rpctrace` command, you will also want some more human-readable output of this command. This is achieved by generating `hurd.msgids` file that includes the mapping between the number of the RPC call and its name: - - $ cd build/hurd - $ make hurd.msgids - $ cp hurd.msgids ~ - -Now you can use this file in the following way: - - $ rpctrace -i ~/hurd.msgids ls - --- [[Main/OgnyanKulev]] - 08 Apr 2003 diff --git a/hurd.mdwn b/hurd.mdwn index 66da69b5..7ebf76c2 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -42,7 +42,6 @@ * [[Console]] * [[Xfree86]] -- [[DebianX]] -- [[DebianXorg]] * [[GNUstep]] -* [[CrossCompiling]] * [[XattrHurd]]: Setting translators under GNU/Linux * [[SerialConsole]]: Setting up a serial console. @@ -51,6 +50,9 @@ * [[Contributing]] * [[ToDo]] +* [[Building]] +* [[CrossCompiling]] + # Developer References * Libraries diff --git a/hurd/building.mdwn b/hurd/building.mdwn new file mode 100644 index 00000000..03c0f8de --- /dev/null +++ b/hurd/building.mdwn @@ -0,0 +1,92 @@ +# Building the Hurd from Source + +If you want to build the Hurd libraries and servers (translators) yourself instead of just using pre-built binaries, follow these instructions. + +One note before we begin: the likelihood that the compiled result will actually do what you expect it to do is the highest if you try building from the Debian source packages. This is especially true if you want to use your compilation within a Debian system. + +## Getting the Source Code + +You can chose between getting the [sources from the developers's RCS](http://www.gnu.org/software/hurd/download.html#cvs): + + $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co hurd + +... or (if you are working on a Debian system) the ones that are used for the [current Debian hurd package](http://packages.debian.net/source/unstable/hurd): + + $ apt-get source hurd + +Please see the Debian [[running/debian/FAQ]] before using _apt-get source_. + +The unpacked source tree is around 20 MiB, and the build tree (configured with _--disable-profile_) is around 100 MiB. + +## Preparing for the Build + +### ... on Debian systems + +Building the Hurd requires the _build-essential_ and _fakeroot_ packages, their dependencies and additional packages that are specified by the source hurd package: + + # apt-get install build-essential fakeroot + # apt-get build-dep hurd + +### ... on non-Debian systems + +[TODO] + +## Building + +### Debian _.deb_ Files + +Change into the directory with the downloaded / unpacked Hurd sources, e.g. + + $ cd hurd-[TODO] + +If you want to work on the sources before building them, it's advisable to first apply the patches the Debian hurd package additionally contains: + + $ debian/rules apply-patches + +Then edit and change whatever files you want and finally start the build process with + + $ dpkg-buildpackage -us -uc -nc -b -rfakeroot + +The _.deb_ packages will then drop out at the _../_ directory. + +### Building, but not the Debian Way + +The Hurd has to be built in a separate directory: + + $ mkdir hurd-build + $ cd hurd-build + + $ [...]/hurd-[TODO]/configure --disable-profile + $ make + $ make install + +Notice that _make install_ will install the Hurd in _/_, not in _/usr/local/_ or _/local/_, so your current Hurd servers will be replaced. [TODO: how to install somewhere else.] + +By default profiling versions of all the libraries and code are generated but this is useless in most of the cases, so we disable them by specifying _--disable-profile_ on \_configure\_'s command line. + +If you just want to build a specific server or library, you can pass its name to _make_: + + $ make ext2fs + $ make libtrivfs + +This will automatically build all libraries that are required to build the requested server or library. + +### Cross Compiling + +See and for now. + +## RPC Ids + +[TODO: update / integrate somewhere.] + +If you want to trace the RPC calls made by some process by using `rpctrace` command, you will also want some more human-readable output of this command. This is achieved by generating `hurd.msgids` file that includes the mapping between the number of the RPC call and its name: + + $ cd build/hurd + $ make hurd.msgids + $ cp hurd.msgids ~ + +Now you can use this file in the following way: + + $ rpctrace -i ~/hurd.msgids ls + +-- [[Main/OgnyanKulev]] - 08 Apr 2003 -- cgit v1.2.3 From f5f69932b4d3defe70c975f967eb767ce3a6502c Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 20 Sep 2007 19:32:26 +0000 Subject: web commit by steevithak: added an introduction --- hurd/running/gnu.mdwn | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'hurd') diff --git a/hurd/running/gnu.mdwn b/hurd/running/gnu.mdwn index 6b94ed25..000fb5aa 100644 --- a/hurd/running/gnu.mdwn +++ b/hurd/running/gnu.mdwn @@ -2,6 +2,10 @@ # The GNU Operating System +The GNU Operating System, or GNU System as it is more commonly known, will be a complete Unix-like operating system composed entirely of [free software](http://www.gnu.org/philosophy/free-sw.html). The creation of the GNU System is one of the goals of the [GNU Project](http://www.gnu.org/), which was [launched in 1983](http://www.gnu.org/gnu/initial-announcement.html) by [Richard Stallman](http://www.stallman.org/). + + + [[gnu/GNU]]. It is our wish and goal to establish a new direction for the GNU system distribution. To that end, this page will begin setting some direction. This was spawned by several discussions over a few days on the Hurd mailing lists and IRC. -- cgit v1.2.3 From bd30e648de23de61bce95601b3e32d5b1a27a96f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 20 Sep 2007 19:10:49 +0200 Subject: Rework copyright assignment procedure. Move the copyright assignment text out of the wiki pages and instead make it part of the web-editing page's template. Update text as per suggestions of Richard M. Stallman (private email, 2007-09). --- .templates/editpage.tmpl | 18 ++++++++++++++++++ HowToContributeToThisWiki.mdwn | 7 ------- Hurd/HurdNames.mdwn | 7 ------- Hurd/TheGnuHurd.mdwn | 7 ------- abac.mdwn | 7 ------- asbestos.mdwn | 7 ------- capability.mdwn | 7 ------- confused_deputy.mdwn | 7 ------- designation.mdwn | 7 ------- destructive_interference.mdwn | 7 ------- empty_page.mdwn | 22 +++++++++------------- extensibility.mdwn | 7 ------- hurd/authentication.mdwn | 7 ------- hurd/concepts.mdwn | 7 ------- hurd/contributing.mdwn | 7 ------- hurd/critique.mdwn | 7 ------- hurd/debugging.mdwn | 7 ------- hurd/debugging/gdb.mdwn | 7 ------- hurd/debugging/gdb/noninvasive_debugging.mdwn | 7 ------- hurd/debugging/hurd.mdwn | 7 ------- hurd/debugging/rpctrace.mdwn | 7 ------- hurd/gettinghelp.mdwn | 7 ------- hurd/history.mdwn | 7 ------- hurd/hurd_hacking_guide.mdwn | 7 ------- hurd/libpager.mdwn | 7 ------- hurd/neighborhurd.mdwn | 7 ------- hurd/running.mdwn | 7 ------- hurd/running/debian/DebianAptOffline.mdwn | 7 ------- hurd/subhurd.mdwn | 7 ------- hurd/translator.mdwn | 7 ------- hurd/virtual_file_system.mdwn | 7 ------- ibac.mdwn | 7 ------- idl.mdwn | 7 ------- ipc.mdwn | 7 ------- isolation.mdwn | 7 ------- liedtke.mdwn | 7 ------- local.css | 7 +++++++ mechanism.mdwn | 7 ------- microkernel.mdwn | 7 ------- microkernel/for_beginners.mdwn | 7 ------- microkernel/mach/documentation.mdwn | 7 ------- microkernel/mach/external_pager_mechanism.mdwn | 7 ------- microkernel/mach/gnumach.mdwn | 7 ------- .../mach/gnumach/hardwarecompatibilitylist.mdwn | 7 ------- microkernel/mach/gnumach/ports.mdwn | 7 ------- microkernel/mach/ipc.mdwn | 7 ------- microkernel/mach/ipc/sequence_numbering.mdwn | 7 ------- microkernel/mach/port.mdwn | 7 ------- microkernel/mach/rpc.mdwn | 7 ------- naming_context.mdwn | 7 ------- persistency.mdwn | 7 ------- policy.mdwn | 7 ------- principal.mdwn | 7 ------- rpc.mdwn | 7 ------- sfi.mdwn | 7 ------- sidebar.mdwn | 7 ------- tcb.mdwn | 7 ------- trust.mdwn | 7 ------- 58 files changed, 34 insertions(+), 398 deletions(-) (limited to 'hurd') diff --git a/.templates/editpage.tmpl b/.templates/editpage.tmpl index cf4950ea..091bb8d3 100644 --- a/.templates/editpage.tmpl +++ b/.templates/editpage.tmpl @@ -57,6 +57,24 @@ Page type: Optional comment about this change:

+ + + diff --git a/HowToContributeToThisWiki.mdwn b/HowToContributeToThisWiki.mdwn index 2886945f..ac1244eb 100644 --- a/HowToContributeToThisWiki.mdwn +++ b/HowToContributeToThisWiki.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] # How to Contribute to This Wiki diff --git a/Hurd/HurdNames.mdwn b/Hurd/HurdNames.mdwn index c4cacd0c..d73afd14 100644 --- a/Hurd/HurdNames.mdwn +++ b/Hurd/HurdNames.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] [[toc ]] diff --git a/Hurd/TheGnuHurd.mdwn b/Hurd/TheGnuHurd.mdwn index 4b29c226..1107eb5f 100644 --- a/Hurd/TheGnuHurd.mdwn +++ b/Hurd/TheGnuHurd.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] The Hurd is GNU's replacement for the various UNIX and Linux kernels. diff --git a/abac.mdwn b/abac.mdwn index c71ea00a..21f13215 100644 --- a/abac.mdwn +++ b/abac.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] ABAC stands for authorization-based access control. diff --git a/asbestos.mdwn b/asbestos.mdwn index 074e0ae7..89af7c1c 100644 --- a/asbestos.mdwn +++ b/asbestos.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] Asbestos is an operating system developed at MIT, Stanford diff --git a/capability.mdwn b/capability.mdwn index 06d3cf4a..34a18afe 100644 --- a/capability.mdwn +++ b/capability.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] A capability is a protected reference. It is a reference in that diff --git a/confused_deputy.mdwn b/confused_deputy.mdwn index 1f03194b..7dae5da6 100644 --- a/confused_deputy.mdwn +++ b/confused_deputy.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] [The confused deputy](http://www.cis.upenn.edu/~KeyKOS/ConfusedDeputy.html) diff --git a/designation.mdwn b/designation.mdwn index 629ef7cd..30540ade 100644 --- a/designation.mdwn +++ b/designation.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] To designate is to name. diff --git a/destructive_interference.mdwn b/destructive_interference.mdwn index 941da8a4..b6c80325 100644 --- a/destructive_interference.mdwn +++ b/destructive_interference.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] Interference can be destructive or non-destructive. When a [[principal]] diff --git a/empty_page.mdwn b/empty_page.mdwn index a8f7e528..d71ef07e 100644 --- a/empty_page.mdwn +++ b/empty_page.mdwn @@ -6,22 +6,18 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use a free documentation license (as per our criteria of -free documentation) when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] HERE STARTS YOUR NEW CONTENT -- remove everything from here on, including this line. -We put in the above copyright and licensing header so that we'll easily be able -to include the text you contribute in official GNU documentation, such as the -GNU Hurd manuals, etc. +By creating this page, you agree to assign copyright for your contribution to +the Free Software Foundation. The Free Software Foundation promises to always +use a free documentation license (as per our criteria of free documentation) +when publishing your contribution. We grant you back all your rights under +copyright, including the rights to copy, modify, and redistribute your +contributions. -If this is absolutely not what you want then please refrain from changing the -above licensing conditions, but instead simply send email to - and we'll work on finding a solution. +We're requiring these copyright assignments, so that we'll easily be able to +include your contributions in official GNU documentation, such as the GNU Hurd +manual, etc. Send email to if there are questions. diff --git a/extensibility.mdwn b/extensibility.mdwn index 80e9fbfc..6a12c812 100644 --- a/extensibility.mdwn +++ b/extensibility.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] An extensible system is one that enables extensibility. Enabling extensibility diff --git a/hurd/authentication.mdwn b/hurd/authentication.mdwn index 7ccd9b45..2b35ea14 100644 --- a/hurd/authentication.mdwn +++ b/hurd/authentication.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] UIDs on the Hurd are separate from processes. A process has diff --git a/hurd/concepts.mdwn b/hurd/concepts.mdwn index dca95ed9..0a88d248 100644 --- a/hurd/concepts.mdwn +++ b/hurd/concepts.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] * [[Translator]] diff --git a/hurd/contributing.mdwn b/hurd/contributing.mdwn index 819d354b..785cfa1a 100644 --- a/hurd/contributing.mdwn +++ b/hurd/contributing.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] # Porting Applications diff --git a/hurd/critique.mdwn b/hurd/critique.mdwn index 56150df7..cc0c53dc 100644 --- a/hurd/critique.mdwn +++ b/hurd/critique.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] [[NealWalfield]] and [[MarcusBrinkmann]] wrote a paper titled diff --git a/hurd/debugging.mdwn b/hurd/debugging.mdwn index 25686615..66175d13 100644 --- a/hurd/debugging.mdwn +++ b/hurd/debugging.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] # Strategies diff --git a/hurd/debugging/gdb.mdwn b/hurd/debugging/gdb.mdwn index 75474128..ca7d1783 100644 --- a/hurd/debugging/gdb.mdwn +++ b/hurd/debugging/gdb.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] The [GNU debugger *GDB*](http://www.gnu.org/software/gdb/) works on GNU/Hurd diff --git a/hurd/debugging/gdb/noninvasive_debugging.mdwn b/hurd/debugging/gdb/noninvasive_debugging.mdwn index fc6653e7..a712cfa6 100644 --- a/hurd/debugging/gdb/noninvasive_debugging.mdwn +++ b/hurd/debugging/gdb/noninvasive_debugging.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] Sometimes using [[GDB]] on a system server can result in a [[deadlock]]. You diff --git a/hurd/debugging/hurd.mdwn b/hurd/debugging/hurd.mdwn index 6d0d99aa..b759df22 100644 --- a/hurd/debugging/hurd.mdwn +++ b/hurd/debugging/hurd.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] Say you want to try running file system server (*[[translator/ext2fs]]*, diff --git a/hurd/debugging/rpctrace.mdwn b/hurd/debugging/rpctrace.mdwn index c2aabc42..6590431d 100644 --- a/hurd/debugging/rpctrace.mdwn +++ b/hurd/debugging/rpctrace.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] *rpctrace* is -- roughly -- an equivavlent to Linux's *strace* or Solaris' or diff --git a/hurd/gettinghelp.mdwn b/hurd/gettinghelp.mdwn index b3bbcbf6..59e76b99 100644 --- a/hurd/gettinghelp.mdwn +++ b/hurd/gettinghelp.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] # Essential Documentation diff --git a/hurd/history.mdwn b/hurd/history.mdwn index 1b45d25f..ce4cf9fd 100644 --- a/hurd/history.mdwn +++ b/hurd/history.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] History 1997-2003 diff --git a/hurd/hurd_hacking_guide.mdwn b/hurd/hurd_hacking_guide.mdwn index 91b33bcf..c7ac9ba8 100644 --- a/hurd/hurd_hacking_guide.mdwn +++ b/hurd/hurd_hacking_guide.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] Originally written by Wolfgang Jährling, the [Hurd Hacking Guide](http://www.gnu.org/software/hurd/hacking-guide/hhg.html) diff --git a/hurd/libpager.mdwn b/hurd/libpager.mdwn index 1261150c..ed2fa7bb 100644 --- a/hurd/libpager.mdwn +++ b/hurd/libpager.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] Mach's [[microkernel/mach/external_pager_mechanism]]. diff --git a/hurd/neighborhurd.mdwn b/hurd/neighborhurd.mdwn index 5aee0a10..b1082f6b 100644 --- a/hurd/neighborhurd.mdwn +++ b/hurd/neighborhurd.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] It is possible to run multiple instances of the Hurd diff --git a/hurd/running.mdwn b/hurd/running.mdwn index f8a516bd..c631123d 100644 --- a/hurd/running.mdwn +++ b/hurd/running.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] * [[Distrib]] - Distributions based on the Hurd diff --git a/hurd/running/debian/DebianAptOffline.mdwn b/hurd/running/debian/DebianAptOffline.mdwn index 52313bf2..8ef52824 100644 --- a/hurd/running/debian/DebianAptOffline.mdwn +++ b/hurd/running/debian/DebianAptOffline.mdwn @@ -5,13 +5,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] # How to Installing Packages without a Network Connection from your Hurd Installation diff --git a/hurd/subhurd.mdwn b/hurd/subhurd.mdwn index 5256a70b..42b714a4 100644 --- a/hurd/subhurd.mdwn +++ b/hurd/subhurd.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] A sub-Hurd is like a [[neighbor_Hurd|neighborhurd]], however, makes use of some diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index 645f05ca..f6c08505 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] A translator is simply a normal program acting as diff --git a/hurd/virtual_file_system.mdwn b/hurd/virtual_file_system.mdwn index 33e4f8a7..941a10ad 100644 --- a/hurd/virtual_file_system.mdwn +++ b/hurd/virtual_file_system.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] Path names are resolved using a distributed protocol. diff --git a/ibac.mdwn b/ibac.mdwn index 4aa4f70e..39ac5ebf 100644 --- a/ibac.mdwn +++ b/ibac.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] IBAC stands for identity-based access control. diff --git a/idl.mdwn b/idl.mdwn index 2086bfea..64359e93 100644 --- a/idl.mdwn +++ b/idl.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] An IDL is an interface definition language. The most well-known is diff --git a/ipc.mdwn b/ipc.mdwn index 2123fec8..e019645e 100644 --- a/ipc.mdwn +++ b/ipc.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] IPC stands for interprocess communication. diff --git a/isolation.mdwn b/isolation.mdwn index 67e2f61f..dc0921aa 100644 --- a/isolation.mdwn +++ b/isolation.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] When two [[principal]]s cannot affect each other, they are said to diff --git a/liedtke.mdwn b/liedtke.mdwn index 1c573afe..7114f098 100644 --- a/liedtke.mdwn +++ b/liedtke.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] Liedtke is the father of [[microkernel/L4]]. diff --git a/local.css b/local.css index f099514a..24a8df70 100644 --- a/local.css +++ b/local.css @@ -60,6 +60,13 @@ pre + * font-size: small; } +/* Used in `.templates/editpage.tmpl'. +#copyright_assignment_notice +{ + background-color: #f0f0f0; + font-size: small; +} + /* Variable width. */ #sidebar diff --git a/mechanism.mdwn b/mechanism.mdwn index 16dfc641..ab01ae9b 100644 --- a/mechanism.mdwn +++ b/mechanism.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] The Collaborative International Dictionary of English v.0.48 diff --git a/microkernel.mdwn b/microkernel.mdwn index 56268b61..b2c0f059 100644 --- a/microkernel.mdwn +++ b/microkernel.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] [[Liedtke]] explains in [On Microkernel Construction](http://l4ka.org/publications/paper.php?docid=642) diff --git a/microkernel/for_beginners.mdwn b/microkernel/for_beginners.mdwn index 24daf290..b4ea13c8 100644 --- a/microkernel/for_beginners.mdwn +++ b/microkernel/for_beginners.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] # Concepts diff --git a/microkernel/mach/documentation.mdwn b/microkernel/mach/documentation.mdwn index bb91313c..fe9c619b 100644 --- a/microkernel/mach/documentation.mdwn +++ b/microkernel/mach/documentation.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] - OSF's [Kernel Interface](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_interface.ps) diff --git a/microkernel/mach/external_pager_mechanism.mdwn b/microkernel/mach/external_pager_mechanism.mdwn index 169745fb..cdb299f1 100644 --- a/microkernel/mach/external_pager_mechanism.mdwn +++ b/microkernel/mach/external_pager_mechanism.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] Mach provides a so-called external pager [[mechanism]]. This diff --git a/microkernel/mach/gnumach.mdwn b/microkernel/mach/gnumach.mdwn index 561c3742..bc3ef8d8 100644 --- a/microkernel/mach/gnumach.mdwn +++ b/microkernel/mach/gnumach.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] GNU Mach is currently used by the GNU [[Hurd]]. diff --git a/microkernel/mach/gnumach/hardwarecompatibilitylist.mdwn b/microkernel/mach/gnumach/hardwarecompatibilitylist.mdwn index b043b233..08f7f805 100644 --- a/microkernel/mach/gnumach/hardwarecompatibilitylist.mdwn +++ b/microkernel/mach/gnumach/hardwarecompatibilitylist.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] # CPU Architecture diff --git a/microkernel/mach/gnumach/ports.mdwn b/microkernel/mach/gnumach/ports.mdwn index 89651d72..63be1b92 100644 --- a/microkernel/mach/gnumach/ports.mdwn +++ b/microkernel/mach/gnumach/ports.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] * [PowerPC](http://www.pjbruin.dds.nl/hurd/). Is not in a usable state. diff --git a/microkernel/mach/ipc.mdwn b/microkernel/mach/ipc.mdwn index c493174c..1fe37496 100644 --- a/microkernel/mach/ipc.mdwn +++ b/microkernel/mach/ipc.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] [[General_information|/ipc]] about IPC. diff --git a/microkernel/mach/ipc/sequence_numbering.mdwn b/microkernel/mach/ipc/sequence_numbering.mdwn index 3aff669d..fdbde7a0 100644 --- a/microkernel/mach/ipc/sequence_numbering.mdwn +++ b/microkernel/mach/ipc/sequence_numbering.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] Mach's [[IPC]] mechanism allows for getting access to a message's sequence diff --git a/microkernel/mach/port.mdwn b/microkernel/mach/port.mdwn index 5dcc9ba3..3e0d3530 100644 --- a/microkernel/mach/port.mdwn +++ b/microkernel/mach/port.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] Mach ports are [[capabilities|capability]]. diff --git a/microkernel/mach/rpc.mdwn b/microkernel/mach/rpc.mdwn index c315fa4e..7b2a9e30 100644 --- a/microkernel/mach/rpc.mdwn +++ b/microkernel/mach/rpc.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] [[General_information|/rpc]] about RPC. diff --git a/naming_context.mdwn b/naming_context.mdwn index be041211..4a15651f 100644 --- a/naming_context.mdwn +++ b/naming_context.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] Names are bindings to objects, however, to find an object diff --git a/persistency.mdwn b/persistency.mdwn index e9d0a248..abbf0c02 100644 --- a/persistency.mdwn +++ b/persistency.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] A persistent object is an object that survives reboot. diff --git a/policy.mdwn b/policy.mdwn index 7135ddf0..4b8b8371 100644 --- a/policy.mdwn +++ b/policy.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] A policy is a rule that define what may or may not happens, not diff --git a/principal.mdwn b/principal.mdwn index f2a23ae2..9cf90942 100644 --- a/principal.mdwn +++ b/principal.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] A principal is an accountable entity. A principal may be diff --git a/rpc.mdwn b/rpc.mdwn index 717a2d60..829d2967 100644 --- a/rpc.mdwn +++ b/rpc.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] RPC stands for remote procedure call. diff --git a/sfi.mdwn b/sfi.mdwn index 48daf15e..d236a6a6 100644 --- a/sfi.mdwn +++ b/sfi.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] SFI stands for Software-Based Fault Isolation. SFI is an [[isolation]] diff --git a/sidebar.mdwn b/sidebar.mdwn index 34995a8a..48990085 100644 --- a/sidebar.mdwn +++ b/sidebar.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] * **[[Home|/index]]** diff --git a/tcb.mdwn b/tcb.mdwn index 841b85fa..ef736efe 100644 --- a/tcb.mdwn +++ b/tcb.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] TCB stands for trusted computed base. Unqualified, the trusted diff --git a/trust.mdwn b/trust.mdwn index 96716f8d..4eee6a3d 100644 --- a/trust.mdwn +++ b/trust.mdwn @@ -6,13 +6,6 @@ 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.txt]]. - -By contributing to this page, you agree to assign copyright for your -contribution to the Free Software Foundation. The Free Software Foundation -promises to always use either a verbatim copying license or a free -documentation license when publishing your contribution. We grant you back all -your rights under copyright, including the rights to copy, modify, and -redistribute your contributions. """]] The word trust is used in a number of contexts with different technical meanings. -- cgit v1.2.3 From 2804b6ebfdd7adbb08f89a057b053f43a67391bb Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 21 Sep 2007 14:02:32 +0200 Subject: Switch pages to use the ``copyright'' and ``license'' facilities of ikiwiki's `meta' plugin. --- HowToContributeToThisWiki.mdwn | 16 +++++++--------- Hurd/HurdNames.mdwn | 16 +++++++--------- Hurd/TheGnuHurd.mdwn | 17 ++++++++--------- abac.mdwn | 16 +++++++--------- asbestos.mdwn | 16 +++++++--------- capability.mdwn | 16 +++++++--------- confused_deputy.mdwn | 16 +++++++--------- designation.mdwn | 16 +++++++--------- destructive_interference.mdwn | 16 +++++++--------- empty_page.mdwn | 16 +++++++--------- extensibility.mdwn | 16 +++++++--------- hurd/authentication.mdwn | 16 +++++++--------- hurd/concepts.mdwn | 16 +++++++--------- hurd/contributing.mdwn | 16 +++++++--------- hurd/critique.mdwn | 16 +++++++--------- hurd/debugging.mdwn | 16 +++++++--------- hurd/debugging/gdb.mdwn | 16 +++++++--------- hurd/debugging/gdb/noninvasive_debugging.mdwn | 16 +++++++--------- hurd/debugging/hurd.mdwn | 16 +++++++--------- hurd/debugging/rpctrace.mdwn | 16 +++++++--------- hurd/gettinghelp.mdwn | 16 +++++++--------- hurd/history.mdwn | 16 +++++++--------- hurd/hurd_hacking_guide.mdwn | 16 +++++++--------- hurd/libpager.mdwn | 16 +++++++--------- hurd/neighborhurd.mdwn | 16 +++++++--------- hurd/running.mdwn | 16 +++++++--------- hurd/running/debian/DebianAptOffline.mdwn | 15 +++++++-------- hurd/subhurd.mdwn | 16 +++++++--------- hurd/translator.mdwn | 16 +++++++--------- hurd/virtual_file_system.mdwn | 16 +++++++--------- ibac.mdwn | 16 +++++++--------- idl.mdwn | 16 +++++++--------- ipc.mdwn | 16 +++++++--------- isolation.mdwn | 16 +++++++--------- liedtke.mdwn | 16 +++++++--------- mechanism.mdwn | 16 +++++++--------- microkernel.mdwn | 16 +++++++--------- microkernel/for_beginners.mdwn | 16 +++++++--------- microkernel/fud.mdwn | 9 +++------ microkernel/mach/documentation.mdwn | 16 +++++++--------- microkernel/mach/external_pager_mechanism.mdwn | 16 +++++++--------- microkernel/mach/gnumach.mdwn | 16 +++++++--------- microkernel/mach/gnumach/hardwarecompatibilitylist.mdwn | 16 +++++++--------- microkernel/mach/gnumach/ports.mdwn | 16 +++++++--------- microkernel/mach/ipc.mdwn | 16 +++++++--------- microkernel/mach/ipc/sequence_numbering.mdwn | 16 +++++++--------- microkernel/mach/port.mdwn | 16 +++++++--------- microkernel/mach/rpc.mdwn | 16 +++++++--------- naming_context.mdwn | 16 +++++++--------- persistency.mdwn | 16 +++++++--------- policy.mdwn | 16 +++++++--------- principal.mdwn | 16 +++++++--------- rpc.mdwn | 16 +++++++--------- sfi.mdwn | 16 +++++++--------- sidebar.mdwn | 16 +++++++--------- tcb.mdwn | 16 +++++++--------- trust.mdwn | 16 +++++++--------- 57 files changed, 396 insertions(+), 509 deletions(-) (limited to 'hurd') diff --git a/HowToContributeToThisWiki.mdwn b/HowToContributeToThisWiki.mdwn index ac1244eb..4086ed77 100644 --- a/HowToContributeToThisWiki.mdwn +++ b/HowToContributeToThisWiki.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] # How to Contribute to This Wiki diff --git a/Hurd/HurdNames.mdwn b/Hurd/HurdNames.mdwn index d73afd14..1730c7bc 100644 --- a/Hurd/HurdNames.mdwn +++ b/Hurd/HurdNames.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] [[toc ]] diff --git a/Hurd/TheGnuHurd.mdwn b/Hurd/TheGnuHurd.mdwn index 1107eb5f..bcae817c 100644 --- a/Hurd/TheGnuHurd.mdwn +++ b/Hurd/TheGnuHurd.mdwn @@ -1,12 +1,11 @@ -[[license text=""" -Copyright © 2001, 2002, 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2001, 2002, 2007 Free Software Foundation, +Inc."]] +[[meta license="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.txt]]."]] The Hurd is GNU's replacement for the various UNIX and Linux kernels. diff --git a/abac.mdwn b/abac.mdwn index 21f13215..e4486c10 100644 --- a/abac.mdwn +++ b/abac.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] ABAC stands for authorization-based access control. In this model, access is not granted based on the diff --git a/asbestos.mdwn b/asbestos.mdwn index 89af7c1c..f3c8d94a 100644 --- a/asbestos.mdwn +++ b/asbestos.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] Asbestos is an operating system developed at MIT, Stanford and UCLA to explore information flow control policies. The motivation diff --git a/capability.mdwn b/capability.mdwn index 34a18afe..0e06a6d6 100644 --- a/capability.mdwn +++ b/capability.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] A capability is a protected reference. It is a reference in that it designates an object; it is protected in that in cannot be diff --git a/confused_deputy.mdwn b/confused_deputy.mdwn index 7dae5da6..01c3513a 100644 --- a/confused_deputy.mdwn +++ b/confused_deputy.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] [The confused deputy](http://www.cis.upenn.edu/~KeyKOS/ConfusedDeputy.html) problem was articulated by Norm Hardy. It is a possible consequence diff --git a/designation.mdwn b/designation.mdwn index 30540ade..55037939 100644 --- a/designation.mdwn +++ b/designation.mdwn @@ -1,11 +1,9 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] To designate is to name. diff --git a/destructive_interference.mdwn b/destructive_interference.mdwn index b6c80325..44e0855e 100644 --- a/destructive_interference.mdwn +++ b/destructive_interference.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] Interference can be destructive or non-destructive. When a [[principal]] invokes an object (thereby requesting a service) and the implementation diff --git a/empty_page.mdwn b/empty_page.mdwn index d71ef07e..47464167 100644 --- a/empty_page.mdwn +++ b/empty_page.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] HERE STARTS YOUR NEW CONTENT -- remove everything from here on, including this line. diff --git a/extensibility.mdwn b/extensibility.mdwn index 6a12c812..edfd78d2 100644 --- a/extensibility.mdwn +++ b/extensibility.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] An extensible system is one that enables extensibility. Enabling extensibility means providing non-privileged mechanisms to extend existing objects and to diff --git a/hurd/authentication.mdwn b/hurd/authentication.mdwn index 2b35ea14..7502aa7d 100644 --- a/hurd/authentication.mdwn +++ b/hurd/authentication.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] UIDs on the Hurd are separate from processes. A process has [[capabilities|capability]] designating so-called UID vectors that diff --git a/hurd/concepts.mdwn b/hurd/concepts.mdwn index 0a88d248..f56af8f0 100644 --- a/hurd/concepts.mdwn +++ b/hurd/concepts.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] * [[Translator]] * [[Virtual_File_System]] diff --git a/hurd/contributing.mdwn b/hurd/contributing.mdwn index 785cfa1a..9d07e740 100644 --- a/hurd/contributing.mdwn +++ b/hurd/contributing.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] # Porting Applications diff --git a/hurd/critique.mdwn b/hurd/critique.mdwn index cc0c53dc..862e63ae 100644 --- a/hurd/critique.mdwn +++ b/hurd/critique.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] [[NealWalfield]] and [[MarcusBrinkmann]] wrote a paper titled "[A Critique of the GNU Hurd Multi-Server Operating System](http://walfield.org/papers/200707-walfield-critique-of-the-GNU-Hurd.pdf)." diff --git a/hurd/debugging.mdwn b/hurd/debugging.mdwn index 66175d13..5a825479 100644 --- a/hurd/debugging.mdwn +++ b/hurd/debugging.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] # Strategies diff --git a/hurd/debugging/gdb.mdwn b/hurd/debugging/gdb.mdwn index ca7d1783..02c66711 100644 --- a/hurd/debugging/gdb.mdwn +++ b/hurd/debugging/gdb.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] The [GNU debugger *GDB*](http://www.gnu.org/software/gdb/) works on GNU/Hurd systems as it does on other system, but has some additional [hurd-specific diff --git a/hurd/debugging/gdb/noninvasive_debugging.mdwn b/hurd/debugging/gdb/noninvasive_debugging.mdwn index a712cfa6..63e970e2 100644 --- a/hurd/debugging/gdb/noninvasive_debugging.mdwn +++ b/hurd/debugging/gdb/noninvasive_debugging.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] Sometimes using [[GDB]] on a system server can result in a [[deadlock]]. You can however still use GDB by using the [`set diff --git a/hurd/debugging/hurd.mdwn b/hurd/debugging/hurd.mdwn index b759df22..f5c8bd34 100644 --- a/hurd/debugging/hurd.mdwn +++ b/hurd/debugging/hurd.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] Say you want to try running file system server (*[[translator/ext2fs]]*, *[[translator/jfs]]*, ...) against a modified version of *[[libpager]]* and diff --git a/hurd/debugging/rpctrace.mdwn b/hurd/debugging/rpctrace.mdwn index 6590431d..de85a8b7 100644 --- a/hurd/debugging/rpctrace.mdwn +++ b/hurd/debugging/rpctrace.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] *rpctrace* is -- roughly -- an equivavlent to Linux's *strace* or Solaris' or BSD's *truss*. It is used to trace [[remote_procedure_call|rpc]]s a process is diff --git a/hurd/gettinghelp.mdwn b/hurd/gettinghelp.mdwn index 59e76b99..d7f96323 100644 --- a/hurd/gettinghelp.mdwn +++ b/hurd/gettinghelp.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] # Essential Documentation diff --git a/hurd/history.mdwn b/hurd/history.mdwn index ce4cf9fd..9f442b93 100644 --- a/hurd/history.mdwn +++ b/hurd/history.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] History 1997-2003
Personal view of Marcus Brinkmann about Hurd development in 1997-2003. diff --git a/hurd/hurd_hacking_guide.mdwn b/hurd/hurd_hacking_guide.mdwn index c7ac9ba8..c7bdb135 100644 --- a/hurd/hurd_hacking_guide.mdwn +++ b/hurd/hurd_hacking_guide.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] Originally written by Wolfgang Jährling, the [Hurd Hacking Guide](http://www.gnu.org/software/hurd/hacking-guide/hhg.html) contains an overview of some of the Hurd's features. diff --git a/hurd/libpager.mdwn b/hurd/libpager.mdwn index ed2fa7bb..b51b9efd 100644 --- a/hurd/libpager.mdwn +++ b/hurd/libpager.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] Mach's [[microkernel/mach/external_pager_mechanism]]. diff --git a/hurd/neighborhurd.mdwn b/hurd/neighborhurd.mdwn index b1082f6b..ac2939ec 100644 --- a/hurd/neighborhurd.mdwn +++ b/hurd/neighborhurd.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] It is possible to run multiple instances of the Hurd in parallel, on a single instance of Mach. Other than diff --git a/hurd/running.mdwn b/hurd/running.mdwn index c631123d..2be73078 100644 --- a/hurd/running.mdwn +++ b/hurd/running.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] * [[Distrib]] - Distributions based on the Hurd * [[microkernel/mach/gnumach/Xen]] - In Xen diff --git a/hurd/running/debian/DebianAptOffline.mdwn b/hurd/running/debian/DebianAptOffline.mdwn index 8ef52824..6d03be5a 100644 --- a/hurd/running/debian/DebianAptOffline.mdwn +++ b/hurd/running/debian/DebianAptOffline.mdwn @@ -1,11 +1,10 @@ -[[license text=""" -Copyright © 2005, 2007 Free Software Foundation, Inc. -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.txt]]. -"""]] +[[meta copyright="Copyright © 2005, 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] # How to Installing Packages without a Network Connection from your Hurd Installation diff --git a/hurd/subhurd.mdwn b/hurd/subhurd.mdwn index 42b714a4..e976a5ff 100644 --- a/hurd/subhurd.mdwn +++ b/hurd/subhurd.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] A sub-Hurd is like a [[neighbor_Hurd|neighborhurd]], however, makes use of some resources provided by another Hurd. For instance, backing store and the diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index f6c08505..7656053b 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] A translator is simply a normal program acting as an object server and participating in the Hurd's diff --git a/hurd/virtual_file_system.mdwn b/hurd/virtual_file_system.mdwn index 941a10ad..e39c7705 100644 --- a/hurd/virtual_file_system.mdwn +++ b/hurd/virtual_file_system.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] Path names are resolved using a distributed protocol. No single entity is responsible for the resolution of diff --git a/ibac.mdwn b/ibac.mdwn index 39ac5ebf..91bd5274 100644 --- a/ibac.mdwn +++ b/ibac.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] IBAC stands for identity-based access control. In this access control scheme, access to a resource diff --git a/idl.mdwn b/idl.mdwn index 64359e93..bcaacdec 100644 --- a/idl.mdwn +++ b/idl.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] An IDL is an interface definition language. The most well-known is CORBA. An IDL compiler takes a specification and generates stubs diff --git a/ipc.mdwn b/ipc.mdwn index e019645e..09d8499c 100644 --- a/ipc.mdwn +++ b/ipc.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] IPC stands for interprocess communication. diff --git a/isolation.mdwn b/isolation.mdwn index dc0921aa..cd6c0eea 100644 --- a/isolation.mdwn +++ b/isolation.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] When two [[principal]]s cannot affect each other, they are said to be isolated from one another. Strictly speaking, if two principals diff --git a/liedtke.mdwn b/liedtke.mdwn index 7114f098..927b1d1e 100644 --- a/liedtke.mdwn +++ b/liedtke.mdwn @@ -1,11 +1,9 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] Liedtke is the father of [[microkernel/L4]]. diff --git a/mechanism.mdwn b/mechanism.mdwn index ab01ae9b..e991a8b2 100644 --- a/mechanism.mdwn +++ b/mechanism.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] The Collaborative International Dictionary of English v.0.48 defines a mechanism as: diff --git a/microkernel.mdwn b/microkernel.mdwn index b2c0f059..21a826dc 100644 --- a/microkernel.mdwn +++ b/microkernel.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] [[Liedtke]] explains in [On Microkernel Construction](http://l4ka.org/publications/paper.php?docid=642) that a microkernel attempts to minimize the mandatory part of the operating diff --git a/microkernel/for_beginners.mdwn b/microkernel/for_beginners.mdwn index b4ea13c8..f31111a7 100644 --- a/microkernel/for_beginners.mdwn +++ b/microkernel/for_beginners.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] # Concepts diff --git a/microkernel/fud.mdwn b/microkernel/fud.mdwn index bc2e366b..68794e69 100644 --- a/microkernel/fud.mdwn +++ b/microkernel/fud.mdwn @@ -1,9 +1,6 @@ -[[license text=""" -Copyright © 2002 Wolfgang Jährling and Jeroen Dekkers - -Verbatim copying and distribution of this entire article is permitted in any -medium, provided this notice is preserved. -"""]] +[[meta copyright="Copyright © 2002 Wolfgang Jährling and Jeroen Dekkers"]] +[[meta license="Verbatim copying and distribution of this entire article is +permitted in any medium, provided this notice is preserved."]] # The Microkernel Experiment is Going On diff --git a/microkernel/mach/documentation.mdwn b/microkernel/mach/documentation.mdwn index fe9c619b..ac9dd6ec 100644 --- a/microkernel/mach/documentation.mdwn +++ b/microkernel/mach/documentation.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] - OSF's [Kernel Interface](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_interface.ps) - OSF's [Kernel Principles](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_principles.ps) diff --git a/microkernel/mach/external_pager_mechanism.mdwn b/microkernel/mach/external_pager_mechanism.mdwn index cdb299f1..2c917ff6 100644 --- a/microkernel/mach/external_pager_mechanism.mdwn +++ b/microkernel/mach/external_pager_mechanism.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2002, 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2002, 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] Mach provides a so-called external pager [[mechanism]]. This mechanism serves to separate *managing memory* from *managing diff --git a/microkernel/mach/gnumach.mdwn b/microkernel/mach/gnumach.mdwn index bc3ef8d8..cfdb1a99 100644 --- a/microkernel/mach/gnumach.mdwn +++ b/microkernel/mach/gnumach.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] GNU Mach is currently used by the GNU [[Hurd]]. diff --git a/microkernel/mach/gnumach/hardwarecompatibilitylist.mdwn b/microkernel/mach/gnumach/hardwarecompatibilitylist.mdwn index 08f7f805..cedccae6 100644 --- a/microkernel/mach/gnumach/hardwarecompatibilitylist.mdwn +++ b/microkernel/mach/gnumach/hardwarecompatibilitylist.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] # CPU Architecture diff --git a/microkernel/mach/gnumach/ports.mdwn b/microkernel/mach/gnumach/ports.mdwn index 63be1b92..1aeb23f2 100644 --- a/microkernel/mach/gnumach/ports.mdwn +++ b/microkernel/mach/gnumach/ports.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] * [PowerPC](http://www.pjbruin.dds.nl/hurd/). Is not in a usable state. * Alpha. Was once started, but isn't in a usable state either. diff --git a/microkernel/mach/ipc.mdwn b/microkernel/mach/ipc.mdwn index 1fe37496..a6aef7c7 100644 --- a/microkernel/mach/ipc.mdwn +++ b/microkernel/mach/ipc.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] [[General_information|/ipc]] about IPC. diff --git a/microkernel/mach/ipc/sequence_numbering.mdwn b/microkernel/mach/ipc/sequence_numbering.mdwn index fdbde7a0..78a49c1a 100644 --- a/microkernel/mach/ipc/sequence_numbering.mdwn +++ b/microkernel/mach/ipc/sequence_numbering.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] Mach's [[IPC]] mechanism allows for getting access to a message's sequence number. diff --git a/microkernel/mach/port.mdwn b/microkernel/mach/port.mdwn index 3e0d3530..c572cfbb 100644 --- a/microkernel/mach/port.mdwn +++ b/microkernel/mach/port.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] Mach ports are [[capabilities|capability]]. diff --git a/microkernel/mach/rpc.mdwn b/microkernel/mach/rpc.mdwn index 7b2a9e30..b2e04908 100644 --- a/microkernel/mach/rpc.mdwn +++ b/microkernel/mach/rpc.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] [[General_information|/rpc]] about RPC. diff --git a/naming_context.mdwn b/naming_context.mdwn index 4a15651f..5c2badb9 100644 --- a/naming_context.mdwn +++ b/naming_context.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] Names are bindings to objects, however, to find an object given a name, the relation must be looked up in a diff --git a/persistency.mdwn b/persistency.mdwn index abbf0c02..370cbadf 100644 --- a/persistency.mdwn +++ b/persistency.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] A persistent object is an object that survives reboot. On Unix, files and directories are persistent but diff --git a/policy.mdwn b/policy.mdwn index 4b8b8371..e11720a5 100644 --- a/policy.mdwn +++ b/policy.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] A policy is a rule that define what may or may not happens, not how it happens. The latter is referred to as [[mechanism]]. diff --git a/principal.mdwn b/principal.mdwn index 9cf90942..6092f967 100644 --- a/principal.mdwn +++ b/principal.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] A principal is an accountable entity. A principal may be a user. On some computer systems, users are represented by their diff --git a/rpc.mdwn b/rpc.mdwn index 829d2967..4da79eb9 100644 --- a/rpc.mdwn +++ b/rpc.mdwn @@ -1,11 +1,9 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] RPC stands for remote procedure call. diff --git a/sfi.mdwn b/sfi.mdwn index d236a6a6..a3a78832 100644 --- a/sfi.mdwn +++ b/sfi.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] SFI stands for Software-Based Fault Isolation. SFI is an [[isolation]] technique described by Wahbe et al. in their 1993 paper [Effcient diff --git a/sidebar.mdwn b/sidebar.mdwn index 48990085..34e23772 100644 --- a/sidebar.mdwn +++ b/sidebar.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] * **[[Home|/index]]** * **[[Community]]** diff --git a/tcb.mdwn b/tcb.mdwn index ef736efe..0dc4d2fb 100644 --- a/tcb.mdwn +++ b/tcb.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] TCB stands for trusted computed base. Unqualified, the trusted computing base referrers to the set of components programs diff --git a/trust.mdwn b/trust.mdwn index 4eee6a3d..d96f702f 100644 --- a/trust.mdwn +++ b/trust.mdwn @@ -1,12 +1,10 @@ -[[license text=""" -Copyright © 2007 Free Software Foundation, Inc. - -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.txt]]. -"""]] +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] The word trust is used in a number of contexts with different technical meanings. Sometimes it is used to confuse, for instance trusted computing is rarely about -- cgit v1.2.3 From 3da3ea6018dabd7a09ab60bb8f7f80851f5ebc8b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 21 Sep 2007 16:39:45 +0200 Subject: A few words on the ``Hurd Boxes'' logo. --- hurd.mdwn | 1 + hurd/logo.mdwn | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 hurd/logo.mdwn (limited to 'hurd') diff --git a/hurd.mdwn b/hurd.mdwn index 7ebf76c2..5a421332 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -7,6 +7,7 @@ * [[TheGnuHurd]] - A Brief Description * [[HurdNames]] - Acronym, Origin and Usage * [[History]] +* [[Logo]] * [[GNUHurdStatus]] * [[KnownHurdLimits]] * [[Translation]] - Localized sites about the Hurd diff --git a/hurd/logo.mdwn b/hurd/logo.mdwn new file mode 100644 index 00000000..69c7b21f --- /dev/null +++ b/hurd/logo.mdwn @@ -0,0 +1,17 @@ +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] + +The famous *Hurd Boxes* logo is available at +. + +On some lonely Wednesday, Colin Leitner and [[Thomas_Schwinge|tschwinge]] +converted these four boxes from the original METAFONT sources to hand-written +SVG code. (Will be published somewhen.) + +This symbol is also being used as a favicon for this whole wiki. [[img +/favicon.ico]] -- cgit v1.2.3 From fd47bfa17db122b04c58647b690ac9487b52ea0e Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 21 Sep 2007 17:15:28 +0200 Subject: Move logo files into `hurd/logo/' and rename them. --- hurd-logo.png | Bin 1764 -> 0 bytes hurd-logo.svg | 43 ------------------------------------------- hurd/logo/boxes-redrawn.png | Bin 0 -> 1764 bytes hurd/logo/boxes-redrawn.svg | 43 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 43 deletions(-) delete mode 100644 hurd-logo.png delete mode 100644 hurd-logo.svg create mode 100644 hurd/logo/boxes-redrawn.png create mode 100644 hurd/logo/boxes-redrawn.svg (limited to 'hurd') diff --git a/hurd-logo.png b/hurd-logo.png deleted file mode 100644 index fd26a87e..00000000 Binary files a/hurd-logo.png and /dev/null differ diff --git a/hurd-logo.svg b/hurd-logo.svg deleted file mode 100644 index af24ae89..00000000 --- a/hurd-logo.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - - The Hurd Boxes and Arrows logo. - - Converted to SVG by Thomas Schwinge and Colin Leitner at 09/2007. - We used the metafont original from Stephen McCamant (1997). - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/hurd/logo/boxes-redrawn.png b/hurd/logo/boxes-redrawn.png new file mode 100644 index 00000000..fd26a87e Binary files /dev/null and b/hurd/logo/boxes-redrawn.png differ diff --git a/hurd/logo/boxes-redrawn.svg b/hurd/logo/boxes-redrawn.svg new file mode 100644 index 00000000..af24ae89 --- /dev/null +++ b/hurd/logo/boxes-redrawn.svg @@ -0,0 +1,43 @@ + + + + + The Hurd Boxes and Arrows logo. + + Converted to SVG by Thomas Schwinge and Colin Leitner at 09/2007. + We used the metafont original from Stephen McCamant (1997). + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From 73f570ca84ad67c2f4b1c76ce9458fa86449d372 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 21 Sep 2007 17:20:04 +0200 Subject: Add some comments. --- hurd/logo/boxes-redrawn.svg | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'hurd') diff --git a/hurd/logo/boxes-redrawn.svg b/hurd/logo/boxes-redrawn.svg index af24ae89..fb57bcd2 100644 --- a/hurd/logo/boxes-redrawn.svg +++ b/hurd/logo/boxes-redrawn.svg @@ -6,6 +6,12 @@ Converted to SVG by Thomas Schwinge and Colin Leitner at 09/2007. We used the metafont original from Stephen McCamant (1997). + available on http://www.gnu.org/graphics/hurd_mf.html. + + TODO. The flection of some of the curves is different from the + original. We don't know yet how to exactly reproduce + METAFONT's ``A..B'' syntax. Also the thickness of the lines + may be a different one. - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/logo.mdwn b/logo.mdwn new file mode 100644 index 00000000..aae80561 --- /dev/null +++ b/logo.mdwn @@ -0,0 +1,25 @@ +[[!meta copyright="Copyright © 2007, 2008 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]]."]]"""]] + +The famous *Hurd Boxes* logo is available at +. + + +On some lonely Wednesday, Colin Leitner and [[Thomas_Schwinge|tschwinge]] +converted these four boxes from the [original METAFONT +sources](http://www.gnu.org/graphics/hurd.mf) to +[[hand-written_SVG_code|boxes-redrawn.svg]]. + +[[!img boxes-redrawn.png]] + + +This symbol is also being used as a favicon for this web site. + +[[!img /favicon.ico]] diff --git a/logo/boxes-redrawn.png b/logo/boxes-redrawn.png new file mode 100644 index 00000000..fd26a87e Binary files /dev/null and b/logo/boxes-redrawn.png differ diff --git a/logo/boxes-redrawn.svg b/logo/boxes-redrawn.svg new file mode 100644 index 00000000..c0a7e460 --- /dev/null +++ b/logo/boxes-redrawn.svg @@ -0,0 +1,50 @@ + + + + + The Hurd Boxes and Arrows logo. + + Converted to SVG by Thomas Schwinge and Colin Leitner at 09/2007. + We used the metafont original from Stephen McCamant (1997). + available on http://www.gnu.org/graphics/hurd_mf.html. + + TODO. The flection of some of the curves is different from the + original. We don't know yet how to exactly reproduce + METAFONT's ``A..B'' syntax. Also the thickness of the lines + may be a different one. Elaborate on the copyright situation + and licensing conditions. + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sidebar.mdwn b/sidebar.mdwn index 7d71cd28..159104fc 100644 --- a/sidebar.mdwn +++ b/sidebar.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -9,8 +9,7 @@ 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]]."]]"""]] -Welcome to... [[!img hurd/logo/boxes-redrawn.png link=/hurd/logo]] ... the GNU -Hurd! +Welcome to... [[!img /logo/boxes-redrawn.png link=/logo]] ... the GNU Hurd! * **[[Home|/index]]** * **[[Community]]** -- cgit v1.2.3 From c9b7b4b81037f949e05c6e45979904c790a94c97 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 31 Mar 2010 17:17:28 +0200 Subject: hurd/libports: New. With suggestions by Neal. --- hurd.mdwn | 3 ++- hurd/libports.mdwn | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 hurd/libports.mdwn (limited to 'hurd') diff --git a/hurd.mdwn b/hurd.mdwn index 24bd97f7..e1bb861d 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -1,5 +1,5 @@ [[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -2009 Free Software Foundation, Inc."]] +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 @@ -88,6 +88,7 @@ in the *unstable* branch of the Debian archive. * RPC [[Interface]]s * Libraries * [[libpager]] + * [[libports]] * [[libstore]] * [[libchannel]] * [[libhello_example]] -- Hurd library example diff --git a/hurd/libports.mdwn b/hurd/libports.mdwn new file mode 100644 index 00000000..f9aa518f --- /dev/null +++ b/hurd/libports.mdwn @@ -0,0 +1,16 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +*libports* is a convenience library for easier handling of [[Mach +ports|microkernel/mach/port]]. It is documented in the [[Reference_Manual]]. + +*libports* is not (at least, not for now) a generalization / abstraction of +Mach ports to the functionality the Hurd needs, that is, it is not meant to +provide an interface independently of the underlying [[microkernel]]. -- cgit v1.2.3 From f0e7992f170aa03e5f4e2b364071d1308bbc0574 Mon Sep 17 00:00:00 2001 From: "http://www.rowanthorpe.com/" Date: Mon, 12 Apr 2010 02:07:35 +0000 Subject: scattered small typo/grammar fixes --- hurd/running/gnu/universal_package_manager.mdwn | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'hurd') diff --git a/hurd/running/gnu/universal_package_manager.mdwn b/hurd/running/gnu/universal_package_manager.mdwn index 74c1ac8b..6dca1b24 100644 --- a/hurd/running/gnu/universal_package_manager.mdwn +++ b/hurd/running/gnu/universal_package_manager.mdwn @@ -20,10 +20,10 @@ Basically all package management schemes follow similar approach, it will have a There can be both aproaches - * Re-implement rpm, dpkg... to recognise stow as backend instead of its own data store. In that case we will have to re implement, apt-rpm, yum ... - * Implement a translator which reads stow and show it as an rpm data store for yum, deb data store for apt-get ... + * Re-implement rpm, dpkg... to recognise stow as backend instead of its own data store. In that case we will have to re-implement, apt-rpm, yum ... + * Implement a translator which reads stow and show it as an rpm data store for yum, deb data store for apt-get ... -One goal is obviously choice of packaging and hence availability of more packages. Also this gives maintainers a chioce to continue builing packages for GNU in the format they are already familiar with. The second goal is to demonstrate the flexibility GNU offers in implementing functionality in filesystems (open/read/write interface). +One goal is obviously choice of packaging and hence availability of more packages. Also this gives maintainers a choice to continue building packages for GNU in the format they are already familiar with. The second goal is to demonstrate the flexibility GNU offers in implementing functionality in filesystems (open/read/write interface). ## Why? @@ -40,7 +40,7 @@ With the increased flexibility in implementing filesystems as per the requiremen ## How? - * Installtion of a package is just drag the pacakage (be it a tgz, rpm, deb or an exe) and drop it to the package manager. + * Installation of a package is just drag the package (be it a tgz, rpm, deb or an exe) and drop it to the package manager. * apt-cache search vim --> ls -al /packages/meta/ |grep vim * apt-get install vim --> install vim @@ -77,12 +77,12 @@ just writing the new translator. ## Initial idea -A bit complex than the earlier scheme but it is more exciting and we can look at this schem seriously once we have the simple scheme working. +A bit more complex than the earlier scheme but it is more exciting and we can look at this scheme seriously once we have the simple scheme working. All packages are installed at `/packages/binary//`. -For eaxmple vim 6.4 version can be installed from source like +For example vim 6.4 version can be installed from source like # cd vim64 # ./configure --prefix=/packages/binary/vim/6.4 @@ -99,7 +99,7 @@ Now if you have another vim version, say 7.0 then just follow the steps # make # make install -You have 2 versions of vim and how can you sepcify which one is the current version? You can symlink the current version to select the version you would like to see as default +You have 2 versions of vim and how can you specify which one is the current version? You can symlink the current version to select the version you would like to see as default # ln -s /packages/binary/vim/7.0 /packages/vim/current -- cgit v1.2.3 From f2b1e8ceca8dd514530278d53ecb72b495c42ceb Mon Sep 17 00:00:00 2001 From: "http://www.rowanthorpe.com/" Date: Mon, 12 Apr 2010 02:13:59 +0000 Subject: typo-fix ("interesting" has very different meaning) --- hurd/running/gnu/universal_package_manager.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/running/gnu/universal_package_manager.mdwn b/hurd/running/gnu/universal_package_manager.mdwn index 6dca1b24..e58a2058 100644 --- a/hurd/running/gnu/universal_package_manager.mdwn +++ b/hurd/running/gnu/universal_package_manager.mdwn @@ -141,7 +141,7 @@ v. Add your name below and give a shout in the list. Add your comments here -## Interesting? +## Interested? To join the project just list your name below. -- cgit v1.2.3 From 0baef66ae92136e0ba8d3bb75cf5c41483805391 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 12 Apr 2010 23:18:45 +0200 Subject: hurd/building/cross-compiling: Update. --- hurd/building/cross-compiling.mdwn | 155 ++++++++++++++----------------------- 1 file changed, 56 insertions(+), 99 deletions(-) (limited to 'hurd') diff --git a/hurd/building/cross-compiling.mdwn b/hurd/building/cross-compiling.mdwn index c5dddfb6..75633d44 100644 --- a/hurd/building/cross-compiling.mdwn +++ b/hurd/building/cross-compiling.mdwn @@ -21,10 +21,14 @@ Find it in the [[source repositories/incubator]], *cross-gnu* branch. Read through it. Understand it. Only then use it by following the next steps. -/!\ Be made aware that -- while it is of course possible to build a working -cross-compiler -- this is not trivial to do. You'll have to patch source -packages. See the following list about needed patches, which have not yet been -installed in the upstream repositories. + +## Status + +/!\ Please note that these cross toolchains does not yet encompass all of the +functionality that native toolchains provide. For example, there is only +support for C so far, but not for C++ and other languages. A bunch of fixes / +enhancements of [[glibc]] are missing. We're working towards minimizing these +differences, as well as towards pushing all patches upstream. ### Supported Versions of Source Packages @@ -34,138 +38,95 @@ guarantee is given. Always the preferred version is listed first. * `src/binutils`: [[GNU_Binutils|binutils]] - * CVS `binutils-2_19-branch` - - $ mkdir binutils-2_19-branch - $ cd binutils-2_19-branch - $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src ↩ - co -r binutils-2_19-branch binutils - - The sources are rooted in `binutils-2_19-branch/src/`. Also use these - commands for updating, instead of the usual `cvs update`. - - * The 2.19 release tarball from should - also be fine. - - * CVS `binutils-2_18-branch` + * CVS `binutils-2_20-branch` - $ mkdir binutils-2_18-branch - $ cd binutils-2_18-branch + $ mkdir binutils-2_20-branch + $ cd binutils-2_20-branch/ $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src ↩ - co -r binutils-2_18-branch binutils + co -r binutils-2_20-branch binutils - The sources are rooted in `binutils-2_18-branch/src/`. Also use these + The sources are rooted in `binutils-2_20-branch/src/`. Also use the above commands for updating, instead of the usual `cvs update`. - * The 2.18 release tarball from should - also be fine, as should be all other recent releases. + * Release of the 2.20 series from + should also be fine. * `src/gcc`: [[GNU_Compiler_Collection|gcc]] - * SVN `gcc-4_1-branch` + * SVN `gcc-4_5-branch` - $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch + $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch - Prepare: - - $ ( cd gcc-4_1-branch/ && contrib/gcc_update --touch ) - - * Releases of the 4.1 series from should - also be fine. - - * SVN `gcc-4_2-branch` + Patches: - $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_2-branch - - * Patches: - + * Prepare: - $ ( cd gcc-4_2-branch/ && contrib/gcc_update --touch ) + $ ( cd gcc-4_5-branch/ && contrib/gcc_update --touch ) - * Releases of the 4.2 series from should - also be fine, but need the same set of patches as the `gcc-4_2-branch` - needs. + * SVN `gcc-4_4-branch` - * SVN `gcc-4_3-branch` + $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_4-branch - $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_3-branch + Patches: - * Patches: - + * Prepare: - $ ( cd gcc-4_3-branch/ && contrib/gcc_update --touch ) - - * Releases of the 4.3 series from should - also be fine, but need the same set of patches as the `gcc-4_3-branch` - needs. - - * SVN `trunk` -- upcoming 4.4 series - - $ svn co svn://gcc.gnu.org/svn/gcc/trunk + $ ( cd gcc-4_4-branch/ && contrib/gcc_update --touch ) - Prepare: - - $ ( cd trunk/ && contrib/gcc_update --touch ) + * Releases of the 4.5 and 4.4 series from + should also be fine, but need the same set of patches as the + `gcc-4_5-branch` needs. * `src/gnumach`: [[GNU_Mach|microkernel/mach/gnumach]] - * CVS `gnumach-1-branch` + * Git `master` branch - $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd ↩ - co -r gnumach-1-branch gnumach - $ mv gnumach gnumach-1-branch + $ git clone ↩ + git://git.sv.gnu.org/hurd/gnumach.git gnumach Prepare: - $ ( cd gnumach-1-branch/ && autoreconf -vfi ) + $ ( cd gnumach/ && autoreconf -vi ) * `src/mig`: [[microkernel/mach/mig/GNU_MIG]] - * CVS `HEAD` + * Git `master` branch - $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd co mig + $ git clone ↩ + git://git.sv.gnu.org/hurd/mig.git mig Prepare: - $ ( cd mig/ && autoreconf -vfi ) + $ ( cd mig/ && autoreconf -vi ) * `src/hurd`: [[GNU_Hurd|hurd]] - * CVS `HEAD` - - $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd co hurd + * Git `master` branch - * `src/glibc`: [[GNU_C_Library|glibc]] - - * CVS `glibc-2_7-branch` + $ git clone ↩ + git://git.sv.gnu.org/hurd/hurd.git hurd - $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/glibc ↩ - co -r glibc-2_7-branch glibc - $ mv libc glibc-2_7-branch + * `src/libpthread`: [[libpthread]] - * Patches: - + * Git `tschwinge/Peter_Herbolzheimer` branch - * Recent releases of the 2.7 series from - should also be fine, but need the same set of patches as the - `glibc-2_7-branch` needs. + $ git clone --no-checkout ↩ + git://git.sv.gnu.org/hurd/libpthread.git libpthread + $ cd libpthread/ + $ git checkout origin/tschwinge/Peter_Herbolzheimer - + $ git clone --no-checkout ↩ + git://git.sv.gnu.org/hurd/glibc.git glibc + $ cd glibc/ + $ git checkout origin/tschwinge/Roger_Whittaker -- cgit v1.2.3 From f35c31318e1c99df211e3c24c4132abbe7c775e1 Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Fri, 9 Jul 2010 11:13:53 +0200 Subject: livecds: added instructions for the LiveCD from Justus Winter. --- hurd/running/live_cd.mdwn | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/running/live_cd.mdwn b/hurd/running/live_cd.mdwn index 568b6535..42d85c5b 100644 --- a/hurd/running/live_cd.mdwn +++ b/hurd/running/live_cd.mdwn @@ -8,11 +8,18 @@ Use it like this: $ qemu -cdrom hurd-tiny-cd-20060722.iso +A more recent Live CD can be found at . + +It can be run with qemu via + + $ wget http://teythoon.cryptobitch.de/hurd/livecd/hurd-live-install-1273300101.iso.xz + $ xz -d hurd-live-install-1273300101.iso.xz + $ qemu -cdrom hurd-live-install-1273300101.iso + These [[!wikipedia LiveCD]]s should be useful for those who want to try out the Hurd before they commit to installing it on their hard disks. In addition to that, the bootable Hurd CDs should enable us to have a native installer instead of relying on Linux. - * [[RequirementsForLiveCD]] * [[BuildingHurdLiveCD]] -- cgit v1.2.3 From d1c0ce816a016868a9a9fa0ec42a319e022b8824 Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Mon, 12 Jul 2010 16:11:57 +0200 Subject: Added info and links to the different translators in hurdextras. --- hurd/translator.mdwn | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'hurd') diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index e567938f..44ba4dff 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -71,9 +71,7 @@ Read about translator [[short-circuiting]]. * [[ext2fs]] * [[fatfs]] * [[magic]] -* [[mboxfs]] * [[unionfs]] -* [[xmlfs]] * ... @@ -87,6 +85,24 @@ Read about translator [[short-circuiting]]. * [[nsmux]] * ... +# Translators (only) in Hurdextras + +*These Translators are available in the [hurdextras repository](http://savannah.nongnu.org/cvs/?group=hurdextras) but not yet described on this website. They are in varying stages of Development.* + +* [jfs](http://www.nongnu.org/hurdextras/#jfs) +* [httpfs](http://www.nongnu.org/hurdextras/#httpfs) +* [gopherfs](http://www.nongnu.org/hurdextras/#cvsfs) +* [memfs](http://www.nongnu.org/hurdextras/#gopherfs) +* [netio](http://www.nongnu.org/hurdextras/#netio) +* [notice](http://www.nongnu.org/hurdextras/#notice) +* [pith](http://www.nongnu.org/hurdextras/#pith) +* [pptop](http://www.nongnu.org/hurdextras/#pptop) +* [run](http://www.nongnu.org/hurdextras/#run) +* [smbfs](http://www.nongnu.org/hurdextras/#smbfs) +* [tarfs](http://www.nongnu.org/hurdextras/#tarfs) +* [xmlfs](http://www.nongnu.org/hurdextras/#xmlfs) +* [mboxfs](http://www.nongnu.org/hurdextras/#mboxfs) + # Translator Wishlists -- cgit v1.2.3 From 5ce04abf3d656e138652d22683ced20231eb8015 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 20 Jul 2010 08:09:28 +0200 Subject: hurd/translator/ext2fs: Add link to ``Second Extended File System'' documentation. --- hurd/translator/ext2fs.mdwn | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/translator/ext2fs.mdwn b/hurd/translator/ext2fs.mdwn index 441fb00f..69d035db 100644 --- a/hurd/translator/ext2fs.mdwn +++ b/hurd/translator/ext2fs.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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 @@ -8,11 +9,20 @@ 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]]."]]"""]] +# Issues + The `ext2fs` translator from the upstream Hurd code base can only handle file systems with sizes of less than roughly 2 GiB. +[[!tag open_issue_hurd]] + A patch exists to lift this limitation (and is being used in the [[Debian_GNU/Hurd_distribution|running/debian]]), but it introduces another incompatibility: `ext2fs` then only supports block sizes of 4096 bytes. Smaller block sizes are commonly automatically selected by `mke2fs` when using small backend stores, like floppy devices. + + +# Documentation + + -- cgit v1.2.3 From 399aaf28e538fc1c6f5adda3cf90cc6303b5721b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 23 Jul 2010 21:31:44 +0200 Subject: hurd/libtrivfs: New. --- hurd.mdwn | 1 + hurd/libnetfs.mdwn | 7 ++++--- hurd/libtrivfs.mdwn | 31 +++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 hurd/libtrivfs.mdwn (limited to 'hurd') diff --git a/hurd.mdwn b/hurd.mdwn index 067a15fc..78242651 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -93,6 +93,7 @@ in the *unstable* branch of the Debian archive. * [[libstore]] * [[libchannel]] * [[libhello_example]] -- Hurd library example + * [[libtrivfs]] * [[libnetfs]] -- short introductory material * [[IO_Path]] * [[Porting]] diff --git a/hurd/libnetfs.mdwn b/hurd/libnetfs.mdwn index a2bf47ee..8625f8bc 100644 --- a/hurd/libnetfs.mdwn +++ b/hurd/libnetfs.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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 @@ -33,7 +34,7 @@ which is, generally speaking, seriously different from *libnetfs*. All in all, *libnetfs* is the library you would choose when you want to write a translator which will show a file (or a directory) in a modified way (for example, if you'd like to show only *.sh* files or -make an archive look unpacked). As different from *libtrivfs*, using +make an archive look unpacked). As different from *[[libtrivfs]]*, using *libnetfs*, you can show to your clients not just a single file, but a whole directory tree. @@ -229,7 +230,7 @@ performance or to solve specific problems. ##Synchronization is Crucial A *libnetfs* programmer shall always keep in mind that, as different -from *libtrivfs*-based translators, *libnetfs*-based translators are +from *[[libtrivfs]]*-based translators, *libnetfs*-based translators are always multithreaded. To guard data against damage each node incorporates a lock. Moreover, each light node usually contains a lock, too. This happens because *libnetfs* nodes and light nodes are diff --git a/hurd/libtrivfs.mdwn b/hurd/libtrivfs.mdwn new file mode 100644 index 00000000..b15aeabe --- /dev/null +++ b/hurd/libtrivfs.mdwn @@ -0,0 +1,31 @@ +[[!meta copyright="Copyright © 1994, 1996, 1998, 1999, 2000, 2001, 2002, 2003, +2004, 2005, 2007, 2008, 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]]."]]"""]] + +Certain [[translator]]s do not need to be very complex, because they represent +a single file rather than an entire directory hierarchy. The *trivfs library*, +which is declared in ``, does most of the work of implementing +this kind of translator. This library requires the [[iohelp|libiohelp]] and +[[ports|libports]] libraries. + +Using `libtrivfs` is not the only way to implement such a single-file +translator, but is a convenient abstraction: the library hides a lot of +low-level stuff and you just have to provide a number of call-back functions +and symbols in order to get a functioning (for file I/O, etc.) node in the file +system. + + +# Further Reading + + * In the *[[The_GNU_Hurd_Reference_Manual|reference_manual]]*: + . + + * In the *[[Hurd_Hacking_Guide]]*: + . -- cgit v1.2.3 From e4bc6001d92438b7733aae57b394f3c18bd0f9be Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 23 Jul 2010 21:36:51 +0200 Subject: hurd/translator: Another stance / explanation about what *to translate* means. --- hurd/translator.mdwn | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index 44ba4dff..dc3fd256 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -18,6 +18,12 @@ and [[pfinet]]) and thus translates object invocations into calls appropriate for the backing store (e.g., ext2 file system, nfs server, etc.). +Another way of putting it is that it translates from one representation of a +data structure into another representation, for example from the on-disk +[[ext2|ext2fs]] data layout to a traditional file system hierarchy, or from a +XML file to a virtual hierarchical manifestation. This translation can be a +bidirectional process, but it need not be. + A translator is usually registered with a specific file system node by using the [[`settrans`|settrans]] command. -- cgit v1.2.3 From 5e78541e82cea5718a36424aca5b16070466d32c Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 23 Jul 2010 22:20:07 +0200 Subject: hurd/translator/pfinet/ipv6: No support for IOCTLs. --- hurd/translator/pfinet/ipv6.mdwn | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/translator/pfinet/ipv6.mdwn b/hurd/translator/pfinet/ipv6.mdwn index 996ffd6d..28586620 100644 --- a/hurd/translator/pfinet/ipv6.mdwn +++ b/hurd/translator/pfinet/ipv6.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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 @@ -51,6 +52,11 @@ Quite the same, but with static IPv6 address assignment: -A 2001:4b88:10e4:0:216:3eff:feff:4223/64 -G 2001:4b88:10e4::1 +# Missing Functionality + +Amongst other things, support for [[IOCTL]]s is missing. + + # Binaries For your convenience -- this work is not yet available in the Debian packages -- cgit v1.2.3 From b2971a846e9c54772ff7ba07249d780e45680295 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 23 Jul 2010 22:22:12 +0200 Subject: hurd/translator/pfinet/ipv6: Remove broken link (and obsolete comment). --- hurd/translator/pfinet/ipv6.mdwn | 9 --------- 1 file changed, 9 deletions(-) (limited to 'hurd') diff --git a/hurd/translator/pfinet/ipv6.mdwn b/hurd/translator/pfinet/ipv6.mdwn index 28586620..5afee0c6 100644 --- a/hurd/translator/pfinet/ipv6.mdwn +++ b/hurd/translator/pfinet/ipv6.mdwn @@ -55,12 +55,3 @@ Quite the same, but with static IPv6 address assignment: # Missing Functionality Amongst other things, support for [[IOCTL]]s is missing. - - -# Binaries - -For your convenience -- this work is not yet available in the Debian packages --- binaries of a patched (multicast reception) GNU Mach kernel (including -default driver set and debugging support) and a stripped pfinet translator -(named `pfinet6` here) are being provided at - -- cgit v1.2.3 From f84bf6d706d389d9823f2b1d3a9c660bcc1d6e8b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 23 Jul 2010 22:51:40 +0200 Subject: hurd/debugging/rpctrace: Add another rpctrace issue. --- hurd/debugging/rpctrace.mdwn | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'hurd') diff --git a/hurd/debugging/rpctrace.mdwn b/hurd/debugging/rpctrace.mdwn index 46f40508..ee5ee3e7 100644 --- a/hurd/debugging/rpctrace.mdwn +++ b/hurd/debugging/rpctrace.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -18,6 +18,8 @@ See `rpctrace --help` about how to use it. # Issues and Patches +[[!tag open_issue_hurd]] + * -- don't assert that local port names are valid * -- `rpctrace`d program hangs when signal @@ -26,10 +28,14 @@ See `rpctrace --help` about how to use it. programs hang * -- more readable output +* IRC, unknown channel, unknown date + + how to rpctrace a translator ? + ah, just settrans /usr/bin/rpctrace... + hum, it hung, and killing it got a Mach panic (thread in unexpected + state) ... -# TODO +* IRC, unknown channel, unknown date - how to rpctrace a translator ? - ah, just settrans /usr/bin/rpctrace... - hum, it hung, and killing it got a Mach panic (thread in unexpected - state) ... + hm... for a funny effect, try running rpctrace on + /servers/socket/1, and then use dpkg... ;-) -- cgit v1.2.3 From 53dc2172010dcf373e25423a110547935d854478 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 23 Jul 2010 23:03:55 +0200 Subject: hurd/advantages: Different PLs for separate components. --- hurd/advantages.mdwn | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/advantages.mdwn b/hurd/advantages.mdwn index a181a942..ba3a134b 100644 --- a/hurd/advantages.mdwn +++ b/hurd/advantages.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2001, 2002, 2008 Free Software Foundation, +[[!meta copyright="Copyright © 2001, 2002, 2008, 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -58,3 +58,11 @@ but it does have a number of enticing features: The Hurd is real software that works Right Now. It is not a research project or a proposal. You don't have to wait at all before you can start using and developing it. + +--- + +One advantage of the Hurd's separation of kernel-like functionality into +separate components ([[servers|translator]]) is that these can be constructed +using different programming lanugages, a thing that is not easily possible in a +monolithic kernel. Essentially, only an interface from the programming +environment to the RPC mechanism is required. -- cgit v1.2.3 From 4b1f7411dd9c3b3e20a766cbef071d0010ab842d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 24 Jul 2010 10:39:20 +0200 Subject: hurd/translator/tmpfs/tmpfs_vs_defpager: New. --- hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn | 73 ++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn (limited to 'hurd') diff --git a/hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn b/hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn new file mode 100644 index 00000000..ef041a23 --- /dev/null +++ b/hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn @@ -0,0 +1,73 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +\#hurd, freenode, 2010 + + humm... why does tmpfs try to use the default pager? that's a bad idea, and probably will never work correctly... + * slpz is thinking about old issues + tmpfs should create its own pagers, just like ext2fs, storeio... + slopez@slp-hurd:~$ settrans -a tmp /hurd/tmpfs 10M + slopez@slp-hurd:~$ echo "foo" > tmp/bar + slopez@slp-hurd:~$ cat tmp/bar + foo + slopez@slp-hurd:~$ + :-) + slpz: woo you fixed it? + pochu: well, it's WIP, but reading/writing works... + I've replaced the use of default pager for the standard pager creation mechanism + slpz: err... how is it supposed to use swap space if not using the default pager? + slpz: or do you mean that it should act as a proxy, just allocating anonymous memory (backed by the default pager) itself? + antrik: the kernel uses the default pager if the application pager isn't responsive enough + antrik: it will just create memory objects and provide zerofilled pages when requested by the kernel (after a page fault) + youpi: that makes sense I guess... but how is that relevant to the question at hand?... + antrik: memory objects will contain the data by themselves + antrik: as youpi said, when memory is scarce, GNU Mach will start paging out data from memory objects to the default pager + antrik: that's the way in which pages will get into swap space + (if needed) + the thing being that the tmpfs pager has a chance to select pages he doesn't care any more about + slpz: well, the point is that instead of writing the pages to a backing store, tmpfs will just keep them in anonymous memory, and let the default pager write them out when there is pressure, right? + youpi: no idea what you are talking about. apparently I still don't really understand this stuff :-( + ah, but tmpfs doesn't have pages he doesn't care about, does it? + antrik: yes, but the term "anonymous memory" could be a bit confusing. + antrik: in GNU Mach, anonymous memory is backed by a memory object without a pager. In tmpfs, nodes will be allocated in memory objects, and the pager for those memory objects will be tmpfs itself + slpz: hm... I thought anynymous memory is backed by memory objects created from the default pager? + yes, I understand that tmpfs is supposed to be the pager for the objects it provides. they are obviously not anonymoust -- they have inodes in the tmpfs name space + but my understanding so far was that when Mach returns pages to the pager, they end up in anonymous memory allocated to the pager process; and then this pager is responsible for writing them back to the actual backing store + am I totally off there?... + (i.e. in my understanding the returned pages do not reside in the actual memory object the pager provides, but in an anonymous memory object) + antrik: you're right. The trick here is, when does Mach return the pages? + antrik: if we set the attribute "can_persist" in a memory object, Mach will keep it until object cache is full or memory is scarce + or we change the attributes so it can no longer persist, of course + without a backing store, if Mach starts sending us pages to be written, we're in trouble + so we must do something about it. One option, could be creating another pager and copying the contents between objects. + another pager? not sure what you mean + BTW, you didn't really say why we can't use the default pager for tmpfs objects :-) + well, there're two problems when using the default pager as backing store for translators + 1) Mach relies on it to do swapping tasks, so meddling with it is not a good idea + 2) There're problems with seqnos when trying to work with the default pager from tasks other the kernel itself + (probably, the latter could be fixed) + antrik: pager's terminology is a bit confusing. One can also say creating another memory object (though the function in libpager is "pager_create") + not sure why "meddling" with it would be a problem... + and yeah, I was vaguely aware that there is some seqno problem with tmpfs... though so far I didn't really understand what it was about :-) + makes sense now + anyways, AIUI now you are trying to come up with a mechanism where the default pager is not used for tmpfs objects directly, but without making it inefficient? + slpz: still don't understand what you mean by creating another memory object/pager... + (and yeat, the terminology is pretty mixed up even in Mach itself) + antrik: I meant creating another pager, in terms of calling again to libpager's pager_create + slpz: well, I understand what "create another pager" means... I just don't understand what this other pager would be, when you would create it, and what for... + antrik: oh, ok, sorry + antrik: creating another pager it's just a trick to avoid losing information when Mach's objects cache is full, and it decides to purge one of our objects + anyway, IMHO object caching mechanism is obsolete and should be replaced + I'm writting a comment to bug #28730 which says something about this + antrik: just one more thing :-) + if you look at the code, for most time of their lives, anonymous memory objects don't have a pager + not even the default one + only the pageout thread, when the system is running really low on memory, gives them a reference to the default pager by calling vm_object_pager_create + this is not really important, but worth noting ;-) -- cgit v1.2.3 From 994406fcc9fb1233e70cb0d9c3dd26909f63a001 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 24 Jul 2010 12:30:01 +0200 Subject: hurd/libfshelp: New. --- hurd/libfshelp.mdwn | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 hurd/libfshelp.mdwn (limited to 'hurd') diff --git a/hurd/libfshelp.mdwn b/hurd/libfshelp.mdwn new file mode 100644 index 00000000..4eda91b6 --- /dev/null +++ b/hurd/libfshelp.mdwn @@ -0,0 +1,29 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +TODO. + + +# Open Issues + +[[!tag open_issue_hurd]] + + * IRC, unknown channel, unknown date + + antrik, i had some problems with CLISP. it goes into an infinite loop when there's no stdin or stdout (fshelp closes them when a translator starts). At first I tried to patch it but CLISP has very intricate dependencies on them, so I just created a wraper program (run-lisp-trans) that opens /dev/null as stdin and stdout and then exec's clisp + flavioc, antrik: I would suggest to modify libfshelp to start translators with stdin/stdout mapped to /dev/null. + or is there a good reason not to? + marcus, the problem is in clisp :-), it should not expect that stdin/stdout are always open + flavioc: I agree, but there is really no point in making it hard. many programs will fail if stdin, stdout or stderr are not occupied. historically, they expect them to be there, so IMO libfshelp should be changed + flavioc: it's a simple solution, works everywhere and shouldn't do any harm :) + marcus, I see. should I propose that on the mailing list? :-) + flavioc: it might be simpler to just crack the svn server and sneak it in :) + if you submit a patch I will look at it and check it in if it is ok + and see if Roland is still watching ... :D -- cgit v1.2.3 From 883d6915a37f0266479c9b25d8c911ce1e66d315 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 24 Jul 2010 12:51:44 +0200 Subject: hurd/libihash: IRC discussion. --- hurd/libihash.mdwn | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'hurd') diff --git a/hurd/libihash.mdwn b/hurd/libihash.mdwn index 58b6368c..39692939 100644 --- a/hurd/libihash.mdwn +++ b/hurd/libihash.mdwn @@ -8,6 +8,20 @@ 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]]."]]"""]] + * IRC, unknown channel, unknown date + + [[!tag open_issue_hurd]] + + so, we need a new ihash implementation + marcusb: When 80% full, the collision rate is very high. + marcusb: I tested using 512mb / 4096 entries + marcusb: Changing the load factor to 30% resulted in my program running more than an order of magnitude faster. + yeah, it shouldn't get so full + don't we do an exponential back-off in the array size? + of course it's clear we can do much better + the ihash algo is very simple + I'm not even sure it makes much sense to have a generic library + * Hurd libihash * old @@ -33,3 +47,5 @@ is included in the section entitled * * + + * -- cgit v1.2.3 From 3c2fe7df58c5c6006caab689f4efbd313ad0680c Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 24 Jul 2010 12:57:20 +0200 Subject: hurd/translator: _demuxer functions. --- hurd/translator.mdwn | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'hurd') diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index dc3fd256..75020cb2 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -114,3 +114,28 @@ Read about translator [[short-circuiting]]. * [[wishlist_1]] * [[wishlist_2]] + + +# Internally + +## `*_demuxer` Functions + + * IRC, unknown channel, unknown date + + what is a main idea of _demuxer functions in translators? + jim-crow: Think of a web server. + jim-crow: A typical web server must process many different requests. + jim-crow: There are different types of requests. + jim-crow: For instance, static pages and dynamically gnereated content. + the static pages are processed by one function + and the dynamic pages by another + the thing that makes the decision which of these functions to pass the request to is the demuxer. + neal: ok, I see + but what is actually it doing in trivfs_demuxer? + it looks at the message id and calls the right server stub + for example it calls trivfs_io_server function, but I can't find its implementation + that's my main question :-) + look at the files mig generates + neal: ok, thanks + neal: is this functions where actually stubs are called? + I think so. -- cgit v1.2.3 From f62168322c30b358c2eab478e98b72579a611de4 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 30 Jul 2010 14:43:39 +0200 Subject: open_issues/translator_stdout_stderr: New. --- .../debugging/translator/capturing_stdout_and_stderr.mdwn | 7 +++---- open_issues/translator_stdout_stderr.mdwn | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 open_issues/translator_stdout_stderr.mdwn (limited to 'hurd') diff --git a/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn b/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn index 1e8c4ef6..b7cfc3c9 100644 --- a/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn +++ b/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 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 @@ -33,6 +34,4 @@ using the appropriate glibc magic (`setvbuf`). Otherwise you'll see text in the output files only if either glibc herself decides to flush (after some KiB of text) the after translator exits. -It is a [[!taglink open_issue_hurd]] to decide / implement / fix that -(all?) running (passive?) translators' output should show up on the -console / syslog. +There is also a [[related open issue|open_issues/translator_stdout_stderr]]. diff --git a/open_issues/translator_stdout_stderr.mdwn b/open_issues/translator_stdout_stderr.mdwn new file mode 100644 index 00000000..e0828b28 --- /dev/null +++ b/open_issues/translator_stdout_stderr.mdwn @@ -0,0 +1,15 @@ +[[!meta copyright="Copyright © 2008, 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]]."]]"""]] + +[[!tag open_issue_hurd]] + +Decide / implement / fix that (all?) running (passive?) translators' output +should show up on the (Mach / Hurd) console / syslog. -- cgit v1.2.3 From 6dcdea92da3ed91769ae6cc8dbf659e3a9bcac6f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 30 Jul 2010 15:24:40 +0200 Subject: hurd/libports: Talk about libthreads. --- hurd/libports.mdwn | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'hurd') diff --git a/hurd/libports.mdwn b/hurd/libports.mdwn index f9aa518f..28274338 100644 --- a/hurd/libports.mdwn +++ b/hurd/libports.mdwn @@ -14,3 +14,7 @@ ports|microkernel/mach/port]]. It is documented in the [[Reference_Manual]]. *libports* is not (at least, not for now) a generalization / abstraction of Mach ports to the functionality the Hurd needs, that is, it is not meant to provide an interface independently of the underlying [[microkernel]]. + +*libports* does not itself depend on *[[libthreads]]*, but the appropriate +threading hooks are used if present, that is if *[[libthreads]]* is used by +another component. -- cgit v1.2.3 From 5a99e86ad2627d1d88232d87a31c07e92e4eb22a Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 30 Jul 2010 16:30:04 +0200 Subject: hurd/debugging/rpctrace: More information. --- hurd/debugging/rpctrace.mdwn | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'hurd') diff --git a/hurd/debugging/rpctrace.mdwn b/hurd/debugging/rpctrace.mdwn index ee5ee3e7..de46c08d 100644 --- a/hurd/debugging/rpctrace.mdwn +++ b/hurd/debugging/rpctrace.mdwn @@ -39,3 +39,15 @@ See `rpctrace --help` about how to use it. hm... for a funny effect, try running rpctrace on /servers/socket/1, and then use dpkg... ;-) + +* IRC, unknown channel, unknown date. + + the problem of rpctrace is that it's a man in the middle :) + so in principle, by design authentication stuff shouldn't work + I don't think the Hurd auth mechanism in any way prevents or tries to prevent man-in-the-middle... + maybe, but just try, you'll see all kinds of issue as soon as you have authentication stuff + and the basic reason is that being a man in the middle needs special care + which rpctrace doesn't completely do + it's a while since I have dived into rpctrace; but AIUI, it should work just fine if the proxying is done properly + note that there is a number of known bugs in rpctrace, for which zhengda has sent patches... though I haven't reviewed all of them I think + there are some nasty Mach operations that are really hard to proxy -- but I don't think the auth mechanism needs any of these... -- cgit v1.2.3 From 49ba9b1409a9c36d9d1019c74afc7b5e8d3c5d84 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 30 Jul 2010 16:45:14 +0200 Subject: Add links between hurd/libihash and microkernel/viengoos/projects/new_hash_function. --- hurd/libihash.mdwn | 23 +++++++++++----------- .../viengoos/projects/new_hash_function.mdwn | 5 ++++- 2 files changed, 16 insertions(+), 12 deletions(-) (limited to 'hurd') diff --git a/hurd/libihash.mdwn b/hurd/libihash.mdwn index 39692939..770770c7 100644 --- a/hurd/libihash.mdwn +++ b/hurd/libihash.mdwn @@ -8,9 +8,19 @@ 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]]."]]"""]] - * IRC, unknown channel, unknown date +[[!tag open_issue_hurd]] - [[!tag open_issue_hurd]] + * Hurd libihash + + * old + + * new + + * hurd-l4 libhurd-ihash + + * [[viengoos libhurd-ihash|microkernel/viengoos/projects/new_hash_function]] + + IRC, unknown channel, unknown date so, we need a new ihash implementation marcusb: When 80% full, the collision rate is very high. @@ -22,15 +32,6 @@ is included in the section entitled the ihash algo is very simple I'm not even sure it makes much sense to have a generic library - * Hurd libihash - - * old - - * new - - * hurd-l4 libhurd-ihash - - * viengoos libhurd-ihash # Alternatives? diff --git a/microkernel/viengoos/projects/new_hash_function.mdwn b/microkernel/viengoos/projects/new_hash_function.mdwn index 1747511d..d0374720 100644 --- a/microkernel/viengoos/projects/new_hash_function.mdwn +++ b/microkernel/viengoos/projects/new_hash_function.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 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 @@ -17,3 +18,5 @@ overhead. Find a better algorithm. There can either be one that is appropriate in the general case or one that works well in a relevant, specific case, e.g., viengoos/object.c uses a hash to find the object corresponding to a frame, which is keyed on its physical address. + +Note that this applies to the Hurd's [[hurd/libihash]], too. -- cgit v1.2.3 From f8aec8d7197e04399df1dca296ee8a867e40600c Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Mon, 2 Aug 2010 12:07:37 +0200 Subject: added arch hurd to the distribution list. --- hurd/running/distrib.mdwn | 1 + 1 file changed, 1 insertion(+) (limited to 'hurd') diff --git a/hurd/running/distrib.mdwn b/hurd/running/distrib.mdwn index 92904d19..c197ad0e 100644 --- a/hurd/running/distrib.mdwn +++ b/hurd/running/distrib.mdwn @@ -4,6 +4,7 @@ Working distributions of GNU/Hurd: GNU/Hurd distributions in early stages of development: +* [[Arch|arch_hurd]] (features a LiveCD) * [[Gentoo]] * [[GNU]] -- cgit v1.2.3 From 7c89454f26e1bc703e1cc9b08f9697a3a53844ed Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Mon, 2 Aug 2010 12:08:29 +0200 Subject: added mini-description and mini-status to the Arch Hurd page (mini to keep it maintainable). --- hurd/running/arch_hurd.mdwn | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'hurd') diff --git a/hurd/running/arch_hurd.mdwn b/hurd/running/arch_hurd.mdwn index 6635f415..cc2ad0f2 100644 --- a/hurd/running/arch_hurd.mdwn +++ b/hurd/running/arch_hurd.mdwn @@ -11,3 +11,13 @@ License|/fdl]]."]]"""]] [[!meta title="Arch Hurd"]] + +From the website: + +*Welcome to the Arch Hurd website. Arch Hurd is a derivative work of Arch Linux porting it to the GNU Hurd system with packages optimised for the i686 architecture.* +*…* +*We are attempting to bring the spirit of Arch Linux to the Hurd, and if you'd like to help us achieve that, we'd love to hear from you.* + +Status as of 2010-07-31: + +* LiveCD with [installation guide](http://wiki.archhurd.org/wiki/Installation_Guide). -- cgit v1.2.3 From cf827a2bf875af77c87a70ab512feeb9238ad763 Mon Sep 17 00:00:00 2001 From: zhengda Date: Mon, 2 Aug 2010 14:37:14 +0000 Subject: --- hurd/dde/guide.mdwn | 5 ----- 1 file changed, 5 deletions(-) (limited to 'hurd') diff --git a/hurd/dde/guide.mdwn b/hurd/dde/guide.mdwn index 6518e0e4..72294629 100644 --- a/hurd/dde/guide.mdwn +++ b/hurd/dde/guide.mdwn @@ -60,8 +60,6 @@ suppose you need forcedeth driver Download http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.29.y.git;a=blob_plain;f=drivers/net/forcedeth.c;hb=HEAD from mozilla like browser to /mnt/home as forcedeth.c -Download http://pastebin.com/RJAJT2MR the same way and rename it to 0001-Fix-up-DDE-paths.patch - reboot back to hurd (multiuser) > $ apt-get update @@ -83,8 +81,6 @@ reboot back to hurd (multiuser) > $ cd ../hurd_dde -> $ git am ../0001-Fix-up-DDE-paths.patch - > $ cp -r dde_pcnet32 dde_forcedeth > $ cd dde_forcedeth @@ -106,7 +102,6 @@ reboot back to hurd (multiuser) add these 2 lines after the last #include #include - void get_random_byter(void *buf, int nbytes) { } > $ cd .. -- cgit v1.2.3 From eeff03cf8e1b42022811c225d4af4bcb0385a42e Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 10 Aug 2010 13:48:43 +0200 Subject: open_issues/nice_vs_mach_thread_priorities: New. --- hurd/porting/system_api_limitations.mdwn | 6 +- open_issues/nice_vs_mach_thread_priorities.mdwn | 189 ++++++++++++++++++++++++ 2 files changed, 192 insertions(+), 3 deletions(-) create mode 100644 open_issues/nice_vs_mach_thread_priorities.mdwn (limited to 'hurd') diff --git a/hurd/porting/system_api_limitations.mdwn b/hurd/porting/system_api_limitations.mdwn index 06a6b382..2fac456e 100644 --- a/hurd/porting/system_api_limitations.mdwn +++ b/hurd/porting/system_api_limitations.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2003, 2004, 2005, 2009 Free Software Foundation, -Inc."]] +[[!meta copyright="Copyright © 2003, 2004, 2005, 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 @@ -24,7 +24,7 @@ These are the known system API limits that have porting implications. **_[\#184565](http://bugs.debian.org/184565): libc0.3: missing shm\* functions (from ``)_**
**breaks:** cdrtools
**error:** warning: shm\* is not implemented and will always fail -**_[\#190581](http://bugs.debian.org/190581): nice() doesn't work_**
**breaks:** coreutils
**error:** `nice()` doesn't take effect on some situations +**_[[nice() doesn't work|open_issues/nice_vs_mach_thread_priorities]]_**. **_[\#187391](http://bugs.debian.org/187391): libc0.3-dev: `sockaddr_un.sun_path` can't be assigned a `const char *` when compiling with g++_**
**breaks:** fam, gail
**status:** maybe this should be in [[PortingIssues]] (see _long_ bug log) diff --git a/open_issues/nice_vs_mach_thread_priorities.mdwn b/open_issues/nice_vs_mach_thread_priorities.mdwn new file mode 100644 index 00000000..553a5e84 --- /dev/null +++ b/open_issues/nice_vs_mach_thread_priorities.mdwn @@ -0,0 +1,189 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +[[!tag open_issue_gnumach open_issue_glibc]] + +This issue has been known for some time, due to coreutils' testsuite choking +when testing *nice*: . + +There has been older discussion about this, too, but this is not yet captured +here. + +IRC, #hurd, August 2010 + + I'm reading Mach and POSIX documentation to understand the priorities/nice problems + antrik said it would be better to reimplement everything instead of fixing the current Mach interfaces, though I'm not sure about that yet + uh, so he changed his mind? + it seems POSIX doesn't say nice values should be -20..20, but 0..(2*NZERO - 1) + he said we could just change the max priority value and be done with it :) + so we can probably define NZERO to 16 to match the Mach range of 0..31 + s/said/had said previously/ + youpi: POSIX is actually fucked up regarding the definition of nice values + or at least the version I checked was + antrik: why? this says the range is [0,{NZERO}*2-1], so we can just set NZERO to 16 AFAICS: http://www.opengroup.org/onlinepubs/9699919799/functions/getpriority.html + it talkes about NZERO and all; making it *look* like this could be defined arbitrarily... but in other places, it's clear that the standard 40 level range is always assumed + anyways, I totally see no point in deviating from other systems in this regard. it can only cause problems, and gives us no benefits + it says NZERO should be at least 20 iirc + agreed + I don't remember the details; it's been a while since I looked at this + youpi: changing the number of levels is only part of the issue. I'm not sure why I didn't mention it initially when we discussed this + youpi: I already concluded years ago that it's not possible to implement nice levels correctly with the current Mach interfaces in a sane fashion + (it's probably possible, but only with a stupid hack like setting all the thread priorities one by one) + youpi: also, last time we discussed this, I checked how the nice stuff works currently on Hurd; and concluded that it's so utterly broken, that there is no point in trying to preserve *any* compatibility. I think we can safely throw away any handling that is alread there, and do it over from scratch in the most straightforward fashion + antrik: I've thought about setting NZERO to 16 and doing exactly what you've just said to be a hack (setting all the thread priorities one by one) + but there seems to be consensus that that's undesirable... + indeed, POSIX says NZERO should be at least 20 + pochu: BTW, I forgot to say: I'm not sure you appreciate the complexity of setting the thread max priorities individually + antrik: I don't. would it be too complex? I imagined it would be a simple loop :) + pochu: in order to prevent race conditions, you have to stop all other threads before obtaining the list of threads, and continue them after setting the priority for each + I don't even know whether it can be done without interfering with other thread handling... in which case it gets really really ugly + antrik: btw I'm looking at [gnumach]/kern/thread.[ch], removing the priority stuff as appropriate, and will change the tasks code later + it seems to me that using a more suitable kernel interface will not only be more elegant, but quite possibly actually easier to implement... + antrik: apparently it's not that hard to change the priority for all threads in a task, see task_priority() in gnumach/kern/task.c + it looks like the nice test failures are mostly because of the not 1:1 mapping between nice values and Mach priorities + "Set priority of task; used only for newly created threads." + there is a reason I didn't fix nice 8 years ago + ah there is a change_threads option + marcusb: I'm not sure that comment is correct. that syscall is used by setpriority() + yeah + I didn't read further, where it explains the change_threads options + I was shooting before asking questions :) + pochu: although there are some bad interactions if max_priorities are set per thread + pochu: maybe we are talking past each other. my point was not that it's hard to do in the kernel. I was just saying that it would be painful to do from userspace with the current kernel interface + antrik: you could still use that interface in user space, couldn't you? or maybe I'm misunderstanding... + cfhammar, antrik: current patch: http://emilio.pozuelo.org/~deb/gnumach.patch, main issue is probably what to do with high-priority threads. are there cases where there should be a thread with a high priority but the task's priority shouldn't be high? e.g. what to do with kernel_thread() in [gnumach]/kern/thread.c + i.e. if tasks have a max_priority, then threads shouldn't have a higher priority, but then either we raise the task's max_priority if we need a high-prio thread, or we treat them specially (e.g. new field in struct thread), or maybe it's a non-issue because in such cases, all the task is high-prio? + also I wonder whether I can kill the processor set's max_priority. It seems totally unused (I've checked gnumach, hurd and glibc) + (that would simplify the priority handling) + pochu: btw what does your patch do? i can't remember what was decided + cfhammar: it moves the max_priority from the thread to the task, so raising/lowering it has effect on all of its threads + it also increases the number of run queues (and thus that of priority levels) from 32 to 40 so we can have a 1:1 mapping with nice values + cfhammar: btw don't do a full review yet, just a quick look would be fine for now + why not do priorities from 0 to 159 + then both ranges can be scaled + without loss of precision + neal: there would be from Mach to nice priorities, e.g. a task with a priority of 2 another with 3 would have the same niceness, though their priority isn't really the same + pochu: sure + pochu: but any posix priority would map to a current mach priority and back + sorry, that's not true + a posix priority would map to a new mach priority and bach + and a current mach priority would map to a new mach priority and back + which is I think more desirable than changing to 40 priority levels + neal> and a current mach priority would map to a new mach priority and back <- why should we care about this? + to be compatible with existing mach code + why gratutiously break existing interfaces? + they would break anyway, wouldn't them? i.e. if you do task_set_priority(..., 20), you can't know if the caller is assuming old or new priorities (to leave it as 20 or as 100) + you add a new interface + you should avoid changing the semantics of existing interfaces as much as possible + ok, and deprecate the old ones I guess + following that rule, priorities only break if someone does task_set_priority_new(..., X) and task_get_priority () + there are other users of Mach + I'd add a configure check for the new interface + alternatively, you can check at run time + well if you _set_priority_new(), you should _get_priority_new() :) + it's not always possible + other users of GNU Mach? + you are assuming you have complete control of all the code + this is usually not the case + no, other users of Mach + even apple didn't gratuitously break Mach + in fact, it may make sense to see how apple handles this problem + hmm, I hadn't thought about that + the other thing I don't understand is: "I'd add a configure check for the new interface". a configure check where? in Mach's configure? that doesn't make sense to me + any users of the interface + ok so in clients, e.g. glibc & hurd + yes. + neal: I'm not sure we are winning anything by keeping compatibility with other users of Mach... + neal: we *know* that to make Hurd work really well, we have to do major changes sooner or later. we can just as well start now IMHO + keeping compatibility just seems like extra effort without any benefit for us + just OOC have all other Mach forks, preserved full compatibility? + guillem: Darwin is pretty compatible, as I understand it + pochu: the fundamental approach of changing the task_priority interface to serve as a max priority, and to drop the notion of max priorities from threads, looks fine + pochu: I'm not sure about the thread priority handling + I don't know how thread priorities are supposed to work in chreads and/or pthread + I can only *guess* that they assume a two-stage scheduling process, where the kernel first decides what process to run; and only later which thread in a process... + if that's indeed the case, I don't think it's even possible to implement with the current Mach scheduler + I guess we could work with relative thread priorities if we really want: always have the highest-priority thread run with the task's max priority, and lower the priorities of the other threads accordingly + however, before engaging into this, I think you should better check whether any of the code in Hurd or glibc actually uses thread priorities at all. my guess is that it doesn't + I think we could get away with stubbing out thread priority handling alltogether for now, and just use the task priority for all threads + I agree BTW that it would be useful to check how Darwin handles this + btw do you know where to download the OS X kernel source? I found something called xnu, but I?m not sure that's it + pochu: yeah, that's it + Darwin is the UNIX core of OS X, and Xnu is the actual kernel... + hmm, so they have both a task.priority and a task.max_priority + pochu: thoughts? + neal: they have a priority and a max_priority in the task and in the threads, new threads inherit it from its parent task + then they have a task_priority(task, priority, max_priority) that can change a task's priorities, and it also changes it for all its threads + how does the global run queue work? + and they have 128 run queues, no idea if there's a special reason for that number + neal: sorry, what do you mean? + I don't understand the point of the max_priority parameter + neal: and I don't understand the point of the (base) priority ;) + the max_priority is just that, the maximum priority of a thread, which can be lowered, but can't exceed the max one + the (base) priority, I don't understand what it does, though I haven't looked too hard. maybe it's the one a thread starts at, and must be <= max_priority + pochu: it's clearly documented in the manual, as well as in the code your initial patch changes... + or do you mean the meaning is different in Darwin?... + I was speaking of Darwin, though maybe it's the same as you say + I would assume it's the same. I don't think there would be any point in having the base vs. max priority distinction at all, except to stay in line with standard Mach... + at least I can't see a point in the base priority semantics for use in POSIX systems... + right, it would make sense to always have priority == max_priority ... + neal: so max_priority is that maximum priority, and priority is the one used to calculate the scheduled priority, and can be raised and lowered by the user without giving special permissions as long as he doesn't raise it above max_priority + well this would allow a user to lower a process' priority, and raise it again later, though that may not be allowed by POSIX, so then we would want to have max_priority == priority (or get rid of one of them if possible and backwards compatible) + pochu: right, that's what I think too + BTW, did I bring up handling of thread priorities? I know that I meant to, but I don't remember whether I actually did... + antrik: you told me it'd be ok to just get rid of them for now + so I'm more thinking of fixing max_priority and (base) priority and leaving thread's scheduling priority as it currently is + s/so/though/ + pochu: well, my fear is that keeping the thread priority handling as ist while changing task priority handling would complicate the changes, while giving us no real benefit... + though looking at what Darwin did there should give you an idea what it involves exactly... + antrik: what would you propose, keeping sched_priority == max_priority ? + s/keeping/making/ + yes, if that means what I think it does ;-) + and keeping the priority of all threads equal to the task priority for now + of course this only makes sense if changing it like this is actually simpler than extending the current handling... + again, I can't judge this without actually knowing the code in question. looking at Darwin should give you an idea... + I think leaving it as is, making it work with the task's max_priority changes would be easier + perhaps I'm totally overestimating the amount of changes required to do what Darwin does + OTOH, carrying around dead code isn't exactly helping the maintainability and efficiency of gnumach... + so I'm a bit ambivalent on this + should we go for minimal changes here, or use this occasion to simplify things?... + I guess it would be good to bring this up on the ML + in the context of gsoc i'd say minimal changes + there's also neal's point on keeping backwards compatibility as much as possible + my point was not backwards compatibility at all costs + I'm still not convinced this is a valid point :-) + but to not gratutiously break things + neal: well, I never suggested breaking things just because we can... I only suggested breaking things to make the code and interface simpler :-) + I do not insist on it though + at that time, we did not know how Mac did it + I only think it would be good to get into a habit that Mach interfaces are not sacred... + and, I also had a proposal, which I think is not difficult to implement given the existing patch + but as I said, I do not feel strongly about this. if people feel more confident about a minimal change, I'm fine with that :-) + neal: err... IIRC your proposal was only about the number of nice levels? we are discussing the interface change necessary to implement POSIX semantics properly + or am I misremembering? + antrik: he argues that with that number of nice levels, we could keep backwards compatibility for the 0..31 levels, and for 0..39 for POSIX compatibility + pochu: yes, I remember that part + antrik : My suggestion was: raise the number of nice levels to 160 and introduce a new interface which uses those. Adjust the old interface to space by 160/32 + neal: I think I said it before: the problem is not *only* in the number of priority levels. the semantics are also wrong. which is why Darwin added a max_priority for tasks + what do you mean the semantics are wrong? + I apologize if you already explained this. + hm... I explained it at some point, but I guess you were not present at that conversation + I got disconnected recently so I likely don't have it in backlog. + in POSIX, any process can lower its priority; while only privileged processes can raise it + Mach distinguishes between "current" and "max" priority for threads: "max" behaves like POSIX; while "current" can be raised or lowered at will, as long as it stays below "max" + for tasks, there is only a "current" priority + (which applies to newly created threads, and optionally can be set for all current threads while changing the task priority) + glibc currently uses the existing task priorities, which leads to *completely* broken semantics + instead, we need something like a max task priority -- which is exactly what Darwin added + yes + (the "current" task priority is useless for POSIX semantics as far as I can tell; and regarding thread priorities, I doubt we actually use them at all?...) + where does a new thread get its initial max_priority from? + cfhammar: from the creator thread IIRC + yes -- cgit v1.2.3 From db9cc248fe1e78ebf6bf2a34c7418529d8b4a3b0 Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Wed, 25 Aug 2010 13:58:19 +0200 Subject: note: tarfs needs uatime fix. --- hurd/translator/examples.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'hurd') diff --git a/hurd/translator/examples.mdwn b/hurd/translator/examples.mdwn index 6319df77..2972efde 100644 --- a/hurd/translator/examples.mdwn +++ b/hurd/translator/examples.mdwn @@ -36,7 +36,7 @@ or ftp$ cd ftp.fr.debian.org ftp/ftp.fr.debian.org $ ls -* tarfs translator +* tarfs translator (needs uatime fix, 2010-08-25 → [git repo](http://github.com/giselher/tarfs)) You can use tarfs to mount (almost) any tar file: @@ -50,7 +50,7 @@ You can even use it to create new tar files: $ cp -r all my files new/ $ syncfs new -This is not as fast as `tar czvf newfile.tar.gz all my files` but at least, it's more original. ;) +This is not as fast as `tar czvf newfile.tar.gz all my files`, but at least it's more original. ;) * cvsfs translator -- cgit v1.2.3 From be0f0de2f47f07b609473ecda4b21f15db39470a Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Wed, 25 Aug 2010 13:59:03 +0200 Subject: note: reading tarfiles with tarfs is currently broken. --- hurd/translator/examples.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/translator/examples.mdwn b/hurd/translator/examples.mdwn index 2972efde..ee766fbf 100644 --- a/hurd/translator/examples.mdwn +++ b/hurd/translator/examples.mdwn @@ -38,7 +38,7 @@ or * tarfs translator (needs uatime fix, 2010-08-25 → [git repo](http://github.com/giselher/tarfs)) -You can use tarfs to mount (almost) any tar file: +You can use tarfs to mount (almost) any tar file (currently broken, 2010-08-25): $ settrans -ca a /hurd/tarfs -z myfile.tar.gz $ settrans -ca b /hurd/tarfs -y myfile.tar.bz2 -- cgit v1.2.3 From b6638a3b7e1fae2b7389b899bb9b60a0d9e271cb Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Wed, 25 Aug 2010 17:48:53 +0200 Subject: added nfs translator. --- hurd/translator.mdwn | 1 + 1 file changed, 1 insertion(+) (limited to 'hurd') diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index 75020cb2..8037550b 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -89,6 +89,7 @@ Read about translator [[short-circuiting]]. * [[tmpfs]] * [[procfs]] * [[nsmux]] +* nfs -- easily mount nfs anywhere. See /hurd/nfs * ... # Translators (only) in Hurdextras -- cgit v1.2.3 From e229be53c9f4970723c01a60bf1095917af8974f Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 31 Aug 2010 23:55:17 +0200 Subject: Briefly mention what happened to microkernel ports --- hurd/faq/which_microkernel.mdwn | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 hurd/faq/which_microkernel.mdwn (limited to 'hurd') diff --git a/hurd/faq/which_microkernel.mdwn b/hurd/faq/which_microkernel.mdwn new file mode 100644 index 00000000..bcbc3b55 --- /dev/null +++ b/hurd/faq/which_microkernel.mdwn @@ -0,0 +1,19 @@ +[[!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="What happened to the L4/Coyotos/viengoos micro-kernels?"]] + +L4 was promising but happened to not be suitable for implementing a general-purpose operating system on top if it. See [[history/port_to_l4]]. + +Coyotos is abandoned upstream + +Neal Walfield started working on a newly designed kernel called [[microkernel/viengoos|viengoos]]. Unfortunately, he currently lacks time and the projects it paused. + +In the meanwhile, people are thus continuing with [[microkernel/mach]]. -- cgit v1.2.3 From c5c3527962ef35b3e7851b395d6d1951d9bf2e12 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 31 Aug 2010 23:59:08 +0200 Subject: Explain why you can't share Userspace --- hurd/faq/share_userspace.mdwn | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 hurd/faq/share_userspace.mdwn (limited to 'hurd') diff --git a/hurd/faq/share_userspace.mdwn b/hurd/faq/share_userspace.mdwn new file mode 100644 index 00000000..3dbe2d6d --- /dev/null +++ b/hurd/faq/share_userspace.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]]."]]"""]] + +[[!meta title="could it be possible to dual-boot Linux and Hurd so that everything but the kernel was shared?"]] + + No because the binaries are not compatible between Hurd and Linux, so each one needs its own version of the userspace. + Hurd does use ELF, but not with the same ABI. -- cgit v1.2.3 From 2557e20df4f416d8ebf44a268995ee11d73d726c Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 1 Sep 2010 00:03:31 +0200 Subject: Explain when it'll be ready --- hurd/faq/when_will_it_be_ready.mdwn | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 hurd/faq/when_will_it_be_ready.mdwn (limited to 'hurd') diff --git a/hurd/faq/when_will_it_be_ready.mdwn b/hurd/faq/when_will_it_be_ready.mdwn new file mode 100644 index 00000000..d197c80a --- /dev/null +++ b/hurd/faq/when_will_it_be_ready.mdwn @@ -0,0 +1,19 @@ +[[!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="When will the Hurd be ready for use?"]] + +When it is ready :) + +It is worth noting that it is already ready for use for some +cases. Olaf actually uses it everyday already since years. Two thirds +of the Debian packages are built (not necessarily tested, though). Some +things are however not implemented yet and probably need to be, see +[[community/weblogs/ArneBab/what_we_need]]. -- cgit v1.2.3 From a9c50f471cbb84dfaf00eb76b97cdceeb972fa77 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 1 Sep 2010 00:05:50 +0200 Subject: talk a bit about drivers --- hurd/faq/how_about_drivers.mdwn | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 hurd/faq/how_about_drivers.mdwn (limited to 'hurd') diff --git a/hurd/faq/how_about_drivers.mdwn b/hurd/faq/how_about_drivers.mdwn new file mode 100644 index 00000000..0556fd28 --- /dev/null +++ b/hurd/faq/how_about_drivers.mdwn @@ -0,0 +1,17 @@ +[[!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="What drivers does GNU/Hurd have?"]] + +Currently, Mach integrates drivers from Linux 2.0 through some glue code. As +it's very old, that limits hardware support a lot, of course. We are however +working on using the DDE toolkit to run linux drivers in userland processes, +which provides both long-term support for new hardware and safety against driver +bugs. -- cgit v1.2.3 From 4df8e9bc53ebc996fc9140474391e2abd77ddf6b Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 1 Sep 2010 00:07:55 +0200 Subject: Explain how expensive it is to switch microkernel --- hurd/faq/how_to_switch_microkernels.mdwn | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 hurd/faq/how_to_switch_microkernels.mdwn (limited to 'hurd') diff --git a/hurd/faq/how_to_switch_microkernels.mdwn b/hurd/faq/how_to_switch_microkernels.mdwn new file mode 100644 index 00000000..468fab54 --- /dev/null +++ b/hurd/faq/how_to_switch_microkernels.mdwn @@ -0,0 +1,15 @@ +[[!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="How difficult would it be to switch to another microkernel?"]] + +One thing for sure is to rewrite the mach and sysdeps/mach parts of glibc and +libpthread. Quite a few tools also assume a Mach kernel and would have to be +rewritten. -- cgit v1.2.3 From f0192d1e1cf62a808993d0c5b99a553d19bc5aa2 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 1 Sep 2010 00:13:08 +0200 Subject: this is actually a duplicate --- hurd/faq/when_will_it_be_ready.mdwn | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 hurd/faq/when_will_it_be_ready.mdwn (limited to 'hurd') diff --git a/hurd/faq/when_will_it_be_ready.mdwn b/hurd/faq/when_will_it_be_ready.mdwn deleted file mode 100644 index d197c80a..00000000 --- a/hurd/faq/when_will_it_be_ready.mdwn +++ /dev/null @@ -1,19 +0,0 @@ -[[!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="When will the Hurd be ready for use?"]] - -When it is ready :) - -It is worth noting that it is already ready for use for some -cases. Olaf actually uses it everyday already since years. Two thirds -of the Debian packages are built (not necessarily tested, though). Some -things are however not implemented yet and probably need to be, see -[[community/weblogs/ArneBab/what_we_need]]. -- cgit v1.2.3 From 0a7eb6934349133a44735f4680b0efe6a510d68f Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 1 Sep 2010 00:16:12 +0200 Subject: try to fix link --- hurd/faq/which_microkernel.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/faq/which_microkernel.mdwn b/hurd/faq/which_microkernel.mdwn index bcbc3b55..e16bd495 100644 --- a/hurd/faq/which_microkernel.mdwn +++ b/hurd/faq/which_microkernel.mdwn @@ -14,6 +14,6 @@ L4 was promising but happened to not be suitable for implementing a general-purp Coyotos is abandoned upstream -Neal Walfield started working on a newly designed kernel called [[microkernel/viengoos|viengoos]]. Unfortunately, he currently lacks time and the projects it paused. +Neal Walfield started working on a newly designed kernel called [[viengoos|microkernel/viengoos]]. Unfortunately, he currently lacks time and the projects it paused. In the meanwhile, people are thus continuing with [[microkernel/mach]]. -- cgit v1.2.3 From e8cf531732a046bf5a52581a564bda0569c6c1a4 Mon Sep 17 00:00:00 2001 From: jd823592 Date: Fri, 3 Sep 2010 20:30:36 +0000 Subject: fix typo --- hurd/faq/which_microkernel.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/faq/which_microkernel.mdwn b/hurd/faq/which_microkernel.mdwn index e16bd495..6180dbbb 100644 --- a/hurd/faq/which_microkernel.mdwn +++ b/hurd/faq/which_microkernel.mdwn @@ -10,7 +10,7 @@ License|/fdl]]."]]"""]] [[!meta title="What happened to the L4/Coyotos/viengoos micro-kernels?"]] -L4 was promising but happened to not be suitable for implementing a general-purpose operating system on top if it. See [[history/port_to_l4]]. +L4 was promising but happened to not be suitable for implementing a general-purpose operating system on top of it. See [[history/port_to_l4]]. Coyotos is abandoned upstream -- cgit v1.2.3 From f67536a378772dbf5661c2402f59bcf289841d69 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 4 Sep 2010 09:48:31 +0200 Subject: netio, tarfs: Moved from hurdextras to incubator. --- hurd/translator.mdwn | 6 +++--- hurd/translator/netio.mdwn | 17 +++++++++++++++++ hurd/translator/tarfs.mdwn | 25 +++++++++++++++++++++++++ hurdextras.mdwn | 19 ++++++++++--------- 4 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 hurd/translator/netio.mdwn create mode 100644 hurd/translator/tarfs.mdwn (limited to 'hurd') diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index 8037550b..672f6c9f 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -78,6 +78,7 @@ Read about translator [[short-circuiting]]. * [[fatfs]] * [[magic]] * [[unionfs]] +* [[nfs]] * ... @@ -89,7 +90,8 @@ Read about translator [[short-circuiting]]. * [[tmpfs]] * [[procfs]] * [[nsmux]] -* nfs -- easily mount nfs anywhere. See /hurd/nfs +* [[netio]] +* [[tarfs]] * ... # Translators (only) in Hurdextras @@ -100,13 +102,11 @@ Read about translator [[short-circuiting]]. * [httpfs](http://www.nongnu.org/hurdextras/#httpfs) * [gopherfs](http://www.nongnu.org/hurdextras/#cvsfs) * [memfs](http://www.nongnu.org/hurdextras/#gopherfs) -* [netio](http://www.nongnu.org/hurdextras/#netio) * [notice](http://www.nongnu.org/hurdextras/#notice) * [pith](http://www.nongnu.org/hurdextras/#pith) * [pptop](http://www.nongnu.org/hurdextras/#pptop) * [run](http://www.nongnu.org/hurdextras/#run) * [smbfs](http://www.nongnu.org/hurdextras/#smbfs) -* [tarfs](http://www.nongnu.org/hurdextras/#tarfs) * [xmlfs](http://www.nongnu.org/hurdextras/#xmlfs) * [mboxfs](http://www.nongnu.org/hurdextras/#mboxfs) diff --git a/hurd/translator/netio.mdwn b/hurd/translator/netio.mdwn new file mode 100644 index 00000000..aca9cd69 --- /dev/null +++ b/hurd/translator/netio.mdwn @@ -0,0 +1,17 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +`netio` is a translator designed for creating socket ports through the +filesystem. + + +# Source + +incubator, netio/master diff --git a/hurd/translator/tarfs.mdwn b/hurd/translator/tarfs.mdwn new file mode 100644 index 00000000..e25e3255 --- /dev/null +++ b/hurd/translator/tarfs.mdwn @@ -0,0 +1,25 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +`tarfs` is a translator aimed at providing access to tar files through the +filesystem. This way you don't have to extract files from the archive to +access them. It supports compressed archives (bzip2 and gzip) through +[[libstore]]. + + +# Status + +Works fine on most cases, occasional corruptions when writing using bzip2/gzip +stores. + + +# Source + +incubator, tarfs/master diff --git a/hurdextras.mdwn b/hurdextras.mdwn index c322acb0..07fb4e69 100644 --- a/hurdextras.mdwn +++ b/hurdextras.mdwn @@ -17,6 +17,8 @@ This is about merging some hurdextras stuff into Hurd proper repostitories. ## cvsfs +/!\ Waiting for . + * stesie -- OK ## gopherfs @@ -28,31 +30,30 @@ This is about merging some hurdextras stuff into Hurd proper repostitories. ## libfuse +/!\ Waiting for . + * stesie -- OK ## mboxfs +Tarball-import, plus trivial changes. + * Ludovic Courtes -- OK * mmenal -- NOK (but trivial) -- OK -## netio - - * mo / Moritz Schulte -- OK - ## notice +Tarball-import. + * Wolfgang Jährling -- OK ## run +Tarball-import. + * Marcus Brinkmann -- OK * Manuel Menal -- NOK (but trivial) -- OK -## tarfs - - * Ludovic Courtes -- OK - * Ben Asselstine -- OK - # Not Interesting -- cgit v1.2.3 From f45c10a4dde96ec9f32bce6f88af9e2c8506edbb Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 4 Sep 2010 10:04:11 +0200 Subject: gopherfs: Moved from hurdextras to incubator. --- hurd/translator.mdwn | 1 + hurd/translator/gopherfs.mdwn | 16 ++++++++++++++++ hurdextras.mdwn | 7 ------- 3 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 hurd/translator/gopherfs.mdwn (limited to 'hurd') diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index 672f6c9f..dd5c5b4d 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -92,6 +92,7 @@ Read about translator [[short-circuiting]]. * [[nsmux]] * [[netio]] * [[tarfs]] +* [[gopherfs]] * ... # Translators (only) in Hurdextras diff --git a/hurd/translator/gopherfs.mdwn b/hurd/translator/gopherfs.mdwn new file mode 100644 index 00000000..6c32430f --- /dev/null +++ b/hurd/translator/gopherfs.mdwn @@ -0,0 +1,16 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +`gopherfs` is a virtual filesystem allowing you to access Gopher sites. + + +# Source + +incubator, gopherfs/master diff --git a/hurdextras.mdwn b/hurdextras.mdwn index 9db1c8d6..45a82dab 100644 --- a/hurdextras.mdwn +++ b/hurdextras.mdwn @@ -21,13 +21,6 @@ This is about merging some hurdextras stuff into Hurd proper repostitories. * stesie -- OK -## gopherfs - - * mmenal / Manuel Menal -- NOK (but trivial) -- OK - * Ben Asseltsine -- OK - * mrphython / James A. Morrison -- OK - * Igor Khavkine -- OK - ## libfuse /!\ Waiting for . -- cgit v1.2.3 From d21f5abf22c950e3533062458c655839e5a5f499 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 6 Sep 2010 06:24:48 +0200 Subject: faq/sharing_the_user_space: New. --- faq/sharing_the_user_space.mdwn | 23 +++++++++++++++++++++++ hurd/faq/share_userspace.mdwn | 14 -------------- 2 files changed, 23 insertions(+), 14 deletions(-) create mode 100644 faq/sharing_the_user_space.mdwn delete mode 100644 hurd/faq/share_userspace.mdwn (limited to 'hurd') diff --git a/faq/sharing_the_user_space.mdwn b/faq/sharing_the_user_space.mdwn new file mode 100644 index 00000000..7d09ccc0 --- /dev/null +++ b/faq/sharing_the_user_space.mdwn @@ -0,0 +1,23 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +*Question:* Could it be possible to have a system installation where you can +dual-boot using either the [[Linux]] kernel, or the GNU Hurd, so that +everything but the kernel is shared? + +*Answer:* Given that both Linux and GNU Hurd are using the [[ELF]] binary +format, this could indeed be made possible, if all programs agreed to rely on +only one abstraction layer, for example the standard C library ([[glibc]]). +(Additionally, for example for system calls that are not covered by glibc +calls, you'd need to be able to reliably trap and emulate these.) However, +Linux' and the GNU Hurd's [[ABI]]'s have sufficiently diverged, so that this is +not easy to do. That's why you can't currently install a system in this way, +but you need a separate installation of the userspace suited for the Linux +kernel, or the GNU Hurd. diff --git a/hurd/faq/share_userspace.mdwn b/hurd/faq/share_userspace.mdwn deleted file mode 100644 index 3dbe2d6d..00000000 --- a/hurd/faq/share_userspace.mdwn +++ /dev/null @@ -1,14 +0,0 @@ -[[!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="could it be possible to dual-boot Linux and Hurd so that everything but the kernel was shared?"]] - - No because the binaries are not compatible between Hurd and Linux, so each one needs its own version of the userspace. - Hurd does use ELF, but not with the same ABI. -- cgit v1.2.3 From 7c347a599c9c44560f5be70fa06dfe75100e8051 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 6 Sep 2010 06:45:56 +0200 Subject: Centralized FAQ infrastructure. --- documentation.mdwn | 2 ++ faq.mdwn | 28 ++++++++++++++++++++++++++++ hurd/faq.mdwn | 4 +++- hurd/running/debian/faq.mdwn | 6 +++--- hurd/running/faq.mdwn | 4 ++-- microkernel/faq.mdwn | 5 ++++- sidebar.mdwn | 1 + 7 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 faq.mdwn (limited to 'hurd') diff --git a/documentation.mdwn b/documentation.mdwn index d96cb24b..b8558e9f 100644 --- a/documentation.mdwn +++ b/documentation.mdwn @@ -8,6 +8,8 @@ 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]]."]]"""]] +[[FAQ]] + Documentation for... * [[GNU_Hurd|hurd/documentation]] diff --git a/faq.mdwn b/faq.mdwn new file mode 100644 index 00000000..9167ede6 --- /dev/null +++ b/faq.mdwn @@ -0,0 +1,28 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +[[!meta title="FAQ"]] + +Also see the... + + * [[microkernel FAQ|microkernel/faq]], + + * [[GNU Hurd FAQ|hurd/faq]], + + * [[running GNU Hurd FAQ|hurd/running/faq]], + + * [[Debian GNU/Hurd FAQ|hurd/running/debian/faq]]. + +[[!inline +pages="faq/* and !*/discussion" +show=0 +feeds=no +actions=yes +rootpage="faq" postformtext="Add a new item titled:"]] diff --git a/hurd/faq.mdwn b/hurd/faq.mdwn index be30e1b4..413aaf3f 100644 --- a/hurd/faq.mdwn +++ b/hurd/faq.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 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 @@ -10,6 +10,8 @@ is included in the section entitled [[!meta title="GNU Hurd FAQ"]] +See also other [[/FAQ]]. + [[!inline pages="hurd/faq/* and !*/discussion" show=0 diff --git a/hurd/running/debian/faq.mdwn b/hurd/running/debian/faq.mdwn index b3bd230d..8aaadf9c 100644 --- a/hurd/running/debian/faq.mdwn +++ b/hurd/running/debian/faq.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 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 @@ -10,8 +11,7 @@ is included in the section entitled [[!meta title="Debian GNU/Hurd FAQ"]] -See also the [[Hurd_FAQ|/hurd/FAQ]], [[after_install]], and the [[General FAQ -About Running GNU/Hurd|/hurd/running/faq]]. +See also [[after_install]] instructions, and other [[/FAQ]]. [[!inline pages="hurd/running/debian/faq/* and !*/discussion" diff --git a/hurd/running/faq.mdwn b/hurd/running/faq.mdwn index a59bce7e..2746a20a 100644 --- a/hurd/running/faq.mdwn +++ b/hurd/running/faq.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] +[[!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 @@ -10,7 +10,7 @@ License|/fdl]]."]]"""]] [[!meta title="General FAQ About Running GNU/Hurd"]] -See also the [[Hurd FAQ|hurd/FAQ]], and the [[Debian GNU/Hurd FAQ|debian/faq]]. +See also other [[/FAQ]]. [[!inline pages="hurd/running/faq/* and !*/discussion" diff --git a/microkernel/faq.mdwn b/microkernel/faq.mdwn index aa98403a..fe259f05 100644 --- a/microkernel/faq.mdwn +++ b/microkernel/faq.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 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 @@ -10,6 +11,8 @@ is included in the section entitled [[!meta title="Microkernel FAQ"]] +See also other [[/FAQ]]. + [[!inline pages="microkernel/faq/* and !*/discussion" show=0 diff --git a/sidebar.mdwn b/sidebar.mdwn index 159104fc..d283436b 100644 --- a/sidebar.mdwn +++ b/sidebar.mdwn @@ -14,6 +14,7 @@ Welcome to... [[!img /logo/boxes-redrawn.png link=/logo]] ... the GNU Hurd! * **[[Home|/index]]** * **[[Community]]** * **[[Documentation]]** + * *[[FAQ]]* * **[[Getting Help]]** * **[[Open Issues]]** -- cgit v1.2.3 From f1c19a7790c022996b11f58c955d63e50c23f31a Mon Sep 17 00:00:00 2001 From: "http://www.barrucadu.co.uk/" Date: Mon, 6 Sep 2010 17:08:48 +0000 Subject: Rewrite. --- hurd/running/arch_hurd.mdwn | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'hurd') diff --git a/hurd/running/arch_hurd.mdwn b/hurd/running/arch_hurd.mdwn index cc2ad0f2..9786d144 100644 --- a/hurd/running/arch_hurd.mdwn +++ b/hurd/running/arch_hurd.mdwn @@ -10,14 +10,12 @@ License|/fdl]]."]]"""]] [[!meta title="Arch Hurd"]] - +Arch Hurd is a port of Arch Linux to the GNU Hurd, founded on 2010-01-04 by Michael Walker (Barrucadu) and, with input from a variety of people including Alan McRae (allan), Matthias Lanzinger (melpo), and Alexander Preisinger (giselher), the project has made excellent process. There is a livecd available on the Arch Hurd website, with which you can try or install Arch Hurd. -From the website: +### Links -*Welcome to the Arch Hurd website. Arch Hurd is a derivative work of Arch Linux porting it to the GNU Hurd system with packages optimised for the i686 architecture.* -*…* -*We are attempting to bring the spirit of Arch Linux to the Hurd, and if you'd like to help us achieve that, we'd love to hear from you.* - -Status as of 2010-07-31: - -* LiveCD with [installation guide](http://wiki.archhurd.org/wiki/Installation_Guide). +* Official Website: +* Installation Guide: +* Mailing Lists: +* Forum: +* IRC: #archhurd on irc.freenode.net -- cgit v1.2.3 From a28c06b80bfbecc09312e28ab61a1794d2d2b29b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 14 Sep 2010 14:55:53 +0200 Subject: Merge community/gsoc/project_ideas/procfs into hurd/translator/procfs. --- community/gsoc/project_ideas/libgtop.mdwn | 6 ++--- community/gsoc/project_ideas/procfs.mdwn | 45 ------------------------------- hurd/translator/procfs.mdwn | 32 +++++++++++++++++++++- 3 files changed, 34 insertions(+), 49 deletions(-) delete mode 100644 community/gsoc/project_ideas/procfs.mdwn (limited to 'hurd') diff --git a/community/gsoc/project_ideas/libgtop.mdwn b/community/gsoc/project_ideas/libgtop.mdwn index 14304de2..8eb6953e 100644 --- a/community/gsoc/project_ideas/libgtop.mdwn +++ b/community/gsoc/project_ideas/libgtop.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] +[[!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 @@ -14,8 +14,8 @@ libgtop is a library used by many applications (especially GNOME applications) to abstract the system-specific methods for obtaining information about the current state of the system -- processes running, system load etc. -A [[Linux-compatible_procfs|madhusudancs]] implementation has been created -during GSoC 2008, and should cover a large part of the functionality of +A Linux-compatible [[hurd/translator/procfs]] is available +and should cover a large part of the functionality of libgtop. However, not all necessary information is exported via /proc (even on Linux); there are some bits still missing in the Hurd procfs implementation; and there are a couple of bugs that need to be fixed to make it fully usable. diff --git a/community/gsoc/project_ideas/procfs.mdwn b/community/gsoc/project_ideas/procfs.mdwn deleted file mode 100644 index d4760aae..00000000 --- a/community/gsoc/project_ideas/procfs.mdwn +++ /dev/null @@ -1,45 +0,0 @@ -[[!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 -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="procfs"]] - -Although there is no standard (POSIX or other) for the layout of the `/proc` -pseudo-filesystem, it turned out a very useful facility in GNU/Linux and other -systems, and many tools concerned with process management use it. (`ps`, `top`, -`htop`, `gtop`, `killall`, `pkill`, ...) - -Instead of porting all these tools to use [[hurd/libps]] (Hurd's official method for -accessing process information), they could be made to run out of the box, by -implementing a Linux-compatible `/proc` filesystem for the Hurd. - -The goal is to implement all `/proc` functionality needed for the various process -management tools to work. (On Linux, the `/proc` filesystem is used also for -debugging purposes; but this is highly system-specific anyways, so there is -probably no point in trying to duplicate this functionality as well...) - -The [[existing_partially_working_procfs_implementation|hurd/translator/procfs]] -can serve as a starting point, but needs to be largely rewritten. (It should -use [[hurd/libnetfs]] rather than [[hurd/libtrivfs]]; the data format needs to -change to be more Linux-compatible; and it needs adaptation to newer system -interfaces.) - -This project requires learning [[hurd/translator]] programming, and -understanding some of the internals of process management in the Hurd. It -should not be too hard coding-wise; and the task is very nicely defined by the -existing Linux `/proc` interface -- no design considerations necessary. - -**Note**: We already have several applications for this task. - -Possible mentors: Olaf Buddenhagen (antrik) - -Exercise: Add or fix one piece in the existing procfs translator. - -*Status*: Madhusudan.C.S has implemented a new, fully functional [[procfs|madhusudancs]] for -GSoC 2008. He is still working on some outstanding issues. diff --git a/hurd/translator/procfs.mdwn b/hurd/translator/procfs.mdwn index 404a6764..0247aa33 100644 --- a/hurd/translator/procfs.mdwn +++ b/hurd/translator/procfs.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 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 @@ -8,8 +9,37 @@ 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]]."]]"""]] +Although there is no standard (POSIX or other) for the layout of the `/proc` +pseudo-filesystem, it turned out a very useful facility in GNU/Linux and other +systems, and many tools concerned with process management use it. (`ps`, `top`, +`htop`, `gtop`, `killall`, `pkill`, ...) + +Instead of porting all these tools to use [[libps]] (Hurd's official method for +accessing process information), they could be made to run out of the box, by +implementing a Linux-compatible `/proc` filesystem for the Hurd. + +The goal is to implement all `/proc` functionality needed for the various process +management tools to work. (On Linux, the `/proc` filesystem is used also for +debugging purposes; but this is highly system-specific anyways, so there is +probably no point in trying to duplicate this functionality as well...) + +*Status*: Madhusudan.C.S has implemented a new, fully functional [[procfs|madhusudancs]] for +[[GSoC 2008|community/gsoc/2008]]. + +In August 2010, Jérémie Koenig [published another, new +version](http://lists.gnu.org/archive/html/bug-hurd/2010-08/msg00165.html). + + +# Internals + + +## Old Implementation from [[open_issues/HurdExtras]] + + +## Files opened by various tools + * [[`ps`|procps]] * [[`top`|top]] * [[`htop`|htop]] -- cgit v1.2.3 From 9b6a5bd202ca8f0a99b9d3a17ea3e077aa7fcf41 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 14 Sep 2010 17:32:08 +0200 Subject: hurd/translator/procfs: Imported Jérémie Koenig's version into procfs.git. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hurd/translator/procfs.mdwn | 4 ++++ source_repositories.mdwn | 1 + 2 files changed, 5 insertions(+) (limited to 'hurd') diff --git a/hurd/translator/procfs.mdwn b/hurd/translator/procfs.mdwn index 0247aa33..bc22530f 100644 --- a/hurd/translator/procfs.mdwn +++ b/hurd/translator/procfs.mdwn @@ -26,8 +26,12 @@ probably no point in trying to duplicate this functionality as well...) *Status*: Madhusudan.C.S has implemented a new, fully functional [[procfs|madhusudancs]] for [[GSoC 2008|community/gsoc/2008]]. +# New Implementation by Jérémie Koenig + In August 2010, Jérémie Koenig [published another, new version](http://lists.gnu.org/archive/html/bug-hurd/2010-08/msg00165.html). +This can be found in , +branch *jkoenig/master*. # Internals diff --git a/source_repositories.mdwn b/source_repositories.mdwn index 41ca37be..8729e48b 100644 --- a/source_repositories.mdwn +++ b/source_repositories.mdwn @@ -17,6 +17,7 @@ is included in the section entitled * [[glibc]] * [[incubator]] + * [[hurd/translator/procfs]] * ... ## Branches -- cgit v1.2.3 From d5ae18f16370d7b53412c3aebfdf7df90cb81213 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 15 Sep 2010 05:26:12 +0200 Subject: hurd/translator/procfs: How to build jkoenig's procfs. --- hurd/translator/procfs.mdwn | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'hurd') diff --git a/hurd/translator/procfs.mdwn b/hurd/translator/procfs.mdwn index bc22530f..4f882674 100644 --- a/hurd/translator/procfs.mdwn +++ b/hurd/translator/procfs.mdwn @@ -33,6 +33,15 @@ version](http://lists.gnu.org/archive/html/bug-hurd/2010-08/msg00165.html). This can be found in , branch *jkoenig/master*. +Testing it is as simple as this: + + $ git clone git://git.savannah.gnu.org/hurd/procfs.git + $ cd procfs/ + $ git checkout jkoenig/master + $ make + $ settrans -ca proc procfs --compatible + $ ls -l proc/ + # Internals -- cgit v1.2.3 From 61977258f0d13492f986bb3d2d452056d13821ae Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 15 Sep 2010 05:27:46 +0200 Subject: hurd/translator/procfs: Remove old trace files. --- hurd/translator/procfs.mdwn | 16 +--------------- hurd/translator/procfs/htop.mdwn | 25 ------------------------- hurd/translator/procfs/killall.mdwn | 23 ----------------------- hurd/translator/procfs/procps.mdwn | 23 ----------------------- hurd/translator/procfs/top.mdwn | 18 ------------------ 5 files changed, 1 insertion(+), 104 deletions(-) delete mode 100644 hurd/translator/procfs/htop.mdwn delete mode 100644 hurd/translator/procfs/killall.mdwn delete mode 100644 hurd/translator/procfs/procps.mdwn delete mode 100644 hurd/translator/procfs/top.mdwn (limited to 'hurd') diff --git a/hurd/translator/procfs.mdwn b/hurd/translator/procfs.mdwn index 4f882674..da7eb77c 100644 --- a/hurd/translator/procfs.mdwn +++ b/hurd/translator/procfs.mdwn @@ -43,20 +43,6 @@ Testing it is as simple as this: $ ls -l proc/ -# Internals - - -## Old Implementation from [[open_issues/HurdExtras]] +# Old Implementation from [[open_issues/HurdExtras]] - - -## Files opened by various tools - - * [[`ps`|procps]] - * [[`top`|top]] - * [[`htop`|htop]] - * `gtop` - * [[`killall`|killall]] - * `pkill` - * ... diff --git a/hurd/translator/procfs/htop.mdwn b/hurd/translator/procfs/htop.mdwn deleted file mode 100644 index ce38b92c..00000000 --- a/hurd/translator/procfs/htop.mdwn +++ /dev/null @@ -1,25 +0,0 @@ -[[!meta copyright="Copyright © 2008 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]]."]]"""]] - - open("/proc/stat", O_RDONLY) = 3 - open("/proc/meminfo", O_RDONLY) = 3 - open("/proc/stat", O_RDONLY) = 3 - open("/proc", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 3 - open("/proc/1/task", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 4 - open("/proc/1/status", O_RDONLY) = 4 - open("/proc/1/statm", O_RDONLY) = 4 - open("/proc/1/stat", O_RDONLY) = 4 - open("/proc/1/cmdline", O_RDONLY) = 4 - open("/proc/2/task", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 4 - open("/proc/2/status", O_RDONLY) = 4 - open("/proc/2/statm", O_RDONLY) = 4 - open("/proc/2/stat", O_RDONLY) = 4 - open("/proc/2/cmdline", O_RDONLY) = 4 - [...] diff --git a/hurd/translator/procfs/killall.mdwn b/hurd/translator/procfs/killall.mdwn deleted file mode 100644 index 3d31b51a..00000000 --- a/hurd/translator/procfs/killall.mdwn +++ /dev/null @@ -1,23 +0,0 @@ -[[!meta copyright="Copyright © 2008 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]]."]]"""]] - - open("/proc/stat", O_RDONLY) = 3 - open("/proc/self/stat", O_RDONLY) = 3 - open("/proc/uptime", O_RDONLY) = 3 - open("/proc/sys/kernel/pid_max", O_RDONLY) = 4 - open("/proc/meminfo", O_RDONLY) = 4 - open("/proc", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 5 - open("/proc/1/stat", O_RDONLY) = 6 - open("/proc/1/status", O_RDONLY) = 6 - open("/proc/1/cmdline", O_RDONLY) = 6 - open("/proc/2/stat", O_RDONLY) = 6 - open("/proc/2/status", O_RDONLY) = 6 - open("/proc/2/cmdline", O_RDONLY) = 6 - [...] diff --git a/hurd/translator/procfs/procps.mdwn b/hurd/translator/procfs/procps.mdwn deleted file mode 100644 index 3d31b51a..00000000 --- a/hurd/translator/procfs/procps.mdwn +++ /dev/null @@ -1,23 +0,0 @@ -[[!meta copyright="Copyright © 2008 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]]."]]"""]] - - open("/proc/stat", O_RDONLY) = 3 - open("/proc/self/stat", O_RDONLY) = 3 - open("/proc/uptime", O_RDONLY) = 3 - open("/proc/sys/kernel/pid_max", O_RDONLY) = 4 - open("/proc/meminfo", O_RDONLY) = 4 - open("/proc", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 5 - open("/proc/1/stat", O_RDONLY) = 6 - open("/proc/1/status", O_RDONLY) = 6 - open("/proc/1/cmdline", O_RDONLY) = 6 - open("/proc/2/stat", O_RDONLY) = 6 - open("/proc/2/status", O_RDONLY) = 6 - open("/proc/2/cmdline", O_RDONLY) = 6 - [...] diff --git a/hurd/translator/procfs/top.mdwn b/hurd/translator/procfs/top.mdwn deleted file mode 100644 index 2cba78ad..00000000 --- a/hurd/translator/procfs/top.mdwn +++ /dev/null @@ -1,18 +0,0 @@ -[[!meta copyright="Copyright © 2008 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]]."]]"""]] - - open("/proc/stat", O_RDONLY) = 3 - open("/proc/sys/kernel/pid_max", O_RDONLY) = 3 - open("/proc", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 3 - open("/proc/1/stat", O_RDONLY) = 4 - open("/proc/1/statm", O_RDONLY) = 4 - open("/proc/2/stat", O_RDONLY) = 4 - open("/proc/2/statm", O_RDONLY) = 4 - [...] -- cgit v1.2.3 From 3f11d947b91a9c5f5eaa743ebb9dd38e34a625a4 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 21 Sep 2010 11:45:06 +0200 Subject: libpthread: New. --- community/gsoc/project_ideas/language_bindings.mdwn | 8 +++++--- community/gsoc/project_ideas/pthreads.mdwn | 5 +++-- hurd.mdwn | 1 + hurd/faq/how_to_switch_microkernels.mdwn | 8 ++++---- hurd/running/debian/package_troubleshooting.mdwn | 3 ++- libpthread.mdwn | 19 +++++++++++++++++++ open_issues/some_todo_list.mdwn | 1 - 7 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 libpthread.mdwn (limited to 'hurd') diff --git a/community/gsoc/project_ideas/language_bindings.mdwn b/community/gsoc/project_ideas/language_bindings.mdwn index a27b0d30..460b380b 100644 --- a/community/gsoc/project_ideas/language_bindings.mdwn +++ b/community/gsoc/project_ideas/language_bindings.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 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 @@ -42,8 +43,9 @@ use the latter approach, and can serve as a good example. There is another possible reason for preferring lower-level bindings: Presently, the Hurd server libraries use the cthreads threading library, which -predates the pthread standard prevalent today. There is a pthread library for -the Hurd as well, but it's not possible to use both cthreads and pthreads in +predates the pthread standard prevalent today. There is a +[[pthread library for the Hurd|libpthread]] +as well, but it's not possible to use both cthreads and pthreads in the same executable. Thus, until [[porting_the_Hurd_libraries_to_pthreads|community/gsoc/project_ideas/pthreads]] is finished, implementing bindings for any language that uses pthreads (in the diff --git a/community/gsoc/project_ideas/pthreads.mdwn b/community/gsoc/project_ideas/pthreads.mdwn index a33187f6..2270c774 100644 --- a/community/gsoc/project_ideas/pthreads.mdwn +++ b/community/gsoc/project_ideas/pthreads.mdwn @@ -17,11 +17,12 @@ The Hurd was originally created at a time when the [pthreads standard](http://www.opengroup.org/onlinepubs/009695399/basedefs/pthread.h.html) didn't exist yet. Thus all Hurd servers and libraries are using the old [[cthreads|hurd/libcthreads]] package that came with [[microkernel/Mach]], -which is not compatible with [[pthreads|hurd/libpthread]]. +which is not compatible with pthreads. Not only does that mean that people hacking on Hurd internals have to deal with a non-standard thread package, which nobody is familiar with. Although a -pthreads implementation for the Hurd was created in the meantime, it's not +[[pthreads implementation for the Hurd|libpthread]] +was created in the meantime, it's not possible to use both cthreads and pthreads in the same program. Consequently, pthreads can't presently be used in any Hurd servers -- including translators. diff --git a/hurd.mdwn b/hurd.mdwn index c5627e29..24610f97 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -96,6 +96,7 @@ in the *unstable* branch of the Debian archive. * [[libtrivfs]] * [[libnetfs]] -- short introductory material * [[libihash]] + * [[libpthread]] * [[IO_Path]] * [[Porting]] * [[Debugging]] diff --git a/hurd/faq/how_to_switch_microkernels.mdwn b/hurd/faq/how_to_switch_microkernels.mdwn index 468fab54..21f7a371 100644 --- a/hurd/faq/how_to_switch_microkernels.mdwn +++ b/hurd/faq/how_to_switch_microkernels.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] +[[!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 @@ -10,6 +10,6 @@ License|/fdl]]."]]"""]] [[!meta title="How difficult would it be to switch to another microkernel?"]] -One thing for sure is to rewrite the mach and sysdeps/mach parts of glibc and -libpthread. Quite a few tools also assume a Mach kernel and would have to be -rewritten. +One would have to reimplement the `mach/` and `sysdeps/mach/` parts of +[[glibc]] and [[libpthread]]. Quite a few other Hurd tools also assume a +[[microkernel/Mach]] kernel and would have to be adapted or rewritten. diff --git a/hurd/running/debian/package_troubleshooting.mdwn b/hurd/running/debian/package_troubleshooting.mdwn index 43ecbc77..c6236c2f 100644 --- a/hurd/running/debian/package_troubleshooting.mdwn +++ b/hurd/running/debian/package_troubleshooting.mdwn @@ -17,7 +17,8 @@ You must set up the [[translator/random]] device first. ## An X package hangs at startup without error messages -Observed with GTK programs like xchat, synaptic, inkscape. It is an issue with libpthread that (as of 04 Feb 2007) is still unresolved. Sorry. +Observed with GTK programs like xchat, synaptic, inkscape. It is an issue with +[[libpthread]] that (as of 04 Feb 2007) is still unresolved. Sorry. ## Borked fonts on GTK app diff --git a/libpthread.mdwn b/libpthread.mdwn new file mode 100644 index 00000000..f6210706 --- /dev/null +++ b/libpthread.mdwn @@ -0,0 +1,19 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +[[!meta title="POSIX Threading Library"]] + +Used by / ported to the [[Hurd]] on [[GNU Mach|microkernel/mach/gnumach]], some +[[microkernel/L4]] variants, and [[microkernel/Viengoos]]. + + +# Open Issues + + * [[tag/open_issue_libpthread]] diff --git a/open_issues/some_todo_list.mdwn b/open_issues/some_todo_list.mdwn index 5f8470b7..1f6f5002 100644 --- a/open_issues/some_todo_list.mdwn +++ b/open_issues/some_todo_list.mdwn @@ -51,7 +51,6 @@ From Marcus, 2002: * Are all inode numbers and link counts correct? * We also should have a "make check" test suite. We can add this once Jeff finished his automake patches * pick up the other things - * pthread, definitely. Now that we are so close * new console is basically done * needs integration of course * X switching support -- cgit v1.2.3 From 72f0fbdbac020e532ac430c18442c73243dfceb9 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 4 Oct 2010 11:33:41 +0200 Subject: hurd/translator/unionfs: Link to Linux' overlay file system proposal, 2010-09-20. --- hurd/translator/unionfs.mdwn | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'hurd') diff --git a/hurd/translator/unionfs.mdwn b/hurd/translator/unionfs.mdwn index d1e3868b..2b692cf9 100644 --- a/hurd/translator/unionfs.mdwn +++ b/hurd/translator/unionfs.mdwn @@ -153,3 +153,8 @@ the *mountee* at 0. * [FUSE page about `unionfs`](http://sourceforge.net/apps/mediawiki/fuse/index.php?title=UnionFileSystems) + + * [Linux' overlay file system proposal, + 2010-09-20](http://thread.gmane.org/gmane.linux.kernel/1038413) + + How is this different? -- cgit v1.2.3 From ff42d21836ec433707da4ef4f982f12dedb4e384 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 6 Oct 2010 20:57:19 +0200 Subject: hurd/translator/procfs: Minor bug w/ jkoenig's procfs. --- hurd/translator/procfs.mdwn | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'hurd') diff --git a/hurd/translator/procfs.mdwn b/hurd/translator/procfs.mdwn index da7eb77c..80f822e3 100644 --- a/hurd/translator/procfs.mdwn +++ b/hurd/translator/procfs.mdwn @@ -43,6 +43,15 @@ Testing it is as simple as this: $ ls -l proc/ +## Open Issues + +[[!tag open_issue_hurd]] + + * Files' permissions: + + the only glitch is that files/dirs have the right user as owner, but always with root group + + # Old Implementation from [[open_issues/HurdExtras]] -- cgit v1.2.3 From 378838ad9e7e724a1a3e8c8727f1ba65e995863a Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 6 Oct 2010 22:51:02 +0200 Subject: hurd/translator/procfs/jkoenig: New. --- hurd/translator/procfs.mdwn | 24 +----------- hurd/translator/procfs/jkoenig.mdwn | 76 +++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 23 deletions(-) create mode 100644 hurd/translator/procfs/jkoenig.mdwn (limited to 'hurd') diff --git a/hurd/translator/procfs.mdwn b/hurd/translator/procfs.mdwn index 80f822e3..70448e94 100644 --- a/hurd/translator/procfs.mdwn +++ b/hurd/translator/procfs.mdwn @@ -26,30 +26,8 @@ probably no point in trying to duplicate this functionality as well...) *Status*: Madhusudan.C.S has implemented a new, fully functional [[procfs|madhusudancs]] for [[GSoC 2008|community/gsoc/2008]]. -# New Implementation by Jérémie Koenig -In August 2010, Jérémie Koenig [published another, new -version](http://lists.gnu.org/archive/html/bug-hurd/2010-08/msg00165.html). -This can be found in , -branch *jkoenig/master*. - -Testing it is as simple as this: - - $ git clone git://git.savannah.gnu.org/hurd/procfs.git - $ cd procfs/ - $ git checkout jkoenig/master - $ make - $ settrans -ca proc procfs --compatible - $ ls -l proc/ - - -## Open Issues - -[[!tag open_issue_hurd]] - - * Files' permissions: - - the only glitch is that files/dirs have the right user as owner, but always with root group +# [[New Implementation by Jérémie Koenig|jkoenig]] # Old Implementation from [[open_issues/HurdExtras]] diff --git a/hurd/translator/procfs/jkoenig.mdwn b/hurd/translator/procfs/jkoenig.mdwn new file mode 100644 index 00000000..1275ce52 --- /dev/null +++ b/hurd/translator/procfs/jkoenig.mdwn @@ -0,0 +1,76 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +In August 2010, Jérémie Koenig [published another, new +version](http://lists.gnu.org/archive/html/bug-hurd/2010-08/msg00165.html). +This can be found in , +branch *jkoenig/master*. + +Testing it is as simple as this: + + $ git clone git://git.savannah.gnu.org/hurd/procfs.git + $ cd procfs/ + $ git checkout jkoenig/master + $ make + $ settrans -ca proc procfs --compatible + $ ls -l proc/ + + +# Open Issues + +[[!tag open_issue_hurd]] + + * IRC, #hurd, around September 2010 + + jkoenig: from a quick read, your procfs implementation seems quite + simple, probably much more what I was expecting from Madhusudan (who probably + now hates you :) ) + jkoenig: is it not possible to provide a /proc/self which points at the + client's pid? + (also, shouldn't /proc/version say something else than "Linux"?) + to make linux tools work, no :/ + kfreebsd does that too + really? + yes + (kfreebsd, not freebsd) + does kbsd's one print just "Linux version x.y.z" too, or something + more eg in a second line? + (as curiosity) + % cat /proc/version + Linux version 2.6.16 (des@freebsd.org) (gcc version 4.3.5) #4 Sun Dec + 18 04:30:00 CET 1977 + k + I had some problems with killall5 to read the pid from /proc, Is + this now more reliable? + I haven't tested with jkoenig's implementation + [...] + looks like he did 'self' too, see rootdir_entries[] in rootdir.c + but it doesn't point at self + youpi: there is no way to provide /proc/self, because the server + doesn't know the identity of the client + :/ + youpi: using the existing mechanisms, we would need another magic + lookup type + an alternative idea I discussed with cfhammer once would be for the + client to voluntarily provide it's identity to the server... but that would + be a rather fundamental change that requires careful consideration + also, object migration could be used, so the implementation would be + provided by the server, but the execution would happen in the client... but + that's even more involved :-) + but we've seen how much that'd help with a lot of other stuff + I'm not sure whether we discussed this on the ML at some point, or + only on IRC + it "just" needs to be commited :) + in either case, it can't hurt to bring this up again :-) + + * IRC, #hurd, around October 2010 + + the only glitch is that files/dirs have the right user as + owner, but always with root group -- cgit v1.2.3 From b4479c6803f6cb8f13c96b53fd71b6a27b0b4a8e Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 6 Oct 2010 23:04:23 +0200 Subject: hurd/debugging/trap_in_the_kernel: New. --- hurd/debugging.mdwn | 4 +++- hurd/debugging/trap_in_the_kernel.mdwn | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 hurd/debugging/trap_in_the_kernel.mdwn (limited to 'hurd') diff --git a/hurd/debugging.mdwn b/hurd/debugging.mdwn index 36ab769a..4085244b 100644 --- a/hurd/debugging.mdwn +++ b/hurd/debugging.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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 @@ -20,3 +21,4 @@ is included in the section entitled * [[glibc]] * [[translator]]s + * [[trap_in_the_kernel]] diff --git a/hurd/debugging/trap_in_the_kernel.mdwn b/hurd/debugging/trap_in_the_kernel.mdwn new file mode 100644 index 00000000..11f989e3 --- /dev/null +++ b/hurd/debugging/trap_in_the_kernel.mdwn @@ -0,0 +1,27 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +[[!tag open_issue_gnumach open_issue_documentation]] + +IRC, #hurd, September 2010 + + when an application executes an out instruction in user mode, how is + kernel mode entered? general protection trap? + some sort of trap, yes + I'd rather think about illegal instruction, but yes + hm.. so to debug what happens inside that instruction I'll have to + break at the trap handler. Can I instruct kdb to stop only when a given task + caused the trap? + applications usually don't trap, so what I usually do is to uncomment + the test at the end of user_trap() before the call to kdb_trap() + "if (debug_all_traps_with_kdb && .. " <- that test? + yes + so comment the test to make kdb_trap() called all the time + oh, I understand now :) -- cgit v1.2.3 From 30a9d6e8afd1b8593cef9783509aae385407e1e7 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 7 Oct 2010 00:12:16 +0200 Subject: open_issues/network_file_system_by_just_forwarding_rpcs: New. --- hurd/translator.mdwn | 2 +- ...network_file_system_by_just_forwarding_rpcs.mdwn | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 open_issues/network_file_system_by_just_forwarding_rpcs.mdwn (limited to 'hurd') diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index dd5c5b4d..c3ca1278 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -116,7 +116,7 @@ Read about translator [[short-circuiting]]. * [[wishlist_1]] * [[wishlist_2]] - + * [[open_issues/network_file_system_by_just_forwarding_RPCs]] # Internally diff --git a/open_issues/network_file_system_by_just_forwarding_rpcs.mdwn b/open_issues/network_file_system_by_just_forwarding_rpcs.mdwn new file mode 100644 index 00000000..de1d63a3 --- /dev/null +++ b/open_issues/network_file_system_by_just_forwarding_rpcs.mdwn @@ -0,0 +1,21 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +[[!tag open_issue_hurd]] + +IRC, #hurd, August / September 2010 + + btw, it should be possible to implement a network "filesystem" by + just forwarding RPCs over the network, right? + (of course auth would be an additional concern) + that would open all kinds of possibilities, possibly. + jkoenig: plan9? + I don't know much about plan9 yet. I seem to remember some mach + extension for network transparency being mentionned somewhere.. -- cgit v1.2.3 From ad64e320686bc668e5a89bfde7fae4bd14aff614 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 14 Oct 2010 13:09:36 +0200 Subject: open_issues/latrace: New. --- hurd/debugging.mdwn | 5 +++++ open_issues/latrace.mdwn | 11 +++++++++++ 2 files changed, 16 insertions(+) create mode 100644 open_issues/latrace.mdwn (limited to 'hurd') diff --git a/hurd/debugging.mdwn b/hurd/debugging.mdwn index 4085244b..d6c5b18f 100644 --- a/hurd/debugging.mdwn +++ b/hurd/debugging.mdwn @@ -16,6 +16,11 @@ is included in the section entitled * [[subhurd]] -- running another Hurd system in parallel * [[rpctrace]] -- tracing [[RPC]]s +## To Do + + * [[open_issues/ltrace]] + * [[open_issues/latrace]] + * [[open_issues/profiling]] # About Specific Packages diff --git a/open_issues/latrace.mdwn b/open_issues/latrace.mdwn new file mode 100644 index 00000000..b5a2928c --- /dev/null +++ b/open_issues/latrace.mdwn @@ -0,0 +1,11 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +Check whether works. -- cgit v1.2.3 From e7688db4b05a6dc716f2c2a1ba04cb0d2a1605b8 Mon Sep 17 00:00:00 2001 From: jd823592 Date: Mon, 18 Oct 2010 16:38:29 +0000 Subject: --- hurd/dde/guide.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/dde/guide.mdwn b/hurd/dde/guide.mdwn index 72294629..56f7683c 100644 --- a/hurd/dde/guide.mdwn +++ b/hurd/dde/guide.mdwn @@ -99,7 +99,7 @@ reboot back to hurd (multiuser) > $ nano forcedeth.c -add these 2 lines after the last #include +add this line after the last #include #include -- cgit v1.2.3 From c66c60403a40b9dd0ea105e63b9a34a4ee56ba84 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 19 Oct 2010 11:32:00 +0200 Subject: hurd/building/cross-compiling/discussion: cross-gnu has been moved to the incubator some time ago. --- hurd/building/cross-compiling/discussion.mdwn | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 hurd/building/cross-compiling/discussion.mdwn (limited to 'hurd') diff --git a/hurd/building/cross-compiling/discussion.mdwn b/hurd/building/cross-compiling/discussion.mdwn deleted file mode 100644 index dbe317ad..00000000 --- a/hurd/building/cross-compiling/discussion.mdwn +++ /dev/null @@ -1,26 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008 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]]."]]"""]] - -What happens if the external link goes down? Is there any way to store files -within the wiki itself? --[[vincentvikram]] - -> You can store files in the wiki if you have direct access to the Git -> repository. - -> I'm not sure I'd like arbitrary people to be able to store files in the wiki, -> as that might be abused easily and once a file is stored in the Git -> repository, there's no clean way to get rid of it anymore. Of course, there -> are valid cases for adding raw files, then you can always send me a link and -> ask me to add that file. - -> Now, as for the `cross-gnu` shell script, as I said: it will eventually be -> made part of the Hurd CVS repository. - -> --[[tschwinge]] -- cgit v1.2.3 From 3c6af50a5777f78b16b71fbeb28445d4af40ef4a Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 19 Oct 2010 11:57:21 +0200 Subject: Reorganize some toolchain pages. --- binutils.mdwn | 22 +++- gcc.mdwn | 20 +++- glibc.mdwn | 27 ++++- hurd.mdwn | 4 +- hurd/binutils.mdwn | 11 +- hurd/building.mdwn | 10 +- hurd/building/cross-compiling.mdwn | 205 +----------------------------------- hurd/debugging/glibc.mdwn | 11 +- hurd/gcc.mdwn | 12 +-- hurd/toolchain.mdwn | 15 +-- libpthread.mdwn | 17 ++- news/2010-04-30.mdwn | 3 +- open_issues/ifunc.mdwn | 7 +- open_issues/nightly_builds.mdwn | 4 +- tag.mdwn | 2 +- toolchain.mdwn | 27 +++++ toolchain/cross-gnu.mdwn | 206 +++++++++++++++++++++++++++++++++++++ 17 files changed, 348 insertions(+), 255 deletions(-) create mode 100644 toolchain.mdwn create mode 100644 toolchain/cross-gnu.mdwn (limited to 'hurd') diff --git a/binutils.mdwn b/binutils.mdwn index 3ce28bb1..00926a44 100644 --- a/binutils.mdwn +++ b/binutils.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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 @@ -8,4 +9,21 @@ 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 [GNU Binutils](http://www.gnu.org/software/binutils/). +[[!meta title="GNU Binutils"]] + + +# + + +# Specifics + +Actually *non-*specifics: as these tools primarily deal with low-level parts of +the target architecture and the object file format (ELF ABI), which are +essentially (at least meant to be) the same, there shouldn't be many +differences comparing the binutils between the GNU/Hurd and GNU/Linux ports, +for example. + + +# Open Issues + +[[!inline pages=tag/open_issue_binutils raw=yes feeds=no]] diff --git a/gcc.mdwn b/gcc.mdwn index 81a2a357..2192ab54 100644 --- a/gcc.mdwn +++ b/gcc.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -9,6 +9,22 @@ 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 [GNU Compiler Collection](http://gcc.gnu.org/). +[[!meta title="GNU Compiler Collection"]] + + +# http://gcc.gnu.org/ * [[Open Issues|tag/open_issue_gcc]] + + +# Specifics + +Actually mostly *non-*specifics: apart from the target-specific configuration +machinery, there shouldn't be any major differences within GCC between the +GNU/Hurd and GNU/Linux ports, for example. Especially all the compiler magic +is all the same. + + +# Open Issues + +[[!inline pages=tag/open_issue_gcc raw=yes feeds=no]] diff --git a/glibc.mdwn b/glibc.mdwn index c7e5eeb7..cefbb19c 100644 --- a/glibc.mdwn +++ b/glibc.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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 @@ -8,4 +9,26 @@ 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 [GNU C Library](http://www.gnu.org/software/libc/). +[[!meta title="GNU C Library"]] + + +# + + +## Sources + +For concenience, we maintain our own [[source +repository|source_repositories/glibc]]. + + +# Specifics + +Porting glibc to a specific architecture is non-trivial. + + +## [[Hurd-specific Port|hurd/glibc]] + + +# Open Issues + +[[!inline pages=tag/open_issue_glibc raw=yes feeds=no]] diff --git a/hurd.mdwn b/hurd.mdwn index 24610f97..18748229 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -75,15 +75,13 @@ in the *unstable* branch of the Debian archive. * [[Contributing]] -* [[Building]] - * [[building/Cross-Compiling]] - * [[Open Issues|tag/open_issue_hurd]] # Developer References * [[Rules]] * [[Trackers]] +* [[Building]] * [[Toolchain]] * [[glibc]] * RPC [[Interface]]s diff --git a/hurd/binutils.mdwn b/hurd/binutils.mdwn index 76b0ae60..f9266448 100644 --- a/hurd/binutils.mdwn +++ b/hurd/binutils.mdwn @@ -1,14 +1,11 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] -[[General_information|/binutils]] about the binutils. - -There shouldn't be any differences within the binutils between, for example, -the GNU/Hurd and GNU/Linux ports. +[[!meta redir=/binutils]] diff --git a/hurd/building.mdwn b/hurd/building.mdwn index 01586c84..1674b770 100644 --- a/hurd/building.mdwn +++ b/hurd/building.mdwn @@ -13,6 +13,12 @@ do what you expect it to do is the highest if you try building from the Debian source packages. This is especially true if you want to use your compilation within a Debian system. +Note that for building code to run on GNU/Hurd systems, you need a toolchain +for the GNU Hurd. You can either compile on a GNU/Hurd system, or need a +cross-compiler targeting GNU/Hurd. Our [[toolchain page|toolchain]] has the +details. + + ## Getting the Source Code You can chose between getting the [sources from the developers's @@ -93,10 +99,6 @@ to `make`: This will automatically build all libraries that are required to build the requested server or library. -### Cross Compiling - -Read about [[cross-compiling]]. - ## RPC IDs diff --git a/hurd/building/cross-compiling.mdwn b/hurd/building/cross-compiling.mdwn index d5beade9..1ecfd0bd 100644 --- a/hurd/building/cross-compiling.mdwn +++ b/hurd/building/cross-compiling.mdwn @@ -1,208 +1,11 @@ -[[!meta copyright="Copyright © 2007, 2008, 2010 Free Software Foundation, -Inc."]] +[[!meta copyright="Copyright © 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] -# `cross-gnu` - -[[Thomas_Schwinge|tschwinge]] has written a shell script for building a -complete cross-build environment for GNU/Hurd systems. - -Find it in the [[source repositories/incubator]], *cross-gnu* branch. - - -## Using - -Read through it. Understand it. Only then use it by following the next steps. - - -## Status - -/!\ Please note that these cross toolchains does not yet encompass all of the -functionality that native toolchains provide. For example, there is only -support for C and C++ so far, but not for other languages. A bunch of fixes / -enhancements of [[glibc]] are missing. We're working towards minimizing these -differences, as well as towards pushing all patches upstream. - - -### Supported Versions of Source Packages - -The following ones are known to work. Others may work as well, but no -guarantee is given. Always the preferred version is listed first. - - * `src/binutils`: [[GNU_Binutils|binutils]] - - * CVS `binutils-2_20-branch` - - $ mkdir binutils-2_20-branch - $ cd binutils-2_20-branch/ - $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src ↩ - co -r binutils-2_20-branch binutils - - The sources are rooted in `binutils-2_20-branch/src/`. Also use the above - commands for updating, instead of the usual `cvs update`. - - * Release of the 2.20 series from - should also be fine. - - * `src/gcc`: [[GNU_Compiler_Collection|gcc]] - - * SVN `gcc-4_5-branch` - - $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch - - Patches: - - * - - Prepare: - - $ ( cd gcc-4_5-branch/ && contrib/gcc_update --touch ) - - * SVN `gcc-4_4-branch` - - $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_4-branch - - Patches: - - * - - Prepare: - - $ ( cd gcc-4_4-branch/ && contrib/gcc_update --touch ) - - * Releases of the 4.5 and 4.4 series from - should also be fine, but need the same set of patches as the - `gcc-4_5-branch` needs. - - * `src/gnumach`: [[GNU_Mach|microkernel/mach/gnumach]] - - * Git `master` branch - - $ git clone ↩ - git://git.sv.gnu.org/hurd/gnumach.git gnumach - - Prepare: - - $ ( cd gnumach/ && autoreconf -vi ) - - * `src/mig`: [[microkernel/mach/mig/GNU_MIG]] - - * Git `master` branch - - $ git clone ↩ - git://git.sv.gnu.org/hurd/mig.git mig - - Prepare: - - $ ( cd mig/ && autoreconf -vi ) - - * `src/hurd`: [[GNU_Hurd|hurd]] - - * Git `master` branch - - $ git clone ↩ - git://git.sv.gnu.org/hurd/hurd.git hurd - - * `src/libpthread`: [[libpthread]] - - * Git `tschwinge/Peter_Herbolzheimer` branch - - $ git clone --no-checkout ↩ - git://git.sv.gnu.org/hurd/libpthread.git libpthread - $ cd libpthread/ - $ git checkout origin/tschwinge/Peter_Herbolzheimer - - * `src/glibc`: [[GNU_C_Library|glibc]] - - * Git `tschwinge/Roger_Whittaker` branch - - $ git clone --no-checkout ↩ - git://git.sv.gnu.org/hurd/glibc.git glibc - $ cd glibc/ - $ git checkout origin/tschwinge/Roger_Whittaker - - - - -### Preparation - -Unpack the tarballs if you downloaded any. - -Create a directory where the cross build shall be rooted in and a `src` -subdirectory in there. Then create symbolic links for every of the above -packages: from `src/PACKAGE` to where you stored or unpacked it. If you don't -intend to build several cross compilers or use the source trees otherwise, you -can also directly store the source trees in `src/`. The source trees can be -shared between multiple cross build trees since the packages' build systems are -supposed not to modify the files in the source trees. Not all packages adhere -to that, but they fail to do so only for pre-processed documentation, etc. - -Either make sure that `cross-gnu-env` and `cross-gnu` are found in `$PATH` -(`~/bin/`, for example) or alternatively remember to use their full paths in -the following. - -The system you're running the script on (the *build* system) needs to have a -basic compiling environment installed, i.e., a C compiler with the basic -libraries and `make`. You might also need `flex` and `bison`. For building -recent version of GCC (4.3 onwards) -you'll need to have development packages of GMP and MPFR installed. - - -### Setting Up the Environment - -Do this every time you intend to use the cross compiler: - - $ ROOT=to/the/cross/build/root - $ . cross-gnu-env - -This will set several environment variables, which are later used by (a) the -`cross-gnu` script and (b) by you, the user of the cross compiler. `$TARGET` -will be set by the script, `$PATH` will be adjusted, etc. See the -`cross-gnu-env` file for all environment variables that are set, as well as -their default values. `$ROOT` will be made an absolute path if it isn't -already. - -Later, you'll be able to do things like `../configure --host="$TARGET"` and the -cross compiler will be found automatically. - - -### Creating the Cross Build Environment - -After setting up the environemt, just run `cross-gnu` and watch the messages -flow by. In the end you should see a message: *[...]/cross-gnu: Everything -should be in place now.* - - -### Staying Up-To-Date - -You can re-run `cross-gnu` to rebuild the parts of the sources that have -changed since the last run. This will save a lot of time compared to starting -from scratch again. Also, it is especially useful if you aren't working with -unpacked tarballs, but on CVS's / SVN's / Git's branches or want to quickly get -a new toolchain -with patches you applied to the source trees. However: do *not* use this -technique when doing major changes to the source trees, like switching from GCC -4.4 to GCC 4.5. +[[!meta redir=/toolchain/cross-gnu]] diff --git a/hurd/debugging/glibc.mdwn b/hurd/debugging/glibc.mdwn index 905dd0da..e9817132 100644 --- a/hurd/debugging/glibc.mdwn +++ b/hurd/debugging/glibc.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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 @@ -15,7 +16,7 @@ glibc have been done. First step is having the build of glibc succeed. This is actually more difficult than one might expect as it involves (towards the end of the build -process -- unless you are [[building/cross-compiling]], of course -- that the +process -- unless you are cross-compiling, of course -- that the newly created libraries and loader actually work: they'll be used to run the `rpcgen` program. If that step doesn't succeed, it'll look similar to this: @@ -25,12 +26,10 @@ newly created libraries and loader actually work: they'll be used to run the --- -Unless [[building/cross-compiling]], the next thing you'll probably want to do +Unless cross-compiling, the next thing you'll probably want to do is running the test suite, or parts of it. -Here is a list of known failures: - -[TODO]. +There is a list of [[known failures|open_issues/glibc_testsuite]]. --- diff --git a/hurd/gcc.mdwn b/hurd/gcc.mdwn index 53b5e071..129aa8a9 100644 --- a/hurd/gcc.mdwn +++ b/hurd/gcc.mdwn @@ -1,15 +1,11 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] -[[General_information|/gcc]] about the GCC. - -Apart from the target-specific configuration machinery, there shouldn't be any -major differences within GCC between, for example, the GNU/Hurd and GNU/Linux -ports. Especially all the compiler magic is all the same. +[[!meta redir=/gcc]] diff --git a/hurd/toolchain.mdwn b/hurd/toolchain.mdwn index 8b852089..91d49b2c 100644 --- a/hurd/toolchain.mdwn +++ b/hurd/toolchain.mdwn @@ -1,18 +1,11 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] -* [[binutils]] -* [[GCC]] -* [[glibc]] - -Before beginning to work on the inner parts of the GNU/Hurd toolchain, it's -always profitable to also know how things are done on other systems. Compare, -for example, how things are done differently for GNU/Hurd than they are done -for GNU/Linux. +[[!meta redir=/toolchain]] diff --git a/libpthread.mdwn b/libpthread.mdwn index f6210706..b31876b3 100644 --- a/libpthread.mdwn +++ b/libpthread.mdwn @@ -10,10 +10,21 @@ License|/fdl]]."]]"""]] [[!meta title="POSIX Threading Library"]] -Used by / ported to the [[Hurd]] on [[GNU Mach|microkernel/mach/gnumach]], some -[[microkernel/L4]] variants, and [[microkernel/Viengoos]]. + +# Sources + + + + +# Specifics + +Porting libpthread to a specific architecture is non-trivial. + +Our libpthread is currently used by / ported to the [[Hurd]] on [[GNU +Mach|microkernel/mach/gnumach]], some [[microkernel/L4]] variants, and +[[microkernel/Viengoos]]. # Open Issues - * [[tag/open_issue_libpthread]] +[[!inline pages=tag/open_issue_libpthread raw=yes feeds=no]] diff --git a/news/2010-04-30.mdwn b/news/2010-04-30.mdwn index 131af4ea..254ceb99 100644 --- a/news/2010-04-30.mdwn +++ b/news/2010-04-30.mdwn @@ -51,7 +51,8 @@ else="[[!paste id=full_news]]"]] > package (and these are meant to eventually be submitted upstream). After a > long break, he as well > [updated](http://lists.gnu.org/archive/html/bug-hurd/2010-04/msg00062.html) -> his [[toolchain_cross-compilation_script|hurd/building/cross-compiling]] to +> his toolchain cross-compilation script [[`cross-gnu`|toolchain/cross-gnu]] +> to > the current source code packages, and added C++ support. > On to the Google Summer of Code 2010: we got three students working on the diff --git a/open_issues/ifunc.mdwn b/open_issues/ifunc.mdwn index f005a409..a3c30dc2 100644 --- a/open_issues/ifunc.mdwn +++ b/open_issues/ifunc.mdwn @@ -10,5 +10,8 @@ License|/fdl]]."]]"""]] [[!tag open_issue_binutils open_issue_gcc open_issue_glibc]] -Needs porting / support in binutils and glibc, and probably also some [target -configure magic for GCC support](http://nickclifton.livejournal.com/6612.html). +Needs porting / support in [[/binutils]] and [[/glibc]], and probably also some +target configure magic for [[/GCC]]. + + has a short summary about how to +use it from GCC. diff --git a/open_issues/nightly_builds.mdwn b/open_issues/nightly_builds.mdwn index fb85cee1..506697bb 100644 --- a/open_issues/nightly_builds.mdwn +++ b/open_issues/nightly_builds.mdwn @@ -8,12 +8,12 @@ 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]]."]]"""]] -We'd like to have nightly builds for the whole toolchain, and then do some +We'd like to have nightly builds for the whole [[toolchain]], and then do some automatic [[unit_testing]] on them. Resources: - * the [[hurd/building/cross-compiling]] script + * [[toolchain/cross-gnu]] * As reported in the [[news/2010-05-31]] news, there's Hydra doing nightly builds / Nix packages. diff --git a/tag.mdwn b/tag.mdwn index 590d5d3a..e96e88d5 100644 --- a/tag.mdwn +++ b/tag.mdwn @@ -26,7 +26,7 @@ Most of them should be self-explanatory. * *open_issue_porting* A list of open issues in porting software to run on GNU/Hurd systems. This - list also includes [[hurd/toolchain]]-level items, items that are either + list also includes [[toolchain]]-level items, items that are either already solved in [[Debian GNU/Hurd|hurd/running/debian]] systems (tagged *fixed_in_debian*) or being worked around, so if you're out for working on application-level porting issues, then perusing through the list of diff --git a/toolchain.mdwn b/toolchain.mdwn new file mode 100644 index 00000000..b08dba95 --- /dev/null +++ b/toolchain.mdwn @@ -0,0 +1,27 @@ +[[!meta copyright="Copyright © 2007, 2008, 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]]."]]"""]] + + * [[binutils]] + + * [[GCC]] + + * [[glibc]] + + * [[libpthread]] + + +Before beginning to work on the inner parts of the GNU/Hurd toolchain, it's +always profitable to also know how things are done on other systems. Compare, +for example, how things are done differently for GNU/Hurd than they are done +for GNU/Linux. + + + * [[cross-gnu]] diff --git a/toolchain/cross-gnu.mdwn b/toolchain/cross-gnu.mdwn new file mode 100644 index 00000000..62c55a04 --- /dev/null +++ b/toolchain/cross-gnu.mdwn @@ -0,0 +1,206 @@ +[[!meta copyright="Copyright © 2007, 2008, 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]]."]]"""]] + +[[Thomas_Schwinge|tschwinge]] has written a shell script for building a +complete cross-build environment for GNU/Hurd systems. + +Find it in the [[source_repositories/incubator]], *cross-gnu* branch. + + +# Using + +Read through it. Understand it. Only then use it by following the next steps. + + +# Status + +/!\ Please note that these cross toolchains does not yet encompass all of the +functionality that native toolchains provide. For example, there is only +support for C and C++ so far, but not for other languages. A bunch of fixes / +enhancements of [[glibc]] are missing. We're working towards minimizing these +differences, as well as towards pushing all patches upstream. + + +## Supported Versions of Source Packages + +The following ones are known to work. Others may work as well, but no +guarantee is given. Always the preferred version is listed first. + + * [[`src/binutils`|binutils]] + + * CVS `binutils-2_20-branch` + + $ mkdir binutils-2_20-branch + $ cd binutils-2_20-branch/ + $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src ↩ + co -r binutils-2_20-branch binutils + + The sources are rooted in `binutils-2_20-branch/src/`. Also use the above + commands for updating, instead of the usual `cvs update`. + + * Release of the 2.20 series from + should also be fine. + + * [[`src/gcc`|gcc]] + + * SVN `gcc-4_5-branch` + + $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch + + Patches: + + * + + Prepare: + + $ ( cd gcc-4_5-branch/ && contrib/gcc_update --touch ) + + * SVN `gcc-4_4-branch` + + $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_4-branch + + Patches: + + * + + Prepare: + + $ ( cd gcc-4_4-branch/ && contrib/gcc_update --touch ) + + * Releases of the 4.5 and 4.4 series from + should also be fine, but need the same set of patches as the + `gcc-4_5-branch` needs. + + * [[`src/gnumach`|microkernel/mach/gnumach]] + + * Git `master` branch + + $ git clone ↩ + git://git.sv.gnu.org/hurd/gnumach.git gnumach + + Prepare: + + $ ( cd gnumach/ && autoreconf -vi ) + + * [[`src/mig`|microkernel/mach/mig/gnu_mig]] + + * Git `master` branch + + $ git clone ↩ + git://git.sv.gnu.org/hurd/mig.git mig + + Prepare: + + $ ( cd mig/ && autoreconf -vi ) + + * [[`src/hurd`|hurd]] + + * Git `master` branch + + $ git clone ↩ + git://git.sv.gnu.org/hurd/hurd.git hurd + + * [[`src/libpthread`|libpthread]] + + * Git `tschwinge/Peter_Herbolzheimer` branch + + $ git clone --no-checkout ↩ + git://git.sv.gnu.org/hurd/libpthread.git libpthread + $ cd libpthread/ + $ git checkout origin/tschwinge/Peter_Herbolzheimer + + * [[`src/glibc`|glibc]] + + * Git `tschwinge/Roger_Whittaker` branch + + $ git clone --no-checkout ↩ + git://git.sv.gnu.org/hurd/glibc.git glibc + $ cd glibc/ + $ git checkout origin/tschwinge/Roger_Whittaker + + + + +## Preparation + +Unpack the tarballs if you downloaded any. + +Create a directory where the cross build shall be rooted in and a `src` +subdirectory in there. Then create symbolic links for every of the above +packages: from `src/PACKAGE` to where you stored or unpacked it. If you don't +intend to build several cross compilers or use the source trees otherwise, you +can also directly store the source trees in `src/`. The source trees can be +shared between multiple cross build trees since the packages' build systems are +supposed not to modify the files in the source trees. Not all packages adhere +to that, but they fail to do so only for pre-processed documentation, etc. + +Either make sure that `cross-gnu-env` and `cross-gnu` are found in `$PATH` +(`~/bin/`, for example) or alternatively remember to use their full paths in +the following. + +The system you're running the script on (the *build* system) needs to have a +basic compiling environment installed, i.e., a C compiler with the basic +libraries and `make`. You might also need `flex` and `bison`. For building +recent version of GCC (4.3 onwards) +you'll need to have development packages of GMP and MPFR installed. + + +## Setting Up the Environment + +Do this every time you intend to use the cross compiler: + + $ ROOT=to/the/cross/build/root + $ . cross-gnu-env + +This will set several environment variables, which are later used by (a) the +`cross-gnu` script and (b) by you, the user of the cross compiler. `$TARGET` +will be set by the script, `$PATH` will be adjusted, etc. See the +`cross-gnu-env` file for all environment variables that are set, as well as +their default values. `$ROOT` will be made an absolute path if it isn't +already. + +Later, you'll be able to do things like `../configure --host="$TARGET"` and the +cross compiler will be found automatically. + + +## Creating the Cross Build Environment + +After setting up the environemt, just run `cross-gnu` and watch the messages +flow by. In the end you should see a message: *[...]/cross-gnu: Everything +should be in place now.* + + +## Staying Up-To-Date + +You can re-run `cross-gnu` to rebuild the parts of the sources that have +changed since the last run. This will save a lot of time compared to starting +from scratch again. Also, it is especially useful if you aren't working with +unpacked tarballs, but on CVS's / SVN's / Git's branches or want to quickly get +a new toolchain +with patches you applied to the source trees. However: do *not* use this +technique when doing major changes to the source trees, like switching from GCC +4.4 to GCC 4.5. -- cgit v1.2.3 From 0d41c97e727159917752e7d9f18dbb7a018d157d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 23 Oct 2010 22:37:54 +0200 Subject: hurd/translator/ext2fs/large_stores: Copyright as per Ogi's email. , 2010-09-08. --- hurd/translator/ext2fs/large_stores.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'hurd') diff --git a/hurd/translator/ext2fs/large_stores.txt b/hurd/translator/ext2fs/large_stores.txt index e17a02a5..6e7ffc6f 100644 --- a/hurd/translator/ext2fs/large_stores.txt +++ b/hurd/translator/ext2fs/large_stores.txt @@ -1,3 +1,13 @@ +[[!meta copyright="Copyright © 2005, 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]]."]]"""]] + This is -*- mode: outline -*- * Introduction -- cgit v1.2.3 From 8c808d2fc35892210492128eafe72cffbbc5766f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 23 Oct 2010 23:50:00 +0200 Subject: open_issues/linux_vmsig: New. --- hurd/libpager.mdwn | 7 ++++++- open_issues/linux_vmsig.mdwn | 29 +++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 open_issues/linux_vmsig.mdwn (limited to 'hurd') diff --git a/hurd/libpager.mdwn b/hurd/libpager.mdwn index c9a1c0b6..99f28f2a 100644 --- a/hurd/libpager.mdwn +++ b/hurd/libpager.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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 @@ -14,3 +15,7 @@ Mach [[microkernel/mach/IPC]]'s [[microkernel/mach/ipc/sequence_numbering]]. [GNU Hurd Reference Manual: 4.2 Pager Library](http://www.gnu.org/software/hurd/doc/hurd_5.html#SEC32). + +# Open Issues + + * [[open_issues/linux_vmsig]] diff --git a/open_issues/linux_vmsig.mdwn b/open_issues/linux_vmsig.mdwn new file mode 100644 index 00000000..a4311d3e --- /dev/null +++ b/open_issues/linux_vmsig.mdwn @@ -0,0 +1,29 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +[[!meta title="Linux: vmsig"]] + +[[!tag open_issue_gnumach open_issue_hurd]] + + * *cooperating with the VM when memory pressure increases* + + * *notify user applications of virtual memory events via real-time signals* + +, and discussion at + and +. + +Found this via , which +was linked from [LWN](http://lwn.net/Articles/409416/). + +From a quick glance, this sounds to [[me|tschwinge]] quite a bit like +mechanisms also found in (originating in?) Mach's +[[microkernel/mach/external_pager_mechanism]]. May be worth having a look at +it. -- cgit v1.2.3 From 33809298260e49428610a2000396494d6d30cf1b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 27 Oct 2010 17:59:23 +0200 Subject: hurd/building/cross-compiling: Tag as stable_URL. Huh, this is indeed linked to from external pages. :-) --- hurd/building/cross-compiling.mdwn | 2 ++ 1 file changed, 2 insertions(+) (limited to 'hurd') diff --git a/hurd/building/cross-compiling.mdwn b/hurd/building/cross-compiling.mdwn index 1ecfd0bd..73c19b4d 100644 --- a/hurd/building/cross-compiling.mdwn +++ b/hurd/building/cross-compiling.mdwn @@ -8,4 +8,6 @@ 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]] + [[!meta redir=/toolchain/cross-gnu]] -- cgit v1.2.3 From 11ab53a77367dc9ee6ffc70eccd31b17e610154a Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 10 Nov 2010 00:10:10 +0100 Subject: hurd/running/debian/faq/sshd_only_works_for_root_logins: Issue has been fixed. --- hurd/running/debian/faq/sshd_only_works_for_root_logins.mdwn | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/running/debian/faq/sshd_only_works_for_root_logins.mdwn b/hurd/running/debian/faq/sshd_only_works_for_root_logins.mdwn index 517d59dc..1a3c46e1 100644 --- a/hurd/running/debian/faq/sshd_only_works_for_root_logins.mdwn +++ b/hurd/running/debian/faq/sshd_only_works_for_root_logins.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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 @@ -8,6 +9,11 @@ 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]]."]]"""]] +This isssue has been fixed in the Debian hurd / libc0.3 packages as of 2010-11. +Retire this item sometime after 2011. + +--- + Privilege seperation does not work with Hurd currently. You need to explicitely set `PrivilegeSeparation` to `no` in `/etc/ssh/sshd_options`, just commenting out the entry will not work as it is on by default. Also make sure you have -- cgit v1.2.3 From 512f1951ca41ef1a648a3b55d2ae44da059f5415 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 14 Nov 2010 21:11:45 +0100 Subject: hurd/advantages: Rewritten some bits, and extended. --- hurd/advantages.mdwn | 99 ++++++++++++++++++++++++++-------------------------- 1 file changed, 49 insertions(+), 50 deletions(-) (limited to 'hurd') diff --git a/hurd/advantages.mdwn b/hurd/advantages.mdwn index ba3a134b..254e33f6 100644 --- a/hurd/advantages.mdwn +++ b/hurd/advantages.mdwn @@ -9,60 +9,59 @@ 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 Hurd is not the most advanced kernel known to the planet (yet), -but it does have a number of enticing features: +The GNU Hurd has a number of enticing features: + +It's free software, so anybody can use, modify, and redistribute it under the +terms of the [[GNU General Public License (GPL)|GPL]]. + +It's compatible as it provides a familiar programming and user environment. +For all intents and purposes, the Hurd provides the same facilities as a modern +Unix-like kernel. The Hurd uses the [[GNU C Library|glibc]], whose development +closely tracks standards such as ANSI/ISO, BSD, POSIX, Single Unix, SVID, and +X/Open. + +Unlike other popular kernel software, the Hurd has an object-oriented structure +that allows it to evolve without compromising its design. This structure will +help the Hurd undergo major redesign and modifications without having to be +entirely rewritten. + +The Hurd is built in a very modular fashion. Other Unix-like kernels (Linux, +for example) are also modular in that they allow loading (and unloading) some +components as kernel modules, but the Hurd goes one step further in that most +of the components that constitute the whole kernel are running as separate +user-space processes and are thus using different address spaces that are +isolated from each other. This is a multi-server design based on a +[[microkernel]]. It is not possible that a faulty memory dereference inside +the [[TCP/IP stack|translator/pfinet]] can bring down the whole kernel, and +thus the whole system, which is a real problem in a monolothic Unix kernel +architecture. - * **it's free software** - - Anybody can use, modify, and redistribute it under the terms of the - [[GNU_General_Public_License_(GPL)|GPL]] - - * **it's compatible** - - The Hurd provides a familiar programming and user environment. For all - intents and purposes, the Hurd is a modern Unix-like kernel. The Hurd uses - the [[GNU_C_Library|glibc]], whose development closely tracks standards - such as ANSI/ISO, BSD, POSIX, Single Unix, SVID, and X/Open. - - * **it's built to survive** - - Unlike other popular kernel software, the Hurd has an object-oriented - structure that allows it to evolve without compromising its design. This - structure will help the Hurd undergo major redesign and modifications - without having to be entirely rewritten. - - * **it's scalable** - - The Hurd implementation is aggressively multithreaded so that it runs - efficiently on both single processors and symmetric multiprocessors. The - Hurd interfaces are designed to allow transparent network clusters - (*collectives*), although this feature has not yet been implemented. - - * **it's extensible** - - The Hurd is an attractive platform for learning how to become a kernel - hacker or for implementing new ideas in kernel technology. Every part of - the system is designed to be modified and extended. +One advantage of the Hurd's separation of kernel-like functionality into +separate components ([[servers|translator]]) is that these can be constructed +using different programming lanugages -- a feature that is not easily possible +in a monolithic kernel. Essentially, only an interface from the programming +environment to the [[RPC]] mechanism is required. - * **it's stable** + - The Hurd is real software that works Right Now. It is not a research - project or a proposal. You don't have to wait at all before you can start - using and developing it. +The Hurd is an attractive platform for learning how to become a kernel hacker +or for implementing new ideas in kernel technology. Every part of the system +is designed to be easily modified and extended. ---- +It is possible to develop and test new Hurd kernel components without rebooting +the machine. Running your own kernel components doesn't interfere with other +users, and so no special system privileges are required. The mechanism for +kernel extensions is secure by design: it is impossible to impose your changes +upon other users unless they authorize them or you are the system +administrator. -One advantage of the Hurd's separation of kernel-like functionality into -separate components ([[servers|translator]]) is that these can be constructed -using different programming lanugages, a thing that is not easily possible in a -monolithic kernel. Essentially, only an interface from the programming -environment to the RPC mechanism is required. +The Hurd is real software that works right now. It is not a research project +or a proposal. You don't have to wait at all before you can [[start +using|running]] and [[developing|contributing]] it. -- cgit v1.2.3 From 7cb762b6e691e22c0634f530a7054755ceb93e8f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 14 Nov 2010 21:13:22 +0100 Subject: hurd/challenges: New. --- hurd.mdwn | 2 +- hurd/challenges.mdwn | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 hurd/challenges.mdwn (limited to 'hurd') diff --git a/hurd.mdwn b/hurd.mdwn index 18748229..18987760 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -29,7 +29,7 @@ in the *unstable* branch of the Debian archive. # Introduction * [[What_Is_the_GNU_Hurd]] - A Brief Description -* [[Advantages]] +* [[Advantages]]. And [[challenges]]. * [[History]] * [[history/Port_to_L4]] * [[Logo]] diff --git a/hurd/challenges.mdwn b/hurd/challenges.mdwn new file mode 100644 index 00000000..640b95c9 --- /dev/null +++ b/hurd/challenges.mdwn @@ -0,0 +1,16 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + + + +The GNU Hurd has a lot of [[advantages]], but there are challenges, too. + +There is no successful true multi-server [[microkernel]] system for desktop use +yet. Though, they are quite popular in the simpler embedded space. -- cgit v1.2.3 From 8ef93773281cdcaf65c83c936da0618e30a0766f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 17 Nov 2010 17:46:21 +0100 Subject: hurd/libihash: libstdc++ stuff. --- hurd/libihash.mdwn | 2 ++ 1 file changed, 2 insertions(+) (limited to 'hurd') diff --git a/hurd/libihash.mdwn b/hurd/libihash.mdwn index 770770c7..8da04095 100644 --- a/hurd/libihash.mdwn +++ b/hurd/libihash.mdwn @@ -45,6 +45,8 @@ is included in the section entitled * NNS; cf. f46f0abfee5a2b34451708f2462a1c3b1701facd + * libstdc++: `unordered_map`, `tr1/unordered_map`, `ext/hash_map` + * * -- cgit v1.2.3 From 1e67a761cbfa94a69cec2f5709d23d7983cd0fc1 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 25 Nov 2010 11:55:21 +0100 Subject: Talk about advantages, challenges, how many developers, why so few developers. --- advantages.mdwn | 71 ++++++++++++++++++ challenges.mdwn | 21 ++++++ .../gsoc/project_ideas/language_bindings.mdwn | 2 +- faq/how_many_developers.mdwn | 25 +++++++ faq/why_so_few_developers.mdwn | 27 +++++++ hurd/advantages.mdwn | 67 ----------------- hurd/challenges.mdwn | 16 ---- index.mdwn | 8 +- open_issues/benefits.mdwn | 86 --------------------- .../benefits_of_a_native_hurd_implementation.mdwn | 87 ++++++++++++++++++++++ ...implementing_hurd_on_top_of_another_system.mdwn | 45 +++++------ open_issues/multiprocessing.mdwn | 18 ++--- tag.mdwn | 5 ++ 13 files changed, 276 insertions(+), 202 deletions(-) create mode 100644 advantages.mdwn create mode 100644 challenges.mdwn create mode 100644 faq/how_many_developers.mdwn create mode 100644 faq/why_so_few_developers.mdwn delete mode 100644 hurd/advantages.mdwn delete mode 100644 hurd/challenges.mdwn delete mode 100644 open_issues/benefits.mdwn create mode 100644 open_issues/benefits_of_a_native_hurd_implementation.mdwn (limited to 'hurd') diff --git a/advantages.mdwn b/advantages.mdwn new file mode 100644 index 00000000..18e6506b --- /dev/null +++ b/advantages.mdwn @@ -0,0 +1,71 @@ +[[!meta copyright="Copyright © 2001, 2002, 2008, 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]]."]]"""]] + +The GNU Hurd has a number of enticing features: + +It's free software, so anybody can use, modify, and redistribute it under the +terms of the [[GNU General Public License (GPL)|GPL]]. + +It's compatible as it provides a familiar programming and user environment. +For all intents and purposes, the Hurd provides the same facilities as a modern +[[Unix]]-like kernel. The Hurd uses the [[GNU C Library|glibc]], whose +development closely tracks standards such as ANSI/ISO, BSD, POSIX, Single Unix, +SVID, and X/Open. + +Unlike other popular kernel software, the Hurd has an object-oriented structure +that allows it to evolve without compromising its design. This structure will +help the Hurd undergo major redesign and modifications without having to be +entirely rewritten. + +The Hurd is built in a very modular fashion. Other Unix-like kernels (Linux, +for example) are also modular in that they allow loading (and unloading) some +components as kernel modules, but the Hurd goes one step further in that most +of the components that constitute the whole kernel are running as separate +user-space processes and are thus using different address spaces that are +isolated from each other. This is a multi-server design based on a +[[microkernel]]. It is not possible that a faulty memory dereference inside +the [[TCP/IP stack|hurd/translator/pfinet]] can bring down the whole kernel, +and thus the whole system, which is a real problem in a monolothic Unix kernel +architecture. + +One advantage of the Hurd's separation of kernel-like functionality into +separate components ([[servers|hurd/translator]]) is that these can be +constructed using different programming lanugages -- a feature that is not +easily possible in a monolithic kernel. Essentially, only an interface from +the programming environment to the [[RPC]] mechanism is required. (We have a +[[project proposal|community/gsoc/project_ideas/language_bindings]] for this, +if you're interested.) + + + +The Hurd is an attractive platform for learning how to become a kernel hacker +or for implementing new ideas in kernel technology. Every part of the system +is designed to be easily modified and extended. + +It is possible to develop and test new Hurd kernel components without rebooting +the machine. Running your own kernel components doesn't interfere with other +users, and so no special system privileges are required. The mechanism for +kernel extensions is secure by design: it is impossible to impose your changes +upon other users unless they authorize them or you are the system +administrator. + +The Hurd is real software that works right now. It is not a research project +or a proposal. You don't have to wait at all before you can [[start +using|hurd/running]] and [[developing|contributing]] it. + + diff --git a/challenges.mdwn b/challenges.mdwn new file mode 100644 index 00000000..5368ae4e --- /dev/null +++ b/challenges.mdwn @@ -0,0 +1,21 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +The GNU Hurd has a lot of [[advantages]], but there are challenges, too. + +Even though they're quite popular in the simpler embedded space, there is no +successful true multi-server [[microkernel]] system for general-purpose desktop +use yet. This is still an ongoing research effort. (TODO: add references.) + +Likewise, resource scheduling in distributed operating system kernels is a +research topic. For example, read more about it on the relevant [[Open Issues +page|open_issues/multiprocessing]]. + +TODO: more to come. [[!tag open_issue_documentation]] diff --git a/community/gsoc/project_ideas/language_bindings.mdwn b/community/gsoc/project_ideas/language_bindings.mdwn index 460b380b..c8a02390 100644 --- a/community/gsoc/project_ideas/language_bindings.mdwn +++ b/community/gsoc/project_ideas/language_bindings.mdwn @@ -20,7 +20,7 @@ However, in practice this is not as easy as it should, because creating translators and other servers is quite involved -- the interfaces for doing that are not exactly simple, and available only for C programs. Being able to easily create simple translators in RAD languages is highly desirable, to -really be able to reap the advantages of the Hurd architecture. +really be able to reap the [[advantages]] of the Hurd architecture. Originally Lisp was meant to be the second system language besides C in the GNU system; but that doesn't mean we are bound to Lisp. Bindings for any popular diff --git a/faq/how_many_developers.mdwn b/faq/how_many_developers.mdwn new file mode 100644 index 00000000..a553df21 --- /dev/null +++ b/faq/how_many_developers.mdwn @@ -0,0 +1,25 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +[[!meta title="How many developers are working on the GNU Hurd?"]] + +Not many. One handful work on it in their free time, and another two +handful do help with [[Debian GNU/Hurd|hurd/running/debian]] and +[[hurd/running/Arch_Hurd]] packaging. Also, an additional handful of +former developers are still availble for answering technical questions, +but are not really participating in the current development anymore. + +For reaching out to new developers, we're participating in [[Google's +Summer of Code program|community/gsoc]]. Likewise, any interested party +(*you*!) are very welcome to start [[contributing]]. Mentoring is +possible, too, to help you get started. + +Continue reading some speculation about [[why so few developers]] are working +on the GNU Hurd. diff --git a/faq/why_so_few_developers.mdwn b/faq/why_so_few_developers.mdwn new file mode 100644 index 00000000..a2740abc --- /dev/null +++ b/faq/why_so_few_developers.mdwn @@ -0,0 +1,27 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +[[!meta title="Why are there so few developers working on the GNU +Hurd?"]] + +[[There aren't working a lot of people on the GNU +Hurd|how_many_developers]]. Why is this? + +We can only speculate. One major problem might be that the +[[architectural benefits|advantages]] are generally perceived as very +abstract, with little practical benefits. We don't have many tools to +present actually making use of the possibilities. + +Another reason is that it's been taking too long. Most people don't +believe it will ever be ready for production use, and thus would consider +involvement a waste of time. This latter point is invalid, of course, as +learning can never be a waste of time. The same holds for the +[[challenges]] raised by the GNU Hurd -- we can only learn and improve +upon working on them. diff --git a/hurd/advantages.mdwn b/hurd/advantages.mdwn deleted file mode 100644 index 254e33f6..00000000 --- a/hurd/advantages.mdwn +++ /dev/null @@ -1,67 +0,0 @@ -[[!meta copyright="Copyright © 2001, 2002, 2008, 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]]."]]"""]] - -The GNU Hurd has a number of enticing features: - -It's free software, so anybody can use, modify, and redistribute it under the -terms of the [[GNU General Public License (GPL)|GPL]]. - -It's compatible as it provides a familiar programming and user environment. -For all intents and purposes, the Hurd provides the same facilities as a modern -Unix-like kernel. The Hurd uses the [[GNU C Library|glibc]], whose development -closely tracks standards such as ANSI/ISO, BSD, POSIX, Single Unix, SVID, and -X/Open. - -Unlike other popular kernel software, the Hurd has an object-oriented structure -that allows it to evolve without compromising its design. This structure will -help the Hurd undergo major redesign and modifications without having to be -entirely rewritten. - -The Hurd is built in a very modular fashion. Other Unix-like kernels (Linux, -for example) are also modular in that they allow loading (and unloading) some -components as kernel modules, but the Hurd goes one step further in that most -of the components that constitute the whole kernel are running as separate -user-space processes and are thus using different address spaces that are -isolated from each other. This is a multi-server design based on a -[[microkernel]]. It is not possible that a faulty memory dereference inside -the [[TCP/IP stack|translator/pfinet]] can bring down the whole kernel, and -thus the whole system, which is a real problem in a monolothic Unix kernel -architecture. - -One advantage of the Hurd's separation of kernel-like functionality into -separate components ([[servers|translator]]) is that these can be constructed -using different programming lanugages -- a feature that is not easily possible -in a monolithic kernel. Essentially, only an interface from the programming -environment to the [[RPC]] mechanism is required. - - - -The Hurd is an attractive platform for learning how to become a kernel hacker -or for implementing new ideas in kernel technology. Every part of the system -is designed to be easily modified and extended. - -It is possible to develop and test new Hurd kernel components without rebooting -the machine. Running your own kernel components doesn't interfere with other -users, and so no special system privileges are required. The mechanism for -kernel extensions is secure by design: it is impossible to impose your changes -upon other users unless they authorize them or you are the system -administrator. - -The Hurd is real software that works right now. It is not a research project -or a proposal. You don't have to wait at all before you can [[start -using|running]] and [[developing|contributing]] it. diff --git a/hurd/challenges.mdwn b/hurd/challenges.mdwn deleted file mode 100644 index 640b95c9..00000000 --- a/hurd/challenges.mdwn +++ /dev/null @@ -1,16 +0,0 @@ -[[!meta copyright="Copyright © 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]]."]]"""]] - - - -The GNU Hurd has a lot of [[advantages]], but there are challenges, too. - -There is no successful true multi-server [[microkernel]] system for desktop use -yet. Though, they are quite popular in the simpler embedded space. diff --git a/index.mdwn b/index.mdwn index 249b2091..9520a438 100644 --- a/index.mdwn +++ b/index.mdwn @@ -31,7 +31,7 @@ computing environment as possible. --- -[[!toc]] +[[!toc levels=2]] ## News @@ -122,6 +122,12 @@ For more details, please read our writeup on the [[current_state_of_the_GNU_Hurd|hurd/status]]. +### Advantages and Challenges + +The GNU Hurd operating system design provides [[advantages]], but uncovers new +[[challenges]], too. + + ## How is this site arranged? The menu on the upper right corner provides a rough structuring about the diff --git a/open_issues/benefits.mdwn b/open_issues/benefits.mdwn deleted file mode 100644 index da1248c8..00000000 --- a/open_issues/benefits.mdwn +++ /dev/null @@ -1,86 +0,0 @@ -[[!meta copyright="Copyright © 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]]."]]"""]] - -[[!tag open_issue_documentation]] - -What are the benefits of a native GNU/Hurd system, now that Linux et al. can do -so much (think [[hurd/translator]]s: FUSE, [[hurd/subhurd]]s: User-Mode-Linux, -etc.). - -It is possible to begin [[implementing_Hurd_on_top_of_another_system]], but... - -IRC, #hurd, August / September 2010 - - ArneBab: but Neal and I were not happy with that alone. We were - looking for deeper improvements to the system, for, I think, sound reasons. - That is what brought us to the L4/Coyotos technologies - ArneBab: as you are writing a kernel in user space, you can still do - kernel improvements there - ArneBab: if you take it very far, you end up with a kernel that runs - Linux in user space (just flip the two) for the drivers - ArneBab: that is what the L4 people did with the DDE - -([[DDE]]) - - ArneBab: so, with these different cuts, there are different - opportunities. on the one end, you can run Linux as normal and get some of - the Hurd features such as translators in some programs. At the other end, - you can do whatever you want and run some linux code for the drivers or none - at all. - ArneBab: one of the big questions then becomes: at which point can - the advantages offered by the Hurd be realized? - ArneBab: and that's not entirely clear to me - when I worked on this with Neal, we pushed further and further into - need-to-change-everything land - while the current efforts on the Hurd seem to be more equivalent to - the could-run-it-in-userspace-on-top-of-Linux camp - marcusb: for that I think we need a way to move towards them step by - step. Would it be possible to get the advantages of better resource - allocation with a Viengoos in userspace, too? - and when that is stable, just switch over? - ArneBab: I don't know. I suspect these people will know before us: - http://lxc.sourceforge.net/ - something like implementing flip points: flip Linux with Hurd to Hund - with Linux. Flip Mach with L4 to L4 with Mach. - lxc sounds interesting. - note that these efforts address security concerns more than other - concerns - so they will get isolation long before sharing is even considered - but some of the issues are the same - once you allow malware to do what it wants, it's a small step to also - allow the user to what he wants :) - it kinda looks like hacking it where it doesn’t really fit again… - there I ask myself when the point comes that doing a cleaner design - offsets the popularity - they are pushing more and more stuff into userspace - which is a good thing (to me) - it’s hard to clearly describe how, but even though I like having more - stuff in userspace, the way it is bolted onto Linux doesn’t feel good for me. - FUSE is cool, but if I use it, I am at a disadvantage compared to a - non-fuse user - while in the Hurd, these additional options are on eqal footing. - ArneBab: are they pushing more and more into user space? I don't - think so. I see more of the reverse, actually - or maybe both - FUSE, lxd and scheduling in userspace move to userspace - well, KMS moved to the kernel - to avoid flickering when switching between X and the console? - marcusb: Do you experience FUSE lxc and such being secondclass in - Linux, too, or is that just a strange feeling of me? - marcusb: and that splits the users into those who can get stuff into - the kernel and those who can only work in userspace – which I don’t really - like. - That’s one more advantage of the Hurd: eqal footing for all (except - the Mach hackers, but they have a very limited terrain) - ArneBab: but UML kernel module is minimal, and Linus didn't have a - principled objection to it (but just wanted a more general solution) - ArneBab: as a side note, although people keep complaining, the linux - kernel seems to be growing steadily, so getting stuff into the kernel doesn't - seem too hard. 8-O diff --git a/open_issues/benefits_of_a_native_hurd_implementation.mdwn b/open_issues/benefits_of_a_native_hurd_implementation.mdwn new file mode 100644 index 00000000..34e49e86 --- /dev/null +++ b/open_issues/benefits_of_a_native_hurd_implementation.mdwn @@ -0,0 +1,87 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +[[!tag open_issue_documentation]] + +What are the benefits of a native GNU/Hurd system, now that Linux et al. can do +so much? Think [[hurd/translator]]s: FUSE, [[hurd/subhurd]]s: User-Mode-Linux +and other virtualization techiques, and so on. + +It is possible to begin [[implementing_Hurd_on_top_of_another_system]], but... + +IRC, #hurd, August / September 2010 + + ArneBab: but Neal and I were not happy with that alone. We were + looking for deeper improvements to the system, for, I think, sound + reasons. That is what brought us to the L4/Coyotos technologies + ArneBab: as you are writing a kernel in user space, you can still + do kernel improvements there + ArneBab: if you take it very far, you end up with a kernel that + runs Linux in user space (just flip the two) for the drivers + ArneBab: that is what the L4 people did with the DDE + +([[DDE]]) + + ArneBab: so, with these different cuts, there are different + opportunities. on the one end, you can run Linux as normal and get some + of the Hurd features such as translators in some programs. At the other + end, you can do whatever you want and run some linux code for the drivers + or none at all. + ArneBab: one of the big questions then becomes: at which point + can the advantages offered by the Hurd be realized? + ArneBab: and that's not entirely clear to me + when I worked on this with Neal, we pushed further and further + into need-to-change-everything land + while the current efforts on the Hurd seem to be more equivalent + to the could-run-it-in-userspace-on-top-of-Linux camp + marcusb: for that I think we need a way to move towards them step + by step. Would it be possible to get the advantages of better resource + allocation with a Viengoos in userspace, too? + and when that is stable, just switch over? + ArneBab: I don't know. I suspect these people will know before + us: http://lxc.sourceforge.net/ + something like implementing flip points: flip Linux with Hurd to + Hund with Linux. Flip Mach with L4 to L4 with Mach. + lxc sounds interesting. + note that these efforts address security concerns more than other + concerns + so they will get isolation long before sharing is even considered + but some of the issues are the same + once you allow malware to do what it wants, it's a small step to + also allow the user to what he wants :) + it kinda looks like hacking it where it doesn’t really fit again… + there I ask myself when the point comes that doing a cleaner + design offsets the popularity + they are pushing more and more stuff into userspace + which is a good thing (to me) + it’s hard to clearly describe how, but even though I like having + more stuff in userspace, the way it is bolted onto Linux doesn’t feel + good for me. + FUSE is cool, but if I use it, I am at a disadvantage compared to + a non-fuse user + while in the Hurd, these additional options are on eqal footing. + ArneBab: are they pushing more and more into user space? I don't + think so. I see more of the reverse, actually + or maybe both + FUSE, lxd and scheduling in userspace move to userspace + well, KMS moved to the kernel + to avoid flickering when switching between X and the console? + marcusb: Do you experience FUSE lxc and such being secondclass in + Linux, too, or is that just a strange feeling of me? + marcusb: and that splits the users into those who can get stuff + into the kernel and those who can only work in userspace – which I don’t + really like. + That’s one more advantage of the Hurd: eqal footing for all + (except the Mach hackers, but they have a very limited terrain) + ArneBab: but UML kernel module is minimal, and Linus didn't have + a principled objection to it (but just wanted a more general solution) + ArneBab: as a side note, although people keep complaining, the + linux kernel seems to be growing steadily, so getting stuff into the + kernel doesn't seem too hard. 8-O diff --git a/open_issues/implementing_hurd_on_top_of_another_system.mdwn b/open_issues/implementing_hurd_on_top_of_another_system.mdwn index 1d7a1e50..7e88e322 100644 --- a/open_issues/implementing_hurd_on_top_of_another_system.mdwn +++ b/open_issues/implementing_hurd_on_top_of_another_system.mdwn @@ -21,8 +21,8 @@ IRC, #hurd, August / September 2010 silver_hook: the Hurd can also refer to the interfaces of the filesystems etc, and a lot of that is really just server/client APIs that - could be implemented on any system that has transferable rights to message - capabilities. + could be implemented on any system that has transferable rights to + message capabilities. silver_hook: it's surprising how few systems *have* transferable rights, though! silver_hook: usually it is added as an afterthought @@ -33,23 +33,24 @@ IRC, #hurd, August / September 2010 youpi: it's described in the Stevens series even [...] ArneBab: well, let me put it this way. the Linux kernel has no - interface to manipulate another tasks's virtual address space, ie you can't - map/unmap stuff in another process - ArneBab: you would have to use ptrace and load some stub code in that - process to make that happen. - ArneBab: so for complete transparent manipulation, you need a kernel - module + interface to manipulate another tasks's virtual address space, ie you + can't map/unmap stuff in another process + ArneBab: you would have to use ptrace and load some stub code in + that process to make that happen. + ArneBab: so for complete transparent manipulation, you need a + kernel module that is what the User Mode Linux kernel module does - ArneBab: so say you use the User Mode Linux kernel module for that - one feature. Then you can do everything that User Mode Linux can do, which, - I assure you, includes running subhurds :) + ArneBab: so say you use the User Mode Linux kernel module for + that one feature. Then you can do everything that User Mode Linux can + do, which, I assure you, includes running subhurds :) it can be a bit tricky to implement those features, but it is not harder than writing a kernel in the first place - So, if I got an admin to install User Mode Linux and Mach emulation, - I’d get the flexibility (and independence from admin decisions) I have in the - Hurd? - ArneBab: one problem is that you still use Linux. For those who want - to get rid of Linux for political reasons, that would mean complete failure + So, if I got an admin to install User Mode Linux and Mach + emulation, I’d get the flexibility (and independence from admin + decisions) I have in the Hurd? + ArneBab: one problem is that you still use Linux. For those who + want to get rid of Linux for political reasons, that would mean complete + failure ArneBab: if you have UML kernel module, you can implement Mach in user space ArneBab: in fact, John Tobey did this a couple of years ago, or @@ -57,10 +58,10 @@ IRC, #hurd, August / September 2010 ([[tschwinge]] has tarballs of John's work.) - ArneBab: or you can just implement parts of it and relay to Linux for - the rest - the point is, that if you don't care for kernel improvements, and are - sufficiently happy with the translator stuff, it's not hard to bring the Hurd - to Linux or BSD + ArneBab: or you can just implement parts of it and relay to Linux + for the rest + the point is, that if you don't care for kernel improvements, and + are sufficiently happy with the translator stuff, it's not hard to bring + the Hurd to Linux or BSD -(Continue: [[benefits]].) +Continue reading about the [[benefits of a native Hurd implementation]]. diff --git a/open_issues/multiprocessing.mdwn b/open_issues/multiprocessing.mdwn index 7b4f2611..224c0826 100644 --- a/open_issues/multiprocessing.mdwn +++ b/open_issues/multiprocessing.mdwn @@ -11,7 +11,7 @@ License|/fdl]]."]]"""]] [[!tag open_issue_hurd]] We would expect that fine-grained, compartmentalized systems, that is, -microkernel-based multi-server systems in particular, would be ideal condidates +microkernel-based multi-server systems in particular, would be ideal candidates for applying multiprocessing. That is, however, only true from a first and inexperienced point of view: there are many difficulties. @@ -19,14 +19,14 @@ inexperienced point of view: there are many difficulties. IRC, #hurd, August / September 2010 silver_hook: because multi-server systems depend on inter-process - communication, and inter-process communication is many times more expensive - across cpus - silver_hook: so you either force interrelated work on the same cpu, - or suffer heavy penalties. and in a typical fine-grained object system, all - objects are interconnected! - silver_hook: resources in today's systems, even in a single node with - one cpu, but more so in a network, are very non-uniform. scheduling these - resources efficiently is a huge problem. restricting the resource + communication, and inter-process communication is many times more + expensive across cpus + silver_hook: so you either force interrelated work on the same + cpu, or suffer heavy penalties. and in a typical fine-grained object + system, all objects are interconnected! + silver_hook: resources in today's systems, even in a single node + with one cpu, but more so in a network, are very non-uniform. scheduling + these resources efficiently is a huge problem. restricting the resource distribution policies in the way microkernel systems tend to do is posing serious research challenges diff --git a/tag.mdwn b/tag.mdwn index e96e88d5..6051de3b 100644 --- a/tag.mdwn +++ b/tag.mdwn @@ -23,6 +23,11 @@ Most of them should be self-explanatory. GNU/Hurd|hurd/running/debian]] distribution, but not yet in the upstream sources. + * *open_issue_documentation* + + Use for tagging pages / items that need to be handled / improved for + documentation purposes. + * *open_issue_porting* A list of open issues in porting software to run on GNU/Hurd systems. This -- cgit v1.2.3 From e36d3838db972fedfed4a30968ed144a9f0f6c96 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 27 Nov 2010 21:47:25 +0100 Subject: hurd/io_path: Link to Linux kernel design patterns - part 3 (2009-06-22) by Neil Brown. --- hurd/io_path.mdwn | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'hurd') diff --git a/hurd/io_path.mdwn b/hurd/io_path.mdwn index 78e13efd..598ad967 100644 --- a/hurd/io_path.mdwn +++ b/hurd/io_path.mdwn @@ -1,12 +1,15 @@ -[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!meta title="I/O Path"]] + # read @@ -38,3 +41,12 @@ is included in the section entitled * ext2fs eventually finishes the data_request() function, the kernel installs the page into the process that got a fault. + + +# Documentation + + * In [*Linux kernel design patterns - part + 3*](http://lwn.net/Articles/336262/) (2009-06-22), Neil Brown gives a + nice overview of the related layering inside the Linux kernel, + including the VFS layer, page cache and directory entry cache + (dcache). -- cgit v1.2.3 From d05a838d0fc7037f4a99a97742680a68b8b157d8 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 27 Nov 2010 21:53:21 +0100 Subject: hurd/libchannel: Link to Van Jacobson's network channels (2006-01-31) by Jonathan Corbet. --- hurd/libchannel.mdwn | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'hurd') diff --git a/hurd/libchannel.mdwn b/hurd/libchannel.mdwn index 91c7810f..3e19fb18 100644 --- a/hurd/libchannel.mdwn +++ b/hurd/libchannel.mdwn @@ -1,12 +1,12 @@ -[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] # libchannel @@ -60,3 +60,9 @@ library to implement specialized channel libraries, e.g. *libaudio* and *libnetwork* or similar. So work on *libchannel* will continue, in one form or another. + + +# Related + + * [*Van Jacobson's network channels*](http://lwn.net/Articles/169961/) + (2006-01-31) by Jonathan Corbet. -- cgit v1.2.3 From eccf2986513cc41c412b1c30aa5dcb88a4c981b5 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 29 Nov 2010 07:58:51 +0100 Subject: Add links to some LWN articles, and then some. --- community/gsoc/project_ideas.mdwn | 6 +-- .../gsoc/project_ideas/libdiskfs_locking.mdwn | 41 ----------------- documentation.mdwn | 6 ++- glibc.mdwn | 9 ++++ glibc/environment_variables.mdwn | 15 ++++++ glibc/fork.mdwn | 9 ++++ glibc/poll.mdwn | 15 ++++++ hurd/debugging.mdwn | 10 ++-- hurd/translator.mdwn | 6 ++- hurd/translator/libguestfs.mdwn | 15 ++++++ open_issues/debugging.mdwn | 42 +++++++++++++++++ open_issues/gdb-heap.mdwn | 15 ++++++ open_issues/locking.mdwn | 53 ++++++++++++++++++++++ open_issues/performance.mdwn | 2 + open_issues/unit_testing.mdwn | 10 ++++ open_issues/virtualization/file_systems.mdwn | 3 +- unix.mdwn | 16 +++++-- 17 files changed, 214 insertions(+), 59 deletions(-) delete mode 100644 community/gsoc/project_ideas/libdiskfs_locking.mdwn create mode 100644 glibc/environment_variables.mdwn create mode 100644 glibc/poll.mdwn create mode 100644 hurd/translator/libguestfs.mdwn create mode 100644 open_issues/debugging.mdwn create mode 100644 open_issues/gdb-heap.mdwn create mode 100644 open_issues/locking.mdwn (limited to 'hurd') diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index 2102e8f7..b039608f 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -6,8 +6,8 @@ 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] We offer a wide range of possible projects to choose from. If you have an idea not listed here, we'd love to hear about it! @@ -82,7 +82,7 @@ See also the list of [Hurd-related X.org project ideas](http://wiki.x.org/wiki/H [[!inline pages="community/gsoc/project_ideas/server_overriding" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/tcp_ip_stack" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/nfs" show=0 feeds=no actions=yes]] -[[!inline pages="community/gsoc/project_ideas/libdiskfs_locking" show=0 feeds=no actions=yes]] +[[!inline pages="open_issues/locking" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/pthreads" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/sound" show=0 feeds=no actions=yes]] [[!inline pages="open_issues/performance/io_system" show=0 feeds=no actions=yes]] diff --git a/community/gsoc/project_ideas/libdiskfs_locking.mdwn b/community/gsoc/project_ideas/libdiskfs_locking.mdwn deleted file mode 100644 index 0618bbe6..00000000 --- a/community/gsoc/project_ideas/libdiskfs_locking.mdwn +++ /dev/null @@ -1,41 +0,0 @@ -[[!meta copyright="Copyright © 2008, 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]]."]]"""]] - -[[!meta title="Fix libdiskfs Locking Issues"]] - -Nowadays the most often encountered cause of Hurd crashes seems to be lockups -in the [[hurd/translator/ext2fs]] server. One of these could be traced -recently, and turned out to be a lock inside [[hurd/libdiskfs]] that was taken -and not released in some cases. There is reason to believe that there are more -faulty paths causing these lockups. - -The task is systematically checking the [[hurd/libdiskfs]] code for this kind of locking -issues. To achieve this, some kind of test harness has to be implemented: For -example instrumenting the code to check locking correctness constantly at -runtime. Or implementing a unit testing framework that explicitly checks -locking in various code paths. (The latter could serve as a template for -implementing unit checks in other parts of the Hurd codebase...) - -(A systematic code review would probably suffice to find the existing locking -issues; but it wouldn't document the work in terms of actual code produced, and -thus it's not suitable for a GSoC project...) - -[Linux' *sparse*](https://sparse.wiki.kernel.org/) could be worth looking at. - -This task requires experience with debugging locking issues in multithreaded -applications. - -Possible mentors: Samuel Thibault (youpi) - -Exercise: If you could actually track down and fix one of the existing locking -errors before the end of the application process, that would be excellent. This -might be rather tough though, so probably you need to talk to us about an -alternative exercise task... diff --git a/documentation.mdwn b/documentation.mdwn index 62d96e9c..5c666f3f 100644 --- a/documentation.mdwn +++ b/documentation.mdwn @@ -5,8 +5,8 @@ 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] [[FAQ]] @@ -18,6 +18,8 @@ Documentation for... * [[MIG|microkernel/mach/mig/documentation]] + * [[UNIX]] + # Presentations diff --git a/glibc.mdwn b/glibc.mdwn index cefbb19c..f47efc03 100644 --- a/glibc.mdwn +++ b/glibc.mdwn @@ -29,6 +29,15 @@ Porting glibc to a specific architecture is non-trivial. ## [[Hurd-specific Port|hurd/glibc]] +# Implementation Details + + * [[environment_variables]] + + * [[fork]] + + * [[poll]] + + # Open Issues [[!inline pages=tag/open_issue_glibc raw=yes feeds=no]] diff --git a/glibc/environment_variables.mdwn b/glibc/environment_variables.mdwn new file mode 100644 index 00000000..76c1371e --- /dev/null +++ b/glibc/environment_variables.mdwn @@ -0,0 +1,15 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + + +# External + + * [*putenv() and setenv()*](http://www.greenend.org.uk/rjk/2008/putenv.html) + by Richard Kettlewell. diff --git a/glibc/fork.mdwn b/glibc/fork.mdwn index 564d9d5b..c9efd1f4 100644 --- a/glibc/fork.mdwn +++ b/glibc/fork.mdwn @@ -49,3 +49,12 @@ they have patches for software packages, to avoid using `fork` followed by * We no longer support `MACH_IPC_COMPAT`, thus we can get rid of the `err = __mach_port_allocate_name ([...]); if (err == KERN_NAME_EXISTS)` code ([[!taglink open_issue_glibc]]). + + +# External + + * [*How fork(2) ought to be*](http://www.greenend.org.uk/rjk/fork.html) by + Richard Kettlewell. + + * [*The self-pipe trick*](http://cr.yp.to/docs/selfpipe.html) by + D. J. Bernstein. diff --git a/glibc/poll.mdwn b/glibc/poll.mdwn new file mode 100644 index 00000000..d96f27a5 --- /dev/null +++ b/glibc/poll.mdwn @@ -0,0 +1,15 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + + +# External + + * [*poll() and EOF*](http://www.greenend.org.uk/rjk/2001/06/poll.html) by + Richard Kettlewell. diff --git a/hurd/debugging.mdwn b/hurd/debugging.mdwn index d6c5b18f..d6e9c8b5 100644 --- a/hurd/debugging.mdwn +++ b/hurd/debugging.mdwn @@ -6,8 +6,9 @@ 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + # Strategies @@ -16,11 +17,6 @@ is included in the section entitled * [[subhurd]] -- running another Hurd system in parallel * [[rpctrace]] -- tracing [[RPC]]s -## To Do - - * [[open_issues/ltrace]] - * [[open_issues/latrace]] - * [[open_issues/profiling]] # About Specific Packages diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index c3ca1278..9e109a28 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -6,8 +6,8 @@ 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] A translator is simply a normal program acting as an object server and participating in the Hurd's @@ -117,6 +117,8 @@ Read about translator [[short-circuiting]]. * [[wishlist_1]] * [[wishlist_2]] * [[open_issues/network_file_system_by_just_forwarding_RPCs]] + * [[libguestfs]] + # Internally diff --git a/hurd/translator/libguestfs.mdwn b/hurd/translator/libguestfs.mdwn new file mode 100644 index 00000000..649b31f5 --- /dev/null +++ b/hurd/translator/libguestfs.mdwn @@ -0,0 +1,15 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +[[!tag open_issue_hurd]] + +[libguestfs](http://libguestfs.org/) is said to be able to access a lot +of different filesystem types -- can we use it to build GNU Hurd +[[translator]]s? (There is a [[FUSE]] module, too.) diff --git a/open_issues/debugging.mdwn b/open_issues/debugging.mdwn new file mode 100644 index 00000000..95b7bf9b --- /dev/null +++ b/open_issues/debugging.mdwn @@ -0,0 +1,42 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + + +# Existing + +We have debugging infrastructure. For example: + + * [[GDB]] + + * [[GNU Mach debugging|microkernel/mach/gnumach/debugging]] + + * [[GNU Hurd debugging|hurd/debugging]], including + [[hurd/debugging/rpctrace]] and more. + + +# To Do + + * [[ltrace]] + + * [[latrace]] + + * [[profiling]] + + * *[Checkpoint/restart](http://lwn.net/Articles/412749/) allows the state of + a set of processes to be saved to persistent storage, then restarted at + some future time* -- quoting from Jonathan Corbet's 2010 Linux Kernel + Summit report. + + This is surely a very useful facility to have for reproducing failures, for + example. But on the other hand it's questionable how it can help with + debugging failures in [[GNU Hurd server|hurd/translator]]s' interactions, + as their state is typically spread between several processes. + + * [[locking]] diff --git a/open_issues/gdb-heap.mdwn b/open_issues/gdb-heap.mdwn new file mode 100644 index 00000000..75c31bbe --- /dev/null +++ b/open_issues/gdb-heap.mdwn @@ -0,0 +1,15 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +[[!tag open_issue_gdb]] + +Might be interesting to have a look at +[*gdb-heap*](https://fedorahosted.org/gdb-heap/) with respect to our +long-lived [[hurd/translator]] processes. diff --git a/open_issues/locking.mdwn b/open_issues/locking.mdwn new file mode 100644 index 00000000..1717133a --- /dev/null +++ b/open_issues/locking.mdwn @@ -0,0 +1,53 @@ +[[!meta copyright="Copyright © 2008, 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]]."]]"""]] + +[[!tag open_issue_hurd]] + +Every now and then, new locking issues are discovered in +[[hurd/libdiskfs]] or [[hurd/translator/ext2fs]], for example. Nowadays +these in fact seem to be the most often encountered cause of Hurd crashes +/ lockups. + +One of these could be traced +recently, and turned out to be a lock inside [[hurd/libdiskfs]] that was taken +and not released in some cases. There is reason to believe that there are more +faulty paths causing these lockups. + +The task is systematically checking the [[hurd/libdiskfs]] code for this kind of locking +issues. To achieve this, some kind of test harness has to be implemented: For +example instrumenting the code to check locking correctness constantly at +runtime. Or implementing a [[unit testing]] framework that explicitly checks +locking in various code paths. (The latter could serve as a template for +implementing unit tests in other parts of the Hurd codebase...) + +(A systematic code review would probably suffice to find the existing locking +issues; but it wouldn't document the work in terms of actual code produced, and +thus it's not suitable for a GSoC project...) + +This task requires experience with debugging locking issues in multithreaded +applications. + +Tools have been written for static code analysis, than can help to locate +and fix such errors. + + * Coccinelle + + * + + * + + * clang + + * + + * Linux' sparse + + * diff --git a/open_issues/performance.mdwn b/open_issues/performance.mdwn index a4816680..3d146a72 100644 --- a/open_issues/performance.mdwn +++ b/open_issues/performance.mdwn @@ -11,3 +11,5 @@ License|/fdl]]."]]"""]] * [[I/O System|io_system]] * [[fork]] + + * [[unit testing]] diff --git a/open_issues/unit_testing.mdwn b/open_issues/unit_testing.mdwn index b9fb3700..80a2860a 100644 --- a/open_issues/unit_testing.mdwn +++ b/open_issues/unit_testing.mdwn @@ -43,3 +43,13 @@ abandoned). * * + + * [*[ANNOUNCE] ktest.pl: Easy and flexible testing script for Linux Kernel + Developers*](http://lwn.net/Articles/412302/) by Steven Rostedt, + 2010-10-28. + + * -- ``comprehensive testing and + benchmarking platform''. This one might be useful for [[performance]] + testing, too? + + * diff --git a/open_issues/virtualization/file_systems.mdwn b/open_issues/virtualization/file_systems.mdwn index 3bf2299d..a12ea10d 100644 --- a/open_issues/virtualization/file_systems.mdwn +++ b/open_issues/virtualization/file_systems.mdwn @@ -20,4 +20,5 @@ be explored. * Linux saw a patch for [*generic name to handle and open by handle syscalls*](http://thread.gmane.org/gmane.linux.file-systems/46648) posted, which in turn can be beneficial for a [[QEMU]] emulation of a 9P file - system. + system. LWN's Jonathan Corbet covered this [*open by + handle*](http://lwn.net/Articles/375888/) functionality on 2010-02-23. diff --git a/unix.mdwn b/unix.mdwn index a927eb64..601b36d1 100644 --- a/unix.mdwn +++ b/unix.mdwn @@ -1,12 +1,15 @@ -[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!meta title="UNIX"]] + # External @@ -15,3 +18,10 @@ is included in the section entitled * [*Standardizing UNIX*](http://www.informit.com/articles/printerfriendly.aspx?p=691503), an article by David Chisnall. + + * [*Ghosts of Unix Past: a historical search for design + patterns*](http://lwn.net/Articles/411845/) (2010-10-27) by Neil Brown, + including file descriptors and the single, hierarchical namespace. + + * [*UNIX File Permissions*](http://www.greenend.org.uk/rjk/2004/perms.html) + (2004) by Richard Kettlewell. -- cgit v1.2.3 From 38368072b37bf73dda26dac536e4aa6cf13c67e4 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 29 Nov 2010 13:41:16 +0100 Subject: system_call: New. --- community/gsoc/project_ideas/libcap.mdwn | 8 ++++---- community/gsoc/project_ideas/libcap/details.mdwn | 8 ++++---- community/gsoc/project_ideas/secure_chroot.mdwn | 11 ++++++----- community/gsoc/project_ideas/valgrind.mdwn | 8 ++++---- extensibility.mdwn | 9 +++++---- faq/sharing_the_user_space.mdwn | 2 +- glibc.mdwn | 13 +++++++++++-- glibc/fork.mdwn | 20 +++++++++++++------- hurd/glibc/hurd-specific_api.mdwn | 11 ++++++----- hurd/networking.mdwn | 11 ++++++----- hurd/ng/microkernelcoyotos.mdwn | 4 +++- hurd/ng/trivialconfinementvsconstructorvsfork.mdwn | 18 ++++++++++++++---- hurd/translator/wishlist_2.mdwn | 12 +++++++++++- qemu.mdwn | 12 ++++++------ system_call.mdwn | 19 +++++++++++++++++++ 15 files changed, 113 insertions(+), 53 deletions(-) create mode 100644 system_call.mdwn (limited to 'hurd') diff --git a/community/gsoc/project_ideas/libcap.mdwn b/community/gsoc/project_ideas/libcap.mdwn index 1346203d..18c49c48 100644 --- a/community/gsoc/project_ideas/libcap.mdwn +++ b/community/gsoc/project_ideas/libcap.mdwn @@ -1,12 +1,12 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] +[[!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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] [[!meta title="Implementing libcap"]] @@ -33,7 +33,7 @@ probably doable without previous experience with either, though. David Hedberg applied for this project in 2010, and though he didn't go through with it, -he fleshed out many [[libcap/details]]. +he fleshed out many [[details]]. Possible mentors: Samuel Thibault (youpi) diff --git a/community/gsoc/project_ideas/libcap/details.mdwn b/community/gsoc/project_ideas/libcap/details.mdwn index aa27a84e..85695978 100644 --- a/community/gsoc/project_ideas/libcap/details.mdwn +++ b/community/gsoc/project_ideas/libcap/details.mdwn @@ -5,8 +5,8 @@ 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] [[!meta title="Details on implementing libcap"]] @@ -59,7 +59,7 @@ Each process has a three bit fields representing each of the three sets (P, E and I). Each bit field is currently built up of two (32 bit) integers to be able to hold the 33 currently defined capabilities (see linux/capability.h). Each process further has a bounding set which -bounds the permitted set. Two syscalls handles the setting and getting +bounds the permitted set. Two [[system call]]s handles the setting and getting of capabilities; *capset* and *capget*. Some related functionality can also be controlled by calling *prctl*: the right to read/drop the bounding capabilities (PR_CAPBSET_READ/PR_CAPBSET_DROP) and whether @@ -428,7 +428,7 @@ the following (also detailed somewhat in the same article): * Execute process as root (or setuid) to gain all capabilities. -* Use the prctl system call to enable keepcaps for the process +* Use the prctl [[system call]] to enable keepcaps for the process (same(?) effect as enabling SECURE_NO_SETUID_FIXUP for the process). keepcaps should be off by default. diff --git a/community/gsoc/project_ideas/secure_chroot.mdwn b/community/gsoc/project_ideas/secure_chroot.mdwn index feb30a7c..57739861 100644 --- a/community/gsoc/project_ideas/secure_chroot.mdwn +++ b/community/gsoc/project_ideas/secure_chroot.mdwn @@ -1,17 +1,18 @@ -[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] [[!meta title="Secure chroot Implementation"]] As the Hurd attempts to be (almost) fully [[UNIX]]-compatible, it also implements a -`chroot()` system call. However, the current implementation is not really +`chroot` [[system call]]. However, the current implementation is not really good, as it allows easily escaping the `chroot`, for example by use of [[passive_translators|hurd/translator]]. @@ -20,7 +21,7 @@ workaround changing the behavior of passive translators in a `chroot`; changing the context in which passive translators are executed; changing the interpretation of filenames in a chroot; to reworking the whole passive translator mechanism. Some involving a completely different approach to -`chroot` implementation, using a proxy instead of a special system call in the +`chroot` implementation, using a proxy instead of a special [[system call]] in the filesystem servers. See diff --git a/community/gsoc/project_ideas/valgrind.mdwn b/community/gsoc/project_ideas/valgrind.mdwn index c6fc7459..7d68e82d 100644 --- a/community/gsoc/project_ideas/valgrind.mdwn +++ b/community/gsoc/project_ideas/valgrind.mdwn @@ -18,7 +18,7 @@ although they work on Linux. Even more importantly, it will help finding bugs in the Hurd servers themselfs. To keep track of memory use, -Valgrind however needs to know how each system call affects the validity of memory regions. +Valgrind however needs to know how each [[system call]] affects the validity of memory regions. This knowledge is highly kernel-specific, and thus Valgrind needs to be explicitely ported for every system. @@ -26,11 +26,11 @@ Such a port involves two major steps: making Valgrind understand how kernel traps work in general on the system in question; and how all the individual kernel calls affect memory. The latter step is where most of the work is, -as the behaviour of each single system call needs to be described. +as the behaviour of each single [[system call]] needs to be described. Compared to Linux, Mach (the microkernel used by the Hurd) has very few kernel traps. -Almost all system calls are implemented as RPCs instead -- +Almost all [[system call]]s are implemented as RPCs instead -- either handled by Mach itself, or by the various Hurd servers. All RPCs use a pair of mach\_msg() invocations: one to send a request message, and one to receive a reply. @@ -62,7 +62,7 @@ The goal of this task is at minimum to make Valgrind grok Mach traps, and to implement the generic RPC handler. Ideally, specific handling for RPCs needing it should also be implemented. -Completing this project will require digging into Valgrind's handling of system calls, +Completing this project will require digging into Valgrind's handling of [[system call]]s, and into Hurd RPCs. It is not an easy task, but a fairly predictable one -- there shouldn't be any unexpected difficulties, diff --git a/extensibility.mdwn b/extensibility.mdwn index 01b1f3b1..17cd5e51 100644 --- a/extensibility.mdwn +++ b/extensibility.mdwn @@ -1,17 +1,18 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] An extensible system is one that enables extensibility. Enabling extensibility means providing non-privileged mechanisms to extend existing objects and to introduce new objects. [[UNIX]] is generally not an extensible system as it does -not generally facilitate the hooking of system calls. For instance, there is +not generally facilitate the hooking of [[system call]]s. For instance, there is no way to hook into the virtual file system. This has motivated the introduction of separate, parallel interfaces by both the GNOME and KDE projects to provide users a more integrated view of their objects. diff --git a/faq/sharing_the_user_space.mdwn b/faq/sharing_the_user_space.mdwn index 7d09ccc0..ec880827 100644 --- a/faq/sharing_the_user_space.mdwn +++ b/faq/sharing_the_user_space.mdwn @@ -15,7 +15,7 @@ everything but the kernel is shared? *Answer:* Given that both Linux and GNU Hurd are using the [[ELF]] binary format, this could indeed be made possible, if all programs agreed to rely on only one abstraction layer, for example the standard C library ([[glibc]]). -(Additionally, for example for system calls that are not covered by glibc +(Additionally, for example for [[system call]]s that are not covered by glibc calls, you'd need to be able to reliably trap and emulate these.) However, Linux' and the GNU Hurd's [[ABI]]'s have sufficiently diverged, so that this is not easy to do. That's why you can't currently install a system in this way, diff --git a/glibc.mdwn b/glibc.mdwn index f47efc03..2eba3667 100644 --- a/glibc.mdwn +++ b/glibc.mdwn @@ -6,8 +6,8 @@ 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] [[!meta title="GNU C Library"]] @@ -31,6 +31,15 @@ Porting glibc to a specific architecture is non-trivial. # Implementation Details + * [[hurd/glibc/Hurd-specific API]] + + * [[open_issues/secure_file_descriptor_handling]] + + +## Individual functions + +Some of these are well-known as [[UNIX]] [[system call]]s. + * [[environment_variables]] * [[fork]] diff --git a/glibc/fork.mdwn b/glibc/fork.mdwn index c9efd1f4..e8556a91 100644 --- a/glibc/fork.mdwn +++ b/glibc/fork.mdwn @@ -8,7 +8,7 @@ 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]]."]]"""]] -On [[Unix]] systems, `fork` is a rather simple system call. +On [[Unix]] systems, `fork` is a rather simple [[system call]]. Our implementation in [[glibc]] is and needs to be rather bulky. @@ -22,12 +22,13 @@ which requires a small number of [[RPC]] for each of them. In sum, [[this affects performance|open_issues/performance/fork]] when new processes are continuously being spawned from the shell, for example. -Often, a `fork` call will eventually be followed by an `exec`, which will in -turn close (most of) the duplicated port rights. Unfortunately, this cannot be -known at the time the `fork` executing, so the code calling `fork` has to be -modified, and the `fork`, `exec` combo be replaced by a `posix_spawn` call, for -example, to avoid this work of duplicating each port right, then closing each -again. +Often, a `fork` call will eventually be followed by an `exec`, which [[may in +turn close|open_issues/secure_file_descriptor_handling]] (most of) the +duplicated port rights. Unfortunately, this cannot be known at the time the +`fork` executing, so in order to optimize this, the code calling `fork` has to +be modified instead, and the `fork`, `exec` combo be replaced by a +`posix_spawn` call, for example, to avoid this work of duplicating each port +right, then closing each again. As far as we know, Cygwin has the same problem of `fork` being a nontrivial operation. Perhaps we can learn from what they're been doing? Also, perhaps @@ -51,6 +52,11 @@ they have patches for software packages, to avoid using `fork` followed by ([[!taglink open_issue_glibc]]). +## Related + + * [[secure file descriptor handling]]. + + # External * [*How fork(2) ought to be*](http://www.greenend.org.uk/rjk/fork.html) by diff --git a/hurd/glibc/hurd-specific_api.mdwn b/hurd/glibc/hurd-specific_api.mdwn index aeb63d91..75220279 100644 --- a/hurd/glibc/hurd-specific_api.mdwn +++ b/hurd/glibc/hurd-specific_api.mdwn @@ -1,17 +1,18 @@ -[[!meta copyright="Copyright © 2002, 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2002, 2007, 2008, 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] [[!meta title="Hurd-specific glibc API"]] These functions have meaning only under Hurd. They are needed to get port -names that are used in native Hurd API (the RPC calls to servers). The `.defs` +names that are used in native Hurd API (the [[RPC]]s to servers). The `.defs` and `.h` files can be found in `/include/hurd` when all development files are installed (Debian package `hurd-dev`.) Note that `.defs` are not included in C programs -- they are used to produce `.h` files. @@ -157,7 +158,7 @@ programs -- they are used to produce `.h` files.

thread_t
hurd_thread_self (void);
-
Return the current thread's thread port. This is a cheap operation (no system call), but it relies on Hurd signal state being set up.
+
Return the current thread's thread port. This is a cheap operation (no [[system call]]), but it relies on Hurd signal state being set up.

error_t
diff --git a/hurd/networking.mdwn b/hurd/networking.mdwn index ff16eb25..bdf9def2 100644 --- a/hurd/networking.mdwn +++ b/hurd/networking.mdwn @@ -1,12 +1,13 @@ -[[!meta copyright="Copyright © 2000, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2000, 2008, 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] For each supported `PF_*` protocol family, there is a file `/servers/socket/N` where `N` is the numberic value fo the `PF_*` symbol. Right now @@ -17,10 +18,10 @@ where `N` is the numberic value fo the `PF_*` symbol. Right now User programs open those files, and use the `socket_create` [[RPC]] to make a new socket. With that socket, they can use the other `socket_*` RPCs and also the `io_*` RPCs. The `socket_*` RPCs are essentially clones of the [[Unix]] -syscalls in question. +[[system call]]s in question. The only exception is `sockaddrs`, which are implemented as [[ports|libports]] -instead of the opaque data arrays they are in the syscalls. You manipulate +instead of the opaque data arrays they are in the system calls. You manipulate `sockaddr` ports with the `socket_create_address`, `socket_fabricate_address`, and `socket_whatis_address` calls. The `sockaddr` port is then used in socket calls like `socket_connect` and `socket_accept`. diff --git a/hurd/ng/microkernelcoyotos.mdwn b/hurd/ng/microkernelcoyotos.mdwn index cdf4e1bf..2340901d 100644 --- a/hurd/ng/microkernelcoyotos.mdwn +++ b/hurd/ng/microkernelcoyotos.mdwn @@ -2,7 +2,9 @@ [Coyotos](http://www.coyotos.org/index.html) is a microkernel and OS and the successor of EROS, that itself is the successor of KeyKOS. A more complete history can be found [here](http://www.coyotos.org/history.html). Its main objectives are to correcte some shortcomings of EROS, demonstrate that an atomic kernel design scales well, and (eventually) to completely formally verify both the kernel and critical system components by writing them in a new language called [bitc](http://www.bitc-lang.org/). [See [l4.verified](http://nicta.com.au/research/projects/l4.verified) for work on formally verifying an L4 microkernel.] -Coyotos is an orthogonally persistent pure capability system. It uses continuation based unbuffered asynchronous IPC (actually it's synchronous IPC with asynchronous syscalls). +Coyotos is an orthogonally persistent pure capability system. It uses +continuation based unbuffered asynchronous IPC (actually it's synchronous IPC +with asynchronous [[system calls]]). TODO: explain these terms and (more important) their consequences on system design. diff --git a/hurd/ng/trivialconfinementvsconstructorvsfork.mdwn b/hurd/ng/trivialconfinementvsconstructorvsfork.mdwn index 4eeef6ee..0d91dee7 100644 --- a/hurd/ng/trivialconfinementvsconstructorvsfork.mdwn +++ b/hurd/ng/trivialconfinementvsconstructorvsfork.mdwn @@ -6,10 +6,11 @@ This comparison is about a simple situation: there is a parent process P, which # Trivial Confinement -For trivial confinement, there is a system call to create a process from some memory pages. P performs the following steps: +For trivial confinement, there is a [[system call]] to create a process from +some memory pages. P performs the following steps: * Allocate some memory and put the code image of the child into that memory. This can be done by P, or for example by the file system which then gives the resulting memory (space bank) to P. -* Perform the system call on that memory. The result is a capability to C. +* Perform the [[system call]] on that memory. The result is a capability to C. * Send A to C using the returned capability. Note that it is up to the implementation of the system what happens with P's access to the memory which holds the child. For example, it is probably a good idea if it is at least unmapped, so it cannot accidentily write things in it. It could even be revoked, so that it can't write things in it, even if it wants to. @@ -32,7 +33,16 @@ This mechanism is targeted at a specific use pattern, namely that a process is c # POSIX Fork -POSIX fork, or rather fork+exec, is how things are done on many current systems. It may be insightful to see it included in the comparison, especially for people who are new to the subject. There are two system calls, fork and exec. Fork will create a clone of the current process, including all the capabilities (that is, file descriptors) of the parent (except the ones which have explicitly been excluded). Exec is a system call which really goes to the filesystem, not the kernel (although on systems which use it, the filesystem usually resides in the kernel), and asks it to spawn a new process from the contents of a certain path in place of the caller. This passes all capabilities to the new process. The procedure is: +POSIX fork, or rather fork+exec, is how things are done on many current +systems. It may be insightful to see it included in the comparison, especially +for people who are new to the subject. There are two [[system call]]s, fork and +exec. Fork will create a clone of the current process, including all the +capabilities (that is, file descriptors) of the parent (except the ones which +have explicitly been excluded). Exec is a [[system call]] which really goes to +the filesystem, not the kernel (although on systems which use it, the +filesystem usually resides in the kernel), and asks it to spawn a new process +from the contents of a certain path in place of the caller. This passes all +capabilities to the new process. The procedure is: * P calls fork(), creating P'. * P' drops B. @@ -67,7 +77,7 @@ Except for the control, there is really only one other difference, and that's ad What it doesn't do is protect the code image against bugs in P. In the constructor the trusted and well-tested constructor code is handling the image, for trivial confinement the (very possibly) buggy program P. In particular, when starting a program from a file system, with trivial confinement the operation is: * Ask the file system for the code, receive a capability to a space bank with a copy (on write) of it. -* Make the system call to turn it into a program. +* Make the [[system call]] to turn it into a program. Now this isn't much more complicated than the constructor which does: diff --git a/hurd/translator/wishlist_2.mdwn b/hurd/translator/wishlist_2.mdwn index a927db55..77f39644 100644 --- a/hurd/translator/wishlist_2.mdwn +++ b/hurd/translator/wishlist_2.mdwn @@ -70,7 +70,17 @@ Here's an [idea](http://www.circlemud.org/~jelson/software/fusd/docs/node13.html * "One particularly interesting application of FUSD that we've found very useful is as a way to let regular user-space libraries export device file APIs. For example, imagine you had a library which factored large composite numbers. Typically, it might have a C interface--say, a function called `int *factorize(int bignum)`. With FUSD, it's possible to create a device file interface--say, a device called `/dev/factorize` to which clients can `write(2)` a big number, then `read(2)` back its factors. -* This may sound strange, but device file APIs have at least three advantages over a typical library API. First, it becomes much more language independent--any language that can make system calls can access the factorization library. Second, the factorization code is running in a different address space; if it crashes, it won't crash or corrupt the caller. Third, and most interestingly, it is possible to use `select(2)` to wait for the factorization to complete. `select(2)` would make it easy for a client to factor a large number while remaining responsive to other events that might happen in the meantime. In other words, FUSD allows normal user-space libraries to integrate seamlessly with UNIX's existing, POSIX-standard event notification interface: `select(2)`." +* This may sound strange, but device file APIs have at least three advantages + over a typical library API. First, it becomes much more language + independent--any language that can make [[system call]]s can access the + factorization library. Second, the factorization code is running in a + different address space; if it crashes, it won't crash or corrupt the + caller. Third, and most interestingly, it is possible to use `select(2)` to + wait for the factorization to complete. `select(2)` would make it easy for a + client to factor a large number while remaining responsive to other events + that might happen in the meantime. In other words, FUSD allows normal + user-space libraries to integrate seamlessly with UNIX's existing, + POSIX-standard event notification interface: `select(2)`." ## Mail diff --git a/qemu.mdwn b/qemu.mdwn index 19b5fb9f..d7cea5ad 100644 --- a/qemu.mdwn +++ b/qemu.mdwn @@ -1,13 +1,13 @@ -[[!meta copyright="Copyright © 2005, 2007, 2008, 2009 Free Software Foundation, -Inc."]] +[[!meta copyright="Copyright © 2005, 2007, 2008, 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] QEMU is free software written by Fabrice Bellard that implements a fast processor [[emulator|emulation]], allowing a user to run one operating system @@ -19,8 +19,8 @@ reasonable speed while being easy to port on new host CPUs. QEMU has two operating modes: * User mode emulation: QEMU can launch Linux processes compiled for one CPU - on another CPU. Linux system calls are converted because of endianness and - 32/64 bit mismatches. Wine and Dosemu are the main targets for QEMU. + on another CPU. Linux [[system call]]s are converted because of endianness + and 32/64 bit mismatches. Wine and Dosemu are the main targets for QEMU. * System mode emulation: QEMU emulates a full system, including a processor and various peripherials. It enables easier testing and debugging of diff --git a/system_call.mdwn b/system_call.mdwn new file mode 100644 index 00000000..197889cb --- /dev/null +++ b/system_call.mdwn @@ -0,0 +1,19 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +In an [[UNIX]]-like system, a *system call* (*syscall*) is used to request all +kinds of functionality from the operating system kernel. + +A [[microkernel]]-based system typically won't offer a lot of system calls -- +apart from one central one, and that is *send message* -- but instead [[RPC]]s +will be used instead. + +In the [[GNU Hurd|hurd]], a lot of what is traditionlly considered to be a UNIX +system call is implemented (primarily by means of [[RPC]]) inside [[glibc]]. -- cgit v1.2.3 From cd782d77c1e90976cb6dacf6ba78ba762f145a50 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 30 Nov 2010 10:39:28 +0100 Subject: Been reading another LWN issue... --- capability.mdwn | 14 ++-- community/gsoc/project_ideas.mdwn | 2 +- community/gsoc/project_ideas/valgrind.mdwn | 80 ---------------------- glibc.mdwn | 9 ++- glibc/fallocate.mdwn | 17 +++++ glibc/fork.mdwn | 18 +++-- glibc/signals.mdwn | 32 +++++++++ hurd/glibc/hurd-specific_api.mdwn | 8 ++- hurd/ng/trivialconfinementvsconstructorvsfork.mdwn | 24 ++++--- hurd/translator/magic.mdwn | 11 +-- open_issues/code_analysis.mdwn | 12 +++- open_issues/debugging.mdwn | 16 +++-- open_issues/multithreading.mdwn | 4 +- open_issues/nightly_builds_deb_packages.mdwn | 6 ++ open_issues/secure_file_descriptor_handling.mdwn | 9 +++ open_issues/unit_testing.mdwn | 9 ++- open_issues/valgrind.mdwn | 80 ++++++++++++++++++++++ persistency.mdwn | 11 +-- unix.mdwn | 48 +++++++++++-- unix/file_descriptor.mdwn | 13 ++++ virtualization.mdwn | 7 +- 21 files changed, 296 insertions(+), 134 deletions(-) delete mode 100644 community/gsoc/project_ideas/valgrind.mdwn create mode 100644 glibc/fallocate.mdwn create mode 100644 glibc/signals.mdwn create mode 100644 open_issues/valgrind.mdwn create mode 100644 unix/file_descriptor.mdwn (limited to 'hurd') diff --git a/capability.mdwn b/capability.mdwn index 367ea163..d78810d5 100644 --- a/capability.mdwn +++ b/capability.mdwn @@ -1,12 +1,13 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] A capability is a protected reference. It is a reference in that it designates an object; it is protected in that in cannot be @@ -27,7 +28,6 @@ sent a string to identify the file to B, the identifier lacks a than A intended. Be ensuring that [[designation]] and [[authorization]] are always bound together, these problems are avoided. -[[Unix]] file descriptors can be viewed as capabilities. Unix file -descriptors do not survive reboot, that is, they are not -[[persistent|persistency]]. To work around this, [[ACL]]s are used to -recover authority. +[[UNIX file descriptors|unix/file_descriptor]] can be viewed as capabilities. +They do not survive reboot, that is, they are not [[persistent|persistency]]. +To work around this, [[ACL]]s are used to recover authority. diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index b039608f..649e05c1 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -106,4 +106,4 @@ See also the list of [Hurd-related X.org project ideas](http://wiki.x.org/wiki/H [[!inline pages="community/gsoc/project_ideas/testsuites" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/libcap" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/xattr" show=0 feeds=no actions=yes]] -[[!inline pages="community/gsoc/project_ideas/valgrind" show=0 feeds=no actions=yes]] +[[!inline pages="open_issues/valgrind" show=0 feeds=no actions=yes]] diff --git a/community/gsoc/project_ideas/valgrind.mdwn b/community/gsoc/project_ideas/valgrind.mdwn deleted file mode 100644 index 7d68e82d..00000000 --- a/community/gsoc/project_ideas/valgrind.mdwn +++ /dev/null @@ -1,80 +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]]."]]"""]] - -[[!meta title="Porting Valgrind to the Hurd"]] - -[Valgrind](http://valgrind.org/) is an extremely useful debugging tool for memory errors. -(And some other kinds of hard-to-find errors too.) -Aside from being useful for program development in general, -a Hurd port will help finding out why certain programs segfault on the Hurd, -although they work on Linux. -Even more importantly, it will help finding bugs in the Hurd servers themselfs. - -To keep track of memory use, -Valgrind however needs to know how each [[system call]] affects the validity of memory regions. -This knowledge is highly kernel-specific, -and thus Valgrind needs to be explicitely ported for every system. - -Such a port involves two major steps: -making Valgrind understand how kernel traps work in general on the system in question; -and how all the individual kernel calls affect memory. -The latter step is where most of the work is, -as the behaviour of each single [[system call]] needs to be described. - -Compared to Linux, -Mach (the microkernel used by the Hurd) has very few kernel traps. -Almost all [[system call]]s are implemented as RPCs instead -- -either handled by Mach itself, or by the various Hurd servers. -All RPCs use a pair of mach\_msg() invocations: -one to send a request message, and one to receive a reply. -However, while all RPCs use the same mach\_msg() trap, -the actual effect of the call varies greatly depending on which RPC is invoked -- -similar to the ioctl() call on Linux. -Each request thus must be handled individually. - -Unlike ioctl(), -the RPC invocations have explicit type information for the parameters though, -which can be retrieved from the message header. -By analyzing the parameters of the RPC reply message, -Valgrind can know exactly which memory regions are affected by that call, -even without specific knowledge of the RPC in question. -Thus implementing a general parser for the reply messages -will already give Valgrind a fairly good approximation of memory validity -- -without having to specify the exact semantic of each RPC by hand. - -While this should make Valgrind quite usable on the Hurd already, it's not perfect: -some RPCs might return a buffer that is only partially filled with valid data; -or some reply parameters might be optional, -and only contain valid data under certain conditions. -Such specific semantics can't be deduced from the message headers alone. -Thus for a complete port, -it will still be necessary to go through the list of all known RPCs, -and implement special handling in Valgrind for those RPCs that need it. - -The goal of this task is at minimum to make Valgrind grok Mach traps, -and to implement the generic RPC handler. -Ideally, specific handling for RPCs needing it should also be implemented. - -Completing this project will require digging into Valgrind's handling of [[system call]]s, -and into Hurd RPCs. -It is not an easy task, but a fairly predictable one -- -there shouldn't be any unexpected difficulties, -and no major design work is necessary. -It doesn't require any specific previous knowledge: -only good programming skills in general. -On the other hand, -the student will obtain a good understanding of Hurd RPCs while working on this task, -and thus perfect qualifications for Hurd development in general :-) - -Possible mentors: Samuel Thibault (youpi) - -Exercise: As a starter, -students can try to teach valgrind a couple of Linux ioctls, -as this will make them learn how to use the read/write primitives of valgrind. diff --git a/glibc.mdwn b/glibc.mdwn index 2eba3667..124216d9 100644 --- a/glibc.mdwn +++ b/glibc.mdwn @@ -36,11 +36,18 @@ Porting glibc to a specific architecture is non-trivial. * [[open_issues/secure_file_descriptor_handling]] +## Concepts + + * [[environment_variables]] + + * [[signals]] + + ## Individual functions Some of these are well-known as [[UNIX]] [[system call]]s. - * [[environment_variables]] + * [[fallocate]] * [[fork]] diff --git a/glibc/fallocate.mdwn b/glibc/fallocate.mdwn new file mode 100644 index 00000000..3aecf16b --- /dev/null +++ b/glibc/fallocate.mdwn @@ -0,0 +1,17 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +Not yet implemented for the GNU Hurd in [[glibc]]. + + +# External + + * [*Punching holes in files*](http://lwn.net/Articles/415889/), Jonathan + Corbet, 2010-11-17. diff --git a/glibc/fork.mdwn b/glibc/fork.mdwn index e8556a91..378fe835 100644 --- a/glibc/fork.mdwn +++ b/glibc/fork.mdwn @@ -14,10 +14,10 @@ Our implementation in [[glibc]] is and needs to be rather bulky. For example, it has to duplicate all port rights for the new [[Mach task|microkernel/mach/task]]. The address space can simply be duplicated by -standard means of the [[microkernel/Mach]], but as [[file descriptor]]s (for -example) are a concept that is implemented inside [[glibc]] (based on [[Mach -port|microkernel/mach/port]]s), these have to be duplicated from userspace, -which requires a small number of [[RPC]] for each of them. +standard means of the [[microkernel/Mach]], but as [[unix/file_descriptor]]s +(for example) are a concept that is implemented inside [[glibc]] (based on +[[Mach port|microkernel/mach/port]]s), these have to be duplicated from +userspace, which requires a small number of [[RPC]] for each of them. In sum, [[this affects performance|open_issues/performance/fork]] when new processes are continuously being spawned from the shell, for example. @@ -43,7 +43,7 @@ they have patches for software packages, to avoid using `fork` followed by ([[!taglink open_issue_glibc]]). * Include de-duplicate information from elsewhere: [[hurd-paper]], - [[hurd-talk]] [[hurd/ng/trivialconfinementvsconstructorvsfork]], + [[hurd-talk]], [[hurd/ng/trivialconfinementvsconstructorvsfork]], [[open_issues/resource_management_problems/zalloc_panics]] ([[!taglink open_issue_glibc open_issue_documentation]]). @@ -54,13 +54,11 @@ they have patches for software packages, to avoid using `fork` followed by ## Related - * [[secure file descriptor handling]]. + * [[open_issues/secure_file_descriptor_handling]]. # External - * [*How fork(2) ought to be*](http://www.greenend.org.uk/rjk/fork.html) by - Richard Kettlewell. + * {{$unix#djb_self-pipe}}. - * [*The self-pipe trick*](http://cr.yp.to/docs/selfpipe.html) by - D. J. Bernstein. + * {{$unix#rjk_fork}}. diff --git a/glibc/signals.mdwn b/glibc/signals.mdwn new file mode 100644 index 00000000..40fdc0e1 --- /dev/null +++ b/glibc/signals.mdwn @@ -0,0 +1,32 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +*[[UNIX]] signals* are a means to asynchronously invoke a specific function +(*signal handler*). This may impact on [[system call]]s that are executing at +the same time in that they may be completely aborted, return incomplete +results, scheduled for restarting, or cause signal delivery to be blocked upon +the system call's completion. + +An explanation can be found in the relevant standards, an overview, including +UNIX signals' deficiencies is given in {{$unix#2010_brown_ghosts_3}}, for +example. + +The UNIX signalling mechanism is implemented for the GNU Hurd by means of a +separate signal-handling thread that is part of every process. This makes +handling of signals a separate thread of control. + + * [[SA_SIGINFO, SA_SIGACTION|open_issues/sa_siginfo_sa_sigaction]] + + +# External + + * {{$unix#djb_self-pipe}}. + + * {{$unix#rjk_fork}}. diff --git a/hurd/glibc/hurd-specific_api.mdwn b/hurd/glibc/hurd-specific_api.mdwn index 75220279..7ead63cd 100644 --- a/hurd/glibc/hurd-specific_api.mdwn +++ b/hurd/glibc/hurd-specific_api.mdwn @@ -82,7 +82,13 @@ programs -- they are used to produce `.h` files.
openport (io_t port, int flags);

-
Open a file descriptor on a port. FLAGS are as for open; flags affected by io_set_openmodes are not changed by this. If successful, this consumes a user reference for PORT (which will be deallocated on close.) See &lt;hurd/io.defs&gt; and &lt;hurd/io.h&gt;.
+
Open a [[unix/file_descriptor]] on a [[microkernel/mach/port]]. FLAGS + are as for open; flags affected by io_set_openmodes are + not changed by this. If successful, this consumes a user reference for + PORT (which will be deallocated on close.) See + &lt;hurd/io.defs&gt; and + &lt;hurd/io.h&gt;. +

task_t
diff --git a/hurd/ng/trivialconfinementvsconstructorvsfork.mdwn b/hurd/ng/trivialconfinementvsconstructorvsfork.mdwn index 0d91dee7..949895e7 100644 --- a/hurd/ng/trivialconfinementvsconstructorvsfork.mdwn +++ b/hurd/ng/trivialconfinementvsconstructorvsfork.mdwn @@ -34,15 +34,15 @@ This mechanism is targeted at a specific use pattern, namely that a process is c # POSIX Fork POSIX fork, or rather fork+exec, is how things are done on many current -systems. It may be insightful to see it included in the comparison, especially -for people who are new to the subject. There are two [[system call]]s, fork and -exec. Fork will create a clone of the current process, including all the -capabilities (that is, file descriptors) of the parent (except the ones which -have explicitly been excluded). Exec is a [[system call]] which really goes to -the filesystem, not the kernel (although on systems which use it, the -filesystem usually resides in the kernel), and asks it to spawn a new process -from the contents of a certain path in place of the caller. This passes all -capabilities to the new process. The procedure is: +systems. It may be insightful to see it included in the comparison, especially +for people who are new to the subject. There are two [[system call]]s, fork +and exec. Fork will create a clone of the current process, including all the +capabilities (that is, [[unix/file_descriptor]]s) of the parent (except the +ones which have explicitly been excluded). Exec is a [[system call]] which +really goes to the filesystem, not the kernel (although on systems which use +it, the filesystem usually resides in the kernel), and asks it to spawn a new +process from the contents of a certain path in place of the caller. This +passes all capabilities to the new process. The procedure is: * P calls fork(), creating P'. * P' drops B. @@ -62,7 +62,11 @@ In contrast, the other two options don't pass anything by default. If there is a The problem of fork+exec can be solved. It is if the default would be to not pass capabilities to the new process, but specify a list of capabilities that it should keep, or (like in the other cases) pass them over a new channel which is implicitly created during the fork. However, in that case the only difference with trivial confinement is that P' dies in the process (and thus must be created to prevent P from dying). Almost any use of exec is in practice preceded by a fork for this purpose. It would be easier to make trivial confinement the default operation and let P die directly after it in the rare case that it should. -The only reason for continuing to use fork+exec would be that it is what existing programs do. However, they break anyway if they need to specify which file descriptors to pass. So they need to be adapted. Therefore, it's better to make the usual spawning method the primitive one, and emulate the other. +The only reason for continuing to use fork+exec would be that it is what +existing programs do. However, they break anyway if they need to specify which +[[unix/file_descriptor]]s to pass. So they need to be adapted. Therefore, it's +better to make the usual spawning method the primitive one, and emulate the +other. # Trivial Confinement vs Constructor diff --git a/hurd/translator/magic.mdwn b/hurd/translator/magic.mdwn index 06ee798b..84bacdfb 100644 --- a/hurd/translator/magic.mdwn +++ b/hurd/translator/magic.mdwn @@ -1,20 +1,21 @@ -[[!meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2006, 2007, 2008, 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] The magic translator provides `/dev/fd`. $ showtrans /dev/fd /hurd/magic --directory fd -The `/dev/fd` directory holds the open file descriptors for your current -process. You can't see them with `ls -l /dev/fd/` but you can see them +The `/dev/fd` directory holds the open [[unix/file_descriptor]]s for your +current process. You can't see them with `ls -l /dev/fd/` but you can see them individually like this: $ ls -l /dev/fd/0 diff --git a/open_issues/code_analysis.mdwn b/open_issues/code_analysis.mdwn index 98447e98..ad104e68 100644 --- a/open_issues/code_analysis.mdwn +++ b/open_issues/code_analysis.mdwn @@ -8,7 +8,7 @@ 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]]."]]"""]] -There is static and dynamic code analysis. +There is static and dynamic code analysis. This overlaps with [[debugging]]. * [[GCC]]'s warnings. Yes, really. @@ -29,3 +29,13 @@ There is static and dynamic code analysis. * * + + * [[Valgrind]] + + * + + * + + * + + * diff --git a/open_issues/debugging.mdwn b/open_issues/debugging.mdwn index 95b7bf9b..e66a086f 100644 --- a/open_issues/debugging.mdwn +++ b/open_issues/debugging.mdwn @@ -18,7 +18,7 @@ We have debugging infrastructure. For example: * [[GNU Mach debugging|microkernel/mach/gnumach/debugging]] * [[GNU Hurd debugging|hurd/debugging]], including - [[hurd/debugging/rpctrace]] and more. + [[hurd/debugging/rpctrace]], and more. # To Do @@ -29,14 +29,20 @@ We have debugging infrastructure. For example: * [[profiling]] - * *[Checkpoint/restart](http://lwn.net/Articles/412749/) allows the state of - a set of processes to be saved to persistent storage, then restarted at - some future time* -- quoting from Jonathan Corbet's 2010 Linux Kernel - Summit report. + * *Checkpoint/restart allows the state of a set of processes to be saved to + persistent storage, then restarted at some future time* -- quoting from + Jonathan Corbet's [2010 Linux Kernel Summit + report](http://lwn.net/Articles/412749/). This is surely a very useful facility to have for reproducing failures, for example. But on the other hand it's questionable how it can help with debugging failures in [[GNU Hurd server|hurd/translator]]s' interactions, as their state is typically spread between several processes. + Continues: , which introduces + . + * [[locking]] + + * , or -- + just two examples; there's a lot of such stuff for Linux. diff --git a/open_issues/multithreading.mdwn b/open_issues/multithreading.mdwn index 81b96280..170734fd 100644 --- a/open_issues/multithreading.mdwn +++ b/open_issues/multithreading.mdwn @@ -22,9 +22,11 @@ Alternative approaches: * Continuation-passing style + * [[Erlang-style_parallelism]] + * [libtcr - Threaded Coroutine Library](http://oss.linbit.com/libtcr/) - * [[Erlang-style_parallelism]] + * --- diff --git a/open_issues/nightly_builds_deb_packages.mdwn b/open_issues/nightly_builds_deb_packages.mdwn index 29219c2a..9f5e2373 100644 --- a/open_issues/nightly_builds_deb_packages.mdwn +++ b/open_issues/nightly_builds_deb_packages.mdwn @@ -18,4 +18,10 @@ packages. --- +There is infrastructure available to test whole OS installations. + + * + +--- + See also [[nightly_builds]]. diff --git a/open_issues/secure_file_descriptor_handling.mdwn b/open_issues/secure_file_descriptor_handling.mdwn index c9956ede..1a514e69 100644 --- a/open_issues/secure_file_descriptor_handling.mdwn +++ b/open_issues/secure_file_descriptor_handling.mdwn @@ -8,7 +8,16 @@ 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 open_issue_glibc]] + `O_CLOEXEC`, `dup3` et al.; see . [[tschwinge]] once worked on this, posted patches to libc-alpha. This works needs to be resumed and finished. + +--- + +In an interesting point is made: *you [may] +want some [[unix/file_descriptor]] to still be open if 'exec' fails, but you +don't want it to be open after the exec succeeds*. [[I|tschwinge]]'m not sure +whether our current `O_CLOEXEC` implementation adheres to that. diff --git a/open_issues/unit_testing.mdwn b/open_issues/unit_testing.mdwn index 80a2860a..d50f5f6d 100644 --- a/open_issues/unit_testing.mdwn +++ b/open_issues/unit_testing.mdwn @@ -46,7 +46,14 @@ abandoned). * [*[ANNOUNCE] ktest.pl: Easy and flexible testing script for Linux Kernel Developers*](http://lwn.net/Articles/412302/) by Steven Rostedt, - 2010-10-28. + 2010-10-28. [v2](http://lwn.net/Articles/414064/), 2010-11-08. + + +# Related + + * [[nightly_builds]] + + * [[nightly_builds_deb_packages]] * -- ``comprehensive testing and benchmarking platform''. This one might be useful for [[performance]] diff --git a/open_issues/valgrind.mdwn b/open_issues/valgrind.mdwn new file mode 100644 index 00000000..2b0624d7 --- /dev/null +++ b/open_issues/valgrind.mdwn @@ -0,0 +1,80 @@ +[[!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]]."]]"""]] + +[[!meta title="Porting Valgrind to the Hurd"]] + +[Valgrind](http://valgrind.org/) is an extremely useful debugging tool for memory errors. +(And some other kinds of hard-to-find errors too.) +Aside from being useful for program development in general, +a Hurd port will help finding out why certain programs segfault on the Hurd, +although they work on Linux. +Even more importantly, it will help finding bugs in the Hurd servers themselfs. + +To keep track of memory use, +Valgrind however needs to know how each [[system call]] affects the validity of memory regions. +This knowledge is highly kernel-specific, +and thus Valgrind needs to be explicitely ported for every system. + +Such a port involves two major steps: +making Valgrind understand how kernel traps work in general on the system in question; +and how all the individual kernel calls affect memory. +The latter step is where most of the work is, +as the behaviour of each single [[system call]] needs to be described. + +Compared to Linux, +[[microkernel/Mach]] (the microkernel used by the Hurd) has very few kernel traps. +Almost all [[system call]]s are implemented as [[RPC]]s instead -- +either handled by Mach itself, or by the various [[Hurd servers|hurd/translator]]. +All RPCs use a pair of `mach_msg` invocations: +one to send a request message, and one to receive a reply. +However, while all RPCs use the same `mach_msg` trap, +the actual effect of the call varies greatly depending on which RPC is invoked -- +similar to the `ioctl` call on Linux. +Each request thus must be handled individually. + +Unlike `ioctl`, +the RPC invocations have explicit type information for the parameters though, +which can be retrieved from the message header. +By analyzing the parameters of the RPC reply message, +Valgrind can know exactly which memory regions are affected by that call, +even without specific knowledge of the RPC in question. +Thus implementing a general parser for the reply messages +will already give Valgrind a fairly good approximation of memory validity -- +without having to specify the exact semantic of each RPC by hand. + +While this should make Valgrind quite usable on the Hurd already, it's not perfect: +some RPCs might return a buffer that is only partially filled with valid data; +or some reply parameters might be optional, +and only contain valid data under certain conditions. +Such specific semantics can't be deduced from the message headers alone. +Thus for a complete port, +it will still be necessary to go through the list of all known RPCs, +and implement special handling in Valgrind for those RPCs that need it. + +The goal of this task is at minimum to make Valgrind grok Mach traps, +and to implement the generic RPC handler. +Ideally, specific handling for RPCs needing it should also be implemented. + +Completing this project will require digging into Valgrind's handling of [[system call]]s, +and into Hurd RPCs. +It is not an easy task, but a fairly predictable one -- +there shouldn't be any unexpected difficulties, +and no major design work is necessary. +It doesn't require any specific previous knowledge: +only good programming skills in general. +On the other hand, +the student will obtain a good understanding of Hurd RPCs while working on this task, +and thus perfect qualifications for Hurd development in general :-) + +Possible mentors: Samuel Thibault (youpi) + +Exercise: As a starter, +students can try to teach valgrind a couple of Linux ioctls, +as this will make them learn how to use the read/write primitives of valgrind. diff --git a/persistency.mdwn b/persistency.mdwn index f5347a4e..36f90c8a 100644 --- a/persistency.mdwn +++ b/persistency.mdwn @@ -1,18 +1,19 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] A persistent object is an object that survives reboot. On [[Unix]], files and directories are persistent but -processes and file descriptors are not. [[microkernel/EROS]] is +processes and [[unix/file_descriptor]]s are not. [[microkernel/EROS]] is an example of an orthogonally persistent system: -processes and capabilities also survive reboot. To a +processes and [[capabilities|capability]] also survive reboot. To a process, it generally only looks as if it had not been scheduled for a long time; the rest of its environment remains essentially the indistinguishable. diff --git a/unix.mdwn b/unix.mdwn index 601b36d1..bf361e2e 100644 --- a/unix.mdwn +++ b/unix.mdwn @@ -19,9 +19,49 @@ License|/fdl]]."]]"""]] UNIX*](http://www.informit.com/articles/printerfriendly.aspx?p=691503), an article by David Chisnall. - * [*Ghosts of Unix Past: a historical search for design - patterns*](http://lwn.net/Articles/411845/) (2010-10-27) by Neil Brown, - including file descriptors and the single, hierarchical namespace. + * The first in the series, {{$2010_brown_ghosts_1}} introduces the concepts + of [[file_descriptor]]s and the single, hierarchical [[namespace]]. + + Next, {{$2010_brown_ghosts_2}} discusses issues with *conflated designs* + such as the `mount` command (a problem we have partly solved / solved + differently with our [[hurd/translator]] approach and the + [[hurd/virtual_file_system]]), and the plethora of flags that can be passed + to the `open` [[system_call]]. + + In {{$2010_brown_ghosts_3}}, he deals with *unfixable designs*, such as + [[UNIX signals|glibc/signals]] and the *UNIX permission model* (which is + clearly inferior to a [[capability]]-based system). * [*UNIX File Permissions*](http://www.greenend.org.uk/rjk/2004/perms.html) - (2004) by Richard Kettlewell. + (2004) by Richard Kettlewell. ([[!taglink open_issue_documentation]]) + + +[[!ymlfront data=""" + +djb_self-pipe: + + D. J. Bernstein's [*self-pipe trick*](http://cr.yp.to/docs/selfpipe.html) + +rjk_fork: + + Richard Kettlewell's suggestions about [*how fork(2) ought to + be*](http://www.greenend.org.uk/rjk/fork.html) + +2010_brown_ghosts_1: + + "Neil Brown's 2010-10-27 article [*Ghosts of Unix Past: a historical search + for design patterns*](http://lwn.net/Articles/411845/)" + +2010_brown_ghosts_2: + + "Neil Brown's 2010-11-04 article [*Ghosts of Unix past, part 2: Conflated + designs*](http://lwn.net/Articles/412131/)" + +2010_brown_ghosts_3: + + "Neil Brown's 2010-11-16 article [*Ghosts of Unix past, part 3: Unfixable + designs*](http://lwn.net/Articles/414618/)" + +"""]] diff --git a/unix/file_descriptor.mdwn b/unix/file_descriptor.mdwn new file mode 100644 index 00000000..16e03fdf --- /dev/null +++ b/unix/file_descriptor.mdwn @@ -0,0 +1,13 @@ +[[!meta copyright="Copyright © 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]]."]]"""]] + +A *file descriptor* is a [[concept]] of [[UNIX]], and represents a +non-[[persistent|persistency]] handle to an object (a file, for example). With +respect to specific aspects, it is comparable to a [[capability]]. diff --git a/virtualization.mdwn b/virtualization.mdwn index 3a207ae8..78457eb9 100644 --- a/virtualization.mdwn +++ b/virtualization.mdwn @@ -6,8 +6,11 @@ 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + + * [[hurd/virtualization]] in the GNU Hurd's context. + # External -- cgit v1.2.3 From 238c43499c4e08562024c3ef59e50aa365b5f1b2 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 7 Dec 2010 14:26:40 +0100 Subject: Some bits about L4 and Coyotos. --- history/port_to_l4.mdwn | 10 ++- hurd/ng.mdwn | 2 - hurd/ng/choiceofmicrokernel.mdwn | 4 - hurd/ng/issues_with_mach.mdwn | 12 --- hurd/ng/microkernelcoyotos.mdwn | 11 --- hurd/what_is_the_gnu_hurd.mdwn | 23 ++++-- kernel.mdwn | 21 +++++ microkernel.mdwn | 32 ++++++-- microkernel/coyotos.mdwn | 30 +++++++ microkernel/l4.mdwn | 21 +++++ unix.mdwn | 2 + unsorted/HurdOnL4.mdwn | 173 --------------------------------------- unsorted/HurdOnL4/menu.lst | 55 ------------- unsorted/PortToL4.mdwn | 42 ---------- 14 files changed, 123 insertions(+), 315 deletions(-) delete mode 100644 hurd/ng/choiceofmicrokernel.mdwn delete mode 100644 hurd/ng/issues_with_mach.mdwn delete mode 100644 hurd/ng/microkernelcoyotos.mdwn create mode 100644 kernel.mdwn create mode 100644 microkernel/coyotos.mdwn create mode 100644 microkernel/l4.mdwn delete mode 100644 unsorted/HurdOnL4.mdwn delete mode 100644 unsorted/HurdOnL4/menu.lst delete mode 100644 unsorted/PortToL4.mdwn (limited to 'hurd') diff --git a/history/port_to_l4.mdwn b/history/port_to_l4.mdwn index cdf048e6..b58c0d91 100644 --- a/history/port_to_l4.mdwn +++ b/history/port_to_l4.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009 -Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +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 @@ -100,3 +100,9 @@ A lange number of discussion threads can be found in the archives of the > that we had come to envision in terms of interfaces and description of the > system's structure. The new name was selected, if I recall correctly, as it > clearly wasn't the Hurd nor the Hurd based on L4. + + +The source code is still available in [CVS module +`hurd-l4`](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/) (note that +this repository has in the beginning also been used for Neal's +[[microkernel/Viengoos]]). diff --git a/hurd/ng.mdwn b/hurd/ng.mdwn index fb4d742f..de33949d 100644 --- a/hurd/ng.mdwn +++ b/hurd/ng.mdwn @@ -10,7 +10,6 @@ These pages try to summarize the major discussions and ideas. This section explains the motivations behind the new design: - * [[Issues_with_Mach]] * [[Issues_with_L4_Pistachio]] * [[Limitations_of_the_original_Hurd_design]] @@ -64,7 +63,6 @@ A [[critique]] of the original Hurd is available. ## Implementation -* [[ChoiceOfMicrokernel]] * [[HurdInterafaces]] * [[PosixLayer]] * [[SystemStructure]] diff --git a/hurd/ng/choiceofmicrokernel.mdwn b/hurd/ng/choiceofmicrokernel.mdwn deleted file mode 100644 index 20ee6f05..00000000 --- a/hurd/ng/choiceofmicrokernel.mdwn +++ /dev/null @@ -1,4 +0,0 @@ -TBD - -* [[MicrokernelL4]] -* [[MicrokernelCoyotos]] diff --git a/hurd/ng/issues_with_mach.mdwn b/hurd/ng/issues_with_mach.mdwn deleted file mode 100644 index 9fac498f..00000000 --- a/hurd/ng/issues_with_mach.mdwn +++ /dev/null @@ -1,12 +0,0 @@ -[[!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 -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]]."]]"""]] - - * [[open issues/Resource Management Problems]] - * [[Critique]] diff --git a/hurd/ng/microkernelcoyotos.mdwn b/hurd/ng/microkernelcoyotos.mdwn deleted file mode 100644 index 2340901d..00000000 --- a/hurd/ng/microkernelcoyotos.mdwn +++ /dev/null @@ -1,11 +0,0 @@ -# The Coyotos microkernel - -[Coyotos](http://www.coyotos.org/index.html) is a microkernel and OS and the successor of EROS, that itself is the successor of KeyKOS. A more complete history can be found [here](http://www.coyotos.org/history.html). Its main objectives are to correcte some shortcomings of EROS, demonstrate that an atomic kernel design scales well, and (eventually) to completely formally verify both the kernel and critical system components by writing them in a new language called [bitc](http://www.bitc-lang.org/). [See [l4.verified](http://nicta.com.au/research/projects/l4.verified) for work on formally verifying an L4 microkernel.] - -Coyotos is an orthogonally persistent pure capability system. It uses -continuation based unbuffered asynchronous IPC (actually it's synchronous IPC -with asynchronous [[system calls]]). - -TODO: explain these terms and (more important) their consequences on system design. - -The coyotos microkernel specification can be found [here](http://www.coyotos.org/docs/ukernel/spec.html) diff --git a/hurd/what_is_the_gnu_hurd.mdwn b/hurd/what_is_the_gnu_hurd.mdwn index 0b8f7ef6..7a7f3d43 100644 --- a/hurd/what_is_the_gnu_hurd.mdwn +++ b/hurd/what_is_the_gnu_hurd.mdwn @@ -1,17 +1,18 @@ -[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2007, 2008 Free -Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] [[!meta title="What Is the GNU Hurd?"]] -The Hurd is the GNU project's replacement for the [[Unix]] kernel. +The Hurd is the GNU project's replacement for [[UNIX]], a popular operating +system [[kernel]]. The Hurd is firstly a collection of protocols formalizing how different components may interact. The protocols are designed to reduce the mutual @@ -22,11 +23,19 @@ process to implement a file system. The only requirement is that it have access to its backing store and that the [[principal]] that started it own the file system node to which it connects. -The Hurd is also a set of servers that implement these protocols. -They include file systems, network protocols and authentication. +The Hurd is also a set of [[servers|translator]] that implement these +protocols. They include file systems, network protocols and authentication. The servers run on top of the [[microkernel/Mach]] [[microkernel]] and use Mach's [[microkernel/mach/IPC]] mechanism to transfer information. +The Hurd provides a compatibility layer such that compiling higher level +programs is essentially transparent; that is, by means of the [[glibc]], it +provides the same standard interfaces known from other [[UNIX]]-like systems. +Thus, for a typical user, the Hurd is intended to silently work in the +background providing the services and infrastructure which the [[microkernel]] +itself has no business implementing, but that are required for higher level +programs and libraries to operate. + The Hurd supplies the last major software component needed for a complete [[GNU_operating_system|running/gnu]] as originally conceived by Richard M. Stallman (RMS) in 1983. The GNU vision directly drove the creation and has diff --git a/kernel.mdwn b/kernel.mdwn new file mode 100644 index 00000000..8190660e --- /dev/null +++ b/kernel.mdwn @@ -0,0 +1,21 @@ +[[!meta copyright="Copyright © 2004, 2006, 2007, 2008, 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]]."]]"""]] + +The kernel of an operating system is a fundamental program which provides +essential resources from the hardware of the computer to other programs. + +A kernel typically runs all the time and remains resident in main memory. + +The amount of functionality and resources which it provides vary tremendously. + + * [[microkernel]] + + * [[UNIX]] diff --git a/microkernel.mdwn b/microkernel.mdwn index e2d70c01..17344689 100644 --- a/microkernel.mdwn +++ b/microkernel.mdwn @@ -1,12 +1,15 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +A *microkernel* is one kind of a [[kernel]] implementation. [[Liedtke]] explains in [On Microkernel Construction](http://l4ka.org/publications/paper.php?docid=642) that a microkernel attempts to minimize the mandatory part of the operating @@ -19,12 +22,10 @@ The idea of a microkernel as explained above was first explored by Per Brinch-Hansen in 1970 in [The Nucleus of a Multiprogramming System](http://brinch-hansen.net/papers/1970a.pdf). -Other notable microkernels include [[Hydra]], [[KeyKOS]], [[Eros]] and [[L4]]. - An [introduction](http://www.cs.cornell.edu/Info/People/ulfar/ukernel/ukernel.html) by Úlfar Erlingsson and Athanasios Kyparlis (from 1996) to microkernel concepts. -[[Research]]. [[Viengoos]]. +[[Research]]. [[Microkernels_for_beginners|for_beginners]]. @@ -32,4 +33,21 @@ A 2002 article about [[microkernel_FUD|FUD]] (Fear, Uncertainty, Doubt). [[FAQ]]. -[[Mach]]. + +# Implementations + + * [[Hydra]] + + * [[KeyKOS]] + + * [[Mach]] -- used by the GNU/Hurd + + * [[EROS]] + + * [[CapROS]] + + * [[Coyotos]] + + * [[L4]] + + * [[Viengoos]] diff --git a/microkernel/coyotos.mdwn b/microkernel/coyotos.mdwn new file mode 100644 index 00000000..5ecea688 --- /dev/null +++ b/microkernel/coyotos.mdwn @@ -0,0 +1,30 @@ +[[!meta copyright="Copyright © 2006, 2007, 2008, 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]]."]]"""]] + +[[!meta title="Coyotos"]] + +[*Coyotos*](http://www.coyotos.org/) is a microkernel and OS and the successor +of [[EROS]], that itself is the successor of [[KeyKOS]]. A more complete +history can be found [here](http://www.coyotos.org/history.html). Its main +objectives are to correcte some shortcomings of [[EROS]], demonstrate that an +atomic kernel design scales well, and (eventually) to completely formally +verify both the kernel and critical system components by writing them in a new +language called [bitc](http://www.bitc-lang.org/). + +Coyotos is an orthogonally [[persistent|persistency]] pure [[capability]] +system. It uses [[continuation]]-based unbuffered asynchronous [[IPC]] +(actually it's synchronous [[IPC]] with asynchronous [[system calls]]). + +TODO: explain these terms and (more important) their consequences on system +design. + +The coyotos microkernel specification can be found +[here](http://www.coyotos.org/docs/ukernel/spec.html). diff --git a/microkernel/l4.mdwn b/microkernel/l4.mdwn new file mode 100644 index 00000000..970407be --- /dev/null +++ b/microkernel/l4.mdwn @@ -0,0 +1,21 @@ +[[!meta copyright="Copyright © 2004, 2006, 2007, 2008, 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]]."]]"""]] + +The [*L4* microkernel](http://l4ka.org/) is an attempt to create a very small +high performace core which provides basic memory management, task and context +switching, and little else. + +[L4Ka Pistachio Home](http://l4ka.org/projects/pistachio/). + +See [l4.verified](http://nicta.com.au/research/projects/l4.verified) for work +on formally verifying an L4 microkernel. + +There was a GNU/Hurd [[history/port_to_L4]], which is now stalled. diff --git a/unix.mdwn b/unix.mdwn index bf361e2e..3cfe7771 100644 --- a/unix.mdwn +++ b/unix.mdwn @@ -10,6 +10,8 @@ License|/fdl]]."]]"""]] [[!meta title="UNIX"]] +*UNIX* is a [[kernel]] implementation. + # External diff --git a/unsorted/HurdOnL4.mdwn b/unsorted/HurdOnL4.mdwn deleted file mode 100644 index 79e7a714..00000000 --- a/unsorted/HurdOnL4.mdwn +++ /dev/null @@ -1,173 +0,0 @@ -# GNU/Hurd on L4 wiki - -## Introduction - -This page is a place for information pertaining to the efforts towards realizing the migration and porting of the [[Hurd]] such that it uses the [L4 Microkernel](http://l4ka.org/). The GNU/Hurd Operating System, sometimes just referred to as the _GNU Operating System_ is a rich and robust collection of programs and utilities which enable you to use your computer to do usefull and or entertaining things. The intent is that most any applicable software package available on the [GNU Website](http://www.gnu.org) (and many others also) will be able to be compiled and run under the resultant operating system. - -At this point (06/20/2004) this is not yet possible. Indeed, the preliminary foundations are still being developed. Nevertheless, this is a volunteer created operating system so those with the knowledge, interest, and spare time are encouraged to study and if possible contribute to the project. - -In [CVS module hurd-l4](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/), there is a [comprehensive list of items that need to be done](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/TODO). - -## Components of the System - -### The L4 Microkernel - -The kernel of an operating system is a fundamental program which provides essential resources from the hardware of the computer to other programs. A kernel typically runs all the time and remains resident in main memory. The amount of functionality and resources which it provides vary tremendously. The [L4 Microkernel](http://l4ka.org/) is an attempt to create a very small high performace core which provides basic memory management, task and context switching, and little else. - -### The Hurd - -The [Hurd](http://www.gnu.org/software/hurd/hurd.html) is a conglomeration of servers and programs which add additional functionality to a microkernel such that it is capable of utilizing additional hardware resources of the computer. It also provides a compatibility layer such that compiling higher level programs is essentially transparent; i.e. when you write a C program and compile it, you need only include standard headers and libraries and for all intents and purposes your generic program will build and run and you need never resort to unportable coding or access to hardware specific methods. - -For a typical user, The Hurd is intended to silently work in the background providing the services and infrastructure which are lacking in the microkernel but are required for higher level programs and libraries to operate. - -### GNU Programs - -For the user, this is what is desired: to run [GNU Software](http://www.gnu.org/). These programs provide a full featured, robust, and extremely effective operating system. A L4/Hurd system should be capable of compiling and executing most any software package available from GNU with little or no modification. - -Some readers may be familiar with GNU/Linux systems. When GNU/L4 is complete it should highly resemble the functionality of such systems as L4 and Hurd effectively replace the Linux kernel. The bulk of the software should be expected to run much as it does presently under the Linux kernel (or gnumach based GNU/Hurd systems). - -## Preparations - -### Build System - -There are no precompiled binaries for Hurd on L4 that I am aware of, so you will need to be able to compile the source code packages in order to experiment with it. While L4Ka will likely build on a variety of compilers and systems, the Hurd may prove troublesome unless it is built using recent GNU compilers and tools. - -I recently used [Debian Unstable](http://www.debian.org) (Sarge) with GNU gcc version 3.3, autoconf version 2.50, and automake version 1.8 to build the system with good results, although other similarly equipped systems with a good development environment, such as [Gentoo](http://www.gentoo.org) or [Slackware](http://www.slackware.com) are reported to work fine also. - -Generally, I would recommend building the packages using any very up-to-date GNU development system. I'm not going to say that you can't compile them using more exotic platforms, but I wouldn't be overly hopefull about it. I have no idea if Pistachio can be compiled under current gnuMach/Hurd systems it might be interesting to try it. - -### Making a Home for L4/Hurd - -Obviously you want to have a home for this little embryonic operating system. Currently, mine is using about 5M for the binaries and headers. If you want the source to reside with the binaries, then allow perhaps another 50M or so, but this is purely optional. - -At the moment, Hurd on L4 can't even see your hard drive, so all you need is a directory on some partition which is visible to the GRUB bootloader. A `/l4hurd` directory on your existing GNU/Linux system is probably fine for now. - -Howevever, if you have some spare disk space or an unused partition, you could optionally create a small partition for the system. This is totally unnecessary at the moment because L4/Hurd lacks hard disk drivers right now, but it is an option. Assuming that you have made some partition **X** with linux _fdisk_, set it to type 83 - Linux and use the following command to initialize it with the classic Hurd extensions: - - - -As noted, this is purely optional, in fact right now you can use any filesystem that GRUB can understand. You can even use TFTP to netboot the system. My current setup takes about 5M for the full install so obviously you don't need much space for this. - -### Boot Loader - -Just like regular GNU/Hurd, you need to use [GNU GRUB](http://www.gnu.org/software/grub/), the _GRand Unified Bootloader_ in order to boot the system. Hopefully you already have it installed, in which case adding the commands for L4/Hurd to your `menu.lst` is quite trivial. - -If you don't have GRUB installed, then you should probably take some time to get it set up. A good place to look for help is on the regular [Debian GNU/Hurd Installation Page](http://www.debian.org/ports/hurd/hurd-install) at the **3\. The Boot Loader** section. - -This is probably a bit superfluous, but you can even display a snazzy little graphic of some type on your GRUB boot menu. Here's a snip from the header of my `menu.lst` which demonstrates how to do this. - - # menu for grub - splashimage (hd0,0)/boot/grub/debian.xpm - foreground bfbfe7 - background 3f3f7f - -In the above example, my `debian.xpm` is just a 640x480 graphic in xpm format (which you can easily create with GIMP). It does add a bit of pizazz to your boot screen :-) - -In fact, I will attach a sample copy of my `menu.lst` here. It has lots of examples for booting a variety of operating systems in it. Remember that my hard drive partitions are unique to my system. - -* [[ATTACHURLmenulst]]: Sample GRUB boot menu - -## Building Hurd on L4 - -### L4Ka Pistachio - -#### Getting the Sources - -I used the latest version of L4Ka, Pistachio version 0.4. It can be obtained from the following website: - -[L4Ka Pistachio Home](http://l4ka.org/projects/pistachio/) - -#### Compiling - -Pistachio is designed to be compiled in a build directory which is independant from the source directory, so you need to create your build directory after unpacking the tarball. Furthermore, you need to pass a couple of special parameters to the configure program to set it up for use with Hurd. Here is what I did on my ia32 system: - -Note: I have my installation set up in `/l4hurd` and I am starting from within the Pistachio source top-level directory. - - $ mkdir build - $ cd build - Building and installing user-level libraries and servers/applications - $ ../user/configure --with-s0-linkbase=0x40000 --prefix=/l4hurd - $ make - $ make install - Building and installing the kernel - $ make -C ../kernel BUILDDIR=`pwd`/kernel - $ cd kernel - $ make menuconfig - $ make - $ mkdir /l4hurd/boot - $ cp ia32-kernel /l4hurd/boot - -Hopefully everything worked and there were no problems. As usual, if the build fails then scrutinize the output from `configure` and install any missing libraries or development packages. - -### CVS l4hurd - -#### Getting the sources - - You need to pull the L4 Hurd sources from the CVS tree on Savannah. The CVS access page is [The GNU/Hurd - CVS (module hurd-l4)](http://savannah.gnu.org/cvs/?group=hurd). In a nutshell, the following commands should retrieve the sources for you: - - $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co hurd-l4 - -#### Compiling - -Take a look at the README, compiling should be quite simple on any state of the art GNU development system. As per the README, and for my example, you would: - - $ autoreconf -f -i -s - $ ./configure --enable-maintainer-mode --prefix=/l4hurd - $ make - $ make install - $ strip physmem/physmem - - $ mkdir /l4hurd/boot - $ cp laden/laden /l4hurd/boot - $ cp wortel/wortel /l4hurd/boot - $ cp physmem/physmem /l4hurd/boot - -Currently (2004/08/09), physmem needs to be stripped to to avoid a memory conflict with wortel; this requirement may be fixed in the future. - -In my case it was slightly more complicated as Debian uses a wrapper system to enable the use of multiple versions of the GNU Autotools. In this case, the trick is to utilize some environment variables on the command line as follows: - - $ ACLOCAL=aclocal-1.8 AUTOMAKE=automake-1.8 autoreconf -f -i -s - -As above, hopefully this will compile cleanly; otherwise, scroll up, read any error messages, and correct them by installing required packages of the proper version. Any bad compilation problems are most likely due to you either missing or using a wrong version of something. - -## Installing - -The binaries are now installed into `/l4hurd`. All that remains is to add an entry into GRUB's `menu.lst` in order to test it out. Here's an example from my system where I have `/l4hurd` on `/dev/hda9` in my Linux system: - - title GNU Hurd on L4Ka Pistachio 0.4 - root (hd0,8) - kernel /boot/laden -D - module /boot/ia32-kernel - module /libexec/l4/sigma0 - module /boot/wortel -D - module /boot/physmem -D - module /boot/physmem - module /boot/physmem - module /boot/physmem - module /boot/physmem - -It might strike you a little odd that there are five physmem modules. This is done because wortel currently (2004/08/09) expects exactly five modules and the other modules (like the task server, auth server, etc.) have not been implemented yet. Therefore the physmem module is used as a dummy module. - -## Booting - -For me at least, I got some nifty messages and then it dropped into a simple debugging mode. As far as I know, thats all there is right now. - -Read, build, learn, code... - ---todo: add more here. - -## Experimenting - -Well, thats why you did all of this, certainly not to do anything else. Use that debugger and get experimenting. - ---todo: things to do wth the debugger - -## Conclusion - -If you followed these steps, you most likely have built and booted the latest version of Hurd on L4. I would encourage you to subscribe to the mailing list at the following URL and help in the efforts to get this nifty system up to speed: - -[l4-hurd mailing list](http://lists.gnu.org/mailman/listinfo/l4-hurd) - -And finally, this is a wiki, meaning that **you** have the ability to edit and modify this page. If you want to fix something, add more information, new sub-pages, whatever, feel free to do so. This is a great way to get a doc base up fast and keep it current, so use it like its supposed to be and have fun with Hurd on L4! - --- [[Main/BDouglasHilton]] - 20 Jun 2004 diff --git a/unsorted/HurdOnL4/menu.lst b/unsorted/HurdOnL4/menu.lst deleted file mode 100644 index 3129ea74..00000000 --- a/unsorted/HurdOnL4/menu.lst +++ /dev/null @@ -1,55 +0,0 @@ -# menu for grub -splashimage (hd0,0)/boot/grub/debian.xpm -foreground bfbfe7 -background 3f3f7f - -timeout 30 -default 0 - -title Debian Sid with Linux kernel 2.6.5 -root (hd0,1) -kernel /vmlinuz root=/dev/hda2 vga=0x318 - -title Debian Sid with old kernel -root (hd0,1) -kernel /vmlinuz.old root=/dev/hda2 vga=9 - -title Microsoft Windows 2000 -rootnoverify (hd0,3) -chainloader (hd0,3)+1 - -title FreeDOS BETA 8.0 -root (hd0,0) -chainloader +1 - -title GNU Hurd on L4Ka Pistachio 0.4 -root (hd0,8) -kernel /boot/laden -D -module /boot/ia32-kernel -module /libexec/l4/sigma0 -module /boot/wortel -D -module /boot/physmem - -title Debian GNU/Hurd (gnumach) -root (hd0,7) -kernel /boot/kernel.gz root=device:hd0s8 -module /hurd/ext2fs.static --readonly \ - --multiboot-command-line=${kernel-command-line} \ - --host-priv-port=${host-port} \ - --device-master-port=${device-port} \ - --exec-server-task=${exec-task} \ - -T typed ${root} $(task-create) $(task-resume) -module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - -# title Debian GNU/Hurd (oskit-mach) -# root (hd3,0) -# kernel /boot/kernel-ide -- root=hd0s1 -# module /hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T device ${root-device} $(task-create) $(task-resume) -# module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - -# title Debian GNU/Hurd (oskit-mach w/ remote debugging) -# root (hd3,0) -# kernel /boot/kernel-ide -d GDB_COM=1 BAUD=9600 -- root=hd0s1 -# module /hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T device ${root-device} $(task-create) $(task-resume) -# module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - diff --git a/unsorted/PortToL4.mdwn b/unsorted/PortToL4.mdwn deleted file mode 100644 index fb7f0004..00000000 --- a/unsorted/PortToL4.mdwn +++ /dev/null @@ -1,42 +0,0 @@ -**_The Hurd-L4 port has an [official page](http://www.gnu.org/software/hurd/hurd-l4.html) with more up-to-date information_** -- [[Main/OgnyanKulev]] - 05 Feb 2005 - -A group of one being led by Neal H. Walfield is working on porting the Hurd to the pistachio version of the L4 microkernel. This second generation microkernel provides a significantly different API than the one offered by the Mach microkernel, a first generation microkernel. One of the primary goals of the project, outside of porting the Hurd to L4, is to reevaluate the current Hurd abstractions and consider how they can be modified to be more general. - -I have no web page describing my efforts. There is a mailing list[1]. - -[1] - --- Neal Walfield, 18 Sep 2002 - -Neal noted [1] that there are licensing issues being worked out so no code is yet released. His work was performed in the summer of 2002 at Karlsruhe. - -[1] - --- [[Main/GrantBow]] - 21 Sep 2002 - -There are several important pages that are of interest for the L4 & hurd communities. - -* Main L4 home page - -* Hurd on L4 - -* Hurd on L4 - -* - --- [[Main/GrantBow]] - 22 May 2002 - - - --- [[Main/GrantBow]] - 24 Oct 2002 - -There was [discussion in October 2002](http://mail.gnu.org/pipermail/l4-hurd/2002-October/000727.html) about the differences between Hurd on Mach and Hurd on L4 with some interesting URLs. In the thread Okuji [responds](http://mail.gnu.org/pipermail/l4-hurd/2002-October/000728.html) confirming his document is two years old and outdated by the directions that Neal is taking in furthering this effort. The URLs in that email might be helpful to those learning more about Hurd and L4 ideas that were considered yet abandoned. - --- [[Main/GrantBow]] - 04 Jan 2003 - -A "Porting GNU Hurd to L4" website: - -* - --- [[Main/SebastianGabriel]] - 29 Sep 2003 - -The only valid L4-Hurd link on is - --- [[Main/JoachimNilsson]] - 29 Sep 2003 -- cgit v1.2.3 From a443aefc2e130efeb1c76edd91cb950d90ad6adf Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 11 Dec 2010 10:09:39 +0100 Subject: hurd/subhurd: Add use case: debugging the main Hurd system --- hurd/subhurd.mdwn | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) (limited to 'hurd') diff --git a/hurd/subhurd.mdwn b/hurd/subhurd.mdwn index 5b132604..84372dd1 100644 --- a/hurd/subhurd.mdwn +++ b/hurd/subhurd.mdwn @@ -1,12 +1,13 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] A sub-Hurd is like a [[neighbor_Hurd|neighborhurd]], however, makes use of some resources provided by another Hurd. For instance, backing store and the @@ -17,7 +18,8 @@ attach to them with gdb from the parent ([[debugging_via_subhurds|debugging/subhurd]]). This avoids deadlock, e.g., when the instance of gdb stops the server but requires its use. (Note: it is possible to use [[debugging/gdb/noninvasive_debugging]], but this is less -flexible.) +flexible.) Vice versa, it is also possible to use a subhurd to debug the +*main* Hurd system, for example, the latter's root file system. # Howto @@ -105,9 +107,9 @@ inside the subhurd, or to `ssh` directly into the subhurd. If you want to access the subhurd processes from the outside, e.g. for [[debugging_purposes|debugging/subhurd]] (or to get rid of a subhurd that -didn't exit cleanly...), you need to find out how main Hurd PIDs correspond to +didn't exit cleanly...), you need to find out how main Hurd [[PID]]s correspond to subhurd processes: the subhurd processes appear in the main Hurd (e.g. if doing -`ps -e`) as unknown processes, and vice versa, but the PIDs are different! To +`ps -e`) as unknown processes, and vice versa, but the [[PID]]s are different! To find out which process is which, you can simply compare the order -- while the numbers are different, the order should usually match. Often it also helps to look at the number of threads (e.g. using `ps -l`), as many servers have very @@ -119,3 +121,20 @@ characteristic thread counts. Read about using a subhurd for [[debugging_purposes|debugging/subhurd]]. Roland's tutorial about [[running_a_subhurd]]. + + +# Use Cases + +## Debugging the *Main* Hurd System + +A subhurd can be used for debugging the *main* Hurd system. This works as long +as the subhurd doesn't use any services provided by the main Hurd. For +example, if you already have a subhurd running at the time it happens, you can +use that one to debug a deadlocked [[translator/ext2fs]] root file system in +the *main* Hurd. + +For this, you need to get a handle to the main Hurd's [[ext2fs +translator|translator/ext2fs]]'s [[PID]], but this is no problem, as currently +[[PID]]s are visible across subhurd boundaries. (It is a [[!taglink +open_issue_hurd]] whether this is the right thing to do in +[[open_issues/virtualization]] contexts, but that's how it currently is.) -- cgit v1.2.3