From 32c274982cd9b8a4b5b1135117a79ea3b5939cba Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Fri, 15 Mar 2013 15:09:52 +0100 Subject: update faq --- hurd/faq/old_faq.txt | 83 +++++++++++++++++----------------------------------- 1 file changed, 27 insertions(+), 56 deletions(-) diff --git a/hurd/faq/old_faq.txt b/hurd/faq/old_faq.txt index 617d7661..24127462 100644 --- a/hurd/faq/old_faq.txt +++ b/hurd/faq/old_faq.txt @@ -76,23 +76,23 @@ is similar to Linux except, there is no `s'. For instance, `hda1' would become `hd0s1'. GRUB, the boot loader, uses a completely different nomenclature: it -probes the BIOS and appends each disk in turn to an array. Both disks -and partitions are enumerated using zero based arrays. The format is: -`hd (, )'. Thus, `hd (0, 1)' refers to the second -partition on the first drive detected by the BIOS. As Grub now has tab +probes the BIOS and appends each disk in turn to an array. Disks are enumerated +using zero based arrays. GRUB 2 enumerates partitions from one, while GRUB 1 +used to enumerate them from zero. +The format is: +`hd (, )'. Thus, in GRUB 2 `hd (0, 1)' refers to the first +partition on the first drive detected by the BIOS (or the second partition with +GRUB 1). As Grub now has tab completion, there is not a lot of guess work. ?? Can I use partitions larger than 2GB? -{MB} No, not currently. The filesystem servers need to be changed to -not map the whole store into memory, which is not too difficult. For -large files, some interfaces need to be changed, which is a bit harder -but still doable. +{ST} Yes. Disk drivers however currently do not support more than 2^32 sectors, i.e. +2TiB. ?? How much swap do I need? -{NHW} Generally, a lot; once you run out, Mach panics. I have at least -128MB of ram and 256MB of swap on all of machines running GNU/Hurd. +{ST} The usual rule of thumb applies: the same amount as RAM, for instance. ?? Can I share swap space between GNU/Linux and GNU/Hurd? @@ -216,18 +216,8 @@ prompt. ?? How do I use non-US keyboard bindings? -{NHW,FH} Take a look at: - - http://www.xs4all.nl/~mgerards/xkb8.tar.gz - -If you want a Debian package, you can add to your -'etc/apt/sources.list' - - deb http://debian.duckcorp.org/unstable/binary-hurd-i386/ ./ - -and then run - - apt-get install console-driver-xkb. +{ST} On Debian Hurd, you can configure the console layout from +`/etc/default/hurd-console`. ?? How do I enable color on the console? @@ -238,6 +228,9 @@ terminal to `mach-color'. For instance: ?? How can I enable virtual consoles? +{ST} On Debian Hurd, it is already enabled by default, and configured from +`/etc/default/hurd-console`. + {AMS} This can be done by running the following command: console -d vga -d pc_kbd -d generic_speaker /dev/vcs @@ -252,18 +245,12 @@ XFree86 4.0.2 is available, as are some of the v3 servers. Instructions on how to use the packages are in the mailing list archive (link follow later). -?? Why does X not work? - -{MB} Try `export LD_LIBRARY_PATH=/usr/X11R6/lib'. This is a linker -issue. GNU/Hurd expects that `RPATH' is used, however, Debian takes -certain measures to avoid this. Note that this does not cut it for suid -binaries because of security implications. We expect to rectify this -by using `RUNPATH', which is specified in the new ELF standard. +?? What are these strange pids `0`, `2', `3', `4`, and `5`? -?? What are these strange pids `2' and `3'? - -{MB} Two is the kernel, three is the default pager and four is the root -filesystem. +{MB,ST} Zero is the `proc` processus server (and thus does not really have a pid +:) ) Two is the kernel, three is the root filesystem server, four is the `exec` +server (which handles starting programs), five is the `auth` server (which +handles user authentication). ?? Why does `ps aux' give me strange output? @@ -284,22 +271,7 @@ that would require use of the message port. ?? Where are ... -{MB} `fdisk' and `dmesg' are not yet ported. - -Instead of `free', use `vmstat' and `vminfo'. - -For kernel messages, read `/dev/klog' directly. Note, once you read -this, it is gone forever. - - -?? Is there a `/proc' filesystem? - -{MB} No. Maybe there will be an emulation filesystem someday for -programs that rely it. If you are wondering about the empty `/proc' -directory, this is a relict from a Debian GNU/Linux package -(specifically, `base-files'). - -You can probe for existing hardware devices with the devprobe utility. +{MB} `dmesg' is not available. You can read `/var/log/dmesg` instead. ?? Why does the command `df' not work? @@ -412,25 +384,23 @@ author that allocates memory dynamically. ?? How can I help? -{NHW} A effort to compile all of the Debian packages is underway by Jeff -Bailey. Take a look at: - - http://people.debian.org/~jbailey/oasis/group/Debian/index.html - -to see what has been done and how you can help. +{ST} Please see the contributing page: +http://www.gnu.org/software/hurd/contributing.html ? Compiling ?? Where can I get the source? {AMS} Instructions on how to download the CVS tree from Savanah are -avaiable at https://savannah.gnu.org/cvs/?group=hurd +available at https://savannah.gnu.org/cvs/?group=hurd {NHW} To get the source to the latest debian package, look on any debian mirror. ?? Can I cross compile? +{ST} To REDO. + {NHW} Yes. If you are running Debian GNU/Linux on IA32, this is quite easy as there is a cheap cross compiler available; all that is required is installing the gcc-i386-gnu and mig-i386-gnu Debian packages. When @@ -560,3 +530,4 @@ Answers were given by (in chronological order): * {OK} Ognyan Kulev * {FH} Frédéric Henry * {MM} Manuel Menal +* {ST} Samuel Thibault -- cgit v1.2.3 From 64ab4a5a92923e79cd6711b903c5e01c8598f8ba Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Fri, 15 Mar 2013 15:29:39 +0100 Subject: fix list nesting --- hurd/running/debian.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hurd/running/debian.mdwn b/hurd/running/debian.mdwn index fcd4d49b..39c7d1a6 100644 --- a/hurd/running/debian.mdwn +++ b/hurd/running/debian.mdwn @@ -14,7 +14,7 @@ # Contributing - [[Porting]] — Helping with porting packages - * [[Patch_submission]] — How to submit patches for build failures + * [[Patch_submission]] — How to submit patches for build failures - [[Creating_image_tarball]] # Additional Information -- cgit v1.2.3 From 68521f15bf8f725b7e85159b0ed1d497e4c771ea Mon Sep 17 00:00:00 2001 From: "http://musial.pip.verisignlabs.com/" Date: Fri, 15 Mar 2013 16:12:27 +0100 Subject: Updated out of date personal information. --- user/musial.mdwn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/user/musial.mdwn b/user/musial.mdwn index dee4588a..a3e75f9e 100644 --- a/user/musial.mdwn +++ b/user/musial.mdwn @@ -8,8 +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]]."]]"""]] -Robert Musial - Cleveland, OH +~musial (Robert Musial) - Cleveland, OH -musial/at/gnu/dot/org +email: musial at gnu dot org -http://musial.sollux.net +http://mu5141.com -- cgit v1.2.3 From 6e9a7901223e4de14e3c953be177e6f26a3d03d3 Mon Sep 17 00:00:00 2001 From: "http://musial.pip.verisignlabs.com/" Date: Fri, 15 Mar 2013 16:14:02 +0100 Subject: --- user/musial.mdwn | 2 ++ 1 file changed, 2 insertions(+) diff --git a/user/musial.mdwn b/user/musial.mdwn index a3e75f9e..77a32058 100644 --- a/user/musial.mdwn +++ b/user/musial.mdwn @@ -13,3 +13,5 @@ License|/fdl]]."]]"""]] email: musial at gnu dot org http://mu5141.com + +Join the FSF! - http://www.fsf.org/register_form?referrer=9143 -- cgit v1.2.3 From 10a5ed091374ee5d6421e6c55afd86b13c0f52a3 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Fri, 15 Mar 2013 16:37:56 +0100 Subject: Reorganize the Hurd FAQ in a single place move all the hurd faq pages to the top-level faq directory; the faq.mdwn index now uses two simples map of all the subpages (one for the debian items, and the other for the non-debian items) TODO: now some of the items would need better titles --- faq.mdwn | 23 +- faq/2_gib_partition_limit.mdwn | 13 + faq/bad_hypermeta_data.mdwn | 15 + faq/debian/apt_umount.mdwn | 25 + faq/debian/other_repositories.mdwn | 16 + faq/debugging_inside_glibc.mdwn | 19 + faq/debugging_translators.mdwn | 15 + faq/df.mdwn | 19 + faq/eata.mdwn | 13 + faq/how_about_drivers.mdwn | 18 + faq/how_to_switch_microkernels.mdwn | 15 + faq/hurd_console.mdwn | 13 + faq/kernel_logs.mdwn | 14 + faq/native-install_doesnt_finish.mdwn | 24 + faq/off.mdwn | 21 + faq/old-stuff.mdwn | 30 ++ faq/old_faq.txt | 533 +++++++++++++++++++++ faq/old_hurd_faq.txt | 145 ++++++ faq/ps_hangs.mdwn | 13 + faq/ram_limit.mdwn | 22 + faq/release.mdwn | 15 + faq/reporting_bugs.mdwn | 19 + faq/sata_disk_drives.mdwn | 11 + faq/slash_usr_symlink.mdwn | 20 + faq/slash_usr_symlink/discussion.mdwn | 45 ++ faq/still_useful.mdwn | 46 ++ faq/xserver-common.mdwn | 15 + hurd/faq.mdwn | 20 - hurd/faq/how_about_drivers.mdwn | 18 - hurd/faq/how_to_switch_microkernels.mdwn | 15 - hurd/faq/off.mdwn | 21 - hurd/faq/old-stuff.mdwn | 30 -- hurd/faq/old_faq.txt | 533 --------------------- hurd/faq/old_hurd_faq.txt | 145 ------ hurd/faq/release.mdwn | 15 - hurd/faq/slash_usr_symlink.mdwn | 20 - hurd/faq/slash_usr_symlink/discussion.mdwn | 45 -- hurd/faq/still_useful.mdwn | 46 -- hurd/running/debian/faq.mdwn | 21 - hurd/running/debian/faq/2_gib_partition_limit.mdwn | 13 - hurd/running/debian/faq/apt_umount.mdwn | 25 - hurd/running/debian/faq/bad_hypermeta_data.mdwn | 15 - .../running/debian/faq/debugging_inside_glibc.mdwn | 19 - hurd/running/debian/faq/debugging_translators.mdwn | 15 - hurd/running/debian/faq/df.mdwn | 19 - hurd/running/debian/faq/eata.mdwn | 13 - hurd/running/debian/faq/hurd_console.mdwn | 13 - hurd/running/debian/faq/kernel_logs.mdwn | 14 - hurd/running/debian/faq/other_repositories.mdwn | 16 - hurd/running/debian/faq/ps_hangs.mdwn | 13 - hurd/running/debian/faq/ram_limit.mdwn | 22 - hurd/running/debian/faq/reporting_bugs.mdwn | 19 - hurd/running/debian/faq/sata_disk_drives.mdwn | 11 - hurd/running/debian/faq/xserver-common.mdwn | 15 - hurd/running/faq.mdwn | 20 - hurd/running/faq/native-install_doesnt_finish.mdwn | 24 - 56 files changed, 1170 insertions(+), 1222 deletions(-) create mode 100644 faq/2_gib_partition_limit.mdwn create mode 100644 faq/bad_hypermeta_data.mdwn create mode 100644 faq/debian/apt_umount.mdwn create mode 100644 faq/debian/other_repositories.mdwn create mode 100644 faq/debugging_inside_glibc.mdwn create mode 100644 faq/debugging_translators.mdwn create mode 100644 faq/df.mdwn create mode 100644 faq/eata.mdwn create mode 100644 faq/how_about_drivers.mdwn create mode 100644 faq/how_to_switch_microkernels.mdwn create mode 100644 faq/hurd_console.mdwn create mode 100644 faq/kernel_logs.mdwn create mode 100644 faq/native-install_doesnt_finish.mdwn create mode 100644 faq/off.mdwn create mode 100644 faq/old-stuff.mdwn create mode 100644 faq/old_faq.txt create mode 100644 faq/old_hurd_faq.txt create mode 100644 faq/ps_hangs.mdwn create mode 100644 faq/ram_limit.mdwn create mode 100644 faq/release.mdwn create mode 100644 faq/reporting_bugs.mdwn create mode 100644 faq/sata_disk_drives.mdwn create mode 100644 faq/slash_usr_symlink.mdwn create mode 100644 faq/slash_usr_symlink/discussion.mdwn create mode 100644 faq/still_useful.mdwn create mode 100644 faq/xserver-common.mdwn delete mode 100644 hurd/faq.mdwn delete mode 100644 hurd/faq/how_about_drivers.mdwn delete mode 100644 hurd/faq/how_to_switch_microkernels.mdwn delete mode 100644 hurd/faq/off.mdwn delete mode 100644 hurd/faq/old-stuff.mdwn delete mode 100644 hurd/faq/old_faq.txt delete mode 100644 hurd/faq/old_hurd_faq.txt delete mode 100644 hurd/faq/release.mdwn delete mode 100644 hurd/faq/slash_usr_symlink.mdwn delete mode 100644 hurd/faq/slash_usr_symlink/discussion.mdwn delete mode 100644 hurd/faq/still_useful.mdwn delete mode 100644 hurd/running/debian/faq.mdwn delete mode 100644 hurd/running/debian/faq/2_gib_partition_limit.mdwn delete mode 100644 hurd/running/debian/faq/apt_umount.mdwn delete mode 100644 hurd/running/debian/faq/bad_hypermeta_data.mdwn delete mode 100644 hurd/running/debian/faq/debugging_inside_glibc.mdwn delete mode 100644 hurd/running/debian/faq/debugging_translators.mdwn delete mode 100644 hurd/running/debian/faq/df.mdwn delete mode 100644 hurd/running/debian/faq/eata.mdwn delete mode 100644 hurd/running/debian/faq/hurd_console.mdwn delete mode 100644 hurd/running/debian/faq/kernel_logs.mdwn delete mode 100644 hurd/running/debian/faq/other_repositories.mdwn delete mode 100644 hurd/running/debian/faq/ps_hangs.mdwn delete mode 100644 hurd/running/debian/faq/ram_limit.mdwn delete mode 100644 hurd/running/debian/faq/reporting_bugs.mdwn delete mode 100644 hurd/running/debian/faq/sata_disk_drives.mdwn delete mode 100644 hurd/running/debian/faq/xserver-common.mdwn delete mode 100644 hurd/running/faq.mdwn delete mode 100644 hurd/running/faq/native-install_doesnt_finish.mdwn diff --git a/faq.mdwn b/faq.mdwn index 9167ede6..9146f384 100644 --- a/faq.mdwn +++ b/faq.mdwn @@ -14,15 +14,24 @@ 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" +pages=none show=0 feeds=no actions=yes rootpage="faq" postformtext="Add a new item titled:"]] + + +# FAQs + +[[!map +pages="faq/* and !*/discussion and !*/debian" +show=title]] + + +# Debian GNU/Hurd FAQs + +[[!map +pages="faq/debian/* and !*/discussion" +show=title]] + diff --git a/faq/2_gib_partition_limit.mdwn b/faq/2_gib_partition_limit.mdwn new file mode 100644 index 00000000..195191cb --- /dev/null +++ b/faq/2_gib_partition_limit.mdwn @@ -0,0 +1,13 @@ +[[!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]]."]]"""]] + +[[!meta title="2 GiB Partition Limit"]] + +The 2 GiB limit has been removed in Debian GNU/Hurd. diff --git a/faq/bad_hypermeta_data.mdwn b/faq/bad_hypermeta_data.mdwn new file mode 100644 index 00000000..bc960e30 --- /dev/null +++ b/faq/bad_hypermeta_data.mdwn @@ -0,0 +1,15 @@ +[[!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]]."]]"""]] + +If you get the error `bad hypermeta data` when trying to mount an ext3 +partition from GNU/Linux, that is usually because the file system has not been +unmounted cleanly (maybe GNU/Linux got suspended to disk) and the Hurd cannot +mount it as ext2 without checking. Either boot back into GNU/Linux and unmount +it or you can try to run `fsck.ext3` from GNU/Hurd directly. diff --git a/faq/debian/apt_umount.mdwn b/faq/debian/apt_umount.mdwn new file mode 100644 index 00000000..db0dbfd1 --- /dev/null +++ b/faq/debian/apt_umount.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]]."]]"""]] + +[[!meta title="apt: unmount cdroms"]] + +You can add a shell script umount so that apt can automatically unmount cdroms. + + #!/bin/sh + # Filename: /usr/bin/umount + + settrans -fg "$@" + +Give executable permission to the script. + + # chmod +x /usr/bin/umount + +In `/etc/fstab` add a trailing `/` after cdrom like `/cdrom/` since apt uses a +trailing `/`. diff --git a/faq/debian/other_repositories.mdwn b/faq/debian/other_repositories.mdwn new file mode 100644 index 00000000..88781d46 --- /dev/null +++ b/faq/debian/other_repositories.mdwn @@ -0,0 +1,16 @@ +[[!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]]."]]"""]] + +If you want to use the `apt-get source` facility, make sure that +`/etc/apt/sources.list` contains a line like + + deb-src http://ftp.de.debian.org/debian unstable main + +... replacing _de_ with your homeland's code. diff --git a/faq/debugging_inside_glibc.mdwn b/faq/debugging_inside_glibc.mdwn new file mode 100644 index 00000000..91b71d64 --- /dev/null +++ b/faq/debugging_inside_glibc.mdwn @@ -0,0 +1,19 @@ +[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +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]]."]]"""]] + +To get [[debugging]] information for glibc, you need to install the +`libc0.3-dbg` package. At the place [[debugging/GDB]] looks for debugging +symbols by default (`/usr/lib/debug/lib/`), Debian's `libc0.3-dbg` stores only +the frame unwind information used for backtracing. If you want to step into +glibc while debugging, you need to add `LD_LIBRARY_PATH=/usr/lib/debug` to +debugged program's environment (`set env VAR value` from the GDB command line). +If that still does not work, try `LD_PRELOAD=/usr/lib/debug/libc.so.0.3` +instead. diff --git a/faq/debugging_translators.mdwn b/faq/debugging_translators.mdwn new file mode 100644 index 00000000..b55484e1 --- /dev/null +++ b/faq/debugging_translators.mdwn @@ -0,0 +1,15 @@ +[[!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]]."]]"""]] + +In order to [[debug|debugging]] translators and being able to step into glibc +during it, you need the `hurd-dbg` and `libc0.3-dbg` packages installed. If you need to debug the initialization of the translator, +start the translator like `settrans -P /foo /usr/bin/env +LD\_LIBRARY\_PATH=/usr/lib/debug /hurd/foofs`. The `-P` option will make it +pause and you will be able to attach [[debugging/GDB]] to the process. diff --git a/faq/df.mdwn b/faq/df.mdwn new file mode 100644 index 00000000..bbd3a7b9 --- /dev/null +++ b/faq/df.mdwn @@ -0,0 +1,19 @@ +[[!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]]."]]"""]] + +There is no `/etc/mtab` (due to dynamic translator startup, its content is hard +to define actually, see +[[the mtab GSoC project idea|community/gsoc/project_ideas/mtab]]), +so just running `df` will yield the following error. + + df: cannot read table of mounted file systems + +Pass `df` a path like `df /` or `df ./` to see the disk usage of that particular +file system. diff --git a/faq/eata.mdwn b/faq/eata.mdwn new file mode 100644 index 00000000..fa7dbdec --- /dev/null +++ b/faq/eata.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]]."]]"""]] + +In some virtual machines (e.g. VirtualBox), "probing eata on XXX" may be +quite long. This is apparently due to poor efficiency of the virtualizer, not +Mach. There is no such issue on real hardware or using qemu/kvm. diff --git a/faq/how_about_drivers.mdwn b/faq/how_about_drivers.mdwn new file mode 100644 index 00000000..0e1887ba --- /dev/null +++ b/faq/how_about_drivers.mdwn @@ -0,0 +1,18 @@ +[[!meta copyright="Copyright © 2009, 2013 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, for disks Mach integrates drivers from Linux 2.0 through some +[[community/gsoc/project_ideas/driver_glue_code]]. As it's very old, that +limits hardware support a lot, of course. For network boards, we use the +[[DDE]] toolkit to run linux drivers in userland processes, +which provides both long-term support for new hardware and safety against driver +bugs. diff --git a/faq/how_to_switch_microkernels.mdwn b/faq/how_to_switch_microkernels.mdwn new file mode 100644 index 00000000..21f7a371 --- /dev/null +++ b/faq/how_to_switch_microkernels.mdwn @@ -0,0 +1,15 @@ +[[!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="How difficult would it be to switch to another microkernel?"]] + +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/faq/hurd_console.mdwn b/faq/hurd_console.mdwn new file mode 100644 index 00000000..5cccc83c --- /dev/null +++ b/faq/hurd_console.mdwn @@ -0,0 +1,13 @@ +[[!meta copyright="Copyright © 2007, 2008, 2013 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]]."]]"""]] + +Edit `/etc/default/hurd-console` to configure the Hurd console. +See [[console]] for further information about the Hurd console. diff --git a/faq/kernel_logs.mdwn b/faq/kernel_logs.mdwn new file mode 100644 index 00000000..d539bf1b --- /dev/null +++ b/faq/kernel_logs.mdwn @@ -0,0 +1,14 @@ +[[!meta copyright="Copyright © 2007, 2008, 2013 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="dmesg, kernel logs"]] + +There is no dmesg command: the kernel does not keep a buffer of its messages. syslog however dumps them into `/var/log/dmesg`, so you can simply cat that. diff --git a/faq/native-install_doesnt_finish.mdwn b/faq/native-install_doesnt_finish.mdwn new file mode 100644 index 00000000..a852e1dd --- /dev/null +++ b/faq/native-install_doesnt_finish.mdwn @@ -0,0 +1,24 @@ +[[!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]]."]]"""]] + +Copying baseGNU to the virtual disk works. Even booting got through but when I +try to run native-install it never gets to the very end. First time it froze on +*sed* package, the other time on *sysv-rc*. + +> How much memory did you configure for the [[QEMU]] system? It may simply be +> -- I've seen this myself -- that the system runs out of memory, as at the +> native-install stage (I think at least) swap is not yet configured and +> enabled. What I've been doing is: boot (with -s), MAKEDEV hdWHATEVER in +> /dev/ for the swap device, run /hurd/mach-defpager, followed by swapon +> /dev/hdWHATEVER. Does this help? + +>> Thank You very much, more memory solved the freezing. + +[[!tag open_issue_hurd]] diff --git a/faq/off.mdwn b/faq/off.mdwn new file mode 100644 index 00000000..8c90d53e --- /dev/null +++ b/faq/off.mdwn @@ -0,0 +1,21 @@ +[[!meta copyright="Copyright © 2010, 2013 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 am I supposed to shut my Hurd system down?"]] + +The GNU/Hurd does not use SYSV runlevels, so commands like + + $ shutdown -h now + +will not work. Simply use the equivalent shortcut + + $ halt + +which is provided natively on GNU/Hurd, instead of from SYSV runlevels. diff --git a/faq/old-stuff.mdwn b/faq/old-stuff.mdwn new file mode 100644 index 00000000..f5be2814 --- /dev/null +++ b/faq/old-stuff.mdwn @@ -0,0 +1,30 @@ +In addition to the [general FAQ](http://www.gnu.org/software/hurd/docs.html#TOCfaq) there are the following typical newbie questions. (There is an [updated version](http://tuxou.ouvaton.org/hurd/) which is not official yet.) + +If you still have problems, do not hesitate to make use of the [[mailing lists]] or the [[IRC]]. + +* **_You say GNU, don't you mean GNU/Hurd?_** + * Yes and no. GNU refers to the system as a whole, while GNU/Hurd is more specific, saying that it is the GNU system running on the Hurd -- to differentiate it from the GNU system running on Linux, GNU/Linux. + +* **_Why can't I get the answers I need from Hurd hackers?_** + * This [document](http://www.catb.org/~esr/faqs/smart-questions.html) may help you understand some developers attitudes and social norms. + +* **_Where are the virtual consoles I use when running Linux?_** + * The userland [[console]] provides it. You could still [use screen](http://www.gnu.org/software/hurd/faq.en.html#q4-6) of course. + +* **_What is a translator?_** + * The official FAQ [answers](http://www.gnu.org/software/hurd/faq.en.html#q4-2) this question by a reference to [hurd-doc-translator](http://www.debian.org/ports/hurd/hurd-doc-translator). + +* **_Where's the sauce?_** + * It's on [Savannah](http://savannah.gnu.org). See also the [GNU Development Resources](http://www.gnu.org/software/devel.html), for more information. + +* **_What is GNU Mach vs. oskit-mach?_** + * There used to be different versions of the Mach microkernel that supported the Hurd that runs on top of it. We currently only use GNU Mach. For more info, see [[Mach]] + +* **_What software is available for GNU?_** + * Most (3/4) packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in . Notably, [GNOME](http://www.gnome.org), and [KDE](http://www.kde.org) work. See the [[porting/guidelines]] document for some common build problems and their solutions. + * If you can't fetch a package with "apt-get install ", try building it from source: "apt-get source && cd <package\_dir> && debian/rules binary". + * As of March 2013, 78% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome. + +* **_How do I initialize a serial console on the Hurd?_** + * You can try out the Serial Howto at + * For kernel messages, you can append `console=com0` to the kernel command line. diff --git a/faq/old_faq.txt b/faq/old_faq.txt new file mode 100644 index 00000000..24127462 --- /dev/null +++ b/faq/old_faq.txt @@ -0,0 +1,533 @@ +[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 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]]."]]"""]] + + Frequently Asked Questions about the GNU Hurd + +This document attempts to answer the questions that most often plague +users when they are talking about, installing, using, compiling and +developing the GNU Hurd as well as its binary distribution Debian +GNU/Hurd. Be sure to read this before asking for help. + +The GNU Hurd is under active development and a stable version has not +yet been released. Be aware that: there is a lot of work yet to be +completed; you will find bugs; your system will crash. That said, there +is a lot of room for contributions at all levels: development of the +Hurd and Mach proper, porting applications, writing documentation and, +most importantly, user feedback. + +Should you have a question that is not answered by this document and you +feel that it should be, submit it and, if possible, with an answer. + +Each section is copyright its respective author(s). Permission is +granted to copy, distribute and/or modify this document under the terms +of the GNU Free Documentation License, Version 1.1 or any later version +published by the Free Software Foundation; with no Invariant Sections, +with no Front-Cover Texts and with no Back-Cover Texts. A copy of the +license is included in the file COPYRIGHT. + + Neal H Walfield + neal@cs.uml.edu + +? Installation + +?? What partition type should I use for my GNU/Hurd partitions? + +{MB} You should use an ext2 filesystem. Alternatively, you may use BSD +style ufs. The partition type number for ext2fs is 0x83 (this is the +same as in Linux), not 0x63 (GNU HURD). Thomas explains why 0x63 is the +wrong choice: + + One day we may have a new filesystem format, which would + probably be called the GNU Hurd filesystem format, and might + well use that partition code. + +Regardless, as Roland points out, it is always an error to use that code +for an ext2fs partition, + +?? How do I name partitions? + +{MB,NHW} I knew you would ask this. If I had to reduce this FAQ to only +one question, I'd choose this one. It is pretty easy, but you have to +know that there are actually several incompatibly naming convention. + +First, the Hurd: if the disk is question is a SCSI disk, you must know +the SCSI device number; if it is an IDE disk, you must know what +controller the disk is on and whether it is a master or a slave. The +Hurd uses the BSD naming convention which, is to say, disks are ordered +according to their physical location, numerically, starting from zero. +This naming scheme is quite similar to that found in Linux. There, the +master disk on the primary controller is designated as `hda' and the +slave as `hdb'. On the secondary controller, the master and the slave +are designated by `hdc' and `hdd' respectively. Under the Hurd, `hda' +would become `hd0', `hdb' would be referred to as `hd1', etc. + +In the Hurd, like in BSD, partitions are called `slices' and are +numbered starting from one. Thus, to name a particular partition, we +take the disk name, append a `s' and the partition number. Again, this +is similar to Linux except, there is no `s'. For instance, `hda1' would +become `hd0s1'. + +GRUB, the boot loader, uses a completely different nomenclature: it +probes the BIOS and appends each disk in turn to an array. Disks are enumerated +using zero based arrays. GRUB 2 enumerates partitions from one, while GRUB 1 +used to enumerate them from zero. +The format is: +`hd (, )'. Thus, in GRUB 2 `hd (0, 1)' refers to the first +partition on the first drive detected by the BIOS (or the second partition with +GRUB 1). As Grub now has tab +completion, there is not a lot of guess work. + +?? Can I use partitions larger than 2GB? + +{ST} Yes. Disk drivers however currently do not support more than 2^32 sectors, i.e. +2TiB. + +?? How much swap do I need? + +{ST} The usual rule of thumb applies: the same amount as RAM, for instance. + +?? Can I share swap space between GNU/Linux and GNU/Hurd? + +{NHW} Yes. The default pager recognises and respects Linux swap +partitions. It will also swap to a raw partition, i.e. anything that it +does not recognize as Linux swap. Therefore: BE CAREFUL. + +?? Why do I get ``Operation not permitted error''? + +{MB} You forgot to set the file system owner of the GNU/Hurd partition to +``hurd''. The Hurd uses additional information in the inodes to set +translators. To make this work, the partition must be marked as ``owned +by the Hurd''. This is normally done by passing the `-o hurd' option to +`mke2fs' when creating ext2 system from other operating systems +(filesystems created in GNU/Hurd automatically enable this option). +If you failed to do this, you can still use the `e2os' script. + +?? After `native-install' is finished, I had to write tthhiiss + wwaayy. In particular, I had to type `rreebboooott' to reboot. + +{MB} Funny, isn't it? In addition to the rescue `term' server in +`/tmp/console', another `term' server got started and is clobbing the +keyboard input. After a reboot this problem vanishes as only one `term' +server will remain. If `tar' would support translator, we would not +have this problem... Even if you don't experience this problem right +after the installation, reboot immediately so you don't hit this bug by +accident. + +? Setup + +?? How do I add a swap partition? + +{MB} A swap partition is also called a paging file. Usually, it is +sufficient to add the swap partition to `/etc/fstab', just as you would +under Linux. You can swap to a Linux swap partition and the Hurd will +honour the Linux swap signature (both versions). The Hurd will just as +happily swap to any other raw disk space and overwrite anything it +finds. So, be careful! + +If you want to swap to a file or make sure that it checks the Linux swap +signature before, you need to edit `/boot/servers.boot'. The syntax is +the partition device file name plus, optionally, the swap file inside an +ext2fs partition, followed by a space and then one of: +`$(add-raw-paging-file)', `$(add-linux-paging-file)', +`$(add-paging-file)'. The first works with any partition or file and +does not honour any swap signature or other data. The second has a +safety check and only uses the file if a Linux swap signature is found. +The third looks for a swap signature first and falls back to raw paging +if it failed to find one. This is also the default for entries in +`/etc/fstab'. + +?? How do I set up a network? + How do I set up a loopback device? + +{MB} In the former case, be sure that GNU Mach detected your network +card. Either way, you need to setup `pfinet'. Documentation can be +found at: + + http://www.debian.org/ports/hurd/hurd-doc-server#pfinet + +Don't forget to fill in `/etc/resolv.conf', `/etc/hosts', etc. + +Of course, you only need to do this if the installation routine didn't +do it for you. + +?? Can I use the GNU/Linux version of `e2fsck' on a GNU/Hurd partition? + +{MB} Yes, at least since `e2fsprogs-1.05'. Check this with `e2fsck -V' +first. + +{NHW} Do not try to defrag your partition as this utility does not know +about translators. + +?? Why are pipes not working? + +{MB} `settrans -fgc /servers/socket/1 /hurd/pflocal' should help. + +? Usage + +?? Where is the documentation? + +{NHW,MM} There are neither man pages nor info nodes for the Hurd +translators and commands. Documentation lives inside of the binaries +and can be found by passing the `--help' option to a given command. +For instance: + + # /hurd/ext2fs --help + +will tell you what types of options the ext2fs translator accepts. + +The GNU/Hurd User's Guide and the GNU Hurd Reference Manual both +provide some help about the usage of and concepts behind the GNU Hurd. +You can find them, among others, at: + + http://www.gnu.org/software/hurd/docs.html + +?? What is a translator? + +{MB} There is a text about translators available at: + + http://www.debian.org/ports/hurd/hurd-doc-translator + +Read this and ask further questions on the mailing lists. + +?? What is the login shell? + +{MB} The Hurd has the concept of a not-logged in user. This user has +neither user ids nor groups ids. This stems from the fact that the Hurd +supports uid and gid sets and one possibility is, of course, the empty +set. Rather than deny access in this case, filesystems in the Hurd offer a +fourth permission triplet (i.e. rwx) which is used to determine the +privileges for users with no credentials. This, however, needs to be +enabled on a file by file basis. By default, the `other' permission +triplet is used. + +The Hurd login shell is a shell running with neither uids nor gids. To +restrict access to your files, either enable and change the fourth +permission triplet or change the login shell of the `login' user in the +password file to `/bin/loginpr' which implements the standard login +prompt. + +?? How do I use non-US keyboard bindings? + +{ST} On Debian Hurd, you can configure the console layout from +`/etc/default/hurd-console`. + +?? How do I enable color on the console? + +{NHW} If you are using the GNU Mach microkernel, you can set your +terminal to `mach-color'. For instance: + + # export TERM=mach-color + +?? How can I enable virtual consoles? + +{ST} On Debian Hurd, it is already enabled by default, and configured from +`/etc/default/hurd-console`. + +{AMS} This can be done by running the following command: + + console -d vga -d pc_kbd -d generic_speaker /dev/vcs + +If something went wrong, or if you just wish to exit the Hurd console +then hitting C-A- will exit it. + +?? What is the status of X? + +{MB} It works! The packages are available at any Debian ftp mirror. +XFree86 4.0.2 is available, as are some of the v3 servers. Instructions +on how to use the packages are in the mailing list archive (link follow +later). + +?? What are these strange pids `0`, `2', `3', `4`, and `5`? + +{MB,ST} Zero is the `proc` processus server (and thus does not really have a pid +:) ) Two is the kernel, three is the root filesystem server, four is the `exec` +server (which handles starting programs), five is the `auth` server (which +handles user authentication). + +?? Why does `ps aux' give me strange output? + +{MB,MM} Try `ps Aux'. Indeed, under GNU/Hurd, `ps aux' doesn't list +all processes: it omits the session and group leaders, and the +processes without parent. + +?? I have a hung process that I want to kill, however, `ps' is now + hanging too. + +{MB} Interrupt it and pass it the `-M' option. + +{NHW} By default, `ps' gathers information from both the proc server and +the processes themselves (via their message port). If a process it +hung, it will not be able respond to its message port and thus, ps will +wait forever. The `-M' option instructs ps to not gather information +that would require use of the message port. + +?? Where are ... + +{MB} `dmesg' is not available. You can read `/var/log/dmesg` instead. + +?? Why does the command `df' not work? + +{NHW} It does, you just have to tell it what filesystem to query. E.g. + + # df / + +?? Why are my translators dying? + +{NHW} Try passing the `-ap' flag to settrans. By default, settrans only +sets a passive translator, therefore, no output will show up on your +terminal. Using `-ap', however, sets both the active and the passive +translator which, means that the translator starts immediately and its +stderr is connected to you terminal. + +Additionally, the biggest problem is passing relative paths to passive +translators. You cannot predict what the current working directory of a +translator will be when it is setup as a passive translator. + +?? Why can I `read' a directory? + +{MB} It is important to understand that there is nothing special about a +directory under the Hurd, it is just another file. This fits in with +the translator concept where a translator can appear as a directory but +provide also as a file. + +? Trouble shooting + +?? When the APM support in the BIOS spins down my disk drives, the + Hurd is unable to wake up. What's wrong? + +{MB} APM is not supported in the current version of GNU Mach, sorry. +Please disable APM in your BIOS setup. + +?? What are these messages referring to `default pager', `paging', + and `pager request'? + +{MB} The default pager handles virtual memory allocation. If it can't +allocate a new memory page because you are out of memory, some terrible +things may happen. Whenever you get errors referring to any of these, +you either need more memory (make sure you have swap) or you have found +a memory leak. + +?? What is a gratuitous error? + +{MB} This comes from `strerror(EGRATUITOUS)'. If you check glibc's +documentation, it will say that this error code has no purpose. This, +however, is not quite true. You only get this when something terrible +happens. Thomas explains: + + More precisely `EGRATUITOUS' officially means that some server + has responded in an impossible or protocol-violating fashion. + There are some cases in the Hurd where `EGRATUITOUS' is returned + and probably something else should be chosen instead. + +If you can reproduce this error message, please report it. + +?? What does ``computer bought the farm'' mean ? + +{FH} This message is the text that corresponds to the errno code +`EIEIO'. Roland McGrath explains: + + That message is not output by any particular servers at + particular times; rather it is the perror text for the errno + code EIEIO, which is returned by various RPCs and functions + for a variety of "hopeless" error conditions. + + +?? What does ``/dev/hd0s1: MOUNTED READ-ONLY; MUST USE `fsysopts + --writable''' mean? + +{NHW} In this case, /dev/hd0s1 was not unmounted cleanly. The Hurd +will, on boot up, run ``fsck -p'' on any partitions that it finds in +/etc/fstab, so, you may want to consider adding this partition to that +file. If you are sure that the partition is fine, you can run: + + # fsysopts /home --writable + +to ask the translator sitting on /home to change from read-only to +read/write mode. Note that the command is being sent to the filesystem +and not the store (e.g. /dev/hd0s1). + +?? When GNU/Hurd crashes, GNU Mach automatically reboots. Is + there anyway I can make it pause so I can write down the error? + +{MB} Pass the `-H' option to init (add it to the boot command line), and +`init' will tell Mach to enter the kernel debugger instead to rebooting +it. At the debugger prompt (`db>'), you can type `reboot' any time to +reboot the system. + +? Porting + +?? What programs have been ported? + +{NHW} A lot, take a look at the Debian archive. Many programs, however, +do not necessarily need to be ported; they have just never been +compiled. + +?? Is porting easy? + +{NHW} Porting applications to GNU/Hurd is relatively easy assuming the +application is POSIX compliant as GNU/Hurd does its best to be a +conforming operating system. + +The most common error made by programmers is assuming the MAXPATHLEN and +PATH_MAX are defined. On most operating systems this is set to a few +thousand, however, on GNU/Hurd, there is no maximum and thus, this is +not set. The correct thing to do is to submit a patch to the upstream +author that allocates memory dynamically. + +?? How can I help? + +{ST} Please see the contributing page: +http://www.gnu.org/software/hurd/contributing.html + +? Compiling + +?? Where can I get the source? + +{AMS} Instructions on how to download the CVS tree from Savanah are +available at https://savannah.gnu.org/cvs/?group=hurd + +{NHW} To get the source to the latest debian package, look on any +debian mirror. + +?? Can I cross compile? + +{ST} To REDO. + +{NHW} Yes. If you are running Debian GNU/Linux on IA32, this is quite +easy as there is a cheap cross compiler available; all that is required +is installing the gcc-i386-gnu and mig-i386-gnu Debian packages. When +running configure, you will have to specify tools directly: + + # MIG=/usr/bin/i386-gnu-mig CC=/usr/bin/i386-gnu-gcc \ + ../src/hurd/configure ... + +If you are running another distribution, you will have to do this the +long way. You can find instructions at the Cross Compiling HOW-TO +available at: + + http://hurddocs.sourceforge.net/howto/cross.html + +Farid Hajji also talks about his experiences +at: + + http://lists.debian.org/debian-hurd-0012/msg00062.html + +?? Any general tips? + +{NHW} Yeah, building in the source tree is untested. Try: + + # ../src/hurd/configure ... + +? Development + +?? What is OSKit-Mach? + +{NHW,FH} There are two versions of GNU Mac that are in use: GNU Mach +1.x and GNU Mach 2.x, formerly known as OSKit-Mach. The former uses +the drivers from Linux 2.0.x while the latter uses the University of +Utah's OSKit library for drivers. You can find out more about the +OSKit library at: + + http://www.cs.utah.edu/flux/oskit + +GNU Mach 2.x is usable, but some things are still missing or not +working, like the serial port and scsi drivers. This is why GNU Mach +2.0 hasn't released yet and the two versions coexist. + +?? Where is the documentation? + +{NHW} There were several books written on the Mach kernel. The +information that they contain is still mostly pertinent and should be +considered required reading for potential hackers. They can be found +at: + + http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/publications.html + +The documentation for the Hurd is quite inadequate. The starting of a +book, ``The GNU Hurd'' is in the doc directory in the Hurd source. You +can read this using: + + # info hurd + +The authoritative place is, of course, the source code; that does not, +however, mean that we would not welcome more documentation. To get +started, take a look at /doc/navigating. + +?? How do I make sure that my code is POSIX compliant? + +{NHW} Unfortunately, you have to buy the POSIX standard from IEEE. The +Single Unix Specification version 2, a superset of POSIX, is available +for free on the Internet. Try: + + http://www.unix-systems.org/online.html + +?? Who do I submit patches to? + +{NHW} If they are against the Hurd, Mach or MiG, send a patch to the +bug-hurd mailing list. + +If they are against other packages, the Debian BTS is a good place. In +this case, be sure to advise the debian-hurd mailing list of the bug. + +?? In what format should patches for the Hurd and GNU Mach be? + +{MB} All patches should be sent in unified context diff format (option +`-u' to GNU diff). It is helpful for us if you also use the `-p' +option which includes information about the function changed by a +patch. Changes that are similar can be grouped together in one file, +but unrelated changes should be sent in seperate files. The patches +can be included in the message or as a MIME attachement. They should +not be compressed and/or archived unless they are very large, and if +they are very large it is probably better to store them on-line at +some place and only sent an URL. + +Write a ChangeLog entry for each change, following the format of the +existing files. Here is an example: + + 2000-12-02 Marcus Brinkmann + + * ops.c (op_readlink): Before returning, check if the buffer + pointed to by transp is ours. If not, munmap it. + (op_read): Likewise for bp. + (op_readdir): Don't alloca a buffer here. Instead initialize + BUF and BUFSIZE to 0 and let the server (eh, MiG) do it. + munmap BUF before returning. + +The file name and the name of the function changed should always be +spelled out completely, and not abbreviated or otherwise mangled (like +foo.{c,h}), because that would make searching for all changes to a +file or function impossible. Local variable names are all +capitalized. There are two spaces between sentences. You can use +``C-x 4 a'' in Emacs to add a new ChangeLog entry. If you do that +with the mark being in a function, Emacs will automatically fill in +the file and function name for you. + +Do not send in a patch for the ChangeLog file. Rather include the +ChangeLog entries in the message that contains the patch. Patches for +ChangeLog files often conflict. + +If you have the original source tree in the directory `hurd-orig', and +the modified source tree in the directory `hurd', the following +command will produce a good patch (please make sure there are no extra +files like backups in the modified tree, or leave away the option +`-N'). You will need to collect the ChangeLog entries seperately. + + # diff -x ChangeLog -Nurp hurd-orig hurd + + +Answers were given by (in chronological order): +* {NHW} Neal H Walfield +* {MB} Marcus Brinkmann +* {AMS} Alfred M. Szmidt +* {OK} Ognyan Kulev +* {FH} Frédéric Henry +* {MM} Manuel Menal +* {ST} Samuel Thibault diff --git a/faq/old_hurd_faq.txt b/faq/old_hurd_faq.txt new file mode 100644 index 00000000..4ebe019b --- /dev/null +++ b/faq/old_hurd_faq.txt @@ -0,0 +1,145 @@ +The Unofficial (and no longer maintained) GNU Hurd FAQ, Version 0.13 + +Contributions by: + +Michael I. Bushnell +Len Tower +Trent Fisher +jlr@usoft.spb.su +Remy Card +Louis-Dominique Dubeau + +Original Document by: Derek Upham + + +============================== + +Contents: + +Q0. Where can I get the Unofficial GNU Hurd FAQ? +Q2. Where can I get a copy? +Q3. Why bother writing a new OS when we have Linux and 386/BSD? +Q4. What's all this about Mach 3.0 (and Mach 4.0)? +Q5. Where can I find more information? +Q7. What sort of machines will run Hurd in the future? +Q8. What is the current development status? +Q9. What sort of system would we have if the Hurd was bootable today? + +============================== + +Q0. Where can I get the Unofficial GNU Hurd FAQ? + +The Unofficial Hurd FAQ (what you are reading now) is occasionally +posted to the USENET newsgroup, gnu.misc.discuss. It is also +available from + + http://www.enci.ucalgary.ca/~gord/hurd/hurd-faq.txt (Broken Link ?) + +If you don't have WWW access, you may send mail to me, Gordon +Matzigkeit with a subject line that reads: + + Subject: send hurd-faq + +You should receive a PGP-signed copy of the current version of this +document in a matter of minutes. + + +Q2. Where can I get a copy? + +To put it simply, you can't. It is still under development (by +Michael Bushnell, Roland McGrath and Miles Bader). It is almost, but +not quite, at the point where you can do real work on it. Keep your +fingers crossed. + +Some people have actually bootstrapped it, but the work is not easy, +and the current snapshot won't work until a new multiserver boot +mechanism is made. + +If you *really* want to try it, beware that it is still pre-alpha +code, and that it will likely crash on you. See Trent Fisher's Hurd +pages (under question 5) for the latest information. + + +Q3. Why bother writing a new OS when we have Linux and 386/BSD? + +For one thing, Linux and BSD don't scale well. Hardware designers are +shifting more and more toward multiprocessor machines for performance, +and standard Unix kernels do not provide much multiprocessor support. +The Hurd, on the other hand, runs on top of the Mach 3.0 micro-kernel +[[1]] from CMU. Mach was designed precisely for multiprocessing +machines, so its portability should carry over nicely to the Hurd. + +In addition, the Hurd will be considerably more flexible and robust +than generic Unix. Wherever possible, Unix kernel features have been +moved into unprivileged space. Once there, anyone who desires can +develop custom replacements for them. Users will be able to write and +use their own file systems, their own `exec' servers, or their own +network protocols if they like, all without disturbing other users. + +The Linux kernel has now been modified to allow user-level file +systems, so there is proof that people will actually use features such +as these. It will be much easier to do under the Hurd, however, +because the Hurd is almost entirely run in user space and because the +various servers are designed for this sort of modification. + + +Q4. What's all this about Mach 3.0 (and Mach 4.0)? + +As mentioned above, Mach is a micro-kernel, written at Carnegie Mellon +University. A more descriptive term might be a greatest-common-factor +kernel, since it provides facilities common to all ``real'' operating +systems, such as memory management, inter-process communication, +processes, and a bunch of other stuff. Unfortunately, the system +calls used to access these facilities are only vaguely related to the +familiar and cherished Unix system calls. There are no "fork", +"wait", or "sleep" system-calls, no SIGHUPs, nothing like that. All +this makes it rather difficult to, say, port GNU Emacs to a Mach box. + +The trick is, of course, to write an emulation library. Unix programs +can then use (what they think are) POSIX system calls and facilities +while they are really using Mach system calls and facilities. + +The simplest way of going about this is to take an ordinary Unix +kernel, open it up, and rip out all the machine-specific guts; any +time the Unix kernel talks to the machine, replace the code with calls +to the Mach micro-kernel. Run this fake kernel on a Mach machine and +you end up with something that looks and acts just like Unix (even to +GNU Emacs). Note that the Unix kernel we have implemented is just one +Really Big Mach program (called a single-server). + +The Hurd, on the other hand, breaks the giant Unix kernel down into +various Mach programs running as daemons. Working in concert with +facilities placed in the C library, these daemons provide all of the +POSIX system-calls and features; from the outside they look just like +a standard Unix kernel. This means that, for practical purposes, +anything that you can port to Linux will also port to the Hurd. + +Of course, if a user wishes to run his own daemons, he can do that as +well.... + +Mach 4.0 is an enhanced version of Mach 3.0, put out by the people at +the University of Utah. They are working on another free operating +system, and part of it includes an enhanced, more flexible version of +Mach. The Hurd has moved to Mach 4.0, which is good, because it is a +lot easier to build than 3.0 was. + +You can find more information on Mach by browsing the Hurd pages given +in the next answer, or by looking at the Project Mach and Flux +homepages at: + +Carnegie Mellon University (for Mach versions before 4.0): + + http://www.cs.cmu.edu/afs/cs.cmu.edu/project/mach/public/www/mach.html + +the University of Utah (for Mach 4.0): + + http://www.cs.utah.edu/projects/flux/mach4/html/ + + + +============================== + +Footnotes: + +[[1]] Yes, I know that ``micro-kernel'' is about as apt a description +as ``Reduced Instruction Set Chip'', but we're stuck with it. diff --git a/faq/ps_hangs.mdwn b/faq/ps_hangs.mdwn new file mode 100644 index 00000000..b58a3308 --- /dev/null +++ b/faq/ps_hangs.mdwn @@ -0,0 +1,13 @@ +[[!meta copyright="Copyright © 2007, 2008, 2013 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]]."]]"""]] + +If `ps` hangs, try `ps -M` which should still work by not getting detailed +information from processes. diff --git a/faq/ram_limit.mdwn b/faq/ram_limit.mdwn new file mode 100644 index 00000000..447ff20c --- /dev/null +++ b/faq/ram_limit.mdwn @@ -0,0 +1,22 @@ +[[!meta copyright="Copyright © 2007, 2008, 2013 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="830 MiB RAM Limit"]] + +Just like any 32bit OS without bad tricks, GNU Mach does not cope well with lots +of memory. Latest versions of the Debian `gnumach` package will limit themselves +to around 1.7 GiB of memory. If you want more, you can twiddle the VM_MAX_ADDRESS +limit between kernelland and userland in i386/include/mach/i386/vm_param.h. + +If you have an older version, or still experience problems with `vmstat` (see +above) reported much less memory than you have, the best is to limit the memory +it can see via GRUB's `upppermem` feature. Add `uppermem 786432` to GRUB's Hurd +entry in `menu.lst`. diff --git a/faq/release.mdwn b/faq/release.mdwn new file mode 100644 index 00000000..d80c6825 --- /dev/null +++ b/faq/release.mdwn @@ -0,0 +1,15 @@ +[[!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]]."]]"""]] + +[[!meta title="When will the Hurd be released?"]] + +Next year. + +Save that, read about the Hurd's [[status]]. diff --git a/faq/reporting_bugs.mdwn b/faq/reporting_bugs.mdwn new file mode 100644 index 00000000..40781ab0 --- /dev/null +++ b/faq/reporting_bugs.mdwn @@ -0,0 +1,19 @@ +[[!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]]."]]"""]] + +Please try to reproduce bugs which are not obviously Hurd-specific on Debian +GNU/Linux and then file them there. + +If you find a genuine issue in Debian GNU/Hurd, please file it in our Alioth +bug tracker at + +If you find a bug in the Hurd or GNU Mach themselves, either file a bug against +the respective Debian packages, or directly at + diff --git a/faq/sata_disk_drives.mdwn b/faq/sata_disk_drives.mdwn new file mode 100644 index 00000000..dad10cb9 --- /dev/null +++ b/faq/sata_disk_drives.mdwn @@ -0,0 +1,11 @@ +[[!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]]."]]"""]] + +GNU Mach does not support SATA disk drives (/dev/sda etc. in GNU/Linux) natively, so using device:sd0s1 will not work, sd* devices are for SCSI drives only. The only way to get those drives to work is to put them into compatibility mode in the BIOS, if such an option exists. GNU Mach will then recognize them as hda etc. diff --git a/faq/slash_usr_symlink.mdwn b/faq/slash_usr_symlink.mdwn new file mode 100644 index 00000000..5c47f4e1 --- /dev/null +++ b/faq/slash_usr_symlink.mdwn @@ -0,0 +1,20 @@ +[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 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]]."]]"""]] + +[[!meta title="Why is `/usr' a symbolic link to `.'?"]] + +The distinction between `/` and `/usr` has historical reasons. Back when [[Unix]] +systems were booted from two tapes, a small root tape and a big user tape. +Today, we like to use different partitions for these two spaces. The Hurd +throws this historical garbage away. We think that we have found a more +flexible solution called union filesystems, which allow to create virtual +filesystems which are the union of several other filesystems. However, support +for union filesystems is still in early development. diff --git a/faq/slash_usr_symlink/discussion.mdwn b/faq/slash_usr_symlink/discussion.mdwn new file mode 100644 index 00000000..219e14e4 --- /dev/null +++ b/faq/slash_usr_symlink/discussion.mdwn @@ -0,0 +1,45 @@ +[[!meta copyright="Copyright © 2012 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]] + + +# IRC, freenode, #hurd, 2012-02-01 + + I remember the time when we had a /usr symlink. Now fedora 17 + will move / to /usr and have /foo symlinks. :) + braunr: + http://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge + braunr: fedora and others are merging /bin, /sbin and some other + into /usr + braunr: back in 1998 we tried for two years or so to have /usr -> + .. in Debian GNU/Hurd, but eventually we gave up on it, because it broke + some stuff + marcusb: Hi, which one is better (in your opinion): / or /usr? + gnu_srs: fedora says that using /usr allows better separation of + distribution files and machine-local files + marcusb: won't it break remote /usr ? + so you can atomically mount the OS files to /usr + gnu_srs: but in the end, it's a wash + personally, I think every package should get its own directory + marcusb: what PATH then ? + braunr: well, I guess you'd want to assemble a union filesystem + for a POSIX shell + marcusb: i don't see what you mean :/ + ah this comes from Lennart Poettering + braunr: check out for example how http://nixos.org/ does it + braunr: something like, union /package1/bin /package2/bin + /package3/bin for /bin, /package1/lib /package2/lib /package3/lib for + /lib, etc. I guess + manuel: would that scale well ? + the idea that there is only one correct binary for each program + with the name foo is noble, but a complete illusion that hides the + complexity of the actual configuration management task + marcusb: right diff --git a/faq/still_useful.mdwn b/faq/still_useful.mdwn new file mode 100644 index 00000000..bffeaebd --- /dev/null +++ b/faq/still_useful.mdwn @@ -0,0 +1,46 @@ +[[!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]]."]]"""]] + +what are the advantages with the Hurd over Linux, in general of course, nothing +in depth + +> Flexibility for the user: +> +> transparent ftp +> +> $ cd /ftp://ftp.debian.org/debian +> $ ls +> +> personnal filesystem +> +> $ dd < /dev/zero > myspace.img bs=1M count=1024 +> $ mke2fs myspace.img +> $ settrans myspace /hurd/ext2fs myspace.img +> $ cd myspace + +>> Just curious, but I keep seeing these (and other similar) concepts being +>> brought up as the amazing selling points of the Hurd, but all of this is +>> entirely doable now in Linux with FUSE or things like it. + +>>> Nowadays, at LAST, yes, partly. + +>> I'm not sure if an ftp filesystem has been implemented for FUSE yet, but its +>> definately doable; and loopback filesystems like in your second example have +>> been supported for years. + +>>> As a normal user? And establish a tap interface connected through ppp over +>>> ssh or whatever you could want to imagine? + +>> What, then, are the major selling points or benefits? + +>>> These were just examples, Linux is trying to catch up in ugly ways indeed +>>> (yes, have a look at the details of fuse, it's deemed to be inefficient). +>>> In the Hurd, it's that way from the _ground_ and there is no limitation +>>> like having to be root or ask for root to add magic lines, etc. diff --git a/faq/xserver-common.mdwn b/faq/xserver-common.mdwn new file mode 100644 index 00000000..3420154c --- /dev/null +++ b/faq/xserver-common.mdwn @@ -0,0 +1,15 @@ +[[!meta copyright="Copyright © 2007, 2008, 2013 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="normal users can't start X"]] + +You need to run `dpkg-reconfigure x11-common` and select `Anybody` for +starting X as there is no way to detect console users currently. diff --git a/hurd/faq.mdwn b/hurd/faq.mdwn deleted file mode 100644 index 413aaf3f..00000000 --- a/hurd/faq.mdwn +++ /dev/null @@ -1,20 +0,0 @@ -[[!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]]."]]"""]] - -[[!meta title="GNU Hurd FAQ"]] - -See also other [[/FAQ]]. - -[[!inline -pages="hurd/faq/* and !*/discussion" -show=0 -feeds=no -actions=yes -rootpage="hurd/faq" postformtext="Add a new item titled:"]] diff --git a/hurd/faq/how_about_drivers.mdwn b/hurd/faq/how_about_drivers.mdwn deleted file mode 100644 index 0e1887ba..00000000 --- a/hurd/faq/how_about_drivers.mdwn +++ /dev/null @@ -1,18 +0,0 @@ -[[!meta copyright="Copyright © 2009, 2013 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, for disks Mach integrates drivers from Linux 2.0 through some -[[community/gsoc/project_ideas/driver_glue_code]]. As it's very old, that -limits hardware support a lot, of course. For network boards, we use the -[[DDE]] toolkit to run linux drivers in userland processes, -which provides both long-term support for new hardware and safety against driver -bugs. diff --git a/hurd/faq/how_to_switch_microkernels.mdwn b/hurd/faq/how_to_switch_microkernels.mdwn deleted file mode 100644 index 21f7a371..00000000 --- a/hurd/faq/how_to_switch_microkernels.mdwn +++ /dev/null @@ -1,15 +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="How difficult would it be to switch to another microkernel?"]] - -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/faq/off.mdwn b/hurd/faq/off.mdwn deleted file mode 100644 index 8c90d53e..00000000 --- a/hurd/faq/off.mdwn +++ /dev/null @@ -1,21 +0,0 @@ -[[!meta copyright="Copyright © 2010, 2013 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 am I supposed to shut my Hurd system down?"]] - -The GNU/Hurd does not use SYSV runlevels, so commands like - - $ shutdown -h now - -will not work. Simply use the equivalent shortcut - - $ halt - -which is provided natively on GNU/Hurd, instead of from SYSV runlevels. diff --git a/hurd/faq/old-stuff.mdwn b/hurd/faq/old-stuff.mdwn deleted file mode 100644 index f5be2814..00000000 --- a/hurd/faq/old-stuff.mdwn +++ /dev/null @@ -1,30 +0,0 @@ -In addition to the [general FAQ](http://www.gnu.org/software/hurd/docs.html#TOCfaq) there are the following typical newbie questions. (There is an [updated version](http://tuxou.ouvaton.org/hurd/) which is not official yet.) - -If you still have problems, do not hesitate to make use of the [[mailing lists]] or the [[IRC]]. - -* **_You say GNU, don't you mean GNU/Hurd?_** - * Yes and no. GNU refers to the system as a whole, while GNU/Hurd is more specific, saying that it is the GNU system running on the Hurd -- to differentiate it from the GNU system running on Linux, GNU/Linux. - -* **_Why can't I get the answers I need from Hurd hackers?_** - * This [document](http://www.catb.org/~esr/faqs/smart-questions.html) may help you understand some developers attitudes and social norms. - -* **_Where are the virtual consoles I use when running Linux?_** - * The userland [[console]] provides it. You could still [use screen](http://www.gnu.org/software/hurd/faq.en.html#q4-6) of course. - -* **_What is a translator?_** - * The official FAQ [answers](http://www.gnu.org/software/hurd/faq.en.html#q4-2) this question by a reference to [hurd-doc-translator](http://www.debian.org/ports/hurd/hurd-doc-translator). - -* **_Where's the sauce?_** - * It's on [Savannah](http://savannah.gnu.org). See also the [GNU Development Resources](http://www.gnu.org/software/devel.html), for more information. - -* **_What is GNU Mach vs. oskit-mach?_** - * There used to be different versions of the Mach microkernel that supported the Hurd that runs on top of it. We currently only use GNU Mach. For more info, see [[Mach]] - -* **_What software is available for GNU?_** - * Most (3/4) packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in . Notably, [GNOME](http://www.gnome.org), and [KDE](http://www.kde.org) work. See the [[porting/guidelines]] document for some common build problems and their solutions. - * If you can't fetch a package with "apt-get install ", try building it from source: "apt-get source && cd <package\_dir> && debian/rules binary". - * As of March 2013, 78% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome. - -* **_How do I initialize a serial console on the Hurd?_** - * You can try out the Serial Howto at - * For kernel messages, you can append `console=com0` to the kernel command line. diff --git a/hurd/faq/old_faq.txt b/hurd/faq/old_faq.txt deleted file mode 100644 index 24127462..00000000 --- a/hurd/faq/old_faq.txt +++ /dev/null @@ -1,533 +0,0 @@ -[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 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]]."]]"""]] - - Frequently Asked Questions about the GNU Hurd - -This document attempts to answer the questions that most often plague -users when they are talking about, installing, using, compiling and -developing the GNU Hurd as well as its binary distribution Debian -GNU/Hurd. Be sure to read this before asking for help. - -The GNU Hurd is under active development and a stable version has not -yet been released. Be aware that: there is a lot of work yet to be -completed; you will find bugs; your system will crash. That said, there -is a lot of room for contributions at all levels: development of the -Hurd and Mach proper, porting applications, writing documentation and, -most importantly, user feedback. - -Should you have a question that is not answered by this document and you -feel that it should be, submit it and, if possible, with an answer. - -Each section is copyright its respective author(s). Permission is -granted to copy, distribute and/or modify this document under the terms -of the GNU Free Documentation License, Version 1.1 or any later version -published by the Free Software Foundation; with no Invariant Sections, -with no Front-Cover Texts and with no Back-Cover Texts. A copy of the -license is included in the file COPYRIGHT. - - Neal H Walfield - neal@cs.uml.edu - -? Installation - -?? What partition type should I use for my GNU/Hurd partitions? - -{MB} You should use an ext2 filesystem. Alternatively, you may use BSD -style ufs. The partition type number for ext2fs is 0x83 (this is the -same as in Linux), not 0x63 (GNU HURD). Thomas explains why 0x63 is the -wrong choice: - - One day we may have a new filesystem format, which would - probably be called the GNU Hurd filesystem format, and might - well use that partition code. - -Regardless, as Roland points out, it is always an error to use that code -for an ext2fs partition, - -?? How do I name partitions? - -{MB,NHW} I knew you would ask this. If I had to reduce this FAQ to only -one question, I'd choose this one. It is pretty easy, but you have to -know that there are actually several incompatibly naming convention. - -First, the Hurd: if the disk is question is a SCSI disk, you must know -the SCSI device number; if it is an IDE disk, you must know what -controller the disk is on and whether it is a master or a slave. The -Hurd uses the BSD naming convention which, is to say, disks are ordered -according to their physical location, numerically, starting from zero. -This naming scheme is quite similar to that found in Linux. There, the -master disk on the primary controller is designated as `hda' and the -slave as `hdb'. On the secondary controller, the master and the slave -are designated by `hdc' and `hdd' respectively. Under the Hurd, `hda' -would become `hd0', `hdb' would be referred to as `hd1', etc. - -In the Hurd, like in BSD, partitions are called `slices' and are -numbered starting from one. Thus, to name a particular partition, we -take the disk name, append a `s' and the partition number. Again, this -is similar to Linux except, there is no `s'. For instance, `hda1' would -become `hd0s1'. - -GRUB, the boot loader, uses a completely different nomenclature: it -probes the BIOS and appends each disk in turn to an array. Disks are enumerated -using zero based arrays. GRUB 2 enumerates partitions from one, while GRUB 1 -used to enumerate them from zero. -The format is: -`hd (, )'. Thus, in GRUB 2 `hd (0, 1)' refers to the first -partition on the first drive detected by the BIOS (or the second partition with -GRUB 1). As Grub now has tab -completion, there is not a lot of guess work. - -?? Can I use partitions larger than 2GB? - -{ST} Yes. Disk drivers however currently do not support more than 2^32 sectors, i.e. -2TiB. - -?? How much swap do I need? - -{ST} The usual rule of thumb applies: the same amount as RAM, for instance. - -?? Can I share swap space between GNU/Linux and GNU/Hurd? - -{NHW} Yes. The default pager recognises and respects Linux swap -partitions. It will also swap to a raw partition, i.e. anything that it -does not recognize as Linux swap. Therefore: BE CAREFUL. - -?? Why do I get ``Operation not permitted error''? - -{MB} You forgot to set the file system owner of the GNU/Hurd partition to -``hurd''. The Hurd uses additional information in the inodes to set -translators. To make this work, the partition must be marked as ``owned -by the Hurd''. This is normally done by passing the `-o hurd' option to -`mke2fs' when creating ext2 system from other operating systems -(filesystems created in GNU/Hurd automatically enable this option). -If you failed to do this, you can still use the `e2os' script. - -?? After `native-install' is finished, I had to write tthhiiss - wwaayy. In particular, I had to type `rreebboooott' to reboot. - -{MB} Funny, isn't it? In addition to the rescue `term' server in -`/tmp/console', another `term' server got started and is clobbing the -keyboard input. After a reboot this problem vanishes as only one `term' -server will remain. If `tar' would support translator, we would not -have this problem... Even if you don't experience this problem right -after the installation, reboot immediately so you don't hit this bug by -accident. - -? Setup - -?? How do I add a swap partition? - -{MB} A swap partition is also called a paging file. Usually, it is -sufficient to add the swap partition to `/etc/fstab', just as you would -under Linux. You can swap to a Linux swap partition and the Hurd will -honour the Linux swap signature (both versions). The Hurd will just as -happily swap to any other raw disk space and overwrite anything it -finds. So, be careful! - -If you want to swap to a file or make sure that it checks the Linux swap -signature before, you need to edit `/boot/servers.boot'. The syntax is -the partition device file name plus, optionally, the swap file inside an -ext2fs partition, followed by a space and then one of: -`$(add-raw-paging-file)', `$(add-linux-paging-file)', -`$(add-paging-file)'. The first works with any partition or file and -does not honour any swap signature or other data. The second has a -safety check and only uses the file if a Linux swap signature is found. -The third looks for a swap signature first and falls back to raw paging -if it failed to find one. This is also the default for entries in -`/etc/fstab'. - -?? How do I set up a network? - How do I set up a loopback device? - -{MB} In the former case, be sure that GNU Mach detected your network -card. Either way, you need to setup `pfinet'. Documentation can be -found at: - - http://www.debian.org/ports/hurd/hurd-doc-server#pfinet - -Don't forget to fill in `/etc/resolv.conf', `/etc/hosts', etc. - -Of course, you only need to do this if the installation routine didn't -do it for you. - -?? Can I use the GNU/Linux version of `e2fsck' on a GNU/Hurd partition? - -{MB} Yes, at least since `e2fsprogs-1.05'. Check this with `e2fsck -V' -first. - -{NHW} Do not try to defrag your partition as this utility does not know -about translators. - -?? Why are pipes not working? - -{MB} `settrans -fgc /servers/socket/1 /hurd/pflocal' should help. - -? Usage - -?? Where is the documentation? - -{NHW,MM} There are neither man pages nor info nodes for the Hurd -translators and commands. Documentation lives inside of the binaries -and can be found by passing the `--help' option to a given command. -For instance: - - # /hurd/ext2fs --help - -will tell you what types of options the ext2fs translator accepts. - -The GNU/Hurd User's Guide and the GNU Hurd Reference Manual both -provide some help about the usage of and concepts behind the GNU Hurd. -You can find them, among others, at: - - http://www.gnu.org/software/hurd/docs.html - -?? What is a translator? - -{MB} There is a text about translators available at: - - http://www.debian.org/ports/hurd/hurd-doc-translator - -Read this and ask further questions on the mailing lists. - -?? What is the login shell? - -{MB} The Hurd has the concept of a not-logged in user. This user has -neither user ids nor groups ids. This stems from the fact that the Hurd -supports uid and gid sets and one possibility is, of course, the empty -set. Rather than deny access in this case, filesystems in the Hurd offer a -fourth permission triplet (i.e. rwx) which is used to determine the -privileges for users with no credentials. This, however, needs to be -enabled on a file by file basis. By default, the `other' permission -triplet is used. - -The Hurd login shell is a shell running with neither uids nor gids. To -restrict access to your files, either enable and change the fourth -permission triplet or change the login shell of the `login' user in the -password file to `/bin/loginpr' which implements the standard login -prompt. - -?? How do I use non-US keyboard bindings? - -{ST} On Debian Hurd, you can configure the console layout from -`/etc/default/hurd-console`. - -?? How do I enable color on the console? - -{NHW} If you are using the GNU Mach microkernel, you can set your -terminal to `mach-color'. For instance: - - # export TERM=mach-color - -?? How can I enable virtual consoles? - -{ST} On Debian Hurd, it is already enabled by default, and configured from -`/etc/default/hurd-console`. - -{AMS} This can be done by running the following command: - - console -d vga -d pc_kbd -d generic_speaker /dev/vcs - -If something went wrong, or if you just wish to exit the Hurd console -then hitting C-A- will exit it. - -?? What is the status of X? - -{MB} It works! The packages are available at any Debian ftp mirror. -XFree86 4.0.2 is available, as are some of the v3 servers. Instructions -on how to use the packages are in the mailing list archive (link follow -later). - -?? What are these strange pids `0`, `2', `3', `4`, and `5`? - -{MB,ST} Zero is the `proc` processus server (and thus does not really have a pid -:) ) Two is the kernel, three is the root filesystem server, four is the `exec` -server (which handles starting programs), five is the `auth` server (which -handles user authentication). - -?? Why does `ps aux' give me strange output? - -{MB,MM} Try `ps Aux'. Indeed, under GNU/Hurd, `ps aux' doesn't list -all processes: it omits the session and group leaders, and the -processes without parent. - -?? I have a hung process that I want to kill, however, `ps' is now - hanging too. - -{MB} Interrupt it and pass it the `-M' option. - -{NHW} By default, `ps' gathers information from both the proc server and -the processes themselves (via their message port). If a process it -hung, it will not be able respond to its message port and thus, ps will -wait forever. The `-M' option instructs ps to not gather information -that would require use of the message port. - -?? Where are ... - -{MB} `dmesg' is not available. You can read `/var/log/dmesg` instead. - -?? Why does the command `df' not work? - -{NHW} It does, you just have to tell it what filesystem to query. E.g. - - # df / - -?? Why are my translators dying? - -{NHW} Try passing the `-ap' flag to settrans. By default, settrans only -sets a passive translator, therefore, no output will show up on your -terminal. Using `-ap', however, sets both the active and the passive -translator which, means that the translator starts immediately and its -stderr is connected to you terminal. - -Additionally, the biggest problem is passing relative paths to passive -translators. You cannot predict what the current working directory of a -translator will be when it is setup as a passive translator. - -?? Why can I `read' a directory? - -{MB} It is important to understand that there is nothing special about a -directory under the Hurd, it is just another file. This fits in with -the translator concept where a translator can appear as a directory but -provide also as a file. - -? Trouble shooting - -?? When the APM support in the BIOS spins down my disk drives, the - Hurd is unable to wake up. What's wrong? - -{MB} APM is not supported in the current version of GNU Mach, sorry. -Please disable APM in your BIOS setup. - -?? What are these messages referring to `default pager', `paging', - and `pager request'? - -{MB} The default pager handles virtual memory allocation. If it can't -allocate a new memory page because you are out of memory, some terrible -things may happen. Whenever you get errors referring to any of these, -you either need more memory (make sure you have swap) or you have found -a memory leak. - -?? What is a gratuitous error? - -{MB} This comes from `strerror(EGRATUITOUS)'. If you check glibc's -documentation, it will say that this error code has no purpose. This, -however, is not quite true. You only get this when something terrible -happens. Thomas explains: - - More precisely `EGRATUITOUS' officially means that some server - has responded in an impossible or protocol-violating fashion. - There are some cases in the Hurd where `EGRATUITOUS' is returned - and probably something else should be chosen instead. - -If you can reproduce this error message, please report it. - -?? What does ``computer bought the farm'' mean ? - -{FH} This message is the text that corresponds to the errno code -`EIEIO'. Roland McGrath explains: - - That message is not output by any particular servers at - particular times; rather it is the perror text for the errno - code EIEIO, which is returned by various RPCs and functions - for a variety of "hopeless" error conditions. - - -?? What does ``/dev/hd0s1: MOUNTED READ-ONLY; MUST USE `fsysopts - --writable''' mean? - -{NHW} In this case, /dev/hd0s1 was not unmounted cleanly. The Hurd -will, on boot up, run ``fsck -p'' on any partitions that it finds in -/etc/fstab, so, you may want to consider adding this partition to that -file. If you are sure that the partition is fine, you can run: - - # fsysopts /home --writable - -to ask the translator sitting on /home to change from read-only to -read/write mode. Note that the command is being sent to the filesystem -and not the store (e.g. /dev/hd0s1). - -?? When GNU/Hurd crashes, GNU Mach automatically reboots. Is - there anyway I can make it pause so I can write down the error? - -{MB} Pass the `-H' option to init (add it to the boot command line), and -`init' will tell Mach to enter the kernel debugger instead to rebooting -it. At the debugger prompt (`db>'), you can type `reboot' any time to -reboot the system. - -? Porting - -?? What programs have been ported? - -{NHW} A lot, take a look at the Debian archive. Many programs, however, -do not necessarily need to be ported; they have just never been -compiled. - -?? Is porting easy? - -{NHW} Porting applications to GNU/Hurd is relatively easy assuming the -application is POSIX compliant as GNU/Hurd does its best to be a -conforming operating system. - -The most common error made by programmers is assuming the MAXPATHLEN and -PATH_MAX are defined. On most operating systems this is set to a few -thousand, however, on GNU/Hurd, there is no maximum and thus, this is -not set. The correct thing to do is to submit a patch to the upstream -author that allocates memory dynamically. - -?? How can I help? - -{ST} Please see the contributing page: -http://www.gnu.org/software/hurd/contributing.html - -? Compiling - -?? Where can I get the source? - -{AMS} Instructions on how to download the CVS tree from Savanah are -available at https://savannah.gnu.org/cvs/?group=hurd - -{NHW} To get the source to the latest debian package, look on any -debian mirror. - -?? Can I cross compile? - -{ST} To REDO. - -{NHW} Yes. If you are running Debian GNU/Linux on IA32, this is quite -easy as there is a cheap cross compiler available; all that is required -is installing the gcc-i386-gnu and mig-i386-gnu Debian packages. When -running configure, you will have to specify tools directly: - - # MIG=/usr/bin/i386-gnu-mig CC=/usr/bin/i386-gnu-gcc \ - ../src/hurd/configure ... - -If you are running another distribution, you will have to do this the -long way. You can find instructions at the Cross Compiling HOW-TO -available at: - - http://hurddocs.sourceforge.net/howto/cross.html - -Farid Hajji also talks about his experiences -at: - - http://lists.debian.org/debian-hurd-0012/msg00062.html - -?? Any general tips? - -{NHW} Yeah, building in the source tree is untested. Try: - - # ../src/hurd/configure ... - -? Development - -?? What is OSKit-Mach? - -{NHW,FH} There are two versions of GNU Mac that are in use: GNU Mach -1.x and GNU Mach 2.x, formerly known as OSKit-Mach. The former uses -the drivers from Linux 2.0.x while the latter uses the University of -Utah's OSKit library for drivers. You can find out more about the -OSKit library at: - - http://www.cs.utah.edu/flux/oskit - -GNU Mach 2.x is usable, but some things are still missing or not -working, like the serial port and scsi drivers. This is why GNU Mach -2.0 hasn't released yet and the two versions coexist. - -?? Where is the documentation? - -{NHW} There were several books written on the Mach kernel. The -information that they contain is still mostly pertinent and should be -considered required reading for potential hackers. They can be found -at: - - http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/publications.html - -The documentation for the Hurd is quite inadequate. The starting of a -book, ``The GNU Hurd'' is in the doc directory in the Hurd source. You -can read this using: - - # info hurd - -The authoritative place is, of course, the source code; that does not, -however, mean that we would not welcome more documentation. To get -started, take a look at /doc/navigating. - -?? How do I make sure that my code is POSIX compliant? - -{NHW} Unfortunately, you have to buy the POSIX standard from IEEE. The -Single Unix Specification version 2, a superset of POSIX, is available -for free on the Internet. Try: - - http://www.unix-systems.org/online.html - -?? Who do I submit patches to? - -{NHW} If they are against the Hurd, Mach or MiG, send a patch to the -bug-hurd mailing list. - -If they are against other packages, the Debian BTS is a good place. In -this case, be sure to advise the debian-hurd mailing list of the bug. - -?? In what format should patches for the Hurd and GNU Mach be? - -{MB} All patches should be sent in unified context diff format (option -`-u' to GNU diff). It is helpful for us if you also use the `-p' -option which includes information about the function changed by a -patch. Changes that are similar can be grouped together in one file, -but unrelated changes should be sent in seperate files. The patches -can be included in the message or as a MIME attachement. They should -not be compressed and/or archived unless they are very large, and if -they are very large it is probably better to store them on-line at -some place and only sent an URL. - -Write a ChangeLog entry for each change, following the format of the -existing files. Here is an example: - - 2000-12-02 Marcus Brinkmann - - * ops.c (op_readlink): Before returning, check if the buffer - pointed to by transp is ours. If not, munmap it. - (op_read): Likewise for bp. - (op_readdir): Don't alloca a buffer here. Instead initialize - BUF and BUFSIZE to 0 and let the server (eh, MiG) do it. - munmap BUF before returning. - -The file name and the name of the function changed should always be -spelled out completely, and not abbreviated or otherwise mangled (like -foo.{c,h}), because that would make searching for all changes to a -file or function impossible. Local variable names are all -capitalized. There are two spaces between sentences. You can use -``C-x 4 a'' in Emacs to add a new ChangeLog entry. If you do that -with the mark being in a function, Emacs will automatically fill in -the file and function name for you. - -Do not send in a patch for the ChangeLog file. Rather include the -ChangeLog entries in the message that contains the patch. Patches for -ChangeLog files often conflict. - -If you have the original source tree in the directory `hurd-orig', and -the modified source tree in the directory `hurd', the following -command will produce a good patch (please make sure there are no extra -files like backups in the modified tree, or leave away the option -`-N'). You will need to collect the ChangeLog entries seperately. - - # diff -x ChangeLog -Nurp hurd-orig hurd - - -Answers were given by (in chronological order): -* {NHW} Neal H Walfield -* {MB} Marcus Brinkmann -* {AMS} Alfred M. Szmidt -* {OK} Ognyan Kulev -* {FH} Frédéric Henry -* {MM} Manuel Menal -* {ST} Samuel Thibault diff --git a/hurd/faq/old_hurd_faq.txt b/hurd/faq/old_hurd_faq.txt deleted file mode 100644 index 4ebe019b..00000000 --- a/hurd/faq/old_hurd_faq.txt +++ /dev/null @@ -1,145 +0,0 @@ -The Unofficial (and no longer maintained) GNU Hurd FAQ, Version 0.13 - -Contributions by: - -Michael I. Bushnell -Len Tower -Trent Fisher -jlr@usoft.spb.su -Remy Card -Louis-Dominique Dubeau - -Original Document by: Derek Upham - - -============================== - -Contents: - -Q0. Where can I get the Unofficial GNU Hurd FAQ? -Q2. Where can I get a copy? -Q3. Why bother writing a new OS when we have Linux and 386/BSD? -Q4. What's all this about Mach 3.0 (and Mach 4.0)? -Q5. Where can I find more information? -Q7. What sort of machines will run Hurd in the future? -Q8. What is the current development status? -Q9. What sort of system would we have if the Hurd was bootable today? - -============================== - -Q0. Where can I get the Unofficial GNU Hurd FAQ? - -The Unofficial Hurd FAQ (what you are reading now) is occasionally -posted to the USENET newsgroup, gnu.misc.discuss. It is also -available from - - http://www.enci.ucalgary.ca/~gord/hurd/hurd-faq.txt (Broken Link ?) - -If you don't have WWW access, you may send mail to me, Gordon -Matzigkeit with a subject line that reads: - - Subject: send hurd-faq - -You should receive a PGP-signed copy of the current version of this -document in a matter of minutes. - - -Q2. Where can I get a copy? - -To put it simply, you can't. It is still under development (by -Michael Bushnell, Roland McGrath and Miles Bader). It is almost, but -not quite, at the point where you can do real work on it. Keep your -fingers crossed. - -Some people have actually bootstrapped it, but the work is not easy, -and the current snapshot won't work until a new multiserver boot -mechanism is made. - -If you *really* want to try it, beware that it is still pre-alpha -code, and that it will likely crash on you. See Trent Fisher's Hurd -pages (under question 5) for the latest information. - - -Q3. Why bother writing a new OS when we have Linux and 386/BSD? - -For one thing, Linux and BSD don't scale well. Hardware designers are -shifting more and more toward multiprocessor machines for performance, -and standard Unix kernels do not provide much multiprocessor support. -The Hurd, on the other hand, runs on top of the Mach 3.0 micro-kernel -[[1]] from CMU. Mach was designed precisely for multiprocessing -machines, so its portability should carry over nicely to the Hurd. - -In addition, the Hurd will be considerably more flexible and robust -than generic Unix. Wherever possible, Unix kernel features have been -moved into unprivileged space. Once there, anyone who desires can -develop custom replacements for them. Users will be able to write and -use their own file systems, their own `exec' servers, or their own -network protocols if they like, all without disturbing other users. - -The Linux kernel has now been modified to allow user-level file -systems, so there is proof that people will actually use features such -as these. It will be much easier to do under the Hurd, however, -because the Hurd is almost entirely run in user space and because the -various servers are designed for this sort of modification. - - -Q4. What's all this about Mach 3.0 (and Mach 4.0)? - -As mentioned above, Mach is a micro-kernel, written at Carnegie Mellon -University. A more descriptive term might be a greatest-common-factor -kernel, since it provides facilities common to all ``real'' operating -systems, such as memory management, inter-process communication, -processes, and a bunch of other stuff. Unfortunately, the system -calls used to access these facilities are only vaguely related to the -familiar and cherished Unix system calls. There are no "fork", -"wait", or "sleep" system-calls, no SIGHUPs, nothing like that. All -this makes it rather difficult to, say, port GNU Emacs to a Mach box. - -The trick is, of course, to write an emulation library. Unix programs -can then use (what they think are) POSIX system calls and facilities -while they are really using Mach system calls and facilities. - -The simplest way of going about this is to take an ordinary Unix -kernel, open it up, and rip out all the machine-specific guts; any -time the Unix kernel talks to the machine, replace the code with calls -to the Mach micro-kernel. Run this fake kernel on a Mach machine and -you end up with something that looks and acts just like Unix (even to -GNU Emacs). Note that the Unix kernel we have implemented is just one -Really Big Mach program (called a single-server). - -The Hurd, on the other hand, breaks the giant Unix kernel down into -various Mach programs running as daemons. Working in concert with -facilities placed in the C library, these daemons provide all of the -POSIX system-calls and features; from the outside they look just like -a standard Unix kernel. This means that, for practical purposes, -anything that you can port to Linux will also port to the Hurd. - -Of course, if a user wishes to run his own daemons, he can do that as -well.... - -Mach 4.0 is an enhanced version of Mach 3.0, put out by the people at -the University of Utah. They are working on another free operating -system, and part of it includes an enhanced, more flexible version of -Mach. The Hurd has moved to Mach 4.0, which is good, because it is a -lot easier to build than 3.0 was. - -You can find more information on Mach by browsing the Hurd pages given -in the next answer, or by looking at the Project Mach and Flux -homepages at: - -Carnegie Mellon University (for Mach versions before 4.0): - - http://www.cs.cmu.edu/afs/cs.cmu.edu/project/mach/public/www/mach.html - -the University of Utah (for Mach 4.0): - - http://www.cs.utah.edu/projects/flux/mach4/html/ - - - -============================== - -Footnotes: - -[[1]] Yes, I know that ``micro-kernel'' is about as apt a description -as ``Reduced Instruction Set Chip'', but we're stuck with it. diff --git a/hurd/faq/release.mdwn b/hurd/faq/release.mdwn deleted file mode 100644 index d80c6825..00000000 --- a/hurd/faq/release.mdwn +++ /dev/null @@ -1,15 +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]]."]]"""]] - -[[!meta title="When will the Hurd be released?"]] - -Next year. - -Save that, read about the Hurd's [[status]]. diff --git a/hurd/faq/slash_usr_symlink.mdwn b/hurd/faq/slash_usr_symlink.mdwn deleted file mode 100644 index 5c47f4e1..00000000 --- a/hurd/faq/slash_usr_symlink.mdwn +++ /dev/null @@ -1,20 +0,0 @@ -[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 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]]."]]"""]] - -[[!meta title="Why is `/usr' a symbolic link to `.'?"]] - -The distinction between `/` and `/usr` has historical reasons. Back when [[Unix]] -systems were booted from two tapes, a small root tape and a big user tape. -Today, we like to use different partitions for these two spaces. The Hurd -throws this historical garbage away. We think that we have found a more -flexible solution called union filesystems, which allow to create virtual -filesystems which are the union of several other filesystems. However, support -for union filesystems is still in early development. diff --git a/hurd/faq/slash_usr_symlink/discussion.mdwn b/hurd/faq/slash_usr_symlink/discussion.mdwn deleted file mode 100644 index 219e14e4..00000000 --- a/hurd/faq/slash_usr_symlink/discussion.mdwn +++ /dev/null @@ -1,45 +0,0 @@ -[[!meta copyright="Copyright © 2012 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]] - - -# IRC, freenode, #hurd, 2012-02-01 - - I remember the time when we had a /usr symlink. Now fedora 17 - will move / to /usr and have /foo symlinks. :) - braunr: - http://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge - braunr: fedora and others are merging /bin, /sbin and some other - into /usr - braunr: back in 1998 we tried for two years or so to have /usr -> - .. in Debian GNU/Hurd, but eventually we gave up on it, because it broke - some stuff - marcusb: Hi, which one is better (in your opinion): / or /usr? - gnu_srs: fedora says that using /usr allows better separation of - distribution files and machine-local files - marcusb: won't it break remote /usr ? - so you can atomically mount the OS files to /usr - gnu_srs: but in the end, it's a wash - personally, I think every package should get its own directory - marcusb: what PATH then ? - braunr: well, I guess you'd want to assemble a union filesystem - for a POSIX shell - marcusb: i don't see what you mean :/ - ah this comes from Lennart Poettering - braunr: check out for example how http://nixos.org/ does it - braunr: something like, union /package1/bin /package2/bin - /package3/bin for /bin, /package1/lib /package2/lib /package3/lib for - /lib, etc. I guess - manuel: would that scale well ? - the idea that there is only one correct binary for each program - with the name foo is noble, but a complete illusion that hides the - complexity of the actual configuration management task - marcusb: right diff --git a/hurd/faq/still_useful.mdwn b/hurd/faq/still_useful.mdwn deleted file mode 100644 index bffeaebd..00000000 --- a/hurd/faq/still_useful.mdwn +++ /dev/null @@ -1,46 +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]]."]]"""]] - -what are the advantages with the Hurd over Linux, in general of course, nothing -in depth - -> Flexibility for the user: -> -> transparent ftp -> -> $ cd /ftp://ftp.debian.org/debian -> $ ls -> -> personnal filesystem -> -> $ dd < /dev/zero > myspace.img bs=1M count=1024 -> $ mke2fs myspace.img -> $ settrans myspace /hurd/ext2fs myspace.img -> $ cd myspace - ->> Just curious, but I keep seeing these (and other similar) concepts being ->> brought up as the amazing selling points of the Hurd, but all of this is ->> entirely doable now in Linux with FUSE or things like it. - ->>> Nowadays, at LAST, yes, partly. - ->> I'm not sure if an ftp filesystem has been implemented for FUSE yet, but its ->> definately doable; and loopback filesystems like in your second example have ->> been supported for years. - ->>> As a normal user? And establish a tap interface connected through ppp over ->>> ssh or whatever you could want to imagine? - ->> What, then, are the major selling points or benefits? - ->>> These were just examples, Linux is trying to catch up in ugly ways indeed ->>> (yes, have a look at the details of fuse, it's deemed to be inefficient). ->>> In the Hurd, it's that way from the _ground_ and there is no limitation ->>> like having to be root or ask for root to add magic lines, etc. diff --git a/hurd/running/debian/faq.mdwn b/hurd/running/debian/faq.mdwn deleted file mode 100644 index 8aaadf9c..00000000 --- a/hurd/running/debian/faq.mdwn +++ /dev/null @@ -1,21 +0,0 @@ -[[!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 -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="Debian GNU/Hurd FAQ"]] - -See also [[after_install]] instructions, and other [[/FAQ]]. - -[[!inline -pages="hurd/running/debian/faq/* and !*/discussion" -show=0 -feeds=no -actions=yes -rootpage="hurd/running/debian/faq" postformtext="Add a new item titled:"]] diff --git a/hurd/running/debian/faq/2_gib_partition_limit.mdwn b/hurd/running/debian/faq/2_gib_partition_limit.mdwn deleted file mode 100644 index 195191cb..00000000 --- a/hurd/running/debian/faq/2_gib_partition_limit.mdwn +++ /dev/null @@ -1,13 +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]]."]]"""]] - -[[!meta title="2 GiB Partition Limit"]] - -The 2 GiB limit has been removed in Debian GNU/Hurd. diff --git a/hurd/running/debian/faq/apt_umount.mdwn b/hurd/running/debian/faq/apt_umount.mdwn deleted file mode 100644 index db0dbfd1..00000000 --- a/hurd/running/debian/faq/apt_umount.mdwn +++ /dev/null @@ -1,25 +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]]."]]"""]] - -[[!meta title="apt: unmount cdroms"]] - -You can add a shell script umount so that apt can automatically unmount cdroms. - - #!/bin/sh - # Filename: /usr/bin/umount - - settrans -fg "$@" - -Give executable permission to the script. - - # chmod +x /usr/bin/umount - -In `/etc/fstab` add a trailing `/` after cdrom like `/cdrom/` since apt uses a -trailing `/`. diff --git a/hurd/running/debian/faq/bad_hypermeta_data.mdwn b/hurd/running/debian/faq/bad_hypermeta_data.mdwn deleted file mode 100644 index bc960e30..00000000 --- a/hurd/running/debian/faq/bad_hypermeta_data.mdwn +++ /dev/null @@ -1,15 +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]]."]]"""]] - -If you get the error `bad hypermeta data` when trying to mount an ext3 -partition from GNU/Linux, that is usually because the file system has not been -unmounted cleanly (maybe GNU/Linux got suspended to disk) and the Hurd cannot -mount it as ext2 without checking. Either boot back into GNU/Linux and unmount -it or you can try to run `fsck.ext3` from GNU/Hurd directly. diff --git a/hurd/running/debian/faq/debugging_inside_glibc.mdwn b/hurd/running/debian/faq/debugging_inside_glibc.mdwn deleted file mode 100644 index 91b71d64..00000000 --- a/hurd/running/debian/faq/debugging_inside_glibc.mdwn +++ /dev/null @@ -1,19 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, -Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -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]]."]]"""]] - -To get [[debugging]] information for glibc, you need to install the -`libc0.3-dbg` package. At the place [[debugging/GDB]] looks for debugging -symbols by default (`/usr/lib/debug/lib/`), Debian's `libc0.3-dbg` stores only -the frame unwind information used for backtracing. If you want to step into -glibc while debugging, you need to add `LD_LIBRARY_PATH=/usr/lib/debug` to -debugged program's environment (`set env VAR value` from the GDB command line). -If that still does not work, try `LD_PRELOAD=/usr/lib/debug/libc.so.0.3` -instead. diff --git a/hurd/running/debian/faq/debugging_translators.mdwn b/hurd/running/debian/faq/debugging_translators.mdwn deleted file mode 100644 index b55484e1..00000000 --- a/hurd/running/debian/faq/debugging_translators.mdwn +++ /dev/null @@ -1,15 +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]]."]]"""]] - -In order to [[debug|debugging]] translators and being able to step into glibc -during it, you need the `hurd-dbg` and `libc0.3-dbg` packages installed. If you need to debug the initialization of the translator, -start the translator like `settrans -P /foo /usr/bin/env -LD\_LIBRARY\_PATH=/usr/lib/debug /hurd/foofs`. The `-P` option will make it -pause and you will be able to attach [[debugging/GDB]] to the process. diff --git a/hurd/running/debian/faq/df.mdwn b/hurd/running/debian/faq/df.mdwn deleted file mode 100644 index bbd3a7b9..00000000 --- a/hurd/running/debian/faq/df.mdwn +++ /dev/null @@ -1,19 +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]]."]]"""]] - -There is no `/etc/mtab` (due to dynamic translator startup, its content is hard -to define actually, see -[[the mtab GSoC project idea|community/gsoc/project_ideas/mtab]]), -so just running `df` will yield the following error. - - df: cannot read table of mounted file systems - -Pass `df` a path like `df /` or `df ./` to see the disk usage of that particular -file system. diff --git a/hurd/running/debian/faq/eata.mdwn b/hurd/running/debian/faq/eata.mdwn deleted file mode 100644 index fa7dbdec..00000000 --- a/hurd/running/debian/faq/eata.mdwn +++ /dev/null @@ -1,13 +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]]."]]"""]] - -In some virtual machines (e.g. VirtualBox), "probing eata on XXX" may be -quite long. This is apparently due to poor efficiency of the virtualizer, not -Mach. There is no such issue on real hardware or using qemu/kvm. diff --git a/hurd/running/debian/faq/hurd_console.mdwn b/hurd/running/debian/faq/hurd_console.mdwn deleted file mode 100644 index 5cccc83c..00000000 --- a/hurd/running/debian/faq/hurd_console.mdwn +++ /dev/null @@ -1,13 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2013 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]]."]]"""]] - -Edit `/etc/default/hurd-console` to configure the Hurd console. -See [[console]] for further information about the Hurd console. diff --git a/hurd/running/debian/faq/kernel_logs.mdwn b/hurd/running/debian/faq/kernel_logs.mdwn deleted file mode 100644 index d539bf1b..00000000 --- a/hurd/running/debian/faq/kernel_logs.mdwn +++ /dev/null @@ -1,14 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2013 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="dmesg, kernel logs"]] - -There is no dmesg command: the kernel does not keep a buffer of its messages. syslog however dumps them into `/var/log/dmesg`, so you can simply cat that. diff --git a/hurd/running/debian/faq/other_repositories.mdwn b/hurd/running/debian/faq/other_repositories.mdwn deleted file mode 100644 index 88781d46..00000000 --- a/hurd/running/debian/faq/other_repositories.mdwn +++ /dev/null @@ -1,16 +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]]."]]"""]] - -If you want to use the `apt-get source` facility, make sure that -`/etc/apt/sources.list` contains a line like - - deb-src http://ftp.de.debian.org/debian unstable main - -... replacing _de_ with your homeland's code. diff --git a/hurd/running/debian/faq/ps_hangs.mdwn b/hurd/running/debian/faq/ps_hangs.mdwn deleted file mode 100644 index b58a3308..00000000 --- a/hurd/running/debian/faq/ps_hangs.mdwn +++ /dev/null @@ -1,13 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2013 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]]."]]"""]] - -If `ps` hangs, try `ps -M` which should still work by not getting detailed -information from processes. diff --git a/hurd/running/debian/faq/ram_limit.mdwn b/hurd/running/debian/faq/ram_limit.mdwn deleted file mode 100644 index 447ff20c..00000000 --- a/hurd/running/debian/faq/ram_limit.mdwn +++ /dev/null @@ -1,22 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2013 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="830 MiB RAM Limit"]] - -Just like any 32bit OS without bad tricks, GNU Mach does not cope well with lots -of memory. Latest versions of the Debian `gnumach` package will limit themselves -to around 1.7 GiB of memory. If you want more, you can twiddle the VM_MAX_ADDRESS -limit between kernelland and userland in i386/include/mach/i386/vm_param.h. - -If you have an older version, or still experience problems with `vmstat` (see -above) reported much less memory than you have, the best is to limit the memory -it can see via GRUB's `upppermem` feature. Add `uppermem 786432` to GRUB's Hurd -entry in `menu.lst`. diff --git a/hurd/running/debian/faq/reporting_bugs.mdwn b/hurd/running/debian/faq/reporting_bugs.mdwn deleted file mode 100644 index 40781ab0..00000000 --- a/hurd/running/debian/faq/reporting_bugs.mdwn +++ /dev/null @@ -1,19 +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]]."]]"""]] - -Please try to reproduce bugs which are not obviously Hurd-specific on Debian -GNU/Linux and then file them there. - -If you find a genuine issue in Debian GNU/Hurd, please file it in our Alioth -bug tracker at - -If you find a bug in the Hurd or GNU Mach themselves, either file a bug against -the respective Debian packages, or directly at - diff --git a/hurd/running/debian/faq/sata_disk_drives.mdwn b/hurd/running/debian/faq/sata_disk_drives.mdwn deleted file mode 100644 index dad10cb9..00000000 --- a/hurd/running/debian/faq/sata_disk_drives.mdwn +++ /dev/null @@ -1,11 +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]]."]]"""]] - -GNU Mach does not support SATA disk drives (/dev/sda etc. in GNU/Linux) natively, so using device:sd0s1 will not work, sd* devices are for SCSI drives only. The only way to get those drives to work is to put them into compatibility mode in the BIOS, if such an option exists. GNU Mach will then recognize them as hda etc. diff --git a/hurd/running/debian/faq/xserver-common.mdwn b/hurd/running/debian/faq/xserver-common.mdwn deleted file mode 100644 index 3420154c..00000000 --- a/hurd/running/debian/faq/xserver-common.mdwn +++ /dev/null @@ -1,15 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2013 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="normal users can't start X"]] - -You need to run `dpkg-reconfigure x11-common` and select `Anybody` for -starting X as there is no way to detect console users currently. diff --git a/hurd/running/faq.mdwn b/hurd/running/faq.mdwn deleted file mode 100644 index 2746a20a..00000000 --- a/hurd/running/faq.mdwn +++ /dev/null @@ -1,20 +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="General FAQ About Running GNU/Hurd"]] - -See also other [[/FAQ]]. - -[[!inline -pages="hurd/running/faq/* and !*/discussion" -show=0 -feeds=no -actions=yes -rootpage="hurd/running/faq" postformtext="Add a new item titled:"]] diff --git a/hurd/running/faq/native-install_doesnt_finish.mdwn b/hurd/running/faq/native-install_doesnt_finish.mdwn deleted file mode 100644 index a852e1dd..00000000 --- a/hurd/running/faq/native-install_doesnt_finish.mdwn +++ /dev/null @@ -1,24 +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]]."]]"""]] - -Copying baseGNU to the virtual disk works. Even booting got through but when I -try to run native-install it never gets to the very end. First time it froze on -*sed* package, the other time on *sysv-rc*. - -> How much memory did you configure for the [[QEMU]] system? It may simply be -> -- I've seen this myself -- that the system runs out of memory, as at the -> native-install stage (I think at least) swap is not yet configured and -> enabled. What I've been doing is: boot (with -s), MAKEDEV hdWHATEVER in -> /dev/ for the swap device, run /hurd/mach-defpager, followed by swapon -> /dev/hdWHATEVER. Does this help? - ->> Thank You very much, more memory solved the freezing. - -[[!tag open_issue_hurd]] -- cgit v1.2.3 From a0e6c3af5b418baa6642cd67499e57e5f63bdba9 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Fri, 15 Mar 2013 16:44:47 +0100 Subject: faq: really exclude debian items --- faq.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/faq.mdwn b/faq.mdwn index 9146f384..0cf75198 100644 --- a/faq.mdwn +++ b/faq.mdwn @@ -25,7 +25,7 @@ rootpage="faq" postformtext="Add a new item titled:"]] # FAQs [[!map -pages="faq/* and !*/discussion and !*/debian" +pages="faq/* and !*/discussion and !*/debian/*" show=title]] -- cgit v1.2.3 From 301806cbb32e16a18056d1a074ceb01041bf156e Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Fri, 15 Mar 2013 17:23:50 +0100 Subject: misc fixes tiny formatting and URL fixes --- faq/debugging_translators.mdwn | 10 +++++++--- faq/kernel_logs.mdwn | 2 +- faq/ram_limit.mdwn | 4 ++-- faq/release.mdwn | 2 +- hurd/running/debian/after_install.mdwn | 2 +- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/faq/debugging_translators.mdwn b/faq/debugging_translators.mdwn index b55484e1..262fd6aa 100644 --- a/faq/debugging_translators.mdwn +++ b/faq/debugging_translators.mdwn @@ -9,7 +9,11 @@ is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] In order to [[debug|debugging]] translators and being able to step into glibc -during it, you need the `hurd-dbg` and `libc0.3-dbg` packages installed. If you need to debug the initialization of the translator, -start the translator like `settrans -P /foo /usr/bin/env -LD\_LIBRARY\_PATH=/usr/lib/debug /hurd/foofs`. The `-P` option will make it +during it, you need the `hurd-dbg` and `libc0.3-dbg` packages installed. +If you need to debug the initialization of the translator, start the translator +like + + $ settrans -P /foo /usr/bin/env LD_LIBRARY_PATH=/usr/lib/debug /hurd/foofs + +The `-P` option will make it pause and you will be able to attach [[debugging/GDB]] to the process. diff --git a/faq/kernel_logs.mdwn b/faq/kernel_logs.mdwn index d539bf1b..93df42bb 100644 --- a/faq/kernel_logs.mdwn +++ b/faq/kernel_logs.mdwn @@ -11,4 +11,4 @@ License|/fdl]]."]]"""]] [[!meta title="dmesg, kernel logs"]] -There is no dmesg command: the kernel does not keep a buffer of its messages. syslog however dumps them into `/var/log/dmesg`, so you can simply cat that. +There is no `dmesg` command: the kernel does not keep a buffer of its messages. syslog however dumps them into `/var/log/dmesg`, so you can simply cat that. diff --git a/faq/ram_limit.mdwn b/faq/ram_limit.mdwn index 447ff20c..458a047d 100644 --- a/faq/ram_limit.mdwn +++ b/faq/ram_limit.mdwn @@ -13,8 +13,8 @@ License|/fdl]]."]]"""]] Just like any 32bit OS without bad tricks, GNU Mach does not cope well with lots of memory. Latest versions of the Debian `gnumach` package will limit themselves -to around 1.7 GiB of memory. If you want more, you can twiddle the VM_MAX_ADDRESS -limit between kernelland and userland in i386/include/mach/i386/vm_param.h. +to around 1.7 GiB of memory. If you want more, you can twiddle the `VM_MAX_ADDRESS` +limit between kernelland and userland in `i386/include/mach/i386/vm_param.h`. If you have an older version, or still experience problems with `vmstat` (see above) reported much less memory than you have, the best is to limit the memory diff --git a/faq/release.mdwn b/faq/release.mdwn index d80c6825..878a476f 100644 --- a/faq/release.mdwn +++ b/faq/release.mdwn @@ -12,4 +12,4 @@ is included in the section entitled Next year. -Save that, read about the Hurd's [[status]]. +Save that, read about the Hurd's [[hurd/status]]. diff --git a/hurd/running/debian/after_install.mdwn b/hurd/running/debian/after_install.mdwn index 72ea70a9..d3d32a6f 100644 --- a/hurd/running/debian/after_install.mdwn +++ b/hurd/running/debian/after_install.mdwn @@ -14,4 +14,4 @@ you. See [[GRUB]]'s page for this. # Setup `apt-get` Installing packages without having a network connection is described -[[Distrib/DebianAptOffline]]. +[[DebianAptOffline]]. -- cgit v1.2.3 From 90ed55364e8d55f5987ca03c6c2f7ea3bc31f767 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Fri, 15 Mar 2013 18:09:09 +0100 Subject: add 64bit status --- faq/64bit.mdwn | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 faq/64bit.mdwn diff --git a/faq/64bit.mdwn b/faq/64bit.mdwn new file mode 100644 index 00000000..5b899b55 --- /dev/null +++ b/faq/64bit.mdwn @@ -0,0 +1,17 @@ +[[!meta copyright="Copyright © 2013 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="Is there a 64bit version?"]] + +There are currently no plan for 64bit userland, but there are plans for 64bit +kernelland + 32bit userland, which will notably permit to efficiently make use +of more than 2GiB memory and provide 4GiB userland addressing space. Work on +this is currently in branches in GNU Mach. -- cgit v1.2.3 From 5f6f4a63ae65132329da6e199b98a475b034cee2 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Fri, 15 Mar 2013 21:17:54 +0100 Subject: various small changes, most in translators --- faq/hurd_console.mdwn | 2 +- hurd/translator.mdwn | 8 ++++---- hurd/translator/cvsfs.mdwn | 18 +++++++++++++----- hurd/translator/gopherfs.mdwn | 2 +- hurd/translator/netio.mdwn | 2 +- hurd/translator/nfs.mdwn | 2 +- hurd/translator/procfs.mdwn | 1 - hurd/translator/smbfs.mdwn | 16 ++++++++++++++++ hurd/translator/tarfs.mdwn | 2 +- hurd/translator/unionfs.mdwn | 7 +++++-- hurd/translator/wishlist_1.mdwn | 4 +--- hurd/translator/wishlist_2.mdwn | 20 ++++---------------- 12 files changed, 48 insertions(+), 36 deletions(-) create mode 100644 hurd/translator/smbfs.mdwn diff --git a/faq/hurd_console.mdwn b/faq/hurd_console.mdwn index 5cccc83c..cb2de2c0 100644 --- a/faq/hurd_console.mdwn +++ b/faq/hurd_console.mdwn @@ -10,4 +10,4 @@ is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] Edit `/etc/default/hurd-console` to configure the Hurd console. -See [[console]] for further information about the Hurd console. +See [[hurd/console]] for further information about the Hurd console. diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index e0baf130..c70279f7 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -107,7 +107,6 @@ The [[concept|concepts]] of translators creates its own problems, too: # Translators Being Under Development * [[random]] -* [[emailfs]] -- email as a filesystem * [[cvsfs]] * [[tmpfs]] * [[procfs]] @@ -115,6 +114,7 @@ The [[concept|concepts]] of translators creates its own problems, too: * [[netio]] * [[tarfs]] * [[gopherfs]] +* [[smbfs]] * ... # Translators (only) in Hurdextras @@ -123,13 +123,11 @@ The [[concept|concepts]] of translators creates its own problems, too: * [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) +* [memfs](http://www.nongnu.org/hurdextras/#memfs) * [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) * [xmlfs](http://www.nongnu.org/hurdextras/#xmlfs) * [mboxfs](http://www.nongnu.org/hurdextras/#mboxfs) @@ -140,6 +138,8 @@ The [[concept|concepts]] of translators creates its own problems, too: * [[wishlist_2]] * [[open_issues/network_file_system_by_just_forwarding_RPCs]] * [[libguestfs]] + * [[devfs]] + * [[emailfs]] -- email as a filesystem # Internally diff --git a/hurd/translator/cvsfs.mdwn b/hurd/translator/cvsfs.mdwn index f5f1a9e0..03b49219 100644 --- a/hurd/translator/cvsfs.mdwn +++ b/hurd/translator/cvsfs.mdwn @@ -21,10 +21,13 @@ would be to check out the whole tree and deleting it after using. ## Step by Step process in installing cvsfs -Download and prepare the source files from the CVS repositiory and build them. +Download and prepare the source files from the [[source_repositories/incubator]] +repository and build them. - $ cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/hurdextras co cvsfs - $ cd cvsfs/ + $ git clone git://git.savannah.gnu.org/hurd/incubator.git + $ cd incubator/ + $ git branch -t cvsfs origin/cvsfs/master + $ git checkout cvsfs $ autoreconf -i $ ./configure $ make @@ -35,10 +38,10 @@ Set up the translator and start grazing. $ mkdir -p cvsfs_test $ settrans -a cvsfs_test /hurd/cvsfs cvs.sourceforge.net /cvsroot/projectname modulename -Example to mount the cvsfs module on hurdextras to a local directory. +Example to mount the memfs module on hurdextras to a local directory. $ mkdir cvs.d - $ settrans -ac cvs.d/cvsfs /hurd/cvsfs cvs.savannah.nongnu.org sources/hurdextras cvsfs + $ settrans -ac cvs.d/cvsfs /hurd/cvsfs cvs.savannah.nongnu.org sources/hurdextras memfs Now change to that directory and start using ls, emacs, and whatever you feel like. :-) @@ -50,3 +53,8 @@ Happy Hacking. * * + +### Old version at Berlios + +A read-only version has been written by Stefan Siegl and was available at +[Berlios](http://cvs.berlios.de/cgi-bin/viewcvs.cgi/cvsfs4hurd/cvsfs/). diff --git a/hurd/translator/gopherfs.mdwn b/hurd/translator/gopherfs.mdwn index 6c32430f..53e3ef4e 100644 --- a/hurd/translator/gopherfs.mdwn +++ b/hurd/translator/gopherfs.mdwn @@ -13,4 +13,4 @@ License|/fdl]]."]]"""]] # Source -incubator, gopherfs/master +[[source_repositories/incubator]], gopherfs/master diff --git a/hurd/translator/netio.mdwn b/hurd/translator/netio.mdwn index aca9cd69..dce7897f 100644 --- a/hurd/translator/netio.mdwn +++ b/hurd/translator/netio.mdwn @@ -14,4 +14,4 @@ filesystem. # Source -incubator, netio/master +[[source_repositories/incubator]], netio/master diff --git a/hurd/translator/nfs.mdwn b/hurd/translator/nfs.mdwn index 81372204..8e33a55b 100644 --- a/hurd/translator/nfs.mdwn +++ b/hurd/translator/nfs.mdwn @@ -10,7 +10,7 @@ License|/fdl]]."]]"""]] Translator acting as a NFS client. -Only NFSv2/v3 is currentl supported. +Only NFSv2/v3 is currently supported. [[!tag open_issue_hurd]]There are a few unmerged changes on a former GSoC project's topic-branch. diff --git a/hurd/translator/procfs.mdwn b/hurd/translator/procfs.mdwn index cccce0b7..492f9510 100644 --- a/hurd/translator/procfs.mdwn +++ b/hurd/translator/procfs.mdwn @@ -37,7 +37,6 @@ Testing it is as simple as this: $ git clone git://git.savannah.gnu.org/hurd/procfs.git $ cd procfs/ - $ git checkout master $ make $ settrans -ca proc procfs --compatible $ ls -l proc/ diff --git a/hurd/translator/smbfs.mdwn b/hurd/translator/smbfs.mdwn new file mode 100644 index 00000000..85a28a2b --- /dev/null +++ b/hurd/translator/smbfs.mdwn @@ -0,0 +1,16 @@ +[[!meta copyright="Copyright © 2013 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]]."]]"""]] + +`smbfs` is a virtual filesystem allowing you to mount Samba shares. + + +# Source + +[[source_repositories/incubator]], smbfs/master diff --git a/hurd/translator/tarfs.mdwn b/hurd/translator/tarfs.mdwn index e25e3255..06fda5c7 100644 --- a/hurd/translator/tarfs.mdwn +++ b/hurd/translator/tarfs.mdwn @@ -22,4 +22,4 @@ stores. # Source -incubator, tarfs/master +[[source_repositories/incubator]], tarfs/master diff --git a/hurd/translator/unionfs.mdwn b/hurd/translator/unionfs.mdwn index 2b692cf9..2bebf32d 100644 --- a/hurd/translator/unionfs.mdwn +++ b/hurd/translator/unionfs.mdwn @@ -9,6 +9,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]]."]]"""]] +[[!tag stable_URL]] + # `unionfs` *Unionfs allows you to simply union one directory or translator into another one, so you see the files of both of them side by side.* @@ -154,7 +156,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) + * Linux' overlay file system proposals: + [2010-09-20](http://thread.gmane.org/gmane.linux.kernel/1038413), + [2013-03-12](http://lkml.indiana.edu/hypermail/linux/kernel/1303.1/02231.html). How is this different? diff --git a/hurd/translator/wishlist_1.mdwn b/hurd/translator/wishlist_1.mdwn index 36290883..04e7ecac 100644 --- a/hurd/translator/wishlist_1.mdwn +++ b/hurd/translator/wishlist_1.mdwn @@ -9,8 +9,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]]."]]"""]] -* [[devfs]] - * FUSE(fuse.sourceforge.net/) compatilbility library. : just modify FUSE apps a and compile little to work as translator :-) * File Finder. (uses find, grep, a combination or a custom command (htdig, mp3 info) @@ -56,7 +54,7 @@ is included in the section entitled * Flexi-acls * First of all - Can this be done? : A translator bound to a directory must be able to access the contents of the directory which would have been accessible in the absence of the translator.. - * This will enable to wirte translators that can implement custom "Access Control Lists". Just imagine having advanced ACLs even if underlying FileSystem is dumb! Imagine changing the type of ACLs implemented with Just two commands - one to unattach previous translator and the next to attach a different ACL translator! The ACLs themselves may be stored in a different directory + * This will enable to write translators that can implement custom "Access Control Lists". Just imagine having advanced ACLs even if underlying FileSystem is dumb! Imagine changing the type of ACLs implemented with Just two commands - one to unattach previous translator and the next to attach a different ACL translator! The ACLs themselves may be stored in a different directory * The translator manager! * Some translators will need to be inserted automatically - like for eg: hardware drivers .. diff --git a/hurd/translator/wishlist_2.mdwn b/hurd/translator/wishlist_2.mdwn index 77f39644..ab4d26ea 100644 --- a/hurd/translator/wishlist_2.mdwn +++ b/hurd/translator/wishlist_2.mdwn @@ -12,7 +12,7 @@ A translator which produces a directory of \*.wav files when you have an audio C This translator could be a sub-directory of the Audio\_cdfs translator and it would translate the \*.wav files into Ogg Vorbis/MP3 format. -## CDDB +## CDDB Of course it would be a lot nicer if the above two translators didn't name their files something worthless like track001.ogg. So we would want a translator which would hook up with a database on the web and produce meaningful file names. @@ -24,15 +24,7 @@ A cryptographic/steganographic seem like a nice match with the concept of user-l All of the empty space on your drive is now being wasted. Why not have a revision control translator which tracks changes to your documents? See also [this guy](http://www.linuxjournal.com/article.php?sid=5976). And then you'd do something like `cd /time-machine/2003/sept/14/` to see what your system looked like on the 14th of septempber 2003. -## CVSFS - -See [cvsFS for Linux](http://cvsfs.sourceforge.net/). This provides a package which presents the CVS contents as mountable file system. It allows to view the versioned files as like they were ordinary files on a disk. There is also a possibility to check in/out some files for editing. A read-only version has been written by Stefan Siegl and is available at [Berlios](http://cvs.berlios.de/cgi-bin/viewcvs.cgi/cvsfs4hurd/cvsfs/). - -## tar and gzip - -Rumor has it that they are on the way. Actually, a tar + gzip/bzip2 translator does exist (although it hasn't been used much...) : see [the Hurdextras project](http://savannah.nongnu.org/projects/hurdextras/) on Savannah. - -## ROM +## ROM How about a translator which makes it look like you can write to read only media (like CDs), or change files which I don't have permission to change. This translator would make it seem like you could copy files to places where you normally couldn't. Think about combining this translator with the ftp translator and the tar and gzip translators. (cd /ftp/gnu.org/gnome.tar.gz/writes\_allowed; make install). It could be that unionfs does this very thing. @@ -88,7 +80,7 @@ Am I off my rocker, or does an IMAP/POP translator sound like a good idea? It wo *Definitely: Copy my email in there to send it.* -- [[ArneBab|community/weblogs/ArneBab]] -## UUEncode +## UUEncode How about a UUEncode translator for those places you can only store ASCII. Combine this with a NNTP translator and store your data in someone's Usenet archive. Or since, (as far as I know), there are no size limitations on file names in the Hurd, why not have a filesystem translator whose underlying store is a file name. (Now ls becomes cat). @@ -171,14 +163,10 @@ A [bridging](http://bridge.sourceforge.net/faq.html) translator could improve th Perhaps Linux's bridging code and [utilities](http://bridge.sourceforge.net/) can be ported (or glued in) or code from one of the BSDs. -## SSH translator +## SSH translator Presenting remote file systems through SSH similar to what gnome-vfs does. -## SMB translator - -Presenting remote file systems through Samba similar to what gnome-vfs does. Guiseppe Scrivano has worked on this and smbfs is available at [hurdextras](http://savannah.nongnu.org/cgi-bin/viewcvs/hurdextras/smbfs/). - ## Crontab translator Presenting a user's crontab in a filesystem where cron entries are files. -- cgit v1.2.3 From 7674ea1101a508e65b59b717d549c30b81c8a18e Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Fri, 15 Mar 2013 23:38:52 +0100 Subject: more changes --- hurd/building.mdwn | 13 +++++------ hurd/translator/cvsfs.mdwn | 6 +----- source_repositories/incubator.mdwn | 44 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 11 deletions(-) diff --git a/hurd/building.mdwn b/hurd/building.mdwn index c0d5648c..623e7c0a 100644 --- a/hurd/building.mdwn +++ b/hurd/building.mdwn @@ -28,7 +28,7 @@ git](http://savannah.gnu.org/git/?group=hurd): $ apt-get source hurd -Please see the Debian [[running/debian/FAQ]] before using `apt-get source`. +Please see the 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. @@ -54,12 +54,12 @@ package: Change into the directory with the downloaded / unpacked Hurd sources, e.g. - $ cd hurd-[TODO] + $ cd hurd-VERSION 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 + $ debian/rules patch Then edit and change whatever files you want and finally start the build process with @@ -75,13 +75,14 @@ The Hurd has to be built in a separate directory: $ mkdir hurd-build $ cd hurd-build - $ [...]/hurd-[TODO]/configure --disable-profile + $ [...]/hurd-VERSION/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.] +or `/local/`, so your current Hurd servers will be replaced. +To install to a different location, specify `--prefix=PREFIX` as `configure` +parameter, e.g. `--prefix=/usr` (as done when having a real `/usr`). 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 diff --git a/hurd/translator/cvsfs.mdwn b/hurd/translator/cvsfs.mdwn index 03b49219..bef481a2 100644 --- a/hurd/translator/cvsfs.mdwn +++ b/hurd/translator/cvsfs.mdwn @@ -22,12 +22,8 @@ would be to check out the whole tree and deleting it after using. ## Step by Step process in installing cvsfs Download and prepare the source files from the [[source_repositories/incubator]] -repository and build them. +repository, branch `cvsfs/master`; then build them: - $ git clone git://git.savannah.gnu.org/hurd/incubator.git - $ cd incubator/ - $ git branch -t cvsfs origin/cvsfs/master - $ git checkout cvsfs $ autoreconf -i $ ./configure $ make diff --git a/source_repositories/incubator.mdwn b/source_repositories/incubator.mdwn index 51f64c17..0243b597 100644 --- a/source_repositories/incubator.mdwn +++ b/source_repositories/incubator.mdwn @@ -10,3 +10,47 @@ License|/fdl]]."]]"""]] There is a repository for *this*, and *that*, and *everything* -- the *incubator*: . + +As the `README` file in the `master` branch says, the development of the +various software happens in separate branches. + +## Handling branches with `git-new-workdir` + +`git-new-workdir` is a contrib script provided with the git distribution +(on Debian systems, in `/usr/share/doc/git/contrib/workdir/git-new-workdir`); +it allows to create a new subrepository of a git repository, tracking one of +its branches, usually as a subdirectory of the current repository. + +The advantage of using it for `incubator` is that only one clone is needed, +and it can be possible to work simultaneously on many branches (instead of +only on the current branch of that clone). +The drawback is that updating a subrepository requires updating its branch +on the main clone first. + +Let's start checking out the `incubator` repository: + + $ git clone git://git.savannah.gnu.org/hurd/incubator.git + $ cd incubator/ + +Assuming we now want to follow the development of the `tarfs/master` branch: +we follow this branch: + + $ git branch -t tarfs/master origin/tarfs/master + +Then now setup a local subrepository `tarfs` following it; we will create it +as subdirectory of `incubator` (first parameter for `git-new-workdir`) for +simplicity, but can be created anywhere else: + + $ git-new-workdir . tarfs tarfs/master + +After this, a new `tarfs` subdirectory appears, which represents the +`tarfs/master` branch. You can normally work on this new repository as usual. + +As said earlier, updating `tarfs` requires fetching/pulling in `incubator` +first: + + $ cd incubator/ + incubator$ git pull/fetch + incubator$ cd tarfs/ + tarfs$ git pull/fetch + -- cgit v1.2.3 From e54db727e9d92128b8df23a0dcf7daeab4976936 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sat, 16 Mar 2013 18:16:08 +0100 Subject: merge the two translator wishlist pages into a single one --- hurd/translator.mdwn | 3 +- hurd/translator/wishlist.mdwn | 320 ++++++++++++++++++++++++++++++++++++++++ hurd/translator/wishlist_1.mdwn | 127 ---------------- hurd/translator/wishlist_2.mdwn | 189 ------------------------ 4 files changed, 321 insertions(+), 318 deletions(-) create mode 100644 hurd/translator/wishlist.mdwn delete mode 100644 hurd/translator/wishlist_1.mdwn delete mode 100644 hurd/translator/wishlist_2.mdwn diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index c70279f7..b04a5944 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -134,12 +134,11 @@ The [[concept|concepts]] of translators creates its own problems, too: # Translator Wishlists - * [[wishlist_1]] - * [[wishlist_2]] * [[open_issues/network_file_system_by_just_forwarding_RPCs]] * [[libguestfs]] * [[devfs]] * [[emailfs]] -- email as a filesystem + * [[general wishlist of stuff not listed above|wishlist]] # Internally diff --git a/hurd/translator/wishlist.mdwn b/hurd/translator/wishlist.mdwn new file mode 100644 index 00000000..70af27f2 --- /dev/null +++ b/hurd/translator/wishlist.mdwn @@ -0,0 +1,320 @@ +[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +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]]."]]"""]] + +## Introduction + +The idea behind file system translators is a powerful concept which hasn't recieved much attention in the mainstream computing world. So here is a list of interesting translators I've been able to dream up. I'm sure there are many more ideas floating around out there, so add them to the list! + +The [ferris project](http://witme.sourceforge.net/libferris.web/features.html) has some great ideas and code in the area of userspace dynamic filesystems, as has the [FUSE project](http://fuse.sourceforge.net/). + +## FUSE ([fuse.sourceforge.net](http://fuse.sourceforge.net)) compatibility library + +Just modify FUSE apps a and compile little to work as translator :-) + +## File Finder (uses find, grep, a combination or a custom command (htdig, mp3 info) + * Files found will be available under one directory and then can be used like a normal directory + * usefull to generate Albums, Share only resulting files over the et, etc.. + * The filefinder can be scheduled or can be connected over some ipc like dbus to the VFS system if any to keep a watch for new files. + +## GNOKII, BitPim and openobex as translators + * grep through your SMSs! + * share your addressbook! + * "Attach" that funny SMS/MMS to your email. + * "svn commit" your joke collection :-D + +## Real Language Translator [[br]] + + $ cat /usr/translator/de-en/usr/share/doc/something.txt + +this should take `/usr/share/doc/something.txt`, submit it to google's website and bring back results. + +## Mozilla Bookmarks = del.ici.ous + +Need more explanation? ;-) + +## + * having a directory structure for a file can allow to "svn commit" the hnb document in a more "node-safe" manner, thus allowing multiple people to work on the same hnb document. + * This must be fairly easy as HNB can already export to XML and XMLfs already exists. + +## DavFS + +Just setup a 'WebDav share' as a directory. The implementation of the protocol is already available in nautilus and konqueror. + +## Compiled form of your project + * you have your project in /somedir/project with source in /somedir/project/src .. /somedir/project/bin should always have the compiled version.. is it possible? + * The source has to have a MakeFile. + * creating /somedir/project/bin-somearch should aotomatically crosscompile + * Seems feasible for a small project. + +## Report generation FrameWork - an idea to be hugged by app developers..not kernel developers. + * You have financial data in some Spreadsheet like format in /yourFinance directory + * You add report templates to /yourFinance/repTemplates + * Once you save data in /yourFinance the next cat /yourFinance/reports/areportname will give you an uptodate report. + * This will be usefull for any purpose including serving by static page web servers, sharing over samba/nfs/ftp etc.! + * The advantage is any save to the spreadsheet will update the report.. not just from one software. + +## SVN (Subversion) + * like [[cvsfs]]. /svndir/version/version-no should automatically have subversion + * I think it is nice to write a generalised version control system framework library which will help in writing version control translators and other tools easily. + +## Flexi-acls + * First of all - Can this be done? : A translator bound to a directory must be able to access the contents of the directory which would have been accessible in the absence of the translator.. + * This will enable to write translators that can implement custom "Access Control Lists". Just imagine having advanced ACLs even if underlying FileSystem is dumb! Imagine changing the type of ACLs implemented with Just two commands - one to unattach previous translator and the next to attach a different ACL translator! The ACLs themselves may be stored in a different directory + +## The translator manager! + * Some translators will need to be inserted automatically - like for eg: hardware drivers .. + * Each hardware translator will pubish its capabilities. + * The "top" translator will query the capabilities of different hardware and match capabilities with the "slave" translators. That is it's only Job. + * The control is then handed over to the slave translator. + * The ranking not only looks who can handle the "most" capabilites of the hardware. If it finds that multiple translators can handle the same hardware, It will use other parameters to choose between them.. like may be the size in memory? The revision date? Stability (inferred from version number)? And to go to the extreme, the profiling data of the driver ;-P + * Advantage : The best driver wins! + +### An example -- skip it if you understood the above :-) + * You have a driver that can handle VGA + SVGA + Super3d acceleration + Particle graphics + Works for nvidea card. + * You have a driver that can handle SVGA + VGA . + * You have a driver that can handle VGA. + * Case 1: Your card: A VGA card with some extra fonts.. + * First the VGA driver will be quireied .. ok can handle essential capability. + * Next SVGA driver: can handle but has extra module.. unnecassary weight . + * The Nvidia driver: can handle , but again unnecassary weight : ruled out. + * Winner : VGA driver: + * Case 2: Your card An SVGA card: + * First the VGA driver will be quireied .. ok can handle one essential capability. + * Next SVGA driver: can handle essential and one extra capability no extra weight.. + * The Nvidia driver: can handle , but unnecassary weight : ruled out. + * Winner : SVGA driver.. + * Case 3 : You have an VGA .. but no VGA driver .. then the SVGA driver would win. + +## Sound Server + * /ahsa - stands for Advanced HURD sound architecture :-) Just a temporary name .. for fun. + * /ahsa/out - directory wich will hold "plug"s where apllications come and join the server .. see below. + * /ahsa/out/mixer - main mixer + * /ahsa/out/nextfree - the file when "cat"ed gives the number of the next free plug + * /ahsa/plugins/ - info about available plugins + * /ahsa/out/[1..n]/ - dynamically generated directories for applications to plug on.. + * /ahsa/out/[1..n]/data this is where you should do a "cat somerawsoundfile>/ahsa/out/`cat /ahsa/nextfree`/data" + * /ahsa/out/[1..n]/plugins - the plugin stack .. volume is also a plugin.. + * /ahsa/out/[1..n]/plugins/[1..m]/ - echo "plugin param1 param2 param3" > /ahsa/out/[1..n]/plugins/`cat /ahsa/out/[1..n]/plugins/nextfree`/add + * /ahsa/out/[1..n]/plugins/[1..m]/params/{param1.. paramn} + * /ahsa/out/[1..n]/data.out - can be catted to get data processed through the server + * /ahsa/in - similar to /ahsa/out .. with except for an extra file to choose input devices. + * /ahsa/devs/{1..n} - devices detected .. can be dynamic .. there are usb soundcards and and midi devices. + * /ahsa/out/[1..n]/plugins/[1..m]/0/params/dev + * Dont get tempted for :/ahsa/out/[1..n]/params/{rate, channels, and other stuff} + * that goes into /ahsa/out/[1..n]/plugins/0/params if /ahsa/out/[1..n]/plugins/0/detected == "headerless audio" + * There are a lot more things I can continue about the "sound server" .. The Ideas simply dont seem to exhaust.. + * Some features/advantages + * set output's translator plugin as ordinary text -- have text to speech conversion done by sound server! + * Create and apply plugin presets by simply copying directories! + * Me getting dizzy thinking of the zillion more advantages. + * If you are really doing some ordinary output , all you need to do is "cat" data into next free "plug" and everything will be autodetected including the format of the data and sent to the final sound "merge"r + * Dizzy ... + +## /usr/share/menu !!!! extension for package management idea + * cat mymenuitem.menu >> /usr/share/menu/menu + * cat /usr/share/menu/debian/kde ... :-) + +## Spam/Malware Control + * `/usr/antimalware/` - put your mail here.. it will automatically be scanned. when finished it will vanish from here ... + * `/usr/antimalware/clean` - ... and pop out from here + * `/usr/antimalware/malware` - ... or here. + +## NetDevice + * !JustImagine(tm)... settrans -ac /netdevices /hurd/netdevfs - [ host | net ] + * One can access device files remotely + * This could be acheived by allowing translators talk to one another over a network + * This will need translators to catch and handle ioctls (if there is such a thing in HURD). + * The device server which will listen to requests from the translators can be run even on a Linux machine!!! + * !JustImagine(tm)... accessing the crwriter/webcam on that GNU/Linux machine on the network using cdrecord of your local hurd machine! + * !JustImagine(tm)... running GNU/HURD on a minimalistic GNU/Linux(but with all the drivers) through a specially modified and optimised Qemu. The device server runs on the host machine, and the client translators access over the virtual network created by Qemu. You got most of the drivers for free! + +## Emacs File VFS + * I came to know from my Emacs loving friend that there are lots of VFS handlers in Emacs.. I was wondering if there can be translator which can tap into these Emacs VFS handlers. + +## Audiocdfs + +A translator which produces a directory of \*.wav or \*.ogg files when you have an audio CD in the drive. + +## CDDB + +Of course it would be a lot nicer if the above translator didn't name its files something worthless like track001.ogg. So we would want a translator which would hook up with a database on the web and produce meaningful file names. + +## Crypto + +A cryptographic/steganographic seem like a nice match with the concept of user-land file systems. I like the idea of something like `settrans -a /secure stegfs --mpeg file001.mpg` + +## Revision control + +All of the empty space on your drive is now being wasted. Why not have a revision control translator which tracks changes to your documents? See also [this guy](http://www.linuxjournal.com/article.php?sid=5976). And then you'd do something like `cd /time-machine/2003/sept/14/` to see what your system looked like on the 14th of septempber 2003. + +## ROM + +How about a translator which makes it look like you can write to read only media (like CDs), or change files which I don't have permission to change. This translator would make it seem like you could copy files to places where you normally couldn't. Think about combining this translator with the ftp translator and the tar and gzip translators. (`cd /ftp/gnu.org/gnome.tar.gz/writes\_allowed; make install`). It could be that [[unionfs]] does this very thing. + +## Super\_FIFO + +It's like a named pipe which is smart enough to start a process everytime something new tries to read from it. For example, let's say I have a script that reads in a JPEG image and spits out a smaller thumbnail \*.jpg to STDOUT. With a standard fifo (`mknod -p fifo`) this would almost works (`script big.jpg > fifo`). But what if there are two processes trying to read the fifo at once? Ick. And of course the standard way only works once without rerunning the command. I'm not quite sure what the syntax should look like, but I'm sure someone out there has a great idea waiting to happen. + +## Perl + +Perl is a wonderful language for hacking together something useful in a short amount of time. No concept is complete without being able to use it in a perl one-liner. And that goes for Hurd translators too. Right? + + #!/usr/bin/perl + use Hurd::translator; + + #file named "two" can produce an endless supply of twos, etc. (a la /dev/zero) + my $i=0; + for $filename ([zero one two three four]) + { + $libtrivfsread_codehash{$filename}= + sub{ $num_bytes=shift; my $data=$i; return chr($data) x $num_bytes; }; + #that's a hash of references to closures + $i++; + } + translator_startup(); + +A Perl translator has been started by [John Edwin Tobey](http://john-edwin-tobey.org/Hurd/) (pith). + +## Source code + +Here's a crazy thought. How about a translator for source code. You have a C source file like `hello.c` which is your normal everyday file. But there's a translator sitting underneath, so when you `cd hello.c` you get a directory with files like `main()` which represent the subroutines in `hello.c`. And of course you should be able to edit/remove those and have it modify the original source. + +## Libraries + +Here's an [idea](http://www.circlemud.org/~jelson/software/fusd/docs/node13.html) from the people making [userspace drivers in Linux](http://www.circlemud.org/~jelson/software/fusd/): + +* "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 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 + +Am I off my rocker, or does an IMAP/POP translator sound like a good idea? It would make your remote mail servers look like local ones. Or what about a translator that makes a mbox format mail spool look like a directory. Can anyone think of a good use for an SMTP translator? + +*Definitely: Copy my email in there to send it.* -- [[ArneBab|community/weblogs/ArneBab]] + +## UUEncode + +How about a UUEncode translator for those places you can only store ASCII. Combine this with a NNTP translator and store your data in someone's Usenet archive. Or since, (as far as I know), there are no size limitations on file names in the Hurd, why not have a filesystem translator whose underlying store is a file name. (Now ls becomes cat). + +## Computation + +This is from the revenge of the command-line department. Make a directory translator whose contents are a result of the computation specified in the directory name. Here's an example... + + $ settrans -a /comp /hurd/computationfs + $ cd "/comp/3+4" + $ ls -l + total 0 + -rw-r--r-- 1 nobody users 0 Oct 16 11:41 7 + $ + $ cd "/comp/sqrt(2)" + $ ls -l + total 0 + -rw-r--r-- 1 nobody users 0 Oct 16 11:42 1.4142135623731 + $ + +...etc. Now think about your favorite GUI HTML editor and using File->Open on the following directory name, ``"/comp/for i in $( find / -name *.html ); do ln -s $i `basename $i`;done"`` Which would produce a directory listing with soft links to all of the \*.html files on your system. You could have all of the comforts of the shell from within that little File->Open dialog box. + +## Other + +Just found Wolfgang J�hrling's translator [wishlist](http://www.8ung.at/shell/trans.html). + +## Bochs + +A translator which works with [Bochs](http://bochs.sourceforge.net/) disk images would be nice. + +## Rollover + +A translator that uses a circular buffer to store log files. The translated node only contains the last N (mega,kilo)bytes. + +## Birthday + +A translator that provides an interface into the birthday program. + +You can cat your calendar, eg. bd/calendar/today bd/calendar/this-week or bd/calendar/this-month. + +And you could write new events into files located in bd/events/DATE/event-name. + +DATE is of the format the birthday expects DD/MM/YYYY. + +The contents of the file are any or none of the following birthday options: ann (An anniversary), bd (A birthday), ev (Some other event), wN (Warn N days in advance of date), toDATE (Event lasts until this DATE), forDAYS (Event runs for DAYS). + +You can optionally just edit the bd/birthdays file if you want to edit the configuration file by hand. It might make sense to write changes from bd/birthdays into ~/.birthdays. + + $ settrans -c bd /hurd/birthday -f ~/.birthdays + $ ls bd/ + birthdays calendar events + $ find bd -print + bd + bd/calendar + bd/calendar/daily + bd/calendar/this-week + bd/calendar/this-month + bd/events + bd/birthdays + $ + +## LVM + +A translator to access block devices from Linux's [Logical Volume Management](http://www.tldp.org/HOWTO/LVM-HOWTO/) would be an useful addition. + + # settrans -cap /dev/VolumeGroup0 /hurd/lvm /dev/PhysicalVolume0 /dev/PhysicalVolume1 ... + # ls /dev/VolumeGroup0/ + home + var + # settrans -cap /home /hurd/ext2fs /dev/VolumeGroup0/home + # settrans -cap /var /hurd/ext2fs /dev/VolumeGroup0/var + +Probably both [LVM2](http://sourceware.org/lvm2/) and the [Device-mapper](http://sourceware.org/dm/) need to be ported. + +## bridging translator + +A [bridging](http://bridge.sourceforge.net/faq.html) translator could improve the Hurd's networking facilities. + + # settrans -cap /dev/br0 /hurd/bridge -i eth0 -i eth1 ... + # settrans -cap /servers/socket/2 /hurd/pfinet -i /dev/br0 -a ... -g ... -m ... + +Perhaps Linux's bridging code and [utilities](http://bridge.sourceforge.net/) can be ported (or glued in) or code from one of the BSDs. + +## SSH translator + +Presenting remote file systems through SSH similar to what gnome-vfs does. + +## Crontab translator + +Presenting a user's crontab in a filesystem where cron entries are files. + +## globlink + +Firmlink to a file according to a filename matching pattern. When a file goes away, the next file that is matched is automatically linked to. + + $ settrans -ac libfoo.so /hurd/globlink '/lib/libfoo*' + +## alphabetfs + +Organize a large group of files by their first letter. Present one subdirectory for each letter in the alphabet. + +## fsysoptsctl + +Send an fsysopts command to a set of translators. When you have a directory full of translators and you want to send each of them the same runtime option, this translator can do it for you. + + $ settrans -ac all /hurd/fsysoptsctl '/tmp/mystuff/*' + $ fsysopts all --update diff --git a/hurd/translator/wishlist_1.mdwn b/hurd/translator/wishlist_1.mdwn deleted file mode 100644 index 04e7ecac..00000000 --- a/hurd/translator/wishlist_1.mdwn +++ /dev/null @@ -1,127 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, -Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -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]]."]]"""]] - -* FUSE(fuse.sourceforge.net/) compatilbility library. : just modify FUSE apps a and compile little to work as translator :-) - -* File Finder. (uses find, grep, a combination or a custom command (htdig, mp3 info) - * Files found will be available under one directory and then can be used like a normal directory - * usefull to generate Albums, Share only resulting files over the et, etc.. - * The filefinder can be scheduled or can be connected over some ipc like dbus to the VFS system if any to keep a watch for new files. - -* GNOKII, BitPim and openobex as translators - * grep through your SMSs! - * share your addressbook! - * "Attach" that funny SMS/MMS to your email. - * "svn commit" your joke collection :-D - -* Real Language Translator [[br]] - * cat /usr/translator/de-en/usr/share/doc/something.txt should take /usr/share/doc/something.txt , submit it to google's website and bring back results. - -* Mozilla Bookmarks = del.ici.ous - * Need more explanation ? ;-) - -* - * having a directory structure for a file can allow to "svn commit" the hnb document in a more "node-safe" manner, thus allowing multiple people to work on the same hnb document. - * This must be fairly easy as HNB can already export to XML and XMLfs already exists. - -* DavFS - * Just setup a 'WebDav share' as a directory. The implimentation of the protocol is already available in nautilus and konqueror. - -* Compiled form of your project - * you have your project in /somedir/project with source in /somedir/project/src .. /somedir/project/bin should always have the compiled version.. is it possible? - * The source has to have a MakeFile. - * creating /somedir/project/bin-somearch should aotomatically crosscompile - * Seems feasible for a small project. - -* Report generation FrameWork - an idea to be hugged by app developers..not kernel developers. - * You have financial data in some Spreadsheet like format in /yourFinance directory - * You add report templates to /yourFinance/repTemplates - * Once you save data in /yourFinance the next cat /yourFinance/reports/areportname will give you an uptodate report. - * This will be usefull for any purpose including serving by static page web servers, sharing over samba/nfs/ftp etc.! - * The advantage is any save to the spreadsheet will update the report.. not just from one software. - -* SVN (Subversion suite) - * like [[cvsfs]]. /svndir/version/version-no should automatically have subversion - * I think it is nice to write a generalised version control system framework library which will help in writing version control translators and other tools easily. - -* Flexi-acls - * First of all - Can this be done? : A translator bound to a directory must be able to access the contents of the directory which would have been accessible in the absence of the translator.. - * This will enable to write translators that can implement custom "Access Control Lists". Just imagine having advanced ACLs even if underlying FileSystem is dumb! Imagine changing the type of ACLs implemented with Just two commands - one to unattach previous translator and the next to attach a different ACL translator! The ACLs themselves may be stored in a different directory - -* The translator manager! - * Some translators will need to be inserted automatically - like for eg: hardware drivers .. - * Each hardware translator will pubish its capabilities. - * The "top" translator will query the capabilities of different hardware and match capabilities with the "slave" translators. That is it's only Job. - * The control is then handed over to the slave translator. - * The ranking not only looks who can handle the "most" capabilites of the hardware. If it finds that multiple translators can handle the same hardware, It will use other parameters to choose between them.. like may be the size in memory? The revision date? Stability (inferred from version number)? And to go to the extreme, the profiling data of the driver ;-P - * Advantage : The best driver wins! - -* An eg. Skip it if you understood the above :-): - * You have a driver that can handle VGA + SVGA + Super3d acceleration + Particle graphics + Works for nvidea card. - * You have a driver that can handle SVGA + VGA . - * You have a driver that can handle VGA. - * Case 1: Your card: A VGA card with some extra fonts.. - * First the VGA driver will be quireied .. ok can handle essential capability. - * Next SVGA driver: can handle but has extra module.. unnecassary weight . - * The Nvidia driver: can handle , but again unnecassary weight : ruled out. - * Winner : VGA driver: - * Case 2: Your card An SVGA card: - * First the VGA driver will be quireied .. ok can handle one essential capability. - * Next SVGA driver: can handle essential and one extra capability no extra weight.. - * The Nvidia driver: can handle , but unnecassary weight : ruled out. - * Winner : SVGA driver.. - * Case 3 : You have an VGA .. but no VGA driver .. then the SVGA driver would win. - -* Sound Server - * /ahsa - stands for Advanced HURD sound architecture :-) Just a temporary name .. for fun. - * /ahsa/out - directory wich will hold "plug"s where apllications come and join the server .. see below. - * /ahsa/out/mixer - main mixer - * /ahsa/out/nextfree - the file when "cat"ed gives the number of the next free plug - * /ahsa/plugins/ - info about available plugins - * /ahsa/out/[1..n]/ - dynamically generated directories for applications to plug on.. - * /ahsa/out/[1..n]/data this is where you should do a "cat somerawsoundfile>/ahsa/out/`cat /ahsa/nextfree`/data" - * /ahsa/out/[1..n]/plugins - the plugin stack .. volume is also a plugin.. - * /ahsa/out/[1..n]/plugins/[1..m]/ - echo "plugin param1 param2 param3" > /ahsa/out/[1..n]/plugins/`cat /ahsa/out/[1..n]/plugins/nextfree`/add - * /ahsa/out/[1..n]/plugins/[1..m]/params/{param1.. paramn} - * /ahsa/out/[1..n]/data.out - can be catted to get data processed through the server - * /ahsa/in - similar to /ahsa/out .. with except for an extra file to choose input devices. - * /ahsa/devs/{1..n} - devices detected .. can be dynamic .. there are usb soundcards and and midi devices. - * /ahsa/out/[1..n]/plugins/[1..m]/0/params/dev - * Dont get tempted for :/ahsa/out/[1..n]/params/{rate, channels, and other stuff} - * that goes into /ahsa/out/[1..n]/plugins/0/params if /ahsa/out/[1..n]/plugins/0/detected == "headerless audio" - * There are a lot more things I can continue about the "sound server" .. The Ideas simply dont seem to exhaust.. - * Some features/advantages - * set output's translator plugin as ordinary text -- have text to speech conversion done by sound server! - * Create and apply plugin presets by simply copying directories! - * Me getting dizzy thinking of the zillion more advantages. - * If you are really doing some ordinary output , all you need to do is "cat" data into next free "plug" and everything will be autodetected including the format of the data and sent to the final sound "merge"r - * Dizzy ... - -* /usr/share/menu !!!! extension for package management idea .. - * cat mymenuitem.menu >> /usr/share/menu/menu - * cat /usr/share/menu/debian/kde ... :-) - -* Spam/Malware Control - * /usr/antimalware/ - put your mail here.. it will automatically be scanned. when finished it will vanish from here .. - * /usr/antimalware/clean - ... and pop out from here - * /usr/antimalware/malware - or here. - -* NetDevice - * !JustImagine(tm)... settrans -ac /netdevices /hurd/netdevfs - [ host | net ] - * One can access device files remotely - * This could be acheived by allowing translators talk to one another over a network - * This will need translators to catch and handle ioctls (if there is such a thing in HURD). - * The device server which will listen to requests from the translators can be run even on a Linux machine!!! - * !JustImagine(tm)... accessing the crwriter/webcam on that GNU/Linux machine on the network using cdrecord of your local hurd machine! - * !JustImagine(tm)... running GNU/HURD on a minimalistic GNU/Linux(but with all the drivers) through a specially modified and optimised Qemu. The device server runs on the host machine, and the client translators access over the virtual network created by Qemu. You got most of the drivers for free! - -* Emacs File VFS - * I came to know from my Emacs loving friend that there are lots of VFS handlers in Emacs.. I was wondering if there can be translator which can tap into these Emacs VFS handlers. diff --git a/hurd/translator/wishlist_2.mdwn b/hurd/translator/wishlist_2.mdwn deleted file mode 100644 index ab4d26ea..00000000 --- a/hurd/translator/wishlist_2.mdwn +++ /dev/null @@ -1,189 +0,0 @@ -## Introduction - -The idea behind file system translators is a powerful concept which hasn't recieved much attention in the mainstream computing world. So here is a list of interesting translators I've been able to dream up. I'm sure there are many more ideas floating around out there, so add them to the list! - -The [ferris project](http://witme.sourceforge.net/libferris.web/features.html) has some great ideas and code in the area of userspace dynamic filesystems, as has the [FUSE project](http://fuse.sourceforge.net/). - -## Audio\_cdfs - -A translator which produces a directory of \*.wav files when you have an audio CD in the drive. - -## Ogg - -This translator could be a sub-directory of the Audio\_cdfs translator and it would translate the \*.wav files into Ogg Vorbis/MP3 format. - -## CDDB - -Of course it would be a lot nicer if the above two translators didn't name their files something worthless like track001.ogg. So we would want a translator which would hook up with a database on the web and produce meaningful file names. - -## Crypto - -A cryptographic/steganographic seem like a nice match with the concept of user-land file systems. I like the idea of something like `settrans -a /secure stegfs --mpeg file001.mpg` - -## Revision control - -All of the empty space on your drive is now being wasted. Why not have a revision control translator which tracks changes to your documents? See also [this guy](http://www.linuxjournal.com/article.php?sid=5976). And then you'd do something like `cd /time-machine/2003/sept/14/` to see what your system looked like on the 14th of septempber 2003. - -## ROM - -How about a translator which makes it look like you can write to read only media (like CDs), or change files which I don't have permission to change. This translator would make it seem like you could copy files to places where you normally couldn't. Think about combining this translator with the ftp translator and the tar and gzip translators. (cd /ftp/gnu.org/gnome.tar.gz/writes\_allowed; make install). It could be that unionfs does this very thing. - -## Super\_FIFO - -It's like a named pipe which is smart enough to start a process everytime something new tries to read from it. For example, let's say I have a script that reads in a JPEG image and spits out a smaller thumbnail \*.jpg to STDOUT. With a standard fifo (`mknod -p fifo`) this would almost works (`script big.jpg > fifo`). But what if there are two processes trying to read the fifo at once? Ick. And of course the standard way only works once without rerunning the command. I'm not quite sure what the syntax should look like, but I'm sure someone out there has a great idea waiting to happen. - -## Perl - -Perl is a wonderful language for hacking together something useful in a short amount of time. No concept is complete without being able to use it in a perl one-liner. And that goes for Hurd translators too. Right? - - #!/usr/bin/perl - use Hurd::translator; - - #file named "two" can produce an endless supply of twos, etc. (a la /dev/zero) - my $i=0; - for $filename ([zero one two three four]) - { - $libtrivfsread_codehash{$filename}= - sub{ $num_bytes=shift; my $data=$i; return chr($data) x $num_bytes; }; - #that's a hash of references to closures - $i++; - } - translator_startup(); - -A Perl translator has been started by [John Edwin Tobey](http://john-edwin-tobey.org/Hurd/) (pith). - -## Source code - -Here's a crazy thought. How about a translator for source code. You have a C source file like `hello.c` which is your normal everyday file. But there's a translator sitting underneath, so when you `cd hello.c` you get a directory with files like `main()` which represent the subroutines in `hello.c`. And of course you should be able to edit/remove those and have it modify the original source. - -## Libraries - -Here's an [idea](http://www.circlemud.org/~jelson/software/fusd/docs/node13.html) from the people making [userspace drivers in Linux](http://www.circlemud.org/~jelson/software/fusd/): - -* "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 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 - -Am I off my rocker, or does an IMAP/POP translator sound like a good idea? It would make your remote mail servers look like local ones. Or what about a translator that makes a mbox format mail spool look like a directory. Can anyone think of a good use for an SMTP translator? - -*Definitely: Copy my email in there to send it.* -- [[ArneBab|community/weblogs/ArneBab]] - -## UUEncode - -How about a UUEncode translator for those places you can only store ASCII. Combine this with a NNTP translator and store your data in someone's Usenet archive. Or since, (as far as I know), there are no size limitations on file names in the Hurd, why not have a filesystem translator whose underlying store is a file name. (Now ls becomes cat). - -## Computation - -This is from the revenge of the command-line department. Make a directory translator whose contents are a result of the computation specified in the directory name. Here's an example... - - $ settrans -a /comp /hurd/computationfs - $ cd "/comp/3+4" - $ ls -l - total 0 - -rw-r--r-- 1 nobody users 0 Oct 16 11:41 7 - $ - $ cd "/comp/sqrt(2)" - $ ls -l - total 0 - -rw-r--r-- 1 nobody users 0 Oct 16 11:42 1.4142135623731 - $ - -...etc. Now think about your favorite GUI HTML editor and using File->Open on the following directory name, ``"/comp/for i in $( find / -name *.html ); do ln -s $i `basename $i`;done"`` Which would produce a directory listing with soft links to all of the \*.html files on your system. You could have all of the comforts of the shell from within that little File->Open dialog box. - -## Other - -Just found Wolfgang J�hrling's translator [wishlist](http://www.8ung.at/shell/trans.html). - -## Bochs - -A translator which works with [Bochs](http://bochs.sourceforge.net/) disk images would be nice. - -## Rollover - -A translator that uses a circular buffer to store log files. The translated node only contains the last N (mega,kilo)bytes. - -## Birthday - -A translator that provides an interface into the birthday program. - -You can cat your calendar, eg. bd/calendar/today bd/calendar/this-week or bd/calendar/this-month. - -And you could write new events into files located in bd/events/DATE/event-name. - -DATE is of the format the birthday expects DD/MM/YYYY. - -The contents of the file are any or none of the following birthday options: ann (An anniversary), bd (A birthday), ev (Some other event), wN (Warn N days in advance of date), toDATE (Event lasts until this DATE), forDAYS (Event runs for DAYS). - -You can optionally just edit the bd/birthdays file if you want to edit the configuration file by hand. It might make sense to write changes from bd/birthdays into ~/.birthdays. - - $ settrans -c bd /hurd/birthday -f ~/.birthdays - $ ls bd/ - birthdays calendar events - $ find bd -print - bd - bd/calendar - bd/calendar/daily - bd/calendar/this-week - bd/calendar/this-month - bd/events - bd/birthdays - $ - -## LVM - -A translator to access block devices from Linux's [Logical Volume Management](http://www.tldp.org/HOWTO/LVM-HOWTO/) would be an useful addition. - - # settrans -cap /dev/VolumeGroup0 /hurd/lvm /dev/PhysicalVolume0 /dev/PhysicalVolume1 ... - # ls /dev/VolumeGroup0/ - home - var - # settrans -cap /home /hurd/ext2fs /dev/VolumeGroup0/home - # settrans -cap /var /hurd/ext2fs /dev/VolumeGroup0/var - -Probably both [LVM2](http://sourceware.org/lvm2/) and the [Device-mapper](http://sourceware.org/dm/) need to be ported. - -## bridging translator - -A [bridging](http://bridge.sourceforge.net/faq.html) translator could improve the Hurd's networking facilities. - - # settrans -cap /dev/br0 /hurd/bridge -i eth0 -i eth1 ... - # settrans -cap /servers/socket/2 /hurd/pfinet -i /dev/br0 -a ... -g ... -m ... - -Perhaps Linux's bridging code and [utilities](http://bridge.sourceforge.net/) can be ported (or glued in) or code from one of the BSDs. - -## SSH translator - -Presenting remote file systems through SSH similar to what gnome-vfs does. - -## Crontab translator - -Presenting a user's crontab in a filesystem where cron entries are files. - -## globlink - -Firmlink to a file according to a filename matching pattern. When a file goes away, the next file that is matched is automatically linked to. - - $ settrans -ac libfoo.so /hurd/globlink '/lib/libfoo*' - -## alphabetfs - -Organize a large group of files by their first letter. Present one subdirectory for each letter in the alphabet. - -## fsysoptsctl - -Send an fsysopts command to a set of translators. When you have a directory full of translators and you want to send each of them the same runtime option, this translator can do it for you. - - $ settrans -ac all /hurd/fsysoptsctl '/tmp/mystuff/*' - $ fsysopts all --update -- cgit v1.2.3 From 5d0f6782028c754b2c0a5721d14b8c76b47d31db Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sat, 16 Mar 2013 18:59:24 +0100 Subject: drop the pthread conversion project it has been done recently --- community/gsoc/project_ideas.mdwn | 1 - .../gsoc/project_ideas/language_bindings.mdwn | 12 ------ community/gsoc/project_ideas/pthreads.mdwn | 49 ---------------------- news/2010-09.mdwn | 4 +- open_issues/libpthread.mdwn | 12 ------ 5 files changed, 2 insertions(+), 76 deletions(-) delete mode 100644 community/gsoc/project_ideas/pthreads.mdwn diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index e3d2700d..9fd851cd 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -86,7 +86,6 @@ other: language_bindings, gnat, gccgo, perl_python. --> [[!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/pthreads" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/smp" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/sound" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/disk_io_performance" show=0 feeds=no actions=yes]] diff --git a/community/gsoc/project_ideas/language_bindings.mdwn b/community/gsoc/project_ideas/language_bindings.mdwn index d9a426be..fdcdc396 100644 --- a/community/gsoc/project_ideas/language_bindings.mdwn +++ b/community/gsoc/project_ideas/language_bindings.mdwn @@ -47,18 +47,6 @@ In his [[2011 GSoC project|2011]], Jérémie Koenig designed and began implementing an object-oriented interface; see his [[Java status page|user/jkoenig/java]] for details. -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|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 -runtime environment or the actual programs) is only possible when not using the -standard Hurd server libraries at all -- i.e. when binding at MIG stub level or -interface definition level. - The task is to create easy to use Hurd bindings for a language of the student's choice, and some example servers to prove that it works well in practice. This project will require gaining a very good understanding of the various Hurd diff --git a/community/gsoc/project_ideas/pthreads.mdwn b/community/gsoc/project_ideas/pthreads.mdwn deleted file mode 100644 index 2270c774..00000000 --- a/community/gsoc/project_ideas/pthreads.mdwn +++ /dev/null @@ -1,49 +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="Convert Hurd Libraries and Servers to pthreads"]] - -[[!tag open_issue_libpthread]] - -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. - -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|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. - -(Thus it's impossible to use the [Hurd -libfuse](http://www.nongnu.org/hurdextras/#libfuse) with any FUSE modules -depending on pthreads for example.) - -Most of the conversion has already been done in previous efforts (see -[[!GNU_Savannah_task 5487]]) -- but the tricky parts are still missing. - -The goal of this project is to have all the Hurd code use pthreads. Should any -limitations in the existing pthreads implementation turn up that hinder this -transition, they will have to be fixed as well. - -This project requires relatively little Hurd-specific knowledge. Experience -with multithreaded programming in general and pthreads in particular is -required, though. - -Possible mentors: Barry deFreese (bddebian), Samuel Thibault (youpi) - -Exercise: Try to fix one of the outstanding issues with the work done so far. -It's not yet complete, and there hasn't been much debugging yet, so it should -not be too hard to find something needing improvement -- but if you don't see -anything obvious, feel free to talk to us about an alternative exercise task. diff --git a/news/2010-09.mdwn b/news/2010-09.mdwn index a35e1b3e..fa0e1db1 100644 --- a/news/2010-09.mdwn +++ b/news/2010-09.mdwn @@ -97,9 +97,9 @@ While already working in that area, Samuel Thibault applied some further fixes to our two threading libraries, and among others, he also sent a related glibc patch to [fix signal-catching functions](http://sourceware.org/ml/libc-alpha/2010-09/msg00015.html). And -then, there is still the project about [[converting the Hurd's libraries and +then, there is still the project about converting the Hurd's libraries and servers to using libpthread instead of Mach's cthreads -(libthreads)|community/gsoc/project_ideas/pthreads]]; likely such signalling +(libthreads); likely such signalling system moderizations could be done [alongside of that](http://lists.gnu.org/archive/html/bug-hurd/2010-09/msg00021.html). diff --git a/open_issues/libpthread.mdwn b/open_issues/libpthread.mdwn index f0c0db58..1ea2bb53 100644 --- a/open_issues/libpthread.mdwn +++ b/open_issues/libpthread.mdwn @@ -14,18 +14,6 @@ License|/fdl]]."]]"""]] [[!toc]] -# cthreads -> pthreads - -Get rid of cthreads; switch to pthreads. - -There is a [[!FF_project 275]][[!tag bounty]] on this task. - - -## Original [[community/GSoC]] Task Description - -[[!inline pages=community/gsoc/project_ideas/pthreads feeds=no]] - - ## IRC, freenode, #hurd, 2012-04-26 youpi: just to be sure: even if libpthread is compiled inside -- cgit v1.2.3 From 103b31f914fa69f6aef26ba198472b07aeeb3889 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sat, 16 Mar 2013 19:17:26 +0100 Subject: start writing something about libfuse --- faq/fuse_support.mdwn | 16 ++++++++++++++++ hurd.mdwn | 2 ++ hurd/libfuse.mdwn | 29 +++++++++++++++++++++++++++++ hurd/translator/wishlist.mdwn | 4 ---- 4 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 faq/fuse_support.mdwn create mode 100644 hurd/libfuse.mdwn diff --git a/faq/fuse_support.mdwn b/faq/fuse_support.mdwn new file mode 100644 index 00000000..3a442427 --- /dev/null +++ b/faq/fuse_support.mdwn @@ -0,0 +1,16 @@ +[[!meta copyright="Copyright © 2013 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="Does Hurd support FUSE?"]] + +There is a start of work on implementing a [[FUSE|hurd/libfuse]] library on Hurd; +currently, it still does provide all the functionalities needed to make +FUSE filesystems compile or work correctly, so it is not generally usable yet. diff --git a/hurd.mdwn b/hurd.mdwn index d5dd7e4f..fb41e24b 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -94,6 +94,8 @@ in the *unstable* branch of the Debian archive. * [[libihash]] * [[libthreads]] * [[libpthread]] +* In-development Libraries + * [[libfuse]] * [[IO_Path]] * [[Porting]] * [[Debugging]] diff --git a/hurd/libfuse.mdwn b/hurd/libfuse.mdwn new file mode 100644 index 00000000..b85cbd30 --- /dev/null +++ b/hurd/libfuse.mdwn @@ -0,0 +1,29 @@ +[[!meta copyright="Copyright © 2013 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]]."]]"""]] + +`libfuse` is an Hurd-specific implementation of [FUSE](http://fuse.sourceforge.net). + +The implementation takes advantage of the [[translators|translator]] facilities +of Hurd: this means that applications that implement a FUSE filesystem, when +compiled against libfuse-hurd, become translators to be set with usual `settrans` +etc. + + +# Status + +* Only part of the API is implemented + * lowlevel API not implemented + * Options handling not implemented +* Supports the compatibility level 25 (while current libfuse 2.9.x provides 26) + + +# Source + +[[source_repositories/incubator]], libfuse/master. diff --git a/hurd/translator/wishlist.mdwn b/hurd/translator/wishlist.mdwn index 70af27f2..18e46685 100644 --- a/hurd/translator/wishlist.mdwn +++ b/hurd/translator/wishlist.mdwn @@ -15,10 +15,6 @@ The idea behind file system translators is a powerful concept which hasn't recie The [ferris project](http://witme.sourceforge.net/libferris.web/features.html) has some great ideas and code in the area of userspace dynamic filesystems, as has the [FUSE project](http://fuse.sourceforge.net/). -## FUSE ([fuse.sourceforge.net](http://fuse.sourceforge.net)) compatibility library - -Just modify FUSE apps a and compile little to work as translator :-) - ## File Finder (uses find, grep, a combination or a custom command (htdig, mp3 info) * Files found will be available under one directory and then can be used like a normal directory * usefull to generate Albums, Share only resulting files over the et, etc.. -- cgit v1.2.3 From 5bd8b6944145fd898a6a9c0427743aed8740a8e7 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sat, 16 Mar 2013 19:24:51 +0100 Subject: misc changes --- faq.mdwn | 1 + faq/sata_disk_drives.mdwn | 8 +++++++- hurd/libchannel.mdwn | 5 +++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/faq.mdwn b/faq.mdwn index 0cf75198..f3e6b719 100644 --- a/faq.mdwn +++ b/faq.mdwn @@ -9,6 +9,7 @@ is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!meta title="FAQ"]] +[[!tag stable_URL]] Also see the... diff --git a/faq/sata_disk_drives.mdwn b/faq/sata_disk_drives.mdwn index dad10cb9..2edaa610 100644 --- a/faq/sata_disk_drives.mdwn +++ b/faq/sata_disk_drives.mdwn @@ -8,4 +8,10 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] -GNU Mach does not support SATA disk drives (/dev/sda etc. in GNU/Linux) natively, so using device:sd0s1 will not work, sd* devices are for SCSI drives only. The only way to get those drives to work is to put them into compatibility mode in the BIOS, if such an option exists. GNU Mach will then recognize them as hda etc. +[[!meta title="Are SATA disk drives supported?"]] + +GNU Mach does not support SATA disk drives (`/dev/sda` etc. in GNU/Linux) +natively, so using `device:sd0s1` will not work, as sd* devices are for SCSI +drives only. +The only way to get those drives to work is to put them into compatibility mode +in the BIOS, if such an option exists. GNU Mach will then recognize them as hda etc. diff --git a/hurd/libchannel.mdwn b/hurd/libchannel.mdwn index 3e19fb18..312210dd 100644 --- a/hurd/libchannel.mdwn +++ b/hurd/libchannel.mdwn @@ -62,6 +62,11 @@ and *libnetwork* or similar. So work on *libchannel* will continue, in one form or another. +# Source + +[[source_repositories/incubator]], libchannel. + + # Related * [*Van Jacobson's network channels*](http://lwn.net/Articles/169961/) -- cgit v1.2.3 From 306f359688afa254dc8728c73afab0fdb33d39ab Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sat, 16 Mar 2013 19:32:28 +0100 Subject: drop the gnat gsoc project idea gnat has been ported recently, so a whole gsoc on it is not needed anymore --- community/gsoc/project_ideas.mdwn | 3 +-- community/gsoc/project_ideas/gnat.mdwn | 32 -------------------------------- open_issues/gnat.mdwn | 5 ----- 3 files changed, 1 insertion(+), 39 deletions(-) delete mode 100644 community/gsoc/project_ideas/gnat.mdwn diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index 9fd851cd..62d9fafc 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -78,7 +78,7 @@ See also the list of [Hurd-related X.Org project ideas](http://xorg.freedesktop.org/wiki/Hurd_Porting). +other: language_bindings, gccgo, perl_python. --> [[!inline pages="community/gsoc/project_ideas/language_bindings" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/virtualization" show=0 feeds=no actions=yes]] @@ -99,7 +99,6 @@ other: language_bindings, gnat, gccgo, perl_python. --> [[!inline pages="community/gsoc/project_ideas/package_manager" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/download_backends" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/maxpath" show=0 feeds=no actions=yes]] -[[!inline pages="community/gsoc/project_ideas/gnat" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/gccgo" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/hardware_libs" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/cdparanoia" show=0 feeds=no actions=yes]] diff --git a/community/gsoc/project_ideas/gnat.mdwn b/community/gsoc/project_ideas/gnat.mdwn deleted file mode 100644 index ba34cc9c..00000000 --- a/community/gsoc/project_ideas/gnat.mdwn +++ /dev/null @@ -1,32 +0,0 @@ -[[!meta copyright="Copyright © 2009, 2011, 2012 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 GNAT (GCC)"]] - -An initial port of the GNU Ada Translator (GNAT) is available for the Hurd. - -The goal of this project is getting GNAT fully working in Debian GNU/Hurd. It -requires implementing some explicitly system-specific stuff in GNAT (mostly in -its runtime libraries), and for that also address a number of issues in Hurd -and other libraries. Knowledge of Ada is a must; some Hurd -knowledge will have to be acquired while working on the project. - -Designing and implementing [[language_bindings]] is a follow-up project. - -Possible mentors: [[Samuel Thibault (youpi)|samuelthibault]], [[Thomas Schwinge -(tschwinge)|tschwinge]]. - -Exercise: Fix one of the known issues of GNAT on the Hurd. - ---- - -[[Open Issue page|open_issues/gnat]]. [Entry in the GCC -wiki](http://gcc.gnu.org/wiki/SummerOfCode#gnat_hurd). diff --git a/open_issues/gnat.mdwn b/open_issues/gnat.mdwn index 2d17e275..86eda259 100644 --- a/open_issues/gnat.mdwn +++ b/open_issues/gnat.mdwn @@ -25,11 +25,6 @@ There is a [[!FF_project 259]][[!tag bounty]] on this task. First, make the language functional, have its test suite pass without errors. -## Original [[community/GSoC]] Task Description - -[[!inline pages=community/gsoc/project_ideas/gnat feeds=no]] - - ## Debian GCC There has a patch been added for GNU/kFreeBSD: -- cgit v1.2.3 From 11d3902442d767e7e228c2c660cc7af01042bab7 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sat, 16 Mar 2013 22:44:12 +0100 Subject: Remove an erroneous comment about DragonFlyBSD threading --- open_issues/multiprocessing.mdwn | 6 ------ 1 file changed, 6 deletions(-) diff --git a/open_issues/multiprocessing.mdwn b/open_issues/multiprocessing.mdwn index 562ccd83..e420610e 100644 --- a/open_issues/multiprocessing.mdwn +++ b/open_issues/multiprocessing.mdwn @@ -54,12 +54,6 @@ IRC, freenode, #hurd, 2011-07-26 < braunr> thread migration already takes into account smt, cores, and numa < braunr> it's hard to do something better < braunr> (here, thread migration means being dispatched on another cpu) - < braunr> some systems like dragonflybsd go as far as to pin threads on one - processor for their entire lifetime - < braunr> in order to have rcu-like locking almost everywhere - < braunr> (you could argue it's less efficient since in the worst case - everything runs on the same cpu, but it's very unlikely, and in practice - most patterns are well balanced) debian-hurd list -- cgit v1.2.3 From 2b0ad7e1ee57d041570f8cd9f2bb2d270f031734 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sat, 16 Mar 2013 23:01:54 +0100 Subject: Edit test --- sandbox.mdwn | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sandbox.mdwn b/sandbox.mdwn index b90e8160..bb5939c8 100644 --- a/sandbox.mdwn +++ b/sandbox.mdwn @@ -40,3 +40,5 @@ Bulleted list --- UTF-8 testing: © Queensrÿche ¿ Ø ß ® + +So, let's see how it behaves ... -- cgit v1.2.3 From 7a696737b9cc67769a865dffc670a5b1a874dc60 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sat, 16 Mar 2013 23:18:52 +0100 Subject: --- glibc/debugging/ld_so_console.mdwn | 3 +++ 1 file changed, 3 insertions(+) diff --git a/glibc/debugging/ld_so_console.mdwn b/glibc/debugging/ld_so_console.mdwn index 286fcd64..53199ee1 100644 --- a/glibc/debugging/ld_so_console.mdwn +++ b/glibc/debugging/ld_so_console.mdwn @@ -19,3 +19,6 @@ simple [[dl-sysdep.c.patch]] to get access to the Mach console. Can this be integrated with the other debugging printf functions from `elf/dl-misc.c` (`_dl_debug_vdprintf`) ([[!taglink open_issue_glibc]])? + +Recently (January 2013), the mach_print system call was added to GNU Mach. +It is available when the kernel is built with the in-kernel kdb debugger. -- cgit v1.2.3 From aa86170b2b92d8787c5ccd229bc98447d9984f8a Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sat, 16 Mar 2013 23:32:55 +0100 Subject: --- hurd/debugging/rpctrace.mdwn | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hurd/debugging/rpctrace.mdwn b/hurd/debugging/rpctrace.mdwn index c506861a..94dd946a 100644 --- a/hurd/debugging/rpctrace.mdwn +++ b/hurd/debugging/rpctrace.mdwn @@ -175,6 +175,9 @@ See `rpctrace --help` about how to use it. /home/rbraun/hd0s7/hurd/hurd-20120710/./utils/rpctrace.c:1287: trace_and_forward: Assertion `reply_type == 18' failed. +This assertion is actually caused by using the io_select interface, which creates +a send right instead of a send-once right for the reply port (IIRC). + # See Also -- cgit v1.2.3 From 3882a856d6f6acc5e9ace1b0ef0390fc00a9ea43 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sat, 16 Mar 2013 23:38:51 +0100 Subject: --- hurd/translator/ext2fs.mdwn | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hurd/translator/ext2fs.mdwn b/hurd/translator/ext2fs.mdwn index 65361ff4..bc43644f 100644 --- a/hurd/translator/ext2fs.mdwn +++ b/hurd/translator/ext2fs.mdwn @@ -138,6 +138,8 @@ small backend stores, like floppy devices. breaks performance on the hurd and 30 seems like a reasonable amount (better than 5 at least) +That would be a nice improvement, but only after writeback throttling is implemented. + # Documentation -- cgit v1.2.3 From a3c7449641e79aa838cbfd0a7fb4831b009f455f Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sat, 16 Mar 2013 23:42:15 +0100 Subject: --- hurd/translator/ext2fs/page_cache.mdwn | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hurd/translator/ext2fs/page_cache.mdwn b/hurd/translator/ext2fs/page_cache.mdwn index e8a964ed..c129a98e 100644 --- a/hurd/translator/ext2fs/page_cache.mdwn +++ b/hurd/translator/ext2fs/page_cache.mdwn @@ -29,3 +29,7 @@ This is not at all specific to ext2fs, so should be integrated elsewhere. memory? Tekk_: yes awesome. I was worried :) + +Actually, ext2fs doesn't contain its page cache (the virtual and physical +memory counters do not take the cache size into account). But it must allocate +descriptors for the cached content. -- cgit v1.2.3 From c3f20f232d70e7131f0d6c5580df3b497b751e70 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sat, 16 Mar 2013 23:48:12 +0100 Subject: --- hurd/translator/pfinet/ipv6.mdwn | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/hurd/translator/pfinet/ipv6.mdwn b/hurd/translator/pfinet/ipv6.mdwn index 42ee3c55..826467da 100644 --- a/hurd/translator/pfinet/ipv6.mdwn +++ b/hurd/translator/pfinet/ipv6.mdwn @@ -57,21 +57,6 @@ Quite the same, but with static IPv6 address assignment: Amongst other things, support for [[IOCTL]]s is missing. -## IRC, freenode, #hurd, 2012-12-10 - -[[!tag open_issue_hurd]] - - looks like pfinet -G option doesn't work - if someone is interested in fixing this (it concerns static IPv6 - routing) - youpi: have you ever successfully used pfinet with global - statically configured ipv6 addresses ? - never tried - ok - i'd like to set this up on my VMs but it looks bugged :/ - i can't manage to set correctly set the gateway - - ### IRC, freenode, #hurd, 2012-12-12 hm, pfinet seems not to support ipv6 well at all :( @@ -136,6 +121,8 @@ Amongst other things, support for [[IOCTL]]s is missing. ok, enabling ALLMULTI was enough to fix it you can ping6 2001:910:1059:2:5054:00ff:fe12:3456 :) +Indeed, IPv6 now works properly, and the very machine hosting this wiki +(darnassus.sceen.net) can be reached with that protocol. ## IRC, freenode, #hurd, 2013-01-13 -- cgit v1.2.3 From 879372ff8a5a5ffbb9150c5250acb87fb552c48f Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sun, 17 Mar 2013 00:48:39 +0100 Subject: --- open_issues/address_space_memory_mapping_entries.mdwn | 2 ++ 1 file changed, 2 insertions(+) diff --git a/open_issues/address_space_memory_mapping_entries.mdwn b/open_issues/address_space_memory_mapping_entries.mdwn index caf447dd..10494cc5 100644 --- a/open_issues/address_space_memory_mapping_entries.mdwn +++ b/open_issues/address_space_memory_mapping_entries.mdwn @@ -17,3 +17,5 @@ IRC, freenode, #hurd, 2011-05-07 linked list a bare linked list which makes faults and page cache lookups even slower + +A red-black tree was added to VM maps to speed up lookups. -- cgit v1.2.3 From 8144abc77f808f66f477499d22d375a9b7c32d39 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sun, 17 Mar 2013 00:54:33 +0100 Subject: Mention that setitimer is fixed --- open_issues/alarm_setitimer.mdwn | 1 + 1 file changed, 1 insertion(+) diff --git a/open_issues/alarm_setitimer.mdwn b/open_issues/alarm_setitimer.mdwn index 5999808c..a1c8a7d3 100644 --- a/open_issues/alarm_setitimer.mdwn +++ b/open_issues/alarm_setitimer.mdwn @@ -22,6 +22,7 @@ for a signal, while on GNU/Hurd it gets a new alarm and exits. [[alrm.c]] +This issue was recently fixed (around January 2013). # IRC, freenode, #hurd, 2012-07-29 -- cgit v1.2.3 From 025dac132f2da52e7a83429b5bcf7e879bb10f0d Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sun, 17 Mar 2013 00:59:53 +0100 Subject: Correct a confusing statement about the threading model --- open_issues/anatomy_of_a_hurd_system.mdwn | 3 +++ 1 file changed, 3 insertions(+) diff --git a/open_issues/anatomy_of_a_hurd_system.mdwn b/open_issues/anatomy_of_a_hurd_system.mdwn index 3e585876..a461d71b 100644 --- a/open_issues/anatomy_of_a_hurd_system.mdwn +++ b/open_issues/anatomy_of_a_hurd_system.mdwn @@ -173,6 +173,9 @@ Need more stuff like that. is it M:N ? libthreads, actually yes + +Actually, the Hurd has never used an M:N model. Both libthreads (cthreads) and libpthread use an 1:1 model. + nice is the task scheduler in the kernel ? the kernel thread scheduler, yes, of course -- cgit v1.2.3 From 4fb182a18e7a7e7e6ff7e5a128459c05a61de188 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sun, 17 Mar 2013 01:20:31 +0100 Subject: Add a reference to Singularity showing safe address space sharing --- open_issues/benefits_of_a_native_hurd_implementation.mdwn | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/open_issues/benefits_of_a_native_hurd_implementation.mdwn b/open_issues/benefits_of_a_native_hurd_implementation.mdwn index afdcfb73..12201f51 100644 --- a/open_issues/benefits_of_a_native_hurd_implementation.mdwn +++ b/open_issues/benefits_of_a_native_hurd_implementation.mdwn @@ -120,6 +120,12 @@ IRC, #hurd, 2010-12-28 [...] kilobug: right, a monolithick kernel is less folt-tolerant than a well designed/implemented microkernel based os + +It turns out that it is perfectly possible to isolate services running in the +same address space, as it was done in projects such as Singularity, the idea +being that the code is verified through static analysis when installed (but +this requires a language other than C). + braunr: well, the Hurd is buggy nowadays, but things like an ext2fs translator doing a segfault and being restarted is a fault-tolerance that would be almost impossible to have in Linux -- cgit v1.2.3 From 4c9c96e78f9967a9e23db38d45fbb4b58149488c Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 12:51:55 +0100 Subject: mention linux version --- faq/how_about_drivers.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/faq/how_about_drivers.mdwn b/faq/how_about_drivers.mdwn index 0e1887ba..974fb612 100644 --- a/faq/how_about_drivers.mdwn +++ b/faq/how_about_drivers.mdwn @@ -13,6 +13,6 @@ License|/fdl]]."]]"""]] Currently, for disks Mach integrates drivers from Linux 2.0 through some [[community/gsoc/project_ideas/driver_glue_code]]. As it's very old, that limits hardware support a lot, of course. For network boards, we use the -[[DDE]] toolkit to run linux drivers in userland processes, +[[DDE]] toolkit to run linux 2.6.32 drivers in userland processes, which provides both long-term support for new hardware and safety against driver bugs. -- cgit v1.2.3 From 50edfaff1fe9d3309b34358ec0c62d3c3354bc75 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 13:10:14 +0100 Subject: small fixes: titles, details --- faq/2_gib_partition_limit.mdwn | 2 +- faq/debugging_inside_glibc.mdwn | 2 +- faq/debugging_translators.mdwn | 2 +- faq/df.mdwn | 2 ++ faq/eata.mdwn | 2 ++ faq/fuse_support.mdwn | 4 +--- faq/kernel_logs.mdwn | 4 +++- faq/off.mdwn | 2 +- faq/ram_limit.mdwn | 2 +- faq/sharing_the_user_space.mdwn | 6 +++--- faq/still_useful.mdwn | 7 +++++-- faq/xserver-common.mdwn | 2 +- 12 files changed, 22 insertions(+), 15 deletions(-) diff --git a/faq/2_gib_partition_limit.mdwn b/faq/2_gib_partition_limit.mdwn index 195191cb..726605f9 100644 --- a/faq/2_gib_partition_limit.mdwn +++ b/faq/2_gib_partition_limit.mdwn @@ -8,6 +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]]."]]"""]] -[[!meta title="2 GiB Partition Limit"]] +[[!meta title="Is there still a 2 GiB Partition Limit ?"]] The 2 GiB limit has been removed in Debian GNU/Hurd. diff --git a/faq/debugging_inside_glibc.mdwn b/faq/debugging_inside_glibc.mdwn index 91b71d64..6f2d4ee3 100644 --- a/faq/debugging_inside_glibc.mdwn +++ b/faq/debugging_inside_glibc.mdwn @@ -9,7 +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]]."]]"""]] -To get [[debugging]] information for glibc, you need to install the +In Debian, to get [[debugging]] information for glibc, you need to install the `libc0.3-dbg` package. At the place [[debugging/GDB]] looks for debugging symbols by default (`/usr/lib/debug/lib/`), Debian's `libc0.3-dbg` stores only the frame unwind information used for backtracing. If you want to step into diff --git a/faq/debugging_translators.mdwn b/faq/debugging_translators.mdwn index 262fd6aa..7a90a7e0 100644 --- a/faq/debugging_translators.mdwn +++ b/faq/debugging_translators.mdwn @@ -9,7 +9,7 @@ is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] In order to [[debug|debugging]] translators and being able to step into glibc -during it, you need the `hurd-dbg` and `libc0.3-dbg` packages installed. +during it, on Debian you need the `hurd-dbg` and `libc0.3-dbg` packages installed. If you need to debug the initialization of the translator, start the translator like diff --git a/faq/df.mdwn b/faq/df.mdwn index bbd3a7b9..51de2b6c 100644 --- a/faq/df.mdwn +++ b/faq/df.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]]."]]"""]] +[[!meta title="Why doesn't df work?"]] + There is no `/etc/mtab` (due to dynamic translator startup, its content is hard to define actually, see [[the mtab GSoC project idea|community/gsoc/project_ideas/mtab]]), diff --git a/faq/eata.mdwn b/faq/eata.mdwn index fa7dbdec..411a1b16 100644 --- a/faq/eata.mdwn +++ b/faq/eata.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]]."]]"""]] +[[!meta title="Boot seems to get stuck at EATA probing"]] + In some virtual machines (e.g. VirtualBox), "probing eata on XXX" may be quite long. This is apparently due to poor efficiency of the virtualizer, not Mach. There is no such issue on real hardware or using qemu/kvm. diff --git a/faq/fuse_support.mdwn b/faq/fuse_support.mdwn index 3a442427..8867d954 100644 --- a/faq/fuse_support.mdwn +++ b/faq/fuse_support.mdwn @@ -11,6 +11,4 @@ License|/fdl]]."]]"""]] [[!meta title="Does Hurd support FUSE?"]] -There is a start of work on implementing a [[FUSE|hurd/libfuse]] library on Hurd; -currently, it still does provide all the functionalities needed to make -FUSE filesystems compile or work correctly, so it is not generally usable yet. +There is a start of work on implementing a [[FUSE|hurd/libfuse]] library on Hurd; its support is not updated to the latest version, but at least some fuse filesystems do work already. diff --git a/faq/kernel_logs.mdwn b/faq/kernel_logs.mdwn index 93df42bb..0c9e05a0 100644 --- a/faq/kernel_logs.mdwn +++ b/faq/kernel_logs.mdwn @@ -11,4 +11,6 @@ License|/fdl]]."]]"""]] [[!meta title="dmesg, kernel logs"]] -There is no `dmesg` command: the kernel does not keep a buffer of its messages. syslog however dumps them into `/var/log/dmesg`, so you can simply cat that. +There is no `dmesg` command, since the kernel does not keep a buffer of its +messages. syslog however dumps them into `/var/log/dmesg`, so you can simply cat +that. diff --git a/faq/off.mdwn b/faq/off.mdwn index 8c90d53e..48e6bcc7 100644 --- a/faq/off.mdwn +++ b/faq/off.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]]."]]"""]] -[[!meta title="How am I supposed to shut my Hurd system down?"]] +[[!meta title="shutdown does not work, How am I supposed to shut my Hurd system down?"]] The GNU/Hurd does not use SYSV runlevels, so commands like diff --git a/faq/ram_limit.mdwn b/faq/ram_limit.mdwn index 458a047d..4043203e 100644 --- a/faq/ram_limit.mdwn +++ b/faq/ram_limit.mdwn @@ -11,7 +11,7 @@ License|/fdl]]."]]"""]] [[!meta title="830 MiB RAM Limit"]] -Just like any 32bit OS without bad tricks, GNU Mach does not cope well with lots +Just like any 32bit OS without bad tricks, GNU Mach can not cope well with lots of memory. Latest versions of the Debian `gnumach` package will limit themselves to around 1.7 GiB of memory. If you want more, you can twiddle the `VM_MAX_ADDRESS` limit between kernelland and userland in `i386/include/mach/i386/vm_param.h`. diff --git a/faq/sharing_the_user_space.mdwn b/faq/sharing_the_user_space.mdwn index ec880827..8702470a 100644 --- a/faq/sharing_the_user_space.mdwn +++ b/faq/sharing_the_user_space.mdwn @@ -8,11 +8,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]]."]]"""]] -*Question:* Could it be possible to have a system installation where you can +[[!meta title=" 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? +everything but the kernel is shared?]] -*Answer:* Given that both Linux and GNU Hurd are using the [[ELF]] binary +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 call]]s that are not covered by glibc diff --git a/faq/still_useful.mdwn b/faq/still_useful.mdwn index bffeaebd..919eb9d4 100644 --- a/faq/still_useful.mdwn +++ b/faq/still_useful.mdwn @@ -8,8 +8,10 @@ Sections, no 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 are the advantages with the Hurd over Linux, in general of course, nothing -in depth +[[!meta title="Why is the Hurd useful?"]] + +What are the advantages with the Hurd over Linux? (In general of course, nothing +in depth) > Flexibility for the user: > @@ -30,6 +32,7 @@ in depth >> entirely doable now in Linux with FUSE or things like it. >>> Nowadays, at LAST, yes, partly. +>>> And only on machines where fuse is enabled. Is it enabled on the servers you have an account on? >> I'm not sure if an ftp filesystem has been implemented for FUSE yet, but its >> definately doable; and loopback filesystems like in your second example have diff --git a/faq/xserver-common.mdwn b/faq/xserver-common.mdwn index 3420154c..460c6e55 100644 --- a/faq/xserver-common.mdwn +++ b/faq/xserver-common.mdwn @@ -9,7 +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]]."]]"""]] -[[!meta title="normal users can't start X"]] +[[!meta title="Normal users can't start X"]] You need to run `dpkg-reconfigure x11-common` and select `Anybody` for starting X as there is no way to detect console users currently. -- cgit v1.2.3 From f4e44fd710c97c83c0626ce0334a2d4aedb729a2 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 13:29:01 +0100 Subject: title --- faq/ghamp.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/faq/ghamp.mdwn b/faq/ghamp.mdwn index 16849aff..054788eb 100644 --- a/faq/ghamp.mdwn +++ b/faq/ghamp.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]]."]]"""]] -[[!meta title="GHAMP"]] +[[!meta title="What is GHAMP?"]] *GHAMP* is the GNU/Hurd-based Apache, MySQL, PHP solution stack -- analoguous to GLAMP, which is based on GNU/Linux. -- cgit v1.2.3 From b43ea6ca9b24067ee5d4775383a09c46233119df Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 13:29:39 +0100 Subject: Categorize FAQs more --- faq.mdwn | 41 +- faq/2_gib_partition_limit.mdwn | 13 - faq/64bit.mdwn | 17 - faq/bad_hypermeta_data.mdwn | 15 - faq/binary_compatibility.mdwn | 33 -- faq/debugging_inside_glibc.mdwn | 19 - faq/debugging_translators.mdwn | 19 - faq/dev/debugging_inside_glibc.mdwn | 19 + faq/dev/debugging_translators.mdwn | 19 + faq/df.mdwn | 21 - faq/eata.mdwn | 15 - faq/fuse_support.mdwn | 14 - faq/how_about_drivers.mdwn | 18 - faq/hurd_console.mdwn | 13 - faq/issues/bad_hypermeta_data.mdwn | 15 + faq/issues/eata.mdwn | 15 + faq/issues/native-install_doesnt_finish.mdwn | 24 ++ faq/kernel_logs.mdwn | 16 - faq/native-install_doesnt_finish.mdwn | 24 -- faq/network_transparency.mdwn | 22 - faq/off.mdwn | 21 - faq/old-stuff.mdwn | 30 -- faq/old/old-stuff.mdwn | 30 ++ faq/old/old_faq.txt | 533 ++++++++++++++++++++++++ faq/old/old_hurd_faq.txt | 145 +++++++ faq/old_faq.txt | 533 ------------------------ faq/old_hurd_faq.txt | 145 ------- faq/posix_compatibility.mdwn | 32 -- faq/posix_compatibility/discussion.mdwn | 25 -- faq/ps_hangs.mdwn | 13 - faq/ram_limit.mdwn | 22 - faq/running/df.mdwn | 21 + faq/running/hurd_console.mdwn | 13 + faq/running/kernel_logs.mdwn | 16 + faq/running/off.mdwn | 21 + faq/running/ps_hangs.mdwn | 13 + faq/running/slash_usr_symlink.mdwn | 20 + faq/running/slash_usr_symlink/discussion.mdwn | 45 ++ faq/running/xserver-common.mdwn | 15 + faq/sata_disk_drives.mdwn | 17 - faq/sharing_the_user_space.mdwn | 23 - faq/slash_usr_symlink.mdwn | 20 - faq/slash_usr_symlink/discussion.mdwn | 45 -- faq/smp.mdwn | 28 -- faq/support/2_gib_partition_limit.mdwn | 13 + faq/support/64bit.mdwn | 17 + faq/support/binary_compatibility.mdwn | 33 ++ faq/support/fuse_support.mdwn | 14 + faq/support/how_about_drivers.mdwn | 18 + faq/support/network_transparency.mdwn | 22 + faq/support/posix_compatibility.mdwn | 32 ++ faq/support/posix_compatibility/discussion.mdwn | 25 ++ faq/support/ram_limit.mdwn | 22 + faq/support/sata_disk_drives.mdwn | 17 + faq/support/sharing_the_user_space.mdwn | 23 + faq/support/smp.mdwn | 28 ++ faq/support/system_port.mdwn | 47 +++ faq/system_port.mdwn | 47 --- faq/xserver-common.mdwn | 15 - 59 files changed, 1310 insertions(+), 1281 deletions(-) delete mode 100644 faq/2_gib_partition_limit.mdwn delete mode 100644 faq/64bit.mdwn delete mode 100644 faq/bad_hypermeta_data.mdwn delete mode 100644 faq/binary_compatibility.mdwn delete mode 100644 faq/debugging_inside_glibc.mdwn delete mode 100644 faq/debugging_translators.mdwn create mode 100644 faq/dev/debugging_inside_glibc.mdwn create mode 100644 faq/dev/debugging_translators.mdwn delete mode 100644 faq/df.mdwn delete mode 100644 faq/eata.mdwn delete mode 100644 faq/fuse_support.mdwn delete mode 100644 faq/how_about_drivers.mdwn delete mode 100644 faq/hurd_console.mdwn create mode 100644 faq/issues/bad_hypermeta_data.mdwn create mode 100644 faq/issues/eata.mdwn create mode 100644 faq/issues/native-install_doesnt_finish.mdwn delete mode 100644 faq/kernel_logs.mdwn delete mode 100644 faq/native-install_doesnt_finish.mdwn delete mode 100644 faq/network_transparency.mdwn delete mode 100644 faq/off.mdwn delete mode 100644 faq/old-stuff.mdwn create mode 100644 faq/old/old-stuff.mdwn create mode 100644 faq/old/old_faq.txt create mode 100644 faq/old/old_hurd_faq.txt delete mode 100644 faq/old_faq.txt delete mode 100644 faq/old_hurd_faq.txt delete mode 100644 faq/posix_compatibility.mdwn delete mode 100644 faq/posix_compatibility/discussion.mdwn delete mode 100644 faq/ps_hangs.mdwn delete mode 100644 faq/ram_limit.mdwn create mode 100644 faq/running/df.mdwn create mode 100644 faq/running/hurd_console.mdwn create mode 100644 faq/running/kernel_logs.mdwn create mode 100644 faq/running/off.mdwn create mode 100644 faq/running/ps_hangs.mdwn create mode 100644 faq/running/slash_usr_symlink.mdwn create mode 100644 faq/running/slash_usr_symlink/discussion.mdwn create mode 100644 faq/running/xserver-common.mdwn delete mode 100644 faq/sata_disk_drives.mdwn delete mode 100644 faq/sharing_the_user_space.mdwn delete mode 100644 faq/slash_usr_symlink.mdwn delete mode 100644 faq/slash_usr_symlink/discussion.mdwn delete mode 100644 faq/smp.mdwn create mode 100644 faq/support/2_gib_partition_limit.mdwn create mode 100644 faq/support/64bit.mdwn create mode 100644 faq/support/binary_compatibility.mdwn create mode 100644 faq/support/fuse_support.mdwn create mode 100644 faq/support/how_about_drivers.mdwn create mode 100644 faq/support/network_transparency.mdwn create mode 100644 faq/support/posix_compatibility.mdwn create mode 100644 faq/support/posix_compatibility/discussion.mdwn create mode 100644 faq/support/ram_limit.mdwn create mode 100644 faq/support/sata_disk_drives.mdwn create mode 100644 faq/support/sharing_the_user_space.mdwn create mode 100644 faq/support/smp.mdwn create mode 100644 faq/support/system_port.mdwn delete mode 100644 faq/system_port.mdwn delete mode 100644 faq/xserver-common.mdwn diff --git a/faq.mdwn b/faq.mdwn index f3e6b719..303b8727 100644 --- a/faq.mdwn +++ b/faq.mdwn @@ -11,10 +11,6 @@ License|/fdl]]."]]"""]] [[!meta title="FAQ"]] [[!tag stable_URL]] -Also see the... - - * [[microkernel FAQ|microkernel/faq]], - [[!inline pages=none show=0 @@ -22,11 +18,29 @@ feeds=no actions=yes rootpage="faq" postformtext="Add a new item titled:"]] +# Also see the... + + * [[microkernel FAQ|microkernel/faq]], + + +# General-discussion FAQs -# FAQs +[[!map +pages="faq/* and !*/discussion and !*/debian/* and !*/running/* and !*/support/* and !*/issues/* and !*/dev/* and !*/old/*" +show=title]] + + +# Hardware/Software support FAQs [[!map -pages="faq/* and !*/discussion and !*/debian/*" +pages="faq/support/* and !*/discussion" +show=title]] + + +# Running GNU/Hurd FAQs + +[[!map +pages="faq/running/* and !*/discussion" show=title]] @@ -36,3 +50,18 @@ show=title]] pages="faq/debian/* and !*/discussion" show=title]] + +# Development FAQs + +[[!map +pages="faq/dev/* and !*/discussion" +show=title]] + + +# Old FAQs + +[[!map +pages="faq/old/* and !*/discussion" +show=title]] + + diff --git a/faq/2_gib_partition_limit.mdwn b/faq/2_gib_partition_limit.mdwn deleted file mode 100644 index 726605f9..00000000 --- a/faq/2_gib_partition_limit.mdwn +++ /dev/null @@ -1,13 +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]]."]]"""]] - -[[!meta title="Is there still a 2 GiB Partition Limit ?"]] - -The 2 GiB limit has been removed in Debian GNU/Hurd. diff --git a/faq/64bit.mdwn b/faq/64bit.mdwn deleted file mode 100644 index 5b899b55..00000000 --- a/faq/64bit.mdwn +++ /dev/null @@ -1,17 +0,0 @@ -[[!meta copyright="Copyright © 2013 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="Is there a 64bit version?"]] - -There are currently no plan for 64bit userland, but there are plans for 64bit -kernelland + 32bit userland, which will notably permit to efficiently make use -of more than 2GiB memory and provide 4GiB userland addressing space. Work on -this is currently in branches in GNU Mach. diff --git a/faq/bad_hypermeta_data.mdwn b/faq/bad_hypermeta_data.mdwn deleted file mode 100644 index bc960e30..00000000 --- a/faq/bad_hypermeta_data.mdwn +++ /dev/null @@ -1,15 +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]]."]]"""]] - -If you get the error `bad hypermeta data` when trying to mount an ext3 -partition from GNU/Linux, that is usually because the file system has not been -unmounted cleanly (maybe GNU/Linux got suspended to disk) and the Hurd cannot -mount it as ext2 without checking. Either boot back into GNU/Linux and unmount -it or you can try to run `fsck.ext3` from GNU/Hurd directly. diff --git a/faq/binary_compatibility.mdwn b/faq/binary_compatibility.mdwn deleted file mode 100644 index e9dfcdb8..00000000 --- a/faq/binary_compatibility.mdwn +++ /dev/null @@ -1,33 +0,0 @@ -[[!meta copyright="Copyright © 2012 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]] - -IRC, freenode, #hurd, 2012-01-13: - - sothere's absolutelyno way,evenslowly to run i386 linuxcode - under hurd/i386? Ihave a small app, commercial, which I have to get - running there - no source - no way - you'd need to create a userspace linux server catching linux - system calls and calling hurd specific stuff to implement them - it doesn't exist, it may be hard to implement - some cases will definitely be hard to implement - so, no magic linux lxemu on windows? - or linuxemu on plan9 - nope - I remember somethingsilly, sonmone hadcompiled linux asauser - applicationon plan9 and inserted his own binaries as - acodeobject,toberunon plan9, for useon ibm hpc hatrdware - it was ron minich - 5e.iwp9.org/slides/linuxemu.pdf - I think that was it - google for linux & cnk for additional clues diff --git a/faq/debugging_inside_glibc.mdwn b/faq/debugging_inside_glibc.mdwn deleted file mode 100644 index 6f2d4ee3..00000000 --- a/faq/debugging_inside_glibc.mdwn +++ /dev/null @@ -1,19 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, -Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -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 Debian, to get [[debugging]] information for glibc, you need to install the -`libc0.3-dbg` package. At the place [[debugging/GDB]] looks for debugging -symbols by default (`/usr/lib/debug/lib/`), Debian's `libc0.3-dbg` stores only -the frame unwind information used for backtracing. If you want to step into -glibc while debugging, you need to add `LD_LIBRARY_PATH=/usr/lib/debug` to -debugged program's environment (`set env VAR value` from the GDB command line). -If that still does not work, try `LD_PRELOAD=/usr/lib/debug/libc.so.0.3` -instead. diff --git a/faq/debugging_translators.mdwn b/faq/debugging_translators.mdwn deleted file mode 100644 index 7a90a7e0..00000000 --- a/faq/debugging_translators.mdwn +++ /dev/null @@ -1,19 +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]]."]]"""]] - -In order to [[debug|debugging]] translators and being able to step into glibc -during it, on Debian you need the `hurd-dbg` and `libc0.3-dbg` packages installed. -If you need to debug the initialization of the translator, start the translator -like - - $ settrans -P /foo /usr/bin/env LD_LIBRARY_PATH=/usr/lib/debug /hurd/foofs - -The `-P` option will make it -pause and you will be able to attach [[debugging/GDB]] to the process. diff --git a/faq/dev/debugging_inside_glibc.mdwn b/faq/dev/debugging_inside_glibc.mdwn new file mode 100644 index 00000000..6f2d4ee3 --- /dev/null +++ b/faq/dev/debugging_inside_glibc.mdwn @@ -0,0 +1,19 @@ +[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +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 Debian, to get [[debugging]] information for glibc, you need to install the +`libc0.3-dbg` package. At the place [[debugging/GDB]] looks for debugging +symbols by default (`/usr/lib/debug/lib/`), Debian's `libc0.3-dbg` stores only +the frame unwind information used for backtracing. If you want to step into +glibc while debugging, you need to add `LD_LIBRARY_PATH=/usr/lib/debug` to +debugged program's environment (`set env VAR value` from the GDB command line). +If that still does not work, try `LD_PRELOAD=/usr/lib/debug/libc.so.0.3` +instead. diff --git a/faq/dev/debugging_translators.mdwn b/faq/dev/debugging_translators.mdwn new file mode 100644 index 00000000..7a90a7e0 --- /dev/null +++ b/faq/dev/debugging_translators.mdwn @@ -0,0 +1,19 @@ +[[!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]]."]]"""]] + +In order to [[debug|debugging]] translators and being able to step into glibc +during it, on Debian you need the `hurd-dbg` and `libc0.3-dbg` packages installed. +If you need to debug the initialization of the translator, start the translator +like + + $ settrans -P /foo /usr/bin/env LD_LIBRARY_PATH=/usr/lib/debug /hurd/foofs + +The `-P` option will make it +pause and you will be able to attach [[debugging/GDB]] to the process. diff --git a/faq/df.mdwn b/faq/df.mdwn deleted file mode 100644 index 51de2b6c..00000000 --- a/faq/df.mdwn +++ /dev/null @@ -1,21 +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]]."]]"""]] - -[[!meta title="Why doesn't df work?"]] - -There is no `/etc/mtab` (due to dynamic translator startup, its content is hard -to define actually, see -[[the mtab GSoC project idea|community/gsoc/project_ideas/mtab]]), -so just running `df` will yield the following error. - - df: cannot read table of mounted file systems - -Pass `df` a path like `df /` or `df ./` to see the disk usage of that particular -file system. diff --git a/faq/eata.mdwn b/faq/eata.mdwn deleted file mode 100644 index 411a1b16..00000000 --- a/faq/eata.mdwn +++ /dev/null @@ -1,15 +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]]."]]"""]] - -[[!meta title="Boot seems to get stuck at EATA probing"]] - -In some virtual machines (e.g. VirtualBox), "probing eata on XXX" may be -quite long. This is apparently due to poor efficiency of the virtualizer, not -Mach. There is no such issue on real hardware or using qemu/kvm. diff --git a/faq/fuse_support.mdwn b/faq/fuse_support.mdwn deleted file mode 100644 index 8867d954..00000000 --- a/faq/fuse_support.mdwn +++ /dev/null @@ -1,14 +0,0 @@ -[[!meta copyright="Copyright © 2013 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="Does Hurd support FUSE?"]] - -There is a start of work on implementing a [[FUSE|hurd/libfuse]] library on Hurd; its support is not updated to the latest version, but at least some fuse filesystems do work already. diff --git a/faq/how_about_drivers.mdwn b/faq/how_about_drivers.mdwn deleted file mode 100644 index 974fb612..00000000 --- a/faq/how_about_drivers.mdwn +++ /dev/null @@ -1,18 +0,0 @@ -[[!meta copyright="Copyright © 2009, 2013 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, for disks Mach integrates drivers from Linux 2.0 through some -[[community/gsoc/project_ideas/driver_glue_code]]. As it's very old, that -limits hardware support a lot, of course. For network boards, we use the -[[DDE]] toolkit to run linux 2.6.32 drivers in userland processes, -which provides both long-term support for new hardware and safety against driver -bugs. diff --git a/faq/hurd_console.mdwn b/faq/hurd_console.mdwn deleted file mode 100644 index cb2de2c0..00000000 --- a/faq/hurd_console.mdwn +++ /dev/null @@ -1,13 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2013 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]]."]]"""]] - -Edit `/etc/default/hurd-console` to configure the Hurd console. -See [[hurd/console]] for further information about the Hurd console. diff --git a/faq/issues/bad_hypermeta_data.mdwn b/faq/issues/bad_hypermeta_data.mdwn new file mode 100644 index 00000000..bc960e30 --- /dev/null +++ b/faq/issues/bad_hypermeta_data.mdwn @@ -0,0 +1,15 @@ +[[!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]]."]]"""]] + +If you get the error `bad hypermeta data` when trying to mount an ext3 +partition from GNU/Linux, that is usually because the file system has not been +unmounted cleanly (maybe GNU/Linux got suspended to disk) and the Hurd cannot +mount it as ext2 without checking. Either boot back into GNU/Linux and unmount +it or you can try to run `fsck.ext3` from GNU/Hurd directly. diff --git a/faq/issues/eata.mdwn b/faq/issues/eata.mdwn new file mode 100644 index 00000000..411a1b16 --- /dev/null +++ b/faq/issues/eata.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]]."]]"""]] + +[[!meta title="Boot seems to get stuck at EATA probing"]] + +In some virtual machines (e.g. VirtualBox), "probing eata on XXX" may be +quite long. This is apparently due to poor efficiency of the virtualizer, not +Mach. There is no such issue on real hardware or using qemu/kvm. diff --git a/faq/issues/native-install_doesnt_finish.mdwn b/faq/issues/native-install_doesnt_finish.mdwn new file mode 100644 index 00000000..a852e1dd --- /dev/null +++ b/faq/issues/native-install_doesnt_finish.mdwn @@ -0,0 +1,24 @@ +[[!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]]."]]"""]] + +Copying baseGNU to the virtual disk works. Even booting got through but when I +try to run native-install it never gets to the very end. First time it froze on +*sed* package, the other time on *sysv-rc*. + +> How much memory did you configure for the [[QEMU]] system? It may simply be +> -- I've seen this myself -- that the system runs out of memory, as at the +> native-install stage (I think at least) swap is not yet configured and +> enabled. What I've been doing is: boot (with -s), MAKEDEV hdWHATEVER in +> /dev/ for the swap device, run /hurd/mach-defpager, followed by swapon +> /dev/hdWHATEVER. Does this help? + +>> Thank You very much, more memory solved the freezing. + +[[!tag open_issue_hurd]] diff --git a/faq/kernel_logs.mdwn b/faq/kernel_logs.mdwn deleted file mode 100644 index 0c9e05a0..00000000 --- a/faq/kernel_logs.mdwn +++ /dev/null @@ -1,16 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2013 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="dmesg, kernel logs"]] - -There is no `dmesg` command, since the kernel does not keep a buffer of its -messages. syslog however dumps them into `/var/log/dmesg`, so you can simply cat -that. diff --git a/faq/native-install_doesnt_finish.mdwn b/faq/native-install_doesnt_finish.mdwn deleted file mode 100644 index a852e1dd..00000000 --- a/faq/native-install_doesnt_finish.mdwn +++ /dev/null @@ -1,24 +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]]."]]"""]] - -Copying baseGNU to the virtual disk works. Even booting got through but when I -try to run native-install it never gets to the very end. First time it froze on -*sed* package, the other time on *sysv-rc*. - -> How much memory did you configure for the [[QEMU]] system? It may simply be -> -- I've seen this myself -- that the system runs out of memory, as at the -> native-install stage (I think at least) swap is not yet configured and -> enabled. What I've been doing is: boot (with -s), MAKEDEV hdWHATEVER in -> /dev/ for the swap device, run /hurd/mach-defpager, followed by swapon -> /dev/hdWHATEVER. Does this help? - ->> Thank You very much, more memory solved the freezing. - -[[!tag open_issue_hurd]] diff --git a/faq/network_transparency.mdwn b/faq/network_transparency.mdwn deleted file mode 100644 index aefaf500..00000000 --- a/faq/network_transparency.mdwn +++ /dev/null @@ -1,22 +0,0 @@ -[[!meta copyright="Copyright © 2012 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]] - -IRC, freenode, #hurd, 2012-01-21: - - is it possible to transfer servers running on one microkernel - on one machine, to another microkernel running on a different machine? - two machines will be running the complete os - well, if the code for network-transparent IPC still existed, it - might be possible to move a task to another machine, while keeping the - port associations with the original system... - if you mean actually moving it to another system, that's pretty - much impossible in any system that has stateful interfaces diff --git a/faq/off.mdwn b/faq/off.mdwn deleted file mode 100644 index 48e6bcc7..00000000 --- a/faq/off.mdwn +++ /dev/null @@ -1,21 +0,0 @@ -[[!meta copyright="Copyright © 2010, 2013 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="shutdown does not work, How am I supposed to shut my Hurd system down?"]] - -The GNU/Hurd does not use SYSV runlevels, so commands like - - $ shutdown -h now - -will not work. Simply use the equivalent shortcut - - $ halt - -which is provided natively on GNU/Hurd, instead of from SYSV runlevels. diff --git a/faq/old-stuff.mdwn b/faq/old-stuff.mdwn deleted file mode 100644 index f5be2814..00000000 --- a/faq/old-stuff.mdwn +++ /dev/null @@ -1,30 +0,0 @@ -In addition to the [general FAQ](http://www.gnu.org/software/hurd/docs.html#TOCfaq) there are the following typical newbie questions. (There is an [updated version](http://tuxou.ouvaton.org/hurd/) which is not official yet.) - -If you still have problems, do not hesitate to make use of the [[mailing lists]] or the [[IRC]]. - -* **_You say GNU, don't you mean GNU/Hurd?_** - * Yes and no. GNU refers to the system as a whole, while GNU/Hurd is more specific, saying that it is the GNU system running on the Hurd -- to differentiate it from the GNU system running on Linux, GNU/Linux. - -* **_Why can't I get the answers I need from Hurd hackers?_** - * This [document](http://www.catb.org/~esr/faqs/smart-questions.html) may help you understand some developers attitudes and social norms. - -* **_Where are the virtual consoles I use when running Linux?_** - * The userland [[console]] provides it. You could still [use screen](http://www.gnu.org/software/hurd/faq.en.html#q4-6) of course. - -* **_What is a translator?_** - * The official FAQ [answers](http://www.gnu.org/software/hurd/faq.en.html#q4-2) this question by a reference to [hurd-doc-translator](http://www.debian.org/ports/hurd/hurd-doc-translator). - -* **_Where's the sauce?_** - * It's on [Savannah](http://savannah.gnu.org). See also the [GNU Development Resources](http://www.gnu.org/software/devel.html), for more information. - -* **_What is GNU Mach vs. oskit-mach?_** - * There used to be different versions of the Mach microkernel that supported the Hurd that runs on top of it. We currently only use GNU Mach. For more info, see [[Mach]] - -* **_What software is available for GNU?_** - * Most (3/4) packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in . Notably, [GNOME](http://www.gnome.org), and [KDE](http://www.kde.org) work. See the [[porting/guidelines]] document for some common build problems and their solutions. - * If you can't fetch a package with "apt-get install ", try building it from source: "apt-get source && cd <package\_dir> && debian/rules binary". - * As of March 2013, 78% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome. - -* **_How do I initialize a serial console on the Hurd?_** - * You can try out the Serial Howto at - * For kernel messages, you can append `console=com0` to the kernel command line. diff --git a/faq/old/old-stuff.mdwn b/faq/old/old-stuff.mdwn new file mode 100644 index 00000000..f5be2814 --- /dev/null +++ b/faq/old/old-stuff.mdwn @@ -0,0 +1,30 @@ +In addition to the [general FAQ](http://www.gnu.org/software/hurd/docs.html#TOCfaq) there are the following typical newbie questions. (There is an [updated version](http://tuxou.ouvaton.org/hurd/) which is not official yet.) + +If you still have problems, do not hesitate to make use of the [[mailing lists]] or the [[IRC]]. + +* **_You say GNU, don't you mean GNU/Hurd?_** + * Yes and no. GNU refers to the system as a whole, while GNU/Hurd is more specific, saying that it is the GNU system running on the Hurd -- to differentiate it from the GNU system running on Linux, GNU/Linux. + +* **_Why can't I get the answers I need from Hurd hackers?_** + * This [document](http://www.catb.org/~esr/faqs/smart-questions.html) may help you understand some developers attitudes and social norms. + +* **_Where are the virtual consoles I use when running Linux?_** + * The userland [[console]] provides it. You could still [use screen](http://www.gnu.org/software/hurd/faq.en.html#q4-6) of course. + +* **_What is a translator?_** + * The official FAQ [answers](http://www.gnu.org/software/hurd/faq.en.html#q4-2) this question by a reference to [hurd-doc-translator](http://www.debian.org/ports/hurd/hurd-doc-translator). + +* **_Where's the sauce?_** + * It's on [Savannah](http://savannah.gnu.org). See also the [GNU Development Resources](http://www.gnu.org/software/devel.html), for more information. + +* **_What is GNU Mach vs. oskit-mach?_** + * There used to be different versions of the Mach microkernel that supported the Hurd that runs on top of it. We currently only use GNU Mach. For more info, see [[Mach]] + +* **_What software is available for GNU?_** + * Most (3/4) packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in . Notably, [GNOME](http://www.gnome.org), and [KDE](http://www.kde.org) work. See the [[porting/guidelines]] document for some common build problems and their solutions. + * If you can't fetch a package with "apt-get install ", try building it from source: "apt-get source && cd <package\_dir> && debian/rules binary". + * As of March 2013, 78% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome. + +* **_How do I initialize a serial console on the Hurd?_** + * You can try out the Serial Howto at + * For kernel messages, you can append `console=com0` to the kernel command line. diff --git a/faq/old/old_faq.txt b/faq/old/old_faq.txt new file mode 100644 index 00000000..24127462 --- /dev/null +++ b/faq/old/old_faq.txt @@ -0,0 +1,533 @@ +[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 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]]."]]"""]] + + Frequently Asked Questions about the GNU Hurd + +This document attempts to answer the questions that most often plague +users when they are talking about, installing, using, compiling and +developing the GNU Hurd as well as its binary distribution Debian +GNU/Hurd. Be sure to read this before asking for help. + +The GNU Hurd is under active development and a stable version has not +yet been released. Be aware that: there is a lot of work yet to be +completed; you will find bugs; your system will crash. That said, there +is a lot of room for contributions at all levels: development of the +Hurd and Mach proper, porting applications, writing documentation and, +most importantly, user feedback. + +Should you have a question that is not answered by this document and you +feel that it should be, submit it and, if possible, with an answer. + +Each section is copyright its respective author(s). Permission is +granted to copy, distribute and/or modify this document under the terms +of the GNU Free Documentation License, Version 1.1 or any later version +published by the Free Software Foundation; with no Invariant Sections, +with no Front-Cover Texts and with no Back-Cover Texts. A copy of the +license is included in the file COPYRIGHT. + + Neal H Walfield + neal@cs.uml.edu + +? Installation + +?? What partition type should I use for my GNU/Hurd partitions? + +{MB} You should use an ext2 filesystem. Alternatively, you may use BSD +style ufs. The partition type number for ext2fs is 0x83 (this is the +same as in Linux), not 0x63 (GNU HURD). Thomas explains why 0x63 is the +wrong choice: + + One day we may have a new filesystem format, which would + probably be called the GNU Hurd filesystem format, and might + well use that partition code. + +Regardless, as Roland points out, it is always an error to use that code +for an ext2fs partition, + +?? How do I name partitions? + +{MB,NHW} I knew you would ask this. If I had to reduce this FAQ to only +one question, I'd choose this one. It is pretty easy, but you have to +know that there are actually several incompatibly naming convention. + +First, the Hurd: if the disk is question is a SCSI disk, you must know +the SCSI device number; if it is an IDE disk, you must know what +controller the disk is on and whether it is a master or a slave. The +Hurd uses the BSD naming convention which, is to say, disks are ordered +according to their physical location, numerically, starting from zero. +This naming scheme is quite similar to that found in Linux. There, the +master disk on the primary controller is designated as `hda' and the +slave as `hdb'. On the secondary controller, the master and the slave +are designated by `hdc' and `hdd' respectively. Under the Hurd, `hda' +would become `hd0', `hdb' would be referred to as `hd1', etc. + +In the Hurd, like in BSD, partitions are called `slices' and are +numbered starting from one. Thus, to name a particular partition, we +take the disk name, append a `s' and the partition number. Again, this +is similar to Linux except, there is no `s'. For instance, `hda1' would +become `hd0s1'. + +GRUB, the boot loader, uses a completely different nomenclature: it +probes the BIOS and appends each disk in turn to an array. Disks are enumerated +using zero based arrays. GRUB 2 enumerates partitions from one, while GRUB 1 +used to enumerate them from zero. +The format is: +`hd (, )'. Thus, in GRUB 2 `hd (0, 1)' refers to the first +partition on the first drive detected by the BIOS (or the second partition with +GRUB 1). As Grub now has tab +completion, there is not a lot of guess work. + +?? Can I use partitions larger than 2GB? + +{ST} Yes. Disk drivers however currently do not support more than 2^32 sectors, i.e. +2TiB. + +?? How much swap do I need? + +{ST} The usual rule of thumb applies: the same amount as RAM, for instance. + +?? Can I share swap space between GNU/Linux and GNU/Hurd? + +{NHW} Yes. The default pager recognises and respects Linux swap +partitions. It will also swap to a raw partition, i.e. anything that it +does not recognize as Linux swap. Therefore: BE CAREFUL. + +?? Why do I get ``Operation not permitted error''? + +{MB} You forgot to set the file system owner of the GNU/Hurd partition to +``hurd''. The Hurd uses additional information in the inodes to set +translators. To make this work, the partition must be marked as ``owned +by the Hurd''. This is normally done by passing the `-o hurd' option to +`mke2fs' when creating ext2 system from other operating systems +(filesystems created in GNU/Hurd automatically enable this option). +If you failed to do this, you can still use the `e2os' script. + +?? After `native-install' is finished, I had to write tthhiiss + wwaayy. In particular, I had to type `rreebboooott' to reboot. + +{MB} Funny, isn't it? In addition to the rescue `term' server in +`/tmp/console', another `term' server got started and is clobbing the +keyboard input. After a reboot this problem vanishes as only one `term' +server will remain. If `tar' would support translator, we would not +have this problem... Even if you don't experience this problem right +after the installation, reboot immediately so you don't hit this bug by +accident. + +? Setup + +?? How do I add a swap partition? + +{MB} A swap partition is also called a paging file. Usually, it is +sufficient to add the swap partition to `/etc/fstab', just as you would +under Linux. You can swap to a Linux swap partition and the Hurd will +honour the Linux swap signature (both versions). The Hurd will just as +happily swap to any other raw disk space and overwrite anything it +finds. So, be careful! + +If you want to swap to a file or make sure that it checks the Linux swap +signature before, you need to edit `/boot/servers.boot'. The syntax is +the partition device file name plus, optionally, the swap file inside an +ext2fs partition, followed by a space and then one of: +`$(add-raw-paging-file)', `$(add-linux-paging-file)', +`$(add-paging-file)'. The first works with any partition or file and +does not honour any swap signature or other data. The second has a +safety check and only uses the file if a Linux swap signature is found. +The third looks for a swap signature first and falls back to raw paging +if it failed to find one. This is also the default for entries in +`/etc/fstab'. + +?? How do I set up a network? + How do I set up a loopback device? + +{MB} In the former case, be sure that GNU Mach detected your network +card. Either way, you need to setup `pfinet'. Documentation can be +found at: + + http://www.debian.org/ports/hurd/hurd-doc-server#pfinet + +Don't forget to fill in `/etc/resolv.conf', `/etc/hosts', etc. + +Of course, you only need to do this if the installation routine didn't +do it for you. + +?? Can I use the GNU/Linux version of `e2fsck' on a GNU/Hurd partition? + +{MB} Yes, at least since `e2fsprogs-1.05'. Check this with `e2fsck -V' +first. + +{NHW} Do not try to defrag your partition as this utility does not know +about translators. + +?? Why are pipes not working? + +{MB} `settrans -fgc /servers/socket/1 /hurd/pflocal' should help. + +? Usage + +?? Where is the documentation? + +{NHW,MM} There are neither man pages nor info nodes for the Hurd +translators and commands. Documentation lives inside of the binaries +and can be found by passing the `--help' option to a given command. +For instance: + + # /hurd/ext2fs --help + +will tell you what types of options the ext2fs translator accepts. + +The GNU/Hurd User's Guide and the GNU Hurd Reference Manual both +provide some help about the usage of and concepts behind the GNU Hurd. +You can find them, among others, at: + + http://www.gnu.org/software/hurd/docs.html + +?? What is a translator? + +{MB} There is a text about translators available at: + + http://www.debian.org/ports/hurd/hurd-doc-translator + +Read this and ask further questions on the mailing lists. + +?? What is the login shell? + +{MB} The Hurd has the concept of a not-logged in user. This user has +neither user ids nor groups ids. This stems from the fact that the Hurd +supports uid and gid sets and one possibility is, of course, the empty +set. Rather than deny access in this case, filesystems in the Hurd offer a +fourth permission triplet (i.e. rwx) which is used to determine the +privileges for users with no credentials. This, however, needs to be +enabled on a file by file basis. By default, the `other' permission +triplet is used. + +The Hurd login shell is a shell running with neither uids nor gids. To +restrict access to your files, either enable and change the fourth +permission triplet or change the login shell of the `login' user in the +password file to `/bin/loginpr' which implements the standard login +prompt. + +?? How do I use non-US keyboard bindings? + +{ST} On Debian Hurd, you can configure the console layout from +`/etc/default/hurd-console`. + +?? How do I enable color on the console? + +{NHW} If you are using the GNU Mach microkernel, you can set your +terminal to `mach-color'. For instance: + + # export TERM=mach-color + +?? How can I enable virtual consoles? + +{ST} On Debian Hurd, it is already enabled by default, and configured from +`/etc/default/hurd-console`. + +{AMS} This can be done by running the following command: + + console -d vga -d pc_kbd -d generic_speaker /dev/vcs + +If something went wrong, or if you just wish to exit the Hurd console +then hitting C-A- will exit it. + +?? What is the status of X? + +{MB} It works! The packages are available at any Debian ftp mirror. +XFree86 4.0.2 is available, as are some of the v3 servers. Instructions +on how to use the packages are in the mailing list archive (link follow +later). + +?? What are these strange pids `0`, `2', `3', `4`, and `5`? + +{MB,ST} Zero is the `proc` processus server (and thus does not really have a pid +:) ) Two is the kernel, three is the root filesystem server, four is the `exec` +server (which handles starting programs), five is the `auth` server (which +handles user authentication). + +?? Why does `ps aux' give me strange output? + +{MB,MM} Try `ps Aux'. Indeed, under GNU/Hurd, `ps aux' doesn't list +all processes: it omits the session and group leaders, and the +processes without parent. + +?? I have a hung process that I want to kill, however, `ps' is now + hanging too. + +{MB} Interrupt it and pass it the `-M' option. + +{NHW} By default, `ps' gathers information from both the proc server and +the processes themselves (via their message port). If a process it +hung, it will not be able respond to its message port and thus, ps will +wait forever. The `-M' option instructs ps to not gather information +that would require use of the message port. + +?? Where are ... + +{MB} `dmesg' is not available. You can read `/var/log/dmesg` instead. + +?? Why does the command `df' not work? + +{NHW} It does, you just have to tell it what filesystem to query. E.g. + + # df / + +?? Why are my translators dying? + +{NHW} Try passing the `-ap' flag to settrans. By default, settrans only +sets a passive translator, therefore, no output will show up on your +terminal. Using `-ap', however, sets both the active and the passive +translator which, means that the translator starts immediately and its +stderr is connected to you terminal. + +Additionally, the biggest problem is passing relative paths to passive +translators. You cannot predict what the current working directory of a +translator will be when it is setup as a passive translator. + +?? Why can I `read' a directory? + +{MB} It is important to understand that there is nothing special about a +directory under the Hurd, it is just another file. This fits in with +the translator concept where a translator can appear as a directory but +provide also as a file. + +? Trouble shooting + +?? When the APM support in the BIOS spins down my disk drives, the + Hurd is unable to wake up. What's wrong? + +{MB} APM is not supported in the current version of GNU Mach, sorry. +Please disable APM in your BIOS setup. + +?? What are these messages referring to `default pager', `paging', + and `pager request'? + +{MB} The default pager handles virtual memory allocation. If it can't +allocate a new memory page because you are out of memory, some terrible +things may happen. Whenever you get errors referring to any of these, +you either need more memory (make sure you have swap) or you have found +a memory leak. + +?? What is a gratuitous error? + +{MB} This comes from `strerror(EGRATUITOUS)'. If you check glibc's +documentation, it will say that this error code has no purpose. This, +however, is not quite true. You only get this when something terrible +happens. Thomas explains: + + More precisely `EGRATUITOUS' officially means that some server + has responded in an impossible or protocol-violating fashion. + There are some cases in the Hurd where `EGRATUITOUS' is returned + and probably something else should be chosen instead. + +If you can reproduce this error message, please report it. + +?? What does ``computer bought the farm'' mean ? + +{FH} This message is the text that corresponds to the errno code +`EIEIO'. Roland McGrath explains: + + That message is not output by any particular servers at + particular times; rather it is the perror text for the errno + code EIEIO, which is returned by various RPCs and functions + for a variety of "hopeless" error conditions. + + +?? What does ``/dev/hd0s1: MOUNTED READ-ONLY; MUST USE `fsysopts + --writable''' mean? + +{NHW} In this case, /dev/hd0s1 was not unmounted cleanly. The Hurd +will, on boot up, run ``fsck -p'' on any partitions that it finds in +/etc/fstab, so, you may want to consider adding this partition to that +file. If you are sure that the partition is fine, you can run: + + # fsysopts /home --writable + +to ask the translator sitting on /home to change from read-only to +read/write mode. Note that the command is being sent to the filesystem +and not the store (e.g. /dev/hd0s1). + +?? When GNU/Hurd crashes, GNU Mach automatically reboots. Is + there anyway I can make it pause so I can write down the error? + +{MB} Pass the `-H' option to init (add it to the boot command line), and +`init' will tell Mach to enter the kernel debugger instead to rebooting +it. At the debugger prompt (`db>'), you can type `reboot' any time to +reboot the system. + +? Porting + +?? What programs have been ported? + +{NHW} A lot, take a look at the Debian archive. Many programs, however, +do not necessarily need to be ported; they have just never been +compiled. + +?? Is porting easy? + +{NHW} Porting applications to GNU/Hurd is relatively easy assuming the +application is POSIX compliant as GNU/Hurd does its best to be a +conforming operating system. + +The most common error made by programmers is assuming the MAXPATHLEN and +PATH_MAX are defined. On most operating systems this is set to a few +thousand, however, on GNU/Hurd, there is no maximum and thus, this is +not set. The correct thing to do is to submit a patch to the upstream +author that allocates memory dynamically. + +?? How can I help? + +{ST} Please see the contributing page: +http://www.gnu.org/software/hurd/contributing.html + +? Compiling + +?? Where can I get the source? + +{AMS} Instructions on how to download the CVS tree from Savanah are +available at https://savannah.gnu.org/cvs/?group=hurd + +{NHW} To get the source to the latest debian package, look on any +debian mirror. + +?? Can I cross compile? + +{ST} To REDO. + +{NHW} Yes. If you are running Debian GNU/Linux on IA32, this is quite +easy as there is a cheap cross compiler available; all that is required +is installing the gcc-i386-gnu and mig-i386-gnu Debian packages. When +running configure, you will have to specify tools directly: + + # MIG=/usr/bin/i386-gnu-mig CC=/usr/bin/i386-gnu-gcc \ + ../src/hurd/configure ... + +If you are running another distribution, you will have to do this the +long way. You can find instructions at the Cross Compiling HOW-TO +available at: + + http://hurddocs.sourceforge.net/howto/cross.html + +Farid Hajji also talks about his experiences +at: + + http://lists.debian.org/debian-hurd-0012/msg00062.html + +?? Any general tips? + +{NHW} Yeah, building in the source tree is untested. Try: + + # ../src/hurd/configure ... + +? Development + +?? What is OSKit-Mach? + +{NHW,FH} There are two versions of GNU Mac that are in use: GNU Mach +1.x and GNU Mach 2.x, formerly known as OSKit-Mach. The former uses +the drivers from Linux 2.0.x while the latter uses the University of +Utah's OSKit library for drivers. You can find out more about the +OSKit library at: + + http://www.cs.utah.edu/flux/oskit + +GNU Mach 2.x is usable, but some things are still missing or not +working, like the serial port and scsi drivers. This is why GNU Mach +2.0 hasn't released yet and the two versions coexist. + +?? Where is the documentation? + +{NHW} There were several books written on the Mach kernel. The +information that they contain is still mostly pertinent and should be +considered required reading for potential hackers. They can be found +at: + + http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/publications.html + +The documentation for the Hurd is quite inadequate. The starting of a +book, ``The GNU Hurd'' is in the doc directory in the Hurd source. You +can read this using: + + # info hurd + +The authoritative place is, of course, the source code; that does not, +however, mean that we would not welcome more documentation. To get +started, take a look at /doc/navigating. + +?? How do I make sure that my code is POSIX compliant? + +{NHW} Unfortunately, you have to buy the POSIX standard from IEEE. The +Single Unix Specification version 2, a superset of POSIX, is available +for free on the Internet. Try: + + http://www.unix-systems.org/online.html + +?? Who do I submit patches to? + +{NHW} If they are against the Hurd, Mach or MiG, send a patch to the +bug-hurd mailing list. + +If they are against other packages, the Debian BTS is a good place. In +this case, be sure to advise the debian-hurd mailing list of the bug. + +?? In what format should patches for the Hurd and GNU Mach be? + +{MB} All patches should be sent in unified context diff format (option +`-u' to GNU diff). It is helpful for us if you also use the `-p' +option which includes information about the function changed by a +patch. Changes that are similar can be grouped together in one file, +but unrelated changes should be sent in seperate files. The patches +can be included in the message or as a MIME attachement. They should +not be compressed and/or archived unless they are very large, and if +they are very large it is probably better to store them on-line at +some place and only sent an URL. + +Write a ChangeLog entry for each change, following the format of the +existing files. Here is an example: + + 2000-12-02 Marcus Brinkmann + + * ops.c (op_readlink): Before returning, check if the buffer + pointed to by transp is ours. If not, munmap it. + (op_read): Likewise for bp. + (op_readdir): Don't alloca a buffer here. Instead initialize + BUF and BUFSIZE to 0 and let the server (eh, MiG) do it. + munmap BUF before returning. + +The file name and the name of the function changed should always be +spelled out completely, and not abbreviated or otherwise mangled (like +foo.{c,h}), because that would make searching for all changes to a +file or function impossible. Local variable names are all +capitalized. There are two spaces between sentences. You can use +``C-x 4 a'' in Emacs to add a new ChangeLog entry. If you do that +with the mark being in a function, Emacs will automatically fill in +the file and function name for you. + +Do not send in a patch for the ChangeLog file. Rather include the +ChangeLog entries in the message that contains the patch. Patches for +ChangeLog files often conflict. + +If you have the original source tree in the directory `hurd-orig', and +the modified source tree in the directory `hurd', the following +command will produce a good patch (please make sure there are no extra +files like backups in the modified tree, or leave away the option +`-N'). You will need to collect the ChangeLog entries seperately. + + # diff -x ChangeLog -Nurp hurd-orig hurd + + +Answers were given by (in chronological order): +* {NHW} Neal H Walfield +* {MB} Marcus Brinkmann +* {AMS} Alfred M. Szmidt +* {OK} Ognyan Kulev +* {FH} Frédéric Henry +* {MM} Manuel Menal +* {ST} Samuel Thibault diff --git a/faq/old/old_hurd_faq.txt b/faq/old/old_hurd_faq.txt new file mode 100644 index 00000000..4ebe019b --- /dev/null +++ b/faq/old/old_hurd_faq.txt @@ -0,0 +1,145 @@ +The Unofficial (and no longer maintained) GNU Hurd FAQ, Version 0.13 + +Contributions by: + +Michael I. Bushnell +Len Tower +Trent Fisher +jlr@usoft.spb.su +Remy Card +Louis-Dominique Dubeau + +Original Document by: Derek Upham + + +============================== + +Contents: + +Q0. Where can I get the Unofficial GNU Hurd FAQ? +Q2. Where can I get a copy? +Q3. Why bother writing a new OS when we have Linux and 386/BSD? +Q4. What's all this about Mach 3.0 (and Mach 4.0)? +Q5. Where can I find more information? +Q7. What sort of machines will run Hurd in the future? +Q8. What is the current development status? +Q9. What sort of system would we have if the Hurd was bootable today? + +============================== + +Q0. Where can I get the Unofficial GNU Hurd FAQ? + +The Unofficial Hurd FAQ (what you are reading now) is occasionally +posted to the USENET newsgroup, gnu.misc.discuss. It is also +available from + + http://www.enci.ucalgary.ca/~gord/hurd/hurd-faq.txt (Broken Link ?) + +If you don't have WWW access, you may send mail to me, Gordon +Matzigkeit with a subject line that reads: + + Subject: send hurd-faq + +You should receive a PGP-signed copy of the current version of this +document in a matter of minutes. + + +Q2. Where can I get a copy? + +To put it simply, you can't. It is still under development (by +Michael Bushnell, Roland McGrath and Miles Bader). It is almost, but +not quite, at the point where you can do real work on it. Keep your +fingers crossed. + +Some people have actually bootstrapped it, but the work is not easy, +and the current snapshot won't work until a new multiserver boot +mechanism is made. + +If you *really* want to try it, beware that it is still pre-alpha +code, and that it will likely crash on you. See Trent Fisher's Hurd +pages (under question 5) for the latest information. + + +Q3. Why bother writing a new OS when we have Linux and 386/BSD? + +For one thing, Linux and BSD don't scale well. Hardware designers are +shifting more and more toward multiprocessor machines for performance, +and standard Unix kernels do not provide much multiprocessor support. +The Hurd, on the other hand, runs on top of the Mach 3.0 micro-kernel +[[1]] from CMU. Mach was designed precisely for multiprocessing +machines, so its portability should carry over nicely to the Hurd. + +In addition, the Hurd will be considerably more flexible and robust +than generic Unix. Wherever possible, Unix kernel features have been +moved into unprivileged space. Once there, anyone who desires can +develop custom replacements for them. Users will be able to write and +use their own file systems, their own `exec' servers, or their own +network protocols if they like, all without disturbing other users. + +The Linux kernel has now been modified to allow user-level file +systems, so there is proof that people will actually use features such +as these. It will be much easier to do under the Hurd, however, +because the Hurd is almost entirely run in user space and because the +various servers are designed for this sort of modification. + + +Q4. What's all this about Mach 3.0 (and Mach 4.0)? + +As mentioned above, Mach is a micro-kernel, written at Carnegie Mellon +University. A more descriptive term might be a greatest-common-factor +kernel, since it provides facilities common to all ``real'' operating +systems, such as memory management, inter-process communication, +processes, and a bunch of other stuff. Unfortunately, the system +calls used to access these facilities are only vaguely related to the +familiar and cherished Unix system calls. There are no "fork", +"wait", or "sleep" system-calls, no SIGHUPs, nothing like that. All +this makes it rather difficult to, say, port GNU Emacs to a Mach box. + +The trick is, of course, to write an emulation library. Unix programs +can then use (what they think are) POSIX system calls and facilities +while they are really using Mach system calls and facilities. + +The simplest way of going about this is to take an ordinary Unix +kernel, open it up, and rip out all the machine-specific guts; any +time the Unix kernel talks to the machine, replace the code with calls +to the Mach micro-kernel. Run this fake kernel on a Mach machine and +you end up with something that looks and acts just like Unix (even to +GNU Emacs). Note that the Unix kernel we have implemented is just one +Really Big Mach program (called a single-server). + +The Hurd, on the other hand, breaks the giant Unix kernel down into +various Mach programs running as daemons. Working in concert with +facilities placed in the C library, these daemons provide all of the +POSIX system-calls and features; from the outside they look just like +a standard Unix kernel. This means that, for practical purposes, +anything that you can port to Linux will also port to the Hurd. + +Of course, if a user wishes to run his own daemons, he can do that as +well.... + +Mach 4.0 is an enhanced version of Mach 3.0, put out by the people at +the University of Utah. They are working on another free operating +system, and part of it includes an enhanced, more flexible version of +Mach. The Hurd has moved to Mach 4.0, which is good, because it is a +lot easier to build than 3.0 was. + +You can find more information on Mach by browsing the Hurd pages given +in the next answer, or by looking at the Project Mach and Flux +homepages at: + +Carnegie Mellon University (for Mach versions before 4.0): + + http://www.cs.cmu.edu/afs/cs.cmu.edu/project/mach/public/www/mach.html + +the University of Utah (for Mach 4.0): + + http://www.cs.utah.edu/projects/flux/mach4/html/ + + + +============================== + +Footnotes: + +[[1]] Yes, I know that ``micro-kernel'' is about as apt a description +as ``Reduced Instruction Set Chip'', but we're stuck with it. diff --git a/faq/old_faq.txt b/faq/old_faq.txt deleted file mode 100644 index 24127462..00000000 --- a/faq/old_faq.txt +++ /dev/null @@ -1,533 +0,0 @@ -[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 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]]."]]"""]] - - Frequently Asked Questions about the GNU Hurd - -This document attempts to answer the questions that most often plague -users when they are talking about, installing, using, compiling and -developing the GNU Hurd as well as its binary distribution Debian -GNU/Hurd. Be sure to read this before asking for help. - -The GNU Hurd is under active development and a stable version has not -yet been released. Be aware that: there is a lot of work yet to be -completed; you will find bugs; your system will crash. That said, there -is a lot of room for contributions at all levels: development of the -Hurd and Mach proper, porting applications, writing documentation and, -most importantly, user feedback. - -Should you have a question that is not answered by this document and you -feel that it should be, submit it and, if possible, with an answer. - -Each section is copyright its respective author(s). Permission is -granted to copy, distribute and/or modify this document under the terms -of the GNU Free Documentation License, Version 1.1 or any later version -published by the Free Software Foundation; with no Invariant Sections, -with no Front-Cover Texts and with no Back-Cover Texts. A copy of the -license is included in the file COPYRIGHT. - - Neal H Walfield - neal@cs.uml.edu - -? Installation - -?? What partition type should I use for my GNU/Hurd partitions? - -{MB} You should use an ext2 filesystem. Alternatively, you may use BSD -style ufs. The partition type number for ext2fs is 0x83 (this is the -same as in Linux), not 0x63 (GNU HURD). Thomas explains why 0x63 is the -wrong choice: - - One day we may have a new filesystem format, which would - probably be called the GNU Hurd filesystem format, and might - well use that partition code. - -Regardless, as Roland points out, it is always an error to use that code -for an ext2fs partition, - -?? How do I name partitions? - -{MB,NHW} I knew you would ask this. If I had to reduce this FAQ to only -one question, I'd choose this one. It is pretty easy, but you have to -know that there are actually several incompatibly naming convention. - -First, the Hurd: if the disk is question is a SCSI disk, you must know -the SCSI device number; if it is an IDE disk, you must know what -controller the disk is on and whether it is a master or a slave. The -Hurd uses the BSD naming convention which, is to say, disks are ordered -according to their physical location, numerically, starting from zero. -This naming scheme is quite similar to that found in Linux. There, the -master disk on the primary controller is designated as `hda' and the -slave as `hdb'. On the secondary controller, the master and the slave -are designated by `hdc' and `hdd' respectively. Under the Hurd, `hda' -would become `hd0', `hdb' would be referred to as `hd1', etc. - -In the Hurd, like in BSD, partitions are called `slices' and are -numbered starting from one. Thus, to name a particular partition, we -take the disk name, append a `s' and the partition number. Again, this -is similar to Linux except, there is no `s'. For instance, `hda1' would -become `hd0s1'. - -GRUB, the boot loader, uses a completely different nomenclature: it -probes the BIOS and appends each disk in turn to an array. Disks are enumerated -using zero based arrays. GRUB 2 enumerates partitions from one, while GRUB 1 -used to enumerate them from zero. -The format is: -`hd (, )'. Thus, in GRUB 2 `hd (0, 1)' refers to the first -partition on the first drive detected by the BIOS (or the second partition with -GRUB 1). As Grub now has tab -completion, there is not a lot of guess work. - -?? Can I use partitions larger than 2GB? - -{ST} Yes. Disk drivers however currently do not support more than 2^32 sectors, i.e. -2TiB. - -?? How much swap do I need? - -{ST} The usual rule of thumb applies: the same amount as RAM, for instance. - -?? Can I share swap space between GNU/Linux and GNU/Hurd? - -{NHW} Yes. The default pager recognises and respects Linux swap -partitions. It will also swap to a raw partition, i.e. anything that it -does not recognize as Linux swap. Therefore: BE CAREFUL. - -?? Why do I get ``Operation not permitted error''? - -{MB} You forgot to set the file system owner of the GNU/Hurd partition to -``hurd''. The Hurd uses additional information in the inodes to set -translators. To make this work, the partition must be marked as ``owned -by the Hurd''. This is normally done by passing the `-o hurd' option to -`mke2fs' when creating ext2 system from other operating systems -(filesystems created in GNU/Hurd automatically enable this option). -If you failed to do this, you can still use the `e2os' script. - -?? After `native-install' is finished, I had to write tthhiiss - wwaayy. In particular, I had to type `rreebboooott' to reboot. - -{MB} Funny, isn't it? In addition to the rescue `term' server in -`/tmp/console', another `term' server got started and is clobbing the -keyboard input. After a reboot this problem vanishes as only one `term' -server will remain. If `tar' would support translator, we would not -have this problem... Even if you don't experience this problem right -after the installation, reboot immediately so you don't hit this bug by -accident. - -? Setup - -?? How do I add a swap partition? - -{MB} A swap partition is also called a paging file. Usually, it is -sufficient to add the swap partition to `/etc/fstab', just as you would -under Linux. You can swap to a Linux swap partition and the Hurd will -honour the Linux swap signature (both versions). The Hurd will just as -happily swap to any other raw disk space and overwrite anything it -finds. So, be careful! - -If you want to swap to a file or make sure that it checks the Linux swap -signature before, you need to edit `/boot/servers.boot'. The syntax is -the partition device file name plus, optionally, the swap file inside an -ext2fs partition, followed by a space and then one of: -`$(add-raw-paging-file)', `$(add-linux-paging-file)', -`$(add-paging-file)'. The first works with any partition or file and -does not honour any swap signature or other data. The second has a -safety check and only uses the file if a Linux swap signature is found. -The third looks for a swap signature first and falls back to raw paging -if it failed to find one. This is also the default for entries in -`/etc/fstab'. - -?? How do I set up a network? - How do I set up a loopback device? - -{MB} In the former case, be sure that GNU Mach detected your network -card. Either way, you need to setup `pfinet'. Documentation can be -found at: - - http://www.debian.org/ports/hurd/hurd-doc-server#pfinet - -Don't forget to fill in `/etc/resolv.conf', `/etc/hosts', etc. - -Of course, you only need to do this if the installation routine didn't -do it for you. - -?? Can I use the GNU/Linux version of `e2fsck' on a GNU/Hurd partition? - -{MB} Yes, at least since `e2fsprogs-1.05'. Check this with `e2fsck -V' -first. - -{NHW} Do not try to defrag your partition as this utility does not know -about translators. - -?? Why are pipes not working? - -{MB} `settrans -fgc /servers/socket/1 /hurd/pflocal' should help. - -? Usage - -?? Where is the documentation? - -{NHW,MM} There are neither man pages nor info nodes for the Hurd -translators and commands. Documentation lives inside of the binaries -and can be found by passing the `--help' option to a given command. -For instance: - - # /hurd/ext2fs --help - -will tell you what types of options the ext2fs translator accepts. - -The GNU/Hurd User's Guide and the GNU Hurd Reference Manual both -provide some help about the usage of and concepts behind the GNU Hurd. -You can find them, among others, at: - - http://www.gnu.org/software/hurd/docs.html - -?? What is a translator? - -{MB} There is a text about translators available at: - - http://www.debian.org/ports/hurd/hurd-doc-translator - -Read this and ask further questions on the mailing lists. - -?? What is the login shell? - -{MB} The Hurd has the concept of a not-logged in user. This user has -neither user ids nor groups ids. This stems from the fact that the Hurd -supports uid and gid sets and one possibility is, of course, the empty -set. Rather than deny access in this case, filesystems in the Hurd offer a -fourth permission triplet (i.e. rwx) which is used to determine the -privileges for users with no credentials. This, however, needs to be -enabled on a file by file basis. By default, the `other' permission -triplet is used. - -The Hurd login shell is a shell running with neither uids nor gids. To -restrict access to your files, either enable and change the fourth -permission triplet or change the login shell of the `login' user in the -password file to `/bin/loginpr' which implements the standard login -prompt. - -?? How do I use non-US keyboard bindings? - -{ST} On Debian Hurd, you can configure the console layout from -`/etc/default/hurd-console`. - -?? How do I enable color on the console? - -{NHW} If you are using the GNU Mach microkernel, you can set your -terminal to `mach-color'. For instance: - - # export TERM=mach-color - -?? How can I enable virtual consoles? - -{ST} On Debian Hurd, it is already enabled by default, and configured from -`/etc/default/hurd-console`. - -{AMS} This can be done by running the following command: - - console -d vga -d pc_kbd -d generic_speaker /dev/vcs - -If something went wrong, or if you just wish to exit the Hurd console -then hitting C-A- will exit it. - -?? What is the status of X? - -{MB} It works! The packages are available at any Debian ftp mirror. -XFree86 4.0.2 is available, as are some of the v3 servers. Instructions -on how to use the packages are in the mailing list archive (link follow -later). - -?? What are these strange pids `0`, `2', `3', `4`, and `5`? - -{MB,ST} Zero is the `proc` processus server (and thus does not really have a pid -:) ) Two is the kernel, three is the root filesystem server, four is the `exec` -server (which handles starting programs), five is the `auth` server (which -handles user authentication). - -?? Why does `ps aux' give me strange output? - -{MB,MM} Try `ps Aux'. Indeed, under GNU/Hurd, `ps aux' doesn't list -all processes: it omits the session and group leaders, and the -processes without parent. - -?? I have a hung process that I want to kill, however, `ps' is now - hanging too. - -{MB} Interrupt it and pass it the `-M' option. - -{NHW} By default, `ps' gathers information from both the proc server and -the processes themselves (via their message port). If a process it -hung, it will not be able respond to its message port and thus, ps will -wait forever. The `-M' option instructs ps to not gather information -that would require use of the message port. - -?? Where are ... - -{MB} `dmesg' is not available. You can read `/var/log/dmesg` instead. - -?? Why does the command `df' not work? - -{NHW} It does, you just have to tell it what filesystem to query. E.g. - - # df / - -?? Why are my translators dying? - -{NHW} Try passing the `-ap' flag to settrans. By default, settrans only -sets a passive translator, therefore, no output will show up on your -terminal. Using `-ap', however, sets both the active and the passive -translator which, means that the translator starts immediately and its -stderr is connected to you terminal. - -Additionally, the biggest problem is passing relative paths to passive -translators. You cannot predict what the current working directory of a -translator will be when it is setup as a passive translator. - -?? Why can I `read' a directory? - -{MB} It is important to understand that there is nothing special about a -directory under the Hurd, it is just another file. This fits in with -the translator concept where a translator can appear as a directory but -provide also as a file. - -? Trouble shooting - -?? When the APM support in the BIOS spins down my disk drives, the - Hurd is unable to wake up. What's wrong? - -{MB} APM is not supported in the current version of GNU Mach, sorry. -Please disable APM in your BIOS setup. - -?? What are these messages referring to `default pager', `paging', - and `pager request'? - -{MB} The default pager handles virtual memory allocation. If it can't -allocate a new memory page because you are out of memory, some terrible -things may happen. Whenever you get errors referring to any of these, -you either need more memory (make sure you have swap) or you have found -a memory leak. - -?? What is a gratuitous error? - -{MB} This comes from `strerror(EGRATUITOUS)'. If you check glibc's -documentation, it will say that this error code has no purpose. This, -however, is not quite true. You only get this when something terrible -happens. Thomas explains: - - More precisely `EGRATUITOUS' officially means that some server - has responded in an impossible or protocol-violating fashion. - There are some cases in the Hurd where `EGRATUITOUS' is returned - and probably something else should be chosen instead. - -If you can reproduce this error message, please report it. - -?? What does ``computer bought the farm'' mean ? - -{FH} This message is the text that corresponds to the errno code -`EIEIO'. Roland McGrath explains: - - That message is not output by any particular servers at - particular times; rather it is the perror text for the errno - code EIEIO, which is returned by various RPCs and functions - for a variety of "hopeless" error conditions. - - -?? What does ``/dev/hd0s1: MOUNTED READ-ONLY; MUST USE `fsysopts - --writable''' mean? - -{NHW} In this case, /dev/hd0s1 was not unmounted cleanly. The Hurd -will, on boot up, run ``fsck -p'' on any partitions that it finds in -/etc/fstab, so, you may want to consider adding this partition to that -file. If you are sure that the partition is fine, you can run: - - # fsysopts /home --writable - -to ask the translator sitting on /home to change from read-only to -read/write mode. Note that the command is being sent to the filesystem -and not the store (e.g. /dev/hd0s1). - -?? When GNU/Hurd crashes, GNU Mach automatically reboots. Is - there anyway I can make it pause so I can write down the error? - -{MB} Pass the `-H' option to init (add it to the boot command line), and -`init' will tell Mach to enter the kernel debugger instead to rebooting -it. At the debugger prompt (`db>'), you can type `reboot' any time to -reboot the system. - -? Porting - -?? What programs have been ported? - -{NHW} A lot, take a look at the Debian archive. Many programs, however, -do not necessarily need to be ported; they have just never been -compiled. - -?? Is porting easy? - -{NHW} Porting applications to GNU/Hurd is relatively easy assuming the -application is POSIX compliant as GNU/Hurd does its best to be a -conforming operating system. - -The most common error made by programmers is assuming the MAXPATHLEN and -PATH_MAX are defined. On most operating systems this is set to a few -thousand, however, on GNU/Hurd, there is no maximum and thus, this is -not set. The correct thing to do is to submit a patch to the upstream -author that allocates memory dynamically. - -?? How can I help? - -{ST} Please see the contributing page: -http://www.gnu.org/software/hurd/contributing.html - -? Compiling - -?? Where can I get the source? - -{AMS} Instructions on how to download the CVS tree from Savanah are -available at https://savannah.gnu.org/cvs/?group=hurd - -{NHW} To get the source to the latest debian package, look on any -debian mirror. - -?? Can I cross compile? - -{ST} To REDO. - -{NHW} Yes. If you are running Debian GNU/Linux on IA32, this is quite -easy as there is a cheap cross compiler available; all that is required -is installing the gcc-i386-gnu and mig-i386-gnu Debian packages. When -running configure, you will have to specify tools directly: - - # MIG=/usr/bin/i386-gnu-mig CC=/usr/bin/i386-gnu-gcc \ - ../src/hurd/configure ... - -If you are running another distribution, you will have to do this the -long way. You can find instructions at the Cross Compiling HOW-TO -available at: - - http://hurddocs.sourceforge.net/howto/cross.html - -Farid Hajji also talks about his experiences -at: - - http://lists.debian.org/debian-hurd-0012/msg00062.html - -?? Any general tips? - -{NHW} Yeah, building in the source tree is untested. Try: - - # ../src/hurd/configure ... - -? Development - -?? What is OSKit-Mach? - -{NHW,FH} There are two versions of GNU Mac that are in use: GNU Mach -1.x and GNU Mach 2.x, formerly known as OSKit-Mach. The former uses -the drivers from Linux 2.0.x while the latter uses the University of -Utah's OSKit library for drivers. You can find out more about the -OSKit library at: - - http://www.cs.utah.edu/flux/oskit - -GNU Mach 2.x is usable, but some things are still missing or not -working, like the serial port and scsi drivers. This is why GNU Mach -2.0 hasn't released yet and the two versions coexist. - -?? Where is the documentation? - -{NHW} There were several books written on the Mach kernel. The -information that they contain is still mostly pertinent and should be -considered required reading for potential hackers. They can be found -at: - - http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/publications.html - -The documentation for the Hurd is quite inadequate. The starting of a -book, ``The GNU Hurd'' is in the doc directory in the Hurd source. You -can read this using: - - # info hurd - -The authoritative place is, of course, the source code; that does not, -however, mean that we would not welcome more documentation. To get -started, take a look at /doc/navigating. - -?? How do I make sure that my code is POSIX compliant? - -{NHW} Unfortunately, you have to buy the POSIX standard from IEEE. The -Single Unix Specification version 2, a superset of POSIX, is available -for free on the Internet. Try: - - http://www.unix-systems.org/online.html - -?? Who do I submit patches to? - -{NHW} If they are against the Hurd, Mach or MiG, send a patch to the -bug-hurd mailing list. - -If they are against other packages, the Debian BTS is a good place. In -this case, be sure to advise the debian-hurd mailing list of the bug. - -?? In what format should patches for the Hurd and GNU Mach be? - -{MB} All patches should be sent in unified context diff format (option -`-u' to GNU diff). It is helpful for us if you also use the `-p' -option which includes information about the function changed by a -patch. Changes that are similar can be grouped together in one file, -but unrelated changes should be sent in seperate files. The patches -can be included in the message or as a MIME attachement. They should -not be compressed and/or archived unless they are very large, and if -they are very large it is probably better to store them on-line at -some place and only sent an URL. - -Write a ChangeLog entry for each change, following the format of the -existing files. Here is an example: - - 2000-12-02 Marcus Brinkmann - - * ops.c (op_readlink): Before returning, check if the buffer - pointed to by transp is ours. If not, munmap it. - (op_read): Likewise for bp. - (op_readdir): Don't alloca a buffer here. Instead initialize - BUF and BUFSIZE to 0 and let the server (eh, MiG) do it. - munmap BUF before returning. - -The file name and the name of the function changed should always be -spelled out completely, and not abbreviated or otherwise mangled (like -foo.{c,h}), because that would make searching for all changes to a -file or function impossible. Local variable names are all -capitalized. There are two spaces between sentences. You can use -``C-x 4 a'' in Emacs to add a new ChangeLog entry. If you do that -with the mark being in a function, Emacs will automatically fill in -the file and function name for you. - -Do not send in a patch for the ChangeLog file. Rather include the -ChangeLog entries in the message that contains the patch. Patches for -ChangeLog files often conflict. - -If you have the original source tree in the directory `hurd-orig', and -the modified source tree in the directory `hurd', the following -command will produce a good patch (please make sure there are no extra -files like backups in the modified tree, or leave away the option -`-N'). You will need to collect the ChangeLog entries seperately. - - # diff -x ChangeLog -Nurp hurd-orig hurd - - -Answers were given by (in chronological order): -* {NHW} Neal H Walfield -* {MB} Marcus Brinkmann -* {AMS} Alfred M. Szmidt -* {OK} Ognyan Kulev -* {FH} Frédéric Henry -* {MM} Manuel Menal -* {ST} Samuel Thibault diff --git a/faq/old_hurd_faq.txt b/faq/old_hurd_faq.txt deleted file mode 100644 index 4ebe019b..00000000 --- a/faq/old_hurd_faq.txt +++ /dev/null @@ -1,145 +0,0 @@ -The Unofficial (and no longer maintained) GNU Hurd FAQ, Version 0.13 - -Contributions by: - -Michael I. Bushnell -Len Tower -Trent Fisher -jlr@usoft.spb.su -Remy Card -Louis-Dominique Dubeau - -Original Document by: Derek Upham - - -============================== - -Contents: - -Q0. Where can I get the Unofficial GNU Hurd FAQ? -Q2. Where can I get a copy? -Q3. Why bother writing a new OS when we have Linux and 386/BSD? -Q4. What's all this about Mach 3.0 (and Mach 4.0)? -Q5. Where can I find more information? -Q7. What sort of machines will run Hurd in the future? -Q8. What is the current development status? -Q9. What sort of system would we have if the Hurd was bootable today? - -============================== - -Q0. Where can I get the Unofficial GNU Hurd FAQ? - -The Unofficial Hurd FAQ (what you are reading now) is occasionally -posted to the USENET newsgroup, gnu.misc.discuss. It is also -available from - - http://www.enci.ucalgary.ca/~gord/hurd/hurd-faq.txt (Broken Link ?) - -If you don't have WWW access, you may send mail to me, Gordon -Matzigkeit with a subject line that reads: - - Subject: send hurd-faq - -You should receive a PGP-signed copy of the current version of this -document in a matter of minutes. - - -Q2. Where can I get a copy? - -To put it simply, you can't. It is still under development (by -Michael Bushnell, Roland McGrath and Miles Bader). It is almost, but -not quite, at the point where you can do real work on it. Keep your -fingers crossed. - -Some people have actually bootstrapped it, but the work is not easy, -and the current snapshot won't work until a new multiserver boot -mechanism is made. - -If you *really* want to try it, beware that it is still pre-alpha -code, and that it will likely crash on you. See Trent Fisher's Hurd -pages (under question 5) for the latest information. - - -Q3. Why bother writing a new OS when we have Linux and 386/BSD? - -For one thing, Linux and BSD don't scale well. Hardware designers are -shifting more and more toward multiprocessor machines for performance, -and standard Unix kernels do not provide much multiprocessor support. -The Hurd, on the other hand, runs on top of the Mach 3.0 micro-kernel -[[1]] from CMU. Mach was designed precisely for multiprocessing -machines, so its portability should carry over nicely to the Hurd. - -In addition, the Hurd will be considerably more flexible and robust -than generic Unix. Wherever possible, Unix kernel features have been -moved into unprivileged space. Once there, anyone who desires can -develop custom replacements for them. Users will be able to write and -use their own file systems, their own `exec' servers, or their own -network protocols if they like, all without disturbing other users. - -The Linux kernel has now been modified to allow user-level file -systems, so there is proof that people will actually use features such -as these. It will be much easier to do under the Hurd, however, -because the Hurd is almost entirely run in user space and because the -various servers are designed for this sort of modification. - - -Q4. What's all this about Mach 3.0 (and Mach 4.0)? - -As mentioned above, Mach is a micro-kernel, written at Carnegie Mellon -University. A more descriptive term might be a greatest-common-factor -kernel, since it provides facilities common to all ``real'' operating -systems, such as memory management, inter-process communication, -processes, and a bunch of other stuff. Unfortunately, the system -calls used to access these facilities are only vaguely related to the -familiar and cherished Unix system calls. There are no "fork", -"wait", or "sleep" system-calls, no SIGHUPs, nothing like that. All -this makes it rather difficult to, say, port GNU Emacs to a Mach box. - -The trick is, of course, to write an emulation library. Unix programs -can then use (what they think are) POSIX system calls and facilities -while they are really using Mach system calls and facilities. - -The simplest way of going about this is to take an ordinary Unix -kernel, open it up, and rip out all the machine-specific guts; any -time the Unix kernel talks to the machine, replace the code with calls -to the Mach micro-kernel. Run this fake kernel on a Mach machine and -you end up with something that looks and acts just like Unix (even to -GNU Emacs). Note that the Unix kernel we have implemented is just one -Really Big Mach program (called a single-server). - -The Hurd, on the other hand, breaks the giant Unix kernel down into -various Mach programs running as daemons. Working in concert with -facilities placed in the C library, these daemons provide all of the -POSIX system-calls and features; from the outside they look just like -a standard Unix kernel. This means that, for practical purposes, -anything that you can port to Linux will also port to the Hurd. - -Of course, if a user wishes to run his own daemons, he can do that as -well.... - -Mach 4.0 is an enhanced version of Mach 3.0, put out by the people at -the University of Utah. They are working on another free operating -system, and part of it includes an enhanced, more flexible version of -Mach. The Hurd has moved to Mach 4.0, which is good, because it is a -lot easier to build than 3.0 was. - -You can find more information on Mach by browsing the Hurd pages given -in the next answer, or by looking at the Project Mach and Flux -homepages at: - -Carnegie Mellon University (for Mach versions before 4.0): - - http://www.cs.cmu.edu/afs/cs.cmu.edu/project/mach/public/www/mach.html - -the University of Utah (for Mach 4.0): - - http://www.cs.utah.edu/projects/flux/mach4/html/ - - - -============================== - -Footnotes: - -[[1]] Yes, I know that ``micro-kernel'' is about as apt a description -as ``Reduced Instruction Set Chip'', but we're stuck with it. diff --git a/faq/posix_compatibility.mdwn b/faq/posix_compatibility.mdwn deleted file mode 100644 index 4490b7cb..00000000 --- a/faq/posix_compatibility.mdwn +++ /dev/null @@ -1,32 +0,0 @@ -[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled [[GNU Free Documentation -License|/fdl]]."]]"""]] - -[[!meta title="POSIX compatibility"]] - -Is it favorable of rather a hindrance to be compatible to POSIX and similar -standards? - -A lot of things in POSIX et al. are designed for [[UNIX]]-like systems with -traditional monolithic [[kernel]]s. - -Thus, a [[microkernel]]-based system, as ours is, has to employ a bunch of -detours, for example to implement the [[`fork` system call|glibc/fork]]. - -On the other hand, (mostly) complying to these standards, made a really big -body of software *just work* without any (or just trivial) [[hurd/porting]]. -Especially so for command-line programs, and libraries. - -But: a large part of today's user programs are not written according to POSIX -et al. low-level interfaces, but against GNOME, GTK+2, and other high-level -frameworks and libraries. It may be a valid option to enrich these instead of -striving for total POSIX compliance -- and the high-level programs (that is, -their users) may not even notice this, but we would avoid a lot of overhead -that comes with wrapping the [[Hurd interfaces|hurd/interface]] to be POSIX -compliant. diff --git a/faq/posix_compatibility/discussion.mdwn b/faq/posix_compatibility/discussion.mdwn deleted file mode 100644 index 0d722c9e..00000000 --- a/faq/posix_compatibility/discussion.mdwn +++ /dev/null @@ -1,25 +0,0 @@ -[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled [[GNU Free Documentation -License|/fdl]]."]]"""]] - -[[!tag open_issue_documentation]] - -\#hurd IRC channel on Freenode, 2010-12-21: - - tschwinge: the writeup ignores the fact that POSIX compatibility - is not only for applications, but also for users familiar with the UNIX - environment - also, I still don't buy the fact that most software is not written - for POSIX. even if assuming that GNOME programs don't use POSIX (which is - only half true), there is a lot of other software in a system that is - just as important, though less visible - (server software, startup system, device management, automation, - ...) - tschwinge: BTW, I meant to (and partially did) write a blog - article on this topic -- but I didn't get around to finish it... diff --git a/faq/ps_hangs.mdwn b/faq/ps_hangs.mdwn deleted file mode 100644 index b58a3308..00000000 --- a/faq/ps_hangs.mdwn +++ /dev/null @@ -1,13 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2013 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]]."]]"""]] - -If `ps` hangs, try `ps -M` which should still work by not getting detailed -information from processes. diff --git a/faq/ram_limit.mdwn b/faq/ram_limit.mdwn deleted file mode 100644 index 4043203e..00000000 --- a/faq/ram_limit.mdwn +++ /dev/null @@ -1,22 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2013 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="830 MiB RAM Limit"]] - -Just like any 32bit OS without bad tricks, GNU Mach can not cope well with lots -of memory. Latest versions of the Debian `gnumach` package will limit themselves -to around 1.7 GiB of memory. If you want more, you can twiddle the `VM_MAX_ADDRESS` -limit between kernelland and userland in `i386/include/mach/i386/vm_param.h`. - -If you have an older version, or still experience problems with `vmstat` (see -above) reported much less memory than you have, the best is to limit the memory -it can see via GRUB's `upppermem` feature. Add `uppermem 786432` to GRUB's Hurd -entry in `menu.lst`. diff --git a/faq/running/df.mdwn b/faq/running/df.mdwn new file mode 100644 index 00000000..51de2b6c --- /dev/null +++ b/faq/running/df.mdwn @@ -0,0 +1,21 @@ +[[!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]]."]]"""]] + +[[!meta title="Why doesn't df work?"]] + +There is no `/etc/mtab` (due to dynamic translator startup, its content is hard +to define actually, see +[[the mtab GSoC project idea|community/gsoc/project_ideas/mtab]]), +so just running `df` will yield the following error. + + df: cannot read table of mounted file systems + +Pass `df` a path like `df /` or `df ./` to see the disk usage of that particular +file system. diff --git a/faq/running/hurd_console.mdwn b/faq/running/hurd_console.mdwn new file mode 100644 index 00000000..cb2de2c0 --- /dev/null +++ b/faq/running/hurd_console.mdwn @@ -0,0 +1,13 @@ +[[!meta copyright="Copyright © 2007, 2008, 2013 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]]."]]"""]] + +Edit `/etc/default/hurd-console` to configure the Hurd console. +See [[hurd/console]] for further information about the Hurd console. diff --git a/faq/running/kernel_logs.mdwn b/faq/running/kernel_logs.mdwn new file mode 100644 index 00000000..0c9e05a0 --- /dev/null +++ b/faq/running/kernel_logs.mdwn @@ -0,0 +1,16 @@ +[[!meta copyright="Copyright © 2007, 2008, 2013 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="dmesg, kernel logs"]] + +There is no `dmesg` command, since the kernel does not keep a buffer of its +messages. syslog however dumps them into `/var/log/dmesg`, so you can simply cat +that. diff --git a/faq/running/off.mdwn b/faq/running/off.mdwn new file mode 100644 index 00000000..48e6bcc7 --- /dev/null +++ b/faq/running/off.mdwn @@ -0,0 +1,21 @@ +[[!meta copyright="Copyright © 2010, 2013 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="shutdown does not work, How am I supposed to shut my Hurd system down?"]] + +The GNU/Hurd does not use SYSV runlevels, so commands like + + $ shutdown -h now + +will not work. Simply use the equivalent shortcut + + $ halt + +which is provided natively on GNU/Hurd, instead of from SYSV runlevels. diff --git a/faq/running/ps_hangs.mdwn b/faq/running/ps_hangs.mdwn new file mode 100644 index 00000000..b58a3308 --- /dev/null +++ b/faq/running/ps_hangs.mdwn @@ -0,0 +1,13 @@ +[[!meta copyright="Copyright © 2007, 2008, 2013 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]]."]]"""]] + +If `ps` hangs, try `ps -M` which should still work by not getting detailed +information from processes. diff --git a/faq/running/slash_usr_symlink.mdwn b/faq/running/slash_usr_symlink.mdwn new file mode 100644 index 00000000..5c47f4e1 --- /dev/null +++ b/faq/running/slash_usr_symlink.mdwn @@ -0,0 +1,20 @@ +[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 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]]."]]"""]] + +[[!meta title="Why is `/usr' a symbolic link to `.'?"]] + +The distinction between `/` and `/usr` has historical reasons. Back when [[Unix]] +systems were booted from two tapes, a small root tape and a big user tape. +Today, we like to use different partitions for these two spaces. The Hurd +throws this historical garbage away. We think that we have found a more +flexible solution called union filesystems, which allow to create virtual +filesystems which are the union of several other filesystems. However, support +for union filesystems is still in early development. diff --git a/faq/running/slash_usr_symlink/discussion.mdwn b/faq/running/slash_usr_symlink/discussion.mdwn new file mode 100644 index 00000000..219e14e4 --- /dev/null +++ b/faq/running/slash_usr_symlink/discussion.mdwn @@ -0,0 +1,45 @@ +[[!meta copyright="Copyright © 2012 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]] + + +# IRC, freenode, #hurd, 2012-02-01 + + I remember the time when we had a /usr symlink. Now fedora 17 + will move / to /usr and have /foo symlinks. :) + braunr: + http://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge + braunr: fedora and others are merging /bin, /sbin and some other + into /usr + braunr: back in 1998 we tried for two years or so to have /usr -> + .. in Debian GNU/Hurd, but eventually we gave up on it, because it broke + some stuff + marcusb: Hi, which one is better (in your opinion): / or /usr? + gnu_srs: fedora says that using /usr allows better separation of + distribution files and machine-local files + marcusb: won't it break remote /usr ? + so you can atomically mount the OS files to /usr + gnu_srs: but in the end, it's a wash + personally, I think every package should get its own directory + marcusb: what PATH then ? + braunr: well, I guess you'd want to assemble a union filesystem + for a POSIX shell + marcusb: i don't see what you mean :/ + ah this comes from Lennart Poettering + braunr: check out for example how http://nixos.org/ does it + braunr: something like, union /package1/bin /package2/bin + /package3/bin for /bin, /package1/lib /package2/lib /package3/lib for + /lib, etc. I guess + manuel: would that scale well ? + the idea that there is only one correct binary for each program + with the name foo is noble, but a complete illusion that hides the + complexity of the actual configuration management task + marcusb: right diff --git a/faq/running/xserver-common.mdwn b/faq/running/xserver-common.mdwn new file mode 100644 index 00000000..460c6e55 --- /dev/null +++ b/faq/running/xserver-common.mdwn @@ -0,0 +1,15 @@ +[[!meta copyright="Copyright © 2007, 2008, 2013 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="Normal users can't start X"]] + +You need to run `dpkg-reconfigure x11-common` and select `Anybody` for +starting X as there is no way to detect console users currently. diff --git a/faq/sata_disk_drives.mdwn b/faq/sata_disk_drives.mdwn deleted file mode 100644 index 2edaa610..00000000 --- a/faq/sata_disk_drives.mdwn +++ /dev/null @@ -1,17 +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]]."]]"""]] - -[[!meta title="Are SATA disk drives supported?"]] - -GNU Mach does not support SATA disk drives (`/dev/sda` etc. in GNU/Linux) -natively, so using `device:sd0s1` will not work, as sd* devices are for SCSI -drives only. -The only way to get those drives to work is to put them into compatibility mode -in the BIOS, if such an option exists. GNU Mach will then recognize them as hda etc. diff --git a/faq/sharing_the_user_space.mdwn b/faq/sharing_the_user_space.mdwn deleted file mode 100644 index 8702470a..00000000 --- a/faq/sharing_the_user_space.mdwn +++ /dev/null @@ -1,23 +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]]."]]"""]] - -[[!meta title=" 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?]] - -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 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, -but you need a separate installation of the userspace suited for the Linux -kernel, or the GNU Hurd. diff --git a/faq/slash_usr_symlink.mdwn b/faq/slash_usr_symlink.mdwn deleted file mode 100644 index 5c47f4e1..00000000 --- a/faq/slash_usr_symlink.mdwn +++ /dev/null @@ -1,20 +0,0 @@ -[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 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]]."]]"""]] - -[[!meta title="Why is `/usr' a symbolic link to `.'?"]] - -The distinction between `/` and `/usr` has historical reasons. Back when [[Unix]] -systems were booted from two tapes, a small root tape and a big user tape. -Today, we like to use different partitions for these two spaces. The Hurd -throws this historical garbage away. We think that we have found a more -flexible solution called union filesystems, which allow to create virtual -filesystems which are the union of several other filesystems. However, support -for union filesystems is still in early development. diff --git a/faq/slash_usr_symlink/discussion.mdwn b/faq/slash_usr_symlink/discussion.mdwn deleted file mode 100644 index 219e14e4..00000000 --- a/faq/slash_usr_symlink/discussion.mdwn +++ /dev/null @@ -1,45 +0,0 @@ -[[!meta copyright="Copyright © 2012 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]] - - -# IRC, freenode, #hurd, 2012-02-01 - - I remember the time when we had a /usr symlink. Now fedora 17 - will move / to /usr and have /foo symlinks. :) - braunr: - http://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge - braunr: fedora and others are merging /bin, /sbin and some other - into /usr - braunr: back in 1998 we tried for two years or so to have /usr -> - .. in Debian GNU/Hurd, but eventually we gave up on it, because it broke - some stuff - marcusb: Hi, which one is better (in your opinion): / or /usr? - gnu_srs: fedora says that using /usr allows better separation of - distribution files and machine-local files - marcusb: won't it break remote /usr ? - so you can atomically mount the OS files to /usr - gnu_srs: but in the end, it's a wash - personally, I think every package should get its own directory - marcusb: what PATH then ? - braunr: well, I guess you'd want to assemble a union filesystem - for a POSIX shell - marcusb: i don't see what you mean :/ - ah this comes from Lennart Poettering - braunr: check out for example how http://nixos.org/ does it - braunr: something like, union /package1/bin /package2/bin - /package3/bin for /bin, /package1/lib /package2/lib /package3/lib for - /lib, etc. I guess - manuel: would that scale well ? - the idea that there is only one correct binary for each program - with the name foo is noble, but a complete illusion that hides the - complexity of the actual configuration management task - marcusb: right diff --git a/faq/smp.mdwn b/faq/smp.mdwn deleted file mode 100644 index e95edcd2..00000000 --- a/faq/smp.mdwn +++ /dev/null @@ -1,28 +0,0 @@ -[[!meta copyright="Copyright © 2009, 2011 Free Software Foundation, Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled [[GNU Free Documentation -License|/fdl]]."]]"""]] - -[[!meta title="Does GNU/Hurd support SMP/Multicore?"]] - -The Hurd servers themselves are multithreaded, so they should be able to take benefit of the parallelism brought by SMP/Multicore boxes. This has however never been tested yet because of the following. - -[[microkernel/Mach]] used to be running on SMP boxes like the [[!wikipedia -Intel_iPSC/860]], so principally has the required infrastructure. It has -however not yet been enhanced to support nowadays' SMP standards like ACPI, -etc. Also, [[GNU Mach|microkernel/mach/gnumach]]'s Linux device driver glue -code likely isn't SMP-safe. As this glue code layer is not used in the -[[microkernel/mach/gnumach/ports/Xen]] port of GNU Mach, the plan is to try it -in this enviroment first. - -[[!tag open_issue_gnumach open_issue_xen]] - -That is why for now GNU/Hurd will only use one logical processor (i.e. one core or one thread, depending on the socket type). - -Once this issue is solved, there are follow-up issues about -[[open_issues/multiprocessing]] and [[open_issues/multithreading]]. diff --git a/faq/support/2_gib_partition_limit.mdwn b/faq/support/2_gib_partition_limit.mdwn new file mode 100644 index 00000000..726605f9 --- /dev/null +++ b/faq/support/2_gib_partition_limit.mdwn @@ -0,0 +1,13 @@ +[[!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]]."]]"""]] + +[[!meta title="Is there still a 2 GiB Partition Limit ?"]] + +The 2 GiB limit has been removed in Debian GNU/Hurd. diff --git a/faq/support/64bit.mdwn b/faq/support/64bit.mdwn new file mode 100644 index 00000000..5b899b55 --- /dev/null +++ b/faq/support/64bit.mdwn @@ -0,0 +1,17 @@ +[[!meta copyright="Copyright © 2013 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="Is there a 64bit version?"]] + +There are currently no plan for 64bit userland, but there are plans for 64bit +kernelland + 32bit userland, which will notably permit to efficiently make use +of more than 2GiB memory and provide 4GiB userland addressing space. Work on +this is currently in branches in GNU Mach. diff --git a/faq/support/binary_compatibility.mdwn b/faq/support/binary_compatibility.mdwn new file mode 100644 index 00000000..e9dfcdb8 --- /dev/null +++ b/faq/support/binary_compatibility.mdwn @@ -0,0 +1,33 @@ +[[!meta copyright="Copyright © 2012 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]] + +IRC, freenode, #hurd, 2012-01-13: + + sothere's absolutelyno way,evenslowly to run i386 linuxcode + under hurd/i386? Ihave a small app, commercial, which I have to get + running there + no source + no way + you'd need to create a userspace linux server catching linux + system calls and calling hurd specific stuff to implement them + it doesn't exist, it may be hard to implement + some cases will definitely be hard to implement + so, no magic linux lxemu on windows? + or linuxemu on plan9 + nope + I remember somethingsilly, sonmone hadcompiled linux asauser + applicationon plan9 and inserted his own binaries as + acodeobject,toberunon plan9, for useon ibm hpc hatrdware + it was ron minich + 5e.iwp9.org/slides/linuxemu.pdf + I think that was it + google for linux & cnk for additional clues diff --git a/faq/support/fuse_support.mdwn b/faq/support/fuse_support.mdwn new file mode 100644 index 00000000..8867d954 --- /dev/null +++ b/faq/support/fuse_support.mdwn @@ -0,0 +1,14 @@ +[[!meta copyright="Copyright © 2013 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="Does Hurd support FUSE?"]] + +There is a start of work on implementing a [[FUSE|hurd/libfuse]] library on Hurd; its support is not updated to the latest version, but at least some fuse filesystems do work already. diff --git a/faq/support/how_about_drivers.mdwn b/faq/support/how_about_drivers.mdwn new file mode 100644 index 00000000..974fb612 --- /dev/null +++ b/faq/support/how_about_drivers.mdwn @@ -0,0 +1,18 @@ +[[!meta copyright="Copyright © 2009, 2013 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, for disks Mach integrates drivers from Linux 2.0 through some +[[community/gsoc/project_ideas/driver_glue_code]]. As it's very old, that +limits hardware support a lot, of course. For network boards, we use the +[[DDE]] toolkit to run linux 2.6.32 drivers in userland processes, +which provides both long-term support for new hardware and safety against driver +bugs. diff --git a/faq/support/network_transparency.mdwn b/faq/support/network_transparency.mdwn new file mode 100644 index 00000000..aefaf500 --- /dev/null +++ b/faq/support/network_transparency.mdwn @@ -0,0 +1,22 @@ +[[!meta copyright="Copyright © 2012 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]] + +IRC, freenode, #hurd, 2012-01-21: + + is it possible to transfer servers running on one microkernel + on one machine, to another microkernel running on a different machine? + two machines will be running the complete os + well, if the code for network-transparent IPC still existed, it + might be possible to move a task to another machine, while keeping the + port associations with the original system... + if you mean actually moving it to another system, that's pretty + much impossible in any system that has stateful interfaces diff --git a/faq/support/posix_compatibility.mdwn b/faq/support/posix_compatibility.mdwn new file mode 100644 index 00000000..4490b7cb --- /dev/null +++ b/faq/support/posix_compatibility.mdwn @@ -0,0 +1,32 @@ +[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!meta title="POSIX compatibility"]] + +Is it favorable of rather a hindrance to be compatible to POSIX and similar +standards? + +A lot of things in POSIX et al. are designed for [[UNIX]]-like systems with +traditional monolithic [[kernel]]s. + +Thus, a [[microkernel]]-based system, as ours is, has to employ a bunch of +detours, for example to implement the [[`fork` system call|glibc/fork]]. + +On the other hand, (mostly) complying to these standards, made a really big +body of software *just work* without any (or just trivial) [[hurd/porting]]. +Especially so for command-line programs, and libraries. + +But: a large part of today's user programs are not written according to POSIX +et al. low-level interfaces, but against GNOME, GTK+2, and other high-level +frameworks and libraries. It may be a valid option to enrich these instead of +striving for total POSIX compliance -- and the high-level programs (that is, +their users) may not even notice this, but we would avoid a lot of overhead +that comes with wrapping the [[Hurd interfaces|hurd/interface]] to be POSIX +compliant. diff --git a/faq/support/posix_compatibility/discussion.mdwn b/faq/support/posix_compatibility/discussion.mdwn new file mode 100644 index 00000000..0d722c9e --- /dev/null +++ b/faq/support/posix_compatibility/discussion.mdwn @@ -0,0 +1,25 @@ +[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!tag open_issue_documentation]] + +\#hurd IRC channel on Freenode, 2010-12-21: + + tschwinge: the writeup ignores the fact that POSIX compatibility + is not only for applications, but also for users familiar with the UNIX + environment + also, I still don't buy the fact that most software is not written + for POSIX. even if assuming that GNOME programs don't use POSIX (which is + only half true), there is a lot of other software in a system that is + just as important, though less visible + (server software, startup system, device management, automation, + ...) + tschwinge: BTW, I meant to (and partially did) write a blog + article on this topic -- but I didn't get around to finish it... diff --git a/faq/support/ram_limit.mdwn b/faq/support/ram_limit.mdwn new file mode 100644 index 00000000..4043203e --- /dev/null +++ b/faq/support/ram_limit.mdwn @@ -0,0 +1,22 @@ +[[!meta copyright="Copyright © 2007, 2008, 2013 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="830 MiB RAM Limit"]] + +Just like any 32bit OS without bad tricks, GNU Mach can not cope well with lots +of memory. Latest versions of the Debian `gnumach` package will limit themselves +to around 1.7 GiB of memory. If you want more, you can twiddle the `VM_MAX_ADDRESS` +limit between kernelland and userland in `i386/include/mach/i386/vm_param.h`. + +If you have an older version, or still experience problems with `vmstat` (see +above) reported much less memory than you have, the best is to limit the memory +it can see via GRUB's `upppermem` feature. Add `uppermem 786432` to GRUB's Hurd +entry in `menu.lst`. diff --git a/faq/support/sata_disk_drives.mdwn b/faq/support/sata_disk_drives.mdwn new file mode 100644 index 00000000..2edaa610 --- /dev/null +++ b/faq/support/sata_disk_drives.mdwn @@ -0,0 +1,17 @@ +[[!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]]."]]"""]] + +[[!meta title="Are SATA disk drives supported?"]] + +GNU Mach does not support SATA disk drives (`/dev/sda` etc. in GNU/Linux) +natively, so using `device:sd0s1` will not work, as sd* devices are for SCSI +drives only. +The only way to get those drives to work is to put them into compatibility mode +in the BIOS, if such an option exists. GNU Mach will then recognize them as hda etc. diff --git a/faq/support/sharing_the_user_space.mdwn b/faq/support/sharing_the_user_space.mdwn new file mode 100644 index 00000000..8702470a --- /dev/null +++ b/faq/support/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]]."]]"""]] + +[[!meta title=" 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?]] + +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 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, +but you need a separate installation of the userspace suited for the Linux +kernel, or the GNU Hurd. diff --git a/faq/support/smp.mdwn b/faq/support/smp.mdwn new file mode 100644 index 00000000..e95edcd2 --- /dev/null +++ b/faq/support/smp.mdwn @@ -0,0 +1,28 @@ +[[!meta copyright="Copyright © 2009, 2011 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!meta title="Does GNU/Hurd support SMP/Multicore?"]] + +The Hurd servers themselves are multithreaded, so they should be able to take benefit of the parallelism brought by SMP/Multicore boxes. This has however never been tested yet because of the following. + +[[microkernel/Mach]] used to be running on SMP boxes like the [[!wikipedia +Intel_iPSC/860]], so principally has the required infrastructure. It has +however not yet been enhanced to support nowadays' SMP standards like ACPI, +etc. Also, [[GNU Mach|microkernel/mach/gnumach]]'s Linux device driver glue +code likely isn't SMP-safe. As this glue code layer is not used in the +[[microkernel/mach/gnumach/ports/Xen]] port of GNU Mach, the plan is to try it +in this enviroment first. + +[[!tag open_issue_gnumach open_issue_xen]] + +That is why for now GNU/Hurd will only use one logical processor (i.e. one core or one thread, depending on the socket type). + +Once this issue is solved, there are follow-up issues about +[[open_issues/multiprocessing]] and [[open_issues/multithreading]]. diff --git a/faq/support/system_port.mdwn b/faq/support/system_port.mdwn new file mode 100644 index 00000000..c831c36f --- /dev/null +++ b/faq/support/system_port.mdwn @@ -0,0 +1,47 @@ +[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!meta title="Doing a GNU/Hurd System Port"]] + +How difficult is it to port the GNU/Hurd system to run on another architecture? + +The GNU/Hurd system consists of [[/Hurd]] servers running as user-space +processes on top of the [[GNU Mach|microkernel/mach/gnumach]] microkernel. The +system functionality is usually accessed through the +[[POSIX|posix_compatibility]] interface that is provided by [[/glibc]] and +[[/libpthread]]. + +A whole-system port involves touching all these components, with varying +degree, of course. + +For a CPU architecture port, the microkernel is the most involved part, +followed by glibc and the threading library. + +The original [[microkernel/Mach]] microkernel was portable to a number of +architectures which were a lot more popular at the beginning of the 1990s than +they are now. + +The GNU/Hurd system is currently available for the x86 architecture. This +includes emulators such as [[hurd/running/QEMU]] (or KVM), or +[[hurd/running/VirtualBox]]. Besides this, there is a port for the [[Xen +domU|microkernel/mach/gnumach/ports/xen]] *sub-architecture*. + +Further on, there are some [[unfinished porting +attempts|microkernel/mach/gnumach/ports]] for the Alpha, MIPS and PowerPC +architectures. These have not been completed due to little developer interest. + +Another option is to do the port at a different layer: port the Hurd servers to +not run on the GNU Mach microkernel, but instead on top of [[another +microkernel|which_microkernel]]. Or, even by providing a Mach emulation layer +on top of a monolithic kernel. For example, there could be a port for [[having +Mach run as a POSIX user-space process|open_issues/mach_on_top_of_posix]], or +by implementing the [[Mach IPC|microkernel/mach/ipc]] facility (as well as +several others) as Linux kernel modules. While there have been some +experiments, no such port has been completed yet. diff --git a/faq/system_port.mdwn b/faq/system_port.mdwn deleted file mode 100644 index c831c36f..00000000 --- a/faq/system_port.mdwn +++ /dev/null @@ -1,47 +0,0 @@ -[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled [[GNU Free Documentation -License|/fdl]]."]]"""]] - -[[!meta title="Doing a GNU/Hurd System Port"]] - -How difficult is it to port the GNU/Hurd system to run on another architecture? - -The GNU/Hurd system consists of [[/Hurd]] servers running as user-space -processes on top of the [[GNU Mach|microkernel/mach/gnumach]] microkernel. The -system functionality is usually accessed through the -[[POSIX|posix_compatibility]] interface that is provided by [[/glibc]] and -[[/libpthread]]. - -A whole-system port involves touching all these components, with varying -degree, of course. - -For a CPU architecture port, the microkernel is the most involved part, -followed by glibc and the threading library. - -The original [[microkernel/Mach]] microkernel was portable to a number of -architectures which were a lot more popular at the beginning of the 1990s than -they are now. - -The GNU/Hurd system is currently available for the x86 architecture. This -includes emulators such as [[hurd/running/QEMU]] (or KVM), or -[[hurd/running/VirtualBox]]. Besides this, there is a port for the [[Xen -domU|microkernel/mach/gnumach/ports/xen]] *sub-architecture*. - -Further on, there are some [[unfinished porting -attempts|microkernel/mach/gnumach/ports]] for the Alpha, MIPS and PowerPC -architectures. These have not been completed due to little developer interest. - -Another option is to do the port at a different layer: port the Hurd servers to -not run on the GNU Mach microkernel, but instead on top of [[another -microkernel|which_microkernel]]. Or, even by providing a Mach emulation layer -on top of a monolithic kernel. For example, there could be a port for [[having -Mach run as a POSIX user-space process|open_issues/mach_on_top_of_posix]], or -by implementing the [[Mach IPC|microkernel/mach/ipc]] facility (as well as -several others) as Linux kernel modules. While there have been some -experiments, no such port has been completed yet. diff --git a/faq/xserver-common.mdwn b/faq/xserver-common.mdwn deleted file mode 100644 index 460c6e55..00000000 --- a/faq/xserver-common.mdwn +++ /dev/null @@ -1,15 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2013 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="Normal users can't start X"]] - -You need to run `dpkg-reconfigure x11-common` and select `Anybody` for -starting X as there is no way to detect console users currently. -- cgit v1.2.3 From 1b548be2ad91bc07b2a596950eab5020fc026070 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sun, 17 Mar 2013 13:34:24 +0100 Subject: misc changes --- faq/running/off.mdwn | 12 +++++++----- faq/running/slash_usr_symlink.mdwn | 2 +- hurd.mdwn | 4 +++- hurd/libfuse.mdwn | 6 +++++- hurd/libthreads.mdwn | 4 ++++ hurd/translator.mdwn | 3 +++ hurd/translator/tmpfs.mdwn | 5 +++-- hurd/translator/tmpfs/discussion.mdwn | 2 -- hurd/translator/wishlist.mdwn | 2 +- 9 files changed, 27 insertions(+), 13 deletions(-) diff --git a/faq/running/off.mdwn b/faq/running/off.mdwn index 48e6bcc7..eb2a6d1c 100644 --- a/faq/running/off.mdwn +++ b/faq/running/off.mdwn @@ -8,14 +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]]."]]"""]] -[[!meta title="shutdown does not work, How am I supposed to shut my Hurd system down?"]] +[[!meta title="shutdown does not work, how am I supposed to shut my Hurd system down?"]] The GNU/Hurd does not use SYSV runlevels, so commands like - $ shutdown -h now + # shutdown -h now -will not work. Simply use the equivalent shortcut +will not work. Simply use the equivalent shortcuts - $ halt + # halt + # reboot -which is provided natively on GNU/Hurd, instead of from SYSV runlevels. +to respectively shutdown and reboot Hurd, provided natively, +instead of from SYSV runlevels. diff --git a/faq/running/slash_usr_symlink.mdwn b/faq/running/slash_usr_symlink.mdwn index 5c47f4e1..5c70e54a 100644 --- a/faq/running/slash_usr_symlink.mdwn +++ b/faq/running/slash_usr_symlink.mdwn @@ -17,4 +17,4 @@ Today, we like to use different partitions for these two spaces. The Hurd throws this historical garbage away. We think that we have found a more flexible solution called union filesystems, which allow to create virtual filesystems which are the union of several other filesystems. However, support -for union filesystems is still in early development. +for union filesystems is [[still in early development|hurd/translator/unionfs]]. diff --git a/hurd.mdwn b/hurd.mdwn index fb41e24b..f005bd6b 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -92,10 +92,12 @@ in the *unstable* branch of the Debian archive. * [[libnetfs]] -- short introductory material * [[libdiskfs]] * [[libihash]] - * [[libthreads]] * [[libpthread]] + * [[libfshelp]] * In-development Libraries * [[libfuse]] +* Discontinued Libraries + * [[libthreads]] * [[IO_Path]] * [[Porting]] * [[Debugging]] diff --git a/hurd/libfuse.mdwn b/hurd/libfuse.mdwn index b85cbd30..bc6a9d4a 100644 --- a/hurd/libfuse.mdwn +++ b/hurd/libfuse.mdwn @@ -8,7 +8,10 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] -`libfuse` is an Hurd-specific implementation of [FUSE](http://fuse.sourceforge.net). +[[!tag stable_URL]] + +`libfuse` is an Hurd-specific implementation of [FUSE](http://fuse.sourceforge.net), +initially written by Stefan Siegl. The implementation takes advantage of the [[translators|translator]] facilities of Hurd: this means that applications that implement a FUSE filesystem, when @@ -21,6 +24,7 @@ etc. * Only part of the API is implemented * lowlevel API not implemented * Options handling not implemented + * CUSE lowlevel not supported (compatibility level 29) * Supports the compatibility level 25 (while current libfuse 2.9.x provides 26) diff --git a/hurd/libthreads.mdwn b/hurd/libthreads.mdwn index c8d819d4..87ed4b71 100644 --- a/hurd/libthreads.mdwn +++ b/hurd/libthreads.mdwn @@ -10,6 +10,10 @@ License|/fdl]]."]]"""]] `libthreads` a.k.a. C threads. +**Note**: since Hurd migrated to [[libpthread]] as threading library, +the development and usage of libpthread has been discontinued. + + # Internals diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index b04a5944..9bcdbcc5 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -131,6 +131,9 @@ The [[concept|concepts]] of translators creates its own problems, too: * [xmlfs](http://www.nongnu.org/hurdextras/#xmlfs) * [mboxfs](http://www.nongnu.org/hurdextras/#mboxfs) +Some of the above could be moved from hurdextras to [[source_repositories/incubator]], +see the [[status page|open_issues/hurdextras]]. + # Translator Wishlists diff --git a/hurd/translator/tmpfs.mdwn b/hurd/translator/tmpfs.mdwn index 626fad86..43216f76 100644 --- a/hurd/translator/tmpfs.mdwn +++ b/hurd/translator/tmpfs.mdwn @@ -20,5 +20,6 @@ system|ext2fs]] on it, having a real `tmpfs` is better, as it need not deal with the additional block-level indirection layer that `ext2` (or any other disk-based file system) imposes. -However, `tmpfs` is not working correctly at the moment, see the [[discussion]] -sub-pages. There is a [[!FF_project 271]][[!tag bounty]] on this task. +`tmpfs` generally works, although it requires root permissions for file content; +see the [[discussion]] sub-pages for the past and current issues. +There is a [[!FF_project 271]][[!tag bounty]] on this task. diff --git a/hurd/translator/tmpfs/discussion.mdwn b/hurd/translator/tmpfs/discussion.mdwn index 7d75edf5..01bf74ab 100644 --- a/hurd/translator/tmpfs/discussion.mdwn +++ b/hurd/translator/tmpfs/discussion.mdwn @@ -18,8 +18,6 @@ License|/fdl]]."]]"""]] * [[!GNU_Savannah_bug 26751]] - * [[!GNU_Savannah_bug 32755]] - # [[Maksym_Planeta]] diff --git a/hurd/translator/wishlist.mdwn b/hurd/translator/wishlist.mdwn index 18e46685..fe8b6798 100644 --- a/hurd/translator/wishlist.mdwn +++ b/hurd/translator/wishlist.mdwn @@ -11,7 +11,7 @@ is included in the section entitled ## Introduction -The idea behind file system translators is a powerful concept which hasn't recieved much attention in the mainstream computing world. So here is a list of interesting translators I've been able to dream up. I'm sure there are many more ideas floating around out there, so add them to the list! +The idea behind file system translators is a powerful concept which hasn't recieved much attention in the mainstream computing world. So here is a list of interesting translators people dream up. We are sure there are many more ideas floating around out there, so add them to the list! The [ferris project](http://witme.sourceforge.net/libferris.web/features.html) has some great ideas and code in the area of userspace dynamic filesystems, as has the [FUSE project](http://fuse.sourceforge.net/). -- cgit v1.2.3 From c60c722ef7ca212431f0f914aa5925d10e7c323e Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 13:44:52 +0100 Subject: merge back old-stuff into plain pages. Reorder items --- faq/+how_many_developers.mdwn | 63 +++++++++++++++++++++++++++++++ faq/+how_many_developers/discussion.mdwn | 65 ++++++++++++++++++++++++++++++++ faq/+release.mdwn | 15 ++++++++ faq/+still_useful.mdwn | 49 ++++++++++++++++++++++++ faq/+translator.mdwn | 3 ++ faq/asking.mdwn | 5 +++ faq/gnu.mdwn | 5 +++ faq/how_many_developers.mdwn | 63 ------------------------------- faq/how_many_developers/discussion.mdwn | 65 -------------------------------- faq/old/old-stuff.mdwn | 30 --------------- faq/release.mdwn | 15 -------- faq/running/df.mdwn | 2 +- faq/running/hurd_console.mdwn | 2 + faq/running/serial_console.mdwn | 4 ++ faq/sauce.mdwn | 3 ++ faq/still_useful.mdwn | 49 ------------------------ faq/support/+drivers.mdwn | 18 +++++++++ faq/support/+software.mdwn | 5 +++ faq/support/how_about_drivers.mdwn | 18 --------- faq/which_microkernel.mdwn | 2 +- 20 files changed, 239 insertions(+), 242 deletions(-) create mode 100644 faq/+how_many_developers.mdwn create mode 100644 faq/+how_many_developers/discussion.mdwn create mode 100644 faq/+release.mdwn create mode 100644 faq/+still_useful.mdwn create mode 100644 faq/+translator.mdwn create mode 100644 faq/asking.mdwn create mode 100644 faq/gnu.mdwn delete mode 100644 faq/how_many_developers.mdwn delete mode 100644 faq/how_many_developers/discussion.mdwn delete mode 100644 faq/old/old-stuff.mdwn delete mode 100644 faq/release.mdwn create mode 100644 faq/running/serial_console.mdwn create mode 100644 faq/sauce.mdwn delete mode 100644 faq/still_useful.mdwn create mode 100644 faq/support/+drivers.mdwn create mode 100644 faq/support/+software.mdwn delete mode 100644 faq/support/how_about_drivers.mdwn diff --git a/faq/+how_many_developers.mdwn b/faq/+how_many_developers.mdwn new file mode 100644 index 00000000..a96e0576 --- /dev/null +++ b/faq/+how_many_developers.mdwn @@ -0,0 +1,63 @@ +[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!meta title="How many developers are working on the GNU Hurd, and why so +few?"]] + + +# How Many Developers? + +One handful works on the core of the system in their free time, and another +handful helps with [[Debian GNU/Hurd|hurd/running/debian]] and +[[hurd/running/Arch_Hurd]] packaging. Also, an additional handful of former +developers are still available for answering technical questions, but are not +participating in the current development anymore. + +In the past (that is, a lot of years ago), the FSF did pay a few developers for +working full time on the GNU Hurd. But that was for a limited amount of time +only, and evidently, it was too little for getting the system into a +competitive state. Nowadays, it's only unpaid (apart from some +[[bounties|tag/bounty]]) and free-time volunteers' work. + +In contrast to the Linux kernel, there is no industry involvement in +development. For one, this is a good thing: independency; no conflicts of +interests. For another, it is also a bad thing: no dedicated full-time +manpower -- which matters a lot. + + +# Why So Few? + +We can only speculate. One major problem might be that the [[architectural +benefits|advantages]] are generally perceived as very abstract, with little +practical benefit. We currently don't have many tools that are actually making +use of all the possibilities. + +Another reason is that it's been taking too long. Today, 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. + +For likely the same reasons there is no industry interest in the GNU Hurd: its +advantages are too abstract and incomplete for being of interest there. + +As for the scientific sector, the GNU Hurd projects was rather about *using* a +[[microkernel]] intead of doing research on them, for example. But, there have +been some projects and theses done, and some scientific papers published on GNU +Hurd topics, and we're generally very interested in further such projects. + + +# Attracting New Faces + +We're an open project: any interested party (*you*!) are very welcome to start +[[contributing]]. Mentoring is possible, too, to help you get started. + +Likewise, for reaching out to new developers, we're participating in [[Google's +Summer of Code program|community/gsoc]]. diff --git a/faq/+how_many_developers/discussion.mdwn b/faq/+how_many_developers/discussion.mdwn new file mode 100644 index 00000000..8e4c487a --- /dev/null +++ b/faq/+how_many_developers/discussion.mdwn @@ -0,0 +1,65 @@ +[[!meta copyright="Copyright © 2011, 2012 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]]."]]"""]] + + +# IRC, freenode, #hurd, 2011-05-22 + + Since apparently Hurd's aim is a very stable and transparent + system ...why aren't there any companies backing it up? + silver_hook: it's not in a state yet where it would be + commercially interesting + silver_hook: and after some epic failures in the 90s, few + companies dare to invest in microkernel development... + Isn't MacOS X running on top of Mach? + yes, but it's not a true microkernel system + for one, it's single-server, which is boring + also it uses co-location, i.e. runs all the system code in the + kernel address space -- they are separated only formally + even NT is more of a microkernel system I think + Oh, OK, I'm not that knowledgeable about kernels to know + that. + well, now you know :-) + Yup, thanks :) + most people don't know this, so don't worry + I was just wondering that it might be potentially an ideal + server system, right? + well, *potentially* it might be an ideal general-purpose system, + which includes server use... though personally I think the advantages of + the architecture are more visible in desktop use, as servers tend to be + rather streamlined, with little need for individualisation :-) + however, it still remains to be proven that true (multi-server) + microkernel operating systems actually work for general-purpose + applications... + antrik: I mean regarding hosting or virtual servers. + so far, they are only successful in the much simpler embedded + space + well, yes, the Hurd architecture in theory allows very much + flexibility regarding virtual environments... I once blogged about + that. not sure whether server applications really require that + flexibility though. I think most people are pretty happy with the various + virtualisation/container solutions available in Linux. again, the + flexibility is more relevant in the desktop space IMHO + dosn't mean it wouldn't be useful for servers too... just not as + much of a selling point I fear :-) + + +# IRC, freenode, #hurd, 2011-07-09 + + gnu_srs1: regarding your question why people aren't interested in + workin on Hurd: Eric Raymond explains it pretty well in his famous + "Cathedral and Bazaar" paper + people are more likely to work on something that *almost* works + for them, and where they only have to fill in a few missing bits + the Hurd doesn't almost work for anyone + actually, you should probably reread the whole paper. it's + essentially an analysis why the Hurd failed compared to Linux + + +# [[open_issues/mission_statement]] diff --git a/faq/+release.mdwn b/faq/+release.mdwn new file mode 100644 index 00000000..878a476f --- /dev/null +++ b/faq/+release.mdwn @@ -0,0 +1,15 @@ +[[!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]]."]]"""]] + +[[!meta title="When will the Hurd be released?"]] + +Next year. + +Save that, read about the Hurd's [[hurd/status]]. diff --git a/faq/+still_useful.mdwn b/faq/+still_useful.mdwn new file mode 100644 index 00000000..919eb9d4 --- /dev/null +++ b/faq/+still_useful.mdwn @@ -0,0 +1,49 @@ +[[!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="Why is the Hurd useful?"]] + +What are the advantages with the Hurd over Linux? (In general of course, nothing +in depth) + +> Flexibility for the user: +> +> transparent ftp +> +> $ cd /ftp://ftp.debian.org/debian +> $ ls +> +> personnal filesystem +> +> $ dd < /dev/zero > myspace.img bs=1M count=1024 +> $ mke2fs myspace.img +> $ settrans myspace /hurd/ext2fs myspace.img +> $ cd myspace + +>> Just curious, but I keep seeing these (and other similar) concepts being +>> brought up as the amazing selling points of the Hurd, but all of this is +>> entirely doable now in Linux with FUSE or things like it. + +>>> Nowadays, at LAST, yes, partly. +>>> And only on machines where fuse is enabled. Is it enabled on the servers you have an account on? + +>> I'm not sure if an ftp filesystem has been implemented for FUSE yet, but its +>> definately doable; and loopback filesystems like in your second example have +>> been supported for years. + +>>> As a normal user? And establish a tap interface connected through ppp over +>>> ssh or whatever you could want to imagine? + +>> What, then, are the major selling points or benefits? + +>>> These were just examples, Linux is trying to catch up in ugly ways indeed +>>> (yes, have a look at the details of fuse, it's deemed to be inefficient). +>>> In the Hurd, it's that way from the _ground_ and there is no limitation +>>> like having to be root or ask for root to add magic lines, etc. diff --git a/faq/+translator.mdwn b/faq/+translator.mdwn new file mode 100644 index 00000000..88b5130f --- /dev/null +++ b/faq/+translator.mdwn @@ -0,0 +1,3 @@ +[[!meta title="What is a translator?"]] + +A [good explanation](http://www.debian.org/ports/hurd/hurd-doc-translator) is available, translated (sic) in several languages. diff --git a/faq/asking.mdwn b/faq/asking.mdwn new file mode 100644 index 00000000..59ec8d08 --- /dev/null +++ b/faq/asking.mdwn @@ -0,0 +1,5 @@ +[[!meta title="Why can't I get the answers I need from Hurd hackers?"]] + +This [document](http://www.catb.org/~esr/faqs/smart-questions.html) may help you +understand some developers attitudes and social norms. + diff --git a/faq/gnu.mdwn b/faq/gnu.mdwn new file mode 100644 index 00000000..e69f7d1d --- /dev/null +++ b/faq/gnu.mdwn @@ -0,0 +1,5 @@ +[[!meta title="You say GNU, don't you mean GNU/Hurd?"]] + +Yes and no. GNU refers to the system as a whole, while GNU/Hurd is more +specific, saying that it is the GNU system running on the Hurd -- to +differentiate it from the GNU system running on Linux, GNU/Linux. diff --git a/faq/how_many_developers.mdwn b/faq/how_many_developers.mdwn deleted file mode 100644 index a96e0576..00000000 --- a/faq/how_many_developers.mdwn +++ /dev/null @@ -1,63 +0,0 @@ -[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled [[GNU Free Documentation -License|/fdl]]."]]"""]] - -[[!meta title="How many developers are working on the GNU Hurd, and why so -few?"]] - - -# How Many Developers? - -One handful works on the core of the system in their free time, and another -handful helps with [[Debian GNU/Hurd|hurd/running/debian]] and -[[hurd/running/Arch_Hurd]] packaging. Also, an additional handful of former -developers are still available for answering technical questions, but are not -participating in the current development anymore. - -In the past (that is, a lot of years ago), the FSF did pay a few developers for -working full time on the GNU Hurd. But that was for a limited amount of time -only, and evidently, it was too little for getting the system into a -competitive state. Nowadays, it's only unpaid (apart from some -[[bounties|tag/bounty]]) and free-time volunteers' work. - -In contrast to the Linux kernel, there is no industry involvement in -development. For one, this is a good thing: independency; no conflicts of -interests. For another, it is also a bad thing: no dedicated full-time -manpower -- which matters a lot. - - -# Why So Few? - -We can only speculate. One major problem might be that the [[architectural -benefits|advantages]] are generally perceived as very abstract, with little -practical benefit. We currently don't have many tools that are actually making -use of all the possibilities. - -Another reason is that it's been taking too long. Today, 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. - -For likely the same reasons there is no industry interest in the GNU Hurd: its -advantages are too abstract and incomplete for being of interest there. - -As for the scientific sector, the GNU Hurd projects was rather about *using* a -[[microkernel]] intead of doing research on them, for example. But, there have -been some projects and theses done, and some scientific papers published on GNU -Hurd topics, and we're generally very interested in further such projects. - - -# Attracting New Faces - -We're an open project: any interested party (*you*!) are very welcome to start -[[contributing]]. Mentoring is possible, too, to help you get started. - -Likewise, for reaching out to new developers, we're participating in [[Google's -Summer of Code program|community/gsoc]]. diff --git a/faq/how_many_developers/discussion.mdwn b/faq/how_many_developers/discussion.mdwn deleted file mode 100644 index 8e4c487a..00000000 --- a/faq/how_many_developers/discussion.mdwn +++ /dev/null @@ -1,65 +0,0 @@ -[[!meta copyright="Copyright © 2011, 2012 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]]."]]"""]] - - -# IRC, freenode, #hurd, 2011-05-22 - - Since apparently Hurd's aim is a very stable and transparent - system ...why aren't there any companies backing it up? - silver_hook: it's not in a state yet where it would be - commercially interesting - silver_hook: and after some epic failures in the 90s, few - companies dare to invest in microkernel development... - Isn't MacOS X running on top of Mach? - yes, but it's not a true microkernel system - for one, it's single-server, which is boring - also it uses co-location, i.e. runs all the system code in the - kernel address space -- they are separated only formally - even NT is more of a microkernel system I think - Oh, OK, I'm not that knowledgeable about kernels to know - that. - well, now you know :-) - Yup, thanks :) - most people don't know this, so don't worry - I was just wondering that it might be potentially an ideal - server system, right? - well, *potentially* it might be an ideal general-purpose system, - which includes server use... though personally I think the advantages of - the architecture are more visible in desktop use, as servers tend to be - rather streamlined, with little need for individualisation :-) - however, it still remains to be proven that true (multi-server) - microkernel operating systems actually work for general-purpose - applications... - antrik: I mean regarding hosting or virtual servers. - so far, they are only successful in the much simpler embedded - space - well, yes, the Hurd architecture in theory allows very much - flexibility regarding virtual environments... I once blogged about - that. not sure whether server applications really require that - flexibility though. I think most people are pretty happy with the various - virtualisation/container solutions available in Linux. again, the - flexibility is more relevant in the desktop space IMHO - dosn't mean it wouldn't be useful for servers too... just not as - much of a selling point I fear :-) - - -# IRC, freenode, #hurd, 2011-07-09 - - gnu_srs1: regarding your question why people aren't interested in - workin on Hurd: Eric Raymond explains it pretty well in his famous - "Cathedral and Bazaar" paper - people are more likely to work on something that *almost* works - for them, and where they only have to fill in a few missing bits - the Hurd doesn't almost work for anyone - actually, you should probably reread the whole paper. it's - essentially an analysis why the Hurd failed compared to Linux - - -# [[open_issues/mission_statement]] diff --git a/faq/old/old-stuff.mdwn b/faq/old/old-stuff.mdwn deleted file mode 100644 index f5be2814..00000000 --- a/faq/old/old-stuff.mdwn +++ /dev/null @@ -1,30 +0,0 @@ -In addition to the [general FAQ](http://www.gnu.org/software/hurd/docs.html#TOCfaq) there are the following typical newbie questions. (There is an [updated version](http://tuxou.ouvaton.org/hurd/) which is not official yet.) - -If you still have problems, do not hesitate to make use of the [[mailing lists]] or the [[IRC]]. - -* **_You say GNU, don't you mean GNU/Hurd?_** - * Yes and no. GNU refers to the system as a whole, while GNU/Hurd is more specific, saying that it is the GNU system running on the Hurd -- to differentiate it from the GNU system running on Linux, GNU/Linux. - -* **_Why can't I get the answers I need from Hurd hackers?_** - * This [document](http://www.catb.org/~esr/faqs/smart-questions.html) may help you understand some developers attitudes and social norms. - -* **_Where are the virtual consoles I use when running Linux?_** - * The userland [[console]] provides it. You could still [use screen](http://www.gnu.org/software/hurd/faq.en.html#q4-6) of course. - -* **_What is a translator?_** - * The official FAQ [answers](http://www.gnu.org/software/hurd/faq.en.html#q4-2) this question by a reference to [hurd-doc-translator](http://www.debian.org/ports/hurd/hurd-doc-translator). - -* **_Where's the sauce?_** - * It's on [Savannah](http://savannah.gnu.org). See also the [GNU Development Resources](http://www.gnu.org/software/devel.html), for more information. - -* **_What is GNU Mach vs. oskit-mach?_** - * There used to be different versions of the Mach microkernel that supported the Hurd that runs on top of it. We currently only use GNU Mach. For more info, see [[Mach]] - -* **_What software is available for GNU?_** - * Most (3/4) packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in . Notably, [GNOME](http://www.gnome.org), and [KDE](http://www.kde.org) work. See the [[porting/guidelines]] document for some common build problems and their solutions. - * If you can't fetch a package with "apt-get install ", try building it from source: "apt-get source && cd <package\_dir> && debian/rules binary". - * As of March 2013, 78% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome. - -* **_How do I initialize a serial console on the Hurd?_** - * You can try out the Serial Howto at - * For kernel messages, you can append `console=com0` to the kernel command line. diff --git a/faq/release.mdwn b/faq/release.mdwn deleted file mode 100644 index 878a476f..00000000 --- a/faq/release.mdwn +++ /dev/null @@ -1,15 +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]]."]]"""]] - -[[!meta title="When will the Hurd be released?"]] - -Next year. - -Save that, read about the Hurd's [[hurd/status]]. diff --git a/faq/running/df.mdwn b/faq/running/df.mdwn index 51de2b6c..0e25ad66 100644 --- a/faq/running/df.mdwn +++ b/faq/running/df.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]]."]]"""]] -[[!meta title="Why doesn't df work?"]] +[[!meta title="Why df doesn't work?"]] There is no `/etc/mtab` (due to dynamic translator startup, its content is hard to define actually, see diff --git a/faq/running/hurd_console.mdwn b/faq/running/hurd_console.mdwn index cb2de2c0..f55e30d2 100644 --- a/faq/running/hurd_console.mdwn +++ b/faq/running/hurd_console.mdwn @@ -9,5 +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]]."]]"""]] +[[!meta title="How about the virtual console?"]] + Edit `/etc/default/hurd-console` to configure the Hurd console. See [[hurd/console]] for further information about the Hurd console. diff --git a/faq/running/serial_console.mdwn b/faq/running/serial_console.mdwn new file mode 100644 index 00000000..129ac7f3 --- /dev/null +++ b/faq/running/serial_console.mdwn @@ -0,0 +1,4 @@ +[[!meta title="How do I initialize a serial console on the Hurd?"]] + + * You can try out the Serial Howto at + * For kernel messages, you can append `console=com0` to the kernel command line. diff --git a/faq/sauce.mdwn b/faq/sauce.mdwn new file mode 100644 index 00000000..16f19f7c --- /dev/null +++ b/faq/sauce.mdwn @@ -0,0 +1,3 @@ +[[!meta title="Where's the sauce?"]] + +It's on [Savannah](http://savannah.gnu.org). See also the [GNU Development Resources](http://www.gnu.org/software/devel.html), for more information. diff --git a/faq/still_useful.mdwn b/faq/still_useful.mdwn deleted file mode 100644 index 919eb9d4..00000000 --- a/faq/still_useful.mdwn +++ /dev/null @@ -1,49 +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="Why is the Hurd useful?"]] - -What are the advantages with the Hurd over Linux? (In general of course, nothing -in depth) - -> Flexibility for the user: -> -> transparent ftp -> -> $ cd /ftp://ftp.debian.org/debian -> $ ls -> -> personnal filesystem -> -> $ dd < /dev/zero > myspace.img bs=1M count=1024 -> $ mke2fs myspace.img -> $ settrans myspace /hurd/ext2fs myspace.img -> $ cd myspace - ->> Just curious, but I keep seeing these (and other similar) concepts being ->> brought up as the amazing selling points of the Hurd, but all of this is ->> entirely doable now in Linux with FUSE or things like it. - ->>> Nowadays, at LAST, yes, partly. ->>> And only on machines where fuse is enabled. Is it enabled on the servers you have an account on? - ->> I'm not sure if an ftp filesystem has been implemented for FUSE yet, but its ->> definately doable; and loopback filesystems like in your second example have ->> been supported for years. - ->>> As a normal user? And establish a tap interface connected through ppp over ->>> ssh or whatever you could want to imagine? - ->> What, then, are the major selling points or benefits? - ->>> These were just examples, Linux is trying to catch up in ugly ways indeed ->>> (yes, have a look at the details of fuse, it's deemed to be inefficient). ->>> In the Hurd, it's that way from the _ground_ and there is no limitation ->>> like having to be root or ask for root to add magic lines, etc. diff --git a/faq/support/+drivers.mdwn b/faq/support/+drivers.mdwn new file mode 100644 index 00000000..974fb612 --- /dev/null +++ b/faq/support/+drivers.mdwn @@ -0,0 +1,18 @@ +[[!meta copyright="Copyright © 2009, 2013 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, for disks Mach integrates drivers from Linux 2.0 through some +[[community/gsoc/project_ideas/driver_glue_code]]. As it's very old, that +limits hardware support a lot, of course. For network boards, we use the +[[DDE]] toolkit to run linux 2.6.32 drivers in userland processes, +which provides both long-term support for new hardware and safety against driver +bugs. diff --git a/faq/support/+software.mdwn b/faq/support/+software.mdwn new file mode 100644 index 00000000..4726147c --- /dev/null +++ b/faq/support/+software.mdwn @@ -0,0 +1,5 @@ +[[!meta title="What software is available for GNU?"]] + + * Most (3/4) packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in . Notably, [GNOME](http://www.gnome.org), and [KDE](http://www.kde.org) work. See the [[porting/guidelines]] document for some common build problems and their solutions. + * If you can't fetch a package with "apt-get install ", try building it from source: "apt-get source && cd <package\_dir> && debian/rules binary". + * As of March 2013, 78% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome. diff --git a/faq/support/how_about_drivers.mdwn b/faq/support/how_about_drivers.mdwn deleted file mode 100644 index 974fb612..00000000 --- a/faq/support/how_about_drivers.mdwn +++ /dev/null @@ -1,18 +0,0 @@ -[[!meta copyright="Copyright © 2009, 2013 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, for disks Mach integrates drivers from Linux 2.0 through some -[[community/gsoc/project_ideas/driver_glue_code]]. As it's very old, that -limits hardware support a lot, of course. For network boards, we use the -[[DDE]] toolkit to run linux 2.6.32 drivers in userland processes, -which provides both long-term support for new hardware and safety against driver -bugs. diff --git a/faq/which_microkernel.mdwn b/faq/which_microkernel.mdwn index 84b661e4..3ceb315c 100644 --- a/faq/which_microkernel.mdwn +++ b/faq/which_microkernel.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]]."]]"""]] -[[!meta title="What happened with the Hurd ports to the L4 / Coyotos / Viengoos +[[!meta title="What happened with the Hurd ports to the OSKit Mach / L4 / Coyotos / Viengoos microkernels?"]] -- cgit v1.2.3 From eff3ae4d28dd292eb8fcc98e0d9f59ff6b320a81 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 13:49:46 +0100 Subject: More ideas about how useful the Hurd can be --- faq/+still_useful.mdwn | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/faq/+still_useful.mdwn b/faq/+still_useful.mdwn index 919eb9d4..d98f98ed 100644 --- a/faq/+still_useful.mdwn +++ b/faq/+still_useful.mdwn @@ -13,7 +13,7 @@ License|/fdl]]."]]"""]] What are the advantages with the Hurd over Linux? (In general of course, nothing in depth) -> Flexibility for the user: +> Notably, flexibility for the user: > > transparent ftp > @@ -47,3 +47,11 @@ in depth) >>> (yes, have a look at the details of fuse, it's deemed to be inefficient). >>> In the Hurd, it's that way from the _ground_ and there is no limitation >>> like having to be root or ask for root to add magic lines, etc. + +> It also for instance provides userland drivers, for instance the network +> drivers are actually Linux drivers running in a separate userland process. + +> It also for instance provides very fine-grain virtualization support, such as +> VPN for only one process, etc. + +> etc. etc. The implications are really very diverse... -- cgit v1.2.3 From da9a27f53542af3b0c32a5eea36e348a36e3fe0f Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 13:50:37 +0100 Subject: + prefix is not a good idea, as it means something to vi --- faq/+how_many_developers.mdwn | 63 ------------------------------- faq/+how_many_developers/discussion.mdwn | 65 -------------------------------- faq/+release.mdwn | 15 -------- faq/+still_useful.mdwn | 57 ---------------------------- faq/+translator.mdwn | 3 -- faq/,how_many_developers.mdwn | 63 +++++++++++++++++++++++++++++++ faq/,how_many_developers/discussion.mdwn | 65 ++++++++++++++++++++++++++++++++ faq/,release.mdwn | 15 ++++++++ faq/,still_useful.mdwn | 57 ++++++++++++++++++++++++++++ faq/,translator.mdwn | 3 ++ faq/support/+drivers.mdwn | 18 --------- faq/support/+software.mdwn | 5 --- faq/support/,drivers.mdwn | 18 +++++++++ faq/support/,software.mdwn | 5 +++ 14 files changed, 226 insertions(+), 226 deletions(-) delete mode 100644 faq/+how_many_developers.mdwn delete mode 100644 faq/+how_many_developers/discussion.mdwn delete mode 100644 faq/+release.mdwn delete mode 100644 faq/+still_useful.mdwn delete mode 100644 faq/+translator.mdwn create mode 100644 faq/,how_many_developers.mdwn create mode 100644 faq/,how_many_developers/discussion.mdwn create mode 100644 faq/,release.mdwn create mode 100644 faq/,still_useful.mdwn create mode 100644 faq/,translator.mdwn delete mode 100644 faq/support/+drivers.mdwn delete mode 100644 faq/support/+software.mdwn create mode 100644 faq/support/,drivers.mdwn create mode 100644 faq/support/,software.mdwn diff --git a/faq/+how_many_developers.mdwn b/faq/+how_many_developers.mdwn deleted file mode 100644 index a96e0576..00000000 --- a/faq/+how_many_developers.mdwn +++ /dev/null @@ -1,63 +0,0 @@ -[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled [[GNU Free Documentation -License|/fdl]]."]]"""]] - -[[!meta title="How many developers are working on the GNU Hurd, and why so -few?"]] - - -# How Many Developers? - -One handful works on the core of the system in their free time, and another -handful helps with [[Debian GNU/Hurd|hurd/running/debian]] and -[[hurd/running/Arch_Hurd]] packaging. Also, an additional handful of former -developers are still available for answering technical questions, but are not -participating in the current development anymore. - -In the past (that is, a lot of years ago), the FSF did pay a few developers for -working full time on the GNU Hurd. But that was for a limited amount of time -only, and evidently, it was too little for getting the system into a -competitive state. Nowadays, it's only unpaid (apart from some -[[bounties|tag/bounty]]) and free-time volunteers' work. - -In contrast to the Linux kernel, there is no industry involvement in -development. For one, this is a good thing: independency; no conflicts of -interests. For another, it is also a bad thing: no dedicated full-time -manpower -- which matters a lot. - - -# Why So Few? - -We can only speculate. One major problem might be that the [[architectural -benefits|advantages]] are generally perceived as very abstract, with little -practical benefit. We currently don't have many tools that are actually making -use of all the possibilities. - -Another reason is that it's been taking too long. Today, 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. - -For likely the same reasons there is no industry interest in the GNU Hurd: its -advantages are too abstract and incomplete for being of interest there. - -As for the scientific sector, the GNU Hurd projects was rather about *using* a -[[microkernel]] intead of doing research on them, for example. But, there have -been some projects and theses done, and some scientific papers published on GNU -Hurd topics, and we're generally very interested in further such projects. - - -# Attracting New Faces - -We're an open project: any interested party (*you*!) are very welcome to start -[[contributing]]. Mentoring is possible, too, to help you get started. - -Likewise, for reaching out to new developers, we're participating in [[Google's -Summer of Code program|community/gsoc]]. diff --git a/faq/+how_many_developers/discussion.mdwn b/faq/+how_many_developers/discussion.mdwn deleted file mode 100644 index 8e4c487a..00000000 --- a/faq/+how_many_developers/discussion.mdwn +++ /dev/null @@ -1,65 +0,0 @@ -[[!meta copyright="Copyright © 2011, 2012 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]]."]]"""]] - - -# IRC, freenode, #hurd, 2011-05-22 - - Since apparently Hurd's aim is a very stable and transparent - system ...why aren't there any companies backing it up? - silver_hook: it's not in a state yet where it would be - commercially interesting - silver_hook: and after some epic failures in the 90s, few - companies dare to invest in microkernel development... - Isn't MacOS X running on top of Mach? - yes, but it's not a true microkernel system - for one, it's single-server, which is boring - also it uses co-location, i.e. runs all the system code in the - kernel address space -- they are separated only formally - even NT is more of a microkernel system I think - Oh, OK, I'm not that knowledgeable about kernels to know - that. - well, now you know :-) - Yup, thanks :) - most people don't know this, so don't worry - I was just wondering that it might be potentially an ideal - server system, right? - well, *potentially* it might be an ideal general-purpose system, - which includes server use... though personally I think the advantages of - the architecture are more visible in desktop use, as servers tend to be - rather streamlined, with little need for individualisation :-) - however, it still remains to be proven that true (multi-server) - microkernel operating systems actually work for general-purpose - applications... - antrik: I mean regarding hosting or virtual servers. - so far, they are only successful in the much simpler embedded - space - well, yes, the Hurd architecture in theory allows very much - flexibility regarding virtual environments... I once blogged about - that. not sure whether server applications really require that - flexibility though. I think most people are pretty happy with the various - virtualisation/container solutions available in Linux. again, the - flexibility is more relevant in the desktop space IMHO - dosn't mean it wouldn't be useful for servers too... just not as - much of a selling point I fear :-) - - -# IRC, freenode, #hurd, 2011-07-09 - - gnu_srs1: regarding your question why people aren't interested in - workin on Hurd: Eric Raymond explains it pretty well in his famous - "Cathedral and Bazaar" paper - people are more likely to work on something that *almost* works - for them, and where they only have to fill in a few missing bits - the Hurd doesn't almost work for anyone - actually, you should probably reread the whole paper. it's - essentially an analysis why the Hurd failed compared to Linux - - -# [[open_issues/mission_statement]] diff --git a/faq/+release.mdwn b/faq/+release.mdwn deleted file mode 100644 index 878a476f..00000000 --- a/faq/+release.mdwn +++ /dev/null @@ -1,15 +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]]."]]"""]] - -[[!meta title="When will the Hurd be released?"]] - -Next year. - -Save that, read about the Hurd's [[hurd/status]]. diff --git a/faq/+still_useful.mdwn b/faq/+still_useful.mdwn deleted file mode 100644 index d98f98ed..00000000 --- a/faq/+still_useful.mdwn +++ /dev/null @@ -1,57 +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="Why is the Hurd useful?"]] - -What are the advantages with the Hurd over Linux? (In general of course, nothing -in depth) - -> Notably, flexibility for the user: -> -> transparent ftp -> -> $ cd /ftp://ftp.debian.org/debian -> $ ls -> -> personnal filesystem -> -> $ dd < /dev/zero > myspace.img bs=1M count=1024 -> $ mke2fs myspace.img -> $ settrans myspace /hurd/ext2fs myspace.img -> $ cd myspace - ->> Just curious, but I keep seeing these (and other similar) concepts being ->> brought up as the amazing selling points of the Hurd, but all of this is ->> entirely doable now in Linux with FUSE or things like it. - ->>> Nowadays, at LAST, yes, partly. ->>> And only on machines where fuse is enabled. Is it enabled on the servers you have an account on? - ->> I'm not sure if an ftp filesystem has been implemented for FUSE yet, but its ->> definately doable; and loopback filesystems like in your second example have ->> been supported for years. - ->>> As a normal user? And establish a tap interface connected through ppp over ->>> ssh or whatever you could want to imagine? - ->> What, then, are the major selling points or benefits? - ->>> These were just examples, Linux is trying to catch up in ugly ways indeed ->>> (yes, have a look at the details of fuse, it's deemed to be inefficient). ->>> In the Hurd, it's that way from the _ground_ and there is no limitation ->>> like having to be root or ask for root to add magic lines, etc. - -> It also for instance provides userland drivers, for instance the network -> drivers are actually Linux drivers running in a separate userland process. - -> It also for instance provides very fine-grain virtualization support, such as -> VPN for only one process, etc. - -> etc. etc. The implications are really very diverse... diff --git a/faq/+translator.mdwn b/faq/+translator.mdwn deleted file mode 100644 index 88b5130f..00000000 --- a/faq/+translator.mdwn +++ /dev/null @@ -1,3 +0,0 @@ -[[!meta title="What is a translator?"]] - -A [good explanation](http://www.debian.org/ports/hurd/hurd-doc-translator) is available, translated (sic) in several languages. diff --git a/faq/,how_many_developers.mdwn b/faq/,how_many_developers.mdwn new file mode 100644 index 00000000..a96e0576 --- /dev/null +++ b/faq/,how_many_developers.mdwn @@ -0,0 +1,63 @@ +[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!meta title="How many developers are working on the GNU Hurd, and why so +few?"]] + + +# How Many Developers? + +One handful works on the core of the system in their free time, and another +handful helps with [[Debian GNU/Hurd|hurd/running/debian]] and +[[hurd/running/Arch_Hurd]] packaging. Also, an additional handful of former +developers are still available for answering technical questions, but are not +participating in the current development anymore. + +In the past (that is, a lot of years ago), the FSF did pay a few developers for +working full time on the GNU Hurd. But that was for a limited amount of time +only, and evidently, it was too little for getting the system into a +competitive state. Nowadays, it's only unpaid (apart from some +[[bounties|tag/bounty]]) and free-time volunteers' work. + +In contrast to the Linux kernel, there is no industry involvement in +development. For one, this is a good thing: independency; no conflicts of +interests. For another, it is also a bad thing: no dedicated full-time +manpower -- which matters a lot. + + +# Why So Few? + +We can only speculate. One major problem might be that the [[architectural +benefits|advantages]] are generally perceived as very abstract, with little +practical benefit. We currently don't have many tools that are actually making +use of all the possibilities. + +Another reason is that it's been taking too long. Today, 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. + +For likely the same reasons there is no industry interest in the GNU Hurd: its +advantages are too abstract and incomplete for being of interest there. + +As for the scientific sector, the GNU Hurd projects was rather about *using* a +[[microkernel]] intead of doing research on them, for example. But, there have +been some projects and theses done, and some scientific papers published on GNU +Hurd topics, and we're generally very interested in further such projects. + + +# Attracting New Faces + +We're an open project: any interested party (*you*!) are very welcome to start +[[contributing]]. Mentoring is possible, too, to help you get started. + +Likewise, for reaching out to new developers, we're participating in [[Google's +Summer of Code program|community/gsoc]]. diff --git a/faq/,how_many_developers/discussion.mdwn b/faq/,how_many_developers/discussion.mdwn new file mode 100644 index 00000000..8e4c487a --- /dev/null +++ b/faq/,how_many_developers/discussion.mdwn @@ -0,0 +1,65 @@ +[[!meta copyright="Copyright © 2011, 2012 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]]."]]"""]] + + +# IRC, freenode, #hurd, 2011-05-22 + + Since apparently Hurd's aim is a very stable and transparent + system ...why aren't there any companies backing it up? + silver_hook: it's not in a state yet where it would be + commercially interesting + silver_hook: and after some epic failures in the 90s, few + companies dare to invest in microkernel development... + Isn't MacOS X running on top of Mach? + yes, but it's not a true microkernel system + for one, it's single-server, which is boring + also it uses co-location, i.e. runs all the system code in the + kernel address space -- they are separated only formally + even NT is more of a microkernel system I think + Oh, OK, I'm not that knowledgeable about kernels to know + that. + well, now you know :-) + Yup, thanks :) + most people don't know this, so don't worry + I was just wondering that it might be potentially an ideal + server system, right? + well, *potentially* it might be an ideal general-purpose system, + which includes server use... though personally I think the advantages of + the architecture are more visible in desktop use, as servers tend to be + rather streamlined, with little need for individualisation :-) + however, it still remains to be proven that true (multi-server) + microkernel operating systems actually work for general-purpose + applications... + antrik: I mean regarding hosting or virtual servers. + so far, they are only successful in the much simpler embedded + space + well, yes, the Hurd architecture in theory allows very much + flexibility regarding virtual environments... I once blogged about + that. not sure whether server applications really require that + flexibility though. I think most people are pretty happy with the various + virtualisation/container solutions available in Linux. again, the + flexibility is more relevant in the desktop space IMHO + dosn't mean it wouldn't be useful for servers too... just not as + much of a selling point I fear :-) + + +# IRC, freenode, #hurd, 2011-07-09 + + gnu_srs1: regarding your question why people aren't interested in + workin on Hurd: Eric Raymond explains it pretty well in his famous + "Cathedral and Bazaar" paper + people are more likely to work on something that *almost* works + for them, and where they only have to fill in a few missing bits + the Hurd doesn't almost work for anyone + actually, you should probably reread the whole paper. it's + essentially an analysis why the Hurd failed compared to Linux + + +# [[open_issues/mission_statement]] diff --git a/faq/,release.mdwn b/faq/,release.mdwn new file mode 100644 index 00000000..878a476f --- /dev/null +++ b/faq/,release.mdwn @@ -0,0 +1,15 @@ +[[!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]]."]]"""]] + +[[!meta title="When will the Hurd be released?"]] + +Next year. + +Save that, read about the Hurd's [[hurd/status]]. diff --git a/faq/,still_useful.mdwn b/faq/,still_useful.mdwn new file mode 100644 index 00000000..d98f98ed --- /dev/null +++ b/faq/,still_useful.mdwn @@ -0,0 +1,57 @@ +[[!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="Why is the Hurd useful?"]] + +What are the advantages with the Hurd over Linux? (In general of course, nothing +in depth) + +> Notably, flexibility for the user: +> +> transparent ftp +> +> $ cd /ftp://ftp.debian.org/debian +> $ ls +> +> personnal filesystem +> +> $ dd < /dev/zero > myspace.img bs=1M count=1024 +> $ mke2fs myspace.img +> $ settrans myspace /hurd/ext2fs myspace.img +> $ cd myspace + +>> Just curious, but I keep seeing these (and other similar) concepts being +>> brought up as the amazing selling points of the Hurd, but all of this is +>> entirely doable now in Linux with FUSE or things like it. + +>>> Nowadays, at LAST, yes, partly. +>>> And only on machines where fuse is enabled. Is it enabled on the servers you have an account on? + +>> I'm not sure if an ftp filesystem has been implemented for FUSE yet, but its +>> definately doable; and loopback filesystems like in your second example have +>> been supported for years. + +>>> As a normal user? And establish a tap interface connected through ppp over +>>> ssh or whatever you could want to imagine? + +>> What, then, are the major selling points or benefits? + +>>> These were just examples, Linux is trying to catch up in ugly ways indeed +>>> (yes, have a look at the details of fuse, it's deemed to be inefficient). +>>> In the Hurd, it's that way from the _ground_ and there is no limitation +>>> like having to be root or ask for root to add magic lines, etc. + +> It also for instance provides userland drivers, for instance the network +> drivers are actually Linux drivers running in a separate userland process. + +> It also for instance provides very fine-grain virtualization support, such as +> VPN for only one process, etc. + +> etc. etc. The implications are really very diverse... diff --git a/faq/,translator.mdwn b/faq/,translator.mdwn new file mode 100644 index 00000000..88b5130f --- /dev/null +++ b/faq/,translator.mdwn @@ -0,0 +1,3 @@ +[[!meta title="What is a translator?"]] + +A [good explanation](http://www.debian.org/ports/hurd/hurd-doc-translator) is available, translated (sic) in several languages. diff --git a/faq/support/+drivers.mdwn b/faq/support/+drivers.mdwn deleted file mode 100644 index 974fb612..00000000 --- a/faq/support/+drivers.mdwn +++ /dev/null @@ -1,18 +0,0 @@ -[[!meta copyright="Copyright © 2009, 2013 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, for disks Mach integrates drivers from Linux 2.0 through some -[[community/gsoc/project_ideas/driver_glue_code]]. As it's very old, that -limits hardware support a lot, of course. For network boards, we use the -[[DDE]] toolkit to run linux 2.6.32 drivers in userland processes, -which provides both long-term support for new hardware and safety against driver -bugs. diff --git a/faq/support/+software.mdwn b/faq/support/+software.mdwn deleted file mode 100644 index 4726147c..00000000 --- a/faq/support/+software.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!meta title="What software is available for GNU?"]] - - * Most (3/4) packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in . Notably, [GNOME](http://www.gnome.org), and [KDE](http://www.kde.org) work. See the [[porting/guidelines]] document for some common build problems and their solutions. - * If you can't fetch a package with "apt-get install ", try building it from source: "apt-get source && cd <package\_dir> && debian/rules binary". - * As of March 2013, 78% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome. diff --git a/faq/support/,drivers.mdwn b/faq/support/,drivers.mdwn new file mode 100644 index 00000000..974fb612 --- /dev/null +++ b/faq/support/,drivers.mdwn @@ -0,0 +1,18 @@ +[[!meta copyright="Copyright © 2009, 2013 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, for disks Mach integrates drivers from Linux 2.0 through some +[[community/gsoc/project_ideas/driver_glue_code]]. As it's very old, that +limits hardware support a lot, of course. For network boards, we use the +[[DDE]] toolkit to run linux 2.6.32 drivers in userland processes, +which provides both long-term support for new hardware and safety against driver +bugs. diff --git a/faq/support/,software.mdwn b/faq/support/,software.mdwn new file mode 100644 index 00000000..4726147c --- /dev/null +++ b/faq/support/,software.mdwn @@ -0,0 +1,5 @@ +[[!meta title="What software is available for GNU?"]] + + * Most (3/4) packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in . Notably, [GNOME](http://www.gnome.org), and [KDE](http://www.kde.org) work. See the [[porting/guidelines]] document for some common build problems and their solutions. + * If you can't fetch a package with "apt-get install ", try building it from source: "apt-get source && cd <package\_dir> && debian/rules binary". + * As of March 2013, 78% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome. -- cgit v1.2.3 From 1dfd4e282f8fc61f1b8047d0e333d61091691e4c Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 13:58:06 +0100 Subject: , does not actually work either. 0- should, really --- faq/,how_many_developers.mdwn | 63 ------------------------------ faq/,how_many_developers/discussion.mdwn | 65 ------------------------------- faq/,release.mdwn | 15 ------- faq/,still_useful.mdwn | 57 --------------------------- faq/,translator.mdwn | 3 -- faq/0-how_many_developers.mdwn | 63 ++++++++++++++++++++++++++++++ faq/0-how_many_developers/discussion.mdwn | 65 +++++++++++++++++++++++++++++++ faq/0-release.mdwn | 15 +++++++ faq/0-still_useful.mdwn | 57 +++++++++++++++++++++++++++ faq/0-translator.mdwn | 3 ++ faq/support/,drivers.mdwn | 18 --------- faq/support/,software.mdwn | 5 --- faq/support/0-drivers.mdwn | 18 +++++++++ faq/support/0-software.mdwn | 5 +++ 14 files changed, 226 insertions(+), 226 deletions(-) delete mode 100644 faq/,how_many_developers.mdwn delete mode 100644 faq/,how_many_developers/discussion.mdwn delete mode 100644 faq/,release.mdwn delete mode 100644 faq/,still_useful.mdwn delete mode 100644 faq/,translator.mdwn create mode 100644 faq/0-how_many_developers.mdwn create mode 100644 faq/0-how_many_developers/discussion.mdwn create mode 100644 faq/0-release.mdwn create mode 100644 faq/0-still_useful.mdwn create mode 100644 faq/0-translator.mdwn delete mode 100644 faq/support/,drivers.mdwn delete mode 100644 faq/support/,software.mdwn create mode 100644 faq/support/0-drivers.mdwn create mode 100644 faq/support/0-software.mdwn diff --git a/faq/,how_many_developers.mdwn b/faq/,how_many_developers.mdwn deleted file mode 100644 index a96e0576..00000000 --- a/faq/,how_many_developers.mdwn +++ /dev/null @@ -1,63 +0,0 @@ -[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled [[GNU Free Documentation -License|/fdl]]."]]"""]] - -[[!meta title="How many developers are working on the GNU Hurd, and why so -few?"]] - - -# How Many Developers? - -One handful works on the core of the system in their free time, and another -handful helps with [[Debian GNU/Hurd|hurd/running/debian]] and -[[hurd/running/Arch_Hurd]] packaging. Also, an additional handful of former -developers are still available for answering technical questions, but are not -participating in the current development anymore. - -In the past (that is, a lot of years ago), the FSF did pay a few developers for -working full time on the GNU Hurd. But that was for a limited amount of time -only, and evidently, it was too little for getting the system into a -competitive state. Nowadays, it's only unpaid (apart from some -[[bounties|tag/bounty]]) and free-time volunteers' work. - -In contrast to the Linux kernel, there is no industry involvement in -development. For one, this is a good thing: independency; no conflicts of -interests. For another, it is also a bad thing: no dedicated full-time -manpower -- which matters a lot. - - -# Why So Few? - -We can only speculate. One major problem might be that the [[architectural -benefits|advantages]] are generally perceived as very abstract, with little -practical benefit. We currently don't have many tools that are actually making -use of all the possibilities. - -Another reason is that it's been taking too long. Today, 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. - -For likely the same reasons there is no industry interest in the GNU Hurd: its -advantages are too abstract and incomplete for being of interest there. - -As for the scientific sector, the GNU Hurd projects was rather about *using* a -[[microkernel]] intead of doing research on them, for example. But, there have -been some projects and theses done, and some scientific papers published on GNU -Hurd topics, and we're generally very interested in further such projects. - - -# Attracting New Faces - -We're an open project: any interested party (*you*!) are very welcome to start -[[contributing]]. Mentoring is possible, too, to help you get started. - -Likewise, for reaching out to new developers, we're participating in [[Google's -Summer of Code program|community/gsoc]]. diff --git a/faq/,how_many_developers/discussion.mdwn b/faq/,how_many_developers/discussion.mdwn deleted file mode 100644 index 8e4c487a..00000000 --- a/faq/,how_many_developers/discussion.mdwn +++ /dev/null @@ -1,65 +0,0 @@ -[[!meta copyright="Copyright © 2011, 2012 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]]."]]"""]] - - -# IRC, freenode, #hurd, 2011-05-22 - - Since apparently Hurd's aim is a very stable and transparent - system ...why aren't there any companies backing it up? - silver_hook: it's not in a state yet where it would be - commercially interesting - silver_hook: and after some epic failures in the 90s, few - companies dare to invest in microkernel development... - Isn't MacOS X running on top of Mach? - yes, but it's not a true microkernel system - for one, it's single-server, which is boring - also it uses co-location, i.e. runs all the system code in the - kernel address space -- they are separated only formally - even NT is more of a microkernel system I think - Oh, OK, I'm not that knowledgeable about kernels to know - that. - well, now you know :-) - Yup, thanks :) - most people don't know this, so don't worry - I was just wondering that it might be potentially an ideal - server system, right? - well, *potentially* it might be an ideal general-purpose system, - which includes server use... though personally I think the advantages of - the architecture are more visible in desktop use, as servers tend to be - rather streamlined, with little need for individualisation :-) - however, it still remains to be proven that true (multi-server) - microkernel operating systems actually work for general-purpose - applications... - antrik: I mean regarding hosting or virtual servers. - so far, they are only successful in the much simpler embedded - space - well, yes, the Hurd architecture in theory allows very much - flexibility regarding virtual environments... I once blogged about - that. not sure whether server applications really require that - flexibility though. I think most people are pretty happy with the various - virtualisation/container solutions available in Linux. again, the - flexibility is more relevant in the desktop space IMHO - dosn't mean it wouldn't be useful for servers too... just not as - much of a selling point I fear :-) - - -# IRC, freenode, #hurd, 2011-07-09 - - gnu_srs1: regarding your question why people aren't interested in - workin on Hurd: Eric Raymond explains it pretty well in his famous - "Cathedral and Bazaar" paper - people are more likely to work on something that *almost* works - for them, and where they only have to fill in a few missing bits - the Hurd doesn't almost work for anyone - actually, you should probably reread the whole paper. it's - essentially an analysis why the Hurd failed compared to Linux - - -# [[open_issues/mission_statement]] diff --git a/faq/,release.mdwn b/faq/,release.mdwn deleted file mode 100644 index 878a476f..00000000 --- a/faq/,release.mdwn +++ /dev/null @@ -1,15 +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]]."]]"""]] - -[[!meta title="When will the Hurd be released?"]] - -Next year. - -Save that, read about the Hurd's [[hurd/status]]. diff --git a/faq/,still_useful.mdwn b/faq/,still_useful.mdwn deleted file mode 100644 index d98f98ed..00000000 --- a/faq/,still_useful.mdwn +++ /dev/null @@ -1,57 +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="Why is the Hurd useful?"]] - -What are the advantages with the Hurd over Linux? (In general of course, nothing -in depth) - -> Notably, flexibility for the user: -> -> transparent ftp -> -> $ cd /ftp://ftp.debian.org/debian -> $ ls -> -> personnal filesystem -> -> $ dd < /dev/zero > myspace.img bs=1M count=1024 -> $ mke2fs myspace.img -> $ settrans myspace /hurd/ext2fs myspace.img -> $ cd myspace - ->> Just curious, but I keep seeing these (and other similar) concepts being ->> brought up as the amazing selling points of the Hurd, but all of this is ->> entirely doable now in Linux with FUSE or things like it. - ->>> Nowadays, at LAST, yes, partly. ->>> And only on machines where fuse is enabled. Is it enabled on the servers you have an account on? - ->> I'm not sure if an ftp filesystem has been implemented for FUSE yet, but its ->> definately doable; and loopback filesystems like in your second example have ->> been supported for years. - ->>> As a normal user? And establish a tap interface connected through ppp over ->>> ssh or whatever you could want to imagine? - ->> What, then, are the major selling points or benefits? - ->>> These were just examples, Linux is trying to catch up in ugly ways indeed ->>> (yes, have a look at the details of fuse, it's deemed to be inefficient). ->>> In the Hurd, it's that way from the _ground_ and there is no limitation ->>> like having to be root or ask for root to add magic lines, etc. - -> It also for instance provides userland drivers, for instance the network -> drivers are actually Linux drivers running in a separate userland process. - -> It also for instance provides very fine-grain virtualization support, such as -> VPN for only one process, etc. - -> etc. etc. The implications are really very diverse... diff --git a/faq/,translator.mdwn b/faq/,translator.mdwn deleted file mode 100644 index 88b5130f..00000000 --- a/faq/,translator.mdwn +++ /dev/null @@ -1,3 +0,0 @@ -[[!meta title="What is a translator?"]] - -A [good explanation](http://www.debian.org/ports/hurd/hurd-doc-translator) is available, translated (sic) in several languages. diff --git a/faq/0-how_many_developers.mdwn b/faq/0-how_many_developers.mdwn new file mode 100644 index 00000000..a96e0576 --- /dev/null +++ b/faq/0-how_many_developers.mdwn @@ -0,0 +1,63 @@ +[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!meta title="How many developers are working on the GNU Hurd, and why so +few?"]] + + +# How Many Developers? + +One handful works on the core of the system in their free time, and another +handful helps with [[Debian GNU/Hurd|hurd/running/debian]] and +[[hurd/running/Arch_Hurd]] packaging. Also, an additional handful of former +developers are still available for answering technical questions, but are not +participating in the current development anymore. + +In the past (that is, a lot of years ago), the FSF did pay a few developers for +working full time on the GNU Hurd. But that was for a limited amount of time +only, and evidently, it was too little for getting the system into a +competitive state. Nowadays, it's only unpaid (apart from some +[[bounties|tag/bounty]]) and free-time volunteers' work. + +In contrast to the Linux kernel, there is no industry involvement in +development. For one, this is a good thing: independency; no conflicts of +interests. For another, it is also a bad thing: no dedicated full-time +manpower -- which matters a lot. + + +# Why So Few? + +We can only speculate. One major problem might be that the [[architectural +benefits|advantages]] are generally perceived as very abstract, with little +practical benefit. We currently don't have many tools that are actually making +use of all the possibilities. + +Another reason is that it's been taking too long. Today, 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. + +For likely the same reasons there is no industry interest in the GNU Hurd: its +advantages are too abstract and incomplete for being of interest there. + +As for the scientific sector, the GNU Hurd projects was rather about *using* a +[[microkernel]] intead of doing research on them, for example. But, there have +been some projects and theses done, and some scientific papers published on GNU +Hurd topics, and we're generally very interested in further such projects. + + +# Attracting New Faces + +We're an open project: any interested party (*you*!) are very welcome to start +[[contributing]]. Mentoring is possible, too, to help you get started. + +Likewise, for reaching out to new developers, we're participating in [[Google's +Summer of Code program|community/gsoc]]. diff --git a/faq/0-how_many_developers/discussion.mdwn b/faq/0-how_many_developers/discussion.mdwn new file mode 100644 index 00000000..8e4c487a --- /dev/null +++ b/faq/0-how_many_developers/discussion.mdwn @@ -0,0 +1,65 @@ +[[!meta copyright="Copyright © 2011, 2012 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]]."]]"""]] + + +# IRC, freenode, #hurd, 2011-05-22 + + Since apparently Hurd's aim is a very stable and transparent + system ...why aren't there any companies backing it up? + silver_hook: it's not in a state yet where it would be + commercially interesting + silver_hook: and after some epic failures in the 90s, few + companies dare to invest in microkernel development... + Isn't MacOS X running on top of Mach? + yes, but it's not a true microkernel system + for one, it's single-server, which is boring + also it uses co-location, i.e. runs all the system code in the + kernel address space -- they are separated only formally + even NT is more of a microkernel system I think + Oh, OK, I'm not that knowledgeable about kernels to know + that. + well, now you know :-) + Yup, thanks :) + most people don't know this, so don't worry + I was just wondering that it might be potentially an ideal + server system, right? + well, *potentially* it might be an ideal general-purpose system, + which includes server use... though personally I think the advantages of + the architecture are more visible in desktop use, as servers tend to be + rather streamlined, with little need for individualisation :-) + however, it still remains to be proven that true (multi-server) + microkernel operating systems actually work for general-purpose + applications... + antrik: I mean regarding hosting or virtual servers. + so far, they are only successful in the much simpler embedded + space + well, yes, the Hurd architecture in theory allows very much + flexibility regarding virtual environments... I once blogged about + that. not sure whether server applications really require that + flexibility though. I think most people are pretty happy with the various + virtualisation/container solutions available in Linux. again, the + flexibility is more relevant in the desktop space IMHO + dosn't mean it wouldn't be useful for servers too... just not as + much of a selling point I fear :-) + + +# IRC, freenode, #hurd, 2011-07-09 + + gnu_srs1: regarding your question why people aren't interested in + workin on Hurd: Eric Raymond explains it pretty well in his famous + "Cathedral and Bazaar" paper + people are more likely to work on something that *almost* works + for them, and where they only have to fill in a few missing bits + the Hurd doesn't almost work for anyone + actually, you should probably reread the whole paper. it's + essentially an analysis why the Hurd failed compared to Linux + + +# [[open_issues/mission_statement]] diff --git a/faq/0-release.mdwn b/faq/0-release.mdwn new file mode 100644 index 00000000..878a476f --- /dev/null +++ b/faq/0-release.mdwn @@ -0,0 +1,15 @@ +[[!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]]."]]"""]] + +[[!meta title="When will the Hurd be released?"]] + +Next year. + +Save that, read about the Hurd's [[hurd/status]]. diff --git a/faq/0-still_useful.mdwn b/faq/0-still_useful.mdwn new file mode 100644 index 00000000..d98f98ed --- /dev/null +++ b/faq/0-still_useful.mdwn @@ -0,0 +1,57 @@ +[[!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="Why is the Hurd useful?"]] + +What are the advantages with the Hurd over Linux? (In general of course, nothing +in depth) + +> Notably, flexibility for the user: +> +> transparent ftp +> +> $ cd /ftp://ftp.debian.org/debian +> $ ls +> +> personnal filesystem +> +> $ dd < /dev/zero > myspace.img bs=1M count=1024 +> $ mke2fs myspace.img +> $ settrans myspace /hurd/ext2fs myspace.img +> $ cd myspace + +>> Just curious, but I keep seeing these (and other similar) concepts being +>> brought up as the amazing selling points of the Hurd, but all of this is +>> entirely doable now in Linux with FUSE or things like it. + +>>> Nowadays, at LAST, yes, partly. +>>> And only on machines where fuse is enabled. Is it enabled on the servers you have an account on? + +>> I'm not sure if an ftp filesystem has been implemented for FUSE yet, but its +>> definately doable; and loopback filesystems like in your second example have +>> been supported for years. + +>>> As a normal user? And establish a tap interface connected through ppp over +>>> ssh or whatever you could want to imagine? + +>> What, then, are the major selling points or benefits? + +>>> These were just examples, Linux is trying to catch up in ugly ways indeed +>>> (yes, have a look at the details of fuse, it's deemed to be inefficient). +>>> In the Hurd, it's that way from the _ground_ and there is no limitation +>>> like having to be root or ask for root to add magic lines, etc. + +> It also for instance provides userland drivers, for instance the network +> drivers are actually Linux drivers running in a separate userland process. + +> It also for instance provides very fine-grain virtualization support, such as +> VPN for only one process, etc. + +> etc. etc. The implications are really very diverse... diff --git a/faq/0-translator.mdwn b/faq/0-translator.mdwn new file mode 100644 index 00000000..88b5130f --- /dev/null +++ b/faq/0-translator.mdwn @@ -0,0 +1,3 @@ +[[!meta title="What is a translator?"]] + +A [good explanation](http://www.debian.org/ports/hurd/hurd-doc-translator) is available, translated (sic) in several languages. diff --git a/faq/support/,drivers.mdwn b/faq/support/,drivers.mdwn deleted file mode 100644 index 974fb612..00000000 --- a/faq/support/,drivers.mdwn +++ /dev/null @@ -1,18 +0,0 @@ -[[!meta copyright="Copyright © 2009, 2013 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, for disks Mach integrates drivers from Linux 2.0 through some -[[community/gsoc/project_ideas/driver_glue_code]]. As it's very old, that -limits hardware support a lot, of course. For network boards, we use the -[[DDE]] toolkit to run linux 2.6.32 drivers in userland processes, -which provides both long-term support for new hardware and safety against driver -bugs. diff --git a/faq/support/,software.mdwn b/faq/support/,software.mdwn deleted file mode 100644 index 4726147c..00000000 --- a/faq/support/,software.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!meta title="What software is available for GNU?"]] - - * Most (3/4) packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in . Notably, [GNOME](http://www.gnome.org), and [KDE](http://www.kde.org) work. See the [[porting/guidelines]] document for some common build problems and their solutions. - * If you can't fetch a package with "apt-get install ", try building it from source: "apt-get source && cd <package\_dir> && debian/rules binary". - * As of March 2013, 78% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome. diff --git a/faq/support/0-drivers.mdwn b/faq/support/0-drivers.mdwn new file mode 100644 index 00000000..974fb612 --- /dev/null +++ b/faq/support/0-drivers.mdwn @@ -0,0 +1,18 @@ +[[!meta copyright="Copyright © 2009, 2013 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, for disks Mach integrates drivers from Linux 2.0 through some +[[community/gsoc/project_ideas/driver_glue_code]]. As it's very old, that +limits hardware support a lot, of course. For network boards, we use the +[[DDE]] toolkit to run linux 2.6.32 drivers in userland processes, +which provides both long-term support for new hardware and safety against driver +bugs. diff --git a/faq/support/0-software.mdwn b/faq/support/0-software.mdwn new file mode 100644 index 00000000..4726147c --- /dev/null +++ b/faq/support/0-software.mdwn @@ -0,0 +1,5 @@ +[[!meta title="What software is available for GNU?"]] + + * Most (3/4) packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in . Notably, [GNOME](http://www.gnome.org), and [KDE](http://www.kde.org) work. See the [[porting/guidelines]] document for some common build problems and their solutions. + * If you can't fetch a package with "apt-get install ", try building it from source: "apt-get source && cd <package\_dir> && debian/rules binary". + * As of March 2013, 78% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome. -- cgit v1.2.3 From 29600ddc8cb631abefa55c9d7b9ce3411042071c Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 14:05:28 +0100 Subject: move more old stuff to current --- faq/help.mdwn | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 faq/help.mdwn diff --git a/faq/help.mdwn b/faq/help.mdwn new file mode 100644 index 00000000..a1c41d08 --- /dev/null +++ b/faq/help.mdwn @@ -0,0 +1,14 @@ +[[!meta copyright="Copyright © 2013 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 can I help?"]] + +Please see the contributing page: +http://www.gnu.org/software/hurd/contributing.html -- cgit v1.2.3 From f2501ad5eec1d291bb040560b61fb58bcf59422f Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 14:06:27 +0100 Subject: fix link --- faq/help.mdwn | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/faq/help.mdwn b/faq/help.mdwn index a1c41d08..44e16d6b 100644 --- a/faq/help.mdwn +++ b/faq/help.mdwn @@ -10,5 +10,4 @@ is included in the section entitled [[!meta title="How can I help?"]] -Please see the contributing page: -http://www.gnu.org/software/hurd/contributing.html +Please see the [contributing page](http://www.gnu.org/software/hurd/contributing.html) -- cgit v1.2.3 From 9d656bbe8f5fb2c3b9151da548f32ff12ae3f54a Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 14:13:01 +0100 Subject: move more old stuff to current --- faq/0-still_useful.mdwn | 16 +++++++-- faq/old/old_faq.txt | 26 -------------- faq/old/old_hurd_faq.txt | 63 ---------------------------------- faq/support/2_gib_partition_limit.mdwn | 2 ++ 4 files changed, 15 insertions(+), 92 deletions(-) diff --git a/faq/0-still_useful.mdwn b/faq/0-still_useful.mdwn index d98f98ed..96ea6f32 100644 --- a/faq/0-still_useful.mdwn +++ b/faq/0-still_useful.mdwn @@ -8,10 +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]]."]]"""]] -[[!meta title="Why is the Hurd useful?"]] +[[!meta title="What are the advantages with the Hurd over Linux/BSD?"]] -What are the advantages with the Hurd over Linux? (In general of course, nothing -in depth) +The Hurd will be considerably more flexible and robust +than generic Unix. Wherever possible, Unix kernel features have been +moved into unprivileged space. Once there, anyone who desires can +develop custom replacements for them. Users will be able to write and +use their own file systems, their own `exec' servers, or their own +network protocols if they like, all without disturbing other users. + +The Linux kernel has now been modified to allow user-level file +systems, so there is proof that people will actually use features such +as these. It will be much easier to do under the Hurd, however, +because the Hurd is almost entirely run in user space and because the +various servers are designed for this sort of modification. > Notably, flexibility for the user: > diff --git a/faq/old/old_faq.txt b/faq/old/old_faq.txt index 24127462..f6a4204b 100644 --- a/faq/old/old_faq.txt +++ b/faq/old/old_faq.txt @@ -85,11 +85,6 @@ partition on the first drive detected by the BIOS (or the second partition with GRUB 1). As Grub now has tab completion, there is not a lot of guess work. -?? Can I use partitions larger than 2GB? - -{ST} Yes. Disk drivers however currently do not support more than 2^32 sectors, i.e. -2TiB. - ?? How much swap do I need? {ST} The usual rule of thumb applies: the same amount as RAM, for instance. @@ -269,16 +264,6 @@ hung, it will not be able respond to its message port and thus, ps will wait forever. The `-M' option instructs ps to not gather information that would require use of the message port. -?? Where are ... - -{MB} `dmesg' is not available. You can read `/var/log/dmesg` instead. - -?? Why does the command `df' not work? - -{NHW} It does, you just have to tell it what filesystem to query. E.g. - - # df / - ?? Why are my translators dying? {NHW} Try passing the `-ap' flag to settrans. By default, settrans only @@ -364,12 +349,6 @@ reboot the system. ? Porting -?? What programs have been ported? - -{NHW} A lot, take a look at the Debian archive. Many programs, however, -do not necessarily need to be ported; they have just never been -compiled. - ?? Is porting easy? {NHW} Porting applications to GNU/Hurd is relatively easy assuming the @@ -382,11 +361,6 @@ thousand, however, on GNU/Hurd, there is no maximum and thus, this is not set. The correct thing to do is to submit a patch to the upstream author that allocates memory dynamically. -?? How can I help? - -{ST} Please see the contributing page: -http://www.gnu.org/software/hurd/contributing.html - ? Compiling ?? Where can I get the source? diff --git a/faq/old/old_hurd_faq.txt b/faq/old/old_hurd_faq.txt index 4ebe019b..20b4c260 100644 --- a/faq/old/old_hurd_faq.txt +++ b/faq/old/old_hurd_faq.txt @@ -16,73 +16,10 @@ Original Document by: Derek Upham Contents: -Q0. Where can I get the Unofficial GNU Hurd FAQ? -Q2. Where can I get a copy? -Q3. Why bother writing a new OS when we have Linux and 386/BSD? Q4. What's all this about Mach 3.0 (and Mach 4.0)? -Q5. Where can I find more information? -Q7. What sort of machines will run Hurd in the future? -Q8. What is the current development status? -Q9. What sort of system would we have if the Hurd was bootable today? ============================== -Q0. Where can I get the Unofficial GNU Hurd FAQ? - -The Unofficial Hurd FAQ (what you are reading now) is occasionally -posted to the USENET newsgroup, gnu.misc.discuss. It is also -available from - - http://www.enci.ucalgary.ca/~gord/hurd/hurd-faq.txt (Broken Link ?) - -If you don't have WWW access, you may send mail to me, Gordon -Matzigkeit with a subject line that reads: - - Subject: send hurd-faq - -You should receive a PGP-signed copy of the current version of this -document in a matter of minutes. - - -Q2. Where can I get a copy? - -To put it simply, you can't. It is still under development (by -Michael Bushnell, Roland McGrath and Miles Bader). It is almost, but -not quite, at the point where you can do real work on it. Keep your -fingers crossed. - -Some people have actually bootstrapped it, but the work is not easy, -and the current snapshot won't work until a new multiserver boot -mechanism is made. - -If you *really* want to try it, beware that it is still pre-alpha -code, and that it will likely crash on you. See Trent Fisher's Hurd -pages (under question 5) for the latest information. - - -Q3. Why bother writing a new OS when we have Linux and 386/BSD? - -For one thing, Linux and BSD don't scale well. Hardware designers are -shifting more and more toward multiprocessor machines for performance, -and standard Unix kernels do not provide much multiprocessor support. -The Hurd, on the other hand, runs on top of the Mach 3.0 micro-kernel -[[1]] from CMU. Mach was designed precisely for multiprocessing -machines, so its portability should carry over nicely to the Hurd. - -In addition, the Hurd will be considerably more flexible and robust -than generic Unix. Wherever possible, Unix kernel features have been -moved into unprivileged space. Once there, anyone who desires can -develop custom replacements for them. Users will be able to write and -use their own file systems, their own `exec' servers, or their own -network protocols if they like, all without disturbing other users. - -The Linux kernel has now been modified to allow user-level file -systems, so there is proof that people will actually use features such -as these. It will be much easier to do under the Hurd, however, -because the Hurd is almost entirely run in user space and because the -various servers are designed for this sort of modification. - - Q4. What's all this about Mach 3.0 (and Mach 4.0)? As mentioned above, Mach is a micro-kernel, written at Carnegie Mellon diff --git a/faq/support/2_gib_partition_limit.mdwn b/faq/support/2_gib_partition_limit.mdwn index 726605f9..3315cc08 100644 --- a/faq/support/2_gib_partition_limit.mdwn +++ b/faq/support/2_gib_partition_limit.mdwn @@ -11,3 +11,5 @@ is included in the section entitled [[!meta title="Is there still a 2 GiB Partition Limit ?"]] The 2 GiB limit has been removed in Debian GNU/Hurd. + +Disk drivers however currently do not support more than 2^32 sectors, i.e. 2TiB. -- cgit v1.2.3 From 50870e9cfc9fce4c67656d5014c07aa825cfa705 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 14:13:21 +0100 Subject: Add all-in-one-page version --- faq.mdwn | 1 + faq_all.mdwn | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 faq_all.mdwn diff --git a/faq.mdwn b/faq.mdwn index 303b8727..e210601e 100644 --- a/faq.mdwn +++ b/faq.mdwn @@ -21,6 +21,7 @@ rootpage="faq" postformtext="Add a new item titled:"]] # Also see the... * [[microkernel FAQ|microkernel/faq]], + * [[this FAQ in just one web page|faq_all]]. # General-discussion FAQs diff --git a/faq_all.mdwn b/faq_all.mdwn new file mode 100644 index 00000000..41e2b5ad --- /dev/null +++ b/faq_all.mdwn @@ -0,0 +1,74 @@ +[[!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"]] +[[!tag stable_URL]] + +[[!inline +pages=none +show=0 +feeds=no +actions=yes +rootpage="faq" postformtext="Add a new item titled:"]] + +# Also see the... + + * [[microkernel FAQ|microkernel/faq]], + + +# General-discussion FAQs + +[[!inline +pages="faq/* and !*/discussion and !*/debian/* and !*/running/* and !*/support/* and !*/issues/* and !*/dev/* and !*/old/*" +show=0 +feeds=no +]] + + +# Hardware/Software support FAQs + +[[!inline +pages="faq/support/* and !*/discussion" +show=0 +feeds=no]] + + +# Running GNU/Hurd FAQs + +[[!inline +pages="faq/running/* and !*/discussion" +show=0 +feeds=no]] + + +# Debian GNU/Hurd FAQs + +[[!inline +pages="faq/debian/* and !*/discussion" +show=0 +feeds=no]] + + +# Development FAQs + +[[!inline +pages="faq/dev/* and !*/discussion" +show=0 +feeds=no]] + + +# Old FAQs + +[[!inline +pages="faq/old/* and !*/discussion" +show=0 +feeds=no]] + + -- cgit v1.2.3 From 37af1117a703d9b8ed3056bf24319988b640aea5 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 14:14:54 +0100 Subject: Drop useless index --- faq/old/old_hurd_faq.txt | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/faq/old/old_hurd_faq.txt b/faq/old/old_hurd_faq.txt index 20b4c260..20ce61a9 100644 --- a/faq/old/old_hurd_faq.txt +++ b/faq/old/old_hurd_faq.txt @@ -12,17 +12,7 @@ Louis-Dominique Dubeau Original Document by: Derek Upham -============================== - -Contents: - -Q4. What's all this about Mach 3.0 (and Mach 4.0)? - -============================== - -Q4. What's all this about Mach 3.0 (and Mach 4.0)? - -As mentioned above, Mach is a micro-kernel, written at Carnegie Mellon +Mach is a micro-kernel, written at Carnegie Mellon University. A more descriptive term might be a greatest-common-factor kernel, since it provides facilities common to all ``real'' operating systems, such as memory management, inter-process communication, -- cgit v1.2.3 From 5672d307c7d2cd6bbc55bd8ffd3ad31954488e26 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 14:20:19 +0100 Subject: Add a faq about slowness --- faq/slow.mdwn | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 faq/slow.mdwn diff --git a/faq/slow.mdwn b/faq/slow.mdwn new file mode 100644 index 00000000..831be01f --- /dev/null +++ b/faq/slow.mdwn @@ -0,0 +1,22 @@ +[[!meta copyright="Copyright © 2013 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="Is the Hurd slow?"]] + +The Hurd is currently slower than Linux, yes. + +The main reason is *not* because of the overhead of RPCs. It's simply because +less care has been done on implementing what makes Linux fast: intelligent +read-ahead, carefully-tuned page cache, etc. + +There is no ground reason this can not be achieved on GNU/Hurd, it has just not +been a priority until now (first make it work, then make it work fast). We are +currently working on multi-page pager and read-ahead, which should improve this +a lot. -- cgit v1.2.3 From de92647ad706c6784e60592f6a95428c53a91814 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 17 Mar 2013 14:28:50 +0100 Subject: more comments about slowness --- faq/slow.mdwn | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/faq/slow.mdwn b/faq/slow.mdwn index 831be01f..cb6c4655 100644 --- a/faq/slow.mdwn +++ b/faq/slow.mdwn @@ -10,11 +10,17 @@ License|/fdl]]."]]"""]] [[!meta title="Is the Hurd slow?"]] -The Hurd is currently slower than Linux, yes. +The Hurd is currently slower than Linux, yes. But not very much, so it is +completely usable. -The main reason is *not* because of the overhead of RPCs. It's simply because -less care has been done on implementing what makes Linux fast: intelligent -read-ahead, carefully-tuned page cache, etc. +Take care when running the Hurd in fully-virtualized machines: virtualization +software use ugly heuristics to make Linux run faster, which will not work on +the Hurd (or BSD, etc.) so comparisons in virtualized environments do not really +hold. + +The main reason for slowness is *not* because of the overhead of RPCs. It's +mostly simply because less care has been done on implementing what makes Linux +fast: intelligent read-ahead, carefully-tuned page cache, etc. There is no ground reason this can not be achieved on GNU/Hurd, it has just not been a priority until now (first make it work, then make it work fast). We are -- cgit v1.2.3 From 7305eb7793b5acbdf5c93d2436edf5401669efff Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sun, 17 Mar 2013 16:04:01 +0100 Subject: remove obsolete pages from unsorted --- unsorted/GNUstep.mdwn | 64 --------------------- unsorted/KernelCousinDebianHurd.mdwn | 3 - unsorted/PosixThreads.mdwn | 21 ------- unsorted/changelogs.html | 107 ----------------------------------- 4 files changed, 195 deletions(-) delete mode 100644 unsorted/GNUstep.mdwn delete mode 100644 unsorted/KernelCousinDebianHurd.mdwn delete mode 100644 unsorted/PosixThreads.mdwn delete mode 100644 unsorted/changelogs.html diff --git a/unsorted/GNUstep.mdwn b/unsorted/GNUstep.mdwn deleted file mode 100644 index 95b2a622..00000000 --- a/unsorted/GNUstep.mdwn +++ /dev/null @@ -1,64 +0,0 @@ -# Setting up GNUstep on the Hurd - -GNUstep is not available on the Debian distribution for GNU/Hurd, but it can be built manually. This is, how to do it. - -#### Prerequisites - -This packages should already be installed (Debian package names in brackets): ffcall (libffcall1, libffcall1-dev), libffi (libffi4), libffi4-dev, openssl (openssl), libtiff (libtiff4), libpng (libpng12-0, libpng3), libjpg (libjpeg62), libxml (libxml1, libxml2, libxml2-dev & dependencies), xslt (libxslt1.1, libxslt1-dev & dependencies), ssl (libssl0.9.8, libssl-dev), libungif4-dev libungif4g, aspell (libaspell15, libaspell-dev, aspell & apspell-[for your language, e. g. en]) windowmaker (wmaker), Objective-C-Compiler (gobjc and depending packages) - -#### Getting the sources - -To do an up-to-date-installation, download the daily snapshot from GNUstep into one new directory and unzip/untar them: - - wget ftp://ftp.gnustep.org/pub/daily-snapshots/core.current.tar.bz2 - -#### Building GNUstep - -Everything needed for the GNUstep base system is included into the expanded tarball. This is how to build it: - -Do the following installation as root! - - cd core/make - ./configure - make && make install - cd .. - . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh (see the dot at the begin!) - cd ../base - ./configure - Edit the file Headers/Additions/GNUstepBase/config.h and add "#define BROKEN_SO_REUSEADDR 1" somewhere - make && make install - cd ../gui - ./configure - make && make install - cd ../back - make && make install - -Now, you've built the GNUstep base system. When you want to start a GNUstep application later or want to build one, open a bash shell and enter this command: - - . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh - -This sets some necessary environment variables. - -#### Building GNUstep apps - -You can find some GNUstep applications here: - -and here: [http://mediawiki.gnustep.org/index.php/Main\_Page](http://mediawiki.gnustep.org/index.php/Main_Page) - -#### Known problems - -##### GNUMail - -After starting GNUMail, you can only once get mails from a pop3-server. If you want to fetch mails again, you have to restart it. - -##### GWorkspace 0.8 - -GWorkspace 0.8 expects a /etc/mtab file. If you want to use it, you must manually make this file. - -Example for a /etc/mtab file: - - /dev/hd0s1 / ext2 rw 1 1 - ----- - --- Thomas Schlesinger - 03 Mar 2006 diff --git a/unsorted/KernelCousinDebianHurd.mdwn b/unsorted/KernelCousinDebianHurd.mdwn deleted file mode 100644 index 1ff8a698..00000000 --- a/unsorted/KernelCousinDebianHurd.mdwn +++ /dev/null @@ -1,3 +0,0 @@ -[Kernel Traffic](http://www.kerneltraffic.org/) publishes newsletters that track the technical developments of various projects of the Free and Open Source world. [Newsletters for the Hurd development](http://www.kerneltraffic.org/debian-hurd/archives.html) were published, but not anymore. - -Updated status. -- [[Main/OgnyanKulev]] - 18 Sep 2004 diff --git a/unsorted/PosixThreads.mdwn b/unsorted/PosixThreads.mdwn deleted file mode 100644 index f031b56f..00000000 --- a/unsorted/PosixThreads.mdwn +++ /dev/null @@ -1,21 +0,0 @@ -## POSIX Threads for the Hurd - -One of the features the Hurd has been lacking up til now is support for POSIX threads, pthreads. It has been the show stopper for porting many useful applications and has sometimes been pointed out as one of the bigger problems with the GNU operating system. - -In 2002 however, all this came to an end when Neal Walfield implemented libpthreads for his work on L4 and decided to also make it work on GNUmach. - -Information on the library can be found on Neals web site. - -* - -## Previous Attempts - -Plans to implement pthreads for the Hurd has existed since, at least, 1999. Mark Kettenis [1] began work that was supposed to be useful on Linux as well. His work was continued by Igor Khavikine [2], who implemented most of it. Igor could however not continue his work so it was picked up by Jeroen Dekkers [3] and Ryan Golbeck. Their work can be found on Savannah, . - -1. -2. -3. - ----- - -Initial version -- [[Main/JoachimNilsson]] - 03 Nov 2002 diff --git a/unsorted/changelogs.html b/unsorted/changelogs.html deleted file mode 100644 index 299ef281..00000000 --- a/unsorted/changelogs.html +++ /dev/null @@ -1,107 +0,0 @@ -[[meta copyright="Copyright © 2001, 2002, 2006, 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]]."]]"""]] - -

ChangeLogs

-

-As the Hurd sources are kept and maintained in a CVS repository that -is accessible via the web, you can follow the progress of development -closely. We maintain ChangeLogs, in which we record every change to -the source code at the time it is committed. The links below lead you -directly to the ChangeLog files in the Hurd and its associated packages. -

-If you want to follow the development of the Hurd closely, we suggest -that you subscribe to the commit-hurd mailing -list to which notifications about changes to the Hurd source code -are sent. The complete source -code is also available, of course. -

-

The Hurd

-

-The Hurd source tree contains many independent parts, and therefore -has one ChangeLog for each directory. There is one ChangeLog -in the main directory, and one in each of the following -subdirectories: -

- -

GNU Mach

-The GNU -Mach ChangeLog covers all changes to GNU Mach and GNU -Mach 1 branch ChangeLog those on the gnumach-1-branch. -Changes before March 1997 are listed in ChangeLog.0 -and ChangeLog.00. -

MIG

-The MIG ChangeLog -covers all changes to MIG. -- cgit v1.2.3 From 18fdac0f9c911e25d45ebfcfb5e52ccd56071c16 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sun, 17 Mar 2013 16:24:35 +0100 Subject: misc changes --- faq/0-still_useful.mdwn | 2 +- faq/help.mdwn | 2 +- faq/running/xserver-common.mdwn | 9 +++++++-- faq/support/2_gib_partition_limit.mdwn | 2 +- hurd/translator.mdwn | 4 ++-- hurd/translator/examples.mdwn | 17 +++++++++-------- hurd/translator/hello.mdwn | 6 +++--- hurd/translator/mboxfs.mdwn | 9 +++++++++ hurd/translator/xmlfs.mdwn | 6 ++++++ 9 files changed, 39 insertions(+), 18 deletions(-) diff --git a/faq/0-still_useful.mdwn b/faq/0-still_useful.mdwn index 96ea6f32..85608fe3 100644 --- a/faq/0-still_useful.mdwn +++ b/faq/0-still_useful.mdwn @@ -30,7 +30,7 @@ various servers are designed for this sort of modification. > $ cd /ftp://ftp.debian.org/debian > $ ls > -> personnal filesystem +> personal filesystem > > $ dd < /dev/zero > myspace.img bs=1M count=1024 > $ mke2fs myspace.img diff --git a/faq/help.mdwn b/faq/help.mdwn index 44e16d6b..8352dbfe 100644 --- a/faq/help.mdwn +++ b/faq/help.mdwn @@ -10,4 +10,4 @@ is included in the section entitled [[!meta title="How can I help?"]] -Please see the [contributing page](http://www.gnu.org/software/hurd/contributing.html) +Please see the [[contributing page|contributing]]. diff --git a/faq/running/xserver-common.mdwn b/faq/running/xserver-common.mdwn index 460c6e55..68058641 100644 --- a/faq/running/xserver-common.mdwn +++ b/faq/running/xserver-common.mdwn @@ -11,5 +11,10 @@ License|/fdl]]."]]"""]] [[!meta title="Normal users can't start X"]] -You need to run `dpkg-reconfigure x11-common` and select `Anybody` for -starting X as there is no way to detect console users currently. +This happens because currently there is no way to detect console users. + +On Debian GNU/Hurd systems, you need to run + + # dpkg-reconfigure x11-common + +and select `Anybody` for starting X. diff --git a/faq/support/2_gib_partition_limit.mdwn b/faq/support/2_gib_partition_limit.mdwn index 3315cc08..8d921b07 100644 --- a/faq/support/2_gib_partition_limit.mdwn +++ b/faq/support/2_gib_partition_limit.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]]."]]"""]] -[[!meta title="Is there still a 2 GiB Partition Limit ?"]] +[[!meta title="Is there still a 2 GiB Partition Limit?"]] The 2 GiB limit has been removed in Debian GNU/Hurd. diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index 9bcdbcc5..d4eaf950 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -128,8 +128,8 @@ The [[concept|concepts]] of translators creates its own problems, too: * [pith](http://www.nongnu.org/hurdextras/#pith) * [pptop](http://www.nongnu.org/hurdextras/#pptop) * [run](http://www.nongnu.org/hurdextras/#run) -* [xmlfs](http://www.nongnu.org/hurdextras/#xmlfs) -* [mboxfs](http://www.nongnu.org/hurdextras/#mboxfs) +* [[xmlfs]] +* [[mboxfs]] Some of the above could be moved from hurdextras to [[source_repositories/incubator]], see the [[status page|open_issues/hurdextras]]. diff --git a/hurd/translator/examples.mdwn b/hurd/translator/examples.mdwn index ee766fbf..190b26ae 100644 --- a/hurd/translator/examples.mdwn +++ b/hurd/translator/examples.mdwn @@ -10,7 +10,8 @@ is included in the section entitled ## Setting up translators - HowTo -Translators can be got from hurd-extras +Additional translators can be got from [[source_repositories/incubator]], +or [hurd-extras](http://www.nongnu.org/hurdextras/). cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/hurdextras co @@ -36,7 +37,7 @@ or ftp$ cd ftp.fr.debian.org ftp/ftp.fr.debian.org $ ls -* tarfs translator (needs uatime fix, 2010-08-25 → [git repo](http://github.com/giselher/tarfs)) +* [[tarfs]] translator You can use tarfs to mount (almost) any tar file (currently broken, 2010-08-25): @@ -52,14 +53,14 @@ You can even use it to create new tar files: This is not as fast as `tar czvf newfile.tar.gz all my files`, but at least it's more original. ;) -* cvsfs translator +* [[cvsfs]] translator $ settrans -ac cvsfs_testing /hurd/cvsfs cvs.savannah.nongnu.org /sources/hurdextras $ cd cvsfs_testing -* pfinet translator -- configuring your network interface +* [[pfinet]] translator -- configuring your network interface @@ -77,17 +78,17 @@ This is not as fast as `tar czvf newfile.tar.gz all my files`, but at least it's $ settrans -ac /cdrom /hurd/iso9660fs /dev/ -* ext2fs translator -- 'mounting' an ext2fs partition +* [[ext2fs]] translator -- 'mounting' an ext2fs partition $ settrans -ac /linux /hurd/ext2fs /dev/ -* unionfs translator +* [[unionfs]] translator To join "foo/" "bar/" and "baz/" in the directory "quux/", just do: $ settrans -capfg quux/ /hurd/unionfs foo/ bar/ baz/ -If you want to join even quux/ contents in the union itself, add -u as a translator argument. -You can add filesystems at run-time with the fsysopts command. +If you want to join even quux/ contents in the union itself, add `-u` as a translator argument. +You can add filesystems at run-time with the `fsysopts` command. diff --git a/hurd/translator/hello.mdwn b/hurd/translator/hello.mdwn index bd56cd76..440e1774 100644 --- a/hurd/translator/hello.mdwn +++ b/hurd/translator/hello.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]]."]]"""]] -The *hello* translator is an example of a simple [[libtrivfs]]-based one-node +The `hello` translator is an example of a simple [[libtrivfs]]-based one-node [[translator]]. It is shipped as part of the [[Hurd source code -repository|source_repositories]], and exists in a single-threaded and a -multi-threaded variant. +repository|source_repositories]], and exists in a single-threaded (`hello.c`) +and a multi-threaded (`hello-mt.c`) variant. diff --git a/hurd/translator/mboxfs.mdwn b/hurd/translator/mboxfs.mdwn index e357294f..4ffcaab6 100644 --- a/hurd/translator/mboxfs.mdwn +++ b/hurd/translator/mboxfs.mdwn @@ -8,4 +8,13 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] +`mboxfs` is a translator meant to help people sorting emails. +It parses mailboxes in order to create a directory hierarchy representing +the contents of the mailbox. +Thus, you can sort emails per recipient, senders, date, and much more. +It supports attachments (put in a separate *attach* directory). + + +# Source + diff --git a/hurd/translator/xmlfs.mdwn b/hurd/translator/xmlfs.mdwn index 769c43ce..f57b9f2f 100644 --- a/hurd/translator/xmlfs.mdwn +++ b/hurd/translator/xmlfs.mdwn @@ -8,4 +8,10 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] +`xmlfs` is a translator that provides access to XML documents through the +filesystem. + + +# Source + -- cgit v1.2.3 From 6c1793ec4eb531b1ffc77111cfeec741fc9bb8ca Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 18 Mar 2013 03:03:06 +0100 Subject: Mention the FD I/O error --- faq/issues/fd.mdwn | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 faq/issues/fd.mdwn diff --git a/faq/issues/fd.mdwn b/faq/issues/fd.mdwn new file mode 100644 index 00000000..fad2df7c --- /dev/null +++ b/faq/issues/fd.mdwn @@ -0,0 +1,16 @@ +[[!meta copyright="Copyright © 2013 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="I'm getting I/O eror, dev 02:00, sector 0"]] + +dev 02:00 is the floppy drive. This message simply means that reading the floppy +was attempted, but no floppy disk was inserted, so it failed. It commonly +happens during installer disk detection, or grub setup, and is completely +harmless. -- cgit v1.2.3 From ce8c2531cdb7ee05784437da4c38459e5d3897d6 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 18 Mar 2013 19:34:56 +0100 Subject: Fix missing issues FAQs --- faq.mdwn | 7 +++++++ faq_all.mdwn | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/faq.mdwn b/faq.mdwn index e210601e..f60fae36 100644 --- a/faq.mdwn +++ b/faq.mdwn @@ -52,6 +52,13 @@ pages="faq/debian/* and !*/discussion" show=title]] +# Issues FAQs + +[[!map +pages="faq/issues/* and !*/discussion" +show=title]] + + # Development FAQs [[!map diff --git a/faq_all.mdwn b/faq_all.mdwn index 41e2b5ad..d8d99bb7 100644 --- a/faq_all.mdwn +++ b/faq_all.mdwn @@ -56,6 +56,14 @@ show=0 feeds=no]] +# Issues FAQs + +[[!inline +pages="faq/issues/* and !*/discussion" +show=0 +feeds=no]] + + # Development FAQs [[!inline -- cgit v1.2.3