diff options
Diffstat (limited to 'unsorted')
72 files changed, 4008 insertions, 0 deletions
diff --git a/unsorted/AwarenessOfWhatHappens.mdwn b/unsorted/AwarenessOfWhatHappens.mdwn new file mode 100644 index 00000000..4ba78999 --- /dev/null +++ b/unsorted/AwarenessOfWhatHappens.mdwn @@ -0,0 +1,7 @@ +FROM: <http://lists.gnu.org/archive/html/l4-hurd/2005-11/msg00242.html> + +The user must know what the operations are he can perform in the operating system. He must also know about their consequences and relevant side effects, and what the possible results are. At any point where the system can not make the right decision automatically, the user must have the ability to influence the path chosen. + +_Awareness means that the user knows what happens._ + +-- [[TomBachmann]] - 29 Apr 2006 diff --git a/unsorted/BochsEmulator.mdwn b/unsorted/BochsEmulator.mdwn new file mode 100644 index 00000000..8c9f5cfe --- /dev/null +++ b/unsorted/BochsEmulator.mdwn @@ -0,0 +1,20 @@ +# <a name="Bochs_IA_32_x86_64_Emulator"> Bochs IA-32/x86-64 Emulator </a> + +[Bochs](http://bochs.sf.net) is a very cool emulator, similar to Plex86 and the commercial product [[VmWare]] which virtualizes the PC hardware. However, Bochs does not virtualize, it _emulates_ the IA32 on the instruction level. It's currently the best alternative if you want to take the Hurd for a quick test drive without needing to repartition your hard drive or read complicated installation manuals. + +* [Debian package](http://packages.qa.debian.org/bochs) + +Note that Bochs is quite slow, so installing GNU inside its virtual machine will probably take you a lot of time. There are several pre-installed bochs images available. + +## <a name="Images"> Images </a> + +* The Bochs project hosts a [preinstalled GNU image](http://sourceforge.net/project/showfiles.php?group_id=12580). It has network, Xfree86 and the console server installed and configured (X has some problems though). If you want to try it out, please read the [[BochsFAQ]] for setting up a GNU guest first. +* [Another 2GB image](http://www.gnuhurd.org/) distributed in rar format without apologies. +* Bee has a [bochs version](http://bee.es.gnu.org/) of it's distribution + +## <a name="Articles"> Articles </a> + +* [Bruno Bonfils wrote an article.](http://www.asyd.net/docs/hurd/bochs-hurd.html) +* [Julien PUYDT wrote another article on setting up Hurd in Bochs.](http://lists.debian.org/debian-hurd/2003/debian-hurd-200303/msg00065.html) + * [Lucas Nussbaum added some details.](http://lists.debian.org/debian-hurd/2004/debian-hurd-200401/msg00078.html) +* [Marcus Brinkmann shares his experience in running GNU/Hurd on Bochs](http://lists.debian.org/debian-hurd/2004/debian-hurd-200402/msg00057.html). He [mentions qemu](http://lists.debian.org/debian-hurd/2004/debian-hurd-200402/msg00059.html) too, and [PUYDT Julien suggests using /dev/loop0.](http://lists.debian.org/debian-hurd/2004/debian-hurd-200402/msg00064.html) diff --git a/unsorted/BochsFAQ.mdwn b/unsorted/BochsFAQ.mdwn new file mode 100644 index 00000000..474bbed5 --- /dev/null +++ b/unsorted/BochsFAQ.mdwn @@ -0,0 +1,83 @@ +# <a name="GNU_pre0_3_J2_for_Bochs_mini_FAQ"> </a> GNU pre0.3-J2 for Bochs mini-FAQ + +---- + +## <a name="What_do_you_mean_GNU_the_GNU_Hur"> </a> What do you mean "GNU", the GNU Hurd? + +Yes and no. See <http://www.gnu.org/software/hurd/faq.en.html#q1-2> + +## <a name="Where_are_"> Where are...? </a> + +Latest version of this FAQ: [[Distrib/BochsFAQ]] + +Latest GNU image for Bochs: [http://sourceforge.net/project/showfiles.php?group\_id=12580](http://sourceforge.net/project/showfiles.php?group_id=12580) + +## <a name="Disk_line_for_bochsrc_"> Disk line for .bochsrc? </a> + +for Bochs 2.0 or later: + + ata0-master: type=disk, path="gnu.img", cylinders=1024, heads=16, spt=63 + +for older versions: + + diskc: file="gnu.img", cyl=1024, heads=16, spt=63 + +## <a name="My_PATH_and_prompt_are_weird_and"> </a> My PATH and prompt are weird, and X clients fail + +The profile is not loaded properly, do it manually with `". /etc/profile"` + +## <a name="How_can_i_change_terminals_"> How can i change terminals? </a> + +The Mach default console lack have multi-terminal capability, and up 'til recently we recommended the "screen" program. However, the new console server is installed and configured with 6 terminals. You can launch it with the ncursesw driver: + + console -d ncursesw /dev/vcs + +Switching is done via `C-w 1` (or 2, 3, ...). you can exit it with `C-w x` + +See the original posting to debian-hurd, <http://lists.debian.org/debian-hurd/2002/debian-hurd-200209/msg00054.html>, or [[Hurd/HurdConsole]] for more details. + +**_IMPORTANT:_** Note that X doesn't work well while running the console server. + +## <a name="Does_X_work_"> Does X work? </a> + +Somewhat: + +* DRI and speedo modules won't load so they're deactivated. +* The VESA driver also failed so VGA is being used. +* more than 8 bpp won't work. +* for some weird reason the mouse server in `/dev/mouse` doesn't respond, so the mouse is inoperative. +* GNU is still an unstable OS which makes X crash often on it. + +To reconfigure it, see Distrib.Xfree86, or: + + dpkg-reconfigure xserver-xfree86 + +then apply a patch to fix the mouse section: + + patch /etc/X11/XF86config-4 /root/XF86Config-4.diff + +Installed clients are blackbox window manager and rxvt terminal emulator. + +## <a name="Is_network_configured_"> Is network configured? </a> + +Yes, to change parameters use: + + settrans -apfg /servers/socket/2 /hurd/pfinet [options to pfinet] + +See `/hurd/pfinet --help` for details, or the [[Hurd/GetNetworkRunning]] topic. + +## <a name="How_do_i_mount_stuff_"> How do i mount stuff? </a> + + settrans -afg <node> /hurd/<translator> <options to translator> + +Where `node` is your mount point and `translator` is the filesystem server. Add `-p` to settrans if you want it to stay over reboots (fstab-like) + +## <a name="Anything_neat_to_try_"> Anything neat to try? </a> + +Yes! instead of `"su"` use `"sush"`, a more flexible version that manages multiple UIDs. + +You can also play with userspace filesystems for NFS and FTP in `/hurd/{nfs,ftpfs}` that you can run as user, debug with GDB, etc. + +## <a name="More_questions_"> More questions? </a> + +Read the FAQ (<http://www.gnu.org/software/hurd/faq.en.html>) for a general overview on the GNU system. diff --git a/unsorted/BuildingHurdLiveCD.mdwn b/unsorted/BuildingHurdLiveCD.mdwn new file mode 100644 index 00000000..e2082268 --- /dev/null +++ b/unsorted/BuildingHurdLiveCD.mdwn @@ -0,0 +1,70 @@ +# <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/unsorted/BuildingOskitMach.mdwn b/unsorted/BuildingOskitMach.mdwn new file mode 100644 index 00000000..9eee80d3 --- /dev/null +++ b/unsorted/BuildingOskitMach.mdwn @@ -0,0 +1,183 @@ +## <a name="HowTo_Build_OSKit_Mach"> </a> HowTo Build OSKit-Mach + + <h3><a name="Introduction"> Introduction </a></h3> This is a brief "<nop>HowTO build OSKit-Mach" (a.k.a GNUmach 2.0). It covers everything from getting the latest sources of both the <a href="http://www.cs.utah.edu/flux/oskit/" target="_top">OSKit</a> and the GNUmach kernel, down to building and debugging them. <p> To be able to actually make use of your recently checked out CVS version of the GNUMach kernel &amp; c:o you need a GNU system of <a href="ftp://ftp.funet.fi/pub/gnu/alpha/gnu/hurd/contrib/marcus/gnu-20020816.tar.gz" target="_top">gnu-20020816.tar.gz</a> or later. See [[Distrib/TarballNotesHome]] for more info. </p></nop></td> + +## <a name="Getting_your_hands_on_the_source"> Getting your hands on the source </a> + +First you need to checkout the relevant sources. It comes in various flavours and the recommended way is to checkout from CVS. + +### <a name="The_OSKit_Sources"> </a> The OSKit Sources + +**_Note:_** The [Savannah OSKit](http://savannah.gnu.org/projects/oskit/) project is the recommended source today of the OSKit. Its CVS tree holds the official sources and all known patches, plus a few others. + +**_Official Sources:_** + +* St. Patricks day 2002 release: <ftp://flux.cs.utah.edu/flux/oskit/oskit-20020317.tar.gz> + +* Valentine's day 2001 release: <ftp://flux.cs.utah.edu/flux/oskit/oskit-20010214.tar.gz> + +**_Official Patches:_** + +* Download useful [[OskitPatches]] or on the nearest Debian FTP. + +**_Savannah CVS:_** + +The recommended document for accessing the Savannah OSKit CVS is <http://savannah.gnu.org/cvs?group=oskit> + +The following command should get the sources for you: + + $ export CVS_RSH="ssh" + $ cvs -z3 -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/oskit co oskit + +Note: if you get a message about RSA/DSA keys, please go check it here: <http://savannah.gnu.org/cvs?group=oskit> + +### <a name="GNUmach_amp_Mig_Sources"> </a> GNUmach & Mig Sources + +The recommended document for accessing the Hurd CVS on Savannah is at <http://savannah.gnu.org/cvs/?group=hurd> + +Remember to set up you environment to use 'ssh' for cvs: + + $ export CVS_RSH="ssh" + +Note: if you get a message about RSA/DSA keys when using cvs commands, please go check it here: <http://savannah.gnu.org/cvs?group=hurd> + +**_Gnu Mach:_** + +All development, apart from critical bug fixes, is done on the upcoming 2.0 release (OSKit/Mach). A potentially confusing point is that the code for OSKit/Mach (as opposed to the 1.X release, aka "GNU Mach") is now on the `TRUNK` of the 'gnumach' CVS module. In the past the trunk was 1.X (GNU Mach) and 2.0 (OSKit/Mach) was a branch. + + $ cvs -z3 -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/hurd co gnumach + +In case you have been tracking the oskit-branch and want to move to the current `HEAD` branch you can issue the following instead to update your tree. + + $ cd <YOUR MACH DIR> + $ cvs -z3 -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/hurd update -Pd -A + +Where `<YOUR MACH DIR>` can be `gnumach`, `oskit-mach`, or similar. The `-A` is what moves you from a branch to the default (in this case HEAD), but without forcing a specific tag. `-P` Prunes your local copy from stale directories and `-d` creates new directories for you. + +**_The Hurd servers:_** + +In case you want to build the Hurd servers as well, you can check them out with: + + $ cvs -z3 -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/hurd co hurd + +**_Inteface generator:_** + +See the [[microkernel/mach/MIG]] for more information. + +Check it out using + + $ cvs -z3 -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/hurd co mig + +## <a name="Building"> Building </a> + +The recommended versions of GCC are + +<dl> + <dt> For the OSKit</dt> + <dd> GCC 2.95.X </dd> + <dt> For GNUmach and <nop>MiG</nop></dt> + <dd> GCC 3.2 </dd> +</dl> + +### <a name="The_OSKit"> </a> The OSKit + +Do _not_ forget to apply all known [[OskitPatches]] before starting the build! This does not apply if you use the OSKit from [Savannah](http://savannah.gnu.org/). + +The attached [[ATTACHURLmodulesx86pc]], or [[ATTACHURLmodules-lightx86pc]], is an example setup, your needs may vary but this one works for standard COTS PC's. Now, how to configure and build the OSKit. + + $ cd oskit-20020317/ + $ mkdir build + $ cd build + $ CC=gcc-2.95 \ + CFLAGS="-g" \ + ../configure --prefix=/usr/local \ + --enable-debug \ + --enable-modulefile=modules-light.x86.pc + $ make + $ sudo make install + +Comment: Barry deFreese + +For you newbies like me, I had problems using `modules.x86.pc.full` and `modules.x86.pc`. There seems to be problems with `examples/dyntest`. Make sure you pull down and use the [[ATTACHURLmodules-lightx86pc]]. + +Comment: Luis Miguel + +I needed to apply another patch that is not in CVS yet. The patch is in this [message](http://mail.gnu.org/archive/html/bug-hurd/2003-06/msg00054.html) in the bug-hurd mailing list. + +### <a name="Mach_Interface_Generator"> Mach Interface Generator </a> + +To build any Mach kernel you need an interface generator, MiG. To be on the safe side, use the CVS version. If you use Debian, you can install package [mig-i386-gnu](http://packages.debian.org/mig-i386-gnu). If you don't use Debian or want to compile MiG by yourself on Linux/\*BSD system, you must first install Mach headers. In Mach directory do: + + $ mkdir build + $ cd build + $ ../configure --prefix=/usr/local # Default prefix is / ! + $ sudo make -k install-headers # -k is for ignoring errors + +Now you are ready to compile and install MiG (commands are in Mig's source directory): + + $ automake --add-missing # sometimes it's needed + $ mkdir build + $ cd build + $ ../configure + $ make + $ sudo make install + +### <a name="GNUmach_2_0_OSKit_Mach_"> </a> GNUmach 2.0 (OSKit-Mach) + +Unlike its half sister, the OSKit-Mach kernel does _not_ need a cross compiler. The regular gcc for your x86 Linux system does just fine. However, you might want to use gcc 3.2 with the latest and greatest CVS version of Mach. + +**_Configuring:_** + + $ cd gnumach + $ mkdir build + $ cd build + $ MIG=/usr/local/bin/mig \ + CC=gcc-3.2 \ + CFLAGS="-g -O2" \ + OSKIT_LIBDIR=/usr/local/lib/oskit \ + ../configure --prefix=/gnu + +Comment: Barry deFreese + +I updated `CFLAGS` to `CFLAGS="-g -O2"`. Using just `-O` I was getting errors in the `machine_init` function. For newbies like me, the `-g` is only needed if you want to enable debugging. The `-O2` is Oh 2, not Zero 2. + +**_Building:_** + +Instead of using `make kernel` to build kernel, in OSKit-Mach you have to use <code>make kernel-<var>DRIVERS</var></code>, where <var>DRIVERS</var> is <code><var>DRIVER</var>+<var>DRIVER</var>+...+<var>DRIVER</var></code> (a list of drivers separated by `+`). <var>DRIVER</var> can be one of: + +* `ide` +* `floppy` +* <code>ethernet\_<var>ETHDRV</var></code> where <var>ETHDRV</var> is taken from `oskit/oskit/dev/linux_ethernet.h`. +* <code>scsi\_<var>SCSIDRV</var></code> where <var>SCSIDRV</var> is taken from `oskit/oskit/dev/linux_scsi.h`. + +Thus, to build a IDE capable kernel with 3Com Vortex Boomerang support you use the following: + + $ make kernel-ide+ethernet_vortex + $ sudo make install + $ sudo gzip -f /gnu/boot/oskit-mach + +If the `make` command complains about missing dependencies, then you haven't passed correct `OSKIT_LIBDIR` variable to the `configure` script. Or you can use the patch below and pass something like `--with-oskit=/usr/local` to `configure`. + +Comment: Barry deFreese + +If you receive an error like `No rule to make target Kernel-ide...`, there is a patch for an issue with finding the oskit libraries. Then run `configure` on gnumach again with the option `--with-oskit=/path/to/oskit/libraries`. + +The patch can be found here: [gnumach-oskit-path.patch](http://www.vis.ethz.ch/~wagi/hurd/gnumach/gnumach-oskit-path.patch) Thanks wagi!! + +Don't use both `--with-oskit` and `OSKIT_LIBDIR`. Choose one of these methods. + +If you want to use tftp to download the kernel from Grub and don't care about the symbols I recommend either stripping or removing the `--enable-debug` and `-g` statements. + +## <a name="Debugging"> Debugging </a> + +See the [[Mach/RemoteDebugOskitMach]] page. + +## <a name="Attachments"> Attachments </a> + +* [[ATTACHURLmodulesx86pc]]: Configures modules to build in OSKit. +> Compared to 21May04 CVS, this adds SMP but omits the random module which was added to CVS in Jan03. + +* [[ATTACHURLmodules-lightx86pc]]: Lighter version of required modules. Used for building GNUmach with OSKit, i.e. OSKit/Mach. +> Compared to the above config, this omits the Linux, MSDOS, +> +> NetBoot, and PXE loader support, bootp support, OSKit on UNIX support, some thread-safe library versions, the address map manager, fsread, fsnamespace/\{fsn,fsn\_r\}, fudp, memdebug, memfs, smp, POSIX threads, svm, uvm, the Simple Process Library, realtime support, FreeBSD devices and code, linux/fs, the UDP library, **the sets of x86 and UNIX example kernels**, the testsuite, and the security server. **The new random module is also not configured.** diff --git a/unsorted/BuildingOskitMach/modules-light.x86.pc b/unsorted/BuildingOskitMach/modules-light.x86.pc new file mode 100644 index 00000000..07818cc5 --- /dev/null +++ b/unsorted/BuildingOskitMach/modules-light.x86.pc @@ -0,0 +1,236 @@ +## +## OSKit Module configuration file. +## +## Comments are ignored, non-commented words should be +## OSKit directories to include in the build. +## +## Libraries are built in the order defined in this +## file. +## +## Specify this file with the --with-modulesfile=<x> +## option to configure. By default the file 'modules' +## in the OSKit source directory is used. +## + +### Always include this module (the header files) +oskit + +### The flask module must be compiled before +### most of the other modules. +### It is currently a required module. +flask + +### Builds the documentation (Utah only) +#doc + + +### --- Required components + +### The C Runtime (the magic that calls 'main') (required) +crt + +knit/c + +### Various bits of kernel magic (required) +kern + +### List Memory Manager (required) +lmm + +### The Client OS library (required) +clientos + + +### --- Boot Adaptors + +### Build the multiboot compliant boot adaptor +### Requires that ld support '-format binary' (checked) +boot/multiboot + +### Build the Linux boot adaptor +### Requires ld support '-oformat binary' (checked) +#boot/linux + +### Build the MSDOS boot adaptor (??) +## Requires ld support '-oformat msdos' (checked) +#boot/dos + +### Build the BSD boot adaptor +### Requires some sort of a.out linker (checked) +#boot/bsd + +### The NetBoot Meta-kernel +#boot/net + +### Build the PXE compliant boot loader +#boot/pxe + +### --- OSKit-on-UNIX support libraries. +#unix + +### --- C Libraries + +### A minimal standard C library +libc + +### A much more complete standard C library +posix/sys + +### Thread-safe version of the previous +#posix/sys_r + + +### --- Miscellaneous utility libraries + +### Address Map Manager +#amm + +### Library for contacting a bootp server +#bootp + +### Com IIDs library (required for most kernels) +com + +### For groking disk partitions +diskpart + +### Include the Dynamic Packet Filter library +#dpf/dpf + +### Exec library for loading linked executables +exec + +### Read-only access to a number of filesystems +#fsread + +### Filesystem name parsing library +#fsnamespace/fsn + +### Same as above, but multithread safe +#fsnamespace/fsn_r + +### Fake UDP library (Only supports UDP send) +#fudp + +### Include the Hierarchical Packet Fair Queueing module +#hpfq + +### The Memdebug library +#memdebug + +### The memory file system +#memfs + +### SMP support (believed to be broken) +#smp +## the SMP example +#examples/x86/smp ### requires smp + +### POSIX threads +#threads + +### Simple Virtual Memory +#svm + +### UVM +#uvm/uvm + +### Simple Process Library +#uvm/sproc +### the sproc example +#examples/x86/sproc ### requires sproc + +### --- Startup Library + +### Simpler functions for initializing OSKit subsystems +### NOTE: this drags in almost every other library. +#startup + + +### --- Devices, Networks and Filesystems + +### The device layer glue. Depends on lmm and kern +### Required for any kernel that uses OSKit devices. +dev + +### Realtime support. Needed for realtime threads and for GPROF. +#realtime + +### Devices and code stolen from FreeBSD +#freebsd/dev +#freebsd/net_flask +#freebsd/net +#freebsd/libm +#freebsd/libc +#freebsd/libc_r + +### Include Run-time linker support. This must come after freebsd build +#rtld +## The rltd example +#examples/dyntest ### requires rtld + +### Stuff stolen from Linux +linux/dev +#linux/fs + +### Stuff stolen from NetBSD +#netbsd/fs + +### SVGA video library +#video/svgalib +### SVGA-related examples +#examples/x86/video_svga ### requires video/svgalib + +### X11 video library +#x11/client +#x11/video +### X11-related examples +#examples/x86/video_x11 ### requires x11/video + +### The zlib compression library +#zlib + +### The UDP library. More complete than fudp, but not totally complete. +#udp + +### The Utah testbed TMCP communication library and examples +#tmcp +#examples/tmcp + +### The NetDisk kernel. +## Requires the zlib compression library. +## Requires the udp library. +#netdisk + +### --- Scripts and build/debug utilities + +### Includes the CPU-oskit-gcc wrapper. +unsupported + + +### --- Additional stuff that must be at or near the end of the build + + +### Sets of example kernels +#examples/x86 +#examples/x86/extended +#examples/x86/threads + +### Building the example kernels as host-build binaries with unix-mode +### emulation. NOTE: These will only be built if you are compiling +### the OSKit with unixmode support (and on Linux or FreeBSD). +#examples/unix +#examples/unix/extended +#examples/unix/threads + +### The OSKit test infrastructure +#testsuite + +### The security server +#security +## security server example kernel +#examples/x86/security ### requires security + +### The Mad MPEG audio decoder library and example +#libmad +#libmad/minimad diff --git a/unsorted/BuildingOskitMach/modules.x86.pc b/unsorted/BuildingOskitMach/modules.x86.pc new file mode 100644 index 00000000..bb27aca3 --- /dev/null +++ b/unsorted/BuildingOskitMach/modules.x86.pc @@ -0,0 +1,236 @@ +## +## OSKit Module configuration file. +## +## Comments are ignored, non-commented words should be +## OSKit directories to include in the build. +## +## Libraries are built in the order defined in this +## file. +## +## Specify this file with the --with-modulesfile=<x> +## option to configure. By default the file 'modules' +## in the OSKit source directory is used. +## + +### Always include this module (the header files) +oskit + +### The flask module must be compiled before +### most of the other modules. +### It is currently a required module. +flask + +### Builds the documentation (Utah only) +#doc + + +### --- Required components + +### The C Runtime (the magic that calls 'main') (required) +crt + +knit/c + +### Various bits of kernel magic (required) +kern + +### List Memory Manager (required) +lmm + +### The Client OS library (required) +clientos + + +### --- Boot Adaptors + +### Build the multiboot compliant boot adaptor +### Requires that ld support '-format binary' (checked) +boot/multiboot + +### Build the Linux boot adaptor +### Requires ld support '-oformat binary' (checked) +boot/linux + +### Build the MSDOS boot adaptor (??) +## Requires ld support '-oformat msdos' (checked) +#boot/dos + +### Build the BSD boot adaptor +### Requires some sort of a.out linker (checked) +#boot/bsd + +### The NetBoot Meta-kernel +boot/net + +### Build the PXE compliant boot loader +#boot/pxe + +### --- OSKit-on-UNIX support libraries. +unix + +### --- C Libraries + +### A minimal standard C library +libc + +### A much more complete standard C library +posix/sys + +### Thread-safe version of the previous +posix/sys_r + + +### --- Miscellaneous utility libraries + +### Address Map Manager +amm + +### Library for contacting a bootp server +bootp + +### Com IIDs library (required for most kernels) +com + +### For groking disk partitions +diskpart + +### Include the Dynamic Packet Filter library +#dpf/dpf + +### Exec library for loading linked executables +exec + +### Read-only access to a number of filesystems +fsread + +### Filesystem name parsing library +fsnamespace/fsn + +### Same as above, but multithread safe +fsnamespace/fsn_r + +### Fake UDP library (Only supports UDP send) +fudp + +### Include the Hierarchical Packet Fair Queueing module +#hpfq + +### The Memdebug library +memdebug + +### The memory file system +memfs + +### SMP support (believed to be broken) +smp +## the SMP example +examples/x86/smp ### requires smp + +### POSIX threads +threads + +### Simple Virtual Memory +svm + +### UVM +uvm/uvm + +### Simple Process Library +uvm/sproc +### the sproc example +examples/x86/sproc ### requires sproc + +### --- Startup Library + +### Simpler functions for initializing OSKit subsystems +### NOTE: this drags in almost every other library. +startup + + +### --- Devices, Networks and Filesystems + +### The device layer glue. Depends on lmm and kern +### Required for any kernel that uses OSKit devices. +dev + +### Realtime support. Needed for realtime threads and for GPROF. +realtime + +### Devices and code stolen from FreeBSD +freebsd/dev +#freebsd/net_flask +freebsd/net +freebsd/libm +freebsd/libc +freebsd/libc_r + +### Include Run-time linker support. This must come after freebsd build +#rtld +## The rltd example +#examples/dyntest ### requires rtld + +### Stuff stolen from Linux +linux/dev +linux/fs + +### Stuff stolen from NetBSD +netbsd/fs + +### SVGA video library +#video/svgalib +### SVGA-related examples +#examples/x86/video_svga ### requires video/svgalib + +### X11 video library +#x11/client +#x11/video +### X11-related examples +#examples/x86/video_x11 ### requires x11/video + +### The zlib compression library +#zlib + +### The UDP library. More complete than fudp, but not totally complete. +udp + +### The Utah testbed TMCP communication library and examples +#tmcp +#examples/tmcp + +### The NetDisk kernel. +## Requires the zlib compression library. +## Requires the udp library. +#netdisk + +### --- Scripts and build/debug utilities + +### Includes the CPU-oskit-gcc wrapper. +unsupported + + +### --- Additional stuff that must be at or near the end of the build + + +### Sets of example kernels +examples/x86 +examples/x86/extended +examples/x86/threads + +### Building the example kernels as host-build binaries with unix-mode +### emulation. NOTE: These will only be built if you are compiling +### the OSKit with unixmode support (and on Linux or FreeBSD). +examples/unix +examples/unix/extended +examples/unix/threads + +### The OSKit test infrastructure +testsuite + +### The security server +security +## security server example kernel +examples/x86/security ### requires security + +### The Mad MPEG audio decoder library and example +#libmad +#libmad/minimad diff --git a/unsorted/CrossHurd.mdwn b/unsorted/CrossHurd.mdwn new file mode 100644 index 00000000..d33d2a00 --- /dev/null +++ b/unsorted/CrossHurd.mdwn @@ -0,0 +1,99 @@ +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/unsorted/DebianX.mdwn b/unsorted/DebianX.mdwn new file mode 100644 index 00000000..6d65a140 --- /dev/null +++ b/unsorted/DebianX.mdwn @@ -0,0 +1,116 @@ +# <a name="Setting_up_X_on_Debian_GNU_Hurd"> </a> Setting up X on Debian GNU/Hurd + +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="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/unsorted/DebianXorg.mdwn b/unsorted/DebianXorg.mdwn new file mode 100644 index 00000000..a1d77903 --- /dev/null +++ b/unsorted/DebianXorg.mdwn @@ -0,0 +1,193 @@ +# <a name="Setting_up_Xorg_on_Debian_GNU_Hu"> </a> Setting up Xorg on Debian GNU/Hurd + +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/unsorted/DhcpClient.mdwn b/unsorted/DhcpClient.mdwn new file mode 100644 index 00000000..442f4781 --- /dev/null +++ b/unsorted/DhcpClient.mdwn @@ -0,0 +1,42 @@ +# <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/unsorted/DistributedServers.mdwn b/unsorted/DistributedServers.mdwn new file mode 100644 index 00000000..cb2dd5bc --- /dev/null +++ b/unsorted/DistributedServers.mdwn @@ -0,0 +1,29 @@ +# <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/unsorted/ExtTwoSize.mdwn b/unsorted/ExtTwoSize.mdwn new file mode 100644 index 00000000..ec39781f --- /dev/null +++ b/unsorted/ExtTwoSize.mdwn @@ -0,0 +1,27 @@ +## <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/unsorted/FlashHurd.mdwn b/unsorted/FlashHurd.mdwn new file mode 100644 index 00000000..a6288afc --- /dev/null +++ b/unsorted/FlashHurd.mdwn @@ -0,0 +1,60 @@ +# <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/unsorted/FlexibilityForUser.mdwn b/unsorted/FlexibilityForUser.mdwn new file mode 100644 index 00000000..71b05cfd --- /dev/null +++ b/unsorted/FlexibilityForUser.mdwn @@ -0,0 +1,7 @@ +FROM: <http://lists.gnu.org/archive/html/l4-hurd/2005-11/msg00242.html> + +The user must have a range of options available that support him to achieve an arbitrary but well-defined goal that can be stated within the legitimate resources the user controls. + +_Flexibility means that the user controls what can happen **with** his resources._ + +-- [[TomBachmann]] - 29 Apr 2006 diff --git a/unsorted/FunnyHurd.mdwn b/unsorted/FunnyHurd.mdwn new file mode 100644 index 00000000..1653ec77 --- /dev/null +++ b/unsorted/FunnyHurd.mdwn @@ -0,0 +1,39 @@ +## <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/unsorted/FunnyHurd/CrystalAwards.jpg b/unsorted/FunnyHurd/CrystalAwards.jpg Binary files differnew file mode 100644 index 00000000..2daac850 --- /dev/null +++ b/unsorted/FunnyHurd/CrystalAwards.jpg diff --git a/unsorted/FunnyHurd/HurdCarDeal.jpg b/unsorted/FunnyHurd/HurdCarDeal.jpg Binary files differnew file mode 100644 index 00000000..9f533384 --- /dev/null +++ b/unsorted/FunnyHurd/HurdCarDeal.jpg diff --git a/unsorted/FunnyHurd/HurdExchange.gif b/unsorted/FunnyHurd/HurdExchange.gif Binary files differnew file mode 100644 index 00000000..bbbb4844 --- /dev/null +++ b/unsorted/FunnyHurd/HurdExchange.gif diff --git a/unsorted/FunnyHurd/HurdLodge.jpg b/unsorted/FunnyHurd/HurdLodge.jpg Binary files differnew file mode 100644 index 00000000..d13562f5 --- /dev/null +++ b/unsorted/FunnyHurd/HurdLodge.jpg diff --git a/unsorted/FunnyHurd/HurdMagician.jpg b/unsorted/FunnyHurd/HurdMagician.jpg Binary files differnew file mode 100644 index 00000000..5ef6509a --- /dev/null +++ b/unsorted/FunnyHurd/HurdMagician.jpg diff --git a/unsorted/FunnyHurd/hurd-windows.gif b/unsorted/FunnyHurd/hurd-windows.gif Binary files differnew file mode 100644 index 00000000..5ca7dd74 --- /dev/null +++ b/unsorted/FunnyHurd/hurd-windows.gif diff --git a/unsorted/GNUstep.mdwn b/unsorted/GNUstep.mdwn new file mode 100644 index 00000000..95b2a622 --- /dev/null +++ b/unsorted/GNUstep.mdwn @@ -0,0 +1,64 @@ +# <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/unsorted/GrantBowHurdPage.mdwn b/unsorted/GrantBowHurdPage.mdwn new file mode 100644 index 00000000..89af3ada --- /dev/null +++ b/unsorted/GrantBowHurdPage.mdwn @@ -0,0 +1,36 @@ +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/unsorted/GrantBowHurdPage/diagram.png b/unsorted/GrantBowHurdPage/diagram.png Binary files differnew file mode 100644 index 00000000..c8b29047 --- /dev/null +++ b/unsorted/GrantBowHurdPage/diagram.png diff --git a/unsorted/GrantBowHurdPage/diagram.xcf b/unsorted/GrantBowHurdPage/diagram.xcf Binary files differnew file mode 100644 index 00000000..76396410 --- /dev/null +++ b/unsorted/GrantBowHurdPage/diagram.xcf diff --git a/unsorted/HurdDevelopers.mdwn b/unsorted/HurdDevelopers.mdwn new file mode 100644 index 00000000..1a43a2b8 --- /dev/null +++ b/unsorted/HurdDevelopers.mdwn @@ -0,0 +1,120 @@ +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/unsorted/HurdOnL4.mdwn b/unsorted/HurdOnL4.mdwn new file mode 100644 index 00000000..79e7a714 --- /dev/null +++ b/unsorted/HurdOnL4.mdwn @@ -0,0 +1,173 @@ +# <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/unsorted/HurdOnL4/menu.lst b/unsorted/HurdOnL4/menu.lst new file mode 100644 index 00000000..3129ea74 --- /dev/null +++ b/unsorted/HurdOnL4/menu.lst @@ -0,0 +1,55 @@ +# menu for grub
+splashimage (hd0,0)/boot/grub/debian.xpm
+foreground bfbfe7
+background 3f3f7f
+ +timeout 30
+default 0 +
+title Debian Sid with Linux kernel 2.6.5
+root (hd0,1)
+kernel /vmlinuz root=/dev/hda2 vga=0x318
+
+title Debian Sid with old kernel
+root (hd0,1)
+kernel /vmlinuz.old root=/dev/hda2 vga=9
+
+title Microsoft Windows 2000
+rootnoverify (hd0,3)
+chainloader (hd0,3)+1
+
+title FreeDOS BETA 8.0
+root (hd0,0)
+chainloader +1
+
+title GNU Hurd on L4Ka Pistachio 0.4
+root (hd0,8)
+kernel /boot/laden -D
+module /boot/ia32-kernel
+module /libexec/l4/sigma0
+module /boot/wortel -D
+module /boot/physmem
+
+title Debian GNU/Hurd (gnumach)
+root (hd0,7)
+kernel /boot/kernel.gz root=device:hd0s8
+module /hurd/ext2fs.static --readonly \
+ --multiboot-command-line=${kernel-command-line} \
+ --host-priv-port=${host-port} \
+ --device-master-port=${device-port} \
+ --exec-server-task=${exec-task} \
+ -T typed ${root} $(task-create) $(task-resume)
+module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
+
+# title Debian GNU/Hurd (oskit-mach)
+# root (hd3,0)
+# kernel /boot/kernel-ide -- root=hd0s1
+# module /hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T device ${root-device} $(task-create) $(task-resume)
+# module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
+
+# title Debian GNU/Hurd (oskit-mach w/ remote debugging)
+# root (hd3,0)
+# kernel /boot/kernel-ide -d GDB_COM=1 BAUD=9600 -- root=hd0s1
+# module /hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T device ${root-device} $(task-create) $(task-resume)
+# module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
+
diff --git a/unsorted/InstallNotes.mdwn b/unsorted/InstallNotes.mdwn new file mode 100644 index 00000000..f3ac58d1 --- /dev/null +++ b/unsorted/InstallNotes.mdwn @@ -0,0 +1,291 @@ +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) - (link is currently broken - see below for current instructions). + +**_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 [Here](http://ftp.gnuab.org/pub/gnu.iso) + +## <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 - The current documentation, for the tarball method, are [Debian's installation instructions](http://www.debian.org/ports/hurd/hurd-install), based on the original guide by Neal Walfield. 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: + +* [[GRUB]] - 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/> . + +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> + +See [[DebianAfterInstall]] for complete, up to date instructions. + +* 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. + * run `/etc/cron.daily/find` to allow `locate` to function. + +* [[GetNetworkRunning]] + * 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. + * See [[DebianAfterInstall]] for up to date instruction on how to setup apt-get mirrors. + * 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 was important because the Hurd didn't have virtual consoles. Now you can have the [[Hurd/HurdConsole]], but screen is still handy. + * `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/> ) + +* You may want to check the [[PackageTroubleshooting]] page if you are having trouble installing and making work some Debian packages. + +## <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/unsorted/InstallTips.mdwn b/unsorted/InstallTips.mdwn new file mode 100644 index 00000000..262ec741 --- /dev/null +++ b/unsorted/InstallTips.mdwn @@ -0,0 +1,111 @@ +Before reading these instructions, be sure you are familiar with the [[InstallNotes]]. + +## <a name="1_Setting_up_the_filesystems"> 1. Setting up the filesystems </a> + +You will need to boot a linux capable of internet access and creating/mounting ext2 partitions. I recommend [tomsrtbt](http://www.toms.net/rb/) linux which fits nicely onto a floppy and although a bit old will work well. + +Once in linux, you will need to create the partitions with fdisk. If you need to reboot, you will be notified. Make sure your partitions are not more than 2gig, or not even close. I learned this the hard way. This is for version 9-17-2004, newer versions should not have this problem. + +Assuming your root partition is on the first partition of the primary master run: + + mke2fs -o hurd /dev/hda1 + +If you do not have enough memory to do this, you will need to create a swap partition using mkswap and enable it with swapon before running mke2fs. + +## <a name="2_Getting_online"> 2. Getting online </a> + +Now you will need to get online to download the needed base system. To do this check to see if you are already online. + +If not, check the network by issuing ifconfig. If you have a device but it is not listed correctly, refer to the documentation on ifconfig to set it correctly. Even if you have dhcp you can usually issue a static ip that is in the correct range. An example may read: + + ifconfig eth0 up 192.168.1.9 netmask 255.255.255.0 + +Now setup the default gateway replace with your gateway + + route add default gw 192.168.1.1 + +you may need to issue "route del default" a few times to remove incorrect routings. + +Now just edit /etc/resolv.conf and put in your nameserver and you should be set. + +## <a name="3_Downloading_the_tar"> 3. Downloading the tar </a> + +Mount the filesystem to a directory (/mnt works) and cd to this directory. + +Download the latest tar of the debian system <http://eu.hurd.gnuab.org/pub/debian/base/> or another working link, the file will probably be in the format: debian-gnu-hurd-yyyy.mm.dd.tar.gz + +use wget for the full path + +now assuming tomsrtbt linux issue: + + gzip -d<debian-gnu-hurd-yyyy.mm.dd.tar.gz|tar -xvf - + +replacing yyyy.mm.dd appropriately + +## <a name="4_Configuring_GRUB"> </a> 4. Configuring GRUB + +Download the floppy image of grub with ext2fs support to a temporary directory, it can be found here: <ftp://alpha.gnu.org/gnu/grub/> write it to a blank floppy + + dd if=image of=/dev/fd0 + +now mount the floppy and copy the files to your partition + + mount /dev/fd0 /fl + cd /fl/boot + cp -R grub /mnt/boot + +you may also wish to put my menu.lst file in your grub directory which can be obtained here <ftp://firethroat.com/hurd/menu.lst> you will need to edit it to include a -s at the end of the line starting with kernel. Be sure modify the partition numbers, my system is using the third partition of the second harddrive. + +More detailed samples for GRUB config files can be found at the [[GRUB]] page. + +To install grub reboot using the grub floppy and issue: + + root (hd1,2) + setup (hd0) + +this will use the grub installed on the third partition of the second harddrive and install it to the master boot record of the first hard drive. + +Now reboot without the floppy, be sure to use the option -s at the end of the grub line starting with kernel= to start in single user mode. + +## <a name="5_Booting_GNU"> </a> 5. Booting GNU + +You should have booted the kernel now, check output to see if it detects your network card. My smc card did not work so I switched to a 3com card. + +You are now at step 6 of the [[InstallNotes]]. Follow these instructions to complete the installation. + +## <a name="6_Final_notes"> 6. Final notes </a> + +Be sure to issue + + apt-get update + apt-get upgrade + +Before running x run the console + + console -d vga -d pc_kbd --repeat=kbd -c /dev/cons /dev/vcs + +This forwards the keyboard device so x can use it. It also gives you 6 virtual terminals. I have had problems using it to forward the mouse, the system would lock. To exit issue ctrl+alt+backspace + +To get a sample XF86Config-4 issue: + + X -configure + +My file is available <ftp://firethroat.com/hurd/XF86Config-4> but it uses a serial mouse. You can use settrans to get mouse input (this is the prefered method) or accessing it directly works. + +## <a name="7_Works_Cited_Referenced_Materia"> 7. Works Cited - Referenced Materials </a> + +[[InstallNotes]] -- Neal H. Walfield's Install Guide + +[Grub Install Guide](http://www.gnu.org/software/grub/manual/html_node/Installing-GRUB-natively.html) + +[tomsrtbt linux](http://www.toms.net/rb/) a general purpose linux distribution on 1 floppy. + +A lot of help in the chat room [[IRC]]. + +---- + +## <a name="Licensing"> Licensing </a> + +The license for this info 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.) + +-- [[Main/SeanDEpagnier]] - 25 Dec 2004 diff --git a/unsorted/InteractiveTranslators.mdwn b/unsorted/InteractiveTranslators.mdwn new file mode 100644 index 00000000..9a0ca7e2 --- /dev/null +++ b/unsorted/InteractiveTranslators.mdwn @@ -0,0 +1,31 @@ +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/unsorted/JoachimNilssonHurdPage.mdwn b/unsorted/JoachimNilssonHurdPage.mdwn new file mode 100644 index 00000000..163d6845 --- /dev/null +++ b/unsorted/JoachimNilssonHurdPage.mdwn @@ -0,0 +1,235 @@ +## <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/unsorted/JoachimNilssonHurdPage/patch_kit.jpg b/unsorted/JoachimNilssonHurdPage/patch_kit.jpg Binary files differnew file mode 100644 index 00000000..da5cc147 --- /dev/null +++ b/unsorted/JoachimNilssonHurdPage/patch_kit.jpg diff --git a/unsorted/JoachimNilssonOldStuff.mdwn b/unsorted/JoachimNilssonOldStuff.mdwn new file mode 100644 index 00000000..30e6b611 --- /dev/null +++ b/unsorted/JoachimNilssonOldStuff.mdwn @@ -0,0 +1,32 @@ +## <a name="OSKit_Mach_Troubles"> </a> OSKit-Mach Troubles + +* Building OSKit & Mach and optimizations, context SMP: <http://lists.debian.org/debian-hurd/2002/debian-hurd-200203/msg00080.html> +* OSKit \_\_libc\_multiple\_libcs: <ftp://flux.cs.utah.edu/flux/oskit/mail/html/oskit-users/msg01052.html> +* Enabling OSKit drivers in Mach: <http://lists.debian.org/debian-hurd/2000/debian-hurd-200003/msg00265.html> +* IDE Bios probe trap on page zero problem: <http://mail.gnu.org/pipermail/bug-hurd/2001-July/004714.html> + +* Neal announces oskit-mach binary: <http://lists.debian.org/debian-hurd/2000/debian-hurd-200009/msg00323.html> +* Neal crashes with OSKit 200009 on 0x104: <http://mail.gnu.org/pipermail/bug-hurd/2000-September/000055.html> +* Igor crashes on 0x104: <http://mail.gnu.org/pipermail/bug-hurd/2001-July/004714.html> + +Mach docs + +* wget -m -np <ftp://ftp.inf.tu-dresden.de/pub/os/mach/> (nearly 250M) +* wget -m -np <ftp://ftp.lip6.fr/pub/mach/> (nearly 2G (e.g. includes oskit)) +* wget -m -np <ftp://ftp.opengroup.org/pub/ri/os/> (About 20-30M) +* <ftp://ftp.ftp.lip6.fr/pub/mach/cmu/doc/osf/> + +# <a name="Links"> Links </a> + +Misc. links for my pleasure only. + +* [Savannah - GNU CVS](http://savannah.gnu.org) +* [Gnu/Hurd](http://hurd.gnu.org) +* [OSKit-mach docs](http://www.etherhogz.org/doc/) +* "Building OSKit-Mach" the document: <http://mail.gnu.org/pipermail/bug-hurd/2001-September/005266.html> +* [Walken Hurd hackers guide](http://www.via.ecp.fr/~walken/hurd/) [(mirror)](http://vmlinux.org/crash/mirror/www.via.ecp.fr/) +* [CMU CS Mach pages](http://www.cs.cmu.edu/afs/cs.cmu.edu/project/mach/public/www/mach.html) +* [Univ. of Utah's Mach 4](http://www.cs.utah.edu/projects/flux/mach4/html/) +* OSKit [HTML](http://www.cs.utah.edu/flux/oskit/html/oskit-www.html) or [PS.GZ](http://vmlinux.org/joachim/hurd/oskit.ps.gz) manual. + +-- [[Main/JoachimNilsson]] - 31 Oct 2002 diff --git a/unsorted/KernelCousinDebianHurd.mdwn b/unsorted/KernelCousinDebianHurd.mdwn new file mode 100644 index 00000000..1ff8a698 --- /dev/null +++ b/unsorted/KernelCousinDebianHurd.mdwn @@ -0,0 +1,3 @@ +[Kernel Traffic](http://www.kerneltraffic.org/) publishes newsletters that track the technical developments of various projects of the Free and Open Source world. [Newsletters for the Hurd development](http://www.kerneltraffic.org/debian-hurd/archives.html) were published, but not anymore. + +Updated status. -- [[Main/OgnyanKulev]] - 18 Sep 2004 diff --git a/unsorted/KnownHurdLimits.mdwn b/unsorted/KnownHurdLimits.mdwn new file mode 100644 index 00000000..51d66b50 --- /dev/null +++ b/unsorted/KnownHurdLimits.mdwn @@ -0,0 +1,20 @@ +* ~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/unsorted/MakeImage.mdwn b/unsorted/MakeImage.mdwn new file mode 100644 index 00000000..95b928c4 --- /dev/null +++ b/unsorted/MakeImage.mdwn @@ -0,0 +1,60 @@ +## <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/unsorted/OskitMach.mdwn b/unsorted/OskitMach.mdwn new file mode 100644 index 00000000..0f7dfa54 --- /dev/null +++ b/unsorted/OskitMach.mdwn @@ -0,0 +1,64 @@ +[[toc ]] + +* [[OskitMachStatusList]]: Status and TODO list (<a href="http://packages.debian.org/gnumach" target="_top">deb status</a>) </li> +* [[OskitMachPatches]]: Bleeding edge patches </li> +* [[OskitPatches]]: Useful patches for the OSKit </li> +* [[BuildingOskitMach]]: How to build your own GNUmach kernel </li> +* [[RemoteDebugOskitMach]]: How to use gdb to remote debug the GNUmach kernel </li> + + +## <a name="About"> About </a> + +OSKit-Mach began as a branch of the GNUMach 1.2 kernel, but since the release of GNU Mach 1.3, OSKit-Mach has been merged as the new GNUMach 2.x mainline. The [[history]] page tells a more interesting story including other operating systems who use Mach in their kernels. + +GNU Mach 2.0 makes use of the drivers provided by [the OSKit](http://www.cs.utah.edu/flux/oskit/) from [the Flux Research Group](http://www.cs.utah.edu/flux/). The OSKit provided a neat driver base where both [[TWiki/FreeBSD]] and Linux (2.2.12) drivers are made available to [Mach](http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html) and thus the Hurd. However, OSKit isn't maintained anymore. + +## <a name="Status"> Status </a> + +The OSKit-Mach version of GNUmach is today (2005) more or less defunct. Nobody +is working on it. Few people ever got it running, and by now there are also +problems building with recent toolchains. Instead, the Hurd developers now +concentrate on completely different microkernels (Coyotos being the current +favourite), as well as on improving the original GNU Mach 1.x codebase. (See +also [[microkernel/mach/gnumach/projects]].) + +The [[mailing lists]], or the [[IRC]] is, like always, the best source of more +current information. + +There also exist other efforts: + +* [OSKit and OSKit-Mach PPC Port](http://es.gnu.org/~jemarch/ppc-oskit/) - Maintained by [Jos� Marchesi](mailto:jemarch AT gnu DOT org) + +* [OSKit-Mach Alpha Port](http://savannah.gnu.org/projects/gnumach-alpha/). - This work has been integrated into the actual OSkit cvs tree at utah. + +## <a name="Building"> Building </a> + +First you need to get the latest OSKit release and, preferrably, the latest CVS version of GNUmach. Take a look at the following [tutorial](http://www.etherhogz.org/doc/oskit-mach.html) to get started. Or the locally kept version, [[BuildingOskitMach]]. + +## <a name="Starting"> Starting </a> + +You start Oskit-Mach almost the same way as the old 1.x version of GNUmach. Using [[GRUB]] an entry can look like this: + + title GNUmach 1.90 (CVS) + root (hd0,1) + kernel /boot/oskit-mach.gz root=device:hd0s2 -- + 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) + +_Remember_ to ensure that there are no trailing spaces after the backslashes on the lines above if you copy-paste this into your menu.list file. + +## <a name="Bugs"> Bugs </a> + +We have bugs, just like any other software product. To get around the more nasty ones you can apply the unofficial patches found on + +* [[OskitMachPatches]] + +## <a name="Debugging"> Debugging </a> + +See Igor Khavkine's, [i\_khavki@alcor.concordiaNOSPAM.ca](mailto:i_khavki@alcor.concordiaNOSPAM.ca), excellent help to [remote debug oskit-mach over a serial line](http://www.etherhogz.org/doc/oskit-boot.txt), or the local [[RemoteDebugOskitMach]]. + diff --git a/unsorted/OskitMachPatches.mdwn b/unsorted/OskitMachPatches.mdwn new file mode 100644 index 00000000..c1e1b068 --- /dev/null +++ b/unsorted/OskitMachPatches.mdwn @@ -0,0 +1,10 @@ +## <a name="GNUmach2_oskit_mach_Patches"> </a> GNUmach2 (oskit-mach) Patches + +The following patches are here for your convenience only. They are probably not accepted yet and should thus only be used by people working on the bleeding edge of ... oh well, use at your own risk. :-) + +**_Daniel Wagner:_** + +* Fix GNUmach2 panic related to buggy softint handling [[ATTACHURLpatch-gnumach_softint-wagidiffgz]] +* Eliminate GNUmach2 assertion that triggers a bug [[ATTACHURLpatch-gnumach_assertion-wagidiffgz]] + +- [[Main/GrantBow]] - 03 Mar 2004 diff --git a/unsorted/OskitMachPatches/patch-gnumach_softclock-wagi.diff.gz b/unsorted/OskitMachPatches/patch-gnumach_softclock-wagi.diff.gz Binary files differnew file mode 100644 index 00000000..3d57b43a --- /dev/null +++ b/unsorted/OskitMachPatches/patch-gnumach_softclock-wagi.diff.gz diff --git a/unsorted/OskitMachPatches/patch-gnumach_softint-wagi.diff.gz b/unsorted/OskitMachPatches/patch-gnumach_softint-wagi.diff.gz Binary files differnew file mode 100644 index 00000000..215706b3 --- /dev/null +++ b/unsorted/OskitMachPatches/patch-gnumach_softint-wagi.diff.gz diff --git a/unsorted/OskitMachStatusList.mdwn b/unsorted/OskitMachStatusList.mdwn new file mode 100644 index 00000000..f62e0686 --- /dev/null +++ b/unsorted/OskitMachStatusList.mdwn @@ -0,0 +1,15 @@ +**NOTE**: As of March 2006, nobody is using or working on OSKit-Mach. Consider below text for historic reference only. + +The only thing that is needed before we will switch to the OSKit-Mach variant of GNU Mach is the missing console: OSKit-Mach has no console in the kernel, so we need an implementation in user space. Marcus Brinkmann is writing a console implementation with a client-server design, Unicode support and lots of other goodies. The server is working, the ncurses client is working (which is useful for testing and results in something similar to screen) and the VGA client is the one missing component. A part of the code for it already exists; it will share some code with the ncurses client via a console-client library. After it works, some testing of OSKit-Mach will also be needed. + +-- [[Main/WolfgangJ]] - 24 Jul 2002 + +There was quite a bit of coding and testing in September as described in several [bug-hurd threads](http://mail.gnu.org/pipermail/bug-hurd/2002-September/thread.html). + +Unfortunately this work still needs to be ported from GNUmach 1.3 (commonly used today) to GNUmach 2.0 (a.k.a OSKit-Mach). + +-- [[Main/GrantBow]] - 07 Oct 2002 + +There should now exist a working console-client for [[OskitMach]] as well. + +-- [[Main/JoachimNilsson]] - 28 Nov 2002 diff --git a/unsorted/OskitMachTest.mdwn b/unsorted/OskitMachTest.mdwn new file mode 100644 index 00000000..24cf9b6f --- /dev/null +++ b/unsorted/OskitMachTest.mdwn @@ -0,0 +1,24 @@ +# <a name="Proposal_to_change_configure_scr"> </a> Proposal to change configure script for GNUmach 2.0 + +Here are my proposed changes to the GNU Mach 2.0 configure script, configure.in. + +## <a name="_with_oskit_"> --with-oskit\* </a> + +The first one is basically what Daniel Wagner once suggested. A way for builders to better provide the path of the OSKit, e.g., `--with-oskit=/my/bisarre/path`. + +This patch also contains a minor "fix": detect presence of the OSKit before trying to check for a correct version number of the same. It also updates the required version number to be, at the very least, the 2001 release. This because we need the softirq changes introduced therein. + +With the patch a configure line like below is entirely possible on a Debian system with the i386-gnu-mig deb package installed. + + crash@isengard:~/Projects/build/oskit-mach$ ../../oskit-mach/configure --host=i386-gnu \ + --prefix=/usr/hurd --with-oskit=/usr/hurd + +## <a name="Drivers_move_Makefile_gt_configu"> Drivers move Makefile ==> configure </a> + +The second patch set, currently worked on, is to move the requested drivers from the Makefile to the configure script in the form of `--enable-freebsd-DRIVER` and `--enable-linux-DRIVER`. + +This will remove the current `make kernel-ide-ethernet_tulip` combo and introduce a more common `make kernel` scheme. + +-- [[Main/JoachimNilsson]] - 21 Jun 2003 + +* [[ATTACHURLgnumach2-configure-patch1diff]]: Adds --with-oskit and "fixes" a bug. diff --git a/unsorted/OskitMachTest/gnumach2-configure-patch1.diff b/unsorted/OskitMachTest/gnumach2-configure-patch1.diff new file mode 100644 index 00000000..cb8472ad --- /dev/null +++ b/unsorted/OskitMachTest/gnumach2-configure-patch1.diff @@ -0,0 +1,79 @@ +Index: configure.in +=================================================================== +RCS file: /cvsroot/hurd/gnumach/configure.in,v +retrieving revision 1.17 +diff -u -r1.17 configure.in +--- configure.in 6 Mar 2003 03:57:01 -0000 1.17 ++++ configure.in 21 Jun 2003 17:04:36 -0000 +@@ -61,6 +61,34 @@ + [test "x$enableval" = xno || + AC_DEFINE(FPE, 1, [Enable software FPU emulator for machines with no FPU.])]) + ++# Sometimes people don't use traditional places to put the OSKit in. ++# To still be nice we give these people a way of telling us where ++# they have put it. ++AC_ARG_WITH(oskit-includes, ++[ --with-oskit-includes Specify location of oskit headers],[ ++CFLAGS="$CFLAGS -I$withval" ++CPPFLAGS="$CPPFLAGS -I$withval" ++ASFLGAS="$ASFLAGS -I$withval" ++]) ++ ++# These two will overwrite any previous setting of OSKIT_LIBDIR, ++# but since the user has told us to do so we obey. ++AC_ARG_WITH(oskit-libs, ++[ --with-oskit-libs Specify location of oskit libs],[ ++LDFLAGS="$LDFLAGS -L$withval" ++OSKIT_LIBDIR="$withval/oskit" ++]) ++ ++AC_ARG_WITH(oskit, ++[ --with-oskit Specify prefix for oskit files],[ ++CFLAGS="$CFLAGS -I$withval/include" ++CPPFLAGS="$CPPFLAGS -I$withval/include" ++ASFLAGS="$ASFLAGS -I$withval/include" ++LDFLAGS="$LDFALGS -I$withval/lib" ++OSKIT_LIBDIR="$withval/lib/oskit" ++]) ++AC_SUBST(ASFLAGS) ++ + # + # Programs + # +@@ -76,8 +104,20 @@ + + AC_CHECK_PROG(MBCHK, mbchk, mbchk, :) + ++# Check for Flux Group's OSKit ++# If not in standard paths to CC the user needs to ++# supply a --with-oskit* or we need to evaluate the ++# OSKIT_LIBDIR variable *before* we check for the ++# correct version below. ++AC_CHECK_HEADERS(oskit/version.h,, ++ [AC_MSG_ERROR([cannot find oskit/version.h, where are the OSKit includes?])]) ++ + # Check oskit version. +-NEEDED_OSKIT_VERSION=19991121 ++# 19991121 was the old version we relied on, but since ++# the addition of softirqs to both the OSKit, in version ++# 20010214, and handling therof by Daniel Wagner in ++# GNU Mach, we now rely on 20010214. ++NEEDED_OSKIT_VERSION=20010214 + AC_REQUIRE_CPP() + AC_MSG_CHECKING([for oskit version >= ${NEEDED_OSKIT_VERSION}]) + AC_CACHE_VAL(gnumach_cv_oskit_version_${NEEDED_OSKIT_VERSION}, [ +Index: Makefile.in +=================================================================== +RCS file: /cvsroot/hurd/gnumach/Makefile.in,v +retrieving revision 1.38 +diff -u -r1.38 Makefile.in +--- Makefile.in 6 Mar 2003 04:06:25 -0000 1.38 ++++ Makefile.in 21 Jun 2003 17:04:36 -0000 +@@ -47,6 +47,7 @@ + + CFLAGS = @CFLAGS@ + LDFLAGS = @LDFLAGS@ ++ASFLAGS = @ASFLAGS@ + SMP_LIBS = @SMP_LIBS@ + + all: diff --git a/unsorted/OskitPatches.mdwn b/unsorted/OskitPatches.mdwn new file mode 100644 index 00000000..b0cb646a --- /dev/null +++ b/unsorted/OskitPatches.mdwn @@ -0,0 +1,63 @@ +## <a name="Flux_OS_Toolkit"> Flux OS Toolkit </a> + +[The OSKit](http://www.cs.utah.edu/flux/oskit/) is a framework and a set of libraries for building and extending operating systems developed by [the Flux Project](http://www.cs.utah.edu/flux/). + +**_Note:_** All of these patches, and more, are now avilable directly through the [Savannah OSKit](http://savannah.gnu.org/projects/oskit/) project. This is also the recommended source today of the OSKit, especially if you want to use it with GNUmach2. + +## <a name="OSKit_2001_02_14"> </a> OSKit 2001-02-14 + +These are extra patches for people who, for some reason, use the 2001 version of the OSKit. + +* Patrick Tullman [[ATTACHURLpatch-oskit-097-tullmandiffgz]] + +* This patch is necessary to get the `--enable-indirect-osenv` flag to the configure script. The flag is enabled by default for OSKit 2002-03-17 and later. Kevin Kraemer [[ATTACHURLpatch-oskit-097-kkraemerdiffgz]] + +## <a name="OSKit_2002_03_17"> </a> OSKit 2002-03-17 + +**_Critical Patches:_** + +Here are the patches critical to get [[OskitMach]] running. These are absolutely essential to get a working Mach kernel. Many of these patches are included with the Debian distribution of the OSKit. + +* Igor Khavkine [[ATTACHURLpatch-oskit-097-i_khavkidiffgz]] + +* Famous removal of only one line in sbrk-hack.c - needed for people with newer libc's (e.g. Debian Woody) [[ATTACHURLpatch-oskit-097-sbrk_hackdiffgz]] + +* Jonathan S. Arney - Important patch to diskpart library. Without it you cannot activate swap in oskit-mach. [[ATTACHURLpatch-oskit-097-jon_arneydiffgz]] + +* Richard Kreuter's [patches](http://anduril.rutgers.edu/richard/oskit/) ([announcement](ftp://flux.cs.utah.edu/flux/oskit/mail/html/oskit-users/msg01560.html)). Needed when your Hurd partition is embedded inside an extended partition created by Windows. The patches also include: + * support for extended partitions with lba + * support for 16-entry BSD disklabels, as are supported by recent Net- and [[TWiki/FreeBSD]] kernels. + * support for the recognition of NetBSD's slice id (169) in the BIOS partition table. + +**_Cosmetic Patches:_** + +* Kevin Kraemer - Removes annoying debug output from eepro.c driver. [[ATTACHURLpatch-oskit-097-eeprodiffgz]] + +* Ognyan Kulev - Reduce warnings when compiling with GCC 3.2. <http://debian.fmi.uni-sofia.bg/~ogi/hurd/oskit/> + +**_New Functionality:_** + +* [Roland McGrath](http://www.frob.com/) - [i8042 support](http://mail.gnu.org/archive/html/bug-hurd/2002-10/msg00146.html). Thread continues at <http://mail.gnu.org/archive/html/bug-hurd/2002-11/msg00110.html> + +* Daniel Wagner - PCMCIA support. <http://www.vis.ethz.ch/~wagi/hurd/oskit/> ([instructions](http://www.vis.ethz.ch/~wagi/hurd/oskit/readme.txt)) + +* [[Main/JoachimNilsson]] - See [[Hurd/JoachimNilssonHurdPage]] + * Upgrade to Linux 2.2.22 drivers + * More Linux NIC drivers + * **_Soon:_** ATA-100 patches (α-release available) + +* [[Main/DerekDavies]] - [OSKit Entropy patch](http://www.ddavies.net/oskit-entropy/). A Linux entropy driver, see [bug-hurd posting](http://mail.gnu.org/archive/html/bug-hurd/2003-01/msg00000.html) for more information. + +---- + +## <a name="Comments"> Comments </a> + +Divided this growing topic into sections. <br /> -- [[Main/JoachimNilsson]] 19 Nov 2002 + +Updates by [[Main/OgnyanKulev]] -- 19 Nov 2002 + +All small patches are as attachments now. -- [[Main/OgnyanKulev]] - 16 Dec 2002 + +Minor updates, also, added Davids Entropy patch -- [[Main/JoachimNilsson]] - 03 Jan 2003 + +Fixed some gnu mail links -- [[Main/MattGrant]] - 26 Feb 2003 diff --git a/unsorted/OskitPatches/patch-oskit-0.97-eepro.diff.gz b/unsorted/OskitPatches/patch-oskit-0.97-eepro.diff.gz Binary files differnew file mode 100644 index 00000000..80d94f3f --- /dev/null +++ b/unsorted/OskitPatches/patch-oskit-0.97-eepro.diff.gz diff --git a/unsorted/OskitPatches/patch-oskit-0.97-i_khavki.diff.gz b/unsorted/OskitPatches/patch-oskit-0.97-i_khavki.diff.gz Binary files differnew file mode 100644 index 00000000..2e322de9 --- /dev/null +++ b/unsorted/OskitPatches/patch-oskit-0.97-i_khavki.diff.gz diff --git a/unsorted/OskitPatches/patch-oskit-0.97-jon_arney.diff.gz b/unsorted/OskitPatches/patch-oskit-0.97-jon_arney.diff.gz Binary files differnew file mode 100644 index 00000000..aaf1475a --- /dev/null +++ b/unsorted/OskitPatches/patch-oskit-0.97-jon_arney.diff.gz diff --git a/unsorted/OskitPatches/patch-oskit-0.97-kkraemer.diff.gz b/unsorted/OskitPatches/patch-oskit-0.97-kkraemer.diff.gz Binary files differnew file mode 100644 index 00000000..7d75a34e --- /dev/null +++ b/unsorted/OskitPatches/patch-oskit-0.97-kkraemer.diff.gz diff --git a/unsorted/OskitPatches/patch-oskit-0.97-sbrk_hack.diff.gz b/unsorted/OskitPatches/patch-oskit-0.97-sbrk_hack.diff.gz Binary files differnew file mode 100644 index 00000000..2fef6632 --- /dev/null +++ b/unsorted/OskitPatches/patch-oskit-0.97-sbrk_hack.diff.gz diff --git a/unsorted/PortToL4.mdwn b/unsorted/PortToL4.mdwn new file mode 100644 index 00000000..fb7f0004 --- /dev/null +++ b/unsorted/PortToL4.mdwn @@ -0,0 +1,42 @@ +**_The Hurd-L4 port has an [official page](http://www.gnu.org/software/hurd/hurd-l4.html) with more up-to-date information_** -- [[Main/OgnyanKulev]] - 05 Feb 2005 + +A group of one being led by Neal H. Walfield is working on porting the Hurd to the pistachio version of the L4 microkernel. This second generation microkernel provides a significantly different API than the one offered by the Mach microkernel, a first generation microkernel. One of the primary goals of the project, outside of porting the Hurd to L4, is to reevaluate the current Hurd abstractions and consider how they can be modified to be more general. + +I have no web page describing my efforts. There is a mailing list[1]. + +[1] <http://mail.gnu.org/mailman/listinfo/l4-hurd> + +-- Neal Walfield, 18 Sep 2002 + +Neal noted [1] that there are licensing issues being worked out so no code is yet released. His work was performed in the summer of 2002 at Karlsruhe. + +[1] <http://mail.gnu.org/pipermail/l4-hurd/2002-September/000673.html> + +-- [[Main/GrantBow]] - 21 Sep 2002 + +There are several important pages that are of interest for the L4 & hurd communities. + +* Main L4 home page - <http://www.l4ka.org/> +* Hurd on L4 - <http://www.freesoftware.fsf.org/l4hurd/> +* Hurd on L4 - <http://savannah.gnu.org/projects/l4hurd/> +* <http://www.informatik.uni-freiburg.de/~ganter/comp/l4-hurd.html> + +-- [[Main/GrantBow]] - 22 May 2002 + +<http://os.inf.tu-dresden.de/fiasco/> + +-- [[Main/GrantBow]] - 24 Oct 2002 + +There was [discussion in October 2002](http://mail.gnu.org/pipermail/l4-hurd/2002-October/000727.html) about the differences between Hurd on Mach and Hurd on L4 with some interesting URLs. In the thread Okuji [responds](http://mail.gnu.org/pipermail/l4-hurd/2002-October/000728.html) confirming his document is two years old and outdated by the directions that Neal is taking in furthering this effort. The URLs in that email might be helpful to those learning more about Hurd and L4 ideas that were considered yet abandoned. + +-- [[Main/GrantBow]] - 04 Jan 2003 + +A "Porting GNU Hurd to L4" website: + +* <http://www.gnu.org/software/hurd/l4-hurd.html> + +-- [[Main/SebastianGabriel]] - 29 Sep 2003 + +The only valid L4-Hurd link on <http://hurd.gnu.org> is <http://www.freesoftware.fsf.org/l4hurd/> + +-- [[Main/JoachimNilsson]] - 29 Sep 2003 diff --git a/unsorted/PosixSemaphores.mdwn b/unsorted/PosixSemaphores.mdwn new file mode 100644 index 00000000..be5586bd --- /dev/null +++ b/unsorted/PosixSemaphores.mdwn @@ -0,0 +1,13 @@ +Posix Semaphores are an optional part of pthreads. There is currently an implementation for Neal Walfields libpthread, which is included in the hurd sources tree. This implemention uses a mutex and a condition variable. The implmentation is in the mailing list archives at [ [http://mail.gnu.org/archive/html/bug-hurd/2002-11/msg00316.html](http://mail.gnu.org/archive/html/bug-hurd/2002-11/msg00316.html</a>)](http://mail.gnu.org/archive/html/bug-hurd/2002-11/msg00316.html). + +Neal does not want to use this implementation because it adds the overhead of a condition variable. The condition variable imposes the following penalties: 1 extra spinlock/unlock 1 an extra call to a pthread cleanup function. + +The first penalty has virtually no cost because we know that we will never spin trying to get this spin lock because we already have a mutex lock outside the condition variable serializing accesses to the condition variable. + +The second may be more of a performance penalty, but it saves reimplmenting the code in pt-cond-signal.c pt-cond-wait.c, and pthread-timedwait.c . + +-- [[Main/JamesAMorrison]] - 19 Jan 2003 + +Moved page to Mach web. + +-- [[Main/GrantBow]] - 21 Jan 2003 diff --git a/unsorted/PosixThreads.mdwn b/unsorted/PosixThreads.mdwn new file mode 100644 index 00000000..f031b56f --- /dev/null +++ b/unsorted/PosixThreads.mdwn @@ -0,0 +1,21 @@ +## <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/unsorted/RemoteDebugOskitMach.mdwn b/unsorted/RemoteDebugOskitMach.mdwn new file mode 100644 index 00000000..bb5b9006 --- /dev/null +++ b/unsorted/RemoteDebugOskitMach.mdwn @@ -0,0 +1,191 @@ +# <a name="Remote_Debug_GNUmach"> </a> Remote Debug GNUmach + +# <a name="Booting_oskit_mach_with_a_serial"> Booting oskit-mach with a serial console </a> + +**Original Author:** Igor Khavkine **Last Updated:** Mon Jul 30 17:58:55 EDT 2001 + +---- + +## <a name="Introduction"> Introduction </a> + +This document now has a wider audience. The OSKit branch of GNUmach has been merged with the main branch, HEAD. Please note that the instructions here are not tested with the latest stable release, GNUmach 1.3. + +Here you will find out how to access, build, bootstrap and debug the latest CVS version of the GNUmach kernel (the OSKit based 2.x series of GNUmach). + +## <a name="Why_"> Why? </a> + +Because it's covenient. If you have a second computer, but not a second monitor or keyboard, you can connect your second box to your main one using null-modem serial cables. Once that is done, you can configure the GRUB bootloader to use the serial port when starting up and boot [GNUmach](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/gnumach/?only_with_tag=HEAD) (a.k.a [[OskitMach]]) without having to switch monitor cables or type blindly at a second keyboard. + +Also, [[OskitMach]] supports the GDB remote debugging protocol over a serial line. This way it is now possible to debug the running kernel relatively unobtrusively, because the debugger will not be running on the same machine. + +## <a name="How_"> How? </a> + +First you need some equipment: two computers, each one should have at least one (two is preferable) free serial port(s) and one (or two) null-modem serial cable(s). + +While developing the kernel it might also be a good idea to use grub to get the Mach kernel via tftp from the same server you do the remote debugging and building on. This way you don't need to reboot the target to copy or build a new kernel on its hard drive. See the [[AdvancedGrubUsage]] document for more information on this. + +Last you need to follow the instructions given below. + +1. The first step is to the get source for oskit-mach and OSKit. + Currently the [St. Patrick's day release](ftp://flux.cs.utah.edu/flux/oskit/oskit-20020317.tar.gz), 2002-03-17, of the OSKit is the latest. Get the sources and compile them yourself, compile OSKit with debugging symbols if that is what you need. If you encounter errors while compiling, try removing anything that has to do with `unix` or `examples` from the file `modules.x86.pc`. + Then you need to get the sources for oskit-mach version of the GNU Mach kernel, available from the GNU CVS repository[3]. Previously you needed to check out the `gnumach` module with the flag `-roskit-branch`. Today the 2.0 branch of GNU Mach resides on the HEAD branch, so you don't have to provide any specifc branch information to get the correct version. Use the update command with `-rHEAD` to move from the oskit-branch to the HEAD branch. + Again now is your chance to compile oskit-mach with debugging symbols. + (More detailed instructions can be found in [[BuildingOskitMach]].) +2. Now you need to setup GRUB on your second box so it accepts input from a serial port while booting up. This is simple to do by adding the following lines to your `menu.lst` file, before any of the menu entries: + serial --unit=0 --speed=9600 + terminal serial + Unit refers to the serial port you wish to use (0 is COM1), and speed is optional. For more information see the GRUB documentation. +3. You need to make sure that your main box has the necessary utilities to communicate with your second box over a serial line. You can use a terminal emulator like _minicom_(1), _seyon_(1), _tip_(1), or a simple serial communication program _cu_(1) which comes with the GNU uucp package. Or if you feel really lazy you can use this hack: + stty raw + cat > /dev/ttyS1 # in one terminal window + cat /dev/ttyS1 # in a second terminal window +4. Now you have to make sure your computer has an at least partially setup Hurd partition. You can find instructions how to do that here [4,5]. Copy the oskit-mach kernel binary compressed with gzip to `/boot/oskit-mach.gz` and use the following command line[1] to boot it from GRUB: + kernel /boot/oskit-mach.gz -h CONS_COM=1 -d GDB_COM=2 BAUD=9600 root=device:hd0s2 -- +<dl> + <p> + </p> + <dt><tt>-h</tt></dt> + <dd>use serial console:<ul> + <li><tt>CONS_COM=1</tt> (COM1)</li> + <li><tt>CONS_COM=2</tt> (COM2)</li> + <li><tt>CONS_COM=3</tt> (COM3)</li> + <li><tt>CONS_COM=4</tt> (COM4)</li> + </ul> + </dd> + <p> + </p> + <dt><tt>-d</tt></dt> + <dd>enable serial port debugging, optional</dd> + <p> + </p> + <dt><tt>GDB_COM=2</tt></dt> + <dd>use a different port other then <tt>CONS_COM</tt>, default is to use the same as <tt>CONS_COM</tt></dd> + <p> + </p> + <dt><tt>BAUD=9600</tt></dt> + <dd>use this baud rate, optional, default is 9600</dd> + <p> + </p> + <dt><tt>--</tt></dt> + <dd>delimits the arguments passed to the oskit from those to the kernel</dd> + <p> + </p> + <dt><tt>root=device:hd0s2</tt></dt> + <dd>tell gnumach which is your root partition, in this case it's <tt>hd0s2</tt></dd> + <p> + </p> +</dl> +5. Now I suggest that you familiarize yourself with [the GDB documentation](http://vmlinux.org/doc/gdb/), especially on remote debugging. If you pass the `-d` boot flag to oskit-mach, then it will automatically insert a breakpoint at main() and wait for further instructions from GDB over the serial line. Here's a simple example of how to attach GDB to a remote target over a serial line: + $ script # record the debugging session + $ gdb # assume you're in the oskit-mach build dir. + (gdb) file kernel + (gdb) set remotebaud 9600 + (gdb) target remote /dev/ttyS1 + [...gdb attached, blah, blah, blah...] + (gdb) break panic + (gdb) continue + (gdb) continue + [...] + (gdb) quit + $ ^D # finish recording the session + This way you can catch any kernel panics (except for the really nasty ones and try to debug them). + I've noticed that once Mach is running under GDB, pressing C-c from GDB will not suspend it, this makes it hard to set additional breakpoints after the kernel is running. So optionally you can modify Mach to add a dummy system call that will be used only for setting breakpoints, and make a small program that calls it, you can use it whenever you want to pause the kernel and examine something under GDB. An example of how to do this is attached in Appendix A. + +TODO: OSKit overrides interrupts 1 and 3 in kern/x86/gate\_init.c:gate\_init. A patch that skips src->vector `= 1 || =` 3 have to be prepared and attached to this page. More robust solution is to make OSKit/GNUMach recognize when it's debugged and change vector table accordingly. + +Now you're all set to do some serious kernel hacking. I hope more people will take advantage of this opportunity. + +## <a name="Appendix_A"> Appendix A </a> + +TODO: Move inline diff and code into 2 attached files: one for patching GNU Mach, and one for gdb-break.c. + +Apply this patch to oskit-mach to add a dummy system call: + + --- gdb-stub.diff --- + Index: kern/syscall_sw.c + =================================================================== + RCS file: /cvs/gnumach/kern/syscall_sw.c,v + retrieving revision 1.1.1.1.2.2 + diff -u -r1.1.1.1.2.2 syscall_sw.c + --- kern/syscall_sw.c 2001/04/05 06:52:47 1.1.1.1.2.2 + +++ kern/syscall_sw.c 2001/07/30 21:45:14 + @@ -98,6 +98,8 @@ + extern kern_return_t syscall_fipc_recv(); + #endif /* FIPC */ + + +/*XXX*/extern kern_return_t gdb_break_stub (); + + + mach_trap_t mach_trap_table[] = { + MACH_TRAP(kern_invalid, 0), /* 0 */ /* Unix */ + MACH_TRAP(kern_invalid, 0), /* 1 */ /* Unix */ + @@ -283,7 +285,14 @@ + MACH_TRAP(kern_invalid, 0), /* 126 */ + MACH_TRAP(kern_invalid, 0), /* 127 */ + MACH_TRAP(kern_invalid, 0), /* 128 */ + - MACH_TRAP(kern_invalid, 0), /* 129 */ + + MACH_TRAP(gdb_break_stub, 1), /* 129 */ + }; + + +volatile int gdb_break_stub (void *addr) /*XXX*/ + +{ + + void *dummy; + + dummy = addr; + + return 0; + +} + + + int mach_trap_count = (sizeof(mach_trap_table) / sizeof(mach_trap_table[0])); + --- end --- + +When starting an oskit-mach debug session with GDB set a break point at `gdb_break_stub`. Then use this program to invoke the system call when desired: + + --- gdb-break.c --- + /* Compile with: gcc -o gdb-break gdb-break.c gdb-break-stub.S */ + + #include <mach.h> + + #include <stdio.h> + #include <string.h> + + extern int gdb_break_stub (void *addr); + + int main () + { + kern_return_t err; + + err = gdb_break_stub (&main); + printf ("result from syscall: %s\n", strerror(err)); + + return 0; + } + --- end --- + --- gdb-break-stub.S --- + #include <mach/syscall_sw.h> + + kernel_trap(gdb_break_stub,-129,1) + --- end --- + +## <a name="References"> References </a> + +* [1] OSKit documentation, section 1.6.3. +* [2] <http://www.cs.utah.edu/flux/oskit/> +* [3] <http://www.gnu.org/software/devel.html> +* [4] <http://www.walfield.org/papers/hurd-installation-guide/> +* [5] <http://www.pick.ucam.org/~mcv21/hurd.html> + + vim:ts=8:tw=72:sw=8: + +---- + +This HowTo is (C) Copyright 2001 Igor Khavkine. + +Minor additions and grammatical fixups by [[JoachimNilsson]]. + +-- [[Main/JoachimNilsson]] - 14 May 2002 + +Additions on booting GNU Mach via TFTP + +-- [[Main/JoachimNilsson]] - 13 Jun 2002 + +Text formatting. + +-- [[Main/OgnyanKulev]] - 16 Dec 2002 diff --git a/unsorted/RequirementsForLiveCD.mdwn b/unsorted/RequirementsForLiveCD.mdwn new file mode 100644 index 00000000..03bd3884 --- /dev/null +++ b/unsorted/RequirementsForLiveCD.mdwn @@ -0,0 +1,54 @@ +# <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/unsorted/SavannahProjects.mdwn b/unsorted/SavannahProjects.mdwn new file mode 100644 index 00000000..b1111ed5 --- /dev/null +++ b/unsorted/SavannahProjects.mdwn @@ -0,0 +1,14 @@ +[Savannah](http://savannah.gnu.org) was created with a forked version of the software that runs the [SourceForge](http://www.sf.net) site. It is the official [GNU project](http://www.gnu.org/gnu/thegnuproject.html) hosting facility of the [FSF](http://www.fsf.org). Many GNU projects are migrating to use it. Here is a list of projects hosted on Savannah related to the Hurd. + +* [Hurd](http://savannah.gnu.org/projects/hurd) - main project CVS repository +* [HurdExtras](http://savannah.gnu.org/projects/hurdextras) - related projects +* [wwwHurd](http://savannah.gnu.org/projects/wwwhurd) - webmasters for <http://hurd.gnu.org> +* [L4Hurd](http://savannah.gnu.org/projects/l4hurd) - OSkit/L4 unofficial porting project +* [pthreads](http://savannah.gnu.org/projects/pthreads) - porting of thread library for glibc +* [hurd-iso](http://savannah.gnu.org/projects/hurd-iso) - CD-ROM images +* [gnumach-alpha](http://savannah.gnu.org/projects/gnumach-alpha) - port for Alpha processor machines +* [hurd-alpha](http://savannah.gnu.org/projects/hurd-alpha) - provide a working implementation for the Alpha architecture +* [[Hurd/THUG]] - Toronto Area GNU/Hurd User Group and their [documentation page](http://www.freesoftware.fsf.org/thug/docs.html) +* [francine](http://savannah.gnu.org/projects/francine) - "secure, colourful and themeable login program" + +-- [[Main/GrantBow]] - 13 May 2002 diff --git a/unsorted/SecurityForUser.mdwn b/unsorted/SecurityForUser.mdwn new file mode 100644 index 00000000..739cc1ca --- /dev/null +++ b/unsorted/SecurityForUser.mdwn @@ -0,0 +1,7 @@ +FROM: <http://lists.gnu.org/archive/html/l4-hurd/2005-11/msg00242.html> + +The user must be sure that his actions have predictable consequences, even in the presence of actively hostile influence. If there is a component in the system that the user can not control, the user must be able to contain its impact, either by simply ignoring it (shielding), or by imposing restrictions (confinement). + +_Security means that the user controls what can happen **to** his resources._ + +-- [[TomBachmann]] - 29 Apr 2006 diff --git a/unsorted/SeenHurd.mdwn b/unsorted/SeenHurd.mdwn new file mode 100644 index 00000000..92be4224 --- /dev/null +++ b/unsorted/SeenHurd.mdwn @@ -0,0 +1,64 @@ +# <a name="Hurd_Sightings"> Hurd Sightings </a> + +## <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>[[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/unsorted/SeenHurd/lmf10_1999.jpg b/unsorted/SeenHurd/lmf10_1999.jpg Binary files differnew file mode 100644 index 00000000..85332658 --- /dev/null +++ b/unsorted/SeenHurd/lmf10_1999.jpg diff --git a/unsorted/SerialConsole.mdwn b/unsorted/SerialConsole.mdwn new file mode 100644 index 00000000..e4e5324d --- /dev/null +++ b/unsorted/SerialConsole.mdwn @@ -0,0 +1,28 @@ +# <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/unsorted/Shopping.mdwn b/unsorted/Shopping.mdwn new file mode 100644 index 00000000..d9806e93 --- /dev/null +++ b/unsorted/Shopping.mdwn @@ -0,0 +1,13 @@ +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/unsorted/TestSuites.mdwn b/unsorted/TestSuites.mdwn new file mode 100644 index 00000000..e268ba8d --- /dev/null +++ b/unsorted/TestSuites.mdwn @@ -0,0 +1,12 @@ +Test suites exist to validate the compliance of software implementations with specific standards. This page is to act as a repository for information about the standards themselves, the test suites that validate software that complies with the standards as well as results & feedback from people who have run these suites. + +* IEEE [Posix](http://standards.ieee.org/regauth/posix/index.html) ([Open POSIX Test Suite](http://posixtest.sourceforge.net/)) +* Free Standards Group Linux Standard Base ([LSB](http://www.linuxbase.org/)) +* File Hierarchy Standard ([FHS](http://www.pathname.com/fhs/)) +* [X Desktop Group](http://www.freedesktop.org) +* The Open Group [Single UNIX specification, version 3](http://www.unix-systems.org/version3/online.html) +* The Open Group [ Unix 98](http://www.opengroup.org/public/prods/xxm0.htm) +* The Open Group [Testing Services](http://www.opengroup.org/consortia_services/testing.htm) (with [downloads](http://www.opengroup.org/testing/downloads.html)) +* [Perl](http://www.perl.org) + +-- [[Main/NagromNamreh]] - 24 Jan 2004 Added Posix test suite results diff --git a/unsorted/TestWebMenu/lmf09_1999.jpg b/unsorted/TestWebMenu/lmf09_1999.jpg Binary files differnew file mode 100644 index 00000000..85332658 --- /dev/null +++ b/unsorted/TestWebMenu/lmf09_1999.jpg diff --git a/unsorted/VmWare.mdwn b/unsorted/VmWare.mdwn new file mode 100644 index 00000000..6f4c3cba --- /dev/null +++ b/unsorted/VmWare.mdwn @@ -0,0 +1,22 @@ +## <a name="Why_not_vmware_"> Why not vmware? </a> + +**_Q:_** GNU won't work in [[VmWare]], it hangs when reaching the Hurd bootstrap. + +**_A:_** Note that Vmware is not supported software to run the Hurd on it. Reasons include: + +1. Vmware is not [free software](http://www.gnu.org/philosophy/free-sw.html), which is against our philosophy. +2. Obtaining a licensed copy to debug it costs (at least) $300. (However, the player is "free" as in beer. This doesn't lessen the other concerns, however). +3. Vmware's sources and specification are not publicly available, which makes debugging tasks really painful. +4. GNU is not in [Vmware's official supported operating systems page](http://www.vmware.com/support/ws3/doc/ws32_guestos2.html#1034043). + +We recommend to use [free](http://www.gnu.org/philosophy/free-sw.html) alternatives, like the [[BochsEmulator]]. Also check QEMU: [[HurdOnQEMU]]. + +-- [[Main/RobertMillan]] - 23 Jul 2002 + +I have been able to install Debian/Hurd K2 on [[VmWare]] ... + +* [[VmWare]] 3.02 complains a lot about a missing **console** and shows a lot of errors + * They can be solved by manually creating the devices +* I have tried **Bochs 2.0**, Debian/Hurd K2 installs with no problems at all. +* [[VmWare]] 4.0.0 works fine ... just follow the Hurd install instructions.-- [[TWiki/AndreaSterbini]] - 22 Apr 2003 +* Here using "free" (as in beer) vmware-player 1.0.2.29634 on Gentoo. Hurd K14 installs and runs smoothly, but seems to hang on shutdown. -- [[Main/DeviceRandom]] - 20 Jan 2007 diff --git a/unsorted/WebHome/hurd_sm_mf.png b/unsorted/WebHome/hurd_sm_mf.png Binary files differnew file mode 100644 index 00000000..26bb78b5 --- /dev/null +++ b/unsorted/WebHome/hurd_sm_mf.png diff --git a/unsorted/XattrHurd.mdwn b/unsorted/XattrHurd.mdwn new file mode 100644 index 00000000..d3856c1b --- /dev/null +++ b/unsorted/XattrHurd.mdwn @@ -0,0 +1,5 @@ +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/unsorted/Xfree86.mdwn b/unsorted/Xfree86.mdwn new file mode 100644 index 00000000..6fffff81 --- /dev/null +++ b/unsorted/Xfree86.mdwn @@ -0,0 +1,97 @@ +# <a name="Setup_XFree86_in_GNU"> </a> Setup XFree86 in GNU + +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="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/unsorted/byte-letter.txt b/unsorted/byte-letter.txt new file mode 100644 index 00000000..20fa61a0 --- /dev/null +++ b/unsorted/byte-letter.txt @@ -0,0 +1,25 @@ +Byte magazine published this in the `Letters' section +of the March '96 issue: + + Where's the GNU Hurd? + + The November 1995 articles "NT Roars + on the 604" and "CPU scorecards" were + quite welcome. But the Special Report on + operating systems did not mention GNU + Hurd. This OS is based on the Mach mi- + crokernel, and thus it has been essentially + ported to a wide variety of hardware plat- + forms--nearly as many as NetBSD. To + learn more about the Hurd, and especially + about its binary portability, visit http:// + www.cs.pdx.edu/~trent/gnu/hurd/. Con- + trary to what you say in the text box "Op- + erating-System Research: Dim or Bright + Future?" (page 116), microkernel tech- + nology has not been exploited to its max- + imum capability, as the Hurd philosophy + demonstrates. + + Todd Hutchinson + jasper@terra.3rdplanet.com diff --git a/unsorted/changelogs.html b/unsorted/changelogs.html new file mode 100644 index 00000000..299ef281 --- /dev/null +++ b/unsorted/changelogs.html @@ -0,0 +1,107 @@ +[[meta copyright="Copyright © 2001, 2002, 2006, 2008 Free Software Foundation, +Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU Free Documentation License|/fdl]]."]]"""]] + +<H3>ChangeLogs</H3> +<P> +As the Hurd sources are kept and maintained in a CVS repository that +is accessible via the web, you can follow the progress of development +closely. We maintain ChangeLogs, in which we record every change to +the source code at the time it is committed. The links below lead you +directly to the ChangeLog files in the Hurd and its associated packages. +<P> +If you want to follow the development of the Hurd closely, we suggest +that you subscribe to the <A +HREF="http://lists.gnu.org/mailman/listinfo/commit-hurd/">commit-hurd mailing +list</A> to which notifications about changes to the Hurd source code +are sent. The <A HREF="/software/hurd/download.html">complete source +code</A> is also available, of course. +</P> +<H4>The Hurd</H4> +<P> +The Hurd source tree contains many independent parts, and therefore +has one ChangeLog for each directory. There is one <A +HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/ChangeLog">ChangeLog +in the main directory</A>, and one in each of the following +subdirectories: +</P> +<UL> +<LI>Translators and other servers: +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/auth/ChangeLog">auth</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/exec/ChangeLog">exec</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/ext2fs/ChangeLog">ext2fs</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/ftpfs/ChangeLog">ftpfs</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/hostmux/ChangeLog">hostmux</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/init/ChangeLog">init</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/isofs/ChangeLog">isofs</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/mach-defpager/ChangeLog">mach-defpager</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/nfs/ChangeLog">nfs</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/nfsd/ChangeLog">nfsd</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/pfinet/ChangeLog">pfinet</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/pflocal/ChangeLog">pflocal</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/proc/ChangeLog">proc</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/storeio/ChangeLog">storeio</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/term/ChangeLog">term</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/tmpfs/ChangeLog">tmpfs</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/trans/ChangeLog">trans</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/ufs/ChangeLog">ufs</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/usermux/ChangeLog">usermux</A> +<LI>Utilities: +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/benchmarks/ChangeLog">benchmarks</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/boot/ChangeLog">boot</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/bsdfsck/ChangeLog">bsdfsck</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/fstests/ChangeLog">fstests</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/sutils/ChangeLog">sutils</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/ufs-fsck/ChangeLog">ufs-fsck</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/ufs-utils/ChangeLog">ufs-utils</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/utils/ChangeLog">utils</A> +<LI>Boot code and system programs: +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/login/ChangeLog">login</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/config/ChangeLog">config</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/daemons/ChangeLog">daemons</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/serverboot/ChangeLog">serverboot</A> +<LI>Release scripts and packaging: +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/debian/ChangeLog">debian</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/release/ChangeLog">release</A> +<LI>Documentation: +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/doc/ChangeLog">doc</A> +<LI>Interface definitions: +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/hurd/ChangeLog">hurd</A> +<LI>Support libraries: +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libdiskfs/ChangeLog">libdiskfs</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libfshelp/ChangeLog">libfshelp</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libftpconn/ChangeLog">libftpconn</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libhurdbugaddr/ChangeLog">libhurdbugaddr</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libihash/ChangeLog">libihash</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libiohelp/ChangeLog">libiohelp</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libnetfs/ChangeLog">libnetfs</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libpager/ChangeLog">libpager</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libpipe/ChangeLog">libpipe</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libports/ChangeLog">libports</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libps/ChangeLog">libps</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libshouldbeinlibc/ChangeLog">libshouldbeinlibc</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libstore/ChangeLog">libstore</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libthreads/ChangeLog">libthreads</A>, +<A HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/hurd/libtrivfs/ChangeLog">libtrivfs</A> +</UL> +<H4>GNU Mach</H4> +The <A +HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/gnumach/ChangeLog">GNU +Mach ChangeLog</A> covers all changes to GNU Mach and <A +HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/gnumach/ChangeLog?rev=1.128.2">GNU +Mach 1 branch ChangeLog</A> those on the <SAMP>gnumach-1-branch</SAMP>. +Changes before March 1997 are listed in <A +HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/gnumach/ChangeLog.0">ChangeLog.0</A> +and <A +HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/gnumach/ChangeLog.00">ChangeLog.00</A>. +<H4>MIG</H4> +The <A +HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/mig/ChangeLog">MIG ChangeLog</A> +covers all changes to MIG. diff --git a/unsorted/hurd-fs-org b/unsorted/hurd-fs-org new file mode 100644 index 00000000..ba515623 --- /dev/null +++ b/unsorted/hurd-fs-org @@ -0,0 +1,219 @@ +From: mib@duality.gnu.ai.mit.edu (Michael I. Bushnell, p/BSG) +Newsgroups: gnu.misc.discuss +Subject: Re: GNU vs. Linux FSSTND conflict? +Date: 13 Aug 1995 22:31:18 GMT +Organization: Free Software Foundation, Cambridge, MA +In-reply-to: Rick Niles's message of 13 Aug 1995 16:20:29 GMT + +In article <40l8od$ia9@news4.digex.net> Rick Niles <niles@axp745.gsfc.nasa.gov> + writes: + + Is there a conflict between the GNU Filesystem Structure and + the Linux Filesystem Structure (FSSTND)? + +What you point out is the trivial difference; there are significant +lossages in FSSTND, such as the absence of libexec... + + I've heard on this newsgroup that the GNU std. is to elminate + the use of /usr. So: + + I guess the first question is: Is this true? + +Yes. + + If it is how do you answer those who say the root part. should + be small and only enough to boot the system? And + the rest of the system should be on a separate part. (/usr) + +In GNU the directory /bin will be an amalgam of several directories; +this well be done by the use of a translator in the Hurd. (It will be +similar to BSD shadow filesystems.) + +So we have no need to confuse users by putting binaries in two +different places. We can put different binaries in different physical +locations without either forcing them to appear in different places or +creating a forest of symlinks. + +But the FSSTND's arguments are bogus even for Unixoid systems which do +force differently located files to have different directory names: + + o It is often mounted from very small media. For example, many Linux + users install and recover systems by mounting root off a RAM disk, + which is copied from a single 1.44M or 1.2M floppy disk. + +This is a non-issue. Obviously a floppy can only have a small number +of files, but that's totally irrelevant in deciding what should be on +root on a fully loaded system. + + o The root filesystem has many system-specific configuration files in + it. Possible examples include a kernel that is specific to the + system, a different hostname, etc. This means that the root + filesystem isn't always shareable between networked systems. + Keeping it small on networked systems minimizes the amount of space + lost on servers to unshareable files. It also allows workstations + with smaller local hard drives. + +It should be possible to require only the etc directory to be +per-system; there is no reason that bin and such should be non-shared +at all. + + o While you may have the root filesystem on a large partition, and + may be able to fill it to your heart's content, there will be + people with smaller partitions. If you have more files installed, + you may find incompatibilities with other systems using root + filesystems on smaller partitions. If you are a developer then you + may be turning your assumption into a problem for a large number of + users. + +This is totally incoherent, as far as I can tell. If someone can tell +me what it means, then maybe I could help. What sort of +incompatibilities are expected? + +Michael + + + +From: gord@enci.ucalgary.ca (Gord Matzigkeit) +Newsgroups: gnu.misc.discuss +Subject: Re: GNU vs. Linux FSSTND conflict? +Date: 14 Aug 1995 18:55:20 -0600 +In-reply-to: mib@duality.gnu.ai.mit.edu's message of 13 Aug 1995 22:31:18 GMT + +-----BEGIN PGP SIGNED MESSAGE----- + +Hi! + +>>>>> "mib" == Michael I Bushnell, p/BSG <mib@duality.gnu.ai.mit.edu> writes: + + mib> In article <40l8od$ia9@news4.digex.net> Rick Niles + mib> <niles@axp745.gsfc.nasa.gov> writes: +[hack & slice] + + >> If it is how do you answer those who say the root + >> part. should be small and only enough to boot the system? And + >> the rest of the system should be on a separate part. (/usr) + + mib> In GNU the directory /bin will be an amalgam of several + mib> directories; this well be done by the use of a translator in the + mib> Hurd. (It will be similar to BSD shadow filesystems.) + +This is what I figured... my reply didn't get posted to USENET, +though, because our NNTP server has been down for the last day or two. + + mib> So we have no need to confuse users by putting binaries in two + mib> different places. We can put different binaries in different + mib> physical locations without either forcing them to appear in + mib> different places or creating a forest of symlinks. + +This is grand! One of my ideas that I mentioned to Rick was that I'm +currently using depot, and I see that the GNU union/shadowfs could +replace that. + +What depot does is manages symlinks for a "software environment" (a +more restricted version of what you have described). + +The way I think I'll be setting up my Hurd machine is to have all the +physical disks mounted under "/disk", each containing a fragment of +the filesystem. + +Now, my only concerns are: + +1) control files, as far as determining precedence, and what can and +cannot be shadowed (for collision resolution), and what is just +auxilliary info (like CVS directories in the site package, which +should not be mapped onto the software environment) + +2) packages. Is there some slick way to divide the filesystem into +"package pieces", like depot does? + +One suggestion to get (2), is that I could create an intermediate +directory, say "/package", that would be the union of various mounted +physical disks (under /disk), and would contain things like: + +emacs-19.30/bin +emacs-19.30/lib... +gcc-2.7.3/bin... +fileutils-5.8/man... +site/sbin/useful_perl_script + +et al. Then I would unionfs all the directories in the /package dir +onto the root filesystem. + +This would have most of the advantages I'm getting from depot, namely, +the ability to specify different precedences on different machines, +so that I can try out emacs-19.31 on one workstation without +disrupting the others. + +Is there a better way to do this? I do like the idea of three +different hierarchies for files (under /disk, where I can see what is +on each server; under /package, where I can see what is in each +package; the GNU standard dirs, where I actually use the files), but I +am hoping that there is something more elegant. Hmm. Maybe not. + + mib> It should be possible to require only the etc directory to be + mib> per-system; there is no reason that bin and such should be + mib> non-shared at all. + +This is one point (for security), that would mandate the use of config +files, so that the unionfs doesn't map /etc/some_important_file from +another server. + +This is yet another thing that I'm looking forward to. Thanks. ;) + +- --Gordon + +- -- +Gordon Matzigkeit | Heck, it was only a TOASTER... lighten up! +gord@enci.ucalgary.ca | PGP mail preferred... finger me for my key. +Keyprint: D5 66 08 E0 4D F4 D7 7B 8A C8 8A 9C 7F 39 25 A7 - ID 339ABEB9 + + +-----BEGIN PGP SIGNATURE----- +Version: 2.6.2 +Comment: Processed by Mailcrypt 3.3, an Emacs/PGP interface + +iQCVAwUBMC/wcyFsfCEzmr65AQHubwP7BGVHqs9ACB8hFUqDdF2oWu/lLq1hW/Oa +qra2ZfcKfIZq9hIM4tLRJ0qCaiOVm5MGLgH7Yax+ZyOPb4K0fCObzk1XY5b0enhV +9SR70UZ7Qm7MXj+PFCp5lxvrNiaFXMbil0EN5FQEvH9kUp0ed1NWcaXGqTK6gezm +YBUumt2Zadk= +=6f2c +-----END PGP SIGNATURE----- + + + + +From: mib@duality.gnu.ai.mit.edu (Michael I. Bushnell, p/BSG) +Newsgroups: gnu.misc.discuss +Subject: Re: GNU vs. Linux FSSTND conflict? +Date: 16 Aug 1995 14:43:47 GMT +In-reply-to: gord@enci.ucalgary.ca's message of 14 Aug 1995 18:55:20 -0600 + +In article <npka8gj893.fsf@enci.ucalgary.ca> gord@enci.ucalgary.ca (Gord Matzig +keit) writes: + + The way I think I'll be setting up my Hurd machine is to have all the + physical disks mounted under "/disk", each containing a fragment of + the filesystem. + +Our idea is to do something roughly like this. + + 1) control files, as far as determining precedence, and what can and + cannot be shadowed (for collision resolution), and what is just + auxilliary info (like CVS directories in the site package, which + should not be mapped onto the software environment) + +Yes, the relevant translator will support a *rich* set of semantics +for this kind of things specified by a control file. + + 2) packages. Is there some slick way to divide the filesystem into + "package pieces", like depot does? + +We're going to do this; rms and I have worked out a usable scheme that +meets all the necessary goals. + +The physical location of files has to be reflected by sharing rules +(see the GNU makefile standards); users have to be able to see all the +files relevant to a particular program easily; programs have to be +easily de-installed. We have a scheme that meets these three. + +Michael diff --git a/unsorted/hurd-migr b/unsorted/hurd-migr new file mode 100644 index 00000000..ce36c86c --- /dev/null +++ b/unsorted/hurd-migr @@ -0,0 +1,141 @@ +Path: usenet.ee.pdx.edu!cs.uoregon.edu!sgiblab!swrinde!howland.reston.ans.net!E +U.net!Germany.EU.net!netmbx.de!sietec.de!news!jh +From: jh@poseidon.sietec.de (Jochen Roger Hayek) +Newsgroups: gnu.misc.discuss +Subject: HURD & migration facilities +Date: 24 Oct 1994 15:12:34 GMT +Organization: Sietec Systemtechnik, Berlin +Lines: 16 +Distribution: world +Message-ID: <JH.94Oct24161234@poseidon.sietec.de> +Reply-To: Jochen.Roger.Hayek@sietec.de +NNTP-Posting-Host: sunmiet3.sietec.de + +I read an article from acm's sigops vol. 28, number 4 this weekend, having the +title: + + a brief survey of systems providing + process or object migration facilities + by Mark Nuttall + +I found it very instructive. + +I think process / object migration should be considered for HURD, too, +and it's important to look at that before supporting / emulating +UNIX's fork and inherited open file descriptors, +because those features might get contradictory if not carefully designed. + +Regards esp. to the HURD folks + +JH + +Path: usenet.ee.pdx.edu!cs.uoregon.edu!sgiblab!spool.mu.edu!bloom-beacon.mit.ed +u!ai-lab!life.ai.mit.edu!mib +From: mib@churchy.gnu.ai.mit.edu (Michael I Bushnell) +Newsgroups: gnu.misc.discuss +Subject: Re: HURD & migration facilities +Date: 24 Oct 1994 18:10:25 GMT +Organization: Free Software Foundation, Cambridge, MA +Lines: 27 +Distribution: world +Message-ID: <MIB.94Oct24141025@churchy.gnu.ai.mit.edu> +References: <JH.94Oct24161234@poseidon.sietec.de> +NNTP-Posting-Host: churchy.gnu.ai.mit.edu +In-reply-to: jh@poseidon.sietec.de's message of 24 Oct 1994 15:12:34 + GMT + +In article <JH.94Oct24161234@poseidon.sietec.de> jh@poseidon.sietec.de (Jochen +Roger Hayek) writes: + + I think process / object migration should be considered for HURD, too, + and it's important to look at that before supporting / emulating + UNIX's fork and inherited open file descriptors, + because those features might get contradictory if not carefully designed. + +Process migration is not a problem for the Hurd--it's a problem for +Mach. If a Mach task can be correctly migrated, then there is no +problem. + +However, I want to do more than that with the Hurd; I want to have a +collection of machines (I think I'll call it a ``Collective'') appear +as a single machine. (Shades of amoeba here.) + +This is the first (and harder) task--making a single global space of +pids, etc. + +The second (and easier) task is migration. + + -mib +-- ++1 617 623 3248 (H) | En arche en ho logos, ++1 617 253 8568 (W) -+- kai ho logos en pros ton theon, +1105 Broadway | kai theos en ho logos. +Somerville, MA 02144 | Kai ho logos sarx egeneto, +mib@gnu.ai.mit.edu | kai eskenosen en hemin. + +Newsgroups: gnu.misc.discuss +Path: usenet.ee.pdx.edu!cs.uoregon.edu!reuter.cse.ogi.edu!psgrain!agora!hermes. +rdrop.com!erich +From: erich@uruk.org (Erich Boleyn) +Subject: Re: HURD & migration facilities +Sender: news@agora.rdrop.com (David Greenman) +Nntp-Posting-Host: uruk.org +Organization: RainDrop Laboratories +Message-ID: <ERICH.94Oct29093537@uruk.org> +References: <JH.94Oct24161234@poseidon.sietec.de> + <MIB.94Oct24141025@churchy.gnu.ai.mit.edu> +In-Reply-To: mib@churchy.gnu.ai.mit.edu's message of 24 Oct 1994 18:10:25 GMT +Date: Sat, 29 Oct 1994 16:35:37 GMT +Lines: 50 + + +In article <MIB.94Oct24141025@churchy.gnu.ai.mit.edu> mib@churchy.gnu.ai.mit.ed +u (Michael I Bushnell) writes: + + Process migration is not a problem for the Hurd--it's a problem for + Mach. If a Mach task can be correctly migrated, then there is no + problem. + + However, I want to do more than that with the Hurd; I want to have a + collection of machines (I think I'll call it a ``Collective'') appear + as a single machine. (Shades of amoeba here.) + +Great! (I think we talked about this before...) + + This is the first (and harder) task--making a single global space of + pids, etc. + +This point seems somewhat questionable. Maybe we're thinking about +the same idea in the long run, but I don't think that migrating +data about the whole system around would be very useful... +I mean, you still want a very large collective to work, though it +could well get bogged down by the details of huge amounts of info. + +I think a more optimal (and more practical) approach would be to: + +Create a model of a "user context" that keeps track across multiple +machines what resources and programs a user is working with. + +There would also be publically known "services" that would be advertised. +Note that "advertising" is a specific activity that is usually not +performed, unless one desires to do so. + +Anything else is really of little or no concern except to a local group of +machines (for resource-balancing issues). So machines would automatically +keep in touch with other nearby machines, but it would be modulated by +distance. + +The big question is this (and for that matter, other models) is that +of authentication in some kind of reasonably reliable manner. + + The second (and easier) task is migration. + +Agreed. + +Erich + +-- +Erich Stefan Boleyn \ Mad Genius wanna-be, CyberMuffin +Mathematician, Software Engineer \ slavering computer nerd +Internet E-mail: <erich@uruk.org> \ "Forget Artificial Intelligence, +Motto: "I'll live forever or die trying" \ I want the real thing!" |