diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2012-05-24 23:08:09 +0200 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2012-05-24 23:08:09 +0200 |
commit | 2910b7c5b1d55bc304344b584a25ea571a9075fb (patch) | |
tree | bfbfbc98d4c0e205d2726fa44170a16e8421855e /hurd/faq | |
parent | 35b719f54c96778f571984065579625bc9f15bf5 (diff) |
Prepare toolchain/logs/master branch.
Diffstat (limited to 'hurd/faq')
-rw-r--r-- | hurd/faq/how_about_drivers.mdwn | 17 | ||||
-rw-r--r-- | hurd/faq/how_to_switch_microkernels.mdwn | 15 | ||||
-rw-r--r-- | hurd/faq/off.mdwn | 25 | ||||
-rw-r--r-- | hurd/faq/old-stuff.mdwn | 45 | ||||
-rw-r--r-- | hurd/faq/old_faq.txt | 562 | ||||
-rw-r--r-- | hurd/faq/old_hurd_faq.txt | 289 | ||||
-rw-r--r-- | hurd/faq/release.mdwn | 15 | ||||
-rw-r--r-- | hurd/faq/slash_usr_symlink.mdwn | 20 | ||||
-rw-r--r-- | hurd/faq/slash_usr_symlink/discussion.mdwn | 45 | ||||
-rw-r--r-- | hurd/faq/still_useful.mdwn | 46 |
10 files changed, 0 insertions, 1079 deletions
diff --git a/hurd/faq/how_about_drivers.mdwn b/hurd/faq/how_about_drivers.mdwn deleted file mode 100644 index 0556fd28..00000000 --- a/hurd/faq/how_about_drivers.mdwn +++ /dev/null @@ -1,17 +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="What drivers does GNU/Hurd have?"]] - -Currently, Mach integrates drivers from Linux 2.0 through some glue code. As -it's very old, that limits hardware support a lot, of course. We are however -working on using the DDE toolkit to run linux drivers in userland processes, -which provides both long-term support for new hardware and safety against driver -bugs. 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 64009101..00000000 --- a/hurd/faq/off.mdwn +++ /dev/null @@ -1,25 +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="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. - -Note that due to a bug, -we [[recommend you run syncfs|open_issues/sync_but_still_unclean_filesystem]] -prior to issuing the `halt` command. diff --git a/hurd/faq/old-stuff.mdwn b/hurd/faq/old-stuff.mdwn deleted file mode 100644 index df2058c0..00000000 --- a/hurd/faq/old-stuff.mdwn +++ /dev/null @@ -1,45 +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. Also see [[GNU/GnuNames]] - -* **_What editor can I use?_** - * `nano` is the default editor on a fresh install, not `ae`, but a lot of editors are available. - -* **_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?_** - * You need to [use screen](http://www.gnu.org/software/hurd/faq.en.html#q4-6) instead, also available when running GNU/Linux. - * The [new console](http://lists.debian.org/debian-hurd/2002/debian-hurd-200209/msg00054.html) by Marcus Brinkmann could also be used. It supports the Alt-Fn keys for switching like in Linux. NOTE: that message has an error in the configuration steps, it says `/dev/vts` when it means `/dev/vcs`. A more up-to-date howto is [[console]]. - -* **_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 this "libio" stuff?_** - * There was an ABI change for glibc0.3. It's recommended you reinstall your GNU/Hurd system if you run a system installed before the summer of 2002. This is a similar cause for the various Linux distributions who changed from libc5 to libc6 or glibc2 around 1998. - -* **_What is GNU Mach vs. oskit-mach?_** - * These are different versions of the Mach microkernel that supports the Hurd that runs on top of it. For more info, see [[Mach]] - -* **_What software is available for GNU?_** - * Most (2/3) packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in <http://packages.debian.org/>. 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 April 2010, 65% 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 <http://www.nongnu.org/thug/serial-howto.txt> - * For a real serial console at boot time you need to rebuild your GNUmach 1.x kernel. For more info see the Utah release notes at [http://www.cs.utah.edu/flux/mach4-i386/html/mach4-UK22.html#serial\_console](http://www.cs.utah.edu/flux/mach4-i386/html/mach4-UK22.html#serial_console) - -* **_Will GNU work in Vmware?_** - * It's highly recommended and easier to get a full image for qemu. See [[Distrib]] - * It didn't use to, [Hurd bootstrap fails](http://lists.debian.org/debian-hurd/2002/debian-hurd-200207/msg00069.html). Vmware is not [free software](http://www.gnu.org/philosophy/free-sw.html) and it is [[Distrib/VmWare]]. We recommend to use [free](http://www.gnu.org/philosophy/free-sw.html) alternatives, like [[Distrib/BochsEmulator]]. - * A faster, more widespread and [free](http://www.gnu.org/philosophy/free-sw.html) recent alternative is [QEMU][[running/QEMU]]. You can find more informations on [[running/QEMU]]. - * If someone prefers using VMWare: - * It works with VMWare Workstation 4.0.5 build-6030. - * Running Debian GNU/HURD in VMWare works for me -- [[Main/MichaelAblassmeier]] - 03 Mar 2004 diff --git a/hurd/faq/old_faq.txt b/hurd/faq/old_faq.txt deleted file mode 100644 index 617d7661..00000000 --- a/hurd/faq/old_faq.txt +++ /dev/null @@ -1,562 +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. Both disks -and partitions are enumerated using zero based arrays. The format is: -`hd (<disk>, <partition>)'. Thus, `hd (0, 1)' refers to the second -partition on the first drive detected by the BIOS. 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. - -?? 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. - -?? 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? - -{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. - -?? 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? - -{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-<backspace> 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). - -?? 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 `2' and `3'? - -{MB} Two is the kernel, three is the default pager and four is the root -filesystem. - -?? 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} `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. - -?? 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? - -{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. - -? 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 - -{NHW} To get the source to the latest debian package, look on any -debian mirror. - -?? Can I cross compile? - -{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 <farid.hajji@ob.kamp.net> 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 <hurd>/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 <marcus@gnu.org> - - * 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 <neal@cs.uml.edu> -* {MB} Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de> -* {AMS} Alfred M. Szmidt <ams@gnu.org> -* {OK} Ognyan Kulev <ogi@fmi.uni-sofia.bg> -* {FH} Frédéric Henry <neryel@reveries.info> -* {MM} Manuel Menal <mmenal@hurdfr.org> diff --git a/hurd/faq/old_hurd_faq.txt b/hurd/faq/old_hurd_faq.txt deleted file mode 100644 index e6c6cb5a..00000000 --- a/hurd/faq/old_hurd_faq.txt +++ /dev/null @@ -1,289 +0,0 @@ -The Unofficial (and no longer maintained) GNU Hurd FAQ, Version 0.13 - -Contributions by: - -Michael I. Bushnell <mib@gnu.org> -Len Tower <tower@gnu.org> -Trent Fisher <trent@gnurd.uu.pdx.edu> -jlr@usoft.spb.su -Remy Card <Remy.Card@masi.ibp.fr> -Louis-Dominique Dubeau <hallu@info.polymtl.ca> - -Original Document by: Derek Upham <upham@cs.ubc.ca> - - -============================== - -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? -Q6. What's a proper machine? -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 <gord@enci.ucalgary.ca> 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/ - - -Q5. Where can I find more information? - -The June 1995 GNU's Bulletin contains the following official -information: - - The GNU Hurd now runs programs native. We have implemented both - shared libraries using ELF, & the popular `ext2' file system used - by Linux. It can run GCC, `make', Emacs, & most other GNU - utilities. Progress is being made so rapidly that by the time you - read this it probably does much more. It is right on the verge of - being self-hosting (able to run on its own well enough to compile - its own source code, & be used for its own development). We have - much better device supportm [sic] & some new utilities, including a - fancy `ps' & `settrans'. For a complete system we still have much - more work to do, but we will make an alpha release as soon as the - network software is finished & shared libraries have been well - tested. We have a mailing list to announce progress; to be added - to it, ask `hurd-announce-request@gnu.org'. - -The Portland State University CS department (via Trent Fisher) -maintains a WWW server with various Hurd documents, including Michael -Bushnell's Hurd paper, all the collected GNU's Bulletins, and various -announcements posted to "gnu.misc.discuss". The top-level GNU page is - - http://www.cs.pdx.edu/~trent/gnu/gnu.html - -and the Hurd page is - - http://www.cs.pdx.edu/~trent/gnu/hurd/hurd.html - -People in Europe might want to try the GNU WWW server for DESY -Germany, first: - - http://info.desy.de/gnu/www - -This site lacks culled, Hurd-specific information at the moment, but -it does have the last two GNU's Bulletins plus lots of general -information. - -There is a snapshot of the Hurd development tree on -"alpha.gnu.ai.mit.edu" in the "/gnu" directory. It is updated as -significant changes are made, and not guaranteed to run. - -You can subscribe to the Hurd announcement list by sending a request -to "hurd-announce-request@gnu.org". This is a moderated list -for distributing Hurd info to ``all and sundry'', and anyone can join. -In addition, there is a private (invitation-only) list for developers -to coordinate their efforts. It's not even worth thinking about -unless you (a) have a lot of free time on your hands, (b) know Unix -internals and Mach very well, and (c) have a proper machine. - - -Q6. What's a proper machine? - -A ``proper machine'', at the moment, means an x86 box running Mach 3.0 -(or 4.0), with FreeBSD 2.x, NetBSD 1.x, or Linux. - -A single-server OS is no longer required for development because by -the time the Hurd bootstrap mechanism is finished, the Hurd will -probably be self-hosting. - -Linux, FreeBSD, or NetBSD will only be required to splat the Hurd -binaries onto a partition of some sort, and to provide a way of -transferring files to the Hurd until the networking code is ready. - - -Q7. What sort of machines will run Hurd in the future? - -The first thing a prospective Hurd machine needs is a Mach 3.0 port. -According to the most recent "comp.os.mach" FAQ (which hasn't been -updated since February 1994), the following chips have redistributable -Mach micro-kernels and device drivers: - - Intel 80x86 (ISA and PS/2 buses) - Motorola 68000 (Sun 3) - Motorola 88000 (Omron Luna) - DEC Vax - DEC Pmax (DECstation 3100) - DEC Alpha - MIPS R4000 (DECstation 5000 et al.) - IBM RS/6000 - Apple Macintosh - -IBM is planning to run WorkplaceOS (the OS/2 successor) over Mach 3.0 -on the PowerPC chip (closely related to the RS/6000), so the PowerPC -will likely be added to this list soon. The University of Utah has -ported Mach 4.0 to the HP700, but it is not yet stable. - -Sun Sparc machines have a redistributable Mach microkernel, but the -device drivers require a SunOS 4.1.1 source license. - -In addition, any prospective Hurd machine needs a port of the GNU C -library. Version 1.07.4 of the library can handle the following -chips: - - Intel 80x86 (BSD, Dynix, Hurd, SCO, SysV) - Motorola 68000 (HP BSD, NEWS, Sun 4) - MIPS R4000 (Ultrix) - Sun Sparc (Solaris 2, Sun 4) - DEC Alpha (OSF/1, mostly finished) - -So if the next Hurd snapshot is self-hosting, we will be able to run -it (in theory) on Intel 80x86s, Motorola 68000s, MIPS R4000s and DEC -Alphas. - -People who can port the Mach micro-kernel to new architectures are -encouraged to do so. People who can port the GNU C library to new -chips (a much larger group) are also encouraged to do so. You can -help out here without knowing anything about Mach or having any -special machine. Note that once the GNU C library exists for a new -chip, for _any_ OS, making a Hurd port later is simple (and making -ports to other chips becomes easier as well---the effects are -cumulative). - -By current indications, the other hardware requirements (RAM, disk -space, and the like) will be about the same as those of BSD 4.4. - - -Q8. What is the current development status? - -Please see Trent Fisher's Hurd pages for details. - - -Q9. What sort of a system would we have if the Hurd was bootable -today? - -Quite likely, if you already use an end-user system like Linux, -FreeBSD, or NetBSD, you'll be disappointed with the Hurd. It will -take some time before the OS hackers really get to work on -applications and major enhancements. - -But, rest assured, Hurd development should proceed very rapidly. - -Of course, if you think you can help, or you just enjoy neat stuff, -then you'll probably like the Hurd. When you actually understand a -fraction of what's going on behind the scenes, it's very impressive. - -All I'm saying is that I'm not expecting all the Windows '95 users in -the world to switch to the Hurd right away. Wait a little while, -maybe 5-6 years (ample time for GNUStep and Guile to be in use), and -GNU users everywhere will be very happy that the FSF proceeded with -the Hurd. :) - - -============================== - -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 - - <marcusb> I remember the time when we had a /usr symlink. Now fedora 17 - will move / to /usr and have /foo symlinks. :) - <marcusb> braunr: - http://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge - <marcusb> braunr: fedora and others are merging /bin, /sbin and some other - into /usr - <marcusb> 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 - <gnu_srs> marcusb: Hi, which one is better (in your opinion): / or /usr? - <marcusb> gnu_srs: fedora says that using /usr allows better separation of - distribution files and machine-local files - <braunr> marcusb: won't it break remote /usr ? - <marcusb> so you can atomically mount the OS files to /usr - <marcusb> gnu_srs: but in the end, it's a wash - <marcusb> personally, I think every package should get its own directory - <braunr> marcusb: what PATH then ? - <marcusb> braunr: well, I guess you'd want to assemble a union filesystem - for a POSIX shell - <braunr> marcusb: i don't see what you mean :/ - <braunr> ah this comes from Lennart Poettering - <marcusb> braunr: check out for example how http://nixos.org/ does it - <manuel> braunr: something like, union /package1/bin /package2/bin - /package3/bin for /bin, /package1/lib /package2/lib /package3/lib for - /lib, etc. I guess - <braunr> manuel: would that scale well ? - <marcusb> 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 - <braunr> 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. |