diff options
Diffstat (limited to 'Hurd')
52 files changed, 0 insertions, 2579 deletions
diff --git a/Hurd/ABITransitionStatus.mdwn b/Hurd/ABITransitionStatus.mdwn deleted file mode 100644 index 123e8f8c..00000000 --- a/Hurd/ABITransitionStatus.mdwn +++ /dev/null @@ -1,9 +0,0 @@ -Several transitions have occured recently. - -* [ABI Switch](http://lists.debian.org/debian-hurd/2002/debian-hurd-200204/msg00096.html) from April 17, 2002 - -* [Phase I accomplished](http://lists.debian.org/debian-hurd/2002/debian-hurd-200204/msg00157.html) from April 26, 2002 - -* [status of the ABI transition](http://lists.debian.org/debian-hurd/2002/debian-hurd-200205/msg00242.html) from May 15, 2002 - --- [[Main/GrantBow]] - 15 May 2002 diff --git a/Hurd/AptConfOffline.mdwn b/Hurd/AptConfOffline.mdwn deleted file mode 100644 index c4cc85be..00000000 --- a/Hurd/AptConfOffline.mdwn +++ /dev/null @@ -1,28 +0,0 @@ - APT - { - /* This file belongs in Debian GNU/Hurd's /etc/apt/apt.conf.offline - and will be used when running Debian GNU/Linux. This is only - required when the GNU/Hurd does not have network access. */ - - Architecture "hurd-i386"; - - Get::Download-Only "true"; - }; - - Dir - { - /* Use the disc for state information and redirect the status file from - the /var/lib/dpkg default - assumes Debian GNU/Hurd mounted on /misc/hurd and /var mounted underneath this if necessary */ - - // State::lists should be here, the lists subdirectory. - State "/misc/hurd/var/lib/apt/"; - State::status "/misc/hurd/var/lib/dpkg/status"; - - // Binary caches will be stored locally - Cache::archives "/misc/hurd/var/cache/apt/archives/"; - Cache "/tmp/"; - - // Location of the source list. - Etc "/misc/hurd/etc/apt/"; - }; diff --git a/Hurd/BuildingHurdLiveCD.mdwn b/Hurd/BuildingHurdLiveCD.mdwn deleted file mode 100644 index e2082268..00000000 --- a/Hurd/BuildingHurdLiveCD.mdwn +++ /dev/null @@ -1,70 +0,0 @@ -# <a name="Recipes_for_bootable_GNU_Mach_Hu"> </a> Recipes for bootable GNU Mach/Hurd Live CD - -## <a name="Greg_s_recipe"> Greg's recipe </a> - -In my attempts to get a bootable CD for the Hurd here's the recipe I followed, your's will be similar. I needed a grub-0.92, with a patch from <http://alpha.polynum.org/misc/>, and version 1.16 of mkbimage (I don't exactly remember where I got that from). - -You can grab a copy of it at <http://sleepingsquirrel.org/hurd/hurdcd.iso.gz>, which is a gzipped bootable \*.iso with the copy of the patched grub and the version of mkbimage I used. Here's the recipe I followed (under linux). - - # mkdir ./2.88floppy - # mkdir ./isodir - # cp grub/* 2.88floppy/boot/grub/ - # cp grub/* isodir/boot/grub/ - # cd 2.88floppy - # tar -cf ../floppyimg.tar * - # cd .. - # mkbimage -f floppyimg.tar -t 2.88 - # cp 2.88.image isodir/ - # mkisofs -r -b 2.88.image -c boot.catalog -o hurdcd.iso isodir/ - # cdrecord -v speed=4 dev=0,0,0 -data hurdcd.iso - -That was the recipe for using a floppy image. If you use the `-t hd` switch of `mkbimage`, you'll get an ext2fs El-Torito HD emulation image that can be any size (I've got one here 300+ MB). You can then use `root (hd0,0)` in Grub to boot something. Also, invoking `mkbimage` with no parameters will give you some additional help messages. - --- [[Main/GregBuchholz]] - 05 Nov 2003 - -## <a name="Another_recipe_for_a_bootable_GN"> </a> Another recipe for a bootable GNU CD - -[screenshot](http:///mycelium.afraid.org/Screenshot2.png) - -### <a name="What_you_ll_need"> What you'll need </a> - -* A [stage2\_eltorito](http://mycelium.dyndns.org/stage2_eltorito) from [grub 0.95](http://www.gnu.org/software/grub) -* A [base system](http://www.update.uu.se/~ams/gnu/gnu-2004-12-04.tar.bz2) -* [iso9660fs.static](http:///mycelium.dyndns.org/iso9660fs.static) (this link is bought the farm) or just build your own, it should work with CVS - -### <a name="HowTo"> HowTo </a> - - # mkdir iso - ..(at this point untar or setup base system) - # mkdir -p iso/boot/grub - # cp iso9660fs.static iso/hurd - # cp stage2_eltorito iso/boot/grub - ..(edit iso/boot/grub/grub.conf) - # mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \ - -boot-load-size 4 -boot-info-table -o livecd.iso iso/ - -**_Note:_** The following files must **\_NOT\_** be symlinks! - -* `/boot/gnumach` -* `/hurd/iso9660fs.static` -* `/hurd/exec` -* `/lib/ld.so.1` - -## <a name="Contents_of_grub_conf"> Contents of grub.conf </a> - - timeout 60 - default 0 - - title GNU/Hurd CD - #uppermem 523648 #this may need to be set - #root (cd) - kernel /boot/gnumach root=device:hd2 #set device to your cdrom device - module /hurd/iso9660fs.static --multiboot-command-line=${kernel-command-line} \ - --host-priv-port=${host-port} --device-master-port=${device-port} \ - --exec-server-task=${exec-task} -T typed ${root} $(task-create) \ - $(task-resume) - module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - -**_Note:_** The `root (cd)` line may prevent some computers from booting the livecd. - --- [[Main/AndrewResch]] - 22 Feb 2005 diff --git a/Hurd/CrossHurd.mdwn b/Hurd/CrossHurd.mdwn deleted file mode 100644 index d33d2a00..00000000 --- a/Hurd/CrossHurd.mdwn +++ /dev/null @@ -1,99 +0,0 @@ -This will eventually become an installation guide for the Debian crosshurd package (GNU/Hurd cross install only). However, for the time being I am setting it up as a diet version of Hurd/InstalNotes, adapted for crosshurd, adapted for me. - --- [[Main/JoachimNilsson]] - 14 Mar 2004 - -## <a name="Reserving_partitions"> Reserving partitions </a> - -You need a swap and root partition, much like any other UNIX system. Two things to remember: - -1. Root partition still <2.0 GiB -2. Root partition: mke2fs -o hurd -b 4096 -L Carlsberg - -From a Debian GNU/Linux installation preparing install of GNU/Hurd on /dev/hdb2 reusing the Linux swap on /dev/hdb4. - - # mke2fs -o hurd -b 4096 -L Carlsberg /dev/hdb2 - -<div> - <center> "Carlsberg. Probably the best beer in the world." </center> -</div> - -## <a name="Bootstrapping"> Bootstrapping </a> - -After having installed the Debian crosshurd package you need to mount your newly created Hurd partition. - - mkdir /gnu - mount /dev/hdb2 /gnu - -Now, simply run the crosshurd program and follow the onscreen directions. **Do** select the usr symlink. - - crosshurd - -crosshurd burps a lot of unneeded information on screen and probably fails to install one or two files due to duplicates between GNU and Debian packages. Lets hope this mess is worked out some day. - -## <a name="Rebooting"> Rebooting </a> - -Before we reboot you must setup a Hurd entry in the menu.lst file of Grub. Do it like this and remember, **no trailing spaces**! - -The first two runs (reboots) you must run the Hurd in single-user mode! - - title GNU (kernel GNUmach 1.3) - root (hd1,1) - kernel /boot/gnumach.gz root=device:hd1s2 -s - module /hurd/ext2fs.static \ - --multiboot-command-line=${kernel-command-line} \ - --host-priv-port=${host-port} \ - --device-master-port=${device-port} \ - --exec-server-task=${exec-task} \ - -T typed ${root} $(task-create) $(task-resume) - module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - -The notation of Grub, and of the Hurd, can be somewhat bisarre on first sight. Consult the [[InstallNotes]] document and the Grub manual for a thorough explanation. - -N.B. the '-s' on the kernel line, it is "single user mode", which you need for the first two reboots. - -OK, reboot now. - -## <a name="First_steps"> First steps </a> - -Set TERM variable and run native-install script. - - export TERM=mach - ./native-install - -At the end native-install wants you to reboot and run it again. Do so and remember to set the TERM variable as well. - -After the second reboot and native-install run you can remove the '-s' in the kernel line above and boot GNU/Hurd as a normal user. - -## <a name="Logging_in"> Logging in </a> - -Finally, a complete bootstrapped GNU system. - - login root - - export TERM=mach - - nano /etc/fstab - [add swap partition /dev/hd1s4] - - nano /etc/ttys - [remove all hashes to enable the new Hurd Console] - - settrans -fgap /servers/socket/2 /hurd/pfinet -i eth0 -a 192.168.1.3 -g 192.168.1.1 -m 255.255.255.0 - - dselect - -Now, do the old Debian thing of dancing with dselect for a couple of hours. - -Reboot and start the new [[Console]] - - login root - - console -d vga -d pc_kbd -d generic_speaker /dev/vcs - -Move around just like in Linux console, but with persistent scroll-back buffers for each console. - -## <a name="References"> References </a> - -* [[InstallNotes]] -* [[Network]] -* [[Console]] diff --git a/Hurd/CrossPlatformAliases.mdwn b/Hurd/CrossPlatformAliases.mdwn deleted file mode 100644 index 06a0e897..00000000 --- a/Hurd/CrossPlatformAliases.mdwn +++ /dev/null @@ -1,8 +0,0 @@ - # Aliases assume Debian GNU/Hurd mounted on /misc/hurd - # possibly via autofs /etc/auto.misc configuration and 'cd / && ln -s var/autofs/misc misc' - alias locatehurd="locate -d /misc/hurd/var/lib/locate/locatedb" - alias apt-cachehurd="APT_CONFIG=/misc/hurd/etc/apt/apt.conf.offline apt-cache" - alias apt-gethurd="APT_CONFIG=/misc/hurd/etc/apt/apt.conf.offline apt-get" - # dselect requires APT_CONFIG due to dselect apt method - alias dselecthurd="APT_CONFIG=/misc/hurd/etc/apt/apt.conf.offline dselect --admindir /misc/hurd/var/lib/dpkg/" - alias dpkghurd="dpkg --root=/misc/hurd"= diff --git a/Hurd/DebianX.mdwn b/Hurd/DebianX.mdwn deleted file mode 100644 index 00692ca8..00000000 --- a/Hurd/DebianX.mdwn +++ /dev/null @@ -1,130 +0,0 @@ -# <a name="Setting_up_X_on_Debian_GNU_Hurd"> </a> Setting up X on Debian GNU/Hurd - -#### <a name="Table_Of_Contents"> Table Of Contents </a> - -%TOC% - -This is a brief helper on how to setup X-Windows on Debian GNU/Hurd. - -Obviously this text is taken from the page <http://hurd.gnufans.org/bin/view/Hurd/Xfree86> but I was making such drastic changes, I didn't want to hack up that page. - -### <a name="Mouse_amp_Keyboard"> Mouse & Keyboard </a> - -See [[console]] for more details. - -You should instruct the Hurd console to repeat keyboard events to `/dev/cons/kbd`, and mouse events to `/dev/cons/mouse`: - - # console -d vga -d pc_kbd --repeat=kbd \ - -d pc_mouse --repeat=mouse --protocol=ps/2 -c /dev/cons /dev/vcs - -Symbolic links to repeaters should also be created: - - # ln -s /dev/cons/kbd /dev/kbd - # ln -s /dev/cons/mouse /dev/mouse - -### <a name="Selecting_amp_Configuring_Packag"> Selecting & Configuring Packages </a> - -You will need several X packages. The `x-window-system-core` brings you most of what you need: - -* `xserver-xfree86` -* `xfonts-base` -* `xfonts-100dpi` -* `xfonts-75dpi` -* `xfonts-scalable` -* `xbase-clients` -* `xutils` -* `rxvt` -* ... as well as your window manager of choice: - * WindowMaker, `wmaker` - * FVWM, `fvwm` - * Blackbox, `blackbox` - * TWM, `twm` - -I know that twm and Window Maker work, however, I cannot attest to the other two. Also, Michael Banck has a working package for xfce4 for those of you that are interested. The link for the package is here: - - deb http://people.debian.org/~mbanck/hurd-xfce4/ ./ - -Thanks for that Michael!! - -You will probably need to create a .xsession file for xfce4 with the following command: - - exec /usr/bin/startxfce4 || exec xterm - -This will start the xfce4 desktop or dump to xterm if it fails to start. - -The recommended way of configuring X is using the `xserver-xfree86` debconf template, eg: - - # dpkg-reconfigure xserver-xfree86 - -It may be easier to just copy a working configuration from another operating system on the same computer and place it in `/etc/X11/XF86Config-4`, but this is discouraged as you would have to remove some sections by hand. - -**_IMPORTANT:_** when you configure X, make sure you do **NOT** enable the `speedo` and `dri` modules because they are currently broken. - -**_UPDATE 12/28/2004:_** Speedo is working on mine and is currently running. I do not have DRI enabled however. - -### <a name="Edit_XF86Config_4"> Edit XF86Config-4 </a> - -Now you have to edit the file manually to ensure that the mouse sections look like this: - - Section "InputDevice" - Identifier "Configured Mouse" - Driver "mouse" - Option "CorePointer" - Option "Device" "/dev/mouse" - Option "Protocol" "osmouse" - EndSection - - Section "InputDevice" - Identifier "Generic Mouse" - Driver "mouse" - Option "SendCoreEvents" "true" - Option "Device" "/dev/mouse" - Option "Protocol" "osmouse" - EndSection - -You may also enable the Emulate3Buttons option, but nothing else will work. - - Option "Emulate3Buttons" "true" - -**_WARNING:_** I cannot verify as of yet whether it was the "Emulate3Buttons" setting or the "ZAxisMapping" setting but I had to disable both in order to be able to move and resize windows. - -### <a name="Dynamic_Linking"> Dynamic Linking </a> - -The Hurd does not use `ld.so.conf`, it is necessary to add the following to `/etc/profile` to be sure that the libraries are found: - - LD_LIBRARY_PATH=/X11R6/lib:$LD_LIBRARY_PATH - -"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." -- [Why does X not work?](http://www.gnu.org/software/hurd/faq.en.html#q4-8) - -**_CAVEAT 12/28/2004:_** I did not have to do this so can someone verify that this still needs to be done or was it fixed? Thanks! - -### <a name="Starting_X"> Starting X </a> - -Finally, run `startx` - -However, there are several caveats to be aware of: - -* `xterm` does not work correctly; try `rxvt`. - -**_UPDATE 12/28/2004_**: xterm works fine for me. - -* `update-menu` does not yet work. As such, there are no fine Debian menus. -* GNOME can now be ported with the new pthreads, but is still being worked on. Window Maker, TWM, Blackbox and FVWM all work. - -**_WARNING:_** If you get an error about opening the display or a permissions issue, you may need to run the following: - - # dpkg-reconfigure xserver-common - -change from "Console Users Only" to "Anybody" - -### <a name="Miscellaneous"> Miscellaneous </a> - -The dillo web browser does work, though it is not the greatest browser. - -For you xchat lovers like me, xchat will compile if you disable the python module. (The python module causes an assertion failure in pthreads if one of you guru's wants to fix and package. **hint,hint**) - -Good luck and enjoy! - ----- - --- [[Main/BarryDeFreese]] - 28 Dec 2004 diff --git a/Hurd/DebianXorg.mdwn b/Hurd/DebianXorg.mdwn deleted file mode 100644 index 1599c689..00000000 --- a/Hurd/DebianXorg.mdwn +++ /dev/null @@ -1,197 +0,0 @@ -# <a name="Setting_up_Xorg_on_Debian_GNU_Hu"> </a> Setting up Xorg on Debian GNU/Hurd - -#### <a name="Table_Of_Contents"> Table Of Contents </a> - -%TOC% - -This is a brief helper on how to setup Xorg on Debian GNU/Hurd. - -Obviously this text is taken from the page <http://hurd.gnufans.org/bin/view/Hurd/DebianX> but I was making such drastic changes, I didn't want to hack up that page. - -### <a name="Mouse_amp_Keyboard"> Mouse & Keyboard </a> - -See [[console]] for more details. - -You should instruct the Hurd console to repeat keyboard events to `/dev/cons/kbd`, and mouse events to `/dev/cons/mouse`: - - # console -d vga -d pc_kbd --repeat=kbd -d generic_speaker \ - -d pc_mouse --repeat=mouse --protocol=ps/2 -c /dev/vcs - -Symbolic links to repeaters should also be created: - - # ln -s /dev/cons/kbd /dev/kbd - # ln -s /dev/cons/mouse /dev/mouse - -### <a name="Selecting_amp_Configuring_Packag"> Selecting & Configuring Packages </a> - -The `x-window-system-core` package brings you most of what you need for a base, plus you need to choose a window manager: - -* WindowMaker, `wmaker` -* FVWM, `fvwm` -* Blackbox, `blackbox` -* TWM, `twm` - -I know that Window Maker works, however, I cannot attest to the others. xfce4 might be temporarily broken. - -The recommended way of configuring X is using the `xserver-xorg` debconf template, eg: - - # dpkg-reconfigure xserver-xorg - -This currently seems to be broken in the Debian package so it may be easier to just copy a working configuration from another operating system on the same computer and place it in `/etc/X11/xorg.conf`. You need to edit the mouse settings by hand according to the below example, though. - -**_IMPORTANT:_** when you configure X, make sure you do **NOT** enable the `speedo` and `dri` modules because they are currently broken. - -**BDd: I cannot attest to this currently.** - -### <a name="Edit_xorg_conf"> Edit xorg.conf </a> - -If you managed to get an xorg.conf autogenerated, make sure to have the mouse section read as follows: - - Section "InputDevice" - Identifier "Configured Mouse" - Driver "mouse" - Option "CorePointer" - Option "Device" "/dev/mouse" - Option "Protocol" "osmouse" - EndSection - -Do not set the "Emulate3Button" or "ZAxisMapping" options, they do not work and break things. - -Here is an example of an xorg.conf using VESA at 800x600 that works on my Dell laptop: - - # /etc/X11/xorg.conf (xorg X Window System server configuration file) - # - # This file was generated by dexconf, the Debian X Configuration tool, using - # values from the debconf database. - # - # Edit this file with caution, and see the /etc/X11/xorg.conf manual page. - # (Type "man /etc/X11/xorg.conf" at the shell prompt.) - # - # This file is automatically updated on xserver-xorg package upgrades *only* - # if it has not been modified since the last upgrade of the xserver-xorg - # package. - # - # If you have edited this file but would like it to be automatically updated - # again, run the following command: - # sudo dpkg-reconfigure -phigh xserver-xorg - - Section "Files" - FontPath "/usr/share/X11/fonts/misc" - FontPath "/usr/share/X11/fonts/cyrillic" - FontPath "/usr/share/X11/fonts/100dpi/:unscaled" - FontPath "/usr/share/X11/fonts/75dpi/:unscaled" - FontPath "/usr/share/X11/fonts/Type1" - FontPath "/usr/share/X11/fonts/CID" - FontPath "/usr/share/X11/fonts/100dpi" - FontPath "/usr/share/X11/fonts/75dpi" - # paths to defoma fonts - FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" - FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID" - EndSection - - Section "Module" - Load "GLcore" - Load "i2c" - Load "bitmap" - Load "ddc" - Load "extmod" - Load "freetype" - Load "glx" - Load "int10" - Load "type1" - Load "vbe" - EndSection - - Section "InputDevice" - Identifier "Generic Keyboard" - Driver "kbd" - Option "CoreKeyboard" - Option "XkbRules" "xorg" - Option "XkbModel" "pc104" - Option "XkbLayout" "us" - EndSection - - Section "InputDevice" - Identifier "Configured Mouse" - Driver "mouse" - Option "CorePointer" - Option "Device" "/dev/mouse" - Option "Protocol" "osmouse" - EndSection - - Section "InputDevice" - Identifier "Synaptics Touchpad" - Driver "synaptics" - Option "SendCoreEvents" "true" - Option "Device" "/dev/psaux" - Option "Protocol" "auto-dev" - Option "HorizScrollDelta" "0" - EndSection - - Section "Device" - Identifier "Videocard0" - Driver "vesa" - EndSection - - Section "Monitor" - Identifier "Monitor0" - VendorName "Dell" - HorizSync 31.5 - 90.0 - VertRefresh 59.0 - 85.0 - Option "DPMS" - EndSection - - Section "Screen" - Identifier "Screen0" - Device "Videocard0" - Monitor "Monitor0" - DefaultDepth 24 - SubSection "Display" - Depth 1 - Modes "800x600" - EndSubSection - SubSection "Display" - Depth 4 - Modes "800x600" - EndSubSection - SubSection "Display" - Depth 8 - Modes "800x600" - EndSubSection - SubSection "Display" - Depth 15 - Modes "800x600" - EndSubSection - SubSection "Display" - Depth 16 - Modes "800x600" - EndSubSection - SubSection "Display" - Depth 24 - Modes "800x600" - EndSubSection - EndSection - - Section "DRI" - Mode 0666 - EndSection - -### <a name="Starting_X"> Starting X </a> - -Finally, run `startx` - -However, there are several caveats to be aware of: - -* `update-menu` does not yet work. As such, there are no fine Debian menus. - -**_WARNING:_** If you get an error about opening the display or a permissions issue, you may need to run the following: - - # dpkg-reconfigure x11-common - -change from "Console Users Only" to "Anybody" - -Good luck and enjoy! - ----- - --- [[Main/BarryDeFreese]] - 02 Mar 2006 diff --git a/Hurd/DhcpClient.mdwn b/Hurd/DhcpClient.mdwn deleted file mode 100644 index 442f4781..00000000 --- a/Hurd/DhcpClient.mdwn +++ /dev/null @@ -1,42 +0,0 @@ -# <a name="DHCP_and_the_Hurd"> </a> DHCP and the Hurd - -According to the following thread, no port should be needed since all the patches that have been applied, including the one concerning the thread. In fact, the thread finishes without concluding whether the patch has been applied or not. You can grab it in the thread, anyway. - -[Link to thread](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html) - -The thread starts at Jan 4th 2005 until Jan 6th and is only retaken at April 14th in [this thread](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html). - --- [[Main/ThadeuCascardo]] - 29 Sep 2005 - -No DHCP client has been ported to the Hurd yet. - -[This](http://mail.gnu.org/archive/html/help-hurd/2003-10/msg00016.html) thread on help-hurd has a little more info on what's still needed for DHCP. - --- [[Main/GregBuchholz]] - 09 Oct 2003 - -Found this [message](http://mail.gnu.org/archive/html/bug-hurd/2003-08/msg00045.html) about DHCP capabilities in the Hurd encouraging. - --- [[Main/GregBuchholz]] - 03 Sep 2003 - -* Tom Hart began a [discussion ](http://mail.gnu.org/pipermail/help-hurd/2002-October/006643.html) of 14 posts in Oct 2002. - --- [[Main/GrantBow]] - 20 Oct 2002 - -The beginnings of a DHCP translator is available in the Hurd sources on Savannah: [hurd/trans/pump.c](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/trans/pump.c?rev=1.3&content-type=text/vnd.viewcvs-markup) - -Unfortunately our current TCP/IP stack, the pfinet translator, lacks support for the AF\_PACKET interface as well as sending packets with an IP address of 0.0.0.0. - -Grant Bowman on bug-hurd: - - Herbert Xu (Pump maintainer) told me that to operate correctly, pump - uses the AF_PACKET interface which is only present in 2.2. - - Anyone else know the status of getting these compiled and functional? - -Neal Walfield on bug-hurd replies: - - > Anyone else know the status of getting these compiled and functional? - - We need to be able to send to the DHCP server with ip address 0.0.0.0. - --- [[Main/JoachimNilsson]] - 12 Nov 2002 diff --git a/Hurd/DistributedServers.mdwn b/Hurd/DistributedServers.mdwn deleted file mode 100644 index cb2dd5bc..00000000 --- a/Hurd/DistributedServers.mdwn +++ /dev/null @@ -1,29 +0,0 @@ -# <a name="Distributed_Computing"> Distributed Computing </a> - -The [[Mach]] micro kernel was originally designed to run on symetric multi-processing (SMP) systems. Later, it was extended to allow for distributed OS support. A group of workstations with Mach can act as a single powerful SMP machine. Thus, Mach is also called a Single System Image (SSI). - -The Mach micro kernel provides a good infrastructure for distributed computing, including thread migration, inter-thread communition (both locally and remotely), load balancing and fault-tolerance. The Hurd, using Mach as a foundation, has great potential for distributed computing. Progress toward distributed kernel designs is proceeding within other projects as well. OpenMosix is a related projects for Linux kernels. You can reach it at: - -* <http://www.openmosix.org/> -* <http://openmosix.sourceforge.net/> -* <http://sourceforge.net/projects/openmosix/> - -OpenMosix patches specific Linux kernel versions to make them "distributed-enabled". However, since the Linux kernel is monolithic, patches must be updated with each new version of kernel. That can be extremely difficult due to the pace at which Linux kernels are currently developed. - -The Hurd architecture is better suited to distributed computing. Due to Hurd's server structure this is much more easily adapted. Efforts continue to evolve it's design not only on the Mach micro kernel but also work continues on a [[Mach/PortToL4]] micro kernel. - ----- - -## <a name="Document_history"> Document history </a> - -Created. - --- [[Main/LaudneyRen]] - 29 Sep 2002 - -Various grammatical fixes and tidying up. - --- [[Main/JoachimNilsson]] - 29 Oct 2002 - -Updated for [[Mach]] web, reworded parts for more direct message. Added L4 link. - --- [[Main/GrantBow]] - 11 Jan 2003 diff --git a/Hurd/ExtTwoSize.mdwn b/Hurd/ExtTwoSize.mdwn deleted file mode 100644 index ec39781f..00000000 --- a/Hurd/ExtTwoSize.mdwn +++ /dev/null @@ -1,27 +0,0 @@ -## <a name="Ext2_File_system_limitation"> Ext2 File system limitation </a> - -This is a very common question. Many people have problems with the partition limit on Ext2 filesystems being very small by current standards. It feels smaller all the time as people have larger disks and often larger filesystems. It's worth mentioning that 64-bit machines (ia64, alpha) will not have this limitation. - -Note that, while the official CVS sources still suffer of this problem, recent (as of 2007) Debian GNU Hurd distributions **do not have this limit anymore**. Be happy. [July 2007 from debian-hurd](http://lists.debian.org/debian-hurd/2007/07/msg00087.html) - -* From the Hurd FAQ: [partition limit](http://www.gnu.org/software/hurd/faq.en.html#q2-6) - -**_Patch:_** - -[Release candidate 1](https://savannah.gnu.org/patch/?func=detailitem&item_id=2508) of the patch is uploaded in Savannah. - -**_Useful:_** - -Discussions on status and how to fix the problem: - -* [Febuary 2003](http://lists.debian.org/debian-hurd/2003/debian-hurd-200302/msg00016.html) -* [December 2002](http://mail.gnu.org/archive/html/bug-hurd/2002-12/msg00041.html) -* [March 2002 status](http://mail.gnu.org/archive/html/hurd-devel/2002-03/msg00030.html) and a [follow up](http://mail.gnu.org/archive/html/hurd-devel/2002-03/msg00035.html) -* [Nov 2001 status](http://mail.gnu.org/archive/html/hurd-devel/2001-11/msg00002.html) - -**_Maybe Useful:_** - -* <http://mail.nl.linux.org/kernel-doc/1999-03/msg00001.html> (This link is broken. Have been unable to fix it. [[MauriceMcCarthy]] 2 Nov 2004.) -* <http://www.beowulf.org/pipermail/beowulf/2000-March/008708.html> - -(Searching Beowulf for '2Gb patch' seems to show this still present in the archive but somehow it is not accessible.) diff --git a/Hurd/ExtTwofsTranslator.mdwn b/Hurd/ExtTwofsTranslator.mdwn deleted file mode 100644 index d8f708fc..00000000 --- a/Hurd/ExtTwofsTranslator.mdwn +++ /dev/null @@ -1,4 +0,0 @@ -* [[ExtTwoSize]] - information about the limitation of partition size -* [[XattrHurd]] - Supports Hurd ext2 format extensions on Linux, images at <http://people.debian.org/~mbanck/xattr-hurd> - --- [[Main/GrantBow]] - 03 Mar 2004 diff --git a/Hurd/FlashHurd.mdwn b/Hurd/FlashHurd.mdwn deleted file mode 100644 index a6288afc..00000000 --- a/Hurd/FlashHurd.mdwn +++ /dev/null @@ -1,60 +0,0 @@ -# <a name="USB_Flash_Memory_GNU_Hurd"> </a> USB Flash Memory GNU/Hurd - -It would be nice if we had a bootable [USB flash drive](http://en.wikipedia.org/wiki/USB_key) Hurd like [[DamnSmallLinux]]. It would be useful for those who want to try out the Hurd before they commit to installing it on their hard disks. In addition to that, a bootable Flash Hurd would enable us to have a native installer instead of relying on Linux. - -It could be installed in the USB using a [[hurd/running/Live_CD]] (using a script) - this is the Burned version - or directly downloading the iso files from the Internet - Unburned version -. One can use also [qemu] to run the [[hurd/running/Live_CD]] and them use the USB installation script. - -Here is an outline of the things that need to be done. Please add your comments and suggestions. - -## <a name="Requirements_Outline"> Requirements Outline </a> - -### <a name="1_We_need_to_be_able_get_a_bootl"> </a> 1. We need to be able get a bootloader for USBs - -This is not much of a problem. I have already been successful (see below) in using [Grub](http://en.wikipedia.org/wiki/GRand%20Unified%20Bootloader) and the El-Torito HD emulation to boot [[GNUmach]] off a CD. There may be some minor tweaking of Grub code necessary to detect which device to use for booting (instead of having the user select their device (hd0,hd1,etc.) from the Grub menu). - -Using GRUB's stage2\_eltorito seems to work fine. - -### <a name="2_We_need_a_bootstrap_filesystem"> 2. We need a bootstrap filesystem translator </a> - -This would be something like a statically linked iso9660fs translator. Compiling a statically linked iso9660fs translator is easy enough, though it doesn't boot. I don't currently know whether this is because the translator was never meant to be a bootstrap filesystem, or if there is a simple bug which has never been flushed out because the translator has never been used at boot time before. I've had trouble debugging this problem because I haven't yet figured out a way to use a remote gdb with gnumach. Theoretically you could use the "boot" command to overcome this problem, but "boot" for me mangles the terminal and exits in different manner than an actual boot. - -The iso9660fs translator works great, it just needs to be statically linked. - -### <a name="3_We_need_a_ramdisk_to_enable_wr"> 3. We need a ramdisk to enable write access </a> - -I think we could fake this with Farid Hajii's [memfs](http://www.fprintf.net/hurd/) translator and writing an ext2 filesystem to it. - -From the mem-fs README... - -> memfs-1 is a translator that provides a memory-based file of fixed size. This file can, just like bigfile, contain a regular filesystem. - -We could set a mem-fs translator anywhere on the CD you needed write access, including having softlinks to the contents of the root directory and chrooting to this new directory. - -For a quick and dirty memfs, you can do it right now with the following commands: - - # touch ./ramdisk - # touch ./tmpfs - # settrans -a ./ramdisk /hurd/storeio -Tcopy zero:50M - # /sbin/mke2fs -o hurd -b 4096 -F ./ramdisk - # settrans -a tmpfs /hurd/ext2fs.static ./ramdisk - # fsysopts --writable ./tmpfs - # cd tmpfs - # touch somenewfile - -Here we use two files ramdisk, and tmpfs that are already created on a readonly file system. For illustration purposes, they are touched beforehand. We run an active storeio translator on the ramdisk file to give us 50MB of RAM to work with, and then we make an ext2 filesystem on it. - -At this point we'd could copy the contents of the `/var` directory into the tmpfs, and then symlink `/var` to `/tmpfs/var`. The same goes for all other mutable dirs. - -This approach of putting an entire ext2 filesystem in a copy zero'd store has some drawbacks listed [here](http://lists.gnu.org/archive/html/bug-hurd/2000-12/msg00073.html). - -Those are the essentials. Here is a list of the things which would be nice to have for a USB Flash Memory. - -* Knoppix like script for starting up X and [[GraphicEnvironment]] s ([[FluxBox]], Gnome...) -* DHCP support for easy network setup -* Hardware autodetection (Kudzu). -* Knoppix like script for installing to the hard drive or to bootable USB pendrive . -* (add your favorite feature here) - -Here is a mailing-list [thread](http://lists.debian.org/debian-hurd/2003/debian-hurd-200308/msg00172.html) discussing some of these issues. - --- [[Main/GregBuchholz]] - 21 Oct 2003 -- [[Main/NagromNamreh]] - 29 Jan 2004 diff --git a/Hurd/FtpfsTranslator.mdwn b/Hurd/FtpfsTranslator.mdwn deleted file mode 100644 index 528a10f2..00000000 --- a/Hurd/FtpfsTranslator.mdwn +++ /dev/null @@ -1,7 +0,0 @@ -ftpfs lets you access ftp servers via the filesystem. For detailed usage information use `/hurd/ftpfs --help` and `/hurd/ftpfs --usage`. - -### <a name="hostmux"> hostmux </a> - -ftpfs ist best used with [[HostmuxTranslator]] - --- [[Main/PatrickStrasser]] - 13 Jul 2004 diff --git a/Hurd/FunnyHurd.mdwn b/Hurd/FunnyHurd.mdwn deleted file mode 100644 index 1653ec77..00000000 --- a/Hurd/FunnyHurd.mdwn +++ /dev/null @@ -1,39 +0,0 @@ -## <a name="Fun_stuff_ripped_from_the_Intern"> Fun stuff ripped from the Internet </a> - -<table border="1" cellpadding="1" cellspacing="0"> - <tr> - <td> %ATTACHURL%/hurd-windows.gif <br /> Hurd Windows, availble from <a href="http://www.hurd.com" target="_top">http://www.hurd.com</a></td> - <td> %ATTACHURL%/HurdExchange.gif <br /> Exchange your Hurd at <a href="http://www.thunderinghurd.com" target="_top">http://www.thunderinghurd.com</a></td> - </tr> - <tr> - <td> %ATTACHURL%/HurdCarDeal.jpg <br /> ... and we can of course also offer you a great deal on this -91 Chevy! :-) </td> - <td> %ATTACHURL%/HurdLodge.jpg <br /> The many perks of being a Hurd user also includes our own ski lodge! <br /><font size="+2">Hurd House</font><br /> - <ul> - <li>Knotty pine kitchen</li> - <li>Spacious kitchen &amp; living room with loft</li> - <li>Leather couch and love seat with a TV &amp; VCR</li> - <li>Outdoor Jacuzzi</li> - <li>Spacious master bedroom/bath upstairs</li> - <li>Twin beds in one room / queen bed in another</li> - </ul> - </td> - </tr> - <tr> - <td> %ATTACHURL%/HurdMagician.jpg <br /> From <a href="http://www.magicposters.com/buy/h-k.html" target="_top">http://www.magicposters.com/buy/h-k.html</a></td> - <td> %ATTACHURL%/CrystalAwards.jpg <br /> "Wow dude, I saw the Debian Swirl logo on last nights <a href="http://www.wif.org/events/crystals.html" target="_top">Crystal Awards</a>!" </td> - </tr> -</table> - ----- - -These images and links are only here to serve as a comic relief to this site. It is **not** the intention to humiliate the people, corporations or organizations behind these factual sites. - -If your [company] name or organization is listed here and you do not approve you can remove yourself simply by clicking on the "Edit" button. In the login window that appears you enter _TWikiGuest_ as username and _guest_ as password. - ----- - -### <a name="Comments"> Comments </a> - -Created the page. - --- [[Main/JoachimNilsson]] - 09 Nov 2002 diff --git a/Hurd/FunnyHurd/CrystalAwards.jpg b/Hurd/FunnyHurd/CrystalAwards.jpg Binary files differdeleted file mode 100644 index 2daac850..00000000 --- a/Hurd/FunnyHurd/CrystalAwards.jpg +++ /dev/null diff --git a/Hurd/FunnyHurd/HurdCarDeal.jpg b/Hurd/FunnyHurd/HurdCarDeal.jpg Binary files differdeleted file mode 100644 index 9f533384..00000000 --- a/Hurd/FunnyHurd/HurdCarDeal.jpg +++ /dev/null diff --git a/Hurd/FunnyHurd/HurdExchange.gif b/Hurd/FunnyHurd/HurdExchange.gif Binary files differdeleted file mode 100644 index bbbb4844..00000000 --- a/Hurd/FunnyHurd/HurdExchange.gif +++ /dev/null diff --git a/Hurd/FunnyHurd/HurdLodge.jpg b/Hurd/FunnyHurd/HurdLodge.jpg Binary files differdeleted file mode 100644 index d13562f5..00000000 --- a/Hurd/FunnyHurd/HurdLodge.jpg +++ /dev/null diff --git a/Hurd/FunnyHurd/HurdMagician.jpg b/Hurd/FunnyHurd/HurdMagician.jpg Binary files differdeleted file mode 100644 index 5ef6509a..00000000 --- a/Hurd/FunnyHurd/HurdMagician.jpg +++ /dev/null diff --git a/Hurd/FunnyHurd/hurd-windows.gif b/Hurd/FunnyHurd/hurd-windows.gif Binary files differdeleted file mode 100644 index 5ca7dd74..00000000 --- a/Hurd/FunnyHurd/hurd-windows.gif +++ /dev/null diff --git a/Hurd/GNOME.mdwn b/Hurd/GNOME.mdwn deleted file mode 100644 index 1dbef091..00000000 --- a/Hurd/GNOME.mdwn +++ /dev/null @@ -1,11 +0,0 @@ -![gnome-hurd.png](http://people.debian.org/~mbanck/media/gnome-hurd.png) - -GNOME can now be ported with the new [[Pthreads]], but is still being worked on.The packages are at - -deb <http://people.debian.org/~mbanck/hurd-gnome/> ./ - -The caveats: - -Some applications are not yet built, not even all the ones from gnome-core. 'apt-get install gnome-applets gnome-control-center gnome-icon-theme gnome-panel gnome-session metacity nautilus scrollkeeper' (along with the above APT source) should get you started. - -See also: [[Xfree86]]. diff --git a/Hurd/GNUstep.mdwn b/Hurd/GNUstep.mdwn deleted file mode 100644 index 95b2a622..00000000 --- a/Hurd/GNUstep.mdwn +++ /dev/null @@ -1,64 +0,0 @@ -# <a name="Setting_up_GNUstep_on_the_Hurd"> </a> 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. - -#### <a name="Prerequisites"> Prerequisites </a> - -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) - -#### <a name="Getting_the_sources"> Getting the sources </a> - -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 - -#### <a name="Building_GNUstep"> </a> 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. - -#### <a name="Building_GNUstep_apps"> </a> Building GNUstep apps - -You can find some GNUstep applications here: <http://www.gnustep.org/experience/apps.html> - -and here: [http://mediawiki.gnustep.org/index.php/Main\_Page](http://mediawiki.gnustep.org/index.php/Main_Page) - -#### <a name="Known_problems"> Known problems </a> - -##### <a name="GNUMail"> </a> 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. - -##### <a name="GWorkspace_0_8"> GWorkspace 0.8 </a> - -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/Hurd/GrantBowHurdPage.mdwn b/Hurd/GrantBowHurdPage.mdwn deleted file mode 100644 index 89af3ada..00000000 --- a/Hurd/GrantBowHurdPage.mdwn +++ /dev/null @@ -1,36 +0,0 @@ -Here are some notes on my current Hurd activity. - -I am also unable to get my PCI NE-2000 clone network card working. The driver loads but no routes are possible and therefore no packets get to the network. This is actually a DE-220 NIC that I started to discuss on hurd-help. Here's the actual change I made to gnumach-20020421/linux/dev/drivers/net/Space.c - - static struct device eth0_dev = { - "eth0", 0, 0, 0, 0, 0x240, 10, 0, 0, 0, ð1_dev, ethif_probe }; - -Cheers, - --- [[Main/GrantBow]] - 13 May 2002 - -Booting OSKit-Mach mysteriously works now! Yeah! I didn't even change anything! - -My problems now is how to get my second machine's (hd0,2) (/dev/hda3 for linux folks) partitionto bre recognized by Grub. When I try 'root (hd0,2)' grub spits back 'Filesystem type unknown, partition type 0x83'. This is a standard ext2 /boot partition from my test Progeny install. I even removed the partition, added it back, fsck.ext2 and moved the files back. It still doesn't see the -filesystem-. Very strange. This prevents me from using my second machine right now. - -If anyone knows more about these items, please add your comments below with your signature. - --- [[Main/GrantBow]] - 16 May 2002 - -PLEASE read these once. They are worth the effort. - -* [How To Ask Questions The Smart Way](http://www.tuxedo.org/~esr/faqs/smart-questions.html) - -* [How To Report Bugs Effectively](http://www.chiark.greenend.org.uk/~sgtatham/bugs.html) \*<http://khazad.dyndns.org/gnunet/> - -\*[Lincoln Portrait](http://www.people.virginia.edu/~skd9r/409/portrait.html) transcript - amazingly applicable to open source ideals. - -I am working on a page describing the [[Distrib/GNUDebianBuildProcess]]. - -I also created some very very rough images for use in explaining the Hurd and it's relationship with GNU Mach and Oskit Mach. - --- [[Main/GrantBow]] - 30 May 2002 - -* [[ATTACHURLdiagramxcf]]: Diagram - Gimp file - -* Diagram - PNG file: <br />![diagram.png](%ATTACHURLPATH%/diagram.png) diff --git a/Hurd/GrantBowHurdPage/diagram.png b/Hurd/GrantBowHurdPage/diagram.png Binary files differdeleted file mode 100644 index c8b29047..00000000 --- a/Hurd/GrantBowHurdPage/diagram.png +++ /dev/null diff --git a/Hurd/GrantBowHurdPage/diagram.xcf b/Hurd/GrantBowHurdPage/diagram.xcf Binary files differdeleted file mode 100644 index 76396410..00000000 --- a/Hurd/GrantBowHurdPage/diagram.xcf +++ /dev/null diff --git a/Hurd/HurdDevelopers.mdwn b/Hurd/HurdDevelopers.mdwn deleted file mode 100644 index 1a43a2b8..00000000 --- a/Hurd/HurdDevelopers.mdwn +++ /dev/null @@ -1,120 +0,0 @@ -Here's an unofficial list of Hurd developers and what they are working on. This is very unofficial. - -* [Marcus Brinkmann](http://www.marcus-brinkmann.de) - GNU Hurd Project maintainer, Debian GNU/Hurd Port Manager, fakeroot, oskit console -* [Thomas Bushnell, BSG](http://www.mit.edu/~tb/) - Primary architect, design issues and debugging help -* [Roland McGrath](http://www.frob.com), [resum�](http://www.apocalypse.org/pub/u/roland/resume.html) - GLibC, GCC-3.1, fakeroot (with fakeauth and settrans --chroot) -* Jeff Bailey - turtle autobuilder, gcc-3.1 -* [Igor Khavkine](http://alcor.concordia.ca/~i_khavki/) -* [Gordon Matzigkeit](http://www.fig.org/gord/) - -* Alexandra "[Bunny](http://www.hurd-bunny.tk)" - graphic designer, Hurd promotion -* Alfred M. Szmidt (ams) - -* Daniel (Chillywilly) Baumann - GNU Enterprise Application Server, GNU Common C++ -* [[Main/GrantBow]] - TWiki, promotion -* Jae - fatfs, possibly smbfs -* [[Main/JoachimNilsson]], [[Hurd/JoachimNilssonHurdPage]] - TWiki, OSKit upgrades (currently ATA-100 patches). -* [[Main/JamesAMorrison]] - porting, kernel interface cleanups, [hurd-extras](http://savannah.gnu.org/projects/hurdextras/) -* Neal Walfield - pthreads, documentation, debugging, #hurd admin, log & bot maintainer -* [[Main/NickRusnov]] - mtab & [[Distrib/PortingIssues]] -* Niels M�ller - kernel debugging -* [[Main/OgnyanKulev]] - [[ExtTwoSize]] patch -* Paul Emsley - [Kernel Cousin Debian Hurd](http://kt.zork.net/debian-hurd/latest.html) -* Philip Charles - [ISO CD-images](http://www.copyleft.co.nz/hurd.html) -* Ryan Golbeck - porting. -* [[Main/SamLauzon]] (Indes) - Installer, Sound(!), Bunny mocking -* [[Main/SimonLaw]] - [Kernel Cousin Debian Hurd](http://kt.zork.net/debian-hurd/latest.html) and [[Hurd/KernelCousinDebianHurd]] -* [[Main/WolfgangJ]] - documentation, promotion -* [[Main/DerekDavies]] - OSKit work -* [Daniel Wagner](http://www.vis.ethz.ch/~wagi/) (wagi) - [pcmcia support for OSKit](http://savannah.nongnu.org/projects/oskit/) - -If we got any names wrong, please accept our apologies. - - ---- - -<A NAME="contents"><H1>Acknowledgements</H1></A> - -<P>We wish a warm ``Thank GNU'' to everybody who has helped in the -development of the Hurd. Here is a categorized list of people who -made significant contributions. If we have omitted anybody, we -apologize... please let us know so that we can update this list! - -<DL> -<DT>Hurd software</DT> -<DD><DL> - <DT>Mark Kettenis</DT> - <DD>many GNU C library and Hurd bug fixes and updates</DD> - <DT>Miles Bader</DT> - <DD>paid by the FSF to help make the Hurd usable as a standalone system, - wrote several important translators</DD> - <DT>OKUJI Yoshinori</DT> - <DD>many gnumach bug fixes and updates</DD> - <DT>Roland McGrath</DT> - <DD>paid by the FSF to design and implement the GNU C library for the Hurd, - as well as many Hurd features, current Hurd C library maintainer</DD> - <DT>Thomas Bushnell, BSG (formerly Michael I. Bushnell)</DT> - <DD>paid by the FSF as primary architect of the Hurd, current Hurd maintainer</DD> - <DT>UCHIYAMA Yasushi</DT> - <DD>ported XFree86 to the Hurd</DD> - </DL></DD> - -<DT>Debian GNU/Hurd</DT> -<DD><DL> - <DT>Gordon Matzigkeit</DT> - <DD>paid by the FSF as a liason from GNU to Debian</DD> - <DT>Marcus Brinkmann</DT> - <DD>bootstrapped the Debian GNU/Hurd base set and many packages, liason - from Debian to GNU</DD> - <DT>Santiago Vila</DT> - <DD>support for cross-compiling Debian packages</DD> - </DL></DD> - -<DT>Documentation</DT> -<DD><DL> - <DT>Derek Upham</DT> - <DD>wrote the original GNU Hurd FAQ</DD> - <DT>Gordon Matzigkeit</DT> - <DD>reorganized and updated the GNU Hurd Reference Manual for release 0.3</D -D> - <DT>Matthew C. Vernon</DT> - <DD>wrote the ``Idiot's Guide'' for getting started with the Hurd</DD> - <DT>Matthias Pfisterer</DT> - <DD>reorganized and updated the web site in early 1999</DD> - <DT>Stephen L. Favor</DT> - <DD>current FAQ maintainer</DD> - <DT>Trent Fisher</DT> - <DD>wrote the original version of the Hurd pages</DD> - </DL></DD> -</DL> - -Copyright (C) 1999, 2007 Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111, USA - -Verbatim copying and distribution of this entire article is -permitted in any medium, provided this notice is preserved. - ---- - -Thank GNU to everybody who has contributed to the Hurd's development! - -<UL> - <LI><A HREF="http://www.rr.iij4u.or.jp/~kkojima/">kaz Kojima</A> - ported the Hurd to the <A - HREF="http://www.rr.iij4u.or.jp/~kkojima/hurdmips.html">MIPS - R3000 and R4000</A> processors. - - <LI><A HREF="http://www-mbi3.kuicr.kyoto-u.ac.jp/~okuji/"> - OKUJI Yoshinori</A> maintains a set of <A - HREF="http://www-mbi3.kuicr.kyoto-u.ac.jp/~okuji/hurd.html">Japanese - Hurd pages</A>. - - <LI><A HREF="http://f77.nop.or.jp/">UCHIYAMA Yasushi</A> has ported - XFree86 to the Hurd. - -</UL> - -Copyright (C) 1998 Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111, USA - -Verbatim copying and distribution of this entire article is -permitted in any medium, provided this notice is preserved. diff --git a/Hurd/HurdOnL4.mdwn b/Hurd/HurdOnL4.mdwn deleted file mode 100644 index 79e7a714..00000000 --- a/Hurd/HurdOnL4.mdwn +++ /dev/null @@ -1,173 +0,0 @@ -# <a name="GNU_Hurd_on_L4_wiki"> GNU/Hurd on L4 wiki </a> - -## <a name="Introduction"> Introduction </a> - -This page is a place for information pertaining to the efforts towards realizing the migration and porting of the [[Hurd]] such that it uses the [L4 Microkernel](http://l4ka.org/). The GNU/Hurd Operating System, sometimes just referred to as the _GNU Operating System_ is a rich and robust collection of programs and utilities which enable you to use your computer to do usefull and or entertaining things. The intent is that most any applicable software package available on the [GNU Website](http://www.gnu.org) (and many others also) will be able to be compiled and run under the resultant operating system. - -At this point (06/20/2004) this is not yet possible. Indeed, the preliminary foundations are still being developed. Nevertheless, this is a volunteer created operating system so those with the knowledge, interest, and spare time are encouraged to study and if possible contribute to the project. - -In [CVS module <samp>hurd-l4</samp>](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/), there is a [comprehensive list of items that need to be done](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/TODO). - -## <a name="Components_of_the_System"> Components of the System </a> - -### <a name="The_L4_Microkernel"> The L4 Microkernel </a> - -The kernel of an operating system is a fundamental program which provides essential resources from the hardware of the computer to other programs. A kernel typically runs all the time and remains resident in main memory. The amount of functionality and resources which it provides vary tremendously. The [L4 Microkernel](http://l4ka.org/) is an attempt to create a very small high performace core which provides basic memory management, task and context switching, and little else. - -### <a name="The_Hurd"> The Hurd </a> - -The [Hurd](http://www.gnu.org/software/hurd/hurd.html) is a conglomeration of servers and programs which add additional functionality to a microkernel such that it is capable of utilizing additional hardware resources of the computer. It also provides a compatibility layer such that compiling higher level programs is essentially transparent; i.e. when you write a C program and compile it, you need only include standard headers and libraries and for all intents and purposes your generic program will build and run and you need never resort to unportable coding or access to hardware specific methods. - -For a typical user, The Hurd is intended to silently work in the background providing the services and infrastructure which are lacking in the microkernel but are required for higher level programs and libraries to operate. - -### <a name="GNU_Programs"> GNU Programs </a> - -For the user, this is what is desired: to run [GNU Software](http://www.gnu.org/). These programs provide a full featured, robust, and extremely effective operating system. A L4/Hurd system should be capable of compiling and executing most any software package available from GNU with little or no modification. - -Some readers may be familiar with GNU/Linux systems. When GNU/L4 is complete it should highly resemble the functionality of such systems as L4 and Hurd effectively replace the Linux kernel. The bulk of the software should be expected to run much as it does presently under the Linux kernel (or gnumach based GNU/Hurd systems). - -## <a name="Preparations"> Preparations </a> - -### <a name="Build_System"> Build System </a> - -There are no precompiled binaries for Hurd on L4 that I am aware of, so you will need to be able to compile the source code packages in order to experiment with it. While L4Ka will likely build on a variety of compilers and systems, the Hurd may prove troublesome unless it is built using recent GNU compilers and tools. - -I recently used [Debian Unstable](http://www.debian.org) (Sarge) with GNU gcc version 3.3, autoconf version 2.50, and automake version 1.8 to build the system with good results, although other similarly equipped systems with a good development environment, such as [Gentoo](http://www.gentoo.org) or [Slackware](http://www.slackware.com) are reported to work fine also. - -Generally, I would recommend building the packages using any very up-to-date GNU development system. I'm not going to say that you can't compile them using more exotic platforms, but I wouldn't be overly hopefull about it. I have no idea if Pistachio can be compiled under current gnuMach/Hurd systems it might be interesting to try it. - -### <a name="Making_a_Home_for_L4_Hurd"> Making a Home for L4/Hurd </a> - -Obviously you want to have a home for this little embryonic operating system. Currently, mine is using about 5M for the binaries and headers. If you want the source to reside with the binaries, then allow perhaps another 50M or so, but this is purely optional. - -At the moment, Hurd on L4 can't even see your hard drive, so all you need is a directory on some partition which is visible to the GRUB bootloader. A `/l4hurd` directory on your existing GNU/Linux system is probably fine for now. - -Howevever, if you have some spare disk space or an unused partition, you could optionally create a small partition for the system. This is totally unnecessary at the moment because L4/Hurd lacks hard disk drivers right now, but it is an option. Assuming that you have made some partition **X** with linux _fdisk_, set it to type 83 - Linux and use the following command to initialize it with the classic Hurd extensions: - - - -As noted, this is purely optional, in fact right now you can use any filesystem that GRUB can understand. You can even use TFTP to netboot the system. My current setup takes about 5M for the full install so obviously you don't need much space for this. - -### <a name="Boot_Loader"> Boot Loader </a> - -Just like regular GNU/Hurd, you need to use [GNU GRUB](http://www.gnu.org/software/grub/), the _GRand Unified Bootloader_ in order to boot the system. Hopefully you already have it installed, in which case adding the commands for L4/Hurd to your `menu.lst` is quite trivial. - -If you don't have GRUB installed, then you should probably take some time to get it set up. A good place to look for help is on the regular [Debian GNU/Hurd Installation Page](http://www.debian.org/ports/hurd/hurd-install) at the **3\. The Boot Loader** section. - -This is probably a bit superfluous, but you can even display a snazzy little graphic of some type on your GRUB boot menu. Here's a snip from the header of my `menu.lst` which demonstrates how to do this. - - # menu for grub - splashimage (hd0,0)/boot/grub/debian.xpm - foreground bfbfe7 - background 3f3f7f - -In the above example, my `debian.xpm` is just a 640x480 graphic in xpm format (which you can easily create with GIMP). It does add a bit of pizazz to your boot screen :-) - -In fact, I will attach a sample copy of my `menu.lst` here. It has lots of examples for booting a variety of operating systems in it. Remember that my hard drive partitions are unique to my system. - -* [[ATTACHURLmenulst]]: Sample GRUB boot menu - -## <a name="Building_Hurd_on_L4"> Building Hurd on L4 </a> - -### <a name="L4Ka_Pistachio"> L4Ka Pistachio </a> - -#### <a name="Getting_the_Sources"> Getting the Sources </a> - -I used the latest version of L4Ka, Pistachio version 0.4. It can be obtained from the following website: - -[L4Ka Pistachio Home](http://l4ka.org/projects/pistachio/) - -#### <a name="Compiling"> Compiling </a> - -Pistachio is designed to be compiled in a build directory which is independant from the source directory, so you need to create your build directory after unpacking the tarball. Furthermore, you need to pass a couple of special parameters to the configure program to set it up for use with Hurd. Here is what I did on my ia32 system: - -Note: I have my installation set up in `/l4hurd` and I am starting from within the Pistachio source top-level directory. - - $ mkdir build - $ cd build - Building and installing user-level libraries and servers/applications - $ ../user/configure --with-s0-linkbase=0x40000 --prefix=/l4hurd - $ make - $ make install - Building and installing the kernel - $ make -C ../kernel BUILDDIR=`pwd`/kernel - $ cd kernel - $ make menuconfig - $ make - $ mkdir /l4hurd/boot - $ cp ia32-kernel /l4hurd/boot - -Hopefully everything worked and there were no problems. As usual, if the build fails then scrutinize the output from `configure` and install any missing libraries or development packages. - -### <a name="CVS_l4hurd"> CVS l4hurd </a> - -#### <a name="Getting_the_sources"> Getting the sources </a> - - You need to pull the L4 Hurd sources from the CVS tree on Savannah. The CVS access page is [The GNU/Hurd - CVS (module hurd-l4)](http://savannah.gnu.org/cvs/?group=hurd). In a nutshell, the following commands should retrieve the sources for you: - - $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co hurd-l4 - -#### <a name="Compiling"> Compiling </a> - -Take a look at the README, compiling should be quite simple on any state of the art GNU development system. As per the README, and for my example, you would: - - $ autoreconf -f -i -s - $ ./configure --enable-maintainer-mode --prefix=/l4hurd - $ make - $ make install - $ strip physmem/physmem - - $ mkdir /l4hurd/boot - $ cp laden/laden /l4hurd/boot - $ cp wortel/wortel /l4hurd/boot - $ cp physmem/physmem /l4hurd/boot - -Currently (2004/08/09), physmem needs to be stripped to to avoid a memory conflict with wortel; this requirement may be fixed in the future. - -In my case it was slightly more complicated as Debian uses a wrapper system to enable the use of multiple versions of the GNU Autotools. In this case, the trick is to utilize some environment variables on the command line as follows: - - $ ACLOCAL=aclocal-1.8 AUTOMAKE=automake-1.8 autoreconf -f -i -s - -As above, hopefully this will compile cleanly; otherwise, scroll up, read any error messages, and correct them by installing required packages of the proper version. Any bad compilation problems are most likely due to you either missing or using a wrong version of something. - -## <a name="Installing"> Installing </a> - -The binaries are now installed into `/l4hurd`. All that remains is to add an entry into GRUB's `menu.lst` in order to test it out. Here's an example from my system where I have `/l4hurd` on `/dev/hda9` in my Linux system: - - title GNU Hurd on L4Ka Pistachio 0.4 - root (hd0,8) - kernel /boot/laden -D - module /boot/ia32-kernel - module /libexec/l4/sigma0 - module /boot/wortel -D - module /boot/physmem -D - module /boot/physmem - module /boot/physmem - module /boot/physmem - module /boot/physmem - -It might strike you a little odd that there are five physmem modules. This is done because wortel currently (2004/08/09) expects exactly five modules and the other modules (like the task server, auth server, etc.) have not been implemented yet. Therefore the physmem module is used as a dummy module. - -## <a name="Booting"> Booting </a> - -For me at least, I got some nifty messages and then it dropped into a simple debugging mode. As far as I know, thats all there is right now. - -Read, build, learn, code... - ---todo: add more here. - -## <a name="Experimenting"> Experimenting </a> - -Well, thats why you did all of this, certainly not to do anything else. Use that debugger and get experimenting. - ---todo: things to do wth the debugger - -## <a name="Conclusion"> Conclusion </a> - -If you followed these steps, you most likely have built and booted the latest version of Hurd on L4. I would encourage you to subscribe to the mailing list at the following URL and help in the efforts to get this nifty system up to speed: - -[l4-hurd mailing list](http://lists.gnu.org/mailman/listinfo/l4-hurd) - -And finally, this is a wiki, meaning that **you** have the ability to edit and modify this page. If you want to fix something, add more information, new sub-pages, whatever, feel free to do so. This is a great way to get a doc base up fast and keep it current, so use it like its supposed to be and have fun with Hurd on L4! - --- [[Main/BDouglasHilton]] - 20 Jun 2004 diff --git a/Hurd/HurdOnL4/menu.lst b/Hurd/HurdOnL4/menu.lst deleted file mode 100644 index 3129ea74..00000000 --- a/Hurd/HurdOnL4/menu.lst +++ /dev/null @@ -1,55 +0,0 @@ -# menu for grub
-splashimage (hd0,0)/boot/grub/debian.xpm
-foreground bfbfe7
-background 3f3f7f
- -timeout 30
-default 0 -
-title Debian Sid with Linux kernel 2.6.5
-root (hd0,1)
-kernel /vmlinuz root=/dev/hda2 vga=0x318
-
-title Debian Sid with old kernel
-root (hd0,1)
-kernel /vmlinuz.old root=/dev/hda2 vga=9
-
-title Microsoft Windows 2000
-rootnoverify (hd0,3)
-chainloader (hd0,3)+1
-
-title FreeDOS BETA 8.0
-root (hd0,0)
-chainloader +1
-
-title GNU Hurd on L4Ka Pistachio 0.4
-root (hd0,8)
-kernel /boot/laden -D
-module /boot/ia32-kernel
-module /libexec/l4/sigma0
-module /boot/wortel -D
-module /boot/physmem
-
-title Debian GNU/Hurd (gnumach)
-root (hd0,7)
-kernel /boot/kernel.gz root=device:hd0s8
-module /hurd/ext2fs.static --readonly \
- --multiboot-command-line=${kernel-command-line} \
- --host-priv-port=${host-port} \
- --device-master-port=${device-port} \
- --exec-server-task=${exec-task} \
- -T typed ${root} $(task-create) $(task-resume)
-module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
-
-# title Debian GNU/Hurd (oskit-mach)
-# root (hd3,0)
-# kernel /boot/kernel-ide -- root=hd0s1
-# module /hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T device ${root-device} $(task-create) $(task-resume)
-# module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
-
-# title Debian GNU/Hurd (oskit-mach w/ remote debugging)
-# root (hd3,0)
-# kernel /boot/kernel-ide -d GDB_COM=1 BAUD=9600 -- root=hd0s1
-# module /hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T device ${root-device} $(task-create) $(task-resume)
-# module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
-
diff --git a/Hurd/InstallNotes.mdwn b/Hurd/InstallNotes.mdwn deleted file mode 100644 index 2fc7958a..00000000 --- a/Hurd/InstallNotes.mdwn +++ /dev/null @@ -1,295 +0,0 @@ -Items of interest during install not mentioned elsewhere include the following. Arranged in the same order as Neal Walfield's [install guide](http://web.walfield.org/papers/hurd-installation-guide/english/hurd-install-guide.html). - -**_Currently, [Debian's installation instructions](http://www.debian.org/ports/hurd/hurd-install) are the most up-to-date._**<br /> Note the mirrors mentioned on debian.org have no hurd iso's. The iso's can be found on several mirrors:<br /> \* [Main mirror](http://ftp.debian-ports.org/debian-cd/)<br /> \* [French mirror I](ftp://ftp.eila.jussieu.fr/pub/Debian-CD/)<br /> \* [French mirror II](ftp://ftp.duckcorp.org/hurdfr/hurd/)<br /> \* [Canada mirror](http://www.superunprivileged.org/debian-cd/)<br /> - -## <a name="Table_of_Contents"> Table of Contents </a> - -%TOC% - -## <a name="1_Overview_Where_we_are_going"> 1. Overview - Where we are going </a> - -There are currently four methods to install GNU - -1. Tarball - Neal Walfield's [guide](http://web.walfield.org/papers/hurd-installation-guide/english/hurd-install-guide.html) is excellent and available in several formats. It is the guide that the Hurd community always references first. The GNU official [installation page](http://www.gnu.org/software/hurd/install.html) is the canonical reference. See [[Distrib/TarballNotesHome]] for more info. -2. [[Distrib/BochsEmulator]] is an x86 emulator similar to the propietary [[Distrib/VmWare]] (which is not supported). See the [[Distrib/BochsEmulator]] page for more info. The Bochs project hosts a preinstalled GNU image that is periodicaly updated. You can get the latest one [here](http://sourceforge.net/project/showfiles.php?group_id=12580). -3. [CD-ROM iso images](http://www.debian.org/ports/hurd/hurd-cd) CD-ROM installs are becoming more and more popular. The CDs are based on the most current tarball at release time. See [[Distrib/CDNotesHome]] for more info. -4. The [crosshurd](http://packages.debian.org/crosshurd/) Debian package, which can be used instead of a tarball to install the base system. This is the recommended way to proceed. - -* References to a `cross-install` script can nowadays be completely ignored by anyone not a maintainer. It is only used when creating a new tarball. - -## <a name="2_Real_Estate_or_Finding_A_Home"> 2. Real Estate or Finding A Home </a> - -For those who do not happen to have an available partition or an extra hard drive, this can be the longest step. In this case, we will need to repartition the hard drive. One solution is to use GNU's partition editor, Parted. It features not only basic partition editing, but also partition resizing and moving functions. It can be found at <http://www.gnu.org/software/parted>. The manual is quite complete and includes several tutorials. Also there's a frontend called [nparted](http://packages.debian.org/unstable/utils/nparted.html) to simplify usage. - -The Hurd can only support partition sizes of up to approximately one gigabyte; anything much larger than this will not work. This limitation is a design decision that was made several years ago in which the file system server maps the entire partition into virtual memory. As the amount of virtual memory available on an ia32 is only four gigabytes of which only two gigabytes are available to the application and, of that, a significant portion is reserved for the code, the stack and the heap, the final, maximum contiguous virtual memory area that is left is generally about one gigabyte. This limitation is scheduled to be remove. Several other items, however, currently have a slightly higher priority. - -Having said that, a single one gigabyte partition is more than enough for a working system. Many, however, prefer at least two partitions: one for a root partition and another for a home partition. This latter scheme is highly advised for developers interested in debugging Hurd servers. - -The Hurd supports several extensions to the ext2fs file system format. Foremost among these are passive translators and a fourth set of permission bits for unknown users. In order to take advantage of these features, however, the owner of the partition must be set to Hurd. `mke2fs`, unless specifically overridden on the command line, will set the owner to whatever system core it is running on. As the Hurd will diligently respect this setting, we must be careful to set this appropriately or the Hurd may fail in subtle ways. Be aware that even if a file system is owned by a particular system core, others may still use it; they just may not be able to use certain extensions. - -To create a file system, we use `mke2fs` and pass it `-o hurd` to designate the Hurd as the owner of the new file system. For instance: - - mke2fs -o hurd /dev/DEVICE - -**_Note:_** You may wish to add a `-b 4096` option to `mke2fs` (the default is chosen depending on the size of the partition, and the support for block size 1024 is buggy). The command to check the block size is `tune2fs -l /dev/hda9` under GNU/Linux. - -## <a name="3_The_Boot_Loader_Getting_GRUB"> </a> 3. The Boot Loader - Getting GRUB - -GRUB is the bootloader of the GNU system, and it's currently the only one that supports the multiboot standard, necessary to boot the Hurd. - -A word about GRUB. Unlike traditional boot loaders on the x86, such as LILO, GRUB is very powerful. It has a command line interface, bootp, dummy terminal support and a plethora of other features. In addition, it can boot most any operating system. If you have ever booted an alpha or sparc, you will understand what GRUB can do. Therefore, do not be scared: GRUB is better. You will like it. You will not go back. - -To find GRUB, visit <ftp://alpha.gnu.org/gnu/grub>. Here, there is a source tarball and a floppy image. If you choose to download the tarball, it is a normal configure, make and make install. Included is a wonderfully complete manual on how GRUB works. Read it. If, on the other hand, you choose to download the floppy image, it is sufficient to dump it to a floppy disk to get a working GRUB: - - dd if=grub-boot-VERSION.image of=/dev/fd0 - -You can always install GRUB onto your hard drive at a later date. - -For instructions on using GRUB, see either the info documentation or the quick reference notes on this wiki: - -* [[Distrib/GrubNotes]] - quick reference - -## <a name="4_Cross_Install_Cross_Installing"> </a> 4. Cross Install - Cross Installing GNU - -The recommended way to cross install the Hurd is by using the [crosshurd](http://packages.debian.org/crosshurd) Debian package. Unfortunately, it's broken right now (2003-10-10), so you'll have to use the old tarball method. - -Download the base system `gnu.tar.gz` from <ftp://alpha.gnu.org/gnu/hurd/contrib/robertmh/> or <http://people.debian.org/~rmh/gnu/> . - -The tarball is setup to extract everything into the current directory. After mounting the partition and changing to the mount point, we just need to extract the archive. In the following example, we assume that the root partition is mounted on `/gnu`. - - cd /gnu - tar --same-owner -xvzpf ~/gnu.tar.gz - -**_NOTE:_** This should NOT be confused with the `cross-install` script method. It is only used by maintainers when creating a new tarball. - -## <a name="5_Booting_GNU"> </a> 5. Booting GNU - -Now things are setup to boot GNU for the first time. Verify that the GRUB boot disk is in the drive and reboot. If all goes well, a GRUB menu will be displayed. Hit c for the GRUB command line. - -First, the root file system needs to be set. GRUB uses a partition nomenclature that is a bit different from either GNU or GNU/Linux: both IDE and SCSI drives are named `(hdN)`. `N` is the drive number (zero based) as reported by the BIOS. That is, GRUB makes no distinction between IDE and SCSI disks. The partitions, like the disks, are also indexed numerically from zero: `(hdN,M)`. If this sounds bad, relax: GRUB is also helpful. - -To determine on which file system a particular file resides, one method is to use the find command. When issued this command, GRUB searches on each file system for the specified file and prints where is was found. Here we search for the kernel, `/boot/gnumach.gz`. - - grub> find /boot/gnumach.gz - (hd0,0) - -As we can see, GRUB is indicating that `/boot/gnumach.gz` is on `(hd0,0)`. Thus, we set the root respectively: - - grub> root (hd0,0) - Filesystem type is ext2fs, partition type 0x83 - -Next, GNU Mach needs to be loaded. In addition to loading the binary, at least one option, the root partition, must be specified. This will be used by the Hurd itself. As such, it must be in terms that the Hurd can understand. - -GNU Mach labels disks starting at zero. IDE drives are prefixed with hd, while SCSI disks are prefixed with sd. Like GNU/Linux, drives are number by their position on the controller. For instance, the primary master is `hd0` and the secondary slave is `hd3`. Partitions use the BSD slice naming convention, and append `sM` to the drive name to indicate a given partition. Note that `M` is a one, not zero, based index. The slice number is simple to calculate: just increment what you used for GRUB by one. - -Since the Hurd has not yet been configured, it must be run in single user mode. Adding a `-s` to the kernel command line is all that is required. - -Thus, continuing with the above example and assuming that the first drive in the master on the secondary controller, we would have: - - grub> kernel /boot/gnumach.gz root=device:hd2s1 -s - [Multiboot-elf, ...] - -NOTE: If after running this command you see GRUB Error 28, according to the [GRUB Troubleshooting](http://www.gnu.org/software/grub/manual/grub.html#Troubleshooting) documentation, you may need to tell grub that you have more memory by using the uppermem command. For example, if you have 256MB of RAM and running **displaymem** within GRUB shows that you have less memory than that, you can type **uppermem 262144** to tell GRUB about the additional memory. - -Next, the root file system server and the exec server must be loaded. This is done using GRUB's boot module capability. The parameters are the semantics by which the kernel passes some important values to the servers. - - grub> module /hurd/ext2fs.static \ - --multiboot-command-line=${kernel-command-line} \ - --host-priv-port=${host-port} \ - --device-master-port=${device-port} \ - --exec-server-task=${exec-task} -T typed ${root} \ - $(task-create) $(task-resume) - - [Multiboot-module 0x1c4000, 0x2cfe6a bytes] - grub> module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - [Multiboot-module 0x494000, 0x27afe bytes] - -**_Important:_** each module string should be asingle separate line _or_ line wrapped with a backslash at the end of each line. Remember to make sure there are **_no trailing spaces!_** Adding this to GRUB's `menu.lst` file as soon as possible is advised. - -Finally, GNU can be booted: - - grub> boot - -Sit back and watch the messages. This is actually more important than one might think as there is a bug in GNU Mach whereby hitting a key during the boot process causes the kernel to panic. - -If GNU fails to boot, it could be due to shared IRQs: GNU Mach does not play well with these. You can verify your situation by looking at, for instance, the `/proc/interrupts` file under GNU/Linux. Also, as GNU Mach does not support loadable kernel modules, many of the drivers are compiled into the default kernel. If you have old peripherals, this can be a significant problem: a device may respond badly to a probe intended for a different device. Building a new kernel with only the required devices drivers will usually solve this problem. GNU Mach is easily cross compiled. If you are running Debian, try the `gcc-i386-gnu` package. - -If this does not help, explore the resources listed at the end of this document. Finally, ask on the appropriate mailing list. - -There are some cavaets to the boot process: - -* **IMPORTANT!** Remember when first booting into your freshly un-tarred distribution, you must pass the `-s` option to `/boot/gnumach.gz`. Failure to do so means that you won't get single-user mode. -* **IMPORTANT2!** Add the `--readonly` flag to the file system server in your GRUB `menu.lst` file. This is a work-around to get `fsck` working properly. Don't forget, everything must be on ONE line, or ended with a backslash! -* **IMPORTANT3!** If you have created the filesystem with a later version of e2fsprogs than the one installed in the tarball, it **might** happen that fsck fails and you can't boot multiuser. The workaround is to copy `/bin/true` into `/sbin/e2fsck` and `/sbin/fsck.ext2`, then boot multiuser and install the latest e2fsprogs. - - title GNU (kernel GNUmach 1.3) - root (hdX,Y) - kernel /boot/gnumach.gz root=device:hdXs(Y+1) - module /hurd/ext2fs.static --readonly \ - --multiboot-command-line=${kernel-command-line} \ - --host-priv-port=${host-port} \ - --device-master-port=${device-port} \ - --exec-server-task=${exec-task} \ - -T typed ${root} $(task-create) $(task-resume) - module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - -Where `hdX,Y` is the appropriate hard disk and partition number, in GRUB format. `hdXs(Y+1)` is the GNUmach format - because Mach partitions start at 1, unlike GRUB partitions that start on 0 (zero). - -It is important that each module string is only a single separate line, or by escaping the EOL (end of line) with a back slash. Remember though to make sure there are **_no trailing spaces!_** - -**_GRUB floppy and iso images:_** These are available from <http://www.copyleft.co.nz/links.html>. These have been built with the correct strings and only the root and boot partitions names need to be editied. - -## <a name="6_Native_Install_Finishing_the_I"> 6. Native Install - Finishing the Installation </a> - -Once a prompt comes up, and any time that the the Hurd is in single user mode, it is necessary to set the terminal type: - - export TERM=mach - -(Repeat this each time you boot in single user mode) - -Be warned that CONTROL-C and family will not work in single user mode. - -We can now run the native-install script. This will configure the packages and set up several important translators: - - ./native-install - -Right before the script terminates, it will indicate that it needs to be run a second time. Follow its instructions and reboot using the reboot command. Again, go into single user mode. - -Now it is advisable to enable swap. The mach kernel dislikes running without swap and is unlikely to last through the installation, especially on systems with little physical RAM. Although you can enable swap later on after running `./native-install` for the second time, turning swap on early increases your probability of getting there. - -This will start the default pager, create a device corresponding to the swap partition, and turn swap on on that partition: - - /hurd/mach-defpager - cd /dev - ./MAKEDEV hdXsY - swapon /dev/hdXsY - cd / - -**IMPORTANT!** When enabling swap please be very sure that the partition really is swap. If you point `swapon` to a data partition it will use that for swap, overwriting any data you may have there. - -Now run `./native-install` for the second time and go through a series of prompts. - -Next, edit `/etc/fstab` to add the home partition and swap space. By default, `nano` is the only editor installed by the the base distribution (not `ae` nor `vi`). It is very important that swap space be used: the Hurd will be an order of magnitude more stable. Note that the Hurd can transparently share a swap partition with Linux, the kernel, but will happily page to any device including a raw partition such as your home partition. - -Here is an example `/etc/fstab` file: - - # <file system> <mount point> <type> <options> <dump> <pass> - /dev/hd2s1 / ext2 rw 0 1 - /dev/hd2s2 /home ext2 rw 0 2 - /dev/hd2s3 none swap sw 0 0 - -Remember to create any devices using the `MAKEDEV` command. - -When you first boot, your `/home` directory will _not_ be auto-mounted. You must set a passive translator on that node to access that partition. The correct syntax for this is: <br />`settrans -p /home /hurd/ext2fs /dev/hd2s2` - -To mount an nfs partition, use the nfs translator. When run as non-root, the translator will connect, for obvious reasons, to the nfs server on a port above 1024. For this to succeed under GNU/Linux, the insecure option must be added to the export line. Here is an example `/etc/exports` file: - - /home 192.168.1.2(rw,insecure) - -To mount this from a GNU box: - - settrans -cgap /home /hurd/nfs 192.168.1.1:/home - -## <a name="7_Configuration_Making_the_Syste"> 7. Configuration - Making the System Usable </a> - -**NOTE**: _If you are using the Debian distribution of Hurd, you also **want** to read_ **_Debian [[running/debian/after_install]]_** - -* After you install, you'll want to do several _important_ things: - * Run `passwd` to give the root user a password. By default, root does not have one. - * Run `adduser` to give yourself a user account. _Do not_ use root indiscriminately. - * Run `MAKEDEV` to create devices in `/dev` for your hard disk and other required devices. - * Since the Hurd does not use `ld.so.conf`, you will want to specify where the X Window System keeps its libraries. Do this by adding the following line to your `/etc/profile`: <br />`export LD_LIBRARY_PATH='/lib:/usr/X11R6/lib'` - * run `/etc/cron.daily/find` to allow `locate` to function. - -* [[Network]] - * Hopefully Mach will recognize your hardware. If it doesn't you have to recompile in most cases. - * copy over your `/etc/resolv.conf` from GNU/Linux to allow your DNS to resolve correctly. - -* Prepare system for new packages.If you are running Debian GNU/Hurd: - * a recommended `/etc/apt/sources.list`: <br /><code>deb <http://ftp.debian-ports.org/debian> unreleased main<br /> deb <ftp://ftp.debian.org/debian> unstable main <br /> deb-src <ftp://ftp.debian.org/debian> unstable main</code> - * a newer `/etc/apt/sources.list`:<br /><code>deb <http://mirrors.kernel.org/debian> unstable main contrib<br /> deb-src <http://mirrors.kernel.org/debian> unstable main contrib<br /> deb <http://ftp.debian-ports.org/debian> unreleased main<br /> deb-src <http://ftp.debian-ports.org/debian> unreleased main</code> - * There are some extremely useful cross-platform 'apt' tricks that can be used to get packages when using Debian GNU/Linux (possibly others) for installation on GNU. This is especially useful if your GNUMach doesn't recognize your network card. The steps are covered in the file `/usr/share/doc/apt-doc/offline` which has been used by several Hurd developers successfully. - * create an `/etc/apt/apt.conf.offline` like [[AptConfOffline]]. - * consider setting up a few [[CrossPlatformAliases]] for use under Debian GNU/Linux while the Debian GNU/Hurd partitions are mounted. - * select the `apt` method from within dselect. - -* [[Xfree86]] - -* New packages - Hopefully you are able to get your network working but since the default GNUMach is only configured for a few ethernet cards you may need to recompile your GNUMach to get it working with your network hardward. - * Install these extremely useful packages - * `dialog` -- Debconf uses this for interactivity. You should install this first to allow you to configure other packages as they are installed. - * It's a very good idea to bring your packages up to date by running: `apt-get update && apt-get dist-upgrade` - * Some recommended packages - * `screen` -- A terminal multiplexer is important because the Hurd does not yet have virtual consoles. Runs with GNU/Linux too. - * `anacron` -- good to run cron jobs for a machine that is not on all the time. - * `emacs21` -- a powerful editor. - * `cvs` -- Concurrent Version System, you'll probably need this soon. - * `bzip2, zip, unzip` -- compression tools. - * `build-essential` -- preparing to build software. - * `gnu-standards` -- GNU coding and package standards. - -* Some packages use an erroneous dependency on `libc6-dev`. This is incorrect because libc6 is specific to GNU/Linux. The corresponding package for GNU is `libc0.3-dev`. If you find a package that is uninstallable due to a `libc6[-dev]` dependency, please send a bug report with a patch that fixes it. It is important that you don't hack your package system to workaround such problems, because that way you won't be able to spot them when they arrive. See the [[Distrib/PortingIssues]] for details about the problem and [[Distrib/BtsFiling]] for details on sending bug reports. -* Edit your `/etc/inetd.conf` and comment out all the services you don't need. Services that probably don't need to be running are `ftp`, `telnet`, `shell`, `login`, and `exec`. -* There appears to be a bug in `libnss-db` that causes networking to fail. To work around this edit `/etc/nsswitch.conf` and remove the `db` entries. (See <http://www.geocrawler.com/archives/3/333/2001/1/50/4907699/> ) - -## <a name="8_Final_Words_The_FAQ"> </a> 8. Final Words - The FAQ - -* [[FAQ]] - More than frequently asked questions - -* [Hurd FAQ](http://web.walfield.org/papers/hurd-faq/) - -* [[KnownHurdLimits]] - Limitations of the GNU operating system - -## <a name="9_Works_Cited_Referenced_Materia"> 9. Works Cited - Referenced Materials </a> - -On Sept 20, 2002 [[Main/DeepakGoel]] (a self-proclaimed newbie) posted a link to his personal [step-by-step installation](http://24.197.159.102/~deego/pub/hurd/install-guide/install.txt). The parent directory has additional material. - -Tarball Notes: [[Distrib/TarballNotes20020816]] [[Distrib/TarballNotes20020523]] - -CD-ROM Notes: [[Distrib/CDNotesJ2]] - -Others who wish to post summaries of their installation experiences are encouraged to do so. The installer methods, package dependencies and file locations frequently do change without warning. - ----- - -## <a name="Licensing"> Licensing </a> - - This work is based on the hard work by [countless Hurd users](http://web.walfield.org/papers/hurd-installation-guide/THANKS), documented and maintained by Neal H. Walfield. See the original for both reference and its licensing at <http://web.walfield.org/papers/hurd-installation-guide/> - -The license for Neals work is under the [GNU GPL](http://web.walfield.org/papers/hurd-installation-guide/COPYING). However, in the Hurd Wiki license all content under the GNU FDL. (Unless the topic is mostly code or otherwise stated in the text.) - -There are currently issues to be resolved around this matter, as far as I understand at least. Until an agreement can be reached this text, and the unclear status of this topic, will remain. The suggestion is to do something like this: - -<dl> - <dt>[[InstallGuide]]</dt> - <dd> Neals Install Guide in its original form </dd> - <dt>[[InstallNotes]]</dt> - <dd> Or [[InstallGuideErrata]] with all user input and additions </dd> -</dl> - -There are several obvious issues with this as I can see - -1. The [[InstallGuide]] must be kept editable by a select few people to avoid the current situation from repeating itself. -2. This loops back and kicks us in the butt because then we get: - 1. Synchronization problems with the original work - 2. Bottle necks: The people with edit access are too busy to synchronize with Neals guide - 3. Diverging guides -3. Annoyed users, we break the tradition of freely editable wiki content and we also have two guides saying different things. - --- [[Main/JoachimNilsson]] - 29 Dec 2002 - -## <a name="Blame_annotations"> Blame annotations </a> - - -- [[Main/SimonLaw]] - 29 May 2002 <br /> -- [[Main/GrantBow]] - 13 Oct 2002 <br /> -- [[Main/JoachimNilsson]] - 14 Nov 2002 <br /> -- [[Main/RobertMillan]] - 21 Nov 2002 <br /> - -First effort at straightening out the formatting mess ... added references to Neals' original, which this topic has become heavily based on. - --- [[Main/JoachimNilsson]] - 19 Dec 2002 <br /> - -Updated to the latest short-comings in the Hurd. - --- [[Main/OgnyanKulev]] - 11 Oct 2003 - --- [[Main/TWikiGuest]] - 07 Dec 2003 (<r2q2@rocketmailNOSPAM.com>) - -Updated iso information diff --git a/Hurd/InteractiveTranslators.mdwn b/Hurd/InteractiveTranslators.mdwn deleted file mode 100644 index 9a0ca7e2..00000000 --- a/Hurd/InteractiveTranslators.mdwn +++ /dev/null @@ -1,31 +0,0 @@ -The following text is from mail by Hurd architect Thomas Bushnell: - -> Thread moved over to bug-hurd since it's about design and not Debian GNU/Hurd per se. Alfred Szmidt had pointed out that a dpkg installation translator (one where you copy a .deb into a directory to install it into the system) cannot be easily written, because Debian package installation scripts are sometimes interactive. -> -> I said that this was a deficiency in the design of the Hurd, and that it would be good to fix it (ultimately) by creating user interaction context widgets which can be passed to servers so that they can safely and securely interact with the user when necessary. -> -> Alfred M. Szmidt writes: -> -> > I think you mean that it is a shortcoming in the design of things that are not or cannot be interactive, filesystems being one such example. I can see it infront of me: stat() poping up a dialog asking me to do something each time it gets called... -> -> No, it's a shortcoming in the design of the Hurd, because many times it **can** be interactive. Of course we don't want stat prompting you ever time it's called, but that's not an excuse for preventing stat from ever prompting you at all. We use all kinds of programs that can be interactive, and needless prompts are bugs, easily fixed. -> -> Please, don't lecture me about the Hurd being perfect; it's not. And this is a shortcoming that can someday be fixed, so we shouldn't pretend it's not a problem. It is. A friend at the AI lab once gave the following dream as an example of a well-functioning system: -> -> You walk up to the workstation and start a complex memory intensive ray-tracing program. It runs out of memory and swap space on the workstation. A dialog pops up informing you of the situation and giving several options: suspend the job until later, kill it, and so forth. (Notice that Unix and the Hurd both simply kill the process or the system here, because the discovery that swap is gone happens so low down that all context has been lost.) -> -> You put a disk in the drive. After putting the disk in, without you doing anything in the dialog, a new option comes up, "I notice you just put a disk in; do you want to use this for additional swap?" You say yes. The process now continues, with part of the swap being on the disk. (Notice that Unix and the Hurd don't make connections like this, having one driver know that something **else** in the system might be waiting for this resource and offering it for use.) -> -> In the middle of the task, you hit the button on the drive and out pops the disk. A notifier pops up on the screen, saying that the necessary swap for your process has been removed from the system, and so the job has been suspended until later, and giving you the option of killing it. You say "OK" (that is, you do not say to kill it), and then you log out. (Note that Unix and the Hurd cannot carry on at all in such a case; failure to satisfy a page-in fault results in utter disaster, not clean behavior. Also, neither control carefully which data is paged to which devices, because all interaction context is gone when pageout decisions are being made, so if you have started paging on this disk, you have probably started paging all kinds of essential system services on it too.) -> -> A week later, you walk up to a different workstation in the cluster, and pop in your disk. The system says, "I notice you have a suspended job that was using this disk for swap space" and allows you to resume it where you left off. (Notice that this requires close interaction between the workstations in the cluster, combined with more driver-level cleverness.) -> -> Now that's a well-functioning system. It requires careful bookkeeping of context, knowledge about how to usefully interact with the user from deep in the bowels of the system, and so forth. The Hurd has the capacity for this kind of thing, because user servers can do arbitrary things, unlike kernel routines in Unix. But we must figure out how to give them all the necessary information about their context. -> -> When I designed the filesystem protocols and the structure of the system, I did not consider this kind of flexibility. I had only the simplest kinds of filesystem translators in mind, ones which were just like Unix filesystems but supporting formats like tar and ar in addition to the typical mass-storage types. It was only a little later that I realized union and shadow translators would be a nice thing (and BSD picked up the idea after I explained it at a Boulder BSD conference). Keeping track of who is using which swap space? Now **that** would be clever, and would be very very nice to have. -> -> The reason that filesystems do not have user context is because I was not sufficiently far-sighted at the time to realize the full flexibility of the translator concept I had created. Now that we know more about that flexibility, it would be nice to start figuring out how to improve it. -> -> Thomas - --- [[Main/OgnyanKulev]] - 21 Mar 2005 diff --git a/Hurd/JoachimNilssonHurdPage.mdwn b/Hurd/JoachimNilssonHurdPage.mdwn deleted file mode 100644 index e4dde2b9..00000000 --- a/Hurd/JoachimNilssonHurdPage.mdwn +++ /dev/null @@ -1,247 +0,0 @@ -<table width="100%"> - <tr> - <td> - </td> - <td align="right"><a href="http://hurd.gnufans.orghttp://LOCATIONHurd/JoachimNilssonHurdPage" target="_top">Edit this page</a></td> - </tr> - <tr> - <td align="right"> %ATTACHURL%/patch_kit.jpg </td> - <td align="left"><nop><h2><a name="Table_of_Contents"> Table of Contents </a></h2> %TOC% </nop></td> - </tr> -</table> - -## <a name="Introduction"> Introduction </a> - -This page serves as a simple project page for me. I use it to list my personal Hurd related projects, currently only OSKit related. If you wish to comment on my work, do so in [[TWiki/GoodStyle]], preferably at the bottom of this page. - -The OSKit work is based on the St. Patrick's Day release, snapshot 20020317. - -These patches are available through the [Savannah OSKit project](http://savannah.gnu.org/projects/oskit/) Hopefully they will also be integrated into the main tree at Utah. - -## <a name="Progress"> Progress </a> - -**_2005-02-05:_** Sorry, these pages are now dead. It turned out that my spare time actually was limited. I have a family with a second child due in August — so it's unlikely that I'll ever go back to working with these patches. However, I plan on joining the [[HurdOnL4]] project, possibly to help with drivers, since that's what I do at work mostly. - -**_2003-04-17:_** I've become a bit distracted lately from my Hurd related projects. My work has consumed a lot of time, as have my personal life (I'm about to become a dad! :). But don't worry, I have been working quietly in the background anyway - the OSKit patches have been integrated into the Savannah OSKit project and a new [[TWiki/GnuSkin]] release has been made. - -There is one thing now, only one little thing that I want to have finished before the summer. My Promise ATA-100 controller - support for it in [[Mach/OskitMach]]. Any spare time I find I'll spend on getting that one up and running. - -## <a name="Current_Project"> Current Project </a> - -I'm working on importing the Linux ATA-100 drivers to the OSKit. Using patches by Linux ATA guy, Andr� Hedrick. [ATA-100 patches](http://www.kernel.org/pub/linux/kernel/people/hedrick/ide-2.2.20/). - -At my help I now have [[Main/OgnyanKulev]], he will test a few ATA-100 cards he has access to. - -[[Main/JoachimNilsson]]: - -* HighPoint HPT366 ATA-66 -* Promise PDC202XX ATA-100 - -[[Main/OgnyanKulev]]: - -* Promise PDC202XX -* Intel 82801BA -* Silicon Image CMD649 - -### <a name="OSKit_ATA_100_Support"> </a> OSKit - ATA-100 Support - -I have used the Linux 2.2.22 patch as the base and added the Linux ide-2.2.20.01102002 patch on top. Integration is now complete, testing have started. An alpha quality release is available below, if you want to help out with testing or be on the bleeding edge of things, please contact me via email. - -<table border="1" cellpadding="1" cellspacing="0"> - <tr> - <th bgcolor="#99CCCC"><strong>Part</strong></th> - <th bgcolor="#99CCCC"><strong>Brief description</strong></th> - <th bgcolor="#99CCCC"><strong>DIFF</strong></th> - <th bgcolor="#99CCCC"><strong>Date</strong></th> - </tr> - <tr> - <td> 2.2.22-ATA (ALPHA) </td> - <td> Adds ATA-100/66 capabilities (alpha release) </td> - <td><a href="http://gnufans.org/joachim/hurd/patch-oskit-linux-2.2.22-ATA-alpha.diff.gz" target="_top">patch-oskit-linux-2.2.22-ATA-alpha.diff.gz</a></td> - <td align="right"> Jan 3, 2003 </td> - </tr> -</table> - -**_Comments:_** - -* Progress is slow. - * Off-board chipsets seem more difficult ... - * PIIX chipset works, tuning included. - ----- - -## <a name="Previous_Projects"> Previous Projects </a> - -### <a name="OSKit_New_Linux_NIC_drivers"> </a> OSKit - "New" Linux NIC drivers - -"New" means simply to add more of the drivers existing in Linux 2.2.X that don't exist in the OSKit today. - -To test any of the work in this project you first need to upgrade the OSKit to Linux 2.2.22 (or later) using my patches below. The first stage deals with network drivers, 10 and 100 Mbps. Gigabit ethernet I have no possibility to test ... so they are **not** included. - -I may, at a later date, also include updates to drivers by Donald Becker. See the drivers at <http://www.scyld.com/network/> - -<table border="1" cellpadding="1" cellspacing="0"> - <tr> - <th bgcolor="#99CCCC"><strong>Part</strong></th> - <th bgcolor="#99CCCC"><strong>Brief description</strong></th> - <th bgcolor="#99CCCC"><strong>DIFF</strong></th> - <th bgcolor="#99CCCC"><strong>Date</strong></th> - </tr> - <tr> - <td> 2.2.22-NET </td> - <td> Adds more Linux NIC drivers </td> - <td><a href="http://gnufans.org/joachim/hurd/patch-oskit-linux-2.2.22-net.diff.gz" target="_top">patch-oskit-linux-2.2.22-net.diff.gz</a></td> - <td align="right"> Dec 26, 2002 </td> - </tr> -</table> - -**_Added NICs:_** - -* 3Com 3c515 -* D-Link DE-600, DE-620 -* Davicom DM9102(A)/DM9132/DM9801 -* N2k-PCi, NE2000 PCI-based cards -* PCNet32 -* RealTek RTL8139 -* SiS 900/7016 -* ThunderLAN -* VIA Rhine - -### <a name="OSKit_Upgrade_existing_Linux_dri"> </a> OSKit - Upgrade existing Linux drivers - - The OSKit itslef is currently at Linux version 2.2.12 for most of its drivers. The objective of this project was to upgrade to 2.2.22. I will of course also provide upgrades to upcoming revisions of the 2.2.x series, but they have a low priority right now. Please note: - -* The patches are cummulative, i.e., you only need one. -* The patches only upgrade existing OSKit drivers, they don't add support for new ones. Unlike the corresponding Linux patches. - -To build [[Mach/OskitMach]] you also need some other [[Mach/OskitPatches]]. As well as two unofficial GNUmach2 patches. See Daniel Wagners post to bug-hurd, <http://mail.gnu.org/pipermail/bug-hurd/2002-December/011134.html>, or the [[Mach/OskitMachPatches]]. - -**_Tested NICs:_** - -Testbed: Intel AL440LX mobo 128MiB RAM (only 64MiB detected by Grub 0.93). - -* Digital Equipment Corp. Etherworks Turbo PCI Controller DE435 - digital Tulip 21040-AA -* 3Com 3C905B-TXNM Fast Etherlink XL PCI - Parallel Tasking II 3Com 40-0483-004 -* RTL8139 - -**_Untested NICs:_** - -These I have and will test eventually - -* Western Digital 10 Mbps ISA - WD8003EBT -* SMC Ultra 16 ISA -* NE1000/2000 - -<table border="1" cellpadding="1" cellspacing="0"> - <tr> - <th bgcolor="#99CCCC"><strong>Part</strong></th> - <th bgcolor="#99CCCC"><strong>Brief description</strong></th> - <th bgcolor="#99CCCC"><strong>DIFF</strong></th> - <th bgcolor="#99CCCC"><strong>Date</strong></th> - <th bgcolor="#99CCCC"><strong>Verified?</strong></th> - </tr> - <tr> - <td> 2.2.13 </td> - <td> Upgrade from Linux 2.2.12 to 2.2.13 </td> - <td><a href="http://gnufans.org/joachim/hurd/patch-oskit-linux-2.2.13.diff.gz" target="_top">patch-oskit-linux-2.2.13.diff.gz</a></td> - <td> Oct 27, 2002 </td> - <td> Yes (1) </td> - </tr> - <tr> - <td> 2.2.14 </td> - <td> Upgrade from Linux 2.2.12 to 2.2.14 </td> - <td><a href="http://gnufans.org/joachim/hurd/patch-oskit-linux-2.2.14.diff.gz" target="_top">patch-oskit-linux-2.2.14.diff.gz</a></td> - <td> Oct 30, 2002 </td> - <td> Yes (1) </td> - </tr> - <tr> - <td> 2.2.15 </td> - <td> Upgrade from Linux 2.2.12 to 2.2.15 </td> - <td><a href="http://gnufans.org/joachim/hurd/patch-oskit-linux-2.2.15.diff.gz" target="_top">patch-oskit-linux-2.2.15.diff.gz</a></td> - <td> Oct 31, 2002 </td> - <td> Yes (1) </td> - </tr> - <tr> - <td> 2.2.16 </td> - <td> Upgrade from Linux 2.2.12 to 2.2.16 </td> - <td><a href="http://gnufans.org/joachim/hurd/patch-oskit-linux-2.2.16.diff.gz" target="_top">patch-oskit-linux-2.2.16.diff.gz</a></td> - <td> Oct 31, 2002 </td> - <td> Yes (1) </td> - </tr> - <tr> - <td> 2.2.17 </td> - <td> Upgrade from Linux 2.2.12 to 2.2.17 </td> - <td><a href="http://gnufans.org/joachim/hurd/patch-oskit-linux-2.2.17.diff.gz" target="_top">patch-oskit-linux-2.2.17.diff.gz</a></td> - <td> Nov 1, 2002 </td> - <td> Yes (1) </td> - </tr> - <tr> - <td> 2.2.18 </td> - <td> Upgrade from Linux 2.2.12 to 2.2.18 </td> - <td><a href="http://gnufans.org/joachim/hurd/patch-oskit-linux-2.2.18.diff.gz" target="_top">patch-oskit-linux-2.2.18.diff.gz</a></td> - <td> Nov 1, 2002 </td> - <td> Yes (1) </td> - </tr> - <tr> - <td> 2.2.19 </td> - <td> Upgrade from Linux 2.2.12 to 2.2.19 </td> - <td><a href="http://gnufans.org/joachim/hurd/patch-oskit-linux-2.2.19.diff.gz" target="_top">patch-oskit-linux-2.2.19.diff.gz</a></td> - <td> Nov 4, 2002 </td> - <td> Yes (1) </td> - </tr> - <tr> - <td> 2.2.20 </td> - <td> Upgrade from Linux 2.2.12 to 2.2.20 </td> - <td><a href="http://gnufans.org/joachim/hurd/patch-oskit-linux-2.2.20.diff.gz" target="_top">patch-oskit-linux-2.2.20.diff.gz</a></td> - <td> Nov 5, 2002 </td> - <td> Yes (1) </td> - </tr> - <tr> - <td> 2.2.21 </td> - <td> Upgrade from Linux 2.2.12 to 2.2.21 </td> - <td><a href="http://gnufans.org/joachim/hurd/patch-oskit-linux-2.2.21.diff.gz" target="_top">patch-oskit-linux-2.2.21.diff.gz</a></td> - <td> Nov 5, 2002 </td> - <td> Yes (1) </td> - </tr> - <tr> - <td> 2.2.22 </td> - <td> Upgrade from Linux 2.2.12 to 2.2.22 </td> - <td><a href="http://gnufans.org/joachim/hurd/patch-oskit-linux-2.2.22.diff.gz" target="_top">patch-oskit-linux-2.2.22.diff.gz</a></td> - <td> Nov 5, 2002 </td> - <td> Yes (1) </td> - </tr> - <tr> - <td> 2.2.23 </td> - <td> Upgrade from Linux 2.2.12 to 2.2.23 </td> - <td> [[][patch-oskit-linux-2.2.23.diff.gz]] </td> - <td> Not yet </td> - <td> </td> - </tr> -</table> - -**_Notes:_** - -1. Yes, the patch has been tested using the latest CVS version (HEAD) of GNUmach. Verified means that I have verified that GNUmach can be built, booted successfully (using IDE and various NICs). - -## <a name="Future_Work"> Future Work </a> - -1. Try to enable GNUmach to use the [[TWiki/FreeBSD]] drivers in the OSKit. -2. Port a simple DHCP client (udhcp perhaps?). -3. Enable the sound drivers in the OSKit -- port a useful sound daemon. -4. SMP support for GNUmach2 - Current OSKit is broken. - -### <a name="TWiki_FreeBSD_NIC_drivers_for_GN"> </a> [[TWiki/FreeBSD]] NIC drivers for GNUmach - - I have looked into this a bit. The PCI drivers are initialized from the PCI probe. GNUmach v2 uses the Linux PCI stuff which means the [[TWiki/FreeBSD]] probe will not run - this is probably solved in some ingenious way in the OSKit, maybe the COM interfaces, but I've yet to find out more about that. - ----- - - Feel free to contact me if you have any comments or suggestions. - --- [[Main/JoachimNilsson]] - Feb 19th 2003 - -## <a name="Comments"> Comments </a> - -Go Joachim! Great work! - --- [[Main/GrantBow]] - 11 Nov 2002 diff --git a/Hurd/JoachimNilssonHurdPage/patch_kit.jpg b/Hurd/JoachimNilssonHurdPage/patch_kit.jpg Binary files differdeleted file mode 100644 index da5cc147..00000000 --- a/Hurd/JoachimNilssonHurdPage/patch_kit.jpg +++ /dev/null diff --git a/Hurd/KernelCousinDebianHurd.mdwn b/Hurd/KernelCousinDebianHurd.mdwn deleted file mode 100644 index 1ff8a698..00000000 --- a/Hurd/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/Hurd/KnownHurdLimits.mdwn b/Hurd/KnownHurdLimits.mdwn deleted file mode 100644 index 51d66b50..00000000 --- a/Hurd/KnownHurdLimits.mdwn +++ /dev/null @@ -1,20 +0,0 @@ -* ~1.5 GB ext2 file system size limit - * The problem is fixed in the Debian GNU/Hurd distribution but not the official sources, see [this email](http://lists.debian.org/debian-hurd/2007/07/msg00087.html) - * See [[ExtTwoSize]] - -* Many Unsupported Devices. - * See [[Mach/HardwareCompatabilityList]] - -* Entropy. Mach does not yet gather entropy and thus there are no /dev/random and /dev/urandom nodes. - There are needed by OpenSSH. - * In progress, see [[translator/random]] - -* No DHCP client - * promising information [Jan 2005](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html), needs an update - * See [[DhcpClient]] - need to update TCP/IP server. - -* Missing bits of POSIX - * See [[Distrib/SystemAPILimits]] - -* Stability issues - * [[ZallocPanics]] diff --git a/Hurd/LuisBustamanteHurdPage.mdwn b/Hurd/LuisBustamanteHurdPage.mdwn deleted file mode 100644 index abbf1531..00000000 --- a/Hurd/LuisBustamanteHurdPage.mdwn +++ /dev/null @@ -1,11 +0,0 @@ -Nothing much to see right now, I'll add some stuff I'm working in the near future! :) - -Cheers, - --- [[Main/LuisBustamante]] - 16 May 2002 - -After making some trivial/incorrect patches (thanks Neal :) for building um-pppd with gcc 3.0.4 in Debian (see [\#147085](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=147085&repeatmerged=yes)) this weekend I'll finally give it a try, I got an external modem... anyway serial drivers seem to be broken in GNUmach iirc, I won't get much more than 300b/s :). - -Keep Hurding! - --- [[Main/LuisBustamante]] - 17 May 2002 diff --git a/Hurd/MakeImage.mdwn b/Hurd/MakeImage.mdwn deleted file mode 100644 index 95b928c4..00000000 --- a/Hurd/MakeImage.mdwn +++ /dev/null @@ -1,60 +0,0 @@ -## <a name="Make_a_disk_image"> Make a disk image </a> - -This is just a reminder to myself currently. - - /bin/dd if=/dev/zero of=gnu.img count=224000 - /sbin/sfdisk -C 58 -H 16 -S 63 -D gnu.img<<EOT - ,,83,*,0,1,1 - - EOT - losetup -o 32256 /dev/loop0 gnu.img - mke2fs -o hurd -L GNU -b 4096 /dev/loop0 - -## <a name="Install_GNU_Hurd"> </a> Install GNU/Hurd - - mkdir image - mount /dev/loop0 image - cd image/ - /usr/share/crosshurd/makehurddir.sh `pwd` i386 gnu - cd .. - umount image - losetup -d /dev/loop0 - -## <a name="Make_Boot_ISO"> </a> Make Boot ISO - -I use this for testing OSKit... - - mkdir -p iso/boot/grub - cp /lib/grub/i386-pc/stage2_eltorito iso/boot/grub/ - cp oskit-mach.gz iso/boot/ - cat >iso/boot/grub/menu.lst << EOF - title GNUmach 2.0 (OSKit-Mach) - root (cd) - kernel /boot/oskit-mach.gz root=device:hd0s1 -- - root (hd0,0) - module /hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} \ - --host-priv-port=${host-port} --device-master-port=${device-port} \ - --exec-server-task=${exec-task} -T typed ${root} $(task-create) \ - $(task-resume) - module /lib/ld-2.3.2.so /hurd/exec $(exec-task=task-create) - - title GNU/Hurd (GNUmach 1.3) - root (hd0,0) - kernel /boot/gnumach.gz root=device:hd0s1 - module /hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} \ - --host-priv-port=${host-port} --device-master-port=${device-port} \ - --exec-server-task=${exec-task} -T typed ${root} $(task-create) \ - $(task-resume) - module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - - EOF - mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 \ - -boot-info-table -o grub.iso iso - -## <a name="Booting_Qemu"> Booting Qemu </a> - - qemu -user-net -isa -boot d -cdrom grub.iso -hda gnu.img - -The switch `-isa` is for current gnumach.gz on hda. - --- [[Main/JoachimNilsson]] - 11 Apr 2005 diff --git a/Hurd/PosixThreads.mdwn b/Hurd/PosixThreads.mdwn deleted file mode 100644 index f031b56f..00000000 --- a/Hurd/PosixThreads.mdwn +++ /dev/null @@ -1,21 +0,0 @@ -## <a name="POSIX_Threads_for_the_Hurd"> </a> 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. - -* <http://web.walfield.org/pub/people/neal/hurd/libpthread/> - -## <a name="Previous_Attempts"> Previous Attempts </a> - -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, <http://savannah.gnu.org/projects/pthreads/>. - -1. <http://sources.redhat.com/ml/libc-hacker/1999-08/msg00117.html> -2. <http://lists.debian.org/debian-hurd/2001/debian-hurd-200102/msg00283.html> -3. <http://mail.gnu.org/pipermail/l4-hurd/2001-October/000310.html> - ----- - -Initial version -- [[Main/JoachimNilsson]] - 03 Nov 2002 diff --git a/Hurd/PppDaemon.mdwn b/Hurd/PppDaemon.mdwn deleted file mode 100644 index f667d449..00000000 --- a/Hurd/PppDaemon.mdwn +++ /dev/null @@ -1,6 +0,0 @@ -There is no PPP solution present for the Hurd. - -* Filed Debian [um-ppp bug](http://bugs.debian.org/cgi-bin/bugreport.cgi?archive=no\&bug=147085) -* Clemmitt [asked about um-pppd](http://mail.gnu.org/pipermail/help-hurd/2002-October/006664.html) in this thread of 9 posts beginning Oct 10, 2002. - --- [[Main/GrantBow]] - 20 Oct 2002 diff --git a/Hurd/RequirementsForLiveCD.mdwn b/Hurd/RequirementsForLiveCD.mdwn deleted file mode 100644 index 03bd3884..00000000 --- a/Hurd/RequirementsForLiveCD.mdwn +++ /dev/null @@ -1,54 +0,0 @@ -# <a name="Requirements_for_a_GNU_Hurd_Live"> </a> Requirements for a GNU/Hurd Live CD - -Here is an outline of the things that need to be done for producing a Live CD for the Hurd. Please add your comments and suggestions. - -## <a name="1_We_need_to_be_able_get_a_bootl"> 1. We need to be able get a bootloader for CDs </a> - -This is not much of a problem. I have already been successful (see below) in using [Grub](http://en.wikipedia.org/wiki/GRand Unified Bootloader) and the El-Torito HD emulation to boot [[GNUmach]] off a CD. There may be some minor tweaking of Grub code necessary to detect which device to use for booting (instead of having the user select their device (hd0,hd1,etc.) from the Grub menu). - -Using GRUB's stage2\_eltorito seems to work fine. - -## <a name="2_We_need_a_bootstrap_filesystem"> 2. We need a bootstrap filesystem translator </a> - -This would be something like a statically linked iso9660fs translator. Compiling a statically linked iso9660fs translator is easy enough, though it doesn't boot. I don't currently know whether this is because the translator was never meant to be a bootstrap filesystem, or if there is a simple bug which has never been flushed out because the translator has never been used at boot time before. I've had trouble debugging this problem because I haven't yet figured out a way to use a remote gdb with gnumach. Theoretically you could use the "boot" command to overcome this problem, but "boot" for me mangles the terminal and exits in different manner than an actual boot. - -The iso9660fs translator works great, it just needs to be statically linked. - -## <a name="3_We_need_a_ramdisk_to_enable_wr"> 3. We need a ramdisk to enable write access </a> - -I think we could fake this with Farid Hajii's [memfs](http://www.fprintf.net/hurd/) translator and writing an ext2 filesystem to it. - -From the mem-fs README... - -> memfs-1 is a translator that provides a memory-based file of fixed size. This file can, just like bigfile, contain a regular filesystem. - -We could set a mem-fs translator anywhere on the CD you needed write access, including having softlinks to the contents of the root directory and chrooting to this new directory. - -For a quick and dirty memfs, you can do it right now with the following commands: - - # touch ./ramdisk - # touch ./tmpfs - # settrans -a ./ramdisk /hurd/storeio -Tcopy zero:50M - # /sbin/mke2fs -o hurd -b 4096 -F ./ramdisk - # settrans -a tmpfs /hurd/ext2fs.static ./ramdisk - # fsysopts --writable ./tmpfs - # cd tmpfs - # touch somenewfile - -Here we use two files ramdisk, and tmpfs that are already created on a readonly file system. For illustration purposes, they are touched beforehand. We run an active storeio translator on the ramdisk file to give us 50MB of RAM to work with, and then we make an ext2 filesystem on it. - -At this point we'd could copy the contents of the `/var` directory into the tmpfs, and then symlink `/var` to `/tmpfs/var`. The same goes for all other mutable dirs. - -This approach of putting an entire ext2 filesystem in a copy zero'd store has some drawbacks listed [here](http://lists.gnu.org/archive/html/bug-hurd/2000-12/msg00073.html). - -Those are the essentials. Here is a list of the things which would be nice to have for a Live-CD. - -* Knoppix like script for starting up X and [[GraphicEnvironment]] s ([[FluxBox]], Gnome...) -* DHCP support for easy network setup -* Hardware autodetection (Kudzu). -* Knoppix like script for installing to the hard drive or to bootable USB pendrive . -* (add your favorite feature here) - -Here is a mailing-list [thread](http://lists.debian.org/debian-hurd/2003/debian-hurd-200308/msg00172.html) discussing some of these issues. - --- [[Main/GregBuchholz]] - 21 Oct 2003 -- [[Main/NagromNamreh]] - 29 Jan 2004 diff --git a/Hurd/SeenHurd.mdwn b/Hurd/SeenHurd.mdwn deleted file mode 100644 index be9e1aba..00000000 --- a/Hurd/SeenHurd.mdwn +++ /dev/null @@ -1,71 +0,0 @@ -# <a name="Hurd_Sightings"> Hurd Sightings </a> - -#### <a name="Table_Of_Contents"> Table Of Contents </a> - -%TOC% - -## <a name="Hurd_People_Sightings"> Hurd People Sightings </a> - -<dl> - <dt>[[Mailing_lists]]</dt> - <dd> Available mailing lists </dd> - <dt>[[IRC]]</dt> - <dd> - </dd> - <dt>[[WhoRunsGNU]]</dt> - <dd> - </dd> - <dt>[[HurdDevelopers]]</dt> - <dd> Who's who? </dd> - <dt>[[PersonalHurdPages]]</dt> - <dd> Users with Hurd wiki pages </dd> - <dt>[[UserGroups]]</dt> - <dd> Canadian, French &amp; Russian </dd> - <dt>[[community/Meetings]]</dt> - <dd> Meetings with Hurd developer attendance. </dd> - <dt>[[community/Orkut]]</dt> - <dd> online "community" of interest - 89 members and counting </dd> - <dt>[[community/LiveJournal]]</dt> - <dd> online community </dd> -</dl> - -## <a name="Hurd_Press_Sightings"> Hurd Press Sightings </a> - -Here's a page for links that specifically talk about the Hurd in some way. See also, [[FunnyHurd]]. - -### <a name="Searching_the_Word_Hurd_in_Some_"> Searching the Word "Hurd" in Some Famous Sites </a> - -* [OSNews.com](http://www.osnews.com/search.php?search=hurd) -* [Slashdot.org](http://slashdot.org/search.pl?query=hurd) -* [KernelTrap.org](http://kerneltrap.com/index.php?or=6,16,40) -* [DebianPlanet.org](http://www.debianplanet.org/module.php?mod=search&edit%5Btype%5D%5Bnode%5D=1&keys=hurd) -* [Hungarian Unix portal](http://www.hup.hu/modules.php?name=News&new_topic=65) (in Hungarian) - -### <a name="Single_Articles"> Single Articles </a> - -* [Interview with Hurd developer Marcus Brinkmann](http://portal.wikinerds.org/brinkmann-interview-mar2005) by Wikinerds Portal -* [A historic first step for the GNU/HURD-L4 microkernel port](http://portal.wikinerds.org/gnu-hurd-l4-first-program) by Wikinerds Portal -* [Interviews: Linus Torvalds: "Desktop Market has already started"](http://linuxtimes.net/modules.php?name=News&file=article&sid=145), in Linux Times, the viability of the Hurd is discussed a bit. -* [The Answer Gang 88: Linux Kernel Maintainability: Bees Can't Fly](http://www.linuxgazette.com/issue88/tag/3.html), in Linux Gazette, March 2003, issue 88. -* [Renaming Linux](http://www.infomaticsonline.co.uk/News/1135403) article on GNU OS (Hurd is a strongly related issue) - Sept 26, 2002 -* GNU's new [GNU/Linux FAQ](http://www.gnu.org/gnu/gnu-linux-faq.html) - Sept 24, 2002 -* [Debian Weekly News](http://www.debian.org/News/weekly/2002/37/) on Sarge & Hurd - Sept 24, 2002 -* Debian Release Manager Anthony Towns [notes on Sarge](http://lists.debian.org/debian-devel-announce-0209/msg00004.html) & Hurd - Sept 28, 2002 -* [New Console](http://www.kerneltrap.org/node.php?id=420) - Kernel Trap, Sept 18, 2002 -* [Radio CSJ](http://pagina.de/radiocsj) 104.5 FM discussions during "error 404" show - [Universidad Cat�olica de Chile](http://www.puc.cl) (Macul, Santiago, Chile), June 2002 -* [New GNU Hurd Kernel Released](http://slashdot.org/article.pl?sid=02/05/30/1547250&mode=nested&tid=117) [_sic_] - Slashdot, May 30, 2002 -* [GNU Mach 1.3 released!](http://www.debianplanet.org/article.php?sid=680&mode=thread&order=0&thold=0) - Debian Planet, May 29, 2002 -* [Running Hurd Under [[Distrib/BochsEmulator]] x86 Emulator](http://www.debianplanet.org/article.php?sid=673&mode=thread&order=0&thold=0) - Debian Planet, May 12, 2002 -* [Hurd-i386 gets new GLibc core](http://www.debianplanet.org/article.php?sid=668&mode=thread&order=0) by Jeff Bailey - Debian Planet, May 3, 2002 -* [IDG](http://www.idg.net/ic_829012_4394_1-3921.html) - IDG, March 11, 2002 -* [Interview with Neal Walfield](http://kerneltrap.org/article.php?sid=375) - Kernel Trap, Nov 12, 2001 - -### <a name="On_Cover_Pages"> On Cover Pages </a> - -* [freeX #4 2000](http://www.cul.de/data/freex42000inh.pdf) (PDF) - _Die andere Systemphilosophie_ auf Marcus Brinkmann - -%ATTACHURL%/freex42000cg.jpg - -* Linux Magazine France 10 - -%ATTACHURL%/lmf10\_1999.jpg diff --git a/Hurd/SeenHurd/lmf10_1999.jpg b/Hurd/SeenHurd/lmf10_1999.jpg Binary files differdeleted file mode 100644 index 85332658..00000000 --- a/Hurd/SeenHurd/lmf10_1999.jpg +++ /dev/null diff --git a/Hurd/SerialConsole.mdwn b/Hurd/SerialConsole.mdwn deleted file mode 100644 index e4e5324d..00000000 --- a/Hurd/SerialConsole.mdwn +++ /dev/null @@ -1,28 +0,0 @@ -# <a name="Grub"> Grub </a> - -To enable serial console support in Grub, you'll need to add a variation of the following to the top of your menu.lst: - - serial --unit=0 - terminal --timeout=2 serial console - -The first line enables the serial console on the first serial port (use --unit=1 to use the second). The second tells Grub to use either the serial console or the vga display on the first one on which input is sensed within two seconds of executing this command. If no input is detected, Grub defaults to the first which in this case is the serial console. - -# <a name="Hurd"> Hurd </a> - -You'll first need to create a serial port device. Change to /dev and execute the following as root: - - ./MAKEDEV com0 - -Then add the following to /etc/ttys: - - com0 "/libexec/getty 9600" xterm-color on secure trusted console - -runttys won't automatically reread /etc/ttys. You need to send it a SIGHUP. - -If you are running your serial console on the second serial port, replace com0 with com1. - -# <a name="Using_the_Serial_Port"> Using the Serial Port </a> - -minicom is popular but sredird has a more integrated feel. - --- [[NealWalfield]] - 12 Dec 2005 diff --git a/Hurd/Shopping.mdwn b/Hurd/Shopping.mdwn deleted file mode 100644 index d9806e93..00000000 --- a/Hurd/Shopping.mdwn +++ /dev/null @@ -1,13 +0,0 @@ -Here are some e-shops from which you can buy stuff: T-Shirts and others. Free Software Foundation Inc. doesn't get percent from these sells. - -* [CafePress](http://www.cafeshops.com/hurd) - --- [[Main/OgnyanKulev]] - 11 Feb 2004 - -Wait, so they are making money off the Hurd and not giving any to the FSF? Uh.... - --- [[Main/GrantBow]] - 27 Feb 2004 - -OK, It was kind a stupid to add this sentence. What about removing it all this sentence? - --- [[Main/OgnyanKulev]] - 27 Feb 2004 diff --git a/Hurd/Translation.mdwn b/Hurd/Translation.mdwn deleted file mode 100644 index a5f78aa5..00000000 --- a/Hurd/Translation.mdwn +++ /dev/null @@ -1,18 +0,0 @@ -\* [[HurdCn]]: <http://www.gnu.org/software/hurd/hurd.cn.html> - -\* [[HurdNl]]: <http://www.gnu.org/software/hurd/hurd.nl.html> - -\* [[HurdPl]] : <http://www.gnu.org/software/hurd/hurd.pl.html> - -\* [[HurdEo]]: <http://www.gnu.org/software/hurd/hurd.eo.html> - -\* [[HurdHe]] : <http://www.gnu.org/software/hurd/hurd.he.html> - -\* [[HurdEs]]: <http://www.gnu.org/software/hurd/hurd.es.html> - -\* [[HurdFr]]: <http://www.hurdfr.org> <http://wiki.hurdfr.org> - -\* [[HurdIt]]: <http://www.hurd.it> - -\* [[HurdRu]]: <http://hurd.kholmsk.ru> - diff --git a/Hurd/TranslatorExamples.mdwn b/Hurd/TranslatorExamples.mdwn deleted file mode 100644 index 0c2e5741..00000000 --- a/Hurd/TranslatorExamples.mdwn +++ /dev/null @@ -1,61 +0,0 @@ -## <a name="Introduction"> Introduction </a> - -Translators are probably the most known feature of the Hurd, the first thing you should show when doing a demo. - -## <a name="run"> run </a> - -Couldn't manage to compile it, but allows you to do nice things with eg. fortune. - -## <a name="ftpfs"> ftpfs </a> - -hurd:~# settrans -c ftp /hurd/ftpfs 128.101.80.131:/ - -hurd:~# cd ftp - -hurd:~/ftp# ls - -debian debian-archive lost+found - -hurd:~/ftp# cd debian - -hurd:~/ftp/debian# ls - -README README.mirrors.txt doc ls-lR.patch.gz - -README.CD-manufacture README.non-US indices pool - -README.html README.pgp ls-lR project - -README.mirrors.html dists ls-lR.gz tools - -hurd:~/ftp/debian# cp README ~ - -hurd:~/ftp/debian# - -You have to specify the server address with its IP, or your computer will buy a farm or something. - -## <a name="ftpfs_and_hostmux"> ftpfs and hostmux </a> - -currently (28/02/2004) not working, but should be. - -hurd:~# settrans -c ftp /hurd/hostmux /hurd/ftpfs / - -hurd:~# cd ftp - -hurd:~/ftp# cd ftp.debian.org - --bash: cd: ftp.debian.org: Computer bought the farm - -hurd:~/ftp# host ftp.debian.org - -ftp.debian.org A 128.101.80.131 - -ftp.debian.org A 208.185.25.38 - -hurd:~/ftp# cd 128.101.80.131 - --bash: cd: 128.101.80.131: Computer bought the farm - -## <a name="Articles_about_translators"> Articles about translators </a> - -* [The GNU Hurd - Translators by Gael le Mignot](http://kilobug.free.fr/hurd/pres-en/html/node8.html) diff --git a/Hurd/TranslatorPages.mdwn b/Hurd/TranslatorPages.mdwn deleted file mode 100644 index 8e954521..00000000 --- a/Hurd/TranslatorPages.mdwn +++ /dev/null @@ -1,51 +0,0 @@ -<dl> - <dt>[[NeighborHurd]]</dt> - <dd> A concept possible with microkernels. </dd> - <dt>[[InteractiveTranslators]]</dt> - <dd> Translators that interact with user </dd> - <dt>[[TranslatorExamples]]</dt> - <dd> Examples of what you can do with translators </dd> - <dt>[[TranslatorWishList]]</dt> - <dd> Interesting file translator ideas </dd> -</dl> - -Here are the translators that currently exist: - -* [[AuthTranslator]] -* [[CrashTranslator]] -* [[ExecTranslator]] -* [[ExtTwofsTranslator]] - (actually named ext2fs) Ext2 filesystems, also ext2fs.static -* [[FifoTranslator]] - also [[NewfifoTranslator]] (actually named new-fifo) -* [[FirmlinkTranslator]] -* [[FtpfsTranslator]] - ftp as a filesystem -* [[FwdTranslator]] -* [[HelloTranslator]] - also [[HellomtTranslator]] (actually named hello-mt) -* [[HostmuxTranslator]] -* [[IfsockTranslator]] -* [[InitTranslator]] -* [[IsofsTranslator]] -* [[KbdTranslator]] -* [[MachdefpagerTranslator]] - (actually named mach-defpager) -* [[hurd/translator/magic]] -* [[MouseTranslator]] -* [[NfsTranslator]] -* [[NullTranslator]] -* [[PasswordTranslator]] -* [[PfinetTranslator]] - also [[PflocalTranslator]] -* [[ProcTranslator]] -* [[SmbfsTranslator]] -* [[StoreioTranslator]] -* [[StreamioTranslator]] -* [[SymlinkTranslator]] -* [[TermTranslator]] -* [[TmpfsTranslator]] -* [[UfsTranslator]] - also ufs.static -* [[UsermuxTranslator]] - -Here are the contributed translators: - -* [[CryptTranslator]] - <http://www.trek.eu.org/devel/hurd/crypt-trans-0.0.3.tgz> - -This is an old list and might need some updating, please check if you have a Hurd system that this list is accurate. - --- [[Main/GrantBow]] - 03 Mar 2004 diff --git a/Hurd/TranslatorWishList.mdwn b/Hurd/TranslatorWishList.mdwn deleted file mode 100644 index 38bd87d9..00000000 --- a/Hurd/TranslatorWishList.mdwn +++ /dev/null @@ -1,193 +0,0 @@ -## <a name="Introduction"> Introduction </a> - -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/). - -## <a name="Audio_cdfs"> Audio\_cdfs </a> - -A translator which produces a directory of \*.wav files when you have an audio CD in the drive. - -## <a name="Ogg"> Ogg </a> - -This translator could be a sub-directory of the Audio\_cdfs translator and it would translate the \*.wav files into Ogg Vorbis/MP3 format. - -## <a name="CDDB"> </a> 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. - -## <a name="Crypto"> Crypto </a> - -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` - -## <a name="Revision_control"> Revision control </a> - -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. - -## <a name="CVSFS"> </a> 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/). - -## <a name="tar_and_gzip"> tar and gzip </a> - -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. - -## <a name="ROM"> </a> 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. - -## <a name="Super_FIFO"> Super\_FIFO </a> - -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. - -## <a name="Perl"> Perl </a> - -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). - -## <a name="Source_code"> Source code </a> - -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. - -## <a name="Libraries"> Libraries </a> - -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 calls can access the factorization library. Second, the factorization code is running in a different address space; if it crashes, it won't crash or corrupt the caller. Third, and most interestingly, it is possible to use `select(2)` to wait for the factorization to complete. `select(2)` would make it easy for a client to factor a large number while remaining responsive to other events that might happen in the meantime. In other words, FUSD allows normal user-space libraries to integrate seamlessly with UNIX's existing, POSIX-standard event notification interface: `select(2)`." - -## <a name="Mail"> Mail </a> - -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? - -## <a name="UUEncode"> </a> 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). - -## <a name="Computation"> Computation </a> - -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. - -## <a name="Other"> Other </a> - -Just found Wolfgang J�hrling's translator [wishlist](http://www.8ung.at/shell/trans.html). - -## <a name="Bochs"> Bochs </a> - -A translator which works with [Bochs](http://bochs.sourceforge.net/) disk images would be nice. - -## <a name="Rollover"> Rollover </a> - -A translator that uses a circular buffer to store log files. The translated node only contains the last N (mega,kilo)bytes. - -## <a name="Birthday"> Birthday </a> - -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 - $ - -## <a name="LVM"> </a> 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. - -## <a name="bridging_translator"> bridging translator </a> - -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. - -## <a name="SSH_translator"> </a> SSH translator - -Presenting remote file systems through SSH similar to what gnome-vfs does. - -## <a name="SMB_translator"> </a> 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/). - -## <a name="Crontab_translator"> Crontab translator </a> - -Presenting a user's crontab in a filesystem where cron entries are files. - -## <a name="globlink"> globlink </a> - -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*' - -## <a name="alphabetfs"> alphabetfs </a> - -Organize a large group of files by their first letter. Present one subdirectory for each letter in the alphabet. - -## <a name="fsysoptsctl"> fsysoptsctl </a> - -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 - ----- - --- [[Main/GregBuchholz]] - updated 17 Oct 2003 diff --git a/Hurd/WebHome/hurd_sm_mf.png b/Hurd/WebHome/hurd_sm_mf.png Binary files differdeleted file mode 100644 index 26bb78b5..00000000 --- a/Hurd/WebHome/hurd_sm_mf.png +++ /dev/null diff --git a/Hurd/WhoRunsGNU.mdwn b/Hurd/WhoRunsGNU.mdwn deleted file mode 100644 index ad1685b7..00000000 --- a/Hurd/WhoRunsGNU.mdwn +++ /dev/null @@ -1,31 +0,0 @@ -## <a name="Who_runs_GNU_"> </a> Who runs GNU in production? - -On an official [GNU Project](http://www.gnu.org/gnu/thegnuproject.html) page I found a quote, attributed to Rabbi Hillel: - -> If I am not for myself, who will be for me? -> -> <br /> -> -> If I am only for myself, what am I? -> -> <br /> -> -> If not now, when? - -There are many now using test installations of Debian GNU/Hurd for testing and development. This page is set aside to list those sites using full GNU systems (GNU/Hurd) for non-testing and non-development purposes. - -## <a name="I_run_GNU_"> </a> I run GNU! - -<dl> - <dt> Budi Rahardjo</dt> - <dd><a href="http://hurd.indocisc.com" target="_top">http://hurd.indocisc.com</a>, contact at <a href="mailto:budi@research.indociscNOSPAM.com">budi@research.indociscNOSPAM.com</a></dd> - <dt>[[Main/JamesAMorrison]]</dt> - <dd><a href="http://hurd.dyndns.org" target="_top">http://hurd.dyndns.org</a> - -seems to be offline -- [[Community/weblogs/ArneBab]] - 2008-09-02</dd> -</dl> - -### Testing and developer installations - -Installations for testing purposes are listed as [[public_hurd_boxen]]. - -These also contain the wiki server. diff --git a/Hurd/XattrHurd.mdwn b/Hurd/XattrHurd.mdwn deleted file mode 100644 index d3856c1b..00000000 --- a/Hurd/XattrHurd.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -Roland McGrath has made [Linux support for Hurd's extensions to ext2 via Extended Attributes (xattr) interface](http://lists.gnu.org/archive/html/bug-hurd/2004-02/msg00108.html). This is important because it allows Hurd to be completely cross-installed in Linux. - -Michael Banck made some Debian precompiled Linux kernel packages that allow [using this xattr-hurd](http://lists.debian.org/debian-hurd/2004/09/msg00036.html). - --- [[Main/OgnyanKulev]] - 18 Sep 2004 diff --git a/Hurd/Xfree86.mdwn b/Hurd/Xfree86.mdwn deleted file mode 100644 index 617508e5..00000000 --- a/Hurd/Xfree86.mdwn +++ /dev/null @@ -1,109 +0,0 @@ -# <a name="Setup_XFree86_in_GNU"> </a> Setup XFree86 in GNU - -#### <a name="Table_Of_Content"> Table Of Content </a> - -%TOC% - -This is a brief helper on how to setup X-Window on GNU. - -### <a name="Mouse_amp_Keyboard"> Mouse & Keyboard </a> - -See [[console]] for more details. - -First, set up the keyboard translator. Using `/hurd/kbd` and `/hurd/mouse` is not supported. You should instruct Hurd console to repeat keyboard events to `/dev/cons/kbd`, and mouse events to `/dev/cons/mouse`: - - # console -d vga -d pc_kbd --repeat=kbd -d generic_speaker \ - -d pc_mouse --repeat=mouse --protocol=ps/2 --console-node=/dev/cons /dev/vcs - -Symbolic links to repeaters should be created too: - - # ln -s /dev/cons/kbd /dev - # ln -s /dev/cons/mouse /dev - -### <a name="Selecting_amp_Configuring_Packag"> Selecting & Configuring Packages </a> - -You will need several X packages. The `x-window-system-core` brings you most of what you need: - -* `xserver-xfree86` -* `xfonts-base` -* `xfonts-100dpi` -* `xfonts-75dpi` -* `xfonts-scalable` -* `xbase-clients` -* `xutils` -* `rxvt` -* ... as well as your window manager of choice: - * WindowMaker, `wmaker` - * FVWM, `fvwm` - * Blackbox, `blackbox` - * TWM, `twm` - -The recommended way of configuring X is using the `xserver-xfree86` debconf template, eg: - - # dpkg-reconfigure xserver-xfree86 - -It may be easier to just copy a working configuration from another operation system on the same computer and place it in `/etc/X11/XF86Config-4`, but this is discouraged as you would have to remove some sections by hand. - -**_IMPORTANT:_** when you configure X, make sure you do **NOT** enable the `speedo` and `dri` modules because they are currently broken. - -### <a name="Edit_XF86Config_4"> Edit XF86Config-4 </a> - -Now you have to edit the file manually to ensure that the mouse sections look like this: - - Section "InputDevice" - Identifier "Configured Mouse" - Driver "mouse" - Option "CorePointer" - Option "Device" "/dev/mouse" - Option "Protocol" "osmouse" - EndSection - - Section "InputDevice" - Identifier "Generic Mouse" - Driver "mouse" - Option "SendCoreEvents" "true" - Option "Device" "/dev/mouse" - Option "Protocol" "osmouse" - EndSection - -You may also enable the Emulate3Buttons option, but nothing else will work. - - Option "Emulate3Buttons" "true" - -### <a name="Dynamic_Linking"> Dynamic Linking </a> - -The Hurd does not use `ld.so.conf`, it is necessary to add the following to `/etc/profile` to be sure that the libraries are found: - - LD_LIBRARY_PATH=/X11R6/lib:$LD_LIBRARY_PATH - -"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." -- [Why does X not work?](http://www.gnu.org/software/hurd/faq.en.html#q4-8) - -### <a name="Starting_X"> Starting X </a> - -Finally, run - -`startx` - -However, there are several caveats to be aware of: - -* `xterm` does not work correctly; try `rxvt`. -* `update-menu` does not yet work. As such, there are no fine Debian menus. -* GNOME can now be ported with the new pthreads, but is still being worked on. [[WindowMaker]], [[TWM]], [[Blackbox]] and [[FVWM]] all work. - -### <a name="Graphical_Environment"> Graphical Environment </a> - -See [[GNOME]] in Hurd . (?) - ----- - -Created. -- [[Main/RobertMillan]] - 21 Nov 2002 - -Some text formatting. -- [[Main/OgnyanKulev]] - 05 Dec 2002 - -Dito. -- [[Main/JoachimNilsson]] - 12 Jan 2003 - -`/hurd/kbd` is no longer supported. -- [[Main/OgnyanKulev]] - 11 Aug 2004 - -`/hurd/mouse` is deprecated. -- [[Main/OgnyanKulev]] - 21 Sep 2004 - --c /dev/cons is now --console-note=/dev/cons -- Sven 01 May 2005 diff --git a/Hurd/ZallocPanics.mdwn b/Hurd/ZallocPanics.mdwn deleted file mode 100644 index 0b00d7ec..00000000 --- a/Hurd/ZallocPanics.mdwn +++ /dev/null @@ -1,43 +0,0 @@ -The Hurd sometimes crashes with a kernel panic saying someting like: "Panic: zalloc failed: zone map exhausted". - -These panics are generally caused by some kind of kernel resource exhaustion, but there are several differnt reasons for that. - -It used to happen very often under heavy disk load (like large compile jobs), or in a reproducible test case by opening a large number of ports to /dev/null and then closing them all very quickly. The reason for this particular problem has been identified a while back: The multithreaded Hurd servers create a new worker thread whenever a new request (RPC) comes in while all existing threads are busy. When the server is hammered with lots of requests -- which happens both under heavy disk load, and when quickly closing many ports to one server -- it will create an absurd number of threads, causing the resource exhaustion. - -The Debian hurd package contains a patch by k0ro (Sergio Lopez), which fixes this by limiting the amount of created threads in a rather simplistic but very effective manner. This patch however hasn't been included in upstream CVS so far. A more elegant solution, suitable for upstream inclusion, would be desirable. - -Some panics still seem to happen in very specific situations, like the one described at <https://savannah.gnu.org/bugs/?19426> . These are probably the result of bugs that cause port leaks, accidental fork bombs, or similar problems. - -In principle, resource exhaustion can also happen by normal use, though this is rather unlikely in the absence of bugs or malicious programs. Nevertheless, all these problems could be avoided (or limited in effect) by introducing some limits on number of processes per user, number of threads and ports per process/user etc. - -Trying to track down causes for the panics, I got some interesting results. (UPDATE: Many of my original observations were clearly related to the server thread explosion problem. To avoid confusion, I now removed these, as this is no longer an open issue.) - -* It all started with someone (probably azeem) mentioning that builing some package always crashes Hurd at the same stage of the Debian packaging process (UPDATE: Almost all of these panics when building packages were a result of the thread explosion and don't happen anymore.) -* Someone (maybe he himself) pointed out that this stage is characterized by many processes being quickly created and destroyed -* Someone else (probably hde) started some experimenting, to get a reproducible test case -* He realized that just starting and killing five child processes in quick succession suffices to kill some Hurd systems -* I tried to confirm this, but it turned out my system is more robust - -As I could never reproduce the problem with a small number of quickly killed processes, I can't say whether this problem still exists. While I could reproduce such an effect with first opening and then very quickly closing many ports (which is more or less what happens when quickly killing many processes), I needed really large numbers of processes/ports for that. The thread throtteling patch fixed my test case; but it seems unlikely that killing only five processes could have caused a thread explosion, so maybe hde's observation was a different problem really... - -I started various other experiments with creating child processes (fork bombs), resulting in a number of interesting observations: - -* Just forking a large number of processes crashes the Hurd reliably (not surprising) -* The number of processes at which the panic occurs is very constant (typicallly +-2) under stable conditions, as long as forking doesn't happen too fast -* The exact number depends on various conditions: - * Run directly from the Mach console, it's around 1040 on my machine (given enough RAM); however, it drops to 940 when started through a raw ssh session, and to 990 when run under screen through ssh (TODO: check number of ports open per process depending on how it is started) UPDATE: In a later test, I got somewhat larger numbers (don't remember exactly, but well above 1000), but still very constant between successive runs. Not sure what effected this change. - * It doesn't depend on whether normal user or root - * With only 128 MiB of RAM, the numbers drop slightly (like 100 less or so); no further change between 256 and 384 MiB - * Lowering zone\_map\_size in mach/kern/zalloc.c reduces the numbers (quite exactly half from 8 MiB to 4 MiB) - * There seems to be some saturation near 16 MiB however: The difference between 8 MiB and 16 MiB is significantly smaller - * Also, with 8 MiB or 4 MiB, the difference between console/ssh/screen becomes much more apparent (500 vs. 800, 250 vs. 400) - * With more than 16 MiB, Mach doesn't even boot -* Creating the processes very fast results in a sooner and less predictable crash (TODO: Check whether this is still the case with thread throtteling?) -* Creating processes recursively (fork only one child which forks the next one etc.) results in faster crash -* rpcinfo shows that child processes have more ports open by default, which is very likely the reason for the above observation -* Opening many ports from a few processes doesn't usually cause a system crash; there are only lots of open() failures and translator faults once some limit is reached... Seems the zalloc-full condition is better caught on open() than on fork() (TODO: investigate this further, with different memory sizes, different zone\_map\_size, different kinds of resources using zalloc etc.) -* After opening/leaking lots of ports to /dev/null (32768 it seems), the NULL translator somehow becomes disfunctional, and a new instance is started - -While most of these Observations clearly show an exhaustion of kernel memory which is not surprising, some of the oddities seem to indicate problems that might deserve further investigation. - --- antrik (Last update: 12 Apr 2007) |