diff options
Diffstat (limited to 'unsorted')
67 files changed, 2986 insertions, 612 deletions
diff --git a/unsorted/BochsFAQ.mdwn b/unsorted/BochsFAQ.mdwn index d446f695..474bbed5 100644 --- a/unsorted/BochsFAQ.mdwn +++ b/unsorted/BochsFAQ.mdwn @@ -1,7 +1,5 @@ # <a name="GNU_pre0_3_J2_for_Bochs_mini_FAQ"> </a> GNU pre0.3-J2 for Bochs mini-FAQ -%TOC% - ---- ## <a name="What_do_you_mean_GNU_the_GNU_Hur"> </a> What do you mean "GNU", the GNU Hurd? diff --git a/unsorted/BootProcess.mdwn b/unsorted/BootProcess.mdwn deleted file mode 100644 index 17f7bba7..00000000 --- a/unsorted/BootProcess.mdwn +++ /dev/null @@ -1,36 +0,0 @@ -Describes the GNU/Hurd boot process. - -# <a name="Bootloader"> Bootloader </a> - -[GRUB](http://www.gnu.org/software/grub/) (GRand Unified Bootloader) is the default (and as far as I know the only supported ) bootloader for GNU/Hurd and is the initial process. - -GRUB can be used for booting multiple Operating Systems on a given machine. Device naming convention for GRUB is different than that of the Hurd. Where the first partition on the primary IDE drive in GNU/Hurd is hd0s1, in GRUB it is (hd0,0). In the case of GNU/Hurd, the first thing that GRUB loads is kernel image. - -Here is a copy of GNU/Hurd multi-user entry from menu.lst. The first two lines are primarily informational and are what get displayed on the GRUB boot menu. - - # Entry 2: 1st partition on first HDD - title GNU/Hurd (IDE 1st partition - hd0s1 multi-user) - 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) - -**_N.B. the escaped new lines above should end in only a back slash, no spaces!_** - -The line "root (hd0,0)" tells GRUB where to look for the root partition. Notice that the (hd0,0) is using GRUB naming conventions. - -The next line loads the gnumach kernel image itself. Notice here the root=device:hd0s1 argument. This is now using GNU/Hurd device naming convention, telling the Hurd where the root partition exists. - ----- - --- [[Main/BarryDeFreese]] - 29 May 2003 - -Minor formatting and edit check. - -On a side note. The actual description of the GNU/Hurd boot process is a good idea but keeping duplicated information to a bare minimum must be the guide line for a "book" like this. See other topics for more information on Grub configuration for instance. - --- [[Main/JoachimNilsson]] - 30 May 2003 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/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/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 /> 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/GrubNotes.mdwn b/unsorted/GrubNotes.mdwn deleted file mode 100644 index b0b1fdf5..00000000 --- a/unsorted/GrubNotes.mdwn +++ /dev/null @@ -1,70 +0,0 @@ -This section complements the [[InstallNotes]] with complete information regarding the GRUB boot loader. The syntax is different from Lilo's and so to scratch my own itch I'm creating this quick reference. The [Grub manual](http://www.gnu.org/software/grub/manual/grub.html) is another good reference. - -* update-grub is **Debian specific** and very nice. It will automatically create a /boot/grub/menu.lst file for the kernels in /boot/. It will also append a manually configured set for other partitions like the GNU/Hurd. -* grub-floppy is a **Debian specific** boot floppy creation script. -* mkbimage is a **Debian specific** boot disk image creation script. -* <http://khazad.dyndns.org/packages/grub-disk/> contains a Debian packaged makefile for creating CD & floppy images. Looks like it doesn't work properly. If you fix it, please send patches to the maintainer. -* essential GRUB commands & disk syntax - * root - * kernel - * module - * boot -* sample file - - title GNU/Linux - root (hd0,11) - kernel /boot/vmlinuz-2.4.18 root=/dev/hda12 ro - initrd /boot/initrd.img-2.4.18 - savedefault - - title GNU - root (hd0,15) - kernel /boot/oskit-mach root=device:hd0s16 -- - 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) - savedefault - - title DOS - rootnoverify (hd0,0) - chainloader +1 - --- [[Main/GrantBow]] - 01 Oct 2002 <br /> -- [[Main/GrantBow]] - 22 Dec 2002 - -Another example, just as good, but a lot easier to read. The backslash at the end of each line is to "escape" the enter-key. So make sure there are no spaces following the backslashes! - - title GNU/Linux (Linux 2.4.18) - root (hd0,11) - kernel /boot/vmlinuz-2.4.18 root=/dev/hda12 ro - initrd /boot/initrd.img-2.4.18 - savedefault - - title GNUmach 1.3 - root (hd0,1) - kernel /boot/gnumach.gz root=device:hd0s2 - 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 GNUmach 1.90 (CVS) - root (hd0,1) - kernel /boot/oskit-mach.gz root=device:hd0s2 -- - 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) - -Note the differences between GNUmach and OSKit-Mach. The latter **needs** the two dashes after the root specification! - --- [[Main/JoachimNilsson]] - 09 Nov 2002 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/HurdWikiCopyrightDiscuss.mdwn b/unsorted/HurdWikiCopyrightDiscuss.mdwn deleted file mode 100644 index ffa0b17b..00000000 --- a/unsorted/HurdWikiCopyrightDiscuss.mdwn +++ /dev/null @@ -1,69 +0,0 @@ -How about that notice from [[Main/PeterThoeny]]? Why don't we change the [[Hurd/WebPreferences]] for the Hurd web to say "Copyright (c) 2002 Free Software Foundation", instead of the usual "... the contributing authors". I think that would make the information we put in here easier to move around among different webs (not only Wikified ones...). Perhaps also add a notice on licensing? Like this: - - "Copyright (C) 2001, 2002 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." - - Submitting material to the Hurd Wiki not only assigns the copyrights - to the Free Software Foundation it also put the material itself under - the GNU FDL, http://www.gnu.org/licenses/fdl.html - --- [[Main/JoachimNilsson]] - 14 May 2002 - -Don't do this - the material will not be assigned to the FSF until every contributor signed a paper form and filed it with the FSF. - -So simply claiming something is (C) FSF will not make it to be so, and it will not only have no effect, but also be confusing. - -Wiki has authentication, this is good. However, unless you have paper forms, all contributions remain with the original author. - -And if you had papers, you would have to disallow or moderate guest account contributions and either filter them out or change the copyright notice when they are filled in. This makes reusing Wiki-evolved content in free software projects by the FSF difficult btw, so don't expect major wiki-evolved content to be included in FSF manuals or so (this is not a problem, as long as everyone is aware of this limitation and keeps it in mind). - --- Marcus Brinkmann (no, not a Wiki-Name :) - -So what you are saying is basically this: - -1. We cannot assign the copyright to the FSF without the _paper_ work. -2. We _can_ use content from the FSF (as long as we keep all copyright information, of course), but any content evolved from this is unusable for GNU manuals. -3. Even if every newly registered user (and [[Main/TWikiGuest]] is disabled completely for the Hurd Web) agrees to our terms that agreement is useless without the _paper_ work. - -Oh, there is of course all the RCS diffs ... would that help, if we would like to have the Wiki content in GNU manuals? - --- [[Main/JoachimNilsson]] - 14 May 2002 - -If you have papers signed by the contributors, then any Guest added words (less than 10 lines?) can be filtered out of the Wiki using RCS. This is acceptable for GNU code, if I recall correctly. You may have to re-writen certain portions of the Wiki to use FSF contributed work only, though. - --- [[Main/SimonLaw]] - 16 May 2002 - -There seems to be a confusion of FDL vis-a-vis copyright-assignment here. FDL is like the all-important Step 1 which protects this content from being non-free. Copyright assignment is an Optional Step 2. - -Step2's not being feasible does not mean that we can't take Step 1. - -90% of GPL'ed software out there does not take Step 2. Step 2 helps by involving FSF in case someone violates our Step 1--the copyright itself. But i don't see why we cannot take Step 1 atleast. - --- [[Main/DeepakGoel]] - 01 Oct 2002 - -After an email discussion a while ago now between myself, Grant Bowman, RMS and Marcus Brinkmann the following results where achieved: - -* Copyright assignment can indeed be done without the extensive paperwork. - -* To implement this on a Wiki some provisions must be fulfilled: - * The user must **_actively_** select a checkbox or similar. - * The text to the checkbox can be _"I approve to also assign the copyrights of my work to the FSF"_ - -* This practise can be implemented today in the U.S., but in the EU there are still some things that need to be ironed out. Different countries still have differences in copyright law. However, the Swedish laws, where the Hurd wiki is located, do allow such a practise. - -The first step, mentioned above by [[Main/DeepakGoel]] we have now taken. The Hurd wiki is now licensed under the GNU FDL. The second step, assigning copyright will take a bit longer since the Perl scripts making out the TWiki engine must be altered. Also, we must first make sure that we all want to take the second step - we will also need to get the approval of assigning copyright of older material by those editors. - --- [[Main/JoachimNilsson]] - 01 Jan 2003 - -I don't feel taking the next step of copyright assignment is necessary, but I'm not opposed to it either. My concerns revolve around encouraging a wider participation and not actively putting up more barriers. Not many folks contribute as it is, unfortunately. - --- [[Main/GrantBow]] - 03 Jan 2003 - -Good, I've been hesitating too. Then there's no need for me to rush into getting the architecture of it working just yet. - -As it is right now, with at least the licensing (the FDL) in place, I'm quite content. - --- [[Main/JoachimNilsson]] - 03 Jan 2003 diff --git a/unsorted/HurdWikiMove.mdwn b/unsorted/HurdWikiMove.mdwn deleted file mode 100644 index 084e0ff2..00000000 --- a/unsorted/HurdWikiMove.mdwn +++ /dev/null @@ -1,55 +0,0 @@ -Many thanks to [[Main/JoachimNilsson]] for his work to establish and help update this Hurd Wiki! You have been extremely kind with your efforts in creating the new GNU skin and all of the expected and unexpected administrative work that's been needed to establish this Wiki. - -Now that the site is established, the traffic levels are growing and the value of the site is evident. This will affect the current host since its bandwidth is quite limited. Therefore a new permanent host must be located. We would like it to offer the following: - -* Free bandwidth -* At least one GiB of quota -* Availability 24/7 -* Shell access for at least one person for administrational purposes -* Possibly in the U.S. due to "click-n-approve" copyright assignment of material to the FSF (see [[HurdWikiCopyrightDiscuss]]). -* Regular backups -* Other? - -Comment on this page or email the maintainer <joachim@gnufansNOSPAM.org> - -Potential places to move Hurd Twiki to in order of preference: - -* savannah.gnu.org -* Some other \*.gnu.org site -* Other site in the U.S. or country with similar copyright laws. - ----- - -I favor removing gnu.org from the above list. There are copyright issues that are technically impossible to address in the way that RMS wants copyright assigned to all content hosted on gnu.org. While we probably could bend over backwards to accomodate it, fundamentally I think that this and other potential problems are not worth the effort of making this Hurd Twiki an official part of the GNU project. - -Technically I think that savannah.gnu.org might be possible but I will defer to others for a decision from this perspective. Assuming it's possible, I think we may have similar problems as above. - -I favor looking for another solution, an "other". - --- [[Main/GrantBow]] - 22 Sep 2002 - -Refactoring and updating. - -The copyright issues we have to straighten out anyway. If someone wants to make a CD set of the "manual" we have created here and that content later on gets misused we need to defend our rights. Using the GNU [[GNU/FreeDocumentationLicense]] and assigning the copyright to the FSF will help us achieve this. The FSF can fight for us instead of all the writers trying to get together. - --- [[Main/JoachimNilsson]] - 23 Oct 2002 - -Joachim, how are we doing on bandwidth usage? Is it growing, decreasing, about the same? What measure should we be looking at to keep an eye on the situation? I am sure lots of people really appreciate your hosting this site for free. I'm of course one of them! - --- [[Main/GrantBow]] - 01 Jan 2003 - -I have [the statistics](http://hurd.gnufans.org/webalizer/) under observation and thus far it looks very good. There really isn't much traffic at all, [compared to](http://vmlinux.org/webalizer/) the machine we host gnufans.org on. One tenth of the traffic to vmlinux.org. - -Occasionally I talk to one of the guys at [QuickNet](http://www.quicknet.se) about the hosting and our (vmlinux.org's) bandwidth usage. He has assured me that there is no problem at all, in fact, they have increased the overall capacity of their hosting capabilites, so now our traffic is no more than a drop in the ocean to them. :) - -I'll keep you (all) informed if there is any change in status of the hosting. - -Furthermore, I've been looking into the copyright assignment issues we talked about a while ago now. It seems RMS is right. At least in Sweden transfer of copyright can be made by a user in the way he descibed in the email conversation we had. The provision is that the user must **_actively_** select a checkbox or similar which says something like: - -* _"I hereby assign the copyrights of my work to the FSF"_ - -This means that the copyright is also owned by the FSF, the original author can never lose his rights to a work. The copyright assignment is useful when there is a license violation, bacause then the FSF can fight on behalf of the copyright owners without having to ask them all. - -Well, this post somewhat "nullifies" many of the claims made at the beginning of this topic. Maybe I should refactor it a bit to better suit the current circumstances? - --- [[Main/JoachimNilsson]] - 01 Jan 2003 diff --git a/unsorted/HurdWnpp.mdwn b/unsorted/HurdWnpp.mdwn deleted file mode 100644 index 49e069de..00000000 --- a/unsorted/HurdWnpp.mdwn +++ /dev/null @@ -1,19 +0,0 @@ -While Debian Developers and users use the official [WNPP](http://www.debian.org/devel/wnpp/) (Work Needed and Prospective Packages) page, a system of special bugs in the [Debian Bug Tracking System](http://bugs.debian.org/), this page is intended to give another location (and method) for giving feedback and provide status for developers of the Hurd. Please simply add a package name, the person's name sho's porting it, possibly with URL or as a separate page if you have relevant notes on the package. - -This data is for porting purposes only. Any conflict between the Debian BTS data and the data here should be resolved in favor of the Debian BTS. It's hoped this page will allow people to keep notes on packages that need some care. - -Packages in need of porting help: - -* Ported packages up for adoption - -* Ported orphaned packages - -* Packages currently being ported - -* Rewritten/replaced packages - * fakeroot - [status](http://mail.gnu.org/pipermail/bug-hurd/2002-May/008322.html) - -* Requested packages - * [Entropy Gathering Daemon](http://bugs.debian.org/145498) - Mako Hill - --- created 19 May 2002 diff --git a/unsorted/InstallNotes.mdwn b/unsorted/InstallNotes.mdwn index 49dcd53d..f3ac58d1 100644 --- a/unsorted/InstallNotes.mdwn +++ b/unsorted/InstallNotes.mdwn @@ -2,10 +2,6 @@ Items of interest during install not mentioned elsewhere include the following. **_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="Table_of_Contents"> Table of Contents </a> - -%TOC% - ## <a name="1_Overview_Where_we_are_going"> 1. Overview - Where we are going </a> There are currently four methods to install GNU @@ -47,7 +43,7 @@ You can always install GRUB onto your hard drive at a later date. For instructions on using GRUB, see either the info documentation or the quick reference notes on this wiki: -* [[Distrib/GrubNotes]] - quick reference +* [[GRUB]] - quick reference ## <a name="4_Cross_Install_Cross_Installing"> </a> 4. Cross Install - Cross Installing GNU @@ -198,7 +194,6 @@ See [[DebianAfterInstall]] for complete, up to date instructions. * Run `passwd` to give the root user a password. By default, root does not have one. * Run `adduser` to give yourself a user account. _Do not_ use root indiscriminately. * Run `MAKEDEV` to create devices in `/dev` for your hard disk and other required devices. - * Since the Hurd does not use `ld.so.conf`, you will want to specify where the X Window System keeps its libraries. Do this by adding the following line to your `/etc/profile`: <br />`export LD_LIBRARY_PATH='/lib:/usr/X11R6/lib'` * run `/etc/cron.daily/find` to allow `locate` to function. * [[GetNetworkRunning]] diff --git a/unsorted/InstallTips.mdwn b/unsorted/InstallTips.mdwn index a735fbf7..262ec741 100644 --- a/unsorted/InstallTips.mdwn +++ b/unsorted/InstallTips.mdwn @@ -1,9 +1,5 @@ Before reading these instructions, be sure you are familiar with the [[InstallNotes]]. -## <a name="Table_of_Contents"> Table of Contents </a> - -%TOC% - ## <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. @@ -60,7 +56,7 @@ now mount the floppy and copy the files to your partition 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 [[GrubNotes]] +More detailed samples for GRUB config files can be found at the [[GRUB]] page. To install grub reboot using the grub floppy and issue: 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/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..4e7b7620 --- /dev/null +++ b/unsorted/KnownHurdLimits.mdwn @@ -0,0 +1,16 @@ +* ~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]] + +* 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/NewMachHistory.mdwn b/unsorted/NewMachHistory.mdwn deleted file mode 100644 index 562d1cac..00000000 --- a/unsorted/NewMachHistory.mdwn +++ /dev/null @@ -1,27 +0,0 @@ -# <a name="Table_of_Contents"> Table of Contents </a> - -%TOC% - -# <a name="Early_beginnings"> Early beginnings </a> - -GNUMach is based on Mach4 from University of Utah, which in turn is based on Mach3 from Carnegie-Mellon University. The last release of Mach4 was the [UK22 release](http://www.cs.utah.edu/flux/mach4-i386/html/mach4-UK22.html). - -The oskit-mach version of GNU Mach was presented in November 1999 by Roland McGrath. <http://mail.gnu.org/pipermail/bug-hurd/1999-November/003554.html> The purpose of the port was to get better hardware support through new drivers and platform code available in the OSKit. - -On May 27 2002, after the Gnumach 1.3 release, Roland McGrath merged OSKit-Mach onto the HEAD of CVS making it the Gnumach 2.x mainline. - -# <a name="Status_of_the_project"> Status of the project </a> - -GNU Mach 1.3 was released in May 2002, and features advanced boot script support, support for large disks (>= 10GB) and an improved console. - -GNU Mach is used as the default microkernel in the GNU/Hurd system. It is compatible with other popular Mach distributions. The device drivers for block devices and network cards are taken from Linux 2.0.x kernel versions, and so a broad range of common hardware is supported. - -However, the Linux device drivers have been improved greatly since the 2.0.x version, and a new version of GNU Mach based on the OSKit library is being worked on, which uses newer drivers and in general has cleaner machine specific support code. - ----- - -Copyright (C) 2001 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. - --- [[Main/JoachimNilsson]] - 24 Oct 2002 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/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/PortingIssues.mdwn b/unsorted/PortingIssues.mdwn deleted file mode 100644 index 87d2154b..00000000 --- a/unsorted/PortingIssues.mdwn +++ /dev/null @@ -1,278 +0,0 @@ -## <a name="Table_of_Contents"> Table of Contents </a> - -%TOC% - -## <a name="Overview"> Overview </a> - -This is a recompilation of common porting problems and their solutions. Information is gathered from the following sources: - -* [Debian GNU/Hurd port guidelines](http://www.debian.org/ports/hurd/hurd-devel-debian) - -* [James Morrison's GNU/Hurd pages](http://hurd.dyndns.org/) - -as well as other misc. sources. - -First of all, see [[BtsFiling]] if you need instructions on manipulating [Debian](http://www.debian.org/) source packages and submitting patches to their [Bug Tracking System](http://bugs.debian.org/). - -## <a name="System_API_limitations"> </a> System API limitations - -Sometimes building or running a program will fail due to bugs in the system API implementation (in Glibc and the Hurd). Make sure you check this list and know them before porting, otherwise you'll end up debugging something just to find out its an already known bug. - -We maintain a separate Wiki page for information on these bugs, see [[Distrib/SystemAPILimits]] - -If you think you can fix any of them and send a patch to the debian BTS, that'd be much appreciated. You may ask in <bug-hurd@gnuNOSPAM.org> for details or questions on the bug. - -## <a name="Undefined_bits_confname_h_tt_mac"> Undefined `bits/confname.h` macros (`PIPE_BUF`, ...) </a> - -If macro `XXX` is undefined, but macro `_SC_XXX` or `_PC_XXX` is defined in `bits/confname.h`, you probably need to use `sysconf`, `pathconf` or `fpathconf` to obtain it dynamicaly. - -The following macros have been found in this offending situation (add more if you find them): `PIPE_BUF` - -An example with `sysconf`: (when you find a `sysconf` offending macro, put a better example) - - #ifndef XXX - #define XXX sysconf(_SC_XXX) - #endif - /* offending code using XXX follows */ - -An example with `fpathconf`: - - #ifdef PIPE_BUF - read(fd, buff, PIPE_BUF - 1); - #else - read(fd, buff, fpathconf(fd, _PC_PIPE_BUF) - 1); - #endif - /* note we can't #define PIPE_BUF, because it depends - on the "fd" variable */ - -## <a name="Bad_File_Descriptor"> Bad File Descriptor </a> - -If you get Bad File Descriptor error when trying to read from a file (or accessing it at all), check the `open()` invocation. The second argument is the access method. If it is a hard coded number instead of a symbol defined in the standard header files, the code is screwed and should be fixed to either use `O_RDONLY`, `O_WRONLY` or `O_RDWR`. This bug was observed in the `fortunes` and `mtools` packages for example. - -## <a name="PATH_MAX_tt_MAX_PATH_tt_MAXPATHL"> `PATH_MAX` / `MAX_PATH` / `MAXPATHLEN` </a> - -Every unconditionalized use of `PATH_MAX`, `MAX_PATH` or `MAXPATHLEN` is a POSIX incompatibility. If there is no upper limit on the length of a path (as its the case for GNU), this symbol is not defined in any header file. Instead, you need to either use a different implementation that does not rely on the length of a string or use `sysconf()` to query the length at runtime. If `sysconf()` returns -1, you have to use `realloc()` to allocate the needed memory dynamically. - -## <a name="ARG_MAX"> `ARG_MAX` </a> - -Same as `PATH_MAX`. There is no limit on the number of arguments. - -## <a name="IOV_MAX"> `IOV_MAX` </a> - -Same as `PATH_MAX`. There is no limit on the number of iovec items. - -## <a name="MAXHOSTNAMELEN_tt_"> `MAXHOSTNAMELEN` </a> - -Same as `PATH_MAX`. When you find a `gethostname()` function, which acts on a static buffer, you can replace it with Neal's [xgethostname function](http://ftp.walfield.org/pub/people/neal/xgethostname/) which returns the hostname as a dynamic buffer. For example: - -Buggy code: - - char localhost[MAXHOSTNAMELEN]; - ... - gethostname(localhost, sizeof(localhost)); - -Fixed code: - - #include "xgethostname.h" - ... - char *localhost; - ... - localhost = xgethostname(); - if (! localhost) - { - perror ("xgethostname"); - return ERROR; - } - ... - /* use LOCALHOST. */ - free (localhost); - -## <a name="NOFILE_tt_"> `NOFILE` </a> - -Replace with `getrlimit(RLIMIT_NOFILE,...)` - -## <a name="GNU_specific_define_tt_"> </a> GNU specific `#define` - -If you need to include specific code for GNU/Hurd using `#if` ... `#endif`, then you can use the `__GNU__` symbol to do so. But think (at least) thrice! before doing so. In most situations, this is completely unnecessary and will create more problems than it may solve. Better ask on the mailing list how to do it right if you can't think of a better solution. - -## <a name="sys_errlist_tt_vs_strerror_tt_"> `sys_errlist[]` vs. `strerror()` </a> - -If a program has only support for `sys_errlist[]` you will have to do some work to make it compile on GNU, which has dropped support for it and does only provide `strerror()`. Steinar Hamre writes about `strerror()`: - -`strerror()` should be used because: - -* It is the modern, POSIX way. -* It is localized. -* It handles invalid signals/numbers out of range. (better errorhandling and not a buffer-overflow-candidate/security risk) - -`strerror()` should always be used if it is available. Unfortunaly there are still some old non-POSIX systems that do not have `strerror()`, only `sys_errlist[]`. - -Today, only supporting `strerror()` is far better than only supporting `sys_errlist[]`. The best (from a portability viewpoint), however is supporting both. For configure.in, you will need: - - AC_CHECK_FUNCS(strerror) - -To `config.h.in`, you need to add: - - #undef HAVE_STRERROR - -Then something like: - - #ifndef HAVE_STRERROR - static char * - private_strerror (errnum) - int errnum; - { - extern char *sys_errlist[]; - extern int sys_nerr; - - if (errnum > 0 && errnum <= sys_nerr) - return sys_errlist[errnum]; - - return "Unknown system error"; - } - #define strerror private_strerror - #endif /* HAVE_STRERROR */ - -You can for example look in the latest coreutils (the above is a simplified version of what I found there.) Patches should of course be sent to upstream maintainers, this is very useful even for systems with a working `sys_errlist[]`. - -Of course, if you don't care about broken systems (like MS-DOG) not supporting `strerror()` you can just replace `sys_errlist[]` directly (upstream might not accept your patch, but debian should have no problem) - -## <a name="C++_error_t"> C++, `error_t` and `E*` </a> - -On the Hurd, `error_t` is an enumeration of the `E*` constants. However, C++ -does not like `E*` integer macros being directly assigned to that enumeration. In short, replace - - error_t err = EINTR; - -by - - error_t err = error_t(EINTR); - -## <a name="Filenames_ending_in_a_slash_"> Filenames ending in a slash \`/' </a> - -Those are evil if they don't exist and you want to name a directory this way. For example, `mkdir foobar/` will not work on GNU. This is POSIX compatible. POSIX says that the path of a directory may have slashes appended to it. But the directory does not exist yet, so the path does not refer to a directory, and hence trailing slashes are not guaranteed to work. Just drop the slashes, and you're fine. - -## <a name="Missing_termio_h_tt_"> Missing `termio.h` </a> - -Change it to use `termios.h` (check for it properly with autoconf `HAVE_TERMIOS_H` or the `__GLIBC__` macro) - -Also, change calls to `ioctl(fd, TCGETS, ...)` and `ioctl(fd, TCSETS, ...)` with `tcgetattr(fd, ...)` and `tcsetattr(fd, ...)`. - -## <a name="AC_HEADER_TERMIO_tt_"> `AC_HEADER_TERMIO` </a> - -The autoconf check for `AC_HEADER_TERMIO` tryes to check for termios, but it's only really checking for termio in `termios.h`. It is better to use `AC_CHECK_HEADERS(termio.h termios.h)` - -## <a name="_IOT"> missing `_IOT` </a> - -This comes from ioctls. Fixing this is easy if the structure members can be expressed by using the _IOT() macro, else it's simply impossible... See `bits/termios.h` for an instance: - -`#define _IOT_termios /* Hurd ioctl type field. */ \ - _IOT (_IOTS (tcflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)` - -because `struct termios` holds 4 members of type `tcflag_ts`, then `NCCS` -members of type `cc_tsi` and finaly 2 members of type `speed_ts`. - -As you can see, this limits the number of kinds of members to 3, and in -addition to that (see the bitfield described in `ioctls.h`), the third -kind of member is limited to 3 members. However, since at the API -compatibility layer you are generally allowed to reorder fields in -structures, you can usually manage to fit into these limits. - -Note: if a field member is a pointer, then the ioctl can't be expressed -this way, and that makes sense, since the server you're talking to -doesn't have direct access to your memory. Ways other than ioctls must -then be found. - -## <a name="SA_SIGINFO"> `SA_SIGINFO` </a> - -Not implemented, packages may be fixed for working around this: use void sighandler(int num) prototype and sa_handler field. - -## <a name="MSG_NOSIGNAL"> `MSG_NOSIGNAL` </a> - -Not implemented yet: [Savannah bug](https://savannah.gnu.org/bugs/?18218) - -## <a name="IPV6_PKTINFO"> `IPV6_PKTINFO` </a> - -Not fixed yet: [Glibc bug](http://sourceware.org/bugzilla/show_bug.cgi?id=3906) - -## <a name="SOL_IP"> `SOL_IP` </a> - -Not implemented yet. - -## <a name="HZ"> `HZ` </a> - -Linuxish and doesn't even make sense since the value may vary according to the running kernel. Should use `sysconf(_SC_CLK_TCK)` or `CLK_TCK` instead. - -## <a name="SIOCDEVPRIVATE"> `SIOCDEVPRIVATE` </a> - -Oh, we should probably provide it. - -## <a name="MAP_NORESERVE"> `MAP_NORESERVE` </a> - -Not POSIX, but we could implement it. - -## <a name="O_DIRECT"> `O_DIRECT` </a> - -Long story to implement. - -## <a name="PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP"> `PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP` </a> - -We could easily provide it; - -## <a name="PTHREAD_STACK_MIN"> `PTHREAD_STACK_MIN` </a> - -We should actually provide it. - -## <a name="types"> `linux/types.h` or `asm/types.h` </a> - -These are not POSIX, `sys/types.h` and `stdint.h` should be used instead. - -## <a name="iopl"> `iopl` </a> - -Not supported. Try to replace with `ioperm(0, 65536, 1)` (conditionned with `__GNU__` as that will not work in Linux). - -## <a name="iopl"> `semget`, `sem_open` </a> - -Not implemented, will always fail. Use `sem_init()` instead if possible. - -## <a name="net/..."> `net/if_arp.h`, `net/ethernet.h`, etc. </a> - -Not implemented, not POSIX. Try to disable the feature in the package. - -## <a name="broken_libc6_dependency"> broken libc6 dependency </a> - -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` but other OSes will have different ones. You can locate the problem in the `debian/control` file of the source tree. Typical solutions include detecting the OS using `dpkg-architecture` and hardcoding the soname, or better, use a logical OR. eg: `libc6-dev | libc0.3-dev | libc-dev`. The `libc-dev` is a virtual package that works for any soname but you have to put it only as the last option. - ----- - -## <a name="ChangeLog"> ChangeLog </a> - --- [[Main/TWikiGuest]] - 13 Jan 2005 - -Fix xgethostname example. - Neal - --- [[Main/RobertMillan]] - 22 Jul 2002 - -Formatting and minor grammatical fixes. - --- [[Main/JoachimNilsson]] - 09 Sep 2002 - -Added more examples and misc semantical fixes. - --- [[Main/RobertMillan]] - 05 Oct 2002 - -Added `xgethostname` example. - --- [[Main/RobertMillan]] - 15 Nov 2002 - -Added broken libc6 dependency - --- [[Main/RobertMillan]] - 21 Nov 2002 - -Text formatting. - --- Ognyan Kulev - 12 Mar 2003 - -Added `ioctl` entry. - --- [[Main/RobertMillan]] - 19 Mar 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/QEMU.mdwn b/unsorted/QEMU.mdwn deleted file mode 100644 index 27086257..00000000 --- a/unsorted/QEMU.mdwn +++ /dev/null @@ -1,15 +0,0 @@ -QEMU is free software written by Fabrice Bellard that implements a fast processor emulator, allowing a user to run one operating system within another one. It is similar to projects such as Bochs and VMware Workstation, but has several features these lack, including increased speed and support for multiple architectures. By using dynamic translation it achieves a reasonable speed while being easy to port on new host CPUs. - -QEMU has two operating modes: - -* User mode emulation: QEMU can launch Linux processes compiled for one CPU on another CPU. Linux system calls are converted because of endianness and 32/64 bit mismatches. Wine and Dosemu are the main targets for QEMU. - -* System mode emulation: QEMU emulates a full system, including a processor and various peripherials. It enables easier testing and debugging of system code. It can also be used to provide virtual hosting of several virtual PCs on a single server. - -The majority of the program is under the [[LGPL]], with the system mode emulation under the [[GPL]]. - -## <a name="External_links"> External links </a> - -* <http://fabrice.bellard.free.fr/qemu/> -* <http://kidsquid.com/cgi-bin/moin.cgi> QEMU Wiki -* [Qemu on Windows](http://www.h7.dion.ne.jp/~qemu-win/) 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 index 3024ed64..b1111ed5 100644 --- a/unsorted/SavannahProjects.mdwn +++ b/unsorted/SavannahProjects.mdwn @@ -7,6 +7,7 @@ * [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" 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/SystemAPILimits.mdwn b/unsorted/SystemAPILimits.mdwn deleted file mode 100644 index 8930ef9c..00000000 --- a/unsorted/SystemAPILimits.mdwn +++ /dev/null @@ -1,30 +0,0 @@ -## <a name="API_Limitations_of_the_GNU_syste"> </a> API Limitations of the GNU system - ----- - -Sometimes building or running a program will fail due to bugs in the system API implementation (in Glibc and the Hurd). Make sure you check this list and know them before porting, otherwise you'll end up debugging something just to find out its an already known bug. - -Taken from the bug lists in debian BTS. If you find more of them (and it is clear in the bug log that it is a bug), please add them to the list below. See: - -* <http://bugs.debian.org/hurd> ([source](http://packages.qa.debian.org/h/hurd.html) and [binary](http://packages.debian.org/hurd) debs not synchronized) -* <http://bugs.debian.org/hurd-dev> ([binary](http://packages.debian.org/hurd-dev)) -* <http://bugs.debian.org/libc0.3> ([source](http://packages.qa.debian.org/g/glibc.html) & [binary](http://packages.debian.org/libc0.3) debs) -* <http://bugs.debian.org/libc0.3-dev> ([binary](http://packages.debian.org/libc0.3-dev)) - ----- - -These are the known system API limits that have porting implications. - -**_[\#47998](http://bugs.debian.org/47998): `msgget` IPC not implemented_** - -**_[\#184565](http://bugs.debian.org/184565): libc0.3: missing shm\* functions (from `<sys/shm.h>`)_**<br />**breaks:** cdrtools<br />**error:** warning: shm\* is not implemented and will always fail - -**_[\#190581](http://bugs.debian.org/190581): nice() doesn't work_**<br />**breaks:** coreutils<br />**error:** `nice()` doesn't take effect on some situations - -**_[\#187391](http://bugs.debian.org/187391): libc0.3-dev: `sockaddr_un.sun_path` can't be assigned a `const char *` when compiling with g++_**<br />**breaks:** fam, gail<br />**status:** maybe this should be in [[PortingIssues]] (see _long_ bug log) - -**_[\#190367](http://bugs.debian.org/190367): libc0.3-dev: `fcntl` `F_GETLK` not implemented (`ENOSYS`)_**<br />**breaks:** gnome-session (and others) from running<br />**error:** misc lock-related errors - --- [[Main/RobertMillan]] - 01 May 2003 - -Text formatting.<br /> -- [[Main/OgnyanKulev]] - 02 May 2003 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!" |