From 306cbd9d3afc7619bbaef2d14123f6a693802980 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 19 Nov 2008 14:18:21 +0100 Subject: The repository on flubber has moved. --- contributing/web_pages.mdwn | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/contributing/web_pages.mdwn b/contributing/web_pages.mdwn index 8227e7d1..0cf55baf 100644 --- a/contributing/web_pages.mdwn +++ b/contributing/web_pages.mdwn @@ -37,7 +37,7 @@ pages will be more useful for everyone, especially for our own use. When you found a page you want to work on, just follow the *Edit* link on the top of the page. When doing this for the first time, this will first transfer -you to a page where you have to create a wiki account. After logging in, you +you to a page where you have to create an account. After logging in, you can edit the pages. @@ -72,10 +72,10 @@ identity: For being able to do a checkout from which you can later directly push your changes back into the master repository, you need a [[shell_account_on_*flubber*|public_hurd_boxen]] and need to be a member of -the *wiki* group. (It's also very much recommenable that you set up your local +the *hurd-web* group. (It's also very much recommenable that you set up your local ssh configuration as advised on that page.) If you have an account on there: - $ git clone flubber:~wiki/wiki [dest] + $ git clone flubber:~hurd-web/hurd-web [dest] If you don't have such an account or don't have your login data handy, you can still get the pages the read-only way. @@ -89,11 +89,11 @@ If that also doesn't work out, you have yet another chance: pull over the http protocol. Not very efficient (read: rather inefficient), but it works. This is also read-only. - $ git clone http://www.bddebian.com/git/wiki [dest] + $ git clone http://www.bddebian.com:8888/git/hurd-web [dest] -For all cases: if you omit `[dest]` it will default to `wiki`. +For all cases: if you omit `[dest]` it will default to `hurd-web`. -Later, you can just `cd` into the `wiki` directory and run a `git pull` to get +Later, you can just `cd` into the `hurd-web` directory and run a `git pull` to get hold of the latest changes others have been installing in the mean time. (Even better would be to do a `git fetch`, followed by a `git rebase origin/master` to avoid those *Merge branch ...* messages. See the git documentation for @@ -102,7 +102,7 @@ details.) But now: work on these files. - $ cd wiki/ + $ cd hurd-web/ $ emacs hurd/ng.mdwn $ # Check what you've done. $ git diff hurd/ng.mdwn @@ -122,12 +122,12 @@ into the master repository, see below. You can also locally get the whole set of pages rendered to HTML: - $ wiki/render_locally + $ hurd-web/render_locally [...] scanning contributing/web_pages.mdwn rendering contributing/web_pages.mdwn - Now open `wiki.rendered/index.html' to browse the pages. + Now open `hurd-web.rendered/index.html' to browse the pages. If you like what you've done, then it's now time to publish your changes. -- cgit v1.2.3 From 1de4ec0bcfad92dfa0b7cf69919d56c0dca4cb7a Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 19 Nov 2008 15:54:07 +0100 Subject: Revert "microkernel/mach/gnumach -> microkernel/mach/gnu_mach" This reverts commit ae9e4e22a7ce8b2b56e98ff1708c2e8d42eefd69. I've changed my mind again. Also resolve conflicts and adapt all new uses of the path. --- community/gsoc/project_ideas.mdwn | 6 +- contributing.mdwn | 6 +- hurd/building/cross-compiling.mdwn | 2 +- hurd/getting_help.mdwn | 2 +- hurd/libstore.mdwn | 2 +- hurd/running.mdwn | 2 +- microkernel/mach.mdwn | 2 +- microkernel/mach/documentation.mdwn | 2 +- microkernel/mach/gnu_mach.mdwn | 80 -------- microkernel/mach/gnu_mach/boot_trace.mdwn | 222 --------------------- microkernel/mach/gnu_mach/building.mdwn | 114 ----------- microkernel/mach/gnu_mach/building/example.mdwn | 54 ----- microkernel/mach/gnu_mach/debugging.mdwn | 68 ------- .../mach/gnu_mach/hardware_compatibility_list.mdwn | 111 ----------- .../hardware_compatibility_list/discussion.mdwn | 4 - microkernel/mach/gnu_mach/open_issues.mdwn | 19 -- microkernel/mach/gnu_mach/ports.mdwn | 15 -- microkernel/mach/gnu_mach/ports/xen.mdwn | 78 -------- microkernel/mach/gnu_mach/ports/xen/internals.mdwn | 14 -- .../ports/xen/networking_configuration.mdwn | 105 ---------- microkernel/mach/gnu_mach/projects.mdwn | 129 ------------ .../mach/gnu_mach/projects/clean_up_the_code.mdwn | 121 ----------- microkernel/mach/gnu_mach/projects/gdb_stubs.mdwn | 13 -- microkernel/mach/gnu_mach/reference_manual.mdwn | 26 --- microkernel/mach/gnumach.mdwn | 80 ++++++++ microkernel/mach/gnumach/boot_trace.mdwn | 222 +++++++++++++++++++++ microkernel/mach/gnumach/building.mdwn | 114 +++++++++++ microkernel/mach/gnumach/building/example.mdwn | 54 +++++ microkernel/mach/gnumach/debugging.mdwn | 68 +++++++ .../mach/gnumach/hardware_compatibility_list.mdwn | 111 +++++++++++ .../hardware_compatibility_list/discussion.mdwn | 4 + microkernel/mach/gnumach/open_issues.mdwn | 19 ++ microkernel/mach/gnumach/ports.mdwn | 15 ++ microkernel/mach/gnumach/ports/xen.mdwn | 78 ++++++++ microkernel/mach/gnumach/ports/xen/internals.mdwn | 14 ++ .../ports/xen/networking_configuration.mdwn | 105 ++++++++++ microkernel/mach/gnumach/projects.mdwn | 129 ++++++++++++ .../mach/gnumach/projects/clean_up_the_code.mdwn | 121 +++++++++++ microkernel/mach/gnumach/projects/gdb_stubs.mdwn | 13 ++ microkernel/mach/gnumach/reference_manual.mdwn | 26 +++ microkernel/mach/history.mdwn | 2 +- microkernel/mach/mig/documentation.mdwn | 2 +- microkernel/mach/mig/gnu_mig/building.mdwn | 2 +- news/2008-11-14.mdwn | 2 +- sidebar.mdwn | 2 +- 45 files changed, 1190 insertions(+), 1190 deletions(-) delete mode 100644 microkernel/mach/gnu_mach.mdwn delete mode 100644 microkernel/mach/gnu_mach/boot_trace.mdwn delete mode 100644 microkernel/mach/gnu_mach/building.mdwn delete mode 100644 microkernel/mach/gnu_mach/building/example.mdwn delete mode 100644 microkernel/mach/gnu_mach/debugging.mdwn delete mode 100644 microkernel/mach/gnu_mach/hardware_compatibility_list.mdwn delete mode 100644 microkernel/mach/gnu_mach/hardware_compatibility_list/discussion.mdwn delete mode 100644 microkernel/mach/gnu_mach/open_issues.mdwn delete mode 100644 microkernel/mach/gnu_mach/ports.mdwn delete mode 100644 microkernel/mach/gnu_mach/ports/xen.mdwn delete mode 100644 microkernel/mach/gnu_mach/ports/xen/internals.mdwn delete mode 100644 microkernel/mach/gnu_mach/ports/xen/networking_configuration.mdwn delete mode 100644 microkernel/mach/gnu_mach/projects.mdwn delete mode 100644 microkernel/mach/gnu_mach/projects/clean_up_the_code.mdwn delete mode 100644 microkernel/mach/gnu_mach/projects/gdb_stubs.mdwn delete mode 100644 microkernel/mach/gnu_mach/reference_manual.mdwn create mode 100644 microkernel/mach/gnumach.mdwn create mode 100644 microkernel/mach/gnumach/boot_trace.mdwn create mode 100644 microkernel/mach/gnumach/building.mdwn create mode 100644 microkernel/mach/gnumach/building/example.mdwn create mode 100644 microkernel/mach/gnumach/debugging.mdwn create mode 100644 microkernel/mach/gnumach/hardware_compatibility_list.mdwn create mode 100644 microkernel/mach/gnumach/hardware_compatibility_list/discussion.mdwn create mode 100644 microkernel/mach/gnumach/open_issues.mdwn create mode 100644 microkernel/mach/gnumach/ports.mdwn create mode 100644 microkernel/mach/gnumach/ports/xen.mdwn create mode 100644 microkernel/mach/gnumach/ports/xen/internals.mdwn create mode 100644 microkernel/mach/gnumach/ports/xen/networking_configuration.mdwn create mode 100644 microkernel/mach/gnumach/projects.mdwn create mode 100644 microkernel/mach/gnumach/projects/clean_up_the_code.mdwn create mode 100644 microkernel/mach/gnumach/projects/gdb_stubs.mdwn create mode 100644 microkernel/mach/gnumach/reference_manual.mdwn diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index 8f2fe385..c4b665b7 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -340,7 +340,7 @@ GSoC 2008. He is still working on some outstanding issues. Although a driver framework in userspace would be desirable, presently the Hurd uses kernel drivers in the microkernel, -[[microkernel/mach/GNU_Mach]]. (And changing this would be far beyond a +[[GNU_Mach|microkernel/mach/gnumach]]. (And changing this would be far beyond a GSoC project...) The problem is that the drivers in GNU Mach are presently old Linux drivers @@ -590,7 +590,7 @@ pthreads. The Hurd presently has no sound support. Fixing this, [[GNU_Savannah_task 5485]], requires two steps: the first is to port some other kernel's drivers to -[[microkernel/mach/GNU_Mach]] so we can get access to actual sound +[[GNU_Mach|microkernel/mach/gnumach]] so we can get access to actual sound hardware. The second is to implement a userspace server ([[hurd/translator]]), that implements an interface on top of the kernel device that can be used by applications -- probably OSS or maybe ALSA. @@ -741,7 +741,7 @@ directories and attaching other translators. Although there are some attempts to move to a more modern microkernel alltogether, the current Hurd implementation is based on -[[microkernel/mach/GNU_Mach]], which is only a slightly modified +[[GNU_Mach|microkernel/mach/gnumach]], which is only a slightly modified variant of the original CMU [[microkernel/Mach]]. Unfortunately, Mach was created about two decades ago, and is in turn based on diff --git a/contributing.mdwn b/contributing.mdwn index aac255bd..a647382a 100644 --- a/contributing.mdwn +++ b/contributing.mdwn @@ -33,7 +33,7 @@ There are essential two kinds of Hurd system designs. ## Hurd on Mach For one there's the implementation of the *[[Hurd]] running on the -[[microkernel/mach/GNU_Mach]] microkernel*. This is what is commonly +[[GNU_Mach_microkernel|microkernel/mach/gnumach]]*. This is what is commonly meant when people are talking about GNU/Hurd systems. This system has mostly been designed and implemented @@ -84,8 +84,8 @@ Here is a [[list_of_open_issues|hurd/open_issues]] for the [[GNU_Hurd|hurd]]. ### Open Issues: GNU Mach -Here is a [[list_of_open_issues|microkernel/mach/gnu_mach/open_issues]] for -[[microkernel/mach/GNU_Mach]]. +Here is a [[list_of_open_issues|microkernel/mach/gnumach/open_issues]] for +[[GNU_Mach|microkernel/mach/gnumach]]. ### Open Issues: GNU MIG diff --git a/hurd/building/cross-compiling.mdwn b/hurd/building/cross-compiling.mdwn index 81303b0a..b007928c 100644 --- a/hurd/building/cross-compiling.mdwn +++ b/hurd/building/cross-compiling.mdwn @@ -98,7 +98,7 @@ guarantee is given. Always the preferred version is listed first. `gcc-4_3-branch` needs. --> -* `src/gnumach`: [[microkernel/mach/GNU_Mach]] +* `src/gnumach`: [[GNU_Mach|microkernel/mach/gnumach]] * CVS `gnumach-1-branch` diff --git a/hurd/getting_help.mdwn b/hurd/getting_help.mdwn index c4f80ff9..342410dd 100644 --- a/hurd/getting_help.mdwn +++ b/hurd/getting_help.mdwn @@ -11,7 +11,7 @@ is included in the section entitled # Essential Documentation * [[FAQ]] -* [[microkernel/mach/gnu_mach/Hardware_Compatibility_List]] +* [[microkernel/mach/gnumach/Hardware_Compatibility_List]] # Forums diff --git a/hurd/libstore.mdwn b/hurd/libstore.mdwn index 3de42be3..ab649ebc 100644 --- a/hurd/libstore.mdwn +++ b/hurd/libstore.mdwn @@ -9,7 +9,7 @@ is included in the section entitled [[GNU_Free_Documentation_License|/fdl]]."]]"""]] `libstore` is more than just a thin layer between -[[microkernel/mach/GNU_Mach]] devices (`hd0` for example) and the +[[GNU_Mach|microkernel/mach/gnumach]] devices (`hd0` for example) and the device node below `/dev`... # Available Stores diff --git a/hurd/running.mdwn b/hurd/running.mdwn index 78815099..162bc9ea 100644 --- a/hurd/running.mdwn +++ b/hurd/running.mdwn @@ -9,7 +9,7 @@ is included in the section entitled [[GNU_Free_Documentation_License|/fdl]]."]]"""]] * [[Distrib]] - Distributions based on the Hurd -* [[microkernel/mach/gnu_mach/ports/Xen]] - In Xen +* [[microkernel/mach/gnumach/ports/Xen]] - In Xen * [[Live_CD]] * [[QEMU]] - In QEMU * [[vmware]] (**non-free!**) diff --git a/microkernel/mach.mdwn b/microkernel/mach.mdwn index 9d3289b4..39d0f4d2 100644 --- a/microkernel/mach.mdwn +++ b/microkernel/mach.mdwn @@ -7,7 +7,7 @@ microkernel currently used by the [[Hurd]]. # Implementations -* [[GNU_Mach]] +* [[GNU_Mach|gnumach]] * [[Mach/OskitMach]] - A Once Successor of Mach based on OSKit * [Apple's Darwin](http://developer.apple.com/darwin/) ([API](http://developer.apple.com/documentation/Darwin/Conceptual/KernelProgramming/index.html)) (**non-free**) diff --git a/microkernel/mach/documentation.mdwn b/microkernel/mach/documentation.mdwn index f6f2eb79..b4187f78 100644 --- a/microkernel/mach/documentation.mdwn +++ b/microkernel/mach/documentation.mdwn @@ -12,7 +12,7 @@ is included in the section entitled - [Meet Mach](http://www.stepwise.com/Articles/Technical/MeetMach.html), a summary of Mach's history and main concepts. - * *[[The_GNU_Mach_Reference_Manual|gnu_mach/reference_manual]]*. + * *[[The_GNU_Mach_Reference_Manual|gnumach/reference_manual]]*. - OSF's [Kernel Interface (ps)](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_interface.ps) [Kernel Interface (pdf)](http://shakthimaan.com/downloads/hurd/kernel_interface.pdf) diff --git a/microkernel/mach/gnu_mach.mdwn b/microkernel/mach/gnu_mach.mdwn deleted file mode 100644 index 19e1ea53..00000000 --- a/microkernel/mach/gnu_mach.mdwn +++ /dev/null @@ -1,80 +0,0 @@ -[[meta copyright="Copyright © 2001, 2002, 2007, 2008 Free Software Foundation, -Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -GNU Mach is the microkernel that the [[GNU_Hurd|hurd]] system is based on. - -It is maintained by the Hurd developers for the GNU project and remains -compatible with [[Mach]] 3.0. - -The majority of GNU Mach's [[device_driver]]s are from Linux 2.0. They were -added using glue code, i.e., a Linux [[emulation]] layer in Mach. - -GNU Mach runs on x86 machines. See the -[[hardware_compatibility_list]] and information about -[[ports]] to other architectures. - - -# Advantages of GNU Mach - -GNU Mach is not the most advanced [[microkernel]] known to the planet, nor is -it the fastest or smallest, but it has a rich set of [[interface]]s and some -features which make it useful as the base of the [[Hurd]] system. - - * **it's free software** - - Anybody can use, modify, and redistribute it under the terms of the - [[GNU_General_Public_License_(GPL)|gpl]]. - - * **it's built to survive** - - As a [[microkernel]], GNU Mach doesn't implement a lot of the features - commonly found in an operating system, but only the bare minimum that is - required to implement a full operating system on top of it. This means - that a lot of the operating system code is maintained outside of GNU Mach, - and while this code may go through a complete redesign, the code of the - microkernel can remain comparatively stable. - - * **it's scalable** - - Mach is particularly well suited for SMP and network cluster techniques. - Thread support is provided at the kernel level, and the kernel itself takes - advantage of that. Network transparency at the [[IPC]] level makes - resources of the system available across machine boundaries (with NORMA - IPC, currently not available in GNU Mach). - - * **it exists** - - The Mach microkernel is real software that works Right Now. It is not a - research or a proposal. You don't have to wait at all before you can start - using and developing it. Mach has been used in many operating systems in - the past, usually as the base for a single UNIX server. In the GNU system, - Mach is the base of a functional multi-server operating system, the - [[Hurd]]. - - -# Booting - -To actually use the kernel and boot the GNU operating system, you need a boot -loader. Not all boot loaders are capable to boot the GNU system, you need one -that supports the multiboot standard. The bootloader of the GNU system is -[[GNU_GRUB|grub]], which supports a broad range of operating systems including -GNU/Hurd. - - -# Development - - * [[Reference_Manual]] - * [[Building]] - * [[Debugging]] - * [[Boot_Trace]] - * [[Projects]] - * [[Rules]] - * [[Open_Issues]] diff --git a/microkernel/mach/gnu_mach/boot_trace.mdwn b/microkernel/mach/gnu_mach/boot_trace.mdwn deleted file mode 100644 index a08384f0..00000000 --- a/microkernel/mach/gnu_mach/boot_trace.mdwn +++ /dev/null @@ -1,222 +0,0 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -`if NCPUS > 1` stuff is not being considered so far. - - -> i386/i386at/boothdr.S: \_start - -> i386/i386at/boothdr.S: boot\_entry - ->> i386/i386at/model\_dep.c: c\_boot\_entry - ->>> i386/i386at/boothdr.S: discover\_x86\_cpu\_type - ->>> i386/i386at/model\_dep.c: i386at\_init - ->>>> i386/i386/pic.c: picinit - ->>>> i386/i386at/model\_dep.c: mem\_size\_init - ->>>> i386/intel/pmap.c: pmap\_bootstrap - ->>>> i386/i386/gdt.c: gdt\_init - ->>>> i386/i386/idt.c: idt\_init - ->>>> i386/i386at/int\_init.c: int\_init - ->>>> i386/i386/ldt.c: ldt\_init - ->>>> i386/i386/ktss.c: ktss\_init - ->>> kern/startup.c: setup\_main - ->>>> kern/debug.c: panic\_init - ->>>> kern/printf.c: printf\_init - ->>>> kern/sched\_prim.c: sched\_init - ->>>>> kern/sched\_prim.c: wait\_queue\_init - ->>>>> kern/processor.c: pset\_sys\_bootstrap - ->>>>> kern/ast.c: ast\_init - ->>>> vm/vm\_init.c: vm\_mem\_bootstrap - ->>>>> vm/vm\_resident.c: vm\_page\_bootstrap - ->>>>>> vm/vm\_resident.c: pmap\_startup - ->>>>> kern/zalloc.c: zone\_bootstrap - ->>>>> vm/vm\_object.c: vm\_object\_bootstrap - ->>>>>> vm/vm\_external.c: vm\_external\_module\_initialize - ->>>>> vm/vm\_map.c: vm\_map\_init - ->>>>> vm/vm\_kern.c: kmem\_init - ->>>>> i386/intel/pmap.c: pmap\_init - ->>>>> kern/zalloc.c: zone\_init - ->>>>> kern/kalloc.c: kalloc\_init - ->>>>> vm/vm\_fault.c: vm\_fault\_init - ->>>>> vm/vm\_resident.c: vm\_page\_module\_init - ->>>>> vm/memory\_object.c: memory\_manager\_default\_init - ->>>> ipc/ipc\_init.c: ipc\_bootstrap - ->>>>> ipc/ipc\_table.c: ipc\_table\_init - ->>>>> ipc/ipc\_notify.c: ipc\_notify\_init - ->>>>> ipc/ipc\_hash.c: ipc\_hash\_init - ->>>>> ipc/ipc\_marequest.c: ipc\_marequest\_init - ->>>> vm/vm\_init.c: vm\_mem\_init - ->>>>> vm/vm\_object.c: vm\_object\_init - ->>>> ipc/ipc\_init.c: ipc\_init - ->>>>> kern/ipc\_host.c: ipc\_host\_init - ->>>>>> kern/ipc\_host.c: ipc\_pset\_init - ->>>>>> kern/ipc\_host.c: ipc\_pset\_enable - ->>>>>> kern/ipc\_host.c: ipc\_processor\_init - ->>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL - ->>>> kern/timer.c: init\_timers - ->>>> kern/mach\_clock.c: init\_timeout - ->>>> kern/xpr.c: xprbootstrap - ->>>> kern/time\_stamp.c: timestamp\_init - ->>>> kern/mach\_clock.c: mapable\_time\_init - ->>>> i386/i386at/model\_dep.c: machine\_init - ->>>>> device/cons.c: cninit - ->>>>> i386/i386/fpu.c: init\_fpu - ->>>>> linux/dev/init/main.c: linux\_init - ->>>>>> linux/dev/arch/i386/kernel/irq.c: init\_IRQ - ->>>>>>> linux/dev/arch/i386/kernel/irq.c: reserve\_mach\_irqs - ->>>>>> linux/dev/kernel/sched.c: linux\_sched\_init - ->>>>>> linux/dev/init/main.c: calibrate\_delay - ->>>>>> linux/dev/glue/kmem.c: linux\_kmem\_init - ->>>>>> linux/src/drivers/pci/pci.c: pci\_init - ->>>>>>> linux/src/arch/i386/kernel/bios32.c: pcibios\_init - ->>>>>>> linux/src/drivers/pci/pci.c: scan\_bus - ->>>>>>> linux/src/arch/i386/kernel/bios32.c: pcibios\_fixup - ->>>>>> linux/dev/glue/net.c: linux\_net\_emulation\_init - ->>>>>> linux/dev/drivers/block/genhd.c: device\_setup - ->>>>>>> linux/dev/glue/block.c: blk\_dev\_init - ->>>>>>>> linux/src/drivers/block/ide.c: ide\_init - ->>>>>>>> linux/dev/drivers/block/floppy.c: floppy\_init - ->>>>>>> linux/src/drivers/scsi/scsi.c: scsi\_dev\_init - ->>>>>>> linux/dev/net/core/dev.c: net\_dev\_init - ->>>>>> linux/pcmcia-cs/glue/pcmcia.c: pcmcia\_init - ->>>>> i386/i386at/autoconf.c: probeio - ->>>>> i386/i386at/model\_dep.c: inittodr - ->>>>> i386/intel/pmap.c: pmap\_unmap\_page\_zero - ->>>> kern/task.c: task\_init - ->>>>> kern/syscall\_emulation.c: eml\_init - ->>>> kern/thread.c: thread\_init - ->>>>> i386/i386/pcb.c: pcb\_module\_init - ->>>>>> i386/i386/fpu.c: fpu\_module\_init - ->>>>>> i386/i386/iopb.c: iopb\_init - ->>>> kern/thread\_swap.c: swapper\_init - ->>>> kern/sched\_prim.c: recompute\_priorities - ->>>> kern/mach\_factor.c: compute\_mach\_factor - ->>>> kern/startup.c: start\_kernel\_threads - -[...] - ->>>> kern/startup.c: cpu\_launch\_first\_thread - ->>>>> i386/i386at/model\_dep.c: startrtclock - ->>>>>> i386/i386/pit.c: clkstart - ->>>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL - ->>>>> i386/i386/pcb.c: load\_context - -[...] - -> kern/startup.c: start\_kernel\_threads - -> Threads get created. - ->> kern/sched\_prim.c: idle\_thread - ->> One for each CPU. - ->> kern/thread.c: reaper\_thread - ->> kern/thread\_swap.c: swapin\_thread - ->> kern/sched\_prim.c: sched\_thread - ->> [...] - ->> kern/bootstrap.c: bootstrap\_create - ->> [...] - ->> vm\_pageout - ->> Does not return. diff --git a/microkernel/mach/gnu_mach/building.mdwn b/microkernel/mach/gnu_mach/building.mdwn deleted file mode 100644 index 014d3e87..00000000 --- a/microkernel/mach/gnu_mach/building.mdwn +++ /dev/null @@ -1,114 +0,0 @@ -Additional to the following text, a further [[example]] has be posted. - - -# Building [[GNU_Mach]] from Source - -If you want to build the [[GNU_Mach]] kernel yourself instead of just using a -pre-built binary, follow these instructions. - -The unpacked source tree is around 20 MiB, and the build tree (with all drivers -enabled) is around 50 MiB. - -## Getting the Source Code - -### Developers's RCS - -See . - - $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co -r gnumach-1-branch gnumach - -(Most probably you want to get hold of the *GNU Mach 1 branch* and not the -trunk, which is also what we've done above.) - -You then have to create the automatically generatable files: - - $ ( cd gnumach && autoreconf --install ) - -### What Debian is currently using - -See [here](http://packages.debian.net/source/unstable/gnumach). - - $ apt-get source gnumach - -Please see the Debian [[running/debian/FAQ]] before using `apt-get source`. - -## Preparing for the Build - -### ... on Debian systems - -Building GNU Mach requires the *build-essential* and *fakeroot* packages, their -dependencies and additional packages that are specified by the source gnumach -package: - - # apt-get install build-essential fakeroot - # apt-get build-dep gnumach - -### ... on non-Debian systems - -Apart from the case that you only want to install GNU Mach's header files (see -below), building GNU Mach requires you to have the Mach Interface Generator -installed. See [[building_MIG|mig/gnu_mig/building]] about how to do that, then come -back here. - -Additionally, building GNU Mach requires a C compiler, a standard C library and -your favourite flavor of awk (gawk) and GNU make. - -## Building and Installing - -### ... Debian `.deb` files - -Change into the directory with the downloaded / unpacked GNU Mach sources, e.g. - - $ cd gnumach-20050801 - -Start the build process with - - $ dpkg-buildpackage -us -uc -b -rfakeroot - -[[GNU_Mach]] is now building. To use the new kernel, you must install the -resulting `.deb` package which is located one directory above the build -directory and has a similar name as the build directory, e.g. - - # dpkg -i ../gnumach_20050801-4_hurd-i386.deb - -You can now reboot your computer and enjoy the new kernel. - -### [TODO] - -GNU Mach should be built in a separate directory: - - $ mkdir gnumach-build - $ cd gnumach-build - -Find the path to your GNU Mach sources (`[...]/gnumach-1-branch`) and configure -it: - - $ [...]/gnumach-1-branch/configure [TODO] - -Build the kernel image: - - $ make gnumach.gz - -Optionally run the (tiny) test suite: - - $ make check - -You can then install and use `gnumach.gz`. - -[TODO.] - -### Installing only the Header Files - -GNU Mach should be built in a separate directory: - - $ mkdir gnumach-build - $ cd gnumach-build - -Find the path to your GNU Mach sources (`[...]/gnumach-1-branch`) and configure -it: - - $ [...]/gnumach-1-branch/configure --prefix= - -Install the header files into e.g. `~/gnu/include/`: - - $ make DESTDIR=~/gnu install-data diff --git a/microkernel/mach/gnu_mach/building/example.mdwn b/microkernel/mach/gnu_mach/building/example.mdwn deleted file mode 100644 index 6da05c5b..00000000 --- a/microkernel/mach/gnu_mach/building/example.mdwn +++ /dev/null @@ -1,54 +0,0 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -## Compiling GNU Mach microkernel - -Host development system is IBM T41 running Debian Sarge 3.1r0a GNU/Linux. - -* gcc version: 3.3.5 -* GNU sed version: 4.1.2 -* GNU make version: 3.8 -* mig version: 1.3-4 - -Obtained gnumach-1-branch sources from cvs: - - export CVS_RSH="ssh" - cvs -z3 -d:ext:anoncvs@ savannah.gnu.org:/cvsroot/hurd co -r gnumach-1-branch gnumach - -Obtained mig_1.3-4_i386.deb from -http://www.hadrons.org/~guillem/debian/pool/main/mig/. Installed it using dpkg: - - dpkg -i mig_1.3-4_i386.deb - -Entered into the gnumach sources and did the following for compilation: - - mkdir build - cd build - ../configure --host=i386-unknown-gnu0.2 --build=i586-pc-linux-gnu \ - --enable-kdb --enable-ide - make - -The kernel file is created in the build directory. Move it to /boot on the -testing x86 system Hurd partition. Rename it as gnumach1 and compress it: - - mv kernel gnumach1 - gzip gnumach1 - -Add a new entry on the testing machine /boot/grub/menu.lst to boot the new -kernel. - - title GNU Hurd K10 Compiled gnumach - kernel (hd0,3)/boot/gnumach1.gz root=device:hd2s4 -s - module (hd0,3)/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 (hd0,3)/lib/ld.so.1 /hurd/exec $(exec-task=task-create) - -Reboot into the new compiled mygnumach1.gz kernel! diff --git a/microkernel/mach/gnu_mach/debugging.mdwn b/microkernel/mach/gnu_mach/debugging.mdwn deleted file mode 100644 index fa2a9d42..00000000 --- a/microkernel/mach/gnu_mach/debugging.mdwn +++ /dev/null @@ -1,68 +0,0 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -Mach has a built-in kernel debugger. -[Manual](http://www.gnu.org/software/hurd/gnumach-doc/Kernel-Debugger.html). - - -When you're [[running_a_system_in_QEMU|hurd/running/qemu]] you can directly -[use GDB on the running -kernel](http://fabrice.bellard.free.fr/qemu/qemu-doc.html#SEC36). - - -Alternatively you can use an approach like this one: add the following code -snippet to `device/ds_routines.c`'s `ds_device_open` function, right at the top -of the function, and modify the code as needed. - - void D (char *s) - { - switch (s[0] - '0') - { - case 0: - printf ("Hello from %s!\n", __FUNCTION__); - break; - case 1: - printf ("%s: Invoking task_collect_scan.\n", __FUNCTION__); - extern void task_collect_scan (void); - task_collect_scan (); - break; - default: - printf ("No idea what you want me to do.\n"); - break; - } - } - - if (name && name[0] == 'D') - D (name + 1); - -Then boot your system and do something like this: - - # devprobe D0 - Hello from D! - # devprobe D1 - D: Invoking task_collect_scan. - # devprobe D2 - No idea what you want me to do. - -This is especially useful if you need to manually trigger some stuff inside the -running kernel, as with the *D1* example. - - -If you're doing real low level debugging, you might want to put variations of -the following snipped into the code, this code will write a `#` character at -line `[LINE]`, column `[COLUMN]` on the screen: - - *((char *) 0xb8000 + 2 * ([LINE] * 80 + [COLUMN])) = '#'; - halt_cpu (); - -The call of `halt_cpu` will -- as the name suggests -- halt the system -afterwards. This might be what you want or it might not, but it is needed at -some place when running the kernel inside QEMU, as QEMU somehow decides not to -update its display buffer anymore under certain conditions. diff --git a/microkernel/mach/gnu_mach/hardware_compatibility_list.mdwn b/microkernel/mach/gnu_mach/hardware_compatibility_list.mdwn deleted file mode 100644 index 09882467..00000000 --- a/microkernel/mach/gnu_mach/hardware_compatibility_list.mdwn +++ /dev/null @@ -1,111 +0,0 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -# CPU Architecture - -GNU Mach current only supports the `x86` (alias `ia32` or `i386`) architecture. - -`amd64`/`ix64` should work in `32-bit` compatibility mode. However, in practice -`amd64` systems seem to be troublesome more often than not. This is probably -related to the same (chipset-related) problems we often see with recent -machines; but it seems that `amd64` ones use problematic chipsets particularily -often. So far we haven't heard of similar problems with Intel's eqivalent -`ix64` (or `EM64T` as it used to be called) -- but maybe that just means fewer -people tried running the Hurd on such machines :-) - -Support for running GNU Mach (and a complete GNU/Hurd system) in a -[Xen](http://www.cl.cam.ac.uk/research/srg/netos/xen/) `domU` (again on `x86` -only) is [[being_worked_on|ports/xen]]. - -Read about further [[ports]]. - -# Memory - -GNU Mach will use a maximum of 1 GiB of RAM. If your system has more, -the surplus will silently be ignored. (In past times, this would hinder GNU -Mach from booting at all, but this has been fixed, so you no longer need to -apply GRUB's `uppermem` directive.) - -# Video Cards - -Debian distributes a version of [X.org](http://x.org/). If your video card driver -depends on a special kernel interface such as that provided by -the `agpgart` kernel module for the Linux kernel, then your video -card will only be supported by the VESA driver. - -Using an internal i815 videocard [won't -work](http://lists.debian.org/debian-hurd/2007/12/msg00007.html) (at least when -using the specialized driver), because of [missing AGP GART support in GNU -Mach](http://lists.debian.org/debian-hurd/2007/12/msg00011.html). - -# Sound - -No sound cards are supported at this time. - -# USB 1.1/2.0 - -USB is not supported at this time. - -However, USB-type keyboards and mice may (and have been reported to) work -nevertheless, given that the hardware / BIOS is doing emulation to the -supported legacy interfaces. - -# IEEE 1394 (Firewire) - -IEEE 1394 is not supported at this time - -# Storage - -All common IDE drives should work. Some drive geometries do not work, -e.g. drives with hundreds of GiB of storage space. If you find a specific IDE -drive that does not work, make a note of the model and technical specifications -here. - -[[toggle id="SATA" text="SATA drives may work in compatibility mode."]] - - -[[toggleable id="SATA" text=""" -This is how booting a [[GNU/Hurd_system|hurd]] will typically fail if GNU Mach -couldn't connect to the hard disk, e.g., in a SATA system without IDE -compatibility mode: - - start (hd0,3)/hurd/ext2fs.static: (hd0,3)/hurd/ext2fs.static - device:hd0s4: No such device or address - -There *may* be an option in the system's BIOS setup to configure enabling such -a compatibility mode. -"""]] - -# Device Drivers - -[GNU Mach Reference Manual, -Configuration](http://www.gnu.org/software/hurd/gnumach-doc/Configuration.html) -contains a list of device drivers that are included in GNU Mach and elaborates -on the hardware devices they support. - -# User Success Reports - -These boards are known to work. Gnumach/Hurd has been installed and run on these board successfully. - -* ASUS P2B motherboard with an Intel PII 450MHz CPU with Intel Pro/100 NIC in PCI slot -* Intel SE-440BX motherboard -* VIA EPIA-M Mini-ITX motherboard with VIA Nehemiah C3 1Ghz processor. Onboard NIC (VIA Rhine) works good. -* Compaq Deskpro ENS, Pentium3 (666 MHz upgraded to 1 GHz), Intel i815 chipset, chipset integrated NIC (detected twice, but works fine with eth0; trying to access eth1 confuses the driver and makes the system unusable), Matrox Mystique 220 (PCI) graphics card. Also works with rtl8029 (NE2000 PCI) NIC when onboard NIC disabled in BIOS setup. -* Abit BX6 Rev. 2.0 with Celeron 400, after disabling "memory hole at 15MB" option in BIOS setup. (Otherwise, Mach detects only 15MiB of RAM, making Hurd run *extremely* slow and instable.) Should also work with PentiumII or Pentium3. - -# User Failure Reports - -Some people couldn't get these hardware combinations to work with Hurd. - -Note: The Debian GNU/Hurd installer actually runs on Linux, so it (almost) always works. The critical bit is booting after installation. - -* ASUS P5A motherboard and AMD K6-2 333MHz CPU - doesn't boot -* ASUS P2B-LS motherboard with an Intel PII-MMX 400 MHz CPU - this board had a defective onboard NIC (that could not be disable in BIOS) and working 3COM Etherlink III NIC in a PCI bus slot. This combination worked with GNU/Linux. The 3COM NIC is known to work with the Hurd. However, while gnumach/Hurd will boot on this system, it is confused by the defective onboard NIC and unable to use the 3COM NIC. Attempting to start networking generates a continous stream of eth0 and eth1 reset messages on the console that renders the system unusable. -* ASrock 775Twins-HDTV with a Pentium D 810 (533 MGz FSB/2600GHz core -- information no longer present on intel's site). Doesn't boot. diff --git a/microkernel/mach/gnu_mach/hardware_compatibility_list/discussion.mdwn b/microkernel/mach/gnu_mach/hardware_compatibility_list/discussion.mdwn deleted file mode 100644 index 69ca3190..00000000 --- a/microkernel/mach/gnu_mach/hardware_compatibility_list/discussion.mdwn +++ /dev/null @@ -1,4 +0,0 @@ -Further information may still be found on - -and could perhaps be incorporated into that page. ---[[tschwinge]] diff --git a/microkernel/mach/gnu_mach/open_issues.mdwn b/microkernel/mach/gnu_mach/open_issues.mdwn deleted file mode 100644 index 433ec3ef..00000000 --- a/microkernel/mach/gnu_mach/open_issues.mdwn +++ /dev/null @@ -1,19 +0,0 @@ -[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -[[meta title="Open Issues"]] - -This is a dumping ground for open issues for GNU Mach. - -[[inline -pages="microkernel/mach/gnumach/open_issues/* and !*/discussion" -show=0 -actions=yes -rootpage="microkernel/mach/gnumach/open_issues" postformtext="Add a new item titled:"]] diff --git a/microkernel/mach/gnu_mach/ports.mdwn b/microkernel/mach/gnu_mach/ports.mdwn deleted file mode 100644 index 00cdee8c..00000000 --- a/microkernel/mach/gnu_mach/ports.mdwn +++ /dev/null @@ -1,15 +0,0 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - - * x86. This is the main port. - * [PowerPC](http://www.pjbruin.dds.nl/hurd/). Is not in a usable state. - * Alpha. Was once started, but isn't in a usable state either. - - * [[Xen]] diff --git a/microkernel/mach/gnu_mach/ports/xen.mdwn b/microkernel/mach/gnu_mach/ports/xen.mdwn deleted file mode 100644 index c492d9a0..00000000 --- a/microkernel/mach/gnu_mach/ports/xen.mdwn +++ /dev/null @@ -1,78 +0,0 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -[[toc ]] - -## Xen dom0, hypervisor - -/!\ Now that GNU Mach handles PAE you can use a PAE-enabled hypervisor. - -You can either get binaries at or build them yourself. - -- Copy `gnumach-xen` and `hurd-modules` to your dom0 /boot. -- Copy `hurd` into `/etc/xen`, edit it for fixing access to your hurd / and swap - -## GNU/Hurd system - -/!\ You need an already installed GNU/Hurd system. - -If you have a free partition, you can fdisk to type 0x83, create a filesystem using: - - sudo mke2fs -b 4096 -I 128 -o hurd /dev/sda4 - -Replace /dev/sda4 with your partition. Install and use crosshurd to setup a GNU/Hurd system on this partition. - -## /etc/xen/hurd configuration - -Here is a sample /etc/xen/hurd configuration - - kernel = "/boot/gnumach-xen" - memory = 256 - disk = ['phy:sda4,hda,w'] - extra = "root=device:hd0" - vif = [ '' ] - ramdisk = "/boot/hurd-modules" - -Suggestions about [[networking_configuration]] are available. - -If you need stable MAC addresses, use a syntax like `vif = [ -'mac=00:16:3e:XX:XX:XX, bridge=br0' ]`. - -## Running Hurd with Xen - -To run Hurd with Xen, use: - - xm create -c hurd - -and gnumach should get started. Proceed with native-install. - - export TERM=mach - ./native-install - -- If `xm` complains about networking (`vif could not be connected`), it's Xen scripts' fault, see Xen documentation for how to configure the network. The simplest way is network-bridge with fixed IPs (note that you need the bridge-utils package for this). You can also just disable networking by commenting the vif line in the config. -- If `xm` complains `Error: (2, 'Invalid kernel', 'xc_dom_compat_check: guest type xen-3.0-x86_32 not supported by xen kernel, sorry\n')`, you most probably have a PAE-enabled hypervisor and a non-PAE gnumach. Either install and boot non-PAE hypervisor and kernel, or rebuilt gnumach in PAE mode. - -## Building from sources - -If you want to generate these images, first get the `gnumach-1-branch-Xen-branch` branch from gnumach CVS. -Then look for "Ugly" in `kern/bootstrap.c`, how to generate `hurd-modules` is explained there, and you'll have to fix `EXT2FS_SIZE` and `LD_SO_SIZE` by hand. -Then use - - ./configure --enable-platform=xen - make - -The current `hurd-modules` was built from the debian packages `hurd 20070606-2` and `libc0.3 2.6.1-1`. -/!\ This means that when using this image, your GNU/Hurd system also needs to be a glibc version 2.6-based one! - ---- - -[[Internals]]. - -[[GNU_Savannah_task 5468]], [[GNU_Savannah_task 6584]]. diff --git a/microkernel/mach/gnu_mach/ports/xen/internals.mdwn b/microkernel/mach/gnu_mach/ports/xen/internals.mdwn deleted file mode 100644 index 09e707ea..00000000 --- a/microkernel/mach/gnu_mach/ports/xen/internals.mdwn +++ /dev/null @@ -1,14 +0,0 @@ -[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -The port does use Xen's para-virtualized interface for device (ide, network, -etc.) access. - -[[Virtualization]]. diff --git a/microkernel/mach/gnu_mach/ports/xen/networking_configuration.mdwn b/microkernel/mach/gnu_mach/ports/xen/networking_configuration.mdwn deleted file mode 100644 index 71a72bac..00000000 --- a/microkernel/mach/gnu_mach/ports/xen/networking_configuration.mdwn +++ /dev/null @@ -1,105 +0,0 @@ -[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -[[toc ]] - -The Xen dom0 infrastructure provides for a bridged networking setup using shell -scripts to configure the bridging device properly and attach the domUs' virtual -interfaces to the bridge. However, we've [seen -problems](http://lists.gnu.org/archive/html/bug-hurd/2008-08/msg00023.html) -when using this approach, so to [solve these -issues](http://lists.gnu.org/archive/html/bug-hurd/2008-09/msg00071.html), -instead suggest the following configuration method (to achieve the same thing). - -This is for a Debian dom0. - -# */etc/network/interfaces* - -Comment out everything referencing your physical devices. Add this: - - auto br0 - iface br0 inet dhcp - bridge_ports regex (eth|vif).* noregex - -... or if you want to do the manual configuration dance: - - auto br0 - iface br0 inet static - bridge_ports regex (eth|vif).* noregex - address 192.168.10.60 - netmask 255.255.255.0 - [...] - -This needs a version of the `bridge-utils` package more recent than the current -Debian stable one ([[debbug 405215]]). (It's trivial to rebuild the `dpkg` of, -e.g., the Debian testing one on Debian stable.) - -# */etc/xen/xend-config.sxp* - -Make sure that only `(network-script network-dummy)` and `(vif-script -vif-bridge)` are activated and all other `(network-script network-WHATEVER)`, -respective `(vif-script vif-WHATEVER)` are commented out. - - -# Sample configuration files on Debian Lenny - -## /etc/xen/hurd on dom0 - - kernel = "/boot/gnumach-xen" - memory = 256 - disk = ['phy:sda5,hda,w'] - extra = "root=device:hd0" - vif = [ 'mac=00:16:3e:00:00:00, bridge=br0' ] - ramdisk = "/boot/hurd-modules" - -/dev/sda5 is an extended partition. br0 is bridge interface on dom0. - -## /etc/xen/xend-config.sxp on dom0 - - (network-script 'network-bridge netdev=br0') - (dom0-min-mem 196) - (dom0-cpus 0) - (vncpasswd '') - -## /etc/network/interfaces on dom0 - - auto br0 - iface br0 inet static - address 192.168.1.211 - network 192.168.1.0 - netmask 255.255.255.0 - broadcast 192.168.1.255 - gateway 192.168.1.1 - bridge_ports eth1 - -eth1 is the interface that is connected to the Internet on the LAN: - -## Doing settrans on domU - - settrans -fgap /servers/socket/2 /hurd/pfinet -i eth0 -a 192.168.1.210 -g 192.168.1.1 -m 255.255.255.0 - -## /sbin/ifconfig on dom0 - - br0 Link encap:Ethernet HWaddr 00:19:d1:2e:06:33 - inet addr:192.168.1.211 Bcast:192.168.1.255 Mask:255.255.255.0 - inet6 addr: fe80::219:d1ff:fe2e:633/64 Scope:Link - UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 - RX packets:14187 errors:0 dropped:0 overruns:0 frame:0 - TX packets:9214 errors:0 dropped:0 overruns:0 carrier:0 - collisions:0 txqueuelen:0 - RX bytes:936563 (914.6 KiB) TX bytes:746184 (728.6 KiB) - - eth1 Link encap:Ethernet HWaddr 00:19:d1:2e:06:33 - inet6 addr: fe80::219:d1ff:fe2e:633/64 Scope:Link - UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 - RX packets:34339 errors:0 dropped:0 overruns:0 frame:0 - TX packets:18526 errors:0 dropped:0 overruns:0 carrier:0 - collisions:0 txqueuelen:1000 - RX bytes:3019251 (2.8 MiB) TX bytes:1453672 (1.3 MiB) diff --git a/microkernel/mach/gnu_mach/projects.mdwn b/microkernel/mach/gnu_mach/projects.mdwn deleted file mode 100644 index 9ace6270..00000000 --- a/microkernel/mach/gnu_mach/projects.mdwn +++ /dev/null @@ -1,129 +0,0 @@ -[[meta copyright="Copyright © 2005, 2006, 2007, 2008 -Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -This page is a place to keep track of ideas about things that may be improved -in GNU Mach, so that it'll evolve to a reliable microkernel for The Hurd, both -in terms of stability and performance. If you find anything missing here, -please feel free to add a entry with a short description. - -If you want to help with any of the task (thanks!), please send a mail to -*[[mailing_lists/bug-hurd]]* stating what task you wish to work on, -so that no duplicate efforts end up. - -# Active Branches - - * `gnumach-1-branch` is the main branch. - - * `gnumach-1-branch-Xen-branch` is a branch created by Samuel Thibault for - working on a [[ports/Xen]] port. - - * `gnumach-1-branch-gdb-branch` is a branch created by Michael Casadevall for - working on [[GDB_stubs]]. - - -# Task List - - * [[Clean_up_the_code]] - - * [[Open_Issues]] - - * Update the core architecture and drivers - - * Check what NetBSD, FreeBSD and Linux do with their host specific code - (i486, PPC, Sparc, ...). And if it might be wise to take that and use - it in GNU Mach. There is no need to worry about purely internal API's, - but the external ones shouldn't require any major changes. - - * Write a list of all functions provided by the host dependant code in - GNU Mach that gets used in the non-host specific code (kernel, IPC and - VM). - - * Once we have decided what the new internal API should look like, make a - list of the new API and the old one, and try to make things as - compatible as possible, but not at the expense of anything. - - * Implement Migrating Threads - - * Migrating Threads (MT) could improve IPC performance and making easier - the work of the scheduler. For more information, check - - - * Improve the external pagers interface - - * Implement read-ahead (huge I/O improvements expected). - - * Making this interface synchronous should improve I/O performance - significantly, without (almost) any drawbacks (we also get some - advantage from MT's). - - * Implement more paging eviction policies, so they fit better with usual - behaviour of the pagers. - - * Implement resource accounting for external pagers. - - * VM - - * Put it on user level (?) - - * Clean up the mess. - - * Provide a fast way to read/write from/to a memory object. - - * Simplify/normalise the code. - - * Simplify the IPC Semantics - - * There are a lot of things in GNU Mach's IPC that we don't need. Track - down those things, and get rid of them without requiring many changes - in the Hurd (the changes will affect MiG, but that is OK). - - * Temporary mappings for Client-Server memory transfers - - * Extend Mach's IPC to provide some kind of object which can represent a - range of memory that can temporarily be mapped into the servers address - space for sending/receiving data. This would allow us to avoid - excessive memory copies. - - * Find a new way to work with unaligned memory. - - * GDB remote debugging support - - * Implement support for GDB debugging via serial line and/or network. - Maybe this can be done together with the host-specific work above. - - See [[GDB_stubs]]. - - * Make it run as a [[UNIX]]/Linux executable. - - * Neal: - - here's a fun project: port the mach interface to Linux - (e.g., via kernel modifications) - or, to posix/glibc - (mmap, some minimal ptrace, etc.) - - * From the [Hurd bits at - sourceforge.net](http://sourceforge.net/projects/hurd): - , started by John - Tobey. Last time touched in 2003. Status completely unknown. - - * [README](http://hurd.cvs.sourceforge.net/hurd/gnumach-otop/README?view=markup) - - -# Wish List - - * Interface for userspace non-critical drivers. - - * Sound Support - - * WLAN support (ipw2200) with WEP/WPA - - * ACPI support diff --git a/microkernel/mach/gnu_mach/projects/clean_up_the_code.mdwn b/microkernel/mach/gnu_mach/projects/clean_up_the_code.mdwn deleted file mode 100644 index 875bb8cd..00000000 --- a/microkernel/mach/gnu_mach/projects/clean_up_the_code.mdwn +++ /dev/null @@ -1,121 +0,0 @@ -[[meta copyright="Copyright © 2005, 2006, 2007, 2008 - Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -# Restructure the tree in a sane way - -Merge `linux/src` and `linux/dev`. But only if using a sane RCS, so leave it -as-is for now. Also, a bunch of (header) files from there may probably be -discarded. - - -# Remove dead files from the GNU Mach source tree - -For *exported* files (via `make install`), the plan is to first stick some -`#error This file is scheduled for removal. Write to if you -have a reason to have it kept available.` into them, and then actually remove -them after some months. - -For some of the internal header files (containing function prototypes and the -like), it might actually be useful to use them. (And then get rid of a bunch -of `extern ...` statements in other files.) - -This following list was assembled by putting such a `#error ...` line into each -of the `gnumach-1-branch`'s header files (exported and internal; save the -`linux/` ones (only internal) for simplicity), and then trying to build GNU -Mach until this would succeed again (by removing offending `#error ...`s), and -afterwards using the set of exported files for building a cross toolchain -(again still removing offending `#error ...`s). A very crude and imprecise -method. - -So, additionally to the list given below, there may actually be a bunch of -further files (also exported ones) that serve no real value, but are being -`#include`d through one way or another. - -* [[source_gnumach-1-branch ddb/db_expr.h]] - - Currently used, but copyright violation? Rewrite? - -* [[source_gnumach-1-branch ddb/db_print.h]] - - Copyright violation? Currently unused, but could be used in principle (or - be rewritten, to avoid the copyright oddity). - -* [[source_gnumach-1-branch ddb/tr.h]] - - Copyright violation. Unused. Remove. - -* [[source_gnumach-1-branch device/dev_master.h]] - - Might be usable for SMP? Remove otherwise. - -* [[source_gnumach-1-branch i386/i386/kttd_machdep.h]] - -* [[source_gnumach-1-branch i386/i386/sched_param.h]] - -* [[source_gnumach-1-branch i386/include/mach/i386/cthreads.h]] - - Was probably once exported, but is no longer. - -* [[source_gnumach-1-branch i386/include/mach/i386/ioccom.h]] - - Exported. - -* [[source_gnumach-1-branch include/device/audio_status.h]] - - Exported. - -* [[source_gnumach-1-branch include/device/tape_status.h]] - - Exported. - -* [[source_gnumach-1-branch include/mach/alert.h]] - - Exported. - -* [[source_gnumach-1-branch include/mach/boot.h]] - - Exported. - -* [[source_gnumach-1-branch include/mach/macro_help.h]] - - Exported. - -* [[source_gnumach-1-branch include/mach/multiboot.h]] - - Exported. - -* [[source_gnumach-1-branch include/mach/profil.h]] - - Exported. - -* [[source_gnumach-1-branch include/mach/profilparam.h]] - - Exported. - -* [[source_gnumach-1-branch include/mach/exec/a.out.h]] - - Exported. - -* [[source_gnumach-1-branch include/mach_debug/pc_info.h]] - - Currently not exported, but was probably once meant to be. - -* [[source_gnumach-1-branch kern/act.h]] - -* [[source_gnumach-1-branch kern/refcount.h]] - -* [[source_gnumach-1-branch kern/shuttle.h]] - - -# Remove dead functions, variables, etc. from source files - - -# Rewrite ugly code diff --git a/microkernel/mach/gnu_mach/projects/gdb_stubs.mdwn b/microkernel/mach/gnu_mach/projects/gdb_stubs.mdwn deleted file mode 100644 index 9a11a82b..00000000 --- a/microkernel/mach/gnu_mach/projects/gdb_stubs.mdwn +++ /dev/null @@ -1,13 +0,0 @@ -[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - - * - - * [ChangeLog.gdb](http://cvs.savannah.gnu.org/viewvc/gnumach/ChangeLog.gdb?root=hurd&view=markup&pathrev=gnumach-1-branch-gdb-branch) diff --git a/microkernel/mach/gnu_mach/reference_manual.mdwn b/microkernel/mach/gnu_mach/reference_manual.mdwn deleted file mode 100644 index 225ab176..00000000 --- a/microkernel/mach/gnu_mach/reference_manual.mdwn +++ /dev/null @@ -1,26 +0,0 @@ -[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -*The GNU Mach Reference Manual* documents the architecture, the usage and the -programming of the GNU Mach microkernel. At the moment, the manual documents -the interface completely, but is not very useful as a tutorial or introduction -into the Mach architecture. - - * [HTML version](http://www.gnu.org/software/hurd/gnumach-doc/index.html) - for browsing online, - * [PostScript - version](http://www.gnu.org/software/hurd/gnumach-doc/mach.ps) [around - 900KiB], - * [gzipped PostScript - version](http://www.gnu.org/software/hurd/gnumach-doc/mach.ps.gz) - [around 300KiB], - * [PDF version](http://www.gnu.org/software/hurd/gnumach-doc/mach.pdf) - [around 700KiB]. diff --git a/microkernel/mach/gnumach.mdwn b/microkernel/mach/gnumach.mdwn new file mode 100644 index 00000000..19e1ea53 --- /dev/null +++ b/microkernel/mach/gnumach.mdwn @@ -0,0 +1,80 @@ +[[meta copyright="Copyright © 2001, 2002, 2007, 2008 Free Software Foundation, +Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +GNU Mach is the microkernel that the [[GNU_Hurd|hurd]] system is based on. + +It is maintained by the Hurd developers for the GNU project and remains +compatible with [[Mach]] 3.0. + +The majority of GNU Mach's [[device_driver]]s are from Linux 2.0. They were +added using glue code, i.e., a Linux [[emulation]] layer in Mach. + +GNU Mach runs on x86 machines. See the +[[hardware_compatibility_list]] and information about +[[ports]] to other architectures. + + +# Advantages of GNU Mach + +GNU Mach is not the most advanced [[microkernel]] known to the planet, nor is +it the fastest or smallest, but it has a rich set of [[interface]]s and some +features which make it useful as the base of the [[Hurd]] system. + + * **it's free software** + + Anybody can use, modify, and redistribute it under the terms of the + [[GNU_General_Public_License_(GPL)|gpl]]. + + * **it's built to survive** + + As a [[microkernel]], GNU Mach doesn't implement a lot of the features + commonly found in an operating system, but only the bare minimum that is + required to implement a full operating system on top of it. This means + that a lot of the operating system code is maintained outside of GNU Mach, + and while this code may go through a complete redesign, the code of the + microkernel can remain comparatively stable. + + * **it's scalable** + + Mach is particularly well suited for SMP and network cluster techniques. + Thread support is provided at the kernel level, and the kernel itself takes + advantage of that. Network transparency at the [[IPC]] level makes + resources of the system available across machine boundaries (with NORMA + IPC, currently not available in GNU Mach). + + * **it exists** + + The Mach microkernel is real software that works Right Now. It is not a + research or a proposal. You don't have to wait at all before you can start + using and developing it. Mach has been used in many operating systems in + the past, usually as the base for a single UNIX server. In the GNU system, + Mach is the base of a functional multi-server operating system, the + [[Hurd]]. + + +# Booting + +To actually use the kernel and boot the GNU operating system, you need a boot +loader. Not all boot loaders are capable to boot the GNU system, you need one +that supports the multiboot standard. The bootloader of the GNU system is +[[GNU_GRUB|grub]], which supports a broad range of operating systems including +GNU/Hurd. + + +# Development + + * [[Reference_Manual]] + * [[Building]] + * [[Debugging]] + * [[Boot_Trace]] + * [[Projects]] + * [[Rules]] + * [[Open_Issues]] diff --git a/microkernel/mach/gnumach/boot_trace.mdwn b/microkernel/mach/gnumach/boot_trace.mdwn new file mode 100644 index 00000000..a08384f0 --- /dev/null +++ b/microkernel/mach/gnumach/boot_trace.mdwn @@ -0,0 +1,222 @@ +[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +`if NCPUS > 1` stuff is not being considered so far. + + +> i386/i386at/boothdr.S: \_start + +> i386/i386at/boothdr.S: boot\_entry + +>> i386/i386at/model\_dep.c: c\_boot\_entry + +>>> i386/i386at/boothdr.S: discover\_x86\_cpu\_type + +>>> i386/i386at/model\_dep.c: i386at\_init + +>>>> i386/i386/pic.c: picinit + +>>>> i386/i386at/model\_dep.c: mem\_size\_init + +>>>> i386/intel/pmap.c: pmap\_bootstrap + +>>>> i386/i386/gdt.c: gdt\_init + +>>>> i386/i386/idt.c: idt\_init + +>>>> i386/i386at/int\_init.c: int\_init + +>>>> i386/i386/ldt.c: ldt\_init + +>>>> i386/i386/ktss.c: ktss\_init + +>>> kern/startup.c: setup\_main + +>>>> kern/debug.c: panic\_init + +>>>> kern/printf.c: printf\_init + +>>>> kern/sched\_prim.c: sched\_init + +>>>>> kern/sched\_prim.c: wait\_queue\_init + +>>>>> kern/processor.c: pset\_sys\_bootstrap + +>>>>> kern/ast.c: ast\_init + +>>>> vm/vm\_init.c: vm\_mem\_bootstrap + +>>>>> vm/vm\_resident.c: vm\_page\_bootstrap + +>>>>>> vm/vm\_resident.c: pmap\_startup + +>>>>> kern/zalloc.c: zone\_bootstrap + +>>>>> vm/vm\_object.c: vm\_object\_bootstrap + +>>>>>> vm/vm\_external.c: vm\_external\_module\_initialize + +>>>>> vm/vm\_map.c: vm\_map\_init + +>>>>> vm/vm\_kern.c: kmem\_init + +>>>>> i386/intel/pmap.c: pmap\_init + +>>>>> kern/zalloc.c: zone\_init + +>>>>> kern/kalloc.c: kalloc\_init + +>>>>> vm/vm\_fault.c: vm\_fault\_init + +>>>>> vm/vm\_resident.c: vm\_page\_module\_init + +>>>>> vm/memory\_object.c: memory\_manager\_default\_init + +>>>> ipc/ipc\_init.c: ipc\_bootstrap + +>>>>> ipc/ipc\_table.c: ipc\_table\_init + +>>>>> ipc/ipc\_notify.c: ipc\_notify\_init + +>>>>> ipc/ipc\_hash.c: ipc\_hash\_init + +>>>>> ipc/ipc\_marequest.c: ipc\_marequest\_init + +>>>> vm/vm\_init.c: vm\_mem\_init + +>>>>> vm/vm\_object.c: vm\_object\_init + +>>>> ipc/ipc\_init.c: ipc\_init + +>>>>> kern/ipc\_host.c: ipc\_host\_init + +>>>>>> kern/ipc\_host.c: ipc\_pset\_init + +>>>>>> kern/ipc\_host.c: ipc\_pset\_enable + +>>>>>> kern/ipc\_host.c: ipc\_processor\_init + +>>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL + +>>>> kern/timer.c: init\_timers + +>>>> kern/mach\_clock.c: init\_timeout + +>>>> kern/xpr.c: xprbootstrap + +>>>> kern/time\_stamp.c: timestamp\_init + +>>>> kern/mach\_clock.c: mapable\_time\_init + +>>>> i386/i386at/model\_dep.c: machine\_init + +>>>>> device/cons.c: cninit + +>>>>> i386/i386/fpu.c: init\_fpu + +>>>>> linux/dev/init/main.c: linux\_init + +>>>>>> linux/dev/arch/i386/kernel/irq.c: init\_IRQ + +>>>>>>> linux/dev/arch/i386/kernel/irq.c: reserve\_mach\_irqs + +>>>>>> linux/dev/kernel/sched.c: linux\_sched\_init + +>>>>>> linux/dev/init/main.c: calibrate\_delay + +>>>>>> linux/dev/glue/kmem.c: linux\_kmem\_init + +>>>>>> linux/src/drivers/pci/pci.c: pci\_init + +>>>>>>> linux/src/arch/i386/kernel/bios32.c: pcibios\_init + +>>>>>>> linux/src/drivers/pci/pci.c: scan\_bus + +>>>>>>> linux/src/arch/i386/kernel/bios32.c: pcibios\_fixup + +>>>>>> linux/dev/glue/net.c: linux\_net\_emulation\_init + +>>>>>> linux/dev/drivers/block/genhd.c: device\_setup + +>>>>>>> linux/dev/glue/block.c: blk\_dev\_init + +>>>>>>>> linux/src/drivers/block/ide.c: ide\_init + +>>>>>>>> linux/dev/drivers/block/floppy.c: floppy\_init + +>>>>>>> linux/src/drivers/scsi/scsi.c: scsi\_dev\_init + +>>>>>>> linux/dev/net/core/dev.c: net\_dev\_init + +>>>>>> linux/pcmcia-cs/glue/pcmcia.c: pcmcia\_init + +>>>>> i386/i386at/autoconf.c: probeio + +>>>>> i386/i386at/model\_dep.c: inittodr + +>>>>> i386/intel/pmap.c: pmap\_unmap\_page\_zero + +>>>> kern/task.c: task\_init + +>>>>> kern/syscall\_emulation.c: eml\_init + +>>>> kern/thread.c: thread\_init + +>>>>> i386/i386/pcb.c: pcb\_module\_init + +>>>>>> i386/i386/fpu.c: fpu\_module\_init + +>>>>>> i386/i386/iopb.c: iopb\_init + +>>>> kern/thread\_swap.c: swapper\_init + +>>>> kern/sched\_prim.c: recompute\_priorities + +>>>> kern/mach\_factor.c: compute\_mach\_factor + +>>>> kern/startup.c: start\_kernel\_threads + +[...] + +>>>> kern/startup.c: cpu\_launch\_first\_thread + +>>>>> i386/i386at/model\_dep.c: startrtclock + +>>>>>> i386/i386/pit.c: clkstart + +>>>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL + +>>>>> i386/i386/pcb.c: load\_context + +[...] + +> kern/startup.c: start\_kernel\_threads + +> Threads get created. + +>> kern/sched\_prim.c: idle\_thread + +>> One for each CPU. + +>> kern/thread.c: reaper\_thread + +>> kern/thread\_swap.c: swapin\_thread + +>> kern/sched\_prim.c: sched\_thread + +>> [...] + +>> kern/bootstrap.c: bootstrap\_create + +>> [...] + +>> vm\_pageout + +>> Does not return. diff --git a/microkernel/mach/gnumach/building.mdwn b/microkernel/mach/gnumach/building.mdwn new file mode 100644 index 00000000..9c075600 --- /dev/null +++ b/microkernel/mach/gnumach/building.mdwn @@ -0,0 +1,114 @@ +Additional to the following text, a further [[example]] has be posted. + + +# Building [[GNU_Mach|gnumach]] from Source + +If you want to build the [[GNU_Mach|gnumach]] kernel yourself instead of just using a +pre-built binary, follow these instructions. + +The unpacked source tree is around 20 MiB, and the build tree (with all drivers +enabled) is around 50 MiB. + +## Getting the Source Code + +### Developers's RCS + +See . + + $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co -r gnumach-1-branch gnumach + +(Most probably you want to get hold of the *GNU Mach 1 branch* and not the +trunk, which is also what we've done above.) + +You then have to create the automatically generatable files: + + $ ( cd gnumach && autoreconf --install ) + +### What Debian is currently using + +See [here](http://packages.debian.net/source/unstable/gnumach). + + $ apt-get source gnumach + +Please see the Debian [[running/debian/FAQ]] before using `apt-get source`. + +## Preparing for the Build + +### ... on Debian systems + +Building GNU Mach requires the *build-essential* and *fakeroot* packages, their +dependencies and additional packages that are specified by the source gnumach +package: + + # apt-get install build-essential fakeroot + # apt-get build-dep gnumach + +### ... on non-Debian systems + +Apart from the case that you only want to install GNU Mach's header files (see +below), building GNU Mach requires you to have the Mach Interface Generator +installed. See [[building_MIG|mig/gnu_mig/building]] about how to do that, then come +back here. + +Additionally, building GNU Mach requires a C compiler, a standard C library and +your favourite flavor of awk (gawk) and GNU make. + +## Building and Installing + +### ... Debian `.deb` files + +Change into the directory with the downloaded / unpacked GNU Mach sources, e.g. + + $ cd gnumach-20050801 + +Start the build process with + + $ dpkg-buildpackage -us -uc -b -rfakeroot + +[[GNU_Mach|gnumach]] is now building. To use the new kernel, you must install the +resulting `.deb` package which is located one directory above the build +directory and has a similar name as the build directory, e.g. + + # dpkg -i ../gnumach_20050801-4_hurd-i386.deb + +You can now reboot your computer and enjoy the new kernel. + +### [TODO] + +GNU Mach should be built in a separate directory: + + $ mkdir gnumach-build + $ cd gnumach-build + +Find the path to your GNU Mach sources (`[...]/gnumach-1-branch`) and configure +it: + + $ [...]/gnumach-1-branch/configure [TODO] + +Build the kernel image: + + $ make gnumach.gz + +Optionally run the (tiny) test suite: + + $ make check + +You can then install and use `gnumach.gz`. + +[TODO.] + +### Installing only the Header Files + +GNU Mach should be built in a separate directory: + + $ mkdir gnumach-build + $ cd gnumach-build + +Find the path to your GNU Mach sources (`[...]/gnumach-1-branch`) and configure +it: + + $ [...]/gnumach-1-branch/configure --prefix= + +Install the header files into e.g. `~/gnu/include/`: + + $ make DESTDIR=~/gnu install-data diff --git a/microkernel/mach/gnumach/building/example.mdwn b/microkernel/mach/gnumach/building/example.mdwn new file mode 100644 index 00000000..6da05c5b --- /dev/null +++ b/microkernel/mach/gnumach/building/example.mdwn @@ -0,0 +1,54 @@ +[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +## Compiling GNU Mach microkernel + +Host development system is IBM T41 running Debian Sarge 3.1r0a GNU/Linux. + +* gcc version: 3.3.5 +* GNU sed version: 4.1.2 +* GNU make version: 3.8 +* mig version: 1.3-4 + +Obtained gnumach-1-branch sources from cvs: + + export CVS_RSH="ssh" + cvs -z3 -d:ext:anoncvs@ savannah.gnu.org:/cvsroot/hurd co -r gnumach-1-branch gnumach + +Obtained mig_1.3-4_i386.deb from +http://www.hadrons.org/~guillem/debian/pool/main/mig/. Installed it using dpkg: + + dpkg -i mig_1.3-4_i386.deb + +Entered into the gnumach sources and did the following for compilation: + + mkdir build + cd build + ../configure --host=i386-unknown-gnu0.2 --build=i586-pc-linux-gnu \ + --enable-kdb --enable-ide + make + +The kernel file is created in the build directory. Move it to /boot on the +testing x86 system Hurd partition. Rename it as gnumach1 and compress it: + + mv kernel gnumach1 + gzip gnumach1 + +Add a new entry on the testing machine /boot/grub/menu.lst to boot the new +kernel. + + title GNU Hurd K10 Compiled gnumach + kernel (hd0,3)/boot/gnumach1.gz root=device:hd2s4 -s + module (hd0,3)/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 (hd0,3)/lib/ld.so.1 /hurd/exec $(exec-task=task-create) + +Reboot into the new compiled mygnumach1.gz kernel! diff --git a/microkernel/mach/gnumach/debugging.mdwn b/microkernel/mach/gnumach/debugging.mdwn new file mode 100644 index 00000000..fa2a9d42 --- /dev/null +++ b/microkernel/mach/gnumach/debugging.mdwn @@ -0,0 +1,68 @@ +[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +Mach has a built-in kernel debugger. +[Manual](http://www.gnu.org/software/hurd/gnumach-doc/Kernel-Debugger.html). + + +When you're [[running_a_system_in_QEMU|hurd/running/qemu]] you can directly +[use GDB on the running +kernel](http://fabrice.bellard.free.fr/qemu/qemu-doc.html#SEC36). + + +Alternatively you can use an approach like this one: add the following code +snippet to `device/ds_routines.c`'s `ds_device_open` function, right at the top +of the function, and modify the code as needed. + + void D (char *s) + { + switch (s[0] - '0') + { + case 0: + printf ("Hello from %s!\n", __FUNCTION__); + break; + case 1: + printf ("%s: Invoking task_collect_scan.\n", __FUNCTION__); + extern void task_collect_scan (void); + task_collect_scan (); + break; + default: + printf ("No idea what you want me to do.\n"); + break; + } + } + + if (name && name[0] == 'D') + D (name + 1); + +Then boot your system and do something like this: + + # devprobe D0 + Hello from D! + # devprobe D1 + D: Invoking task_collect_scan. + # devprobe D2 + No idea what you want me to do. + +This is especially useful if you need to manually trigger some stuff inside the +running kernel, as with the *D1* example. + + +If you're doing real low level debugging, you might want to put variations of +the following snipped into the code, this code will write a `#` character at +line `[LINE]`, column `[COLUMN]` on the screen: + + *((char *) 0xb8000 + 2 * ([LINE] * 80 + [COLUMN])) = '#'; + halt_cpu (); + +The call of `halt_cpu` will -- as the name suggests -- halt the system +afterwards. This might be what you want or it might not, but it is needed at +some place when running the kernel inside QEMU, as QEMU somehow decides not to +update its display buffer anymore under certain conditions. diff --git a/microkernel/mach/gnumach/hardware_compatibility_list.mdwn b/microkernel/mach/gnumach/hardware_compatibility_list.mdwn new file mode 100644 index 00000000..09882467 --- /dev/null +++ b/microkernel/mach/gnumach/hardware_compatibility_list.mdwn @@ -0,0 +1,111 @@ +[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +# CPU Architecture + +GNU Mach current only supports the `x86` (alias `ia32` or `i386`) architecture. + +`amd64`/`ix64` should work in `32-bit` compatibility mode. However, in practice +`amd64` systems seem to be troublesome more often than not. This is probably +related to the same (chipset-related) problems we often see with recent +machines; but it seems that `amd64` ones use problematic chipsets particularily +often. So far we haven't heard of similar problems with Intel's eqivalent +`ix64` (or `EM64T` as it used to be called) -- but maybe that just means fewer +people tried running the Hurd on such machines :-) + +Support for running GNU Mach (and a complete GNU/Hurd system) in a +[Xen](http://www.cl.cam.ac.uk/research/srg/netos/xen/) `domU` (again on `x86` +only) is [[being_worked_on|ports/xen]]. + +Read about further [[ports]]. + +# Memory + +GNU Mach will use a maximum of 1 GiB of RAM. If your system has more, +the surplus will silently be ignored. (In past times, this would hinder GNU +Mach from booting at all, but this has been fixed, so you no longer need to +apply GRUB's `uppermem` directive.) + +# Video Cards + +Debian distributes a version of [X.org](http://x.org/). If your video card driver +depends on a special kernel interface such as that provided by +the `agpgart` kernel module for the Linux kernel, then your video +card will only be supported by the VESA driver. + +Using an internal i815 videocard [won't +work](http://lists.debian.org/debian-hurd/2007/12/msg00007.html) (at least when +using the specialized driver), because of [missing AGP GART support in GNU +Mach](http://lists.debian.org/debian-hurd/2007/12/msg00011.html). + +# Sound + +No sound cards are supported at this time. + +# USB 1.1/2.0 + +USB is not supported at this time. + +However, USB-type keyboards and mice may (and have been reported to) work +nevertheless, given that the hardware / BIOS is doing emulation to the +supported legacy interfaces. + +# IEEE 1394 (Firewire) + +IEEE 1394 is not supported at this time + +# Storage + +All common IDE drives should work. Some drive geometries do not work, +e.g. drives with hundreds of GiB of storage space. If you find a specific IDE +drive that does not work, make a note of the model and technical specifications +here. + +[[toggle id="SATA" text="SATA drives may work in compatibility mode."]] + + +[[toggleable id="SATA" text=""" +This is how booting a [[GNU/Hurd_system|hurd]] will typically fail if GNU Mach +couldn't connect to the hard disk, e.g., in a SATA system without IDE +compatibility mode: + + start (hd0,3)/hurd/ext2fs.static: (hd0,3)/hurd/ext2fs.static + device:hd0s4: No such device or address + +There *may* be an option in the system's BIOS setup to configure enabling such +a compatibility mode. +"""]] + +# Device Drivers + +[GNU Mach Reference Manual, +Configuration](http://www.gnu.org/software/hurd/gnumach-doc/Configuration.html) +contains a list of device drivers that are included in GNU Mach and elaborates +on the hardware devices they support. + +# User Success Reports + +These boards are known to work. Gnumach/Hurd has been installed and run on these board successfully. + +* ASUS P2B motherboard with an Intel PII 450MHz CPU with Intel Pro/100 NIC in PCI slot +* Intel SE-440BX motherboard +* VIA EPIA-M Mini-ITX motherboard with VIA Nehemiah C3 1Ghz processor. Onboard NIC (VIA Rhine) works good. +* Compaq Deskpro ENS, Pentium3 (666 MHz upgraded to 1 GHz), Intel i815 chipset, chipset integrated NIC (detected twice, but works fine with eth0; trying to access eth1 confuses the driver and makes the system unusable), Matrox Mystique 220 (PCI) graphics card. Also works with rtl8029 (NE2000 PCI) NIC when onboard NIC disabled in BIOS setup. +* Abit BX6 Rev. 2.0 with Celeron 400, after disabling "memory hole at 15MB" option in BIOS setup. (Otherwise, Mach detects only 15MiB of RAM, making Hurd run *extremely* slow and instable.) Should also work with PentiumII or Pentium3. + +# User Failure Reports + +Some people couldn't get these hardware combinations to work with Hurd. + +Note: The Debian GNU/Hurd installer actually runs on Linux, so it (almost) always works. The critical bit is booting after installation. + +* ASUS P5A motherboard and AMD K6-2 333MHz CPU - doesn't boot +* ASUS P2B-LS motherboard with an Intel PII-MMX 400 MHz CPU - this board had a defective onboard NIC (that could not be disable in BIOS) and working 3COM Etherlink III NIC in a PCI bus slot. This combination worked with GNU/Linux. The 3COM NIC is known to work with the Hurd. However, while gnumach/Hurd will boot on this system, it is confused by the defective onboard NIC and unable to use the 3COM NIC. Attempting to start networking generates a continous stream of eth0 and eth1 reset messages on the console that renders the system unusable. +* ASrock 775Twins-HDTV with a Pentium D 810 (533 MGz FSB/2600GHz core -- information no longer present on intel's site). Doesn't boot. diff --git a/microkernel/mach/gnumach/hardware_compatibility_list/discussion.mdwn b/microkernel/mach/gnumach/hardware_compatibility_list/discussion.mdwn new file mode 100644 index 00000000..69ca3190 --- /dev/null +++ b/microkernel/mach/gnumach/hardware_compatibility_list/discussion.mdwn @@ -0,0 +1,4 @@ +Further information may still be found on + +and could perhaps be incorporated into that page. +--[[tschwinge]] diff --git a/microkernel/mach/gnumach/open_issues.mdwn b/microkernel/mach/gnumach/open_issues.mdwn new file mode 100644 index 00000000..433ec3ef --- /dev/null +++ b/microkernel/mach/gnumach/open_issues.mdwn @@ -0,0 +1,19 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +[[meta title="Open Issues"]] + +This is a dumping ground for open issues for GNU Mach. + +[[inline +pages="microkernel/mach/gnumach/open_issues/* and !*/discussion" +show=0 +actions=yes +rootpage="microkernel/mach/gnumach/open_issues" postformtext="Add a new item titled:"]] diff --git a/microkernel/mach/gnumach/ports.mdwn b/microkernel/mach/gnumach/ports.mdwn new file mode 100644 index 00000000..00cdee8c --- /dev/null +++ b/microkernel/mach/gnumach/ports.mdwn @@ -0,0 +1,15 @@ +[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + + * x86. This is the main port. + * [PowerPC](http://www.pjbruin.dds.nl/hurd/). Is not in a usable state. + * Alpha. Was once started, but isn't in a usable state either. + + * [[Xen]] diff --git a/microkernel/mach/gnumach/ports/xen.mdwn b/microkernel/mach/gnumach/ports/xen.mdwn new file mode 100644 index 00000000..c492d9a0 --- /dev/null +++ b/microkernel/mach/gnumach/ports/xen.mdwn @@ -0,0 +1,78 @@ +[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +[[toc ]] + +## Xen dom0, hypervisor + +/!\ Now that GNU Mach handles PAE you can use a PAE-enabled hypervisor. + +You can either get binaries at or build them yourself. + +- Copy `gnumach-xen` and `hurd-modules` to your dom0 /boot. +- Copy `hurd` into `/etc/xen`, edit it for fixing access to your hurd / and swap + +## GNU/Hurd system + +/!\ You need an already installed GNU/Hurd system. + +If you have a free partition, you can fdisk to type 0x83, create a filesystem using: + + sudo mke2fs -b 4096 -I 128 -o hurd /dev/sda4 + +Replace /dev/sda4 with your partition. Install and use crosshurd to setup a GNU/Hurd system on this partition. + +## /etc/xen/hurd configuration + +Here is a sample /etc/xen/hurd configuration + + kernel = "/boot/gnumach-xen" + memory = 256 + disk = ['phy:sda4,hda,w'] + extra = "root=device:hd0" + vif = [ '' ] + ramdisk = "/boot/hurd-modules" + +Suggestions about [[networking_configuration]] are available. + +If you need stable MAC addresses, use a syntax like `vif = [ +'mac=00:16:3e:XX:XX:XX, bridge=br0' ]`. + +## Running Hurd with Xen + +To run Hurd with Xen, use: + + xm create -c hurd + +and gnumach should get started. Proceed with native-install. + + export TERM=mach + ./native-install + +- If `xm` complains about networking (`vif could not be connected`), it's Xen scripts' fault, see Xen documentation for how to configure the network. The simplest way is network-bridge with fixed IPs (note that you need the bridge-utils package for this). You can also just disable networking by commenting the vif line in the config. +- If `xm` complains `Error: (2, 'Invalid kernel', 'xc_dom_compat_check: guest type xen-3.0-x86_32 not supported by xen kernel, sorry\n')`, you most probably have a PAE-enabled hypervisor and a non-PAE gnumach. Either install and boot non-PAE hypervisor and kernel, or rebuilt gnumach in PAE mode. + +## Building from sources + +If you want to generate these images, first get the `gnumach-1-branch-Xen-branch` branch from gnumach CVS. +Then look for "Ugly" in `kern/bootstrap.c`, how to generate `hurd-modules` is explained there, and you'll have to fix `EXT2FS_SIZE` and `LD_SO_SIZE` by hand. +Then use + + ./configure --enable-platform=xen + make + +The current `hurd-modules` was built from the debian packages `hurd 20070606-2` and `libc0.3 2.6.1-1`. +/!\ This means that when using this image, your GNU/Hurd system also needs to be a glibc version 2.6-based one! + +--- + +[[Internals]]. + +[[GNU_Savannah_task 5468]], [[GNU_Savannah_task 6584]]. diff --git a/microkernel/mach/gnumach/ports/xen/internals.mdwn b/microkernel/mach/gnumach/ports/xen/internals.mdwn new file mode 100644 index 00000000..09e707ea --- /dev/null +++ b/microkernel/mach/gnumach/ports/xen/internals.mdwn @@ -0,0 +1,14 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +The port does use Xen's para-virtualized interface for device (ide, network, +etc.) access. + +[[Virtualization]]. diff --git a/microkernel/mach/gnumach/ports/xen/networking_configuration.mdwn b/microkernel/mach/gnumach/ports/xen/networking_configuration.mdwn new file mode 100644 index 00000000..71a72bac --- /dev/null +++ b/microkernel/mach/gnumach/ports/xen/networking_configuration.mdwn @@ -0,0 +1,105 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +[[toc ]] + +The Xen dom0 infrastructure provides for a bridged networking setup using shell +scripts to configure the bridging device properly and attach the domUs' virtual +interfaces to the bridge. However, we've [seen +problems](http://lists.gnu.org/archive/html/bug-hurd/2008-08/msg00023.html) +when using this approach, so to [solve these +issues](http://lists.gnu.org/archive/html/bug-hurd/2008-09/msg00071.html), +instead suggest the following configuration method (to achieve the same thing). + +This is for a Debian dom0. + +# */etc/network/interfaces* + +Comment out everything referencing your physical devices. Add this: + + auto br0 + iface br0 inet dhcp + bridge_ports regex (eth|vif).* noregex + +... or if you want to do the manual configuration dance: + + auto br0 + iface br0 inet static + bridge_ports regex (eth|vif).* noregex + address 192.168.10.60 + netmask 255.255.255.0 + [...] + +This needs a version of the `bridge-utils` package more recent than the current +Debian stable one ([[debbug 405215]]). (It's trivial to rebuild the `dpkg` of, +e.g., the Debian testing one on Debian stable.) + +# */etc/xen/xend-config.sxp* + +Make sure that only `(network-script network-dummy)` and `(vif-script +vif-bridge)` are activated and all other `(network-script network-WHATEVER)`, +respective `(vif-script vif-WHATEVER)` are commented out. + + +# Sample configuration files on Debian Lenny + +## /etc/xen/hurd on dom0 + + kernel = "/boot/gnumach-xen" + memory = 256 + disk = ['phy:sda5,hda,w'] + extra = "root=device:hd0" + vif = [ 'mac=00:16:3e:00:00:00, bridge=br0' ] + ramdisk = "/boot/hurd-modules" + +/dev/sda5 is an extended partition. br0 is bridge interface on dom0. + +## /etc/xen/xend-config.sxp on dom0 + + (network-script 'network-bridge netdev=br0') + (dom0-min-mem 196) + (dom0-cpus 0) + (vncpasswd '') + +## /etc/network/interfaces on dom0 + + auto br0 + iface br0 inet static + address 192.168.1.211 + network 192.168.1.0 + netmask 255.255.255.0 + broadcast 192.168.1.255 + gateway 192.168.1.1 + bridge_ports eth1 + +eth1 is the interface that is connected to the Internet on the LAN: + +## Doing settrans on domU + + settrans -fgap /servers/socket/2 /hurd/pfinet -i eth0 -a 192.168.1.210 -g 192.168.1.1 -m 255.255.255.0 + +## /sbin/ifconfig on dom0 + + br0 Link encap:Ethernet HWaddr 00:19:d1:2e:06:33 + inet addr:192.168.1.211 Bcast:192.168.1.255 Mask:255.255.255.0 + inet6 addr: fe80::219:d1ff:fe2e:633/64 Scope:Link + UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 + RX packets:14187 errors:0 dropped:0 overruns:0 frame:0 + TX packets:9214 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:936563 (914.6 KiB) TX bytes:746184 (728.6 KiB) + + eth1 Link encap:Ethernet HWaddr 00:19:d1:2e:06:33 + inet6 addr: fe80::219:d1ff:fe2e:633/64 Scope:Link + UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 + RX packets:34339 errors:0 dropped:0 overruns:0 frame:0 + TX packets:18526 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:1000 + RX bytes:3019251 (2.8 MiB) TX bytes:1453672 (1.3 MiB) diff --git a/microkernel/mach/gnumach/projects.mdwn b/microkernel/mach/gnumach/projects.mdwn new file mode 100644 index 00000000..9ace6270 --- /dev/null +++ b/microkernel/mach/gnumach/projects.mdwn @@ -0,0 +1,129 @@ +[[meta copyright="Copyright © 2005, 2006, 2007, 2008 +Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +This page is a place to keep track of ideas about things that may be improved +in GNU Mach, so that it'll evolve to a reliable microkernel for The Hurd, both +in terms of stability and performance. If you find anything missing here, +please feel free to add a entry with a short description. + +If you want to help with any of the task (thanks!), please send a mail to +*[[mailing_lists/bug-hurd]]* stating what task you wish to work on, +so that no duplicate efforts end up. + +# Active Branches + + * `gnumach-1-branch` is the main branch. + + * `gnumach-1-branch-Xen-branch` is a branch created by Samuel Thibault for + working on a [[ports/Xen]] port. + + * `gnumach-1-branch-gdb-branch` is a branch created by Michael Casadevall for + working on [[GDB_stubs]]. + + +# Task List + + * [[Clean_up_the_code]] + + * [[Open_Issues]] + + * Update the core architecture and drivers + + * Check what NetBSD, FreeBSD and Linux do with their host specific code + (i486, PPC, Sparc, ...). And if it might be wise to take that and use + it in GNU Mach. There is no need to worry about purely internal API's, + but the external ones shouldn't require any major changes. + + * Write a list of all functions provided by the host dependant code in + GNU Mach that gets used in the non-host specific code (kernel, IPC and + VM). + + * Once we have decided what the new internal API should look like, make a + list of the new API and the old one, and try to make things as + compatible as possible, but not at the expense of anything. + + * Implement Migrating Threads + + * Migrating Threads (MT) could improve IPC performance and making easier + the work of the scheduler. For more information, check + + + * Improve the external pagers interface + + * Implement read-ahead (huge I/O improvements expected). + + * Making this interface synchronous should improve I/O performance + significantly, without (almost) any drawbacks (we also get some + advantage from MT's). + + * Implement more paging eviction policies, so they fit better with usual + behaviour of the pagers. + + * Implement resource accounting for external pagers. + + * VM + + * Put it on user level (?) + + * Clean up the mess. + + * Provide a fast way to read/write from/to a memory object. + + * Simplify/normalise the code. + + * Simplify the IPC Semantics + + * There are a lot of things in GNU Mach's IPC that we don't need. Track + down those things, and get rid of them without requiring many changes + in the Hurd (the changes will affect MiG, but that is OK). + + * Temporary mappings for Client-Server memory transfers + + * Extend Mach's IPC to provide some kind of object which can represent a + range of memory that can temporarily be mapped into the servers address + space for sending/receiving data. This would allow us to avoid + excessive memory copies. + + * Find a new way to work with unaligned memory. + + * GDB remote debugging support + + * Implement support for GDB debugging via serial line and/or network. + Maybe this can be done together with the host-specific work above. + + See [[GDB_stubs]]. + + * Make it run as a [[UNIX]]/Linux executable. + + * Neal: + + here's a fun project: port the mach interface to Linux + (e.g., via kernel modifications) + or, to posix/glibc + (mmap, some minimal ptrace, etc.) + + * From the [Hurd bits at + sourceforge.net](http://sourceforge.net/projects/hurd): + , started by John + Tobey. Last time touched in 2003. Status completely unknown. + + * [README](http://hurd.cvs.sourceforge.net/hurd/gnumach-otop/README?view=markup) + + +# Wish List + + * Interface for userspace non-critical drivers. + + * Sound Support + + * WLAN support (ipw2200) with WEP/WPA + + * ACPI support diff --git a/microkernel/mach/gnumach/projects/clean_up_the_code.mdwn b/microkernel/mach/gnumach/projects/clean_up_the_code.mdwn new file mode 100644 index 00000000..875bb8cd --- /dev/null +++ b/microkernel/mach/gnumach/projects/clean_up_the_code.mdwn @@ -0,0 +1,121 @@ +[[meta copyright="Copyright © 2005, 2006, 2007, 2008 + Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +# Restructure the tree in a sane way + +Merge `linux/src` and `linux/dev`. But only if using a sane RCS, so leave it +as-is for now. Also, a bunch of (header) files from there may probably be +discarded. + + +# Remove dead files from the GNU Mach source tree + +For *exported* files (via `make install`), the plan is to first stick some +`#error This file is scheduled for removal. Write to if you +have a reason to have it kept available.` into them, and then actually remove +them after some months. + +For some of the internal header files (containing function prototypes and the +like), it might actually be useful to use them. (And then get rid of a bunch +of `extern ...` statements in other files.) + +This following list was assembled by putting such a `#error ...` line into each +of the `gnumach-1-branch`'s header files (exported and internal; save the +`linux/` ones (only internal) for simplicity), and then trying to build GNU +Mach until this would succeed again (by removing offending `#error ...`s), and +afterwards using the set of exported files for building a cross toolchain +(again still removing offending `#error ...`s). A very crude and imprecise +method. + +So, additionally to the list given below, there may actually be a bunch of +further files (also exported ones) that serve no real value, but are being +`#include`d through one way or another. + +* [[source_gnumach-1-branch ddb/db_expr.h]] + + Currently used, but copyright violation? Rewrite? + +* [[source_gnumach-1-branch ddb/db_print.h]] + + Copyright violation? Currently unused, but could be used in principle (or + be rewritten, to avoid the copyright oddity). + +* [[source_gnumach-1-branch ddb/tr.h]] + + Copyright violation. Unused. Remove. + +* [[source_gnumach-1-branch device/dev_master.h]] + + Might be usable for SMP? Remove otherwise. + +* [[source_gnumach-1-branch i386/i386/kttd_machdep.h]] + +* [[source_gnumach-1-branch i386/i386/sched_param.h]] + +* [[source_gnumach-1-branch i386/include/mach/i386/cthreads.h]] + + Was probably once exported, but is no longer. + +* [[source_gnumach-1-branch i386/include/mach/i386/ioccom.h]] + + Exported. + +* [[source_gnumach-1-branch include/device/audio_status.h]] + + Exported. + +* [[source_gnumach-1-branch include/device/tape_status.h]] + + Exported. + +* [[source_gnumach-1-branch include/mach/alert.h]] + + Exported. + +* [[source_gnumach-1-branch include/mach/boot.h]] + + Exported. + +* [[source_gnumach-1-branch include/mach/macro_help.h]] + + Exported. + +* [[source_gnumach-1-branch include/mach/multiboot.h]] + + Exported. + +* [[source_gnumach-1-branch include/mach/profil.h]] + + Exported. + +* [[source_gnumach-1-branch include/mach/profilparam.h]] + + Exported. + +* [[source_gnumach-1-branch include/mach/exec/a.out.h]] + + Exported. + +* [[source_gnumach-1-branch include/mach_debug/pc_info.h]] + + Currently not exported, but was probably once meant to be. + +* [[source_gnumach-1-branch kern/act.h]] + +* [[source_gnumach-1-branch kern/refcount.h]] + +* [[source_gnumach-1-branch kern/shuttle.h]] + + +# Remove dead functions, variables, etc. from source files + + +# Rewrite ugly code diff --git a/microkernel/mach/gnumach/projects/gdb_stubs.mdwn b/microkernel/mach/gnumach/projects/gdb_stubs.mdwn new file mode 100644 index 00000000..9a11a82b --- /dev/null +++ b/microkernel/mach/gnumach/projects/gdb_stubs.mdwn @@ -0,0 +1,13 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + + * + + * [ChangeLog.gdb](http://cvs.savannah.gnu.org/viewvc/gnumach/ChangeLog.gdb?root=hurd&view=markup&pathrev=gnumach-1-branch-gdb-branch) diff --git a/microkernel/mach/gnumach/reference_manual.mdwn b/microkernel/mach/gnumach/reference_manual.mdwn new file mode 100644 index 00000000..225ab176 --- /dev/null +++ b/microkernel/mach/gnumach/reference_manual.mdwn @@ -0,0 +1,26 @@ +[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +*The GNU Mach Reference Manual* documents the architecture, the usage and the +programming of the GNU Mach microkernel. At the moment, the manual documents +the interface completely, but is not very useful as a tutorial or introduction +into the Mach architecture. + + * [HTML version](http://www.gnu.org/software/hurd/gnumach-doc/index.html) + for browsing online, + * [PostScript + version](http://www.gnu.org/software/hurd/gnumach-doc/mach.ps) [around + 900KiB], + * [gzipped PostScript + version](http://www.gnu.org/software/hurd/gnumach-doc/mach.ps.gz) + [around 300KiB], + * [PDF version](http://www.gnu.org/software/hurd/gnumach-doc/mach.pdf) + [around 700KiB]. diff --git a/microkernel/mach/history.mdwn b/microkernel/mach/history.mdwn index 8f4b528b..a8951737 100644 --- a/microkernel/mach/history.mdwn +++ b/microkernel/mach/history.mdwn @@ -41,7 +41,7 @@ Meanwhile, OSKit became unmaintained, thus posing more of a burden on than being In 2005 Gianluca Guida started a different attempt to use the osenv interface with minimal changes to GNU Mach 1.x, thus allowing use of the generic driver interface while importing as little of the umaintained OSKit code as possible. However, there turned out to be serious problems with OSKit, so this attempt was abandoned as well. Today, GNU Mach development focuses on the 1.x branch again -- see also this -list of [[gnu_mach/projects]]. +list of [[gnumach/projects]]. # Status of the project diff --git a/microkernel/mach/mig/documentation.mdwn b/microkernel/mach/mig/documentation.mdwn index a0bbbe14..8afad31c 100644 --- a/microkernel/mach/mig/documentation.mdwn +++ b/microkernel/mach/mig/documentation.mdwn @@ -66,7 +66,7 @@ pp. 67--77." # Further Relevant Documentation - * The [[GNU_Mach_Reference_Manual|gnu_mach/reference_manual]], espacially + * The [[GNU_Mach_Reference_Manual|gnumach/reference_manual]], espacially [Chapter 4, Inter Process Communication](http://www.gnu.org/software/hurd/gnumach-doc/Inter-Process-Communication.html), which, for example, explains how the `dealloc` flag diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index 8b553b6b..f92f7dbe 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -31,7 +31,7 @@ Building the Mach Interface Generator requires the _build-essential_ and _fakero Building the Mach Interface Generator requires a C compiler, a standard C library (with corresponding header files) and your favourite flavor of awk (gawk), yacc (bison), lex (flex) and make. Additionally, you need to have GNU Mach's header files installed. See -[[mach/gnu_mach/building]] about how to do that, then come back here. +[[mach/gnumach/building]] about how to do that, then come back here. ## Building and Installing diff --git a/news/2008-11-14.mdwn b/news/2008-11-14.mdwn index ab8d2f24..1e2c8802 100644 --- a/news/2008-11-14.mdwn +++ b/news/2008-11-14.mdwn @@ -10,5 +10,5 @@ is included in the section entitled [[Samuel_Thibault|samuelthibault]] has implemented support for the PAE feature offered by modern x86 processors. This largely faciliates the deployment of -GNU/Hurd systems running as a [[Xen_domU|microkernel/mach/gnu_mach/ports/xen]] +GNU/Hurd systems running as a [[Xen_domU|microkernel/mach/gnumach/ports/xen]] on top of a standard Debian GNU/Linux Xen dom0, for example. diff --git a/sidebar.mdwn b/sidebar.mdwn index 6a132e6d..b7acb592 100644 --- a/sidebar.mdwn +++ b/sidebar.mdwn @@ -23,7 +23,7 @@ Hurd! * *[[hurd/Running]]*"]] * **[[microkernel/Mach]]**[[if test="destpage(microkernel/mach*)" then=" * *[[microkernel/mach/Documentation]]* - * *[[microkernel/mach/GNU_Mach]]*"]] + * *[[GNU_Mach|microkernel/mach/gnumach]]*"]] * *[[microkernel/mach/MIG]]*[[if test="destpage(microkernel/mach/mig*)" then=" * [[microkernel/mach/mig/GNU_MIG]]"]] -- cgit v1.2.3 From fd71cec83b66958982e3003e4d26896c97b18aee Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 20 Nov 2008 14:29:01 +0100 Subject: GCC: ``PR driver/21706 -- MAXPATHLEN usage in [gcc]/gcc/tlink.c'' has been fixed. --- hurd/running/debian/porting/gcc.mdwn | 3 --- 1 file changed, 3 deletions(-) diff --git a/hurd/running/debian/porting/gcc.mdwn b/hurd/running/debian/porting/gcc.mdwn index 3744f6ee..ab540908 100644 --- a/hurd/running/debian/porting/gcc.mdwn +++ b/hurd/running/debian/porting/gcc.mdwn @@ -17,9 +17,6 @@ integrated. * [\[meta-bug\] bootstrap bugs for \*-gnu\*](http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21824) - * [\[PATCH\] for PR driver/21706 -- MAXPATHLEN usage in - \[gcc\]/gcc/tlink.c](http://gcc.gnu.org/ml/gcc-patches/2008-11/msg00611.html) - * [build system: gcc\_cv\_libc\_provides\_ssp and NATIVE\_SYSTEM\_HEADER\_DIR](http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html) -- cgit v1.2.3 From b730443d009d91fea7baedcf68fe0b32631f9681 Mon Sep 17 00:00:00 2001 From: tschwinge Date: Thu, 20 Nov 2008 13:53:50 +0000 Subject: Show the last five news items. --- index.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.mdwn b/index.mdwn index f7dda9e1..3103f8f7 100644 --- a/index.mdwn +++ b/index.mdwn @@ -25,7 +25,7 @@ kernels (such as Linux). *[[More_detailed.|hurd/what_is_the_gnu_hurd]]* [[inline pages="news/* and !*/discussion" -show=3 +show=5 sort=title reverse=yes template=newsitem -- cgit v1.2.3 From 262b8f4401d882c3dfd8d0e5450ed5521a25cd02 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 20 Nov 2008 18:57:05 +0100 Subject: ikiwiki.setup: New file. Use it in `render_locally' instead of repeating all configuration. Also add a `--official' option. --- ikiwiki.setup | 270 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ render_locally | 52 +++++------ 2 files changed, 296 insertions(+), 26 deletions(-) create mode 100644 ikiwiki.setup diff --git a/ikiwiki.setup b/ikiwiki.setup new file mode 100644 index 00000000..7f09d8aa --- /dev/null +++ b/ikiwiki.setup @@ -0,0 +1,270 @@ +#!/usr/bin/perl +# Setup file for ikiwiki. +# +# Passing this to ikiwiki --setup will make ikiwiki generate +# wrappers and build the wiki. +# +# Remember to re-run ikiwiki --setup any time you edit this file. + +require IkiWiki::Setup::Standard; + +my $root = $ENV{ROOT}; + +my $srcdir; +my $destdir; +my $cgi_wrapper = ''; +my $git_wrapper = ''; +my $gitorigin_branch = ''; + +if (defined $ENV{WEB_SERVER}) +{ + $srcdir = $root.'/hurd-web'; + $destdir = $root.'/public_html'; + $cgi_wrapper = $root.'/hurd-web.cgi'; + $git_wrapper = $root.'/hurd-web.update'; + $gitorigin_branch = 'origin'; +} +else +{ + $srcdir = $root; + $destdir = $ENV{DESTDIR} || $srcdir.'.rendered'; +} + +IkiWiki::Setup::Standard->import({ + # name of the wiki + wikiname => 'GNU Hurd', + # contact email for wiki + adminemail => 'tschwinge@gnu.org', + # users who are wiki admins + adminuser => [qw{tschwinge}], + # users who are banned from the wiki + banned_users => [], + # where the source of the wiki is located + srcdir => $srcdir, + # where to build the wiki + destdir => $destdir, + # base url to the wiki + url => 'http://www.bddebian.com:8888/~hurd-web', + # url to the ikiwiki.cgi + cgiurl => 'http://www.bddebian.com:8888/cgi-bin/hurd-web-ikiwiki.cgi', + # cgi wrapper to generate + cgi_wrapper => $cgi_wrapper, + # mode for cgi_wrapper (can safely be made suid) + cgi_wrappermode => '06755', + # rcs backend to use + rcs => 'git', + # plugins to add to the default configuration + add_plugins => [qw{goodstuff editdiff edittemplate favicon html sidebar table txt copyright license texinfo}], + # plugins to disable + disable_plugins => [], + # location of template files + templatedir => $srcdir.'/.templates', + # base wiki source location + #underlaydir => '/usr/share/ikiwiki/basewiki', + # display verbose messages when building? + verbose => 1, + # log to syslog? + syslog => 0, + # create output files named page/index.html? + usedirs => 1, + # use '!'-prefixed preprocessor directives? + prefix_directives => 0, + # use page/index.mdwn source files + indexpages => 0, + # enable Discussion pages? + discussion => 1, + # only send cookies over SSL connections? + sslcookie => 0, + # extension to use for new pages + default_pageext => 'mdwn', + # extension to use for html files + htmlext => 'html', + # strftime format string to display date + timeformat => '%c', + # UTF-8 locale to use + locale => 'en_US.utf8', + # put user pages below specified page + userdir => 'user', + # how many backlinks to show before hiding excess (0 to show all) + numbacklinks => 10, + # attempt to hardlink source files? (optimisation for large files) + hardlink => 1, + # force ikiwiki to use a particular umask + #umask => 022, + # extra library and plugin directory + libdir => $srcdir.'/.library', + # environment variables + ENV => {}, + # regexp of source files to ignore + #exclude => '\\.wav$', + # specifies the characters that are allowed in source filenames + wiki_file_chars => '-[:alnum:]+/.:_', + # allow symlinks in the path leading to the srcdir (potentially insecure) + #allow_symlinks_before_srcdir => 0, + + # git plugin + # git hook to generate + git_wrapper => $git_wrapper, + # mode for git_wrapper (can safely be made suid) + git_wrappermode => '0700', + # git pre-receive hook to generate + #git_test_receive_wrapper => '/git/wiki.git/hooks/pre-receive', + # unix users whose commits should be checked by the pre-receive hook + #untrusted_committers => [], + # gitweb url to show file history ([[file]] substituted) + historyurl => 'http://www.bddebian.com:8888/gitweb/?p=hurd-web;a=history;f=[[file]]', + # gitweb url to show a diff ([[sha1_to]], [[sha1_from]], [[sha1_parent]], [[sha1_commit]] and [[file]] substituted) + diffurl => 'http://www.bddebian.com:8888/gitweb/?p=hurd-web;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]', + # where to pull and push changes (set to empty string to disable) + gitorigin_branch => $gitorigin_branch, + # branch that the wiki is stored in + gitmaster_branch => 'master', + + # aggregate plugin + # enable aggregation to internal pages? + #aggregateinternal => 0, + # allow aggregation to be triggered via the web? + #aggregate_webtrigger => 0, + + # anonok plugin + # PageSpec to limit which pages anonymous users can edit + #anonok_pagespec => '*/discussion', + + # attachment plugin + # enhanced PageSpec specifying what attachments are allowed + #allowed_attachments => 'virusfree() and mimetype(image/*) and maxsize(50kb)', + # virus checker program (reads STDIN, returns nonzero if virus found) + #virus_checker => 'clamdscan -', + + # bzr plugin + # bzr post-commit hook to generate + #bzr_wrapper => '', + # mode for bzr_wrapper (can safely be made suid) + #bzr_wrappermode => '06755', + # url to show file history, using loggerhead ([[file]] substituted) + #historyurl => '', + # url to view a diff, using loggerhead ([[file]] and [[r2]] substituted) + #diffurl => 'http://example.com/revision?start_revid=[[r2]]#[[file]]-s', + + # calendar plugin + # base of the archives hierarchy + #archivebase => 'archives', + + # htmlscrubber plugin + # PageSpec specifying pages not to scrub + #htmlscrubber_skip => '!*/Discussion', + + # inline plugin + # enable rss feeds by default? + rss => 1, + # enable atom feeds by default? + atom => 1, + # allow rss feeds to be used? + #allowrss => 0, + # allow atom feeds to be used? + #allowatom => 0, + # urls to ping (using XML-RPC) on feed update + pingurl => [], + + # listdirectives plugin + # directory in srcdir that contains directive descriptions + #directive_description_dir => 'ikiwiki/directive', + + # lockedit plugin + # PageSpec controlling which pages are locked + #locked_pages => '!*/Discussion', + + # mdwn plugin + # enable multimarkdown features? + #multimarkdown => 0, + + # mercurial plugin + # mercurial post-commit hook to generate + #mercurial_wrapper => '', + # mode for mercurial_wrapper (can safely be made suid) + #mercurial_wrappermode => '06755', + # url to hg serve'd repository, to show file history ([[file]] substituted) + #historyurl => 'http://example.com:8000/log/tip/[[file]]', + # url to hg serve'd repository, to show diff ([[file]] and [[r2]] substituted) + #diffurl => 'http://localhost:8000/?fd=[[r2]];file=[[file]]', + + # mirrorlist plugin + # list of mirrors + #mirrorlist => {}, + + # openid plugin + # an url where users can signup for an OpenID + #openidsignup => 'http://myopenid.com/', + + # passwordauth plugin + # a password that must be entered when signing up for an account + #account_creation_password => 's3cr1t', + # cost of generating a password using Authen::Passphrase::BlowfishCrypt + #password_cost => 8, + + # pinger plugin + # how many seconds to try pinging before timing out + #pinger_timeout => 15, + + # prettydate plugin + # format to use to display date + #prettydateformat => '%X, %B %o, %Y', + + # recentchanges plugin + # name of the recentchanges page + recentchangespage => 'recent_changes', + # number of changes to track + recentchangesnum => 100, + + # search plugin + # path to the omega cgi program + #omega_cgi => '/usr/lib/cgi-bin/omega/omega', + + # svn plugin + # subversion repository location + #svnrepo => '/svn/wiki', + # path inside repository where the wiki is located + #svnpath => 'trunk', + # svn post-commit hook to generate + #svn_wrapper => '/svn/wikirepo/hooks/post-commit', + # mode for svn_wrapper (can safely be made suid) + #svn_wrappermode => '04755', + # viewvc url to show file history ([[file]] substituted) + #historyurl => 'http://svn.example.org/trunk/[[file]]', + # viewvc url to show a diff ([[file]], [[r1]], and [[r2]] substituted) + #diffurl => 'http://svn.example.org/trunk/[[file]]?root=wiki&r1=[[r1]]&r2=[[r2]]', + + # tag plugin + # parent page tags are located under + #tagbase => 'tag', + + # teximg plugin + # Should teximg use dvipng to render, or dvips and convert? + #teximg_dvipng => '', + # LaTeX prefix for teximg plugin + #teximg_prefix => '\\documentclass{article} + #\\usepackage{amsmath} + #\\usepackage{amsfonts} + #\\usepackage{amssymb} + #\\pagestyle{empty} + #\\begin{document} + #', + # LaTeX postfix for teximg plugin + #teximg_postfix => '\\end{document}', + + # tla plugin + # tla post-commit hook to generate + #tla_wrapper => '', + # mode for tla_wrapper (can safely be made suid) + #tla_wrappermode => '06755', + # url to show file history ([[file]] substituted) + #historyurl => '', + # url to show a diff ([[file]] and [[rev]] substituted) + #diffurl => '', + + # websetup plugin + # list of plugins that cannot be enabled/disabled via the web interface + #websetup_force_plugins => [], + # show unsafe settings, read-only, in web interface? + #websetup_show_unsafe => 1, +}) diff --git a/render_locally b/render_locally index e1c27748..ddd7afc6 100755 --- a/render_locally +++ b/render_locally @@ -1,36 +1,36 @@ #!/bin/sh -# Render the pages of this repository for your local browsing pleasure. - -# We use ``--no-usedirs'' here, because when browsing local files, the web -# browsers don't display `index.html' files by default when a hyperlink -# referencing a directory is being opened. +# Render the pages of this repository. # Written by Thomas Schwinge +export ROOT && ROOT=$(readlink -f "$(dirname "$0")") && -# Need a symlink-free path. -src=$(readlink -f "$(dirname "$0")") && -dest=$src.rendered && +case $1 in + --official) + # Use this for rendering the set of pages which are to be installed under + # . + shift && + export TZ && TZ=UTC && + export DESTDIR && DESTDIR=$ROOT.rendered.official && + set x \ + --set wikistatedir="$ROOT"/.ikiwiki-official \ + "$@" && + shift;; + *) + # Use ``--no-usedirs'' here, because when browsing local files, the web + # browsers don't display `index.html' files by default when a hyperlink + # referencing a directory is being opened. + set x \ + --no-usedirs \ + "$@" && + shift;; +esac && ikiwiki \ - --verbose \ - --wikiname GNU\ Hurd \ - --templatedir "$src"/.templates \ - --userdir user \ - --no-usedirs \ - --plugin favicon \ - --plugin goodstuff \ - --plugin html \ - --plugin sidebar \ - --plugin table \ - --plugin txt \ - --libdir "$src"/.library \ - --plugin copyright \ - --plugin license \ - --plugin texinfo \ - ${1+"$@"} \ - "$src" "$dest" && + --setup "$ROOT"/ikiwiki.setup \ + --refresh \ + "$@" && echo && -echo Now\ open\ \`"$dest"/index.html\'' to browse the web pages.' +echo Now\ open\ \`"${DESTDIR-"$ROOT".rendered}"/index.html\'' to browse the web pages.' -- cgit v1.2.3 From 56008b15e0bc425a5c7df28e88cfc808cc113f04 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 20 Nov 2008 22:16:01 +0100 Subject: GCC: libmudflap. --- hurd/running/debian/porting/gcc.mdwn | 2 + hurd/running/debian/porting/gcc/libmudflap.mdwn | 72 +++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 hurd/running/debian/porting/gcc/libmudflap.mdwn diff --git a/hurd/running/debian/porting/gcc.mdwn b/hurd/running/debian/porting/gcc.mdwn index ab540908..ec412b9c 100644 --- a/hurd/running/debian/porting/gcc.mdwn +++ b/hurd/running/debian/porting/gcc.mdwn @@ -40,3 +40,5 @@ Additionally: * Also in other places: configure fragments that have `*linux*` cases might/should often contain those for us (and GNU/k*BSD) as well. + + * [[`libmudflap`|libmudflap]]. diff --git a/hurd/running/debian/porting/gcc/libmudflap.mdwn b/hurd/running/debian/porting/gcc/libmudflap.mdwn new file mode 100644 index 00000000..2345828b --- /dev/null +++ b/hurd/running/debian/porting/gcc/libmudflap.mdwn @@ -0,0 +1,72 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +Single-threaded use appears to work: + + $ echo 'int main(void) { int *a; a[10]=0; return a[5]; }' | ↩ + gcc -o a -fmudflap -x c - -lmudflap + $ ./a + ******* + mudflap violation 1 (check/write): time=1227208721.922064 ptr=0x1023de0 size=4 + pc=0x1037a33 location=`:1:26 (main)' + /usr/lib/libmudflap.so.0(__mf_check+0x33) [0x1037a33] + ./a(main+0x7c) [0x80486c4] + /usr/lib/libmudflap.so.0(__wrap_main+0x49) [0x1037239] + Nearby object 1: checked region begins 68B before and ends 65B before + mudflap object 0x80ca268: name=`argv[]' + bounds=[0x1023e24,0x1023e2b] size=8 area=static check=0r/0w liveness=0 + alloc time=1227208721.922064 pc=0x10371d3 + Nearby object 2: checked region begins 76B before and ends 73B before + mudflap object 0x80cb448: name=`environ[]' + bounds=[0x1023e2c,0x1023ed7] size=172 area=static check=0r/0w liveness=0 + alloc time=1227208721.922064 pc=0x10371d3 + number of nearby objects: 2 + ******* + mudflap violation 2 (check/read): time=1227208721.942109 ptr=0x1023dcc size=4 + pc=0x1037a33 location=`:1:35 (main)' + /usr/lib/libmudflap.so.0(__mf_check+0x33) [0x1037a33] + ./a(main+0xf3) [0x804873b] + /usr/lib/libmudflap.so.0(__wrap_main+0x49) [0x1037239] + Nearby object 1: checked region begins 88B before and ends 85B before + mudflap object 0x80ca268: name=`argv[]' + Nearby object 2: checked region begins 96B before and ends 93B before + mudflap object 0x80cb448: name=`environ[]' + number of nearby objects: 2 + +Multi-threaded use doesn't: + + $ echo 'int main(void) { int *a; a[10]=0; return a[5]; }' | ↩ + gcc -include pthread.h -o a -fmudflapth -x c - -lmudflapth -lpthread + $ ./a + Killed + $ gdb a + [...] + Starting program: /media/data/home/tschwinge/a + + Program received signal EXC_BAD_ACCESS, Could not access memory. + 0x01180653 in getenv () from /lib/libc.so.0.3 + (gdb) bt + #0 0x01180653 in getenv () from /lib/libc.so.0.3 + #1 0x01177a02 in __dcigettext () from /lib/libc.so.0.3 + #2 0x01176a57 in dcgettext () from /lib/libc.so.0.3 + #3 0x011c03b5 in strerror_r () from /lib/libc.so.0.3 + #4 0x01175b57 in __assert_perror_fail () from /lib/libc.so.0.3 + #5 0x0111f1ad in cthread_fork (func=0x114f630 <_hurd_msgport_receive>, arg=0x0) + at /build/buildd/hurd-20080607/build-tree/hurd/libpthread/pthread/cthreads-compat.c:41 + #6 0x0115713e in _hurdsig_init () from /lib/libc.so.0.3 + #7 0x01140852 in _hurd_proc_init@@GLIBC_2.2.6 () from /lib/libc.so.0.3 + #8 0x01140e86 in _hurd_init () from /lib/libc.so.0.3 + #9 0x011690ce in init1 () from /lib/libc.so.0.3 + #10 0x00001e96 in _dl_start_user () from /lib/ld.so + #11 0x00000001 in ?? () + #12 0x01024000 in ?? () + #13 0x00000000 in ?? () + +Also `libmudflap` is pthread-only. -- cgit v1.2.3 From b5128d344ce80cbfc6aa8fd6d84bcddc7e142fb1 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 20 Nov 2008 22:23:44 +0100 Subject: Add copyright and licensing header. --- hurd/debugging/glibc.mdwn | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/hurd/debugging/glibc.mdwn b/hurd/debugging/glibc.mdwn index a0890fe8..f0fe8b61 100644 --- a/hurd/debugging/glibc.mdwn +++ b/hurd/debugging/glibc.mdwn @@ -1,3 +1,13 @@ +[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + Here are some hints about how to approach testing after nontrivial changes to glibc have been done. -- cgit v1.2.3 From b1d42782501e37daf05c63d68f23a712babc8e09 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 20 Nov 2008 22:33:22 +0100 Subject: hurd/debugging/hurd -> hurd/debugging/translator/gdb --- hurd/debugging.mdwn | 4 +-- hurd/debugging/hurd.mdwn | 53 -------------------------------------- hurd/debugging/translator.mdwn | 13 ++++++++++ hurd/debugging/translator/gdb.mdwn | 53 ++++++++++++++++++++++++++++++++++++++ hurd/translator.mdwn | 3 +++ 5 files changed, 71 insertions(+), 55 deletions(-) delete mode 100644 hurd/debugging/hurd.mdwn create mode 100644 hurd/debugging/translator.mdwn create mode 100644 hurd/debugging/translator/gdb.mdwn diff --git a/hurd/debugging.mdwn b/hurd/debugging.mdwn index b84c5675..e4a98672 100644 --- a/hurd/debugging.mdwn +++ b/hurd/debugging.mdwn @@ -18,5 +18,5 @@ is included in the section entitled # About Specific Packages -* [[glibc]] -* [[Hurd]] + * [[glibc]] + * [[translator]]s diff --git a/hurd/debugging/hurd.mdwn b/hurd/debugging/hurd.mdwn deleted file mode 100644 index 043da3e0..00000000 --- a/hurd/debugging/hurd.mdwn +++ /dev/null @@ -1,53 +0,0 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -Say you want to try running file system server (*[[translator/ext2fs]]*, -*[[translator/jfs]]*, ...) against a modified version of *[[libpager]]* and -debug the latter one using [[GDB]]. - -Set the [[translator]] like this: - - $ settrans -fgap ↩ - jfs.img.i ↩ - /usr/bin/env ↩ - LD_LIBRARY_PATH=~tschwinge/tmp/hurd/hurd.ogi/build/libpager ↩ - "`pwd`"/jfs.obj/jfs ↩ - "`pwd`"/jfs.img - -Then, when starting GDB, start it like this (or use an equivalent method, of -course): - - $ LD_LIBRARY_PATH=~tschwinge/tmp/hurd/hurd.ogi/build/libpager ↩ - gdb ↩ - ~tschwinge/tmp/jfs/jfs.obj/jfs 15436 - GNU gdb 6.5-debian - [...] - Reading symbols from /lib/libdiskfs.so.0.3...Reading symbols from /lib/debug/lib/libdiskfs.so.0.3...done. - done. - Loaded symbols for /lib/libdiskfs.so.0.3 - Reading symbols from /devel4/tschwinge/tmp/hurd/hurd.ogi/build/libpager/libpager.so.0.3...done. - Loaded symbols for /devel4/tschwinge/tmp/hurd/hurd.ogi/build/libpager/libpager.so.0.3 - Reading symbols from /lib/libstore.so.0.3...Reading symbols from /lib/debug/lib/libstore.so.0.3...done. - done. - Loaded symbols for /lib/libstore.so.0.3 - [...] - (gdb) break pager_demuxer - Breakpoint 1 at 0x105c98d: file ../../libpager/demuxer.c, line 27. - [...] - Breakpoint 1, pager_demuxer (inp=0x12bded0, outp=0x12bbec0) at ../../libpager/demuxer.c:27 - 27 { - (gdb) list - 22 /* Demultiplex a single message directed at a pager port; INP is the - 23 message received; fill OUTP with the reply. */ - 24 int - 25 pager_demuxer (mach_msg_header_t *inp, - [...] - -Voilà. diff --git a/hurd/debugging/translator.mdwn b/hurd/debugging/translator.mdwn new file mode 100644 index 00000000..22c8cc2c --- /dev/null +++ b/hurd/debugging/translator.mdwn @@ -0,0 +1,13 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +[[inline +pages="hurd/debugging/translator/* and !*/discussion" +show=0]] diff --git a/hurd/debugging/translator/gdb.mdwn b/hurd/debugging/translator/gdb.mdwn new file mode 100644 index 00000000..bee41010 --- /dev/null +++ b/hurd/debugging/translator/gdb.mdwn @@ -0,0 +1,53 @@ +[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +Say you want to try running file system server ([[`ext2fs`|translator/ext2fs]], +[[`jfs`|translator/jfs]], ...) against a modified version of +[[`libpager`|libpager]] and debug the latter one using [[debugging/GDB]]. + +Set the [[hurd/translator]] like this: + + $ settrans -fgap ↩ + jfs.img.i ↩ + /usr/bin/env ↩ + LD_LIBRARY_PATH=~tschwinge/tmp/hurd/hurd.ogi/build/libpager ↩ + "$PWD"/jfs.obj/jfs ↩ + "$PWD"/jfs.img + +Then, when starting GDB, start it like this (or use an equivalent method, of +course): + + $ LD_LIBRARY_PATH=~tschwinge/tmp/hurd/hurd.ogi/build/libpager ↩ + gdb ↩ + ~tschwinge/tmp/jfs/jfs.obj/jfs 15436 + GNU gdb 6.5-debian + [...] + Reading symbols from /lib/libdiskfs.so.0.3...Reading symbols from /lib/debug/lib/libdiskfs.so.0.3...done. + done. + Loaded symbols for /lib/libdiskfs.so.0.3 + Reading symbols from /devel4/tschwinge/tmp/hurd/hurd.ogi/build/libpager/libpager.so.0.3...done. + Loaded symbols for /devel4/tschwinge/tmp/hurd/hurd.ogi/build/libpager/libpager.so.0.3 + Reading symbols from /lib/libstore.so.0.3...Reading symbols from /lib/debug/lib/libstore.so.0.3...done. + done. + Loaded symbols for /lib/libstore.so.0.3 + [...] + (gdb) break pager_demuxer + Breakpoint 1 at 0x105c98d: file ../../libpager/demuxer.c, line 27. + [...] + Breakpoint 1, pager_demuxer (inp=0x12bded0, outp=0x12bbec0) at ../../libpager/demuxer.c:27 + 27 { + (gdb) list + 22 /* Demultiplex a single message directed at a pager port; INP is the + 23 message received; fill OUTP with the reply. */ + 24 int + 25 pager_demuxer (mach_msg_header_t *inp, + [...] + +Voilà. diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index 1a987b09..d333da5a 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -42,6 +42,9 @@ See some [[examples]] about how to use translators. Marcus Brinkmann has written a document about [[documentation/translators]]. +Here are some [[hints_about_debugging_translators|debugging/translator]] +available. + # Existing Translators -- cgit v1.2.3 From ad75cac5b15615e206c601ca21cc65618f357b49 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 20 Nov 2008 22:50:42 +0100 Subject: About capturing a translator's stdout and stderr. --- .../translator/capturing_stdout_and_stderr.mdwn | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 hurd/debugging/translator/capturing_stdout_and_stderr.mdwn diff --git a/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn b/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn new file mode 100644 index 00000000..8430287a --- /dev/null +++ b/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn @@ -0,0 +1,26 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +Sometimes it may already be helpful to capture a translator's `stdout` and +`stderr`, for example like this: + + $ sudo settrans -fgap ↩ + /servers/socket/2 ↩ + /bin/sh -c '/hurd/pfinet -i eth0 -a [...] > /tmp/stdout 2> /tmp/stderr' + $ [...] + $ cat /tmp/stdout + NET4: Linux TCP/IP 1.0 for NET4.0 + IP Protocols: ICMP, UDP, TCP + TCP: Hash tables configured (ehash 65536 bhash 65536) + $ cat /tmp/stderr + pfinet: ../../hurd.work/pfinet/ethernet.c:196: ethernet_xmit: Unexpected error: (os/device) invalid IO size. + +(Trying to run [[GDB]] in this case was of no help -- due to a bug in GDB +(supposedly) it wouldn't catch the fault.) -- cgit v1.2.3 From 790d50c36cf29979307895ed29d4a8d854542c02 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 21 Nov 2008 11:44:10 +0100 Subject: Use the C locale. joeyh: What happens if the locale configuration option (ikiwiki.setup) is not a utf8 locale? / Is the C locale utf8? joeyh: I want to share a configuration file between different machines, some of which have en_US.uft8 installed and other haven't. joeyh: Some have de_DE.utf8, but I don't want to have German language for the discussion subpages, for example. joeyh: That's why I thought about simply using the C locale. But you state that it has to be a utf8 locale. C locale is the default, will work fine I think that I said utf-8 in the description there because, if you chose some locale that did not use utf-8 or plain ascii, ikiwiki wo\ uld still use utf-8 for its internals and output a mess --- ikiwiki.setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ikiwiki.setup b/ikiwiki.setup index 7f09d8aa..65e5b076 100644 --- a/ikiwiki.setup +++ b/ikiwiki.setup @@ -82,7 +82,7 @@ IkiWiki::Setup::Standard->import({ # strftime format string to display date timeformat => '%c', # UTF-8 locale to use - locale => 'en_US.utf8', + locale => 'C', # put user pages below specified page userdir => 'user', # how many backlinks to show before hiding excess (0 to show all) -- cgit v1.2.3 From 7a67fff454fddda32c4ce789cde8449ec9a88f52 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 22 Nov 2008 23:56:16 +0100 Subject: Tidy inline directives. --- hurd/debugging/translator.mdwn | 4 +++- hurd/faq.mdwn | 1 + hurd/open_issues.mdwn | 1 + hurd/running/debian/faq.mdwn | 1 + hurd/running/debian/porting.mdwn | 1 + hurd/translator/tmpfs.mdwn | 4 ++-- index.mdwn | 7 +++++++ microkernel/faq.mdwn | 1 + microkernel/mach/gnumach/open_issues.mdwn | 1 + microkernel/mach/mig/gnu_mig/open_issues.mdwn | 1 + news.mdwn | 1 + 11 files changed, 20 insertions(+), 3 deletions(-) diff --git a/hurd/debugging/translator.mdwn b/hurd/debugging/translator.mdwn index 22c8cc2c..8e8dd6fb 100644 --- a/hurd/debugging/translator.mdwn +++ b/hurd/debugging/translator.mdwn @@ -10,4 +10,6 @@ is included in the section entitled [[inline pages="hurd/debugging/translator/* and !*/discussion" -show=0]] +show=0 +feeds=no +actions=yes]] diff --git a/hurd/faq.mdwn b/hurd/faq.mdwn index aab538d9..0227f1c1 100644 --- a/hurd/faq.mdwn +++ b/hurd/faq.mdwn @@ -13,5 +13,6 @@ is included in the section entitled [[inline pages="hurd/faq/* and !*/discussion" show=0 +feeds=no actions=yes rootpage="hurd/faq" postformtext="Add a new item titled:"]] diff --git a/hurd/open_issues.mdwn b/hurd/open_issues.mdwn index d7dc4d99..c4bcce09 100644 --- a/hurd/open_issues.mdwn +++ b/hurd/open_issues.mdwn @@ -15,5 +15,6 @@ This is a dumping ground for open issues for the GNU Hurd. [[inline pages="hurd/open_issues/* and !*/discussion" show=0 +feeds=no actions=yes rootpage="hurd/open_issues" postformtext="Add a new item titled:"]] diff --git a/hurd/running/debian/faq.mdwn b/hurd/running/debian/faq.mdwn index f4b607bf..227ade02 100644 --- a/hurd/running/debian/faq.mdwn +++ b/hurd/running/debian/faq.mdwn @@ -15,5 +15,6 @@ See also the [[Hurd_FAQ|hurd/FAQ]] and [[after_install]]. [[inline pages="hurd/running/debian/faq/* and !*/discussion" show=0 +feeds=no actions=yes rootpage="hurd/running/debian/faq" postformtext="Add a new item titled:"]] diff --git a/hurd/running/debian/porting.mdwn b/hurd/running/debian/porting.mdwn index 7ca91d37..eb46c4c3 100644 --- a/hurd/running/debian/porting.mdwn +++ b/hurd/running/debian/porting.mdwn @@ -33,5 +33,6 @@ guidelines. [[inline pages="hurd/running/debian/porting/* and !*/discussion" show=0 +feeds=no actions=yes rootpage="hurd/running/debian/porting" postformtext="Add a new item titled:"]] diff --git a/hurd/translator/tmpfs.mdwn b/hurd/translator/tmpfs.mdwn index 6d10c163..bb9ef269 100644 --- a/hurd/translator/tmpfs.mdwn +++ b/hurd/translator/tmpfs.mdwn @@ -18,5 +18,5 @@ It's not working correctly at the moment. [[inline pages="hurd/translator/tmpfs/*" show=0 -actions=yes -rootpage="hurd/translator/tmpfs" postformtext="Add a new item titled:"]] +feeds=no +actions=yes]] diff --git a/index.mdwn b/index.mdwn index 3103f8f7..8754baab 100644 --- a/index.mdwn +++ b/index.mdwn @@ -23,9 +23,16 @@ kernels (such as Linux). *[[More_detailed.|hurd/what_is_the_gnu_hurd]]* ## News +[[inline +pages="news/* and !*/discussion" +feedonly=yes +feedshow=10 +sort=title +reverse=yes]] [[inline pages="news/* and !*/discussion" show=5 +feeds=no sort=title reverse=yes template=newsitem diff --git a/microkernel/faq.mdwn b/microkernel/faq.mdwn index 0e129095..f83c65ca 100644 --- a/microkernel/faq.mdwn +++ b/microkernel/faq.mdwn @@ -13,5 +13,6 @@ is included in the section entitled [[inline pages="microkernel/faq/* and !*/discussion" show=0 +feeds=no actions=yes rootpage=microkernel/faq" postformtext="Add a new item titled:"]] diff --git a/microkernel/mach/gnumach/open_issues.mdwn b/microkernel/mach/gnumach/open_issues.mdwn index 433ec3ef..ec289708 100644 --- a/microkernel/mach/gnumach/open_issues.mdwn +++ b/microkernel/mach/gnumach/open_issues.mdwn @@ -15,5 +15,6 @@ This is a dumping ground for open issues for GNU Mach. [[inline pages="microkernel/mach/gnumach/open_issues/* and !*/discussion" show=0 +feeds=no actions=yes rootpage="microkernel/mach/gnumach/open_issues" postformtext="Add a new item titled:"]] diff --git a/microkernel/mach/mig/gnu_mig/open_issues.mdwn b/microkernel/mach/mig/gnu_mig/open_issues.mdwn index 7a6233da..225f9cfc 100644 --- a/microkernel/mach/mig/gnu_mig/open_issues.mdwn +++ b/microkernel/mach/mig/gnu_mig/open_issues.mdwn @@ -15,6 +15,7 @@ This is a dumping ground for open issues for GNU MIG. [[inline pages="microkernel/mach/mig/gnu_mig/open_issues/* and !*/discussion" show=0 +feeds=no actions=yes rootpage="microkernel/mach/mig/gnu_mig/open_issues" postformtext="Add a new item titled:"]] diff --git a/news.mdwn b/news.mdwn index 71058f85..8e5d73da 100644 --- a/news.mdwn +++ b/news.mdwn @@ -11,6 +11,7 @@ is included in the section entitled [[inline pages="news/* and !*/discussion" show=0 +feeds=no sort=title reverse=yes actions=yes]] -- cgit v1.2.3 From 6146491464ccbaa80e085d0ea2f5fc0508c56bd8 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 00:02:03 +0100 Subject: Use a different time format. --- ikiwiki.setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ikiwiki.setup b/ikiwiki.setup index 65e5b076..a6de93cf 100644 --- a/ikiwiki.setup +++ b/ikiwiki.setup @@ -80,7 +80,7 @@ IkiWiki::Setup::Standard->import({ # extension to use for html files htmlext => 'html', # strftime format string to display date - timeformat => '%c', + timeformat => '%F %T', # UTF-8 locale to use locale => 'C', # put user pages below specified page -- cgit v1.2.3 From ac4e0e0ad26488f08323e1d37a684e333c800734 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 00:10:09 +0100 Subject: Stay on www.gnu.org. --- render_locally | 1 + 1 file changed, 1 insertion(+) diff --git a/render_locally b/render_locally index ddd7afc6..c3098d11 100755 --- a/render_locally +++ b/render_locally @@ -15,6 +15,7 @@ case $1 in export DESTDIR && DESTDIR=$ROOT.rendered.official && set x \ --set wikistatedir="$ROOT"/.ikiwiki-official \ + --url http://www.gnu.org/software/hurd \ "$@" && shift;; *) -- cgit v1.2.3 From 1e8531255ac123e6e598aadb59ebcf819016960f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 00:13:00 +0100 Subject: Move getting_help out of hurd/. --- getting_help.mdwn | 21 +++++++++++++++++++++ hurd/getting_help.mdwn | 21 --------------------- sidebar.mdwn | 2 +- 3 files changed, 22 insertions(+), 22 deletions(-) create mode 100644 getting_help.mdwn delete mode 100644 hurd/getting_help.mdwn diff --git a/getting_help.mdwn b/getting_help.mdwn new file mode 100644 index 00000000..342410dd --- /dev/null +++ b/getting_help.mdwn @@ -0,0 +1,21 @@ +[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +# Essential Documentation + +* [[FAQ]] +* [[microkernel/mach/gnumach/Hardware_Compatibility_List]] + +# Forums + +[[inline pages=asking_questions raw=yes feeds=no]] + +* [[Mailing_lists]] +* [[IRC]] diff --git a/hurd/getting_help.mdwn b/hurd/getting_help.mdwn deleted file mode 100644 index 342410dd..00000000 --- a/hurd/getting_help.mdwn +++ /dev/null @@ -1,21 +0,0 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -# Essential Documentation - -* [[FAQ]] -* [[microkernel/mach/gnumach/Hardware_Compatibility_List]] - -# Forums - -[[inline pages=asking_questions raw=yes feeds=no]] - -* [[Mailing_lists]] -* [[IRC]] diff --git a/sidebar.mdwn b/sidebar.mdwn index b7acb592..85596be8 100644 --- a/sidebar.mdwn +++ b/sidebar.mdwn @@ -14,7 +14,7 @@ Hurd! * **[[Home|/index]]** * **[[Community]]** * **[[Documentation]]** - * **[[Hurd/Getting_Help]]** + * **[[Getting_Help]]** --- -- cgit v1.2.3 From 10596b0bb6a32d9821e053f572ad96b40dc364ef Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 00:13:21 +0100 Subject: Link to the documentation. --- getting_help.mdwn | 1 + 1 file changed, 1 insertion(+) diff --git a/getting_help.mdwn b/getting_help.mdwn index 342410dd..21d4980b 100644 --- a/getting_help.mdwn +++ b/getting_help.mdwn @@ -12,6 +12,7 @@ is included in the section entitled * [[FAQ]] * [[microkernel/mach/gnumach/Hardware_Compatibility_List]] +* [[Documentation] # Forums -- cgit v1.2.3 From 36bb91a8b291d662fd07d448823c7dac4c803452 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 00:21:12 +0100 Subject: Move GSoC 2008 IRC meetings minutes pages. --- community/02may08minutes.mdwn | 39 ------------------ community/16may08minutes.mdwn | 21 ---------- community/25april08minutes.mdwn | 61 ----------------------------- community/gsoc.mdwn | 3 +- community/gsoc/2008/minutes-2008-04-25.mdwn | 61 +++++++++++++++++++++++++++++ community/gsoc/2008/minutes-2008-05-02.mdwn | 39 ++++++++++++++++++ community/gsoc/2008/minutes-2008-05-16.mdwn | 21 ++++++++++ 7 files changed, 123 insertions(+), 122 deletions(-) delete mode 100644 community/02may08minutes.mdwn delete mode 100644 community/16may08minutes.mdwn delete mode 100644 community/25april08minutes.mdwn create mode 100644 community/gsoc/2008/minutes-2008-04-25.mdwn create mode 100644 community/gsoc/2008/minutes-2008-05-02.mdwn create mode 100644 community/gsoc/2008/minutes-2008-05-16.mdwn diff --git a/community/02may08minutes.mdwn b/community/02may08minutes.mdwn deleted file mode 100644 index 9c99a8e7..00000000 --- a/community/02may08minutes.mdwn +++ /dev/null @@ -1,39 +0,0 @@ -[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -- madrazr wanted a wiki to keep track of progress. antrik suggested: - http://www.bddebian.com/~wiki/community/gsoc/ and that everyone use - that to keep track of their progress. bddebian was poked about git - accounts on flubber.bddebian.com - -- antrik/youpi talked about the mailing lists. - Debian GNU/Hurd (installer, etc): http://lists.debian.org/debian-hurd - bug-hurd, etc - -- Don't be afraid to post to the lists. There's no need to send the - post for review first. Generally people on the list are the same as - people on IRC - -- various docs links were posted: - http://angg.twu.net/the_hurd_links.html - http://www.gnu.org/software/hurd/docs.html - -- youpi posted a survey of some of the reasons why packages don't work - on Hurd: http://lists.debian.org/debian-hurd/2007/07/msg00000.html - and http://lists.debian.org/debian-hurd/2007/07/msg00001.html - -- andrei posted - http://web.cecs.pdx.edu/~trent/gnu/hurd/hurd-talk.tar.gz an archive - of hurd-folks - -- antrik is happy with communication in general - -- wiki pages for each of the projects should be created sometime this - week diff --git a/community/16may08minutes.mdwn b/community/16may08minutes.mdwn deleted file mode 100644 index 8adb838c..00000000 --- a/community/16may08minutes.mdwn +++ /dev/null @@ -1,21 +0,0 @@ -[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -* **madrazr** said that web commits for the wiki stall forever (more than half an hour); the reason is unknown. **antrik** said that it is not much of a problem if the problems with git access are solved. - -* It was explained that the wiki server is not a very fast machine, which runs Hurd, hence the delay. - -* Everybody agreed on the fact that there is much school/university work to do, since it's the end of the term now; students have little time to work on their projects. - -* The idea to use git and github for the projects was suggested. - -* **antrik** remarked that the summer session starts pretty soon and that it is time to tackle open design questions and decide where to start actual coding. The task to do that was assigned as a homework till the next meeting. - -* the official GSoC students talked about the start of program gift by Google. diff --git a/community/25april08minutes.mdwn b/community/25april08minutes.mdwn deleted file mode 100644 index 3f2c0313..00000000 --- a/community/25april08minutes.mdwn +++ /dev/null @@ -1,61 +0,0 @@ -[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -- People agreed that some small projects should be done to during the bonding - period: ideas that floated around were fixing some of the build failures or - looking at the new debian installer. - http://unstable.buildd.net/buildd/hurd-i386_Failed.html - http://unstable.buildd.net/index-hurd-i386.html - For some context: - http://dept-info.labri.fr/~thibault/tmp/graph-radial.ps - Don't pick something that looks too critical, it'll probably be too hard - -- Antrik was ok with not having a formal weekly report as long as the - repositories are growing and the students are around - -- Discussion about scms. It's ok to have your own, you'll get you own branch, - just make sure to make your own repository public. There was some talk about - not checking in one huge commit at the end - -- Copyright assignments to the FSF are required for most of hurd and other gnu - projects. http://lists.gnu.org/archive/html/bug-hurd/2008-03/msg00175.html - is your friend. Fill it out 3 times: Mach, Hurd, glibc. It's ok if you're - not planning on working on all of these. Email to fsf-records@gnu.org - -- Non-SoC students were offered some compensation for doing their projects - anyway. They were far more interested in the fact that they would be doing - worthwhile work than financial compensation - -- It was agreed that regular meetings would be a good idea. Once a - week, especially in the bonding period. - -- In general it was agreed that conversations shouldn't stay between just - mentors and their students, that it's better to keep everything out in the - open - -- Non-SoC students were assigned mentors, though it was agreed that they would - be mostly a primary contact and that most conversations should be kept - public - -- Discussion turned back to the meetings, the usual back and forth about the - timeslot. Fridays at 19 UTC was decided as the meeting time. - -- It was suggested that students look into writing documentation/guides for - hurd, for example cross-compiling hurd on gentoo, as a way to get more - familliar. - -- Andrei will set up a google calendar for organizing meetings. - -- Antrik noted that IRC is good for quick questions but serious ones should go - to the mailing list to get everyone involved. - -And so the first meeting was concluded. - - diff --git a/community/gsoc.mdwn b/community/gsoc.mdwn index bab00748..6f4f8d01 100644 --- a/community/gsoc.mdwn +++ b/community/gsoc.mdwn @@ -78,7 +78,8 @@ did a great job! Since the selection of the students on we have had regular GSoC IRC meetings, every Friday 19:00 UTC. -Minutes from some of the meetings: [[25April08Minutes]], [[02May08Minutes]], [[16May08Minutes]] +Minutes from some of the meetings: [[2008/minutes-2008-04-25]], +[[2008/minutes-2008-05-02]], [[2008/minutes-2008-05-16]] We decided to keep up the meetings after the end of official GSoC, so things can be properly wrapped up for upstream submission; but also because the diff --git a/community/gsoc/2008/minutes-2008-04-25.mdwn b/community/gsoc/2008/minutes-2008-04-25.mdwn new file mode 100644 index 00000000..3f2c0313 --- /dev/null +++ b/community/gsoc/2008/minutes-2008-04-25.mdwn @@ -0,0 +1,61 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +- People agreed that some small projects should be done to during the bonding + period: ideas that floated around were fixing some of the build failures or + looking at the new debian installer. + http://unstable.buildd.net/buildd/hurd-i386_Failed.html + http://unstable.buildd.net/index-hurd-i386.html + For some context: + http://dept-info.labri.fr/~thibault/tmp/graph-radial.ps + Don't pick something that looks too critical, it'll probably be too hard + +- Antrik was ok with not having a formal weekly report as long as the + repositories are growing and the students are around + +- Discussion about scms. It's ok to have your own, you'll get you own branch, + just make sure to make your own repository public. There was some talk about + not checking in one huge commit at the end + +- Copyright assignments to the FSF are required for most of hurd and other gnu + projects. http://lists.gnu.org/archive/html/bug-hurd/2008-03/msg00175.html + is your friend. Fill it out 3 times: Mach, Hurd, glibc. It's ok if you're + not planning on working on all of these. Email to fsf-records@gnu.org + +- Non-SoC students were offered some compensation for doing their projects + anyway. They were far more interested in the fact that they would be doing + worthwhile work than financial compensation + +- It was agreed that regular meetings would be a good idea. Once a + week, especially in the bonding period. + +- In general it was agreed that conversations shouldn't stay between just + mentors and their students, that it's better to keep everything out in the + open + +- Non-SoC students were assigned mentors, though it was agreed that they would + be mostly a primary contact and that most conversations should be kept + public + +- Discussion turned back to the meetings, the usual back and forth about the + timeslot. Fridays at 19 UTC was decided as the meeting time. + +- It was suggested that students look into writing documentation/guides for + hurd, for example cross-compiling hurd on gentoo, as a way to get more + familliar. + +- Andrei will set up a google calendar for organizing meetings. + +- Antrik noted that IRC is good for quick questions but serious ones should go + to the mailing list to get everyone involved. + +And so the first meeting was concluded. + + diff --git a/community/gsoc/2008/minutes-2008-05-02.mdwn b/community/gsoc/2008/minutes-2008-05-02.mdwn new file mode 100644 index 00000000..9c99a8e7 --- /dev/null +++ b/community/gsoc/2008/minutes-2008-05-02.mdwn @@ -0,0 +1,39 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +- madrazr wanted a wiki to keep track of progress. antrik suggested: + http://www.bddebian.com/~wiki/community/gsoc/ and that everyone use + that to keep track of their progress. bddebian was poked about git + accounts on flubber.bddebian.com + +- antrik/youpi talked about the mailing lists. + Debian GNU/Hurd (installer, etc): http://lists.debian.org/debian-hurd + bug-hurd, etc + +- Don't be afraid to post to the lists. There's no need to send the + post for review first. Generally people on the list are the same as + people on IRC + +- various docs links were posted: + http://angg.twu.net/the_hurd_links.html + http://www.gnu.org/software/hurd/docs.html + +- youpi posted a survey of some of the reasons why packages don't work + on Hurd: http://lists.debian.org/debian-hurd/2007/07/msg00000.html + and http://lists.debian.org/debian-hurd/2007/07/msg00001.html + +- andrei posted + http://web.cecs.pdx.edu/~trent/gnu/hurd/hurd-talk.tar.gz an archive + of hurd-folks + +- antrik is happy with communication in general + +- wiki pages for each of the projects should be created sometime this + week diff --git a/community/gsoc/2008/minutes-2008-05-16.mdwn b/community/gsoc/2008/minutes-2008-05-16.mdwn new file mode 100644 index 00000000..8adb838c --- /dev/null +++ b/community/gsoc/2008/minutes-2008-05-16.mdwn @@ -0,0 +1,21 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +* **madrazr** said that web commits for the wiki stall forever (more than half an hour); the reason is unknown. **antrik** said that it is not much of a problem if the problems with git access are solved. + +* It was explained that the wiki server is not a very fast machine, which runs Hurd, hence the delay. + +* Everybody agreed on the fact that there is much school/university work to do, since it's the end of the term now; students have little time to work on their projects. + +* The idea to use git and github for the projects was suggested. + +* **antrik** remarked that the summer session starts pretty soon and that it is time to tackle open design questions and decide where to start actual coding. The task to do that was assigned as a homework till the next meeting. + +* the official GSoC students talked about the start of program gift by Google. -- cgit v1.2.3 From 59d93ca765b359644d562f24f158f7e287678cb4 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 00:39:41 +0100 Subject: Move user pages where they belong. --- community/da.mdwn | 110 ----------- community/flavioc.mdwn | 126 ------------ community/gsoc.mdwn | 6 +- community/gsoc/project_ideas.mdwn | 8 +- community/howto.mdwn | 95 --------- community/procfs.mdwn | 395 -------------------------------------- community/scolobb.mdwn | 134 ------------- user/flaviocruz.mdwn | 126 ++++++++++++ user/madhusudancs.mdwn | 395 ++++++++++++++++++++++++++++++++++++++ user/scolobb.mdwn | 134 +++++++++++++ user/zhengda.mdwn | 110 +++++++++++ user/zhengda/howto.mdwn | 95 +++++++++ 12 files changed, 867 insertions(+), 867 deletions(-) delete mode 100644 community/da.mdwn delete mode 100644 community/flavioc.mdwn delete mode 100644 community/howto.mdwn delete mode 100644 community/procfs.mdwn delete mode 100644 community/scolobb.mdwn create mode 100644 user/flaviocruz.mdwn create mode 100644 user/madhusudancs.mdwn create mode 100644 user/scolobb.mdwn create mode 100644 user/zhengda.mdwn create mode 100644 user/zhengda/howto.mdwn diff --git a/community/da.mdwn b/community/da.mdwn deleted file mode 100644 index e15aade1..00000000 --- a/community/da.mdwn +++ /dev/null @@ -1,110 +0,0 @@ -# Zheng Da - -Email: zhengda1936 at gmail dot com - -Project: Network virtualization for subhurds etc. - -The [code](http://www.assembla.com/spaces/VNetHurd/trac_subversion_tool). - -The [[howto]] shows the instructions of setting up the virtual network in hurd and subhurd. - ---- - -## The design and the implementation - -### The requirements: -* to implement a mechanism which help pfinet servers communicate with each other. For example, if pfinet 1 has IP A and pfinet 2 has IP B, the packet sent by pfinet 1 with destination address IP B should be received by pfinet 2. -* Sub-hurd should be able to use this mechanism to communicate with each other. -* Meanwhile this mechanism should allow non-privileged the user to start his own pfinet. - - -### The possible approach is to use the multiplexer and the filter. -The multiplexer's roles are: - -1. to create some virtual network interface, so pfinet can send packets to it. -2. to receive the packet from pfinet, and forward the packet to other pfinets in hurd -3. or forward the packet to the real network device in the kernel and send it to the network. - -A filter translator is needed to enforce the policies between the interface and the pfinet server. For example, the filter can control which packets can be delivered to the pfinet server, and which packets can be sent to the network interface. The filter can also guard the network traffic and drop illegal packets (forged by some malicious users) from pfinet or some other programs. - - -### To create a virtual network interface: -* Implement the RPC interface defined in device.defs. -* The multiplexer works as a translator and other programs can get the port to it by calling file_name_port(). -* Other programs can use this port as a master device port to open the virtual interface. - - -### The routing inside the multiplexer: -* when the multiplexer gets a packet, it forwards it to every interface. -* BPF is ported to the multiplexer. BPF delivers the packet to the right pfinet (according to the filter set by the pfinet) just as the BPF in Mach does. -* All packets are forwarded to the interface which the multiplexer sits on. - - -### The implementation of the filter translator: -* The filter works as a proxy, forwarding the packet between the interface and the pfinet server. -* BPF is also ported to the filter translator. There are two filers in the translator, one for outgoing packets, the other for incoming packets. -* Only one pfinet can connect to the translator at a time. - - ---- - -## TODO -### Coding - - - make subhurds running without root privileges - - merge BPF rules from the filter translator and the multiplexer - ---- - -## Completed tasks - -### Coding - -The patch of glibc (pfinet server overriding) is [here](http://www.assembla.com/spaces/VNetHurd/documents/aJidqKp6ur3z-Nab7jnrAJ/download/A%20patch%20of%20glibc). - -The patch of pfinet (open the virtual network interface) is [here](http://www.assembla.com/spaces/VNetHurd/documents/aWqYwYATKr3BBOab7jnrAJ/download/patch%20of%20pfinet%201%20(to%20use%20the%20virtual%20interface)). - -The patch of pfinet (fix pfinet to use the proper filter rule) is [here](http://www.assembla.com/spaces/VNetHurd/documents/besb-qATKr3AIxab7jnrAJ/download/patch%20of%20pfinet%202%20(to%20add%20an%20IP%20filter)). - -The patch of pfinet (set the mach device in the promiscuous mode) is [here](http://www.assembla.com/spaces/VNetHurd/documents/bEovN6ATKr3B8uab7jnrAJ/download/patch%20of%20pfinet%203%20(to%20set%20the%20mach%20device%20into%20the%20promiscuous%20mode)). - -The patch of boot (open the virtual network interface) is [here](http://www.assembla.com/spaces/VNetHurd/documents/cWkeEixHar3AdKab7jnrAJ/download/A%20patch%20of%20boot). - -The patch of gnumach (set the network device into the promiscuous mode) is [here](http://www.assembla.com/spaces/VNetHurd/documents/b0eLzUxHmr3ymXab7jnrAJ/download/A%20patch%20of%20gnumach). - -the multiplexer: - -- Create multiple virtual network interfaces. -- Port BPF to the multiplexer. -- Finish the routing among the pfinet servers. - -the filter translator: - -- Forward the packet between the interface and the pfinet server. -- Filter the packet. - -the proxy of the proc server: - -- Forward all requests from the process to its proc server. -- The proxy doesn't do any real work except returning the host private port and the master device port of the proxy (shown as an example). - -the devnode translator: - -- Create a device file to help open the network device. - - -### The Code Read - -- boot - -### Documentation Read - - -- [A Programmer's Guide to the Mach System Calls](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machsys.doc) -- [Meet Mach](http://www.stepwise.com/Articles/Technical/MeetMach.html) by James Scott -- [A Programmer's Guide to the Mach User Environment](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.doc), the MIG part -- Part of The GNU Mach Reference Manual and The GNU Hurd Reference Manual -- The Hurd, a presentation by Marcus Brinkmann -- Towards a New Strategy of OS Design, an architectural overview by Thomas Bushnell, BSG. -- GNU/Hurd User's Guide -- The Hurd Hacking Guide diff --git a/community/flavioc.mdwn b/community/flavioc.mdwn deleted file mode 100644 index 9c9af71d..00000000 --- a/community/flavioc.mdwn +++ /dev/null @@ -1,126 +0,0 @@ -[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -Name: Flávio Cruz - -Email: flaviocruz at gmail dot com - -Some [Hurd stuff](http://opensvn.csie.org/leic/hurd/) - -And code: [cl-hurd](http://freehg.org/u/flavioc/cl-hurd/) - -hg clone [http://freehg.org/u/flavioc/cl-hurd/](http://freehg.org/u/flavioc/cl-hurd/) - -## Summer session - -Creating an extensible translator library in lisp using the mig generated stubs. - -### What's done - -- The library for writing translators is mostly written. -- This library is intended to implement virtual filesystems. Examples are: translators were data is located in a local file (like zipfs, tarfs, rarfs, ...), single file translators (that do content filtering, output of a command, etc), network based filesystems (ftpfs, httpfs, ...), proxy filesystems (like hostmux, usermux, etc..) -- It's possible to specialize the basic translator library and implement new translator classes. This is done using CLOS. -- There is a tree-translator class that makes the managing of a node tree very easy, doing all the work for us, through a simple directory API and implementing the directory callbacks for us. -- There is a simple example (something like zipfs) translator that can expose the directories and file contents of a ZIP file. -- More translator examples include: - - /dev/null translator. - - /dev/zero translator. - - translator that creates a symlink node. - - tmpfs like translator. - - a translator that does proxying between clients and the underlying translator returning all data in upper-case. - - a translator that watches for changes in a file describing the file system structure. - - an IRC translator. - - a categorizer translator: creates a virtual directory containing files listed in a file, each file is categorized with a script. For example, a script can output the music author (in an mp3 file) and then all files will be categorized by author. -- Translator options (manipulated through fsysopts) have a simple and easy to use API. -- All the Mach port manipulation API is available. -- It's possible to send and receive messages. Simple example: -
-  (let* ((spec-mixed (make-message-spec :fields '(:string :integer :char :string :integer :real)))
-         (msg-mixed (make-message :spec spec-mixed))
-         (port (port-allocate :right-receive)))
-    (send-message msg-mixed :remote port :data (list "abc" 42 #\b "cba" 314 3.14))
-    (receive-message msg-mixed :source port) ; This returns T on success.
-    (get-message msg-mixed))) ; Returns '("abc" 42 #\b "cba" 314 3.14)
-
-- New message types (like :string, :integer) can be implemented, providing a powerful extension mechanism. -- Creation of symlinks and symlink path resolution. -- Creation of character/block devices, fifos and sockets. -- Patch that opens stdin + stdout to /dev/null. -- Project has been separated into 5 ASDF installable systems: - - hurd-common - - mach - - hurd - - hurd-translator - - tree-translator -- Test cases are now written. - - -### What needs to be done - -- Fix fsys-getroot (block happens in trivfs based translators, when they do RPC's to me when I call fsys_getroot to them) and fetch-root (for passive translators). -- Make the library multithreaded (blocked by the pthread conversion project and the unavailable thread support in CLISP) -- Use the socket stubs? -- More documentation - - -### Project dependencies - -- CLISP -- [CFFI](http://common-lisp.net/project/cffi/) (apt-get installable) -- [Flexi streams](http://www.weitz.de/flexi-streams/) (apt-get installable) -- [Trivial garbage](http://www.cliki.net/trivial-garbage) (not in debian repositories) -- [cl-zip](http://common-lisp.net/project/zip/) (only needed for the zip translator) -- [cl-irc](http://common-lisp.net/project/cl-irc/) (for the irc translator) - - -## To do - -### Documentation -- Manually Bootstrapping a Translator - -### Translation -- Translate the Hurd website to Portuguese? - -## Completed tasks - -### Patches -- http://alioth.debian.org/tracker/index.php?group_id=30628&atid=410472 - - libsvg patch accepted. -- Adapted glibc patch (http://www.schwinge.homeip.net/~thomas/tmp/glibc-patches/0009-2007-07-22-version-of-init-first.c_vs._GCC_4.1.patch.patch) - - http://opensvn.csie.org/leic/hurd/patches/glibc-init-first.patch -- Patch to remove some GNUMach IPC warnings and minor cleanup: - - http://opensvn.csie.org/leic/hurd/patches/gnumach-ipc-warnings.patch -- Website patches that correct some encountered typos: - - http://opensvn.csie.org/leic/hurd/patches/hurd-talk-typo.patch - -### Documentation read - -- GNU/Hurd User's Guide, an introduction to the important concepts and software of the GNU system, written for new users, AKA "GNUbies." -- Towards a New Strategy of OS Design, an architectural overview by Thomas Bushnell, BSG. -- The Hurd, a presentation by Marcus Brinkmann. -- The Hurd Hacking Guide. -- The GNU Mach Reference Manual -- The GNU Hurd Reference Manual -- The Unofficial GNU Mach IPC beginner's guide -- Mach IPC without MIG -- CFFI User's Manual - -### Before selection - -- Uptime program in C and Lisp using CFFI. -- Hello translator. - -## Misc - -### Lisp implementations that run on Hurd - -- Clisp -- ECL -- ? diff --git a/community/gsoc.mdwn b/community/gsoc.mdwn index 6f4f8d01..169d5203 100644 --- a/community/gsoc.mdwn +++ b/community/gsoc.mdwn @@ -28,7 +28,7 @@ did a great job! finishing the translator stack filtering necessary to implement some of the desired functionality (accessing files while skipping existing translators). -* [[Zheng_Da|da]] worked on **network virtualization** and some related topics. In +* [[Zheng_Da|zhengda]] worked on **network virtualization** and some related topics. In spite of many open design question in the beginning, he did a lot of good work -- finishing not only the ethernet multiplexer and filter translators, which form the core of his project, but also a glibc patch to allow @@ -45,7 +45,7 @@ did a great job! He is still working on fixing some remaining issues, and on allowing subhurds to be run by normal users. -* [[Flavio_Cruz|flavioc]] was working on **Lisp bindings for the Hurd interfaces**, +* [[Flavio_Cruz|flaviocruz]] was working on **Lisp bindings for the Hurd interfaces**, and did a great job: Not only did he implement bindings for all low-level interfaces as well as higher-level libraries for easy creation of translators and other hurdish programs, but also a whole bunch of sample @@ -64,7 +64,7 @@ did a great job! Unfortunately he was not able to continue work beyond the official deadline because of his PhD. -* [[Madhusudan.C.S|procfs]] was working on a **new procfs implementation**, to +* [[Madhusudan.C.S|madhusudancs]] was working on a **new procfs implementation**, to allow running existing programs based on Linux procfs out of the box. He managed to implement all the necessary information bits, so the most important procfs programs now work; and also fixed the procps program suite diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index c4b665b7..bfd03ba6 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -116,7 +116,7 @@ using the existing C libraries (libps, libtrivfs), but also try to work with the MiG-generated stubs directly. If you are ambitious, you could even try to write your own stubs... -*Status*: Flavio Cruz has completed [[Lisp_bindings|flavioc]] for GSoC 2008! +*Status*: Flavio Cruz has completed [[Lisp_bindings|flaviocruz]] for GSoC 2008! ## Virtualization Using Hurd Mechanisms @@ -195,7 +195,7 @@ Possible mentors: Olaf Buddenhagen (antrik) Exercise: Make some modification to the "boot" programm used to start subhurds. (More specific suggestions welcome... :-) ) -*Status*: Zheng da has has implemented [[network_virtualization|da]] (an +*Status*: Zheng da has has implemented [[network_virtualization|zhengda]] (an important prerequisite for unprivileged subhurds) for GSoC 2008, along with various other interesting bits, including a mechanism to override socket servers; a proc proxy that allows running processes/subenvironments with a @@ -332,7 +332,7 @@ Possible mentors: Olaf Buddenhagen (antrik) Exercise: Add or fix one piece in the existing procfs translator. -*Status*: Madhusudan.C.S has implemented a new, fully functional [[procfs]] for +*Status*: Madhusudan.C.S has implemented a new, fully functional [[procfs|madhusudancs]] for GSoC 2008. He is still working on some outstanding issues. @@ -429,7 +429,7 @@ standard server using method (1). *Status*: Overriding of socket servers through environment variables has been implemented by Zheng Da for GSoC 2008, as part of his -[[network_virtualization|da]] project. +[[network_virtualization|zhengda]] project. ## `dtrace` Support diff --git a/community/howto.mdwn b/community/howto.mdwn deleted file mode 100644 index 3f0d0d13..00000000 --- a/community/howto.mdwn +++ /dev/null @@ -1,95 +0,0 @@ -[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - - -This document briefly introduces how to set up the virtual network and connect the subhurd with the main hurd. - - -### 1. Set up the virtual network. - -####1.1 Patch and install GNU Hurd, GNU Mach and the GNU C library. - -Step 1: Get the Hurd and compile it. - - cvs -z3 -d:ext:username@cvs.savannah.gnu.org:/sources/hurd co -r zhengda-soc2008-virt-branch - - -Step 2: apply the [patch](http://www.assembla.com/spaces/VNetHurd/documents/b0eLzUxHmr3ymXab7jnrAJ/download/A%20patch%20of%20gnumach) on the GNU Mach. - -In order to connect the virtual network created in hurd with the external network, we need this patch. It enables the Hurd to set the Mach device into the promiscuous mode, so the real device can accept the packet that goes to the virtual device in hurd. -(This step is optional if we are only interested in creating a internal virtual network.) - -Step 3: apply the [patch](http://www.assembla.com/spaces/VNetHurd/documents/aJidqKp6ur3z-Nab7jnrAJ/download/A%20patch%20of%20glibc) on glibc. - -This patch enables the user to override the default socket server by using the environment variables SOCK_SERV_DIR or SOCK_SERV_%d (%d is the domain of the socket server). - - -#### 1.2 Set up the Hurd components to build the virtual network. - -In this section, I show how to create two virtual interfaces and run three pfinet servers. I assume that the source code of Hurd is in /root/hurd. - -Step 4: create the network device file in /dev with devnode. -The network device file is used to help other translators open the device. - - # settrans -acfg /dev/eth0 /root/hurd/devnode/devnode -d eth0 - -Step 5: create the virtual network device with eth-multiplexer. - -eth-multiplexer is responsible to create the virtual network device and dispatch the packet to the right clients that connect to the virtual device. It also connects the virtual network and the external network. - - # settrans -acfg /root/multiplexer /root/hurd/eth-multiplexer/eth-multiplexer -v 2 -i /dev/eth0 - -Step 6: create the network device files for the virtual network device with devnode. - - # settrans -acfg /dev/veth0 /root/hurd/devnode/devnode -d veth0 -M /root/multiplexer - # settrans -acfg /dev/veth1 /root/hurd/devnode/devnode -d veth1 -M /root/multiplexer - -Step 7: setup the filter translator eth-filter on the network device. This step is optional. -eth-filter is used to set up the traffic policy on the network device. - - # settrans -acfg /dev/fveth0 /root/hurd/eth-filter/eth-filter -i /dev/veth0 -S 192.168.8.0/24 -R 192.168.8.0/24 - # settrans -acfg /dev/fveth1 /root/hurd/eth-filter/eth-filter -i /dev/veth1 -S 192.168.8.0/24 -R 192.168.8.0/24 - -Step 8: setup the pfinet server on the virtual network device. - - # settrans -afgc /root/socket0/2 /root/hurd/pfinet/pfinet -i /dev/fveth0 -a 192.168.8.10 -g 192.168.8.1 -m 255.255.255.0 - # settrans -afgc /root/socket1/2 /root/hurd/pfinet/pfinet -i /dev/fveth1 -a 192.168.8.11 -g 192.168.8.1 -m 255.255.255.0 - # settrans -afgc /root/socket2/2 /root/hurd/pfinet/pfinet -i /dev/fveth1 -a 192.168.8.12 -g 192.168.8.1 -m 255.255.255.0 - - -#### 1.3 Run the command with the customized pfinet server. - -Step 9: Set environment variables to use the customized pfinet server. - -The environment variable of SOCK_SERV_DIR is used to override all socket servers and SOCK_SERV_%d to override a specific socket server. %d after SOCK_SERV_ is the domain of the protocol that the socket server supports. The environment variable SOCK_SERV_%d has the higher priority than SOCK_SERV_DIR. - - # export SOCK_SERV_2=/root/socket1/2 - -If the modified glibc isn't installed as the system default C library, set LD_LIBRARY_PATH environment. - - # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/the/path/of/glibc - -We can run any command now, for example, ping. - -A SHELL script is provided to run all translators I mentioned automatically: http://www.assembla.com/spaces/VNetHurd/documents/c2W71ABser3AIxab7jnrAJ/download/runmultiplexer. To use this script, the user must specify the source of the hurd tree (the default value is /root/hurd) and the path of the servers (the default value is /root) where they should be created. This script is only used to test all translators I mentioned above and shows all steps to set up the virtual network. - - -### 2. Connect the subhurd with the main hurd. - -In the main hurd, we still need to do Step 1-9. -We run subhurd, - - # /root/hurd/boot/boot -m eth0=/dev/fveth0 -m eth1=/dev/fveth1 servers.boot /dev/hd1s1 - -In the subhurd, we do Step 1, 4, 8. -Step 4: # settrans -acfg /dev/veth0 /root/hurd/devnode/devnode -d veth0 -Step 8: # settrans -afgc /servers/socket/2 /root/hurd/pfinet/pfinet -i /dev/veth0 -a 192.168.8.20 -g 192.168.8.1 -m 255.255.255.0 - -Now we can communicate from the subhurd with any pfinet server of the main Hurd that runs in the virtual network. diff --git a/community/procfs.mdwn b/community/procfs.mdwn deleted file mode 100644 index 1139c718..00000000 --- a/community/procfs.mdwn +++ /dev/null @@ -1,395 +0,0 @@ -[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -[[!meta title="GNU/Linux compatible procfs"]] - -[[!toc ]] ----- - - Project Name ----- - -GNU/Linux compatible procfs pseudo-filesystem - ------- - - Project Description ----- -I wish to provide a sophisticated procfs pseudo-filesystem to “the Hurd”. An implementation of /proc pseudo-filesystem already exists in hurdextras repository. After skimming through the code it is clear that it needs a lot -of rework and tuning. Experiences from GNU/Linux have proven procfs to be a very useful facility in implementing -many of the process management tools. So the goal of this project is to rework on the existing procfs on “the Hurd” -so that its not only reliable and robust but also more importantly it is fully compatible with the GNU/Linux procfs. -The project thus aims at making the GNU/Linux process management tools like top, sysctl, kill, -skill, nice, snice, pgrep, free, tload, uptime, fuser, killall, pidof, pstree, etc., to run out of the box. - ------- - - Mentor ----- - -Olaf Buddenhagen - ------- - - Project Schedule ----- - -#####     1. Initial preparation and migration (Community Bonding Period: has already started – May 25th) - - This phase involves improving my translator programming skills by gaining - hands-on experience in it and becoming well versed in it. I will also go - through the Hurd code to understand its architecture in depth and will read - documentations related to obtaining process related information in Hurd. - This phase also involves the migration of existing procfs to use libnetfs. - -#####     2. Analysis and Design (May 26th – June 11th ) - - This phase involves the analysis of previous migration. Also involves - interacting with the mentor, the Hurd community and other people involved - in development of ps. tools to draw the exact design of the proposed procfs - including the algorithms required for coding. - -#####     3.  Coding Stage I (June 12th – June 22nd ) - - Finishing up the migration to libnetfs based on the finalized design and - making necessary changes to the existing procfs. Coding up to - /proc//exe in the features list. - -#####     4. Coding Stage II (June 23rd – July 13th) - - Involves coding of the features from /proc//environ, up to - /proc//maps. These contain most of the information required for ps. - tools and hence form the heart of the project. Will be completed by - mid-term evaluation deadline. - -#####     5.  Coding Stage III (July 14th – July 26th ) - - Coding the rest of the features in the list including any necessary - features that may be added in the analysis phase. - -#####     6.  Final Testing and evaluation (July 27th – August 8th ) - - Closely interacting with the community and requesting them to help me - in overall testing and reviewing and making changes as per their - suggestions. Also involves testing with the ps. tools and consolidating - the documentation. - -#####     7.  Packaging and Wrap-up (August 9th - August 18th ) - - Final phase of testing and fixing remaining bugs. Working with the - community to merge the project with the CVS HEAD of Hurd. Documentation - reviews, making necessary changes as per the suggestions and wrapping - up the documentation. - ------- - - Deliverables ----- - -1. /proc filesystem that uses libnetfs. Using this library makes it easier for implementing a large set of functionalities and hence makes the implementation robust. -2. The core GNU/Linux compatible /proc filesystem with functionalities to support and provide information for ps. tools like procps, psmisc etc. - -Non-code deliverables include an exhaustive Documentation. This documents the code of the Hurd's procfs which explains in detail the implementation of each of the functionalities of procfs implemented -during the course of this project. - ------- - - Code Repository ----- - -[http://github.com/madhusudancs/procfs/tree/master](http://github.com/madhusudancs/procfs/tree/master) - -Clone URL: [git://github.com/madhusudancs/procfs.git](git://github.com/madhusudancs/procfs.git) - ------- - - Progress ----- - -1. Packages Ported: [http://www.madhusudancs.info/parted-hurdi386 parted-1.7.1] -2. Packages Porting in progress: autogen_1:5.9.4-1. Error installing texlive-bin. Error tracked to some post installation scripts of texlive-bin. Problem seems to be in fmutil. Trying to debug. -3. Have to start coding libnetfs skeleton for procfs translator. - -**Target for next week** - - Task To be completed by Status Now - - 1. Finish Defining the necessary netfs call backs                                 25-05-2008            Completed - 2. Create Directories for each process with pid directory name         27-05-2008            Completed - 3. Create stat file for each process within this directory and
- put atleast 1 information into it                                                          31-05-2008            In Progress - -**Documentations Read/Reading** - -1. [Hurd Hacking Guide](http://www.gnu.org/software/hurd/hacking-guide/hhg.html) (Have Concentrated mainly on Translator part) -2. [Linux Kernel Implementation of procfs](http://users.sosdg.org/~qiyong/lxr/source/Documentation/filesystems/proc.txt) - -**Code Being Read** - -1. libps -2. libnetfs -3. [procfs implementation in Linux kernel](http://users.sosdg.org/~qiyong/lxr/source/fs/proc/) -4. ftpfs (In Hurd main) -5. cvsfs (In Hurd extras) -6. xmlfs (In Hurd extras) -7. httpfs (In Hurd extras) -8. gopherfs (In Hurd extras) -9. libfuse (In Hurd extras) -10. procfs (libtrivfs based, In Hurd extras) - ------- - - Post Mid-Term Road Map ----- - - -####Already Implemented - -#####File - /proc/<PID>/stat - -* pid - -* comm - -* state - -* ppid - -* pgrp - -* session - -* tty_nr - -* tpgid - -* minflt -> The number of minor faults the process has made which have not required loading a memory page -> from disk. - -* majflt -> The number of major faults the process has made which have required loading a memory page from -> disk. - -* utime -> The number of jiffies that this process has been scheduled in user mode. - -* stime -> The number of jiffies that this process has been scheduled in kernel mode. - -* priority -> The standard nice value, plus fifteen. The value is never negative in the kernel. - -* num_threads -> Number of threads in this process. - -* starttime -> The time in jiffies the process started after system boot. - -* vsize -> Virtual memory size in bytes. - -* rss -> Resident Set Size: number of pages the process has in real memory, minus 3 for administrative -> purposes. This is just the pages which count towards text, data, or stack space. This does not -> include pages which have not been demand-loaded in, or which are swapped out. - -* itrealvalue -> The time in jiffies before the next SIGALRM is sent to the process due to an interval timer. - -* nswap -> Number of pages swapped (not maintained). - -* cnswap -> Cumulative nswap for child processes (not maintained). - -* flags -> PF_* fields defined in (Not Linux compatible, but nearly says the something Linux says) - -* nice -> The nice value ranges from 19 to -19. - -* cutime -> The number of jiffies that this process’s waited-for children have been scheduled in user -> mode. - -* cstime -> The number of jiffies that this process’s waited-for children have been scheduled in kernel mode. - -#####File - /proc/<PID>/statm - -* size -> total program size - -* resident -> resident set size - -* lib -> library - -* dt -> dirty pages - -####I already know the where the information is exactly available. - -#####Other Per-PID Files - -#####* /proc/<PID>/exe - -#####* /proc/<PID>/environ - -#####Non Per-PID Files - -#####* /proc/version - - -####I know where the information is available roughly, but need to look in detail to extract the exact information. - -* cminflt -> The number of minor faults that the process’s waited-for children have made. - -* cmajflt -> The number of major faults that the process’s waited-for children have made. - -* signal -> The bitmap of pending signals. - -* blocked -> The bitmap of blocked signals. - -* sigignore -> The bitmap of ignored signals. - -* sigcatch -> The bitmap of caught signals. - -* policy -> Scheduling policy. - -#####File - /proc/<PID>/statm - -* text -> text (code) - -#####Other Per-PID Files - -#####* /proc/<PID>/cwd - -####The information may be available, but needs to be searched to know where it will be. - -#####File - /proc/<PID>/stat - -* rlim -> Current limit in bytes on the rss of the process (usually 4294967295 on i386). - -* startcode -> The address above which program text can run. - -* endcode -> The address below which program text can run. - -* startstack -> The address of the start of the stack. - -* kstkesp -> The current value of esp (stack pointer), as found in the kernel stack page for the process. - -* kstkeip -> The current EIP (instruction pointer). - -* exit_signal -> Signal to be sent to parent when we die. - -#####File - /proc/<PID>/statm - -* share -> shared pages - -* data -> data/stack - -#####Other Per-PID File - -#####* /proc/<PID>/root - -#####Non Per-PID Files - -#####* /proc/stat - -#####* /proc/meminfo - -####I fear information may not be available. - -#####File - /proc/<PID>/stat - -* wchan -> This is the "channel" in which the process is waiting. It is the address of a system call, and -> can be looked up in a namelist if you need a textual name. (If you have an up-to-date -> /etc/psdatabase, - -* processor -> CPU number last executed on. - -* rt_priority -> Real-time scheduling priority - -* delayacct_blkio_ticks -> Aggregated block I/O delays, measured in clock ticks (centiseconds). - - -###Newly added to Roadmap(but these were the original goals of the project) - -#### procps tools need to be ported so that they run on top of the procfs - -> ##### pgrep                 -  Done -> ##### pkill                 -  Done -> ##### killall               -  Done -> ##### pstree                -  Done -> ##### top                   -  Mostly Done (except per-PID shared memory field, and non per-PID caches and buffers field) -> ##### free                  -  Mostly Done (Ditto from above) -> ##### htop                  -  Mostly Done (Ditto again) -> ##### watch                 -  Done -> ##### tload                 -  I think it is done. (Need someone to test it) -> ##### libgtop               -  In progress -> ##### gnome-system-moitor   -  In progress - - - ------- - - Code Updates ----- - -1. May, 14, 2008 -2. May, 18, 2008 -3. May, 28, 2008 -4. June, 1, 2008 -5. June, 2, 2008 -6. June, 4, 2008 -7. June, 5, 2008 (3 commits, 00:30 HRS, 02:30 HRS, 11:15HRS, all in IST) -8. June, 9, 2008 -9. June, 19, 2008 (Targets 1 and 2 successfully accomplished. Duration between the commits became inevitably longer because of the large amount of time spent on debugging the code.) - ------- - - Contact Details ----- - -Name : Madhusudan.C.S - -Email : [madhusudancs@gmail.com](mailto:madhusudancs@gmail.com) - -Blog : [http://www.madhusudancs.info](http://www.madhusudancs.info/) - -Detailed proposal: [http://www.madhusudancs.info/gnu-hurd-procfs-proposal](http://www.madhusudancs.info/gnu-hurd-procfs-proposal) - -Google Summer of Code Site Link: [Abstract](http://code.google.com/soc/2008/hurd/appinfo.html?csaid=D2E9266819D2EEF9) - - diff --git a/community/scolobb.mdwn b/community/scolobb.mdwn deleted file mode 100644 index 2de8eb4f..00000000 --- a/community/scolobb.mdwn +++ /dev/null @@ -1,134 +0,0 @@ -[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] - -[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU_Free_Documentation_License|/fdl]]."]]"""]] - -# scolobb - -Sergiu Ivanov, interested non-student - -Mail: - -Project: Namespace-based translator selection - ---- - -## Current Task - -Write the filesystem proxy for namespace-based translator selection (*nsmux*). - -The code is at . - ---- - -###Did this week - -* Modified the node cache so that it maintains shadow nodes alive. - -###Plans for the next week - -* Implement the shutting down of translator stacks when *nsmux* is asked to go away (in case **antrik** considers that necessary). - -* Make *nsmux* provide the access to the translator stack of the real node, in case a translator (mainly, a filter) should ask for its underlying node to be opened in O_NOTRANS mode. - ---- - -###Current Status - -####DONE: - -* The skeleton which mirrors the filesystem. - -* Provide proxy nodes (modify the standard version of netfs_S_dir_lookup). - -####TODO: - -* Create the generic filtering translator. - -* Create the translator '0' (providing the untranslated version of the - node). - -* Create the "recursive wrappers" for one-node translators. - -* Create special translators for the main proxy so that its functionality - should be complete. - -* Implement sharing of dynamic translator stacks where possible. - -* Make dynamic translators go away as soon as they are not required. - -* Refine the skeleton in several places so that it should become faster - and more reliable. - -* Kill bugs. - -* Integrate nsmux upstream. - -* Solve the libtrivfs stacking issue. - -* Patch libnetfs (it does not support file_get_translator_cntl, for - instance). - ---- - -###Progress - -####8: Fri Sep 19: - -> Modified the ncache so that it now maintains shadow nodes (and directory nodes too, it is a side effect at the moment) alive. - -####7: Sat Aug 30 - Fri Sep 5: - -> Added the code for shutting down dynamic translator stacks. - -####6: Mon Aug 4 - Fri Aug 29: - -> Implemented the proxy nodes. - -####5: Thu Jul 24 - Thu Jul 24: - -> Created a *libnetfs*-based one-node translator, working exactly like the *libtrivfs*-based translator I had written before; the former, however, can be included in a translator stack. - -####4: Tue Jul 22 - Thu Jul 24: - -> Attempted to make a *libtrivfs*-based translator to be able to be stacked upon itself (to be able to receive a translator on top of itself, more exactly); attempted to borrow some code from *libnetfs* but this didn't bring any results. - -####3: Sun Jul 20 - Tue Jul 22: - -> Implemented the possibility to propagate a translator on all files belonging to a directory 'dir' in the request of the type 'dir,,x/'. - -####2: Thu Jul 17 - Fri Jul 18: - -> Extended the lookup code in *nsmux* to allow for looking up nodes like 'file,,x' and added the possibility to escape the double-comma in the following way: ',,,'. - -####1: Mon Jul 12 - Tue Jul 13: - -> Implemented a simple *libtrivfs*-based translator to test the lookup code for *nsmux*. - -####0: Sat Jul 12 - Sat Jul 12: - -> Made small changes to the code of *filterfs* to fit the needs of *nsmux*. - ---- - -## Completed Tasks - -####2: Sat May 3 - Fri Jul 17: - -> Write a translator that should filter the contents of the directory it is set on according to some property. The property can be an arbitrary command. - -> The code is at . - -####1: Mon Apr 28 - Wed Apr 30: - -> Wrote a Python extension module in C for retreiving the uptime. The module is based on the code of *w*. - -####0: Sun Apr 27: - -> Followed the code of *dmesgd* () kindly offered by **bddebian** and rewrote it from scratch as a tutorial. - diff --git a/user/flaviocruz.mdwn b/user/flaviocruz.mdwn new file mode 100644 index 00000000..9c9af71d --- /dev/null +++ b/user/flaviocruz.mdwn @@ -0,0 +1,126 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +Name: Flávio Cruz + +Email: flaviocruz at gmail dot com + +Some [Hurd stuff](http://opensvn.csie.org/leic/hurd/) + +And code: [cl-hurd](http://freehg.org/u/flavioc/cl-hurd/) + +hg clone [http://freehg.org/u/flavioc/cl-hurd/](http://freehg.org/u/flavioc/cl-hurd/) + +## Summer session + +Creating an extensible translator library in lisp using the mig generated stubs. + +### What's done + +- The library for writing translators is mostly written. +- This library is intended to implement virtual filesystems. Examples are: translators were data is located in a local file (like zipfs, tarfs, rarfs, ...), single file translators (that do content filtering, output of a command, etc), network based filesystems (ftpfs, httpfs, ...), proxy filesystems (like hostmux, usermux, etc..) +- It's possible to specialize the basic translator library and implement new translator classes. This is done using CLOS. +- There is a tree-translator class that makes the managing of a node tree very easy, doing all the work for us, through a simple directory API and implementing the directory callbacks for us. +- There is a simple example (something like zipfs) translator that can expose the directories and file contents of a ZIP file. +- More translator examples include: + - /dev/null translator. + - /dev/zero translator. + - translator that creates a symlink node. + - tmpfs like translator. + - a translator that does proxying between clients and the underlying translator returning all data in upper-case. + - a translator that watches for changes in a file describing the file system structure. + - an IRC translator. + - a categorizer translator: creates a virtual directory containing files listed in a file, each file is categorized with a script. For example, a script can output the music author (in an mp3 file) and then all files will be categorized by author. +- Translator options (manipulated through fsysopts) have a simple and easy to use API. +- All the Mach port manipulation API is available. +- It's possible to send and receive messages. Simple example: +
+  (let* ((spec-mixed (make-message-spec :fields '(:string :integer :char :string :integer :real)))
+         (msg-mixed (make-message :spec spec-mixed))
+         (port (port-allocate :right-receive)))
+    (send-message msg-mixed :remote port :data (list "abc" 42 #\b "cba" 314 3.14))
+    (receive-message msg-mixed :source port) ; This returns T on success.
+    (get-message msg-mixed))) ; Returns '("abc" 42 #\b "cba" 314 3.14)
+
+- New message types (like :string, :integer) can be implemented, providing a powerful extension mechanism. +- Creation of symlinks and symlink path resolution. +- Creation of character/block devices, fifos and sockets. +- Patch that opens stdin + stdout to /dev/null. +- Project has been separated into 5 ASDF installable systems: + - hurd-common + - mach + - hurd + - hurd-translator + - tree-translator +- Test cases are now written. + + +### What needs to be done + +- Fix fsys-getroot (block happens in trivfs based translators, when they do RPC's to me when I call fsys_getroot to them) and fetch-root (for passive translators). +- Make the library multithreaded (blocked by the pthread conversion project and the unavailable thread support in CLISP) +- Use the socket stubs? +- More documentation + + +### Project dependencies + +- CLISP +- [CFFI](http://common-lisp.net/project/cffi/) (apt-get installable) +- [Flexi streams](http://www.weitz.de/flexi-streams/) (apt-get installable) +- [Trivial garbage](http://www.cliki.net/trivial-garbage) (not in debian repositories) +- [cl-zip](http://common-lisp.net/project/zip/) (only needed for the zip translator) +- [cl-irc](http://common-lisp.net/project/cl-irc/) (for the irc translator) + + +## To do + +### Documentation +- Manually Bootstrapping a Translator + +### Translation +- Translate the Hurd website to Portuguese? + +## Completed tasks + +### Patches +- http://alioth.debian.org/tracker/index.php?group_id=30628&atid=410472 + - libsvg patch accepted. +- Adapted glibc patch (http://www.schwinge.homeip.net/~thomas/tmp/glibc-patches/0009-2007-07-22-version-of-init-first.c_vs._GCC_4.1.patch.patch) + - http://opensvn.csie.org/leic/hurd/patches/glibc-init-first.patch +- Patch to remove some GNUMach IPC warnings and minor cleanup: + - http://opensvn.csie.org/leic/hurd/patches/gnumach-ipc-warnings.patch +- Website patches that correct some encountered typos: + - http://opensvn.csie.org/leic/hurd/patches/hurd-talk-typo.patch + +### Documentation read + +- GNU/Hurd User's Guide, an introduction to the important concepts and software of the GNU system, written for new users, AKA "GNUbies." +- Towards a New Strategy of OS Design, an architectural overview by Thomas Bushnell, BSG. +- The Hurd, a presentation by Marcus Brinkmann. +- The Hurd Hacking Guide. +- The GNU Mach Reference Manual +- The GNU Hurd Reference Manual +- The Unofficial GNU Mach IPC beginner's guide +- Mach IPC without MIG +- CFFI User's Manual + +### Before selection + +- Uptime program in C and Lisp using CFFI. +- Hello translator. + +## Misc + +### Lisp implementations that run on Hurd + +- Clisp +- ECL +- ? diff --git a/user/madhusudancs.mdwn b/user/madhusudancs.mdwn new file mode 100644 index 00000000..1139c718 --- /dev/null +++ b/user/madhusudancs.mdwn @@ -0,0 +1,395 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +[[!meta title="GNU/Linux compatible procfs"]] + +[[!toc ]] +---- + + Project Name +---- + +GNU/Linux compatible procfs pseudo-filesystem + +------ + + Project Description +---- +I wish to provide a sophisticated procfs pseudo-filesystem to “the Hurd”. An implementation of /proc pseudo-filesystem already exists in hurdextras repository. After skimming through the code it is clear that it needs a lot +of rework and tuning. Experiences from GNU/Linux have proven procfs to be a very useful facility in implementing +many of the process management tools. So the goal of this project is to rework on the existing procfs on “the Hurd” +so that its not only reliable and robust but also more importantly it is fully compatible with the GNU/Linux procfs. +The project thus aims at making the GNU/Linux process management tools like top, sysctl, kill, +skill, nice, snice, pgrep, free, tload, uptime, fuser, killall, pidof, pstree, etc., to run out of the box. + +------ + + Mentor +---- + +Olaf Buddenhagen + +------ + + Project Schedule +---- + +#####     1. Initial preparation and migration (Community Bonding Period: has already started – May 25th) + + This phase involves improving my translator programming skills by gaining + hands-on experience in it and becoming well versed in it. I will also go + through the Hurd code to understand its architecture in depth and will read + documentations related to obtaining process related information in Hurd. + This phase also involves the migration of existing procfs to use libnetfs. + +#####     2. Analysis and Design (May 26th – June 11th ) + + This phase involves the analysis of previous migration. Also involves + interacting with the mentor, the Hurd community and other people involved + in development of ps. tools to draw the exact design of the proposed procfs + including the algorithms required for coding. + +#####     3.  Coding Stage I (June 12th – June 22nd ) + + Finishing up the migration to libnetfs based on the finalized design and + making necessary changes to the existing procfs. Coding up to + /proc//exe in the features list. + +#####     4. Coding Stage II (June 23rd – July 13th) + + Involves coding of the features from /proc//environ, up to + /proc//maps. These contain most of the information required for ps. + tools and hence form the heart of the project. Will be completed by + mid-term evaluation deadline. + +#####     5.  Coding Stage III (July 14th – July 26th ) + + Coding the rest of the features in the list including any necessary + features that may be added in the analysis phase. + +#####     6.  Final Testing and evaluation (July 27th – August 8th ) + + Closely interacting with the community and requesting them to help me + in overall testing and reviewing and making changes as per their + suggestions. Also involves testing with the ps. tools and consolidating + the documentation. + +#####     7.  Packaging and Wrap-up (August 9th - August 18th ) + + Final phase of testing and fixing remaining bugs. Working with the + community to merge the project with the CVS HEAD of Hurd. Documentation + reviews, making necessary changes as per the suggestions and wrapping + up the documentation. + +------ + + Deliverables +---- + +1. /proc filesystem that uses libnetfs. Using this library makes it easier for implementing a large set of functionalities and hence makes the implementation robust. +2. The core GNU/Linux compatible /proc filesystem with functionalities to support and provide information for ps. tools like procps, psmisc etc. + +Non-code deliverables include an exhaustive Documentation. This documents the code of the Hurd's procfs which explains in detail the implementation of each of the functionalities of procfs implemented +during the course of this project. + +------ + + Code Repository +---- + +[http://github.com/madhusudancs/procfs/tree/master](http://github.com/madhusudancs/procfs/tree/master) + +Clone URL: [git://github.com/madhusudancs/procfs.git](git://github.com/madhusudancs/procfs.git) + +------ + + Progress +---- + +1. Packages Ported: [http://www.madhusudancs.info/parted-hurdi386 parted-1.7.1] +2. Packages Porting in progress: autogen_1:5.9.4-1. Error installing texlive-bin. Error tracked to some post installation scripts of texlive-bin. Problem seems to be in fmutil. Trying to debug. +3. Have to start coding libnetfs skeleton for procfs translator. + +**Target for next week** + + Task To be completed by Status Now + + 1. Finish Defining the necessary netfs call backs                                 25-05-2008            Completed + 2. Create Directories for each process with pid directory name         27-05-2008            Completed + 3. Create stat file for each process within this directory and
+ put atleast 1 information into it                                                          31-05-2008            In Progress + +**Documentations Read/Reading** + +1. [Hurd Hacking Guide](http://www.gnu.org/software/hurd/hacking-guide/hhg.html) (Have Concentrated mainly on Translator part) +2. [Linux Kernel Implementation of procfs](http://users.sosdg.org/~qiyong/lxr/source/Documentation/filesystems/proc.txt) + +**Code Being Read** + +1. libps +2. libnetfs +3. [procfs implementation in Linux kernel](http://users.sosdg.org/~qiyong/lxr/source/fs/proc/) +4. ftpfs (In Hurd main) +5. cvsfs (In Hurd extras) +6. xmlfs (In Hurd extras) +7. httpfs (In Hurd extras) +8. gopherfs (In Hurd extras) +9. libfuse (In Hurd extras) +10. procfs (libtrivfs based, In Hurd extras) + +------ + + Post Mid-Term Road Map +---- + + +####Already Implemented + +#####File - /proc/<PID>/stat + +* pid + +* comm + +* state + +* ppid + +* pgrp + +* session + +* tty_nr + +* tpgid + +* minflt +> The number of minor faults the process has made which have not required loading a memory page +> from disk. + +* majflt +> The number of major faults the process has made which have required loading a memory page from +> disk. + +* utime +> The number of jiffies that this process has been scheduled in user mode. + +* stime +> The number of jiffies that this process has been scheduled in kernel mode. + +* priority +> The standard nice value, plus fifteen. The value is never negative in the kernel. + +* num_threads +> Number of threads in this process. + +* starttime +> The time in jiffies the process started after system boot. + +* vsize +> Virtual memory size in bytes. + +* rss +> Resident Set Size: number of pages the process has in real memory, minus 3 for administrative +> purposes. This is just the pages which count towards text, data, or stack space. This does not +> include pages which have not been demand-loaded in, or which are swapped out. + +* itrealvalue +> The time in jiffies before the next SIGALRM is sent to the process due to an interval timer. + +* nswap +> Number of pages swapped (not maintained). + +* cnswap +> Cumulative nswap for child processes (not maintained). + +* flags +> PF_* fields defined in (Not Linux compatible, but nearly says the something Linux says) + +* nice +> The nice value ranges from 19 to -19. + +* cutime +> The number of jiffies that this process’s waited-for children have been scheduled in user +> mode. + +* cstime +> The number of jiffies that this process’s waited-for children have been scheduled in kernel mode. + +#####File - /proc/<PID>/statm + +* size +> total program size + +* resident +> resident set size + +* lib +> library + +* dt +> dirty pages + +####I already know the where the information is exactly available. + +#####Other Per-PID Files + +#####* /proc/<PID>/exe + +#####* /proc/<PID>/environ + +#####Non Per-PID Files + +#####* /proc/version + + +####I know where the information is available roughly, but need to look in detail to extract the exact information. + +* cminflt +> The number of minor faults that the process’s waited-for children have made. + +* cmajflt +> The number of major faults that the process’s waited-for children have made. + +* signal +> The bitmap of pending signals. + +* blocked +> The bitmap of blocked signals. + +* sigignore +> The bitmap of ignored signals. + +* sigcatch +> The bitmap of caught signals. + +* policy +> Scheduling policy. + +#####File - /proc/<PID>/statm + +* text +> text (code) + +#####Other Per-PID Files + +#####* /proc/<PID>/cwd + +####The information may be available, but needs to be searched to know where it will be. + +#####File - /proc/<PID>/stat + +* rlim +> Current limit in bytes on the rss of the process (usually 4294967295 on i386). + +* startcode +> The address above which program text can run. + +* endcode +> The address below which program text can run. + +* startstack +> The address of the start of the stack. + +* kstkesp +> The current value of esp (stack pointer), as found in the kernel stack page for the process. + +* kstkeip +> The current EIP (instruction pointer). + +* exit_signal +> Signal to be sent to parent when we die. + +#####File - /proc/<PID>/statm + +* share +> shared pages + +* data +> data/stack + +#####Other Per-PID File + +#####* /proc/<PID>/root + +#####Non Per-PID Files + +#####* /proc/stat + +#####* /proc/meminfo + +####I fear information may not be available. + +#####File - /proc/<PID>/stat + +* wchan +> This is the "channel" in which the process is waiting. It is the address of a system call, and +> can be looked up in a namelist if you need a textual name. (If you have an up-to-date +> /etc/psdatabase, + +* processor +> CPU number last executed on. + +* rt_priority +> Real-time scheduling priority + +* delayacct_blkio_ticks +> Aggregated block I/O delays, measured in clock ticks (centiseconds). + + +###Newly added to Roadmap(but these were the original goals of the project) + +#### procps tools need to be ported so that they run on top of the procfs + +> ##### pgrep                 -  Done +> ##### pkill                 -  Done +> ##### killall               -  Done +> ##### pstree                -  Done +> ##### top                   -  Mostly Done (except per-PID shared memory field, and non per-PID caches and buffers field) +> ##### free                  -  Mostly Done (Ditto from above) +> ##### htop                  -  Mostly Done (Ditto again) +> ##### watch                 -  Done +> ##### tload                 -  I think it is done. (Need someone to test it) +> ##### libgtop               -  In progress +> ##### gnome-system-moitor   -  In progress + + + +------ + + Code Updates +---- + +1. May, 14, 2008 +2. May, 18, 2008 +3. May, 28, 2008 +4. June, 1, 2008 +5. June, 2, 2008 +6. June, 4, 2008 +7. June, 5, 2008 (3 commits, 00:30 HRS, 02:30 HRS, 11:15HRS, all in IST) +8. June, 9, 2008 +9. June, 19, 2008 (Targets 1 and 2 successfully accomplished. Duration between the commits became inevitably longer because of the large amount of time spent on debugging the code.) + +------ + + Contact Details +---- + +Name : Madhusudan.C.S + +Email : [madhusudancs@gmail.com](mailto:madhusudancs@gmail.com) + +Blog : [http://www.madhusudancs.info](http://www.madhusudancs.info/) + +Detailed proposal: [http://www.madhusudancs.info/gnu-hurd-procfs-proposal](http://www.madhusudancs.info/gnu-hurd-procfs-proposal) + +Google Summer of Code Site Link: [Abstract](http://code.google.com/soc/2008/hurd/appinfo.html?csaid=D2E9266819D2EEF9) + + diff --git a/user/scolobb.mdwn b/user/scolobb.mdwn new file mode 100644 index 00000000..2de8eb4f --- /dev/null +++ b/user/scolobb.mdwn @@ -0,0 +1,134 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +# scolobb + +Sergiu Ivanov, interested non-student + +Mail: + +Project: Namespace-based translator selection + +--- + +## Current Task + +Write the filesystem proxy for namespace-based translator selection (*nsmux*). + +The code is at . + +--- + +###Did this week + +* Modified the node cache so that it maintains shadow nodes alive. + +###Plans for the next week + +* Implement the shutting down of translator stacks when *nsmux* is asked to go away (in case **antrik** considers that necessary). + +* Make *nsmux* provide the access to the translator stack of the real node, in case a translator (mainly, a filter) should ask for its underlying node to be opened in O_NOTRANS mode. + +--- + +###Current Status + +####DONE: + +* The skeleton which mirrors the filesystem. + +* Provide proxy nodes (modify the standard version of netfs_S_dir_lookup). + +####TODO: + +* Create the generic filtering translator. + +* Create the translator '0' (providing the untranslated version of the + node). + +* Create the "recursive wrappers" for one-node translators. + +* Create special translators for the main proxy so that its functionality + should be complete. + +* Implement sharing of dynamic translator stacks where possible. + +* Make dynamic translators go away as soon as they are not required. + +* Refine the skeleton in several places so that it should become faster + and more reliable. + +* Kill bugs. + +* Integrate nsmux upstream. + +* Solve the libtrivfs stacking issue. + +* Patch libnetfs (it does not support file_get_translator_cntl, for + instance). + +--- + +###Progress + +####8: Fri Sep 19: + +> Modified the ncache so that it now maintains shadow nodes (and directory nodes too, it is a side effect at the moment) alive. + +####7: Sat Aug 30 - Fri Sep 5: + +> Added the code for shutting down dynamic translator stacks. + +####6: Mon Aug 4 - Fri Aug 29: + +> Implemented the proxy nodes. + +####5: Thu Jul 24 - Thu Jul 24: + +> Created a *libnetfs*-based one-node translator, working exactly like the *libtrivfs*-based translator I had written before; the former, however, can be included in a translator stack. + +####4: Tue Jul 22 - Thu Jul 24: + +> Attempted to make a *libtrivfs*-based translator to be able to be stacked upon itself (to be able to receive a translator on top of itself, more exactly); attempted to borrow some code from *libnetfs* but this didn't bring any results. + +####3: Sun Jul 20 - Tue Jul 22: + +> Implemented the possibility to propagate a translator on all files belonging to a directory 'dir' in the request of the type 'dir,,x/'. + +####2: Thu Jul 17 - Fri Jul 18: + +> Extended the lookup code in *nsmux* to allow for looking up nodes like 'file,,x' and added the possibility to escape the double-comma in the following way: ',,,'. + +####1: Mon Jul 12 - Tue Jul 13: + +> Implemented a simple *libtrivfs*-based translator to test the lookup code for *nsmux*. + +####0: Sat Jul 12 - Sat Jul 12: + +> Made small changes to the code of *filterfs* to fit the needs of *nsmux*. + +--- + +## Completed Tasks + +####2: Sat May 3 - Fri Jul 17: + +> Write a translator that should filter the contents of the directory it is set on according to some property. The property can be an arbitrary command. + +> The code is at . + +####1: Mon Apr 28 - Wed Apr 30: + +> Wrote a Python extension module in C for retreiving the uptime. The module is based on the code of *w*. + +####0: Sun Apr 27: + +> Followed the code of *dmesgd* () kindly offered by **bddebian** and rewrote it from scratch as a tutorial. + diff --git a/user/zhengda.mdwn b/user/zhengda.mdwn new file mode 100644 index 00000000..e15aade1 --- /dev/null +++ b/user/zhengda.mdwn @@ -0,0 +1,110 @@ +# Zheng Da + +Email: zhengda1936 at gmail dot com + +Project: Network virtualization for subhurds etc. + +The [code](http://www.assembla.com/spaces/VNetHurd/trac_subversion_tool). + +The [[howto]] shows the instructions of setting up the virtual network in hurd and subhurd. + +--- + +## The design and the implementation + +### The requirements: +* to implement a mechanism which help pfinet servers communicate with each other. For example, if pfinet 1 has IP A and pfinet 2 has IP B, the packet sent by pfinet 1 with destination address IP B should be received by pfinet 2. +* Sub-hurd should be able to use this mechanism to communicate with each other. +* Meanwhile this mechanism should allow non-privileged the user to start his own pfinet. + + +### The possible approach is to use the multiplexer and the filter. +The multiplexer's roles are: + +1. to create some virtual network interface, so pfinet can send packets to it. +2. to receive the packet from pfinet, and forward the packet to other pfinets in hurd +3. or forward the packet to the real network device in the kernel and send it to the network. + +A filter translator is needed to enforce the policies between the interface and the pfinet server. For example, the filter can control which packets can be delivered to the pfinet server, and which packets can be sent to the network interface. The filter can also guard the network traffic and drop illegal packets (forged by some malicious users) from pfinet or some other programs. + + +### To create a virtual network interface: +* Implement the RPC interface defined in device.defs. +* The multiplexer works as a translator and other programs can get the port to it by calling file_name_port(). +* Other programs can use this port as a master device port to open the virtual interface. + + +### The routing inside the multiplexer: +* when the multiplexer gets a packet, it forwards it to every interface. +* BPF is ported to the multiplexer. BPF delivers the packet to the right pfinet (according to the filter set by the pfinet) just as the BPF in Mach does. +* All packets are forwarded to the interface which the multiplexer sits on. + + +### The implementation of the filter translator: +* The filter works as a proxy, forwarding the packet between the interface and the pfinet server. +* BPF is also ported to the filter translator. There are two filers in the translator, one for outgoing packets, the other for incoming packets. +* Only one pfinet can connect to the translator at a time. + + +--- + +## TODO +### Coding + + - make subhurds running without root privileges + - merge BPF rules from the filter translator and the multiplexer + +--- + +## Completed tasks + +### Coding + +The patch of glibc (pfinet server overriding) is [here](http://www.assembla.com/spaces/VNetHurd/documents/aJidqKp6ur3z-Nab7jnrAJ/download/A%20patch%20of%20glibc). + +The patch of pfinet (open the virtual network interface) is [here](http://www.assembla.com/spaces/VNetHurd/documents/aWqYwYATKr3BBOab7jnrAJ/download/patch%20of%20pfinet%201%20(to%20use%20the%20virtual%20interface)). + +The patch of pfinet (fix pfinet to use the proper filter rule) is [here](http://www.assembla.com/spaces/VNetHurd/documents/besb-qATKr3AIxab7jnrAJ/download/patch%20of%20pfinet%202%20(to%20add%20an%20IP%20filter)). + +The patch of pfinet (set the mach device in the promiscuous mode) is [here](http://www.assembla.com/spaces/VNetHurd/documents/bEovN6ATKr3B8uab7jnrAJ/download/patch%20of%20pfinet%203%20(to%20set%20the%20mach%20device%20into%20the%20promiscuous%20mode)). + +The patch of boot (open the virtual network interface) is [here](http://www.assembla.com/spaces/VNetHurd/documents/cWkeEixHar3AdKab7jnrAJ/download/A%20patch%20of%20boot). + +The patch of gnumach (set the network device into the promiscuous mode) is [here](http://www.assembla.com/spaces/VNetHurd/documents/b0eLzUxHmr3ymXab7jnrAJ/download/A%20patch%20of%20gnumach). + +the multiplexer: + +- Create multiple virtual network interfaces. +- Port BPF to the multiplexer. +- Finish the routing among the pfinet servers. + +the filter translator: + +- Forward the packet between the interface and the pfinet server. +- Filter the packet. + +the proxy of the proc server: + +- Forward all requests from the process to its proc server. +- The proxy doesn't do any real work except returning the host private port and the master device port of the proxy (shown as an example). + +the devnode translator: + +- Create a device file to help open the network device. + + +### The Code Read + +- boot + +### Documentation Read + + +- [A Programmer's Guide to the Mach System Calls](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machsys.doc) +- [Meet Mach](http://www.stepwise.com/Articles/Technical/MeetMach.html) by James Scott +- [A Programmer's Guide to the Mach User Environment](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.doc), the MIG part +- Part of The GNU Mach Reference Manual and The GNU Hurd Reference Manual +- The Hurd, a presentation by Marcus Brinkmann +- Towards a New Strategy of OS Design, an architectural overview by Thomas Bushnell, BSG. +- GNU/Hurd User's Guide +- The Hurd Hacking Guide diff --git a/user/zhengda/howto.mdwn b/user/zhengda/howto.mdwn new file mode 100644 index 00000000..3f0d0d13 --- /dev/null +++ b/user/zhengda/howto.mdwn @@ -0,0 +1,95 @@ +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + + +This document briefly introduces how to set up the virtual network and connect the subhurd with the main hurd. + + +### 1. Set up the virtual network. + +####1.1 Patch and install GNU Hurd, GNU Mach and the GNU C library. + +Step 1: Get the Hurd and compile it. + + cvs -z3 -d:ext:username@cvs.savannah.gnu.org:/sources/hurd co -r zhengda-soc2008-virt-branch + + +Step 2: apply the [patch](http://www.assembla.com/spaces/VNetHurd/documents/b0eLzUxHmr3ymXab7jnrAJ/download/A%20patch%20of%20gnumach) on the GNU Mach. + +In order to connect the virtual network created in hurd with the external network, we need this patch. It enables the Hurd to set the Mach device into the promiscuous mode, so the real device can accept the packet that goes to the virtual device in hurd. +(This step is optional if we are only interested in creating a internal virtual network.) + +Step 3: apply the [patch](http://www.assembla.com/spaces/VNetHurd/documents/aJidqKp6ur3z-Nab7jnrAJ/download/A%20patch%20of%20glibc) on glibc. + +This patch enables the user to override the default socket server by using the environment variables SOCK_SERV_DIR or SOCK_SERV_%d (%d is the domain of the socket server). + + +#### 1.2 Set up the Hurd components to build the virtual network. + +In this section, I show how to create two virtual interfaces and run three pfinet servers. I assume that the source code of Hurd is in /root/hurd. + +Step 4: create the network device file in /dev with devnode. +The network device file is used to help other translators open the device. + + # settrans -acfg /dev/eth0 /root/hurd/devnode/devnode -d eth0 + +Step 5: create the virtual network device with eth-multiplexer. + +eth-multiplexer is responsible to create the virtual network device and dispatch the packet to the right clients that connect to the virtual device. It also connects the virtual network and the external network. + + # settrans -acfg /root/multiplexer /root/hurd/eth-multiplexer/eth-multiplexer -v 2 -i /dev/eth0 + +Step 6: create the network device files for the virtual network device with devnode. + + # settrans -acfg /dev/veth0 /root/hurd/devnode/devnode -d veth0 -M /root/multiplexer + # settrans -acfg /dev/veth1 /root/hurd/devnode/devnode -d veth1 -M /root/multiplexer + +Step 7: setup the filter translator eth-filter on the network device. This step is optional. +eth-filter is used to set up the traffic policy on the network device. + + # settrans -acfg /dev/fveth0 /root/hurd/eth-filter/eth-filter -i /dev/veth0 -S 192.168.8.0/24 -R 192.168.8.0/24 + # settrans -acfg /dev/fveth1 /root/hurd/eth-filter/eth-filter -i /dev/veth1 -S 192.168.8.0/24 -R 192.168.8.0/24 + +Step 8: setup the pfinet server on the virtual network device. + + # settrans -afgc /root/socket0/2 /root/hurd/pfinet/pfinet -i /dev/fveth0 -a 192.168.8.10 -g 192.168.8.1 -m 255.255.255.0 + # settrans -afgc /root/socket1/2 /root/hurd/pfinet/pfinet -i /dev/fveth1 -a 192.168.8.11 -g 192.168.8.1 -m 255.255.255.0 + # settrans -afgc /root/socket2/2 /root/hurd/pfinet/pfinet -i /dev/fveth1 -a 192.168.8.12 -g 192.168.8.1 -m 255.255.255.0 + + +#### 1.3 Run the command with the customized pfinet server. + +Step 9: Set environment variables to use the customized pfinet server. + +The environment variable of SOCK_SERV_DIR is used to override all socket servers and SOCK_SERV_%d to override a specific socket server. %d after SOCK_SERV_ is the domain of the protocol that the socket server supports. The environment variable SOCK_SERV_%d has the higher priority than SOCK_SERV_DIR. + + # export SOCK_SERV_2=/root/socket1/2 + +If the modified glibc isn't installed as the system default C library, set LD_LIBRARY_PATH environment. + + # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/the/path/of/glibc + +We can run any command now, for example, ping. + +A SHELL script is provided to run all translators I mentioned automatically: http://www.assembla.com/spaces/VNetHurd/documents/c2W71ABser3AIxab7jnrAJ/download/runmultiplexer. To use this script, the user must specify the source of the hurd tree (the default value is /root/hurd) and the path of the servers (the default value is /root) where they should be created. This script is only used to test all translators I mentioned above and shows all steps to set up the virtual network. + + +### 2. Connect the subhurd with the main hurd. + +In the main hurd, we still need to do Step 1-9. +We run subhurd, + + # /root/hurd/boot/boot -m eth0=/dev/fveth0 -m eth1=/dev/fveth1 servers.boot /dev/hd1s1 + +In the subhurd, we do Step 1, 4, 8. +Step 4: # settrans -acfg /dev/veth0 /root/hurd/devnode/devnode -d veth0 +Step 8: # settrans -afgc /servers/socket/2 /root/hurd/pfinet/pfinet -i /dev/veth0 -a 192.168.8.20 -g 192.168.8.1 -m 255.255.255.0 + +Now we can communicate from the subhurd with any pfinet server of the main Hurd that runs in the virtual network. -- cgit v1.2.3 From 9e7a5b8a0628331aaf9737cd8825093d2a2a43cc Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 00:57:41 +0100 Subject: When creating the official pages, use ``--no-usedirs'', so that not too many separate directories have to be created. --- render_locally | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/render_locally b/render_locally index c3098d11..29ab828b 100755 --- a/render_locally +++ b/render_locally @@ -9,13 +9,15 @@ export ROOT && ROOT=$(readlink -f "$(dirname "$0")") && case $1 in --official) # Use this for rendering the set of pages which are to be installed under - # . + # . Use ``--no-usedirs'' here, so that + # not too many separate directories have to be created. shift && export TZ && TZ=UTC && export DESTDIR && DESTDIR=$ROOT.rendered.official && set x \ --set wikistatedir="$ROOT"/.ikiwiki-official \ --url http://www.gnu.org/software/hurd \ + --no-usedirs \ "$@" && shift;; *) -- cgit v1.2.3 From 47d16b97b4d3f207b39f23a619e1c582ace2d476 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 01:06:07 +0100 Subject: Assemble unsorted pages. --- Hurd/ABITransitionStatus.mdwn | 9 - Hurd/AptConfOffline.mdwn | 28 -- Hurd/BuildingHurdLiveCD.mdwn | 70 ----- Hurd/CrossHurd.mdwn | 99 ------- Hurd/CrossPlatformAliases.mdwn | 8 - Hurd/DebianX.mdwn | 130 --------- Hurd/DebianXorg.mdwn | 197 -------------- Hurd/DhcpClient.mdwn | 42 --- Hurd/DistributedServers.mdwn | 29 -- Hurd/ExtTwoSize.mdwn | 27 -- Hurd/ExtTwofsTranslator.mdwn | 4 - Hurd/FlashHurd.mdwn | 60 ----- Hurd/FtpfsTranslator.mdwn | 7 - Hurd/FunnyHurd.mdwn | 39 --- Hurd/FunnyHurd/CrystalAwards.jpg | Bin 13055 -> 0 bytes Hurd/FunnyHurd/HurdCarDeal.jpg | Bin 16144 -> 0 bytes Hurd/FunnyHurd/HurdExchange.gif | Bin 3078 -> 0 bytes Hurd/FunnyHurd/HurdLodge.jpg | Bin 38639 -> 0 bytes Hurd/FunnyHurd/HurdMagician.jpg | Bin 10703 -> 0 bytes Hurd/FunnyHurd/hurd-windows.gif | Bin 14799 -> 0 bytes Hurd/GNOME.mdwn | 11 - Hurd/GNUstep.mdwn | 64 ----- Hurd/GrantBowHurdPage.mdwn | 36 --- Hurd/GrantBowHurdPage/diagram.png | Bin 2139 -> 0 bytes Hurd/GrantBowHurdPage/diagram.xcf | Bin 5492 -> 0 bytes Hurd/HurdDevelopers.mdwn | 120 --------- Hurd/HurdOnL4.mdwn | 173 ------------ Hurd/HurdOnL4/menu.lst | 55 ---- Hurd/InstallNotes.mdwn | 295 --------------------- Hurd/InteractiveTranslators.mdwn | 31 --- Hurd/JoachimNilssonHurdPage.mdwn | 247 ----------------- Hurd/JoachimNilssonHurdPage/patch_kit.jpg | Bin 9469 -> 0 bytes Hurd/KernelCousinDebianHurd.mdwn | 3 - Hurd/KnownHurdLimits.mdwn | 20 -- Hurd/LuisBustamanteHurdPage.mdwn | 11 - Hurd/MakeImage.mdwn | 60 ----- Hurd/PosixThreads.mdwn | 21 -- Hurd/PppDaemon.mdwn | 6 - Hurd/RequirementsForLiveCD.mdwn | 54 ---- Hurd/SeenHurd.mdwn | 71 ----- Hurd/SeenHurd/lmf10_1999.jpg | Bin 63327 -> 0 bytes Hurd/SerialConsole.mdwn | 28 -- Hurd/Shopping.mdwn | 13 - Hurd/Translation.mdwn | 18 -- Hurd/TranslatorExamples.mdwn | 61 ----- Hurd/TranslatorPages.mdwn | 51 ---- Hurd/TranslatorWishList.mdwn | 193 -------------- Hurd/WebHome/hurd_sm_mf.png | Bin 1434 -> 0 bytes Hurd/WhoRunsGNU.mdwn | 31 --- Hurd/XattrHurd.mdwn | 5 - Hurd/Xfree86.mdwn | 109 -------- Hurd/ZallocPanics.mdwn | 43 --- Mach/AdvancedGrubUsage.mdwn | 42 --- Mach/BuildingOskitMach.mdwn | 190 ------------- Mach/BuildingOskitMach/modules-light.x86.pc | 236 ----------------- Mach/BuildingOskitMach/modules.x86.pc | 236 ----------------- Mach/OskitMach.mdwn | 64 ----- Mach/OskitMachPatches.mdwn | 10 - .../patch-gnumach_softclock-wagi.diff.gz | Bin 576 -> 0 bytes .../patch-gnumach_softint-wagi.diff.gz | Bin 1799 -> 0 bytes Mach/OskitMachStatusList.mdwn | 15 -- Mach/OskitPatches.mdwn | 67 ----- Mach/OskitPatches/patch-oskit-0.97-eepro.diff.gz | Bin 301 -> 0 bytes .../OskitPatches/patch-oskit-0.97-i_khavki.diff.gz | Bin 405 -> 0 bytes .../patch-oskit-0.97-jon_arney.diff.gz | Bin 282 -> 0 bytes .../OskitPatches/patch-oskit-0.97-kkraemer.diff.gz | Bin 367 -> 0 bytes .../patch-oskit-0.97-sbrk_hack.diff.gz | Bin 283 -> 0 bytes Mach/PortToL4.mdwn | 42 --- Mach/PosixSemaphores.mdwn | 13 - Mach/RemoteDebugOskitMach.mdwn | 195 -------------- unsorted/ABITransitionStatus.mdwn | 9 + unsorted/AdvancedGrubUsage.mdwn | 42 +++ unsorted/AptConfOffline.mdwn | 28 ++ unsorted/BuildingHurdLiveCD.mdwn | 70 +++++ unsorted/BuildingOskitMach.mdwn | 190 +++++++++++++ unsorted/BuildingOskitMach/modules-light.x86.pc | 236 +++++++++++++++++ unsorted/BuildingOskitMach/modules.x86.pc | 236 +++++++++++++++++ unsorted/CrossHurd.mdwn | 99 +++++++ unsorted/CrossPlatformAliases.mdwn | 8 + unsorted/DebianX.mdwn | 130 +++++++++ unsorted/DebianXorg.mdwn | 197 ++++++++++++++ unsorted/DhcpClient.mdwn | 42 +++ unsorted/DistributedServers.mdwn | 29 ++ unsorted/ExtTwoSize.mdwn | 27 ++ unsorted/ExtTwofsTranslator.mdwn | 4 + unsorted/FlashHurd.mdwn | 60 +++++ unsorted/FtpfsTranslator.mdwn | 7 + unsorted/FunnyHurd.mdwn | 39 +++ unsorted/FunnyHurd/CrystalAwards.jpg | Bin 0 -> 13055 bytes unsorted/FunnyHurd/HurdCarDeal.jpg | Bin 0 -> 16144 bytes unsorted/FunnyHurd/HurdExchange.gif | Bin 0 -> 3078 bytes unsorted/FunnyHurd/HurdLodge.jpg | Bin 0 -> 38639 bytes unsorted/FunnyHurd/HurdMagician.jpg | Bin 0 -> 10703 bytes unsorted/FunnyHurd/hurd-windows.gif | Bin 0 -> 14799 bytes unsorted/GNOME.mdwn | 11 + unsorted/GNUstep.mdwn | 64 +++++ unsorted/GrantBowHurdPage.mdwn | 36 +++ unsorted/GrantBowHurdPage/diagram.png | Bin 0 -> 2139 bytes unsorted/GrantBowHurdPage/diagram.xcf | Bin 0 -> 5492 bytes unsorted/HurdDevelopers.mdwn | 120 +++++++++ unsorted/HurdOnL4.mdwn | 173 ++++++++++++ unsorted/HurdOnL4/menu.lst | 55 ++++ unsorted/InteractiveTranslators.mdwn | 31 +++ unsorted/JoachimNilssonHurdPage.mdwn | 247 +++++++++++++++++ unsorted/JoachimNilssonHurdPage/patch_kit.jpg | Bin 0 -> 9469 bytes unsorted/KernelCousinDebianHurd.mdwn | 3 + unsorted/KnownHurdLimits.mdwn | 20 ++ unsorted/LuisBustamanteHurdPage.mdwn | 11 + unsorted/MakeImage.mdwn | 60 +++++ unsorted/OskitMach.mdwn | 64 +++++ unsorted/OskitMachPatches.mdwn | 10 + .../patch-gnumach_softclock-wagi.diff.gz | Bin 0 -> 576 bytes .../patch-gnumach_softint-wagi.diff.gz | Bin 0 -> 1799 bytes unsorted/OskitMachStatusList.mdwn | 15 ++ unsorted/OskitPatches.mdwn | 67 +++++ .../OskitPatches/patch-oskit-0.97-eepro.diff.gz | Bin 0 -> 301 bytes .../OskitPatches/patch-oskit-0.97-i_khavki.diff.gz | Bin 0 -> 405 bytes .../patch-oskit-0.97-jon_arney.diff.gz | Bin 0 -> 282 bytes .../OskitPatches/patch-oskit-0.97-kkraemer.diff.gz | Bin 0 -> 367 bytes .../patch-oskit-0.97-sbrk_hack.diff.gz | Bin 0 -> 283 bytes unsorted/PortToL4.mdwn | 42 +++ unsorted/PosixSemaphores.mdwn | 13 + unsorted/PosixThreads.mdwn | 21 ++ unsorted/PppDaemon.mdwn | 6 + unsorted/RemoteDebugOskitMach.mdwn | 195 ++++++++++++++ unsorted/RequirementsForLiveCD.mdwn | 54 ++++ unsorted/SeenHurd.mdwn | 71 +++++ unsorted/SeenHurd/lmf10_1999.jpg | Bin 0 -> 63327 bytes unsorted/SerialConsole.mdwn | 28 ++ unsorted/Shopping.mdwn | 13 + unsorted/Translation.mdwn | 18 ++ unsorted/TranslatorExamples.mdwn | 61 +++++ unsorted/TranslatorPages.mdwn | 51 ++++ unsorted/TranslatorWishList.mdwn | 193 ++++++++++++++ unsorted/WebHome/hurd_sm_mf.png | Bin 0 -> 1434 bytes unsorted/WhoRunsGNU.mdwn | 31 +++ unsorted/XattrHurd.mdwn | 5 + unsorted/Xfree86.mdwn | 109 ++++++++ unsorted/ZallocPanics.mdwn | 43 +++ 139 files changed, 3394 insertions(+), 3689 deletions(-) delete mode 100644 Hurd/ABITransitionStatus.mdwn delete mode 100644 Hurd/AptConfOffline.mdwn delete mode 100644 Hurd/BuildingHurdLiveCD.mdwn delete mode 100644 Hurd/CrossHurd.mdwn delete mode 100644 Hurd/CrossPlatformAliases.mdwn delete mode 100644 Hurd/DebianX.mdwn delete mode 100644 Hurd/DebianXorg.mdwn delete mode 100644 Hurd/DhcpClient.mdwn delete mode 100644 Hurd/DistributedServers.mdwn delete mode 100644 Hurd/ExtTwoSize.mdwn delete mode 100644 Hurd/ExtTwofsTranslator.mdwn delete mode 100644 Hurd/FlashHurd.mdwn delete mode 100644 Hurd/FtpfsTranslator.mdwn delete mode 100644 Hurd/FunnyHurd.mdwn delete mode 100644 Hurd/FunnyHurd/CrystalAwards.jpg delete mode 100644 Hurd/FunnyHurd/HurdCarDeal.jpg delete mode 100644 Hurd/FunnyHurd/HurdExchange.gif delete mode 100644 Hurd/FunnyHurd/HurdLodge.jpg delete mode 100644 Hurd/FunnyHurd/HurdMagician.jpg delete mode 100644 Hurd/FunnyHurd/hurd-windows.gif delete mode 100644 Hurd/GNOME.mdwn delete mode 100644 Hurd/GNUstep.mdwn delete mode 100644 Hurd/GrantBowHurdPage.mdwn delete mode 100644 Hurd/GrantBowHurdPage/diagram.png delete mode 100644 Hurd/GrantBowHurdPage/diagram.xcf delete mode 100644 Hurd/HurdDevelopers.mdwn delete mode 100644 Hurd/HurdOnL4.mdwn delete mode 100644 Hurd/HurdOnL4/menu.lst delete mode 100644 Hurd/InstallNotes.mdwn delete mode 100644 Hurd/InteractiveTranslators.mdwn delete mode 100644 Hurd/JoachimNilssonHurdPage.mdwn delete mode 100644 Hurd/JoachimNilssonHurdPage/patch_kit.jpg delete mode 100644 Hurd/KernelCousinDebianHurd.mdwn delete mode 100644 Hurd/KnownHurdLimits.mdwn delete mode 100644 Hurd/LuisBustamanteHurdPage.mdwn delete mode 100644 Hurd/MakeImage.mdwn delete mode 100644 Hurd/PosixThreads.mdwn delete mode 100644 Hurd/PppDaemon.mdwn delete mode 100644 Hurd/RequirementsForLiveCD.mdwn delete mode 100644 Hurd/SeenHurd.mdwn delete mode 100644 Hurd/SeenHurd/lmf10_1999.jpg delete mode 100644 Hurd/SerialConsole.mdwn delete mode 100644 Hurd/Shopping.mdwn delete mode 100644 Hurd/Translation.mdwn delete mode 100644 Hurd/TranslatorExamples.mdwn delete mode 100644 Hurd/TranslatorPages.mdwn delete mode 100644 Hurd/TranslatorWishList.mdwn delete mode 100644 Hurd/WebHome/hurd_sm_mf.png delete mode 100644 Hurd/WhoRunsGNU.mdwn delete mode 100644 Hurd/XattrHurd.mdwn delete mode 100644 Hurd/Xfree86.mdwn delete mode 100644 Hurd/ZallocPanics.mdwn delete mode 100644 Mach/AdvancedGrubUsage.mdwn delete mode 100644 Mach/BuildingOskitMach.mdwn delete mode 100644 Mach/BuildingOskitMach/modules-light.x86.pc delete mode 100644 Mach/BuildingOskitMach/modules.x86.pc delete mode 100644 Mach/OskitMach.mdwn delete mode 100644 Mach/OskitMachPatches.mdwn delete mode 100644 Mach/OskitMachPatches/patch-gnumach_softclock-wagi.diff.gz delete mode 100644 Mach/OskitMachPatches/patch-gnumach_softint-wagi.diff.gz delete mode 100644 Mach/OskitMachStatusList.mdwn delete mode 100644 Mach/OskitPatches.mdwn delete mode 100644 Mach/OskitPatches/patch-oskit-0.97-eepro.diff.gz delete mode 100644 Mach/OskitPatches/patch-oskit-0.97-i_khavki.diff.gz delete mode 100644 Mach/OskitPatches/patch-oskit-0.97-jon_arney.diff.gz delete mode 100644 Mach/OskitPatches/patch-oskit-0.97-kkraemer.diff.gz delete mode 100644 Mach/OskitPatches/patch-oskit-0.97-sbrk_hack.diff.gz delete mode 100644 Mach/PortToL4.mdwn delete mode 100644 Mach/PosixSemaphores.mdwn delete mode 100644 Mach/RemoteDebugOskitMach.mdwn create mode 100644 unsorted/ABITransitionStatus.mdwn create mode 100644 unsorted/AdvancedGrubUsage.mdwn create mode 100644 unsorted/AptConfOffline.mdwn create mode 100644 unsorted/BuildingHurdLiveCD.mdwn create mode 100644 unsorted/BuildingOskitMach.mdwn create mode 100644 unsorted/BuildingOskitMach/modules-light.x86.pc create mode 100644 unsorted/BuildingOskitMach/modules.x86.pc create mode 100644 unsorted/CrossHurd.mdwn create mode 100644 unsorted/CrossPlatformAliases.mdwn create mode 100644 unsorted/DebianX.mdwn create mode 100644 unsorted/DebianXorg.mdwn create mode 100644 unsorted/DhcpClient.mdwn create mode 100644 unsorted/DistributedServers.mdwn create mode 100644 unsorted/ExtTwoSize.mdwn create mode 100644 unsorted/ExtTwofsTranslator.mdwn create mode 100644 unsorted/FlashHurd.mdwn create mode 100644 unsorted/FtpfsTranslator.mdwn create mode 100644 unsorted/FunnyHurd.mdwn create mode 100644 unsorted/FunnyHurd/CrystalAwards.jpg create mode 100644 unsorted/FunnyHurd/HurdCarDeal.jpg create mode 100644 unsorted/FunnyHurd/HurdExchange.gif create mode 100644 unsorted/FunnyHurd/HurdLodge.jpg create mode 100644 unsorted/FunnyHurd/HurdMagician.jpg create mode 100644 unsorted/FunnyHurd/hurd-windows.gif create mode 100644 unsorted/GNOME.mdwn create mode 100644 unsorted/GNUstep.mdwn create mode 100644 unsorted/GrantBowHurdPage.mdwn create mode 100644 unsorted/GrantBowHurdPage/diagram.png create mode 100644 unsorted/GrantBowHurdPage/diagram.xcf create mode 100644 unsorted/HurdDevelopers.mdwn create mode 100644 unsorted/HurdOnL4.mdwn create mode 100644 unsorted/HurdOnL4/menu.lst create mode 100644 unsorted/InteractiveTranslators.mdwn create mode 100644 unsorted/JoachimNilssonHurdPage.mdwn create mode 100644 unsorted/JoachimNilssonHurdPage/patch_kit.jpg create mode 100644 unsorted/KernelCousinDebianHurd.mdwn create mode 100644 unsorted/KnownHurdLimits.mdwn create mode 100644 unsorted/LuisBustamanteHurdPage.mdwn create mode 100644 unsorted/MakeImage.mdwn create mode 100644 unsorted/OskitMach.mdwn create mode 100644 unsorted/OskitMachPatches.mdwn create mode 100644 unsorted/OskitMachPatches/patch-gnumach_softclock-wagi.diff.gz create mode 100644 unsorted/OskitMachPatches/patch-gnumach_softint-wagi.diff.gz create mode 100644 unsorted/OskitMachStatusList.mdwn create mode 100644 unsorted/OskitPatches.mdwn create mode 100644 unsorted/OskitPatches/patch-oskit-0.97-eepro.diff.gz create mode 100644 unsorted/OskitPatches/patch-oskit-0.97-i_khavki.diff.gz create mode 100644 unsorted/OskitPatches/patch-oskit-0.97-jon_arney.diff.gz create mode 100644 unsorted/OskitPatches/patch-oskit-0.97-kkraemer.diff.gz create mode 100644 unsorted/OskitPatches/patch-oskit-0.97-sbrk_hack.diff.gz create mode 100644 unsorted/PortToL4.mdwn create mode 100644 unsorted/PosixSemaphores.mdwn create mode 100644 unsorted/PosixThreads.mdwn create mode 100644 unsorted/PppDaemon.mdwn create mode 100644 unsorted/RemoteDebugOskitMach.mdwn create mode 100644 unsorted/RequirementsForLiveCD.mdwn create mode 100644 unsorted/SeenHurd.mdwn create mode 100644 unsorted/SeenHurd/lmf10_1999.jpg create mode 100644 unsorted/SerialConsole.mdwn create mode 100644 unsorted/Shopping.mdwn create mode 100644 unsorted/Translation.mdwn create mode 100644 unsorted/TranslatorExamples.mdwn create mode 100644 unsorted/TranslatorPages.mdwn create mode 100644 unsorted/TranslatorWishList.mdwn create mode 100644 unsorted/WebHome/hurd_sm_mf.png create mode 100644 unsorted/WhoRunsGNU.mdwn create mode 100644 unsorted/XattrHurd.mdwn create mode 100644 unsorted/Xfree86.mdwn create mode 100644 unsorted/ZallocPanics.mdwn diff --git a/Hurd/ABITransitionStatus.mdwn b/Hurd/ABITransitionStatus.mdwn deleted file mode 100644 index 123e8f8c..00000000 --- a/Hurd/ABITransitionStatus.mdwn +++ /dev/null @@ -1,9 +0,0 @@ -Several transitions have occured recently. - -* [ABI Switch](http://lists.debian.org/debian-hurd/2002/debian-hurd-200204/msg00096.html) from April 17, 2002 - -* [Phase I accomplished](http://lists.debian.org/debian-hurd/2002/debian-hurd-200204/msg00157.html) from April 26, 2002 - -* [status of the ABI transition](http://lists.debian.org/debian-hurd/2002/debian-hurd-200205/msg00242.html) from May 15, 2002 - --- [[Main/GrantBow]] - 15 May 2002 diff --git a/Hurd/AptConfOffline.mdwn b/Hurd/AptConfOffline.mdwn deleted file mode 100644 index c4cc85be..00000000 --- a/Hurd/AptConfOffline.mdwn +++ /dev/null @@ -1,28 +0,0 @@ - APT - { - /* This file belongs in Debian GNU/Hurd's /etc/apt/apt.conf.offline - and will be used when running Debian GNU/Linux. This is only - required when the GNU/Hurd does not have network access. */ - - Architecture "hurd-i386"; - - Get::Download-Only "true"; - }; - - Dir - { - /* Use the disc for state information and redirect the status file from - the /var/lib/dpkg default - assumes Debian GNU/Hurd mounted on /misc/hurd and /var mounted underneath this if necessary */ - - // State::lists should be here, the lists subdirectory. - State "/misc/hurd/var/lib/apt/"; - State::status "/misc/hurd/var/lib/dpkg/status"; - - // Binary caches will be stored locally - Cache::archives "/misc/hurd/var/cache/apt/archives/"; - Cache "/tmp/"; - - // Location of the source list. - Etc "/misc/hurd/etc/apt/"; - }; diff --git a/Hurd/BuildingHurdLiveCD.mdwn b/Hurd/BuildingHurdLiveCD.mdwn deleted file mode 100644 index e2082268..00000000 --- a/Hurd/BuildingHurdLiveCD.mdwn +++ /dev/null @@ -1,70 +0,0 @@ -# Recipes for bootable GNU Mach/Hurd Live CD - -## Greg's recipe - -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 , and version 1.16 of mkbimage (I don't exactly remember where I got that from). - -You can grab a copy of it at , 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 - -## Another recipe for a bootable GNU CD - -[screenshot](http:///mycelium.afraid.org/Screenshot2.png) - -### What you'll need - -* 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 - -### HowTo - - # 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` - -## Contents of grub.conf - - timeout 60 - default 0 - - title GNU/Hurd CD - #uppermem 523648 #this may need to be set - #root (cd) - kernel /boot/gnumach root=device:hd2 #set device to your cdrom device - module /hurd/iso9660fs.static --multiboot-command-line=${kernel-command-line} \ - --host-priv-port=${host-port} --device-master-port=${device-port} \ - --exec-server-task=${exec-task} -T typed ${root} $(task-create) \ - $(task-resume) - module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - -**_Note:_** The `root (cd)` line may prevent some computers from booting the livecd. - --- [[Main/AndrewResch]] - 22 Feb 2005 diff --git a/Hurd/CrossHurd.mdwn b/Hurd/CrossHurd.mdwn deleted file mode 100644 index d33d2a00..00000000 --- a/Hurd/CrossHurd.mdwn +++ /dev/null @@ -1,99 +0,0 @@ -This will eventually become an installation guide for the Debian crosshurd package (GNU/Hurd cross install only). However, for the time being I am setting it up as a diet version of Hurd/InstalNotes, adapted for crosshurd, adapted for me. - --- [[Main/JoachimNilsson]] - 14 Mar 2004 - -## Reserving partitions - -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 - -
-
"Carlsberg. Probably the best beer in the world."
-
- -## Bootstrapping - -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. - -## Rebooting - -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. - -## First steps - -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. - -## Logging in - -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. - -## References - -* [[InstallNotes]] -* [[Network]] -* [[Console]] diff --git a/Hurd/CrossPlatformAliases.mdwn b/Hurd/CrossPlatformAliases.mdwn deleted file mode 100644 index 06a0e897..00000000 --- a/Hurd/CrossPlatformAliases.mdwn +++ /dev/null @@ -1,8 +0,0 @@ - # Aliases assume Debian GNU/Hurd mounted on /misc/hurd - # possibly via autofs /etc/auto.misc configuration and 'cd / && ln -s var/autofs/misc misc' - alias locatehurd="locate -d /misc/hurd/var/lib/locate/locatedb" - alias apt-cachehurd="APT_CONFIG=/misc/hurd/etc/apt/apt.conf.offline apt-cache" - alias apt-gethurd="APT_CONFIG=/misc/hurd/etc/apt/apt.conf.offline apt-get" - # dselect requires APT_CONFIG due to dselect apt method - alias dselecthurd="APT_CONFIG=/misc/hurd/etc/apt/apt.conf.offline dselect --admindir /misc/hurd/var/lib/dpkg/" - alias dpkghurd="dpkg --root=/misc/hurd"= diff --git a/Hurd/DebianX.mdwn b/Hurd/DebianX.mdwn deleted file mode 100644 index 00692ca8..00000000 --- a/Hurd/DebianX.mdwn +++ /dev/null @@ -1,130 +0,0 @@ -# Setting up X on Debian GNU/Hurd - -#### Table Of Contents - -%TOC% - -This is a brief helper on how to setup X-Windows on Debian GNU/Hurd. - -Obviously this text is taken from the page but I was making such drastic changes, I didn't want to hack up that page. - -### Mouse & Keyboard - -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 - -### Selecting & Configuring Packages - -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. - -### Edit XF86Config-4 - -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. - -### Dynamic Linking - -The Hurd does not use `ld.so.conf`, it is necessary to add the following to `/etc/profile` to be sure that the libraries are found: - - LD_LIBRARY_PATH=/X11R6/lib:$LD_LIBRARY_PATH - -"This is a linker issue. GNU/Hurd expects that \`RPATH' is used, however, Debian takes certain measures to avoid this. Note that this does not cut it for suid binaries because of security implications. We expect to rectify this by using \`RUNPATH', which is specified in the new ELF standard." -- [Why does X not work?](http://www.gnu.org/software/hurd/faq.en.html#q4-8) - -**_CAVEAT 12/28/2004:_** I did not have to do this so can someone verify that this still needs to be done or was it fixed? Thanks! - -### Starting X - -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" - -### Miscellaneous - -The dillo web browser does work, though it is not the greatest browser. - -For you xchat lovers like me, xchat will compile if you disable the python module. (The python module causes an assertion failure in pthreads if one of you guru's wants to fix and package. **hint,hint**) - -Good luck and enjoy! - ----- - --- [[Main/BarryDeFreese]] - 28 Dec 2004 diff --git a/Hurd/DebianXorg.mdwn b/Hurd/DebianXorg.mdwn deleted file mode 100644 index 1599c689..00000000 --- a/Hurd/DebianXorg.mdwn +++ /dev/null @@ -1,197 +0,0 @@ -# Setting up Xorg on Debian GNU/Hurd - -#### Table Of Contents - -%TOC% - -This is a brief helper on how to setup Xorg on Debian GNU/Hurd. - -Obviously this text is taken from the page but I was making such drastic changes, I didn't want to hack up that page. - -### Mouse & Keyboard - -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 - -### Selecting & Configuring Packages - -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.** - -### Edit xorg.conf - -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 - -### Starting X - -Finally, run `startx` - -However, there are several caveats to be aware of: - -* `update-menu` does not yet work. As such, there are no fine Debian menus. - -**_WARNING:_** If you get an error about opening the display or a permissions issue, you may need to run the following: - - # dpkg-reconfigure x11-common - -change from "Console Users Only" to "Anybody" - -Good luck and enjoy! - ----- - --- [[Main/BarryDeFreese]] - 02 Mar 2006 diff --git a/Hurd/DhcpClient.mdwn b/Hurd/DhcpClient.mdwn deleted file mode 100644 index 442f4781..00000000 --- a/Hurd/DhcpClient.mdwn +++ /dev/null @@ -1,42 +0,0 @@ -# DHCP and the Hurd - -According to the following thread, no port should be needed since all the patches that have been applied, including the one concerning the thread. In fact, the thread finishes without concluding whether the patch has been applied or not. You can grab it in the thread, anyway. - -[Link to thread](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html) - -The thread starts at Jan 4th 2005 until Jan 6th and is only retaken at April 14th in [this thread](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html). - --- [[Main/ThadeuCascardo]] - 29 Sep 2005 - -No DHCP client has been ported to the Hurd yet. - -[This](http://mail.gnu.org/archive/html/help-hurd/2003-10/msg00016.html) thread on help-hurd has a little more info on what's still needed for DHCP. - --- [[Main/GregBuchholz]] - 09 Oct 2003 - -Found this [message](http://mail.gnu.org/archive/html/bug-hurd/2003-08/msg00045.html) about DHCP capabilities in the Hurd encouraging. - --- [[Main/GregBuchholz]] - 03 Sep 2003 - -* Tom Hart began a [discussion ](http://mail.gnu.org/pipermail/help-hurd/2002-October/006643.html) of 14 posts in Oct 2002. - --- [[Main/GrantBow]] - 20 Oct 2002 - -The beginnings of a DHCP translator is available in the Hurd sources on Savannah: [hurd/trans/pump.c](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/trans/pump.c?rev=1.3&content-type=text/vnd.viewcvs-markup) - -Unfortunately our current TCP/IP stack, the pfinet translator, lacks support for the AF\_PACKET interface as well as sending packets with an IP address of 0.0.0.0. - -Grant Bowman on bug-hurd: - - Herbert Xu (Pump maintainer) told me that to operate correctly, pump - uses the AF_PACKET interface which is only present in 2.2. - - Anyone else know the status of getting these compiled and functional? - -Neal Walfield on bug-hurd replies: - - > Anyone else know the status of getting these compiled and functional? - - We need to be able to send to the DHCP server with ip address 0.0.0.0. - --- [[Main/JoachimNilsson]] - 12 Nov 2002 diff --git a/Hurd/DistributedServers.mdwn b/Hurd/DistributedServers.mdwn deleted file mode 100644 index cb2dd5bc..00000000 --- a/Hurd/DistributedServers.mdwn +++ /dev/null @@ -1,29 +0,0 @@ -# Distributed Computing - -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: - -* -* -* - -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. - ----- - -## Document history - -Created. - --- [[Main/LaudneyRen]] - 29 Sep 2002 - -Various grammatical fixes and tidying up. - --- [[Main/JoachimNilsson]] - 29 Oct 2002 - -Updated for [[Mach]] web, reworded parts for more direct message. Added L4 link. - --- [[Main/GrantBow]] - 11 Jan 2003 diff --git a/Hurd/ExtTwoSize.mdwn b/Hurd/ExtTwoSize.mdwn deleted file mode 100644 index ec39781f..00000000 --- a/Hurd/ExtTwoSize.mdwn +++ /dev/null @@ -1,27 +0,0 @@ -## Ext2 File system limitation - -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:_** - -* (This link is broken. Have been unable to fix it. [[MauriceMcCarthy]] 2 Nov 2004.) -* - -(Searching Beowulf for '2Gb patch' seems to show this still present in the archive but somehow it is not accessible.) diff --git a/Hurd/ExtTwofsTranslator.mdwn b/Hurd/ExtTwofsTranslator.mdwn deleted file mode 100644 index d8f708fc..00000000 --- a/Hurd/ExtTwofsTranslator.mdwn +++ /dev/null @@ -1,4 +0,0 @@ -* [[ExtTwoSize]] - information about the limitation of partition size -* [[XattrHurd]] - Supports Hurd ext2 format extensions on Linux, images at - --- [[Main/GrantBow]] - 03 Mar 2004 diff --git a/Hurd/FlashHurd.mdwn b/Hurd/FlashHurd.mdwn deleted file mode 100644 index a6288afc..00000000 --- a/Hurd/FlashHurd.mdwn +++ /dev/null @@ -1,60 +0,0 @@ -# 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. - -## Requirements Outline - -### 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. - -### 2. We need a bootstrap filesystem translator - -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. - -### 3. We need a ramdisk to enable write access - -I think we could fake this with Farid Hajii's [memfs](http://www.fprintf.net/hurd/) translator and writing an ext2 filesystem to it. - -From the mem-fs README... - -> memfs-1 is a translator that provides a memory-based file of fixed size. This file can, just like bigfile, contain a regular filesystem. - -We could set a mem-fs translator anywhere on the CD you needed write access, including having softlinks to the contents of the root directory and chrooting to this new directory. - -For a quick and dirty memfs, you can do it right now with the following commands: - - # touch ./ramdisk - # touch ./tmpfs - # settrans -a ./ramdisk /hurd/storeio -Tcopy zero:50M - # /sbin/mke2fs -o hurd -b 4096 -F ./ramdisk - # settrans -a tmpfs /hurd/ext2fs.static ./ramdisk - # fsysopts --writable ./tmpfs - # cd tmpfs - # touch somenewfile - -Here we use two files ramdisk, and tmpfs that are already created on a readonly file system. For illustration purposes, they are touched beforehand. We run an active storeio translator on the ramdisk file to give us 50MB of RAM to work with, and then we make an ext2 filesystem on it. - -At this point we'd could copy the contents of the `/var` directory into the tmpfs, and then symlink `/var` to `/tmpfs/var`. The same goes for all other mutable dirs. - -This approach of putting an entire ext2 filesystem in a copy zero'd store has some drawbacks listed [here](http://lists.gnu.org/archive/html/bug-hurd/2000-12/msg00073.html). - -Those are the essentials. Here is a list of the things which would be nice to have for a USB Flash Memory. - -* Knoppix like script for starting up X and [[GraphicEnvironment]] s ([[FluxBox]], Gnome...) -* DHCP support for easy network setup -* Hardware autodetection (Kudzu). -* Knoppix like script for installing to the hard drive or to bootable USB pendrive . -* (add your favorite feature here) - -Here is a mailing-list [thread](http://lists.debian.org/debian-hurd/2003/debian-hurd-200308/msg00172.html) discussing some of these issues. - --- [[Main/GregBuchholz]] - 21 Oct 2003 -- [[Main/NagromNamreh]] - 29 Jan 2004 diff --git a/Hurd/FtpfsTranslator.mdwn b/Hurd/FtpfsTranslator.mdwn deleted file mode 100644 index 528a10f2..00000000 --- a/Hurd/FtpfsTranslator.mdwn +++ /dev/null @@ -1,7 +0,0 @@ -ftpfs lets you access ftp servers via the filesystem. For detailed usage information use `/hurd/ftpfs --help` and `/hurd/ftpfs --usage`. - -### hostmux - -ftpfs ist best used with [[HostmuxTranslator]] - --- [[Main/PatrickStrasser]] - 13 Jul 2004 diff --git a/Hurd/FunnyHurd.mdwn b/Hurd/FunnyHurd.mdwn deleted file mode 100644 index 1653ec77..00000000 --- a/Hurd/FunnyHurd.mdwn +++ /dev/null @@ -1,39 +0,0 @@ -## Fun stuff ripped from the Internet - - - - - - - - - - - - - - -
%ATTACHURL%/hurd-windows.gif
Hurd Windows, availble from http://www.hurd.com
%ATTACHURL%/HurdExchange.gif
Exchange your Hurd at http://www.thunderinghurd.com
%ATTACHURL%/HurdCarDeal.jpg
... and we can of course also offer you a great deal on this -91 Chevy! :-)
%ATTACHURL%/HurdLodge.jpg
The many perks of being a Hurd user also includes our own ski lodge!
Hurd House
-
    -
  • Knotty pine kitchen
  • -
  • Spacious kitchen &amp; living room with loft
  • -
  • Leather couch and love seat with a TV &amp; VCR
  • -
  • Outdoor Jacuzzi
  • -
  • Spacious master bedroom/bath upstairs
  • -
  • Twin beds in one room / queen bed in another
  • -
-
%ATTACHURL%/HurdMagician.jpg
From http://www.magicposters.com/buy/h-k.html
%ATTACHURL%/CrystalAwards.jpg
"Wow dude, I saw the Debian Swirl logo on last nights Crystal Awards!"
- ----- - -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. - ----- - -### Comments - -Created the page. - --- [[Main/JoachimNilsson]] - 09 Nov 2002 diff --git a/Hurd/FunnyHurd/CrystalAwards.jpg b/Hurd/FunnyHurd/CrystalAwards.jpg deleted file mode 100644 index 2daac850..00000000 Binary files a/Hurd/FunnyHurd/CrystalAwards.jpg and /dev/null differ diff --git a/Hurd/FunnyHurd/HurdCarDeal.jpg b/Hurd/FunnyHurd/HurdCarDeal.jpg deleted file mode 100644 index 9f533384..00000000 Binary files a/Hurd/FunnyHurd/HurdCarDeal.jpg and /dev/null differ diff --git a/Hurd/FunnyHurd/HurdExchange.gif b/Hurd/FunnyHurd/HurdExchange.gif deleted file mode 100644 index bbbb4844..00000000 Binary files a/Hurd/FunnyHurd/HurdExchange.gif and /dev/null differ diff --git a/Hurd/FunnyHurd/HurdLodge.jpg b/Hurd/FunnyHurd/HurdLodge.jpg deleted file mode 100644 index d13562f5..00000000 Binary files a/Hurd/FunnyHurd/HurdLodge.jpg and /dev/null differ diff --git a/Hurd/FunnyHurd/HurdMagician.jpg b/Hurd/FunnyHurd/HurdMagician.jpg deleted file mode 100644 index 5ef6509a..00000000 Binary files a/Hurd/FunnyHurd/HurdMagician.jpg and /dev/null differ diff --git a/Hurd/FunnyHurd/hurd-windows.gif b/Hurd/FunnyHurd/hurd-windows.gif deleted file mode 100644 index 5ca7dd74..00000000 Binary files a/Hurd/FunnyHurd/hurd-windows.gif and /dev/null differ diff --git a/Hurd/GNOME.mdwn b/Hurd/GNOME.mdwn deleted file mode 100644 index 1dbef091..00000000 --- a/Hurd/GNOME.mdwn +++ /dev/null @@ -1,11 +0,0 @@ -![gnome-hurd.png](http://people.debian.org/~mbanck/media/gnome-hurd.png) - -GNOME can now be ported with the new [[Pthreads]], but is still being worked on.The packages are at - -deb ./ - -The caveats: - -Some applications are not yet built, not even all the ones from gnome-core. 'apt-get install gnome-applets gnome-control-center gnome-icon-theme gnome-panel gnome-session metacity nautilus scrollkeeper' (along with the above APT source) should get you started. - -See also: [[Xfree86]]. diff --git a/Hurd/GNUstep.mdwn b/Hurd/GNUstep.mdwn deleted file mode 100644 index 95b2a622..00000000 --- a/Hurd/GNUstep.mdwn +++ /dev/null @@ -1,64 +0,0 @@ -# Setting up GNUstep on the Hurd - -GNUstep is not available on the Debian distribution for GNU/Hurd, but it can be built manually. This is, how to do it. - -#### Prerequisites - -This packages should already be installed (Debian package names in brackets): ffcall (libffcall1, libffcall1-dev), libffi (libffi4), libffi4-dev, openssl (openssl), libtiff (libtiff4), libpng (libpng12-0, libpng3), libjpg (libjpeg62), libxml (libxml1, libxml2, libxml2-dev & dependencies), xslt (libxslt1.1, libxslt1-dev & dependencies), ssl (libssl0.9.8, libssl-dev), libungif4-dev libungif4g, aspell (libaspell15, libaspell-dev, aspell & apspell-[for your language, e. g. en]) windowmaker (wmaker), Objective-C-Compiler (gobjc and depending packages) - -#### Getting the sources - -To do an up-to-date-installation, download the daily snapshot from GNUstep into one new directory and unzip/untar them: - - wget ftp://ftp.gnustep.org/pub/daily-snapshots/core.current.tar.bz2 - -#### Building GNUstep - -Everything needed for the GNUstep base system is included into the expanded tarball. This is how to build it: - -Do the following installation as root! - - cd core/make - ./configure - make && make install - cd .. - . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh (see the dot at the begin!) - cd ../base - ./configure - Edit the file Headers/Additions/GNUstepBase/config.h and add "#define BROKEN_SO_REUSEADDR 1" somewhere - make && make install - cd ../gui - ./configure - make && make install - cd ../back - make && make install - -Now, you've built the GNUstep base system. When you want to start a GNUstep application later or want to build one, open a bash shell and enter this command: - - . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh - -This sets some necessary environment variables. - -#### Building GNUstep apps - -You can find some GNUstep applications here: - -and here: [http://mediawiki.gnustep.org/index.php/Main\_Page](http://mediawiki.gnustep.org/index.php/Main_Page) - -#### Known problems - -##### GNUMail - -After starting GNUMail, you can only once get mails from a pop3-server. If you want to fetch mails again, you have to restart it. - -##### GWorkspace 0.8 - -GWorkspace 0.8 expects a /etc/mtab file. If you want to use it, you must manually make this file. - -Example for a /etc/mtab file: - - /dev/hd0s1 / ext2 rw 1 1 - ----- - --- Thomas Schlesinger - 03 Mar 2006 diff --git a/Hurd/GrantBowHurdPage.mdwn b/Hurd/GrantBowHurdPage.mdwn deleted file mode 100644 index 89af3ada..00000000 --- a/Hurd/GrantBowHurdPage.mdwn +++ /dev/null @@ -1,36 +0,0 @@ -Here are some notes on my current Hurd activity. - -I am also unable to get my PCI NE-2000 clone network card working. The driver loads but no routes are possible and therefore no packets get to the network. This is actually a DE-220 NIC that I started to discuss on hurd-help. Here's the actual change I made to gnumach-20020421/linux/dev/drivers/net/Space.c - - static struct device eth0_dev = { - "eth0", 0, 0, 0, 0, 0x240, 10, 0, 0, 0, ð1_dev, ethif_probe }; - -Cheers, - --- [[Main/GrantBow]] - 13 May 2002 - -Booting OSKit-Mach mysteriously works now! Yeah! I didn't even change anything! - -My problems now is how to get my second machine's (hd0,2) (/dev/hda3 for linux folks) partitionto bre recognized by Grub. When I try 'root (hd0,2)' grub spits back 'Filesystem type unknown, partition type 0x83'. This is a standard ext2 /boot partition from my test Progeny install. I even removed the partition, added it back, fsck.ext2 and moved the files back. It still doesn't see the -filesystem-. Very strange. This prevents me from using my second machine right now. - -If anyone knows more about these items, please add your comments below with your signature. - --- [[Main/GrantBow]] - 16 May 2002 - -PLEASE read these once. They are worth the effort. - -* [How To Ask Questions The Smart Way](http://www.tuxedo.org/~esr/faqs/smart-questions.html) - -* [How To Report Bugs Effectively](http://www.chiark.greenend.org.uk/~sgtatham/bugs.html) \* - -\*[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:
![diagram.png](%ATTACHURLPATH%/diagram.png) diff --git a/Hurd/GrantBowHurdPage/diagram.png b/Hurd/GrantBowHurdPage/diagram.png deleted file mode 100644 index c8b29047..00000000 Binary files a/Hurd/GrantBowHurdPage/diagram.png and /dev/null differ diff --git a/Hurd/GrantBowHurdPage/diagram.xcf b/Hurd/GrantBowHurdPage/diagram.xcf deleted file mode 100644 index 76396410..00000000 Binary files a/Hurd/GrantBowHurdPage/diagram.xcf and /dev/null differ diff --git a/Hurd/HurdDevelopers.mdwn b/Hurd/HurdDevelopers.mdwn deleted file mode 100644 index 1a43a2b8..00000000 --- a/Hurd/HurdDevelopers.mdwn +++ /dev/null @@ -1,120 +0,0 @@ -Here's an unofficial list of Hurd developers and what they are working on. This is very unofficial. - -* [Marcus Brinkmann](http://www.marcus-brinkmann.de) - GNU Hurd Project maintainer, Debian GNU/Hurd Port Manager, fakeroot, oskit console -* [Thomas Bushnell, BSG](http://www.mit.edu/~tb/) - Primary architect, design issues and debugging help -* [Roland McGrath](http://www.frob.com), [resum�](http://www.apocalypse.org/pub/u/roland/resume.html) - GLibC, GCC-3.1, fakeroot (with fakeauth and settrans --chroot) -* Jeff Bailey - turtle autobuilder, gcc-3.1 -* [Igor Khavkine](http://alcor.concordia.ca/~i_khavki/) -* [Gordon Matzigkeit](http://www.fig.org/gord/) - -* Alexandra "[Bunny](http://www.hurd-bunny.tk)" - graphic designer, Hurd promotion -* Alfred M. Szmidt (ams) - -* Daniel (Chillywilly) Baumann - GNU Enterprise Application Server, GNU Common C++ -* [[Main/GrantBow]] - TWiki, promotion -* Jae - fatfs, possibly smbfs -* [[Main/JoachimNilsson]], [[Hurd/JoachimNilssonHurdPage]] - TWiki, OSKit upgrades (currently ATA-100 patches). -* [[Main/JamesAMorrison]] - porting, kernel interface cleanups, [hurd-extras](http://savannah.gnu.org/projects/hurdextras/) -* Neal Walfield - pthreads, documentation, debugging, #hurd admin, log & bot maintainer -* [[Main/NickRusnov]] - mtab & [[Distrib/PortingIssues]] -* Niels M�ller - kernel debugging -* [[Main/OgnyanKulev]] - [[ExtTwoSize]] patch -* Paul Emsley - [Kernel Cousin Debian Hurd](http://kt.zork.net/debian-hurd/latest.html) -* Philip Charles - [ISO CD-images](http://www.copyleft.co.nz/hurd.html) -* Ryan Golbeck - porting. -* [[Main/SamLauzon]] (Indes) - Installer, Sound(!), Bunny mocking -* [[Main/SimonLaw]] - [Kernel Cousin Debian Hurd](http://kt.zork.net/debian-hurd/latest.html) and [[Hurd/KernelCousinDebianHurd]] -* [[Main/WolfgangJ]] - documentation, promotion -* [[Main/DerekDavies]] - OSKit work -* [Daniel Wagner](http://www.vis.ethz.ch/~wagi/) (wagi) - [pcmcia support for OSKit](http://savannah.nongnu.org/projects/oskit/) - -If we got any names wrong, please accept our apologies. - - ---- - -

Acknowledgements

- -

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! - -

-
Hurd software
-
-
Mark Kettenis
-
many GNU C library and Hurd bug fixes and updates
-
Miles Bader
-
paid by the FSF to help make the Hurd usable as a standalone system, - wrote several important translators
-
OKUJI Yoshinori
-
many gnumach bug fixes and updates
-
Roland McGrath
-
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
-
Thomas Bushnell, BSG (formerly Michael I. Bushnell)
-
paid by the FSF as primary architect of the Hurd, current Hurd maintainer
-
UCHIYAMA Yasushi
-
ported XFree86 to the Hurd
-
- -
Debian GNU/Hurd
-
-
Gordon Matzigkeit
-
paid by the FSF as a liason from GNU to Debian
-
Marcus Brinkmann
-
bootstrapped the Debian GNU/Hurd base set and many packages, liason - from Debian to GNU
-
Santiago Vila
-
support for cross-compiling Debian packages
-
- -
Documentation
-
-
Derek Upham
-
wrote the original GNU Hurd FAQ
-
Gordon Matzigkeit
-
reorganized and updated the GNU Hurd Reference Manual for release 0.3 -
Matthew C. Vernon
-
wrote the ``Idiot's Guide'' for getting started with the Hurd
-
Matthias Pfisterer
-
reorganized and updated the web site in early 1999
-
Stephen L. Favor
-
current FAQ maintainer
-
Trent Fisher
-
wrote the original version of the Hurd pages
-
-
- -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! - - - -Copyright (C) 1998 Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111, USA - -Verbatim copying and distribution of this entire article is -permitted in any medium, provided this notice is preserved. diff --git a/Hurd/HurdOnL4.mdwn b/Hurd/HurdOnL4.mdwn deleted file mode 100644 index 79e7a714..00000000 --- a/Hurd/HurdOnL4.mdwn +++ /dev/null @@ -1,173 +0,0 @@ -# GNU/Hurd on L4 wiki - -## Introduction - -This page is a place for information pertaining to the efforts towards realizing the migration and porting of the [[Hurd]] such that it uses the [L4 Microkernel](http://l4ka.org/). The GNU/Hurd Operating System, sometimes just referred to as the _GNU Operating System_ is a rich and robust collection of programs and utilities which enable you to use your computer to do usefull and or entertaining things. The intent is that most any applicable software package available on the [GNU Website](http://www.gnu.org) (and many others also) will be able to be compiled and run under the resultant operating system. - -At this point (06/20/2004) this is not yet possible. Indeed, the preliminary foundations are still being developed. Nevertheless, this is a volunteer created operating system so those with the knowledge, interest, and spare time are encouraged to study and if possible contribute to the project. - -In [CVS module hurd-l4](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/), there is a [comprehensive list of items that need to be done](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/TODO). - -## Components of the System - -### The L4 Microkernel - -The kernel of an operating system is a fundamental program which provides essential resources from the hardware of the computer to other programs. A kernel typically runs all the time and remains resident in main memory. The amount of functionality and resources which it provides vary tremendously. The [L4 Microkernel](http://l4ka.org/) is an attempt to create a very small high performace core which provides basic memory management, task and context switching, and little else. - -### The Hurd - -The [Hurd](http://www.gnu.org/software/hurd/hurd.html) is a conglomeration of servers and programs which add additional functionality to a microkernel such that it is capable of utilizing additional hardware resources of the computer. It also provides a compatibility layer such that compiling higher level programs is essentially transparent; i.e. when you write a C program and compile it, you need only include standard headers and libraries and for all intents and purposes your generic program will build and run and you need never resort to unportable coding or access to hardware specific methods. - -For a typical user, The Hurd is intended to silently work in the background providing the services and infrastructure which are lacking in the microkernel but are required for higher level programs and libraries to operate. - -### GNU Programs - -For the user, this is what is desired: to run [GNU Software](http://www.gnu.org/). These programs provide a full featured, robust, and extremely effective operating system. A L4/Hurd system should be capable of compiling and executing most any software package available from GNU with little or no modification. - -Some readers may be familiar with GNU/Linux systems. When GNU/L4 is complete it should highly resemble the functionality of such systems as L4 and Hurd effectively replace the Linux kernel. The bulk of the software should be expected to run much as it does presently under the Linux kernel (or gnumach based GNU/Hurd systems). - -## Preparations - -### Build System - -There are no precompiled binaries for Hurd on L4 that I am aware of, so you will need to be able to compile the source code packages in order to experiment with it. While L4Ka will likely build on a variety of compilers and systems, the Hurd may prove troublesome unless it is built using recent GNU compilers and tools. - -I recently used [Debian Unstable](http://www.debian.org) (Sarge) with GNU gcc version 3.3, autoconf version 2.50, and automake version 1.8 to build the system with good results, although other similarly equipped systems with a good development environment, such as [Gentoo](http://www.gentoo.org) or [Slackware](http://www.slackware.com) are reported to work fine also. - -Generally, I would recommend building the packages using any very up-to-date GNU development system. I'm not going to say that you can't compile them using more exotic platforms, but I wouldn't be overly hopefull about it. I have no idea if Pistachio can be compiled under current gnuMach/Hurd systems it might be interesting to try it. - -### Making a Home for L4/Hurd - -Obviously you want to have a home for this little embryonic operating system. Currently, mine is using about 5M for the binaries and headers. If you want the source to reside with the binaries, then allow perhaps another 50M or so, but this is purely optional. - -At the moment, Hurd on L4 can't even see your hard drive, so all you need is a directory on some partition which is visible to the GRUB bootloader. A `/l4hurd` directory on your existing GNU/Linux system is probably fine for now. - -Howevever, if you have some spare disk space or an unused partition, you could optionally create a small partition for the system. This is totally unnecessary at the moment because L4/Hurd lacks hard disk drivers right now, but it is an option. Assuming that you have made some partition **X** with linux _fdisk_, set it to type 83 - Linux and use the following command to initialize it with the classic Hurd extensions: - - - -As noted, this is purely optional, in fact right now you can use any filesystem that GRUB can understand. You can even use TFTP to netboot the system. My current setup takes about 5M for the full install so obviously you don't need much space for this. - -### Boot Loader - -Just like regular GNU/Hurd, you need to use [GNU GRUB](http://www.gnu.org/software/grub/), the _GRand Unified Bootloader_ in order to boot the system. Hopefully you already have it installed, in which case adding the commands for L4/Hurd to your `menu.lst` is quite trivial. - -If you don't have GRUB installed, then you should probably take some time to get it set up. A good place to look for help is on the regular [Debian GNU/Hurd Installation Page](http://www.debian.org/ports/hurd/hurd-install) at the **3\. The Boot Loader** section. - -This is probably a bit superfluous, but you can even display a snazzy little graphic of some type on your GRUB boot menu. Here's a snip from the header of my `menu.lst` which demonstrates how to do this. - - # menu for grub - splashimage (hd0,0)/boot/grub/debian.xpm - foreground bfbfe7 - background 3f3f7f - -In the above example, my `debian.xpm` is just a 640x480 graphic in xpm format (which you can easily create with GIMP). It does add a bit of pizazz to your boot screen :-) - -In fact, I will attach a sample copy of my `menu.lst` here. It has lots of examples for booting a variety of operating systems in it. Remember that my hard drive partitions are unique to my system. - -* [[ATTACHURLmenulst]]: Sample GRUB boot menu - -## Building Hurd on L4 - -### L4Ka Pistachio - -#### Getting the Sources - -I used the latest version of L4Ka, Pistachio version 0.4. It can be obtained from the following website: - -[L4Ka Pistachio Home](http://l4ka.org/projects/pistachio/) - -#### Compiling - -Pistachio is designed to be compiled in a build directory which is independant from the source directory, so you need to create your build directory after unpacking the tarball. Furthermore, you need to pass a couple of special parameters to the configure program to set it up for use with Hurd. Here is what I did on my ia32 system: - -Note: I have my installation set up in `/l4hurd` and I am starting from within the Pistachio source top-level directory. - - $ mkdir build - $ cd build - Building and installing user-level libraries and servers/applications - $ ../user/configure --with-s0-linkbase=0x40000 --prefix=/l4hurd - $ make - $ make install - Building and installing the kernel - $ make -C ../kernel BUILDDIR=`pwd`/kernel - $ cd kernel - $ make menuconfig - $ make - $ mkdir /l4hurd/boot - $ cp ia32-kernel /l4hurd/boot - -Hopefully everything worked and there were no problems. As usual, if the build fails then scrutinize the output from `configure` and install any missing libraries or development packages. - -### CVS l4hurd - -#### Getting the sources - - You need to pull the L4 Hurd sources from the CVS tree on Savannah. The CVS access page is [The GNU/Hurd - CVS (module hurd-l4)](http://savannah.gnu.org/cvs/?group=hurd). In a nutshell, the following commands should retrieve the sources for you: - - $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co hurd-l4 - -#### Compiling - -Take a look at the README, compiling should be quite simple on any state of the art GNU development system. As per the README, and for my example, you would: - - $ autoreconf -f -i -s - $ ./configure --enable-maintainer-mode --prefix=/l4hurd - $ make - $ make install - $ strip physmem/physmem - - $ mkdir /l4hurd/boot - $ cp laden/laden /l4hurd/boot - $ cp wortel/wortel /l4hurd/boot - $ cp physmem/physmem /l4hurd/boot - -Currently (2004/08/09), physmem needs to be stripped to to avoid a memory conflict with wortel; this requirement may be fixed in the future. - -In my case it was slightly more complicated as Debian uses a wrapper system to enable the use of multiple versions of the GNU Autotools. In this case, the trick is to utilize some environment variables on the command line as follows: - - $ ACLOCAL=aclocal-1.8 AUTOMAKE=automake-1.8 autoreconf -f -i -s - -As above, hopefully this will compile cleanly; otherwise, scroll up, read any error messages, and correct them by installing required packages of the proper version. Any bad compilation problems are most likely due to you either missing or using a wrong version of something. - -## Installing - -The binaries are now installed into `/l4hurd`. All that remains is to add an entry into GRUB's `menu.lst` in order to test it out. Here's an example from my system where I have `/l4hurd` on `/dev/hda9` in my Linux system: - - title GNU Hurd on L4Ka Pistachio 0.4 - root (hd0,8) - kernel /boot/laden -D - module /boot/ia32-kernel - module /libexec/l4/sigma0 - module /boot/wortel -D - module /boot/physmem -D - module /boot/physmem - module /boot/physmem - module /boot/physmem - module /boot/physmem - -It might strike you a little odd that there are five physmem modules. This is done because wortel currently (2004/08/09) expects exactly five modules and the other modules (like the task server, auth server, etc.) have not been implemented yet. Therefore the physmem module is used as a dummy module. - -## Booting - -For me at least, I got some nifty messages and then it dropped into a simple debugging mode. As far as I know, thats all there is right now. - -Read, build, learn, code... - ---todo: add more here. - -## Experimenting - -Well, thats why you did all of this, certainly not to do anything else. Use that debugger and get experimenting. - ---todo: things to do wth the debugger - -## Conclusion - -If you followed these steps, you most likely have built and booted the latest version of Hurd on L4. I would encourage you to subscribe to the mailing list at the following URL and help in the efforts to get this nifty system up to speed: - -[l4-hurd mailing list](http://lists.gnu.org/mailman/listinfo/l4-hurd) - -And finally, this is a wiki, meaning that **you** have the ability to edit and modify this page. If you want to fix something, add more information, new sub-pages, whatever, feel free to do so. This is a great way to get a doc base up fast and keep it current, so use it like its supposed to be and have fun with Hurd on L4! - --- [[Main/BDouglasHilton]] - 20 Jun 2004 diff --git a/Hurd/HurdOnL4/menu.lst b/Hurd/HurdOnL4/menu.lst deleted file mode 100644 index 3129ea74..00000000 --- a/Hurd/HurdOnL4/menu.lst +++ /dev/null @@ -1,55 +0,0 @@ -# menu for grub -splashimage (hd0,0)/boot/grub/debian.xpm -foreground bfbfe7 -background 3f3f7f - -timeout 30 -default 0 - -title Debian Sid with Linux kernel 2.6.5 -root (hd0,1) -kernel /vmlinuz root=/dev/hda2 vga=0x318 - -title Debian Sid with old kernel -root (hd0,1) -kernel /vmlinuz.old root=/dev/hda2 vga=9 - -title Microsoft Windows 2000 -rootnoverify (hd0,3) -chainloader (hd0,3)+1 - -title FreeDOS BETA 8.0 -root (hd0,0) -chainloader +1 - -title GNU Hurd on L4Ka Pistachio 0.4 -root (hd0,8) -kernel /boot/laden -D -module /boot/ia32-kernel -module /libexec/l4/sigma0 -module /boot/wortel -D -module /boot/physmem - -title Debian GNU/Hurd (gnumach) -root (hd0,7) -kernel /boot/kernel.gz root=device:hd0s8 -module /hurd/ext2fs.static --readonly \ - --multiboot-command-line=${kernel-command-line} \ - --host-priv-port=${host-port} \ - --device-master-port=${device-port} \ - --exec-server-task=${exec-task} \ - -T typed ${root} $(task-create) $(task-resume) -module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - -# title Debian GNU/Hurd (oskit-mach) -# root (hd3,0) -# kernel /boot/kernel-ide -- root=hd0s1 -# module /hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T device ${root-device} $(task-create) $(task-resume) -# module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - -# title Debian GNU/Hurd (oskit-mach w/ remote debugging) -# root (hd3,0) -# kernel /boot/kernel-ide -d GDB_COM=1 BAUD=9600 -- root=hd0s1 -# module /hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T device ${root-device} $(task-create) $(task-resume) -# module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - diff --git a/Hurd/InstallNotes.mdwn b/Hurd/InstallNotes.mdwn deleted file mode 100644 index 2fc7958a..00000000 --- a/Hurd/InstallNotes.mdwn +++ /dev/null @@ -1,295 +0,0 @@ -Items of interest during install not mentioned elsewhere include the following. Arranged in the same order as Neal Walfield's [install guide](http://web.walfield.org/papers/hurd-installation-guide/english/hurd-install-guide.html). - -**_Currently, [Debian's installation instructions](http://www.debian.org/ports/hurd/hurd-install) are the most up-to-date._**
Note the mirrors mentioned on debian.org have no hurd iso's. The iso's can be found on several mirrors:
\* [Main mirror](http://ftp.debian-ports.org/debian-cd/)
\* [French mirror I](ftp://ftp.eila.jussieu.fr/pub/Debian-CD/)
\* [French mirror II](ftp://ftp.duckcorp.org/hurdfr/hurd/)
\* [Canada mirror](http://www.superunprivileged.org/debian-cd/)
- -## Table of Contents - -%TOC% - -## 1. Overview - Where we are going - -There are currently four methods to install GNU - -1. Tarball - Neal Walfield's [guide](http://web.walfield.org/papers/hurd-installation-guide/english/hurd-install-guide.html) is excellent and available in several formats. It is the guide that the Hurd community always references first. The GNU official [installation page](http://www.gnu.org/software/hurd/install.html) is the canonical reference. See [[Distrib/TarballNotesHome]] for more info. -2. [[Distrib/BochsEmulator]] is an x86 emulator similar to the propietary [[Distrib/VmWare]] (which is not supported). See the [[Distrib/BochsEmulator]] page for more info. The Bochs project hosts a preinstalled GNU image that is periodicaly updated. You can get the latest one [here](http://sourceforge.net/project/showfiles.php?group_id=12580). -3. [CD-ROM iso images](http://www.debian.org/ports/hurd/hurd-cd) CD-ROM installs are becoming more and more popular. The CDs are based on the most current tarball at release time. See [[Distrib/CDNotesHome]] for more info. -4. The [crosshurd](http://packages.debian.org/crosshurd/) Debian package, which can be used instead of a tarball to install the base system. This is the recommended way to proceed. - -* References to a `cross-install` script can nowadays be completely ignored by anyone not a maintainer. It is only used when creating a new tarball. - -## 2. Real Estate or Finding A Home - -For those who do not happen to have an available partition or an extra hard drive, this can be the longest step. In this case, we will need to repartition the hard drive. One solution is to use GNU's partition editor, Parted. It features not only basic partition editing, but also partition resizing and moving functions. It can be found at . The manual is quite complete and includes several tutorials. Also there's a frontend called [nparted](http://packages.debian.org/unstable/utils/nparted.html) to simplify usage. - -The Hurd can only support partition sizes of up to approximately one gigabyte; anything much larger than this will not work. This limitation is a design decision that was made several years ago in which the file system server maps the entire partition into virtual memory. As the amount of virtual memory available on an ia32 is only four gigabytes of which only two gigabytes are available to the application and, of that, a significant portion is reserved for the code, the stack and the heap, the final, maximum contiguous virtual memory area that is left is generally about one gigabyte. This limitation is scheduled to be remove. Several other items, however, currently have a slightly higher priority. - -Having said that, a single one gigabyte partition is more than enough for a working system. Many, however, prefer at least two partitions: one for a root partition and another for a home partition. This latter scheme is highly advised for developers interested in debugging Hurd servers. - -The Hurd supports several extensions to the ext2fs file system format. Foremost among these are passive translators and a fourth set of permission bits for unknown users. In order to take advantage of these features, however, the owner of the partition must be set to Hurd. `mke2fs`, unless specifically overridden on the command line, will set the owner to whatever system core it is running on. As the Hurd will diligently respect this setting, we must be careful to set this appropriately or the Hurd may fail in subtle ways. Be aware that even if a file system is owned by a particular system core, others may still use it; they just may not be able to use certain extensions. - -To create a file system, we use `mke2fs` and pass it `-o hurd` to designate the Hurd as the owner of the new file system. For instance: - - mke2fs -o hurd /dev/DEVICE - -**_Note:_** You may wish to add a `-b 4096` option to `mke2fs` (the default is chosen depending on the size of the partition, and the support for block size 1024 is buggy). The command to check the block size is `tune2fs -l /dev/hda9` under GNU/Linux. - -## 3. The Boot Loader - Getting GRUB - -GRUB is the bootloader of the GNU system, and it's currently the only one that supports the multiboot standard, necessary to boot the Hurd. - -A word about GRUB. Unlike traditional boot loaders on the x86, such as LILO, GRUB is very powerful. It has a command line interface, bootp, dummy terminal support and a plethora of other features. In addition, it can boot most any operating system. If you have ever booted an alpha or sparc, you will understand what GRUB can do. Therefore, do not be scared: GRUB is better. You will like it. You will not go back. - -To find GRUB, visit . Here, there is a source tarball and a floppy image. If you choose to download the tarball, it is a normal configure, make and make install. Included is a wonderfully complete manual on how GRUB works. Read it. If, on the other hand, you choose to download the floppy image, it is sufficient to dump it to a floppy disk to get a working GRUB: - - dd if=grub-boot-VERSION.image of=/dev/fd0 - -You can always install GRUB onto your hard drive at a later date. - -For instructions on using GRUB, see either the info documentation or the quick reference notes on this wiki: - -* [[Distrib/GrubNotes]] - quick reference - -## 4. Cross Install - Cross Installing GNU - -The recommended way to cross install the Hurd is by using the [crosshurd](http://packages.debian.org/crosshurd) Debian package. Unfortunately, it's broken right now (2003-10-10), so you'll have to use the old tarball method. - -Download the base system `gnu.tar.gz` from or . - -The tarball is setup to extract everything into the current directory. After mounting the partition and changing to the mount point, we just need to extract the archive. In the following example, we assume that the root partition is mounted on `/gnu`. - - cd /gnu - tar --same-owner -xvzpf ~/gnu.tar.gz - -**_NOTE:_** This should NOT be confused with the `cross-install` script method. It is only used by maintainers when creating a new tarball. - -## 5. Booting GNU - -Now things are setup to boot GNU for the first time. Verify that the GRUB boot disk is in the drive and reboot. If all goes well, a GRUB menu will be displayed. Hit c for the GRUB command line. - -First, the root file system needs to be set. GRUB uses a partition nomenclature that is a bit different from either GNU or GNU/Linux: both IDE and SCSI drives are named `(hdN)`. `N` is the drive number (zero based) as reported by the BIOS. That is, GRUB makes no distinction between IDE and SCSI disks. The partitions, like the disks, are also indexed numerically from zero: `(hdN,M)`. If this sounds bad, relax: GRUB is also helpful. - -To determine on which file system a particular file resides, one method is to use the find command. When issued this command, GRUB searches on each file system for the specified file and prints where is was found. Here we search for the kernel, `/boot/gnumach.gz`. - - grub> find /boot/gnumach.gz - (hd0,0) - -As we can see, GRUB is indicating that `/boot/gnumach.gz` is on `(hd0,0)`. Thus, we set the root respectively: - - grub> root (hd0,0) - Filesystem type is ext2fs, partition type 0x83 - -Next, GNU Mach needs to be loaded. In addition to loading the binary, at least one option, the root partition, must be specified. This will be used by the Hurd itself. As such, it must be in terms that the Hurd can understand. - -GNU Mach labels disks starting at zero. IDE drives are prefixed with hd, while SCSI disks are prefixed with sd. Like GNU/Linux, drives are number by their position on the controller. For instance, the primary master is `hd0` and the secondary slave is `hd3`. Partitions use the BSD slice naming convention, and append `sM` to the drive name to indicate a given partition. Note that `M` is a one, not zero, based index. The slice number is simple to calculate: just increment what you used for GRUB by one. - -Since the Hurd has not yet been configured, it must be run in single user mode. Adding a `-s` to the kernel command line is all that is required. - -Thus, continuing with the above example and assuming that the first drive in the master on the secondary controller, we would have: - - grub> kernel /boot/gnumach.gz root=device:hd2s1 -s - [Multiboot-elf, ...] - -NOTE: If after running this command you see GRUB Error 28, according to the [GRUB Troubleshooting](http://www.gnu.org/software/grub/manual/grub.html#Troubleshooting) documentation, you may need to tell grub that you have more memory by using the uppermem command. For example, if you have 256MB of RAM and running **displaymem** within GRUB shows that you have less memory than that, you can type **uppermem 262144** to tell GRUB about the additional memory. - -Next, the root file system server and the exec server must be loaded. This is done using GRUB's boot module capability. The parameters are the semantics by which the kernel passes some important values to the servers. - - grub> module /hurd/ext2fs.static \ - --multiboot-command-line=${kernel-command-line} \ - --host-priv-port=${host-port} \ - --device-master-port=${device-port} \ - --exec-server-task=${exec-task} -T typed ${root} \ - $(task-create) $(task-resume) - - [Multiboot-module 0x1c4000, 0x2cfe6a bytes] - grub> module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - [Multiboot-module 0x494000, 0x27afe bytes] - -**_Important:_** each module string should be asingle separate line _or_ line wrapped with a backslash at the end of each line. Remember to make sure there are **_no trailing spaces!_** Adding this to GRUB's `menu.lst` file as soon as possible is advised. - -Finally, GNU can be booted: - - grub> boot - -Sit back and watch the messages. This is actually more important than one might think as there is a bug in GNU Mach whereby hitting a key during the boot process causes the kernel to panic. - -If GNU fails to boot, it could be due to shared IRQs: GNU Mach does not play well with these. You can verify your situation by looking at, for instance, the `/proc/interrupts` file under GNU/Linux. Also, as GNU Mach does not support loadable kernel modules, many of the drivers are compiled into the default kernel. If you have old peripherals, this can be a significant problem: a device may respond badly to a probe intended for a different device. Building a new kernel with only the required devices drivers will usually solve this problem. GNU Mach is easily cross compiled. If you are running Debian, try the `gcc-i386-gnu` package. - -If this does not help, explore the resources listed at the end of this document. Finally, ask on the appropriate mailing list. - -There are some cavaets to the boot process: - -* **IMPORTANT!** Remember when first booting into your freshly un-tarred distribution, you must pass the `-s` option to `/boot/gnumach.gz`. Failure to do so means that you won't get single-user mode. -* **IMPORTANT2!** Add the `--readonly` flag to the file system server in your GRUB `menu.lst` file. This is a work-around to get `fsck` working properly. Don't forget, everything must be on ONE line, or ended with a backslash! -* **IMPORTANT3!** If you have created the filesystem with a later version of e2fsprogs than the one installed in the tarball, it **might** happen that fsck fails and you can't boot multiuser. The workaround is to copy `/bin/true` into `/sbin/e2fsck` and `/sbin/fsck.ext2`, then boot multiuser and install the latest e2fsprogs. - - title GNU (kernel GNUmach 1.3) - root (hdX,Y) - kernel /boot/gnumach.gz root=device:hdXs(Y+1) - module /hurd/ext2fs.static --readonly \ - --multiboot-command-line=${kernel-command-line} \ - --host-priv-port=${host-port} \ - --device-master-port=${device-port} \ - --exec-server-task=${exec-task} \ - -T typed ${root} $(task-create) $(task-resume) - module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - -Where `hdX,Y` is the appropriate hard disk and partition number, in GRUB format. `hdXs(Y+1)` is the GNUmach format - because Mach partitions start at 1, unlike GRUB partitions that start on 0 (zero). - -It is important that each module string is only a single separate line, or by escaping the EOL (end of line) with a back slash. Remember though to make sure there are **_no trailing spaces!_** - -**_GRUB floppy and iso images:_** These are available from . These have been built with the correct strings and only the root and boot partitions names need to be editied. - -## 6. Native Install - Finishing the Installation - -Once a prompt comes up, and any time that the the Hurd is in single user mode, it is necessary to set the terminal type: - - export TERM=mach - -(Repeat this each time you boot in single user mode) - -Be warned that CONTROL-C and family will not work in single user mode. - -We can now run the native-install script. This will configure the packages and set up several important translators: - - ./native-install - -Right before the script terminates, it will indicate that it needs to be run a second time. Follow its instructions and reboot using the reboot command. Again, go into single user mode. - -Now it is advisable to enable swap. The mach kernel dislikes running without swap and is unlikely to last through the installation, especially on systems with little physical RAM. Although you can enable swap later on after running `./native-install` for the second time, turning swap on early increases your probability of getting there. - -This will start the default pager, create a device corresponding to the swap partition, and turn swap on on that partition: - - /hurd/mach-defpager - cd /dev - ./MAKEDEV hdXsY - swapon /dev/hdXsY - cd / - -**IMPORTANT!** When enabling swap please be very sure that the partition really is swap. If you point `swapon` to a data partition it will use that for swap, overwriting any data you may have there. - -Now run `./native-install` for the second time and go through a series of prompts. - -Next, edit `/etc/fstab` to add the home partition and swap space. By default, `nano` is the only editor installed by the the base distribution (not `ae` nor `vi`). It is very important that swap space be used: the Hurd will be an order of magnitude more stable. Note that the Hurd can transparently share a swap partition with Linux, the kernel, but will happily page to any device including a raw partition such as your home partition. - -Here is an example `/etc/fstab` file: - - # - /dev/hd2s1 / ext2 rw 0 1 - /dev/hd2s2 /home ext2 rw 0 2 - /dev/hd2s3 none swap sw 0 0 - -Remember to create any devices using the `MAKEDEV` command. - -When you first boot, your `/home` directory will _not_ be auto-mounted. You must set a passive translator on that node to access that partition. The correct syntax for this is:
`settrans -p /home /hurd/ext2fs /dev/hd2s2` - -To mount an nfs partition, use the nfs translator. When run as non-root, the translator will connect, for obvious reasons, to the nfs server on a port above 1024. For this to succeed under GNU/Linux, the insecure option must be added to the export line. Here is an example `/etc/exports` file: - - /home 192.168.1.2(rw,insecure) - -To mount this from a GNU box: - - settrans -cgap /home /hurd/nfs 192.168.1.1:/home - -## 7. Configuration - Making the System Usable - -**NOTE**: _If you are using the Debian distribution of Hurd, you also **want** to read_ **_Debian [[running/debian/after_install]]_** - -* After you install, you'll want to do several _important_ things: - * Run `passwd` to give the root user a password. By default, root does not have one. - * Run `adduser` to give yourself a user account. _Do not_ use root indiscriminately. - * Run `MAKEDEV` to create devices in `/dev` for your hard disk and other required devices. - * Since the Hurd does not use `ld.so.conf`, you will want to specify where the X Window System keeps its libraries. Do this by adding the following line to your `/etc/profile`:
`export LD_LIBRARY_PATH='/lib:/usr/X11R6/lib'` - * run `/etc/cron.daily/find` to allow `locate` to function. - -* [[Network]] - * Hopefully Mach will recognize your hardware. If it doesn't you have to recompile in most cases. - * copy over your `/etc/resolv.conf` from GNU/Linux to allow your DNS to resolve correctly. - -* Prepare system for new packages.If you are running Debian GNU/Hurd: - * a recommended `/etc/apt/sources.list`:
deb unreleased main
deb unstable main
deb-src unstable main
- * a newer `/etc/apt/sources.list`:
deb unstable main contrib
deb-src unstable main contrib
deb unreleased main
deb-src unreleased main
- * There are some extremely useful cross-platform 'apt' tricks that can be used to get packages when using Debian GNU/Linux (possibly others) for installation on GNU. This is especially useful if your GNUMach doesn't recognize your network card. The steps are covered in the file `/usr/share/doc/apt-doc/offline` which has been used by several Hurd developers successfully. - * create an `/etc/apt/apt.conf.offline` like [[AptConfOffline]]. - * consider setting up a few [[CrossPlatformAliases]] for use under Debian GNU/Linux while the Debian GNU/Hurd partitions are mounted. - * select the `apt` method from within dselect. - -* [[Xfree86]] - -* New packages - Hopefully you are able to get your network working but since the default GNUMach is only configured for a few ethernet cards you may need to recompile your GNUMach to get it working with your network hardward. - * Install these extremely useful packages - * `dialog` -- Debconf uses this for interactivity. You should install this first to allow you to configure other packages as they are installed. - * It's a very good idea to bring your packages up to date by running: `apt-get update && apt-get dist-upgrade` - * Some recommended packages - * `screen` -- A terminal multiplexer is important because the Hurd does not yet have virtual consoles. Runs with GNU/Linux too. - * `anacron` -- good to run cron jobs for a machine that is not on all the time. - * `emacs21` -- a powerful editor. - * `cvs` -- Concurrent Version System, you'll probably need this soon. - * `bzip2, zip, unzip` -- compression tools. - * `build-essential` -- preparing to build software. - * `gnu-standards` -- GNU coding and package standards. - -* Some packages use an erroneous dependency on `libc6-dev`. This is incorrect because libc6 is specific to GNU/Linux. The corresponding package for GNU is `libc0.3-dev`. If you find a package that is uninstallable due to a `libc6[-dev]` dependency, please send a bug report with a patch that fixes it. It is important that you don't hack your package system to workaround such problems, because that way you won't be able to spot them when they arrive. See the [[Distrib/PortingIssues]] for details about the problem and [[Distrib/BtsFiling]] for details on sending bug reports. -* Edit your `/etc/inetd.conf` and comment out all the services you don't need. Services that probably don't need to be running are `ftp`, `telnet`, `shell`, `login`, and `exec`. -* There appears to be a bug in `libnss-db` that causes networking to fail. To work around this edit `/etc/nsswitch.conf` and remove the `db` entries. (See ) - -## 8. Final Words - The FAQ - -* [[FAQ]] - More than frequently asked questions - -* [Hurd FAQ](http://web.walfield.org/papers/hurd-faq/) - -* [[KnownHurdLimits]] - Limitations of the GNU operating system - -## 9. Works Cited - Referenced Materials - -On Sept 20, 2002 [[Main/DeepakGoel]] (a self-proclaimed newbie) posted a link to his personal [step-by-step installation](http://24.197.159.102/~deego/pub/hurd/install-guide/install.txt). The parent directory has additional material. - -Tarball Notes: [[Distrib/TarballNotes20020816]] [[Distrib/TarballNotes20020523]] - -CD-ROM Notes: [[Distrib/CDNotesJ2]] - -Others who wish to post summaries of their installation experiences are encouraged to do so. The installer methods, package dependencies and file locations frequently do change without warning. - ----- - -## Licensing - - This work is based on the hard work by [countless Hurd users](http://web.walfield.org/papers/hurd-installation-guide/THANKS), documented and maintained by Neal H. Walfield. See the original for both reference and its licensing at - -The license for Neals work is under the [GNU GPL](http://web.walfield.org/papers/hurd-installation-guide/COPYING). However, in the Hurd Wiki license all content under the GNU FDL. (Unless the topic is mostly code or otherwise stated in the text.) - -There are currently issues to be resolved around this matter, as far as I understand at least. Until an agreement can be reached this text, and the unclear status of this topic, will remain. The suggestion is to do something like this: - -
-
[[InstallGuide]]
-
Neals Install Guide in its original form
-
[[InstallNotes]]
-
Or [[InstallGuideErrata]] with all user input and additions
-
- -There are several obvious issues with this as I can see - -1. The [[InstallGuide]] must be kept editable by a select few people to avoid the current situation from repeating itself. -2. This loops back and kicks us in the butt because then we get: - 1. Synchronization problems with the original work - 2. Bottle necks: The people with edit access are too busy to synchronize with Neals guide - 3. Diverging guides -3. Annoyed users, we break the tradition of freely editable wiki content and we also have two guides saying different things. - --- [[Main/JoachimNilsson]] - 29 Dec 2002 - -## Blame annotations - - -- [[Main/SimonLaw]] - 29 May 2002
-- [[Main/GrantBow]] - 13 Oct 2002
-- [[Main/JoachimNilsson]] - 14 Nov 2002
-- [[Main/RobertMillan]] - 21 Nov 2002
- -First effort at straightening out the formatting mess ... added references to Neals' original, which this topic has become heavily based on. - --- [[Main/JoachimNilsson]] - 19 Dec 2002
- -Updated to the latest short-comings in the Hurd. - --- [[Main/OgnyanKulev]] - 11 Oct 2003 - --- [[Main/TWikiGuest]] - 07 Dec 2003 () - -Updated iso information diff --git a/Hurd/InteractiveTranslators.mdwn b/Hurd/InteractiveTranslators.mdwn deleted file mode 100644 index 9a0ca7e2..00000000 --- a/Hurd/InteractiveTranslators.mdwn +++ /dev/null @@ -1,31 +0,0 @@ -The following text is from mail by Hurd architect Thomas Bushnell: - -> Thread moved over to bug-hurd since it's about design and not Debian GNU/Hurd per se. Alfred Szmidt had pointed out that a dpkg installation translator (one where you copy a .deb into a directory to install it into the system) cannot be easily written, because Debian package installation scripts are sometimes interactive. -> -> I said that this was a deficiency in the design of the Hurd, and that it would be good to fix it (ultimately) by creating user interaction context widgets which can be passed to servers so that they can safely and securely interact with the user when necessary. -> -> Alfred M. Szmidt writes: -> -> > I think you mean that it is a shortcoming in the design of things that are not or cannot be interactive, filesystems being one such example. I can see it infront of me: stat() poping up a dialog asking me to do something each time it gets called... -> -> No, it's a shortcoming in the design of the Hurd, because many times it **can** be interactive. Of course we don't want stat prompting you ever time it's called, but that's not an excuse for preventing stat from ever prompting you at all. We use all kinds of programs that can be interactive, and needless prompts are bugs, easily fixed. -> -> Please, don't lecture me about the Hurd being perfect; it's not. And this is a shortcoming that can someday be fixed, so we shouldn't pretend it's not a problem. It is. A friend at the AI lab once gave the following dream as an example of a well-functioning system: -> -> You walk up to the workstation and start a complex memory intensive ray-tracing program. It runs out of memory and swap space on the workstation. A dialog pops up informing you of the situation and giving several options: suspend the job until later, kill it, and so forth. (Notice that Unix and the Hurd both simply kill the process or the system here, because the discovery that swap is gone happens so low down that all context has been lost.) -> -> You put a disk in the drive. After putting the disk in, without you doing anything in the dialog, a new option comes up, "I notice you just put a disk in; do you want to use this for additional swap?" You say yes. The process now continues, with part of the swap being on the disk. (Notice that Unix and the Hurd don't make connections like this, having one driver know that something **else** in the system might be waiting for this resource and offering it for use.) -> -> In the middle of the task, you hit the button on the drive and out pops the disk. A notifier pops up on the screen, saying that the necessary swap for your process has been removed from the system, and so the job has been suspended until later, and giving you the option of killing it. You say "OK" (that is, you do not say to kill it), and then you log out. (Note that Unix and the Hurd cannot carry on at all in such a case; failure to satisfy a page-in fault results in utter disaster, not clean behavior. Also, neither control carefully which data is paged to which devices, because all interaction context is gone when pageout decisions are being made, so if you have started paging on this disk, you have probably started paging all kinds of essential system services on it too.) -> -> A week later, you walk up to a different workstation in the cluster, and pop in your disk. The system says, "I notice you have a suspended job that was using this disk for swap space" and allows you to resume it where you left off. (Notice that this requires close interaction between the workstations in the cluster, combined with more driver-level cleverness.) -> -> Now that's a well-functioning system. It requires careful bookkeeping of context, knowledge about how to usefully interact with the user from deep in the bowels of the system, and so forth. The Hurd has the capacity for this kind of thing, because user servers can do arbitrary things, unlike kernel routines in Unix. But we must figure out how to give them all the necessary information about their context. -> -> When I designed the filesystem protocols and the structure of the system, I did not consider this kind of flexibility. I had only the simplest kinds of filesystem translators in mind, ones which were just like Unix filesystems but supporting formats like tar and ar in addition to the typical mass-storage types. It was only a little later that I realized union and shadow translators would be a nice thing (and BSD picked up the idea after I explained it at a Boulder BSD conference). Keeping track of who is using which swap space? Now **that** would be clever, and would be very very nice to have. -> -> The reason that filesystems do not have user context is because I was not sufficiently far-sighted at the time to realize the full flexibility of the translator concept I had created. Now that we know more about that flexibility, it would be nice to start figuring out how to improve it. -> -> Thomas - --- [[Main/OgnyanKulev]] - 21 Mar 2005 diff --git a/Hurd/JoachimNilssonHurdPage.mdwn b/Hurd/JoachimNilssonHurdPage.mdwn deleted file mode 100644 index e4dde2b9..00000000 --- a/Hurd/JoachimNilssonHurdPage.mdwn +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - - - -
- Edit this page
%ATTACHURL%/patch_kit.jpg

Table of Contents

%TOC%
- -## Introduction - -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. - -## Progress - -**_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. - -## Current Project - -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 - -### 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. - - - - - - - - - - - - - - -
PartBrief descriptionDIFFDate
2.2.22-ATA (ALPHA) Adds ATA-100/66 capabilities (alpha release) patch-oskit-linux-2.2.22-ATA-alpha.diff.gz Jan 3, 2003
- -**_Comments:_** - -* Progress is slow. - * Off-board chipsets seem more difficult ... - * PIIX chipset works, tuning included. - ----- - -## Previous Projects - -### 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 - - - - - - - - - - - - - - -
PartBrief descriptionDIFFDate
2.2.22-NET Adds more Linux NIC drivers patch-oskit-linux-2.2.22-net.diff.gz Dec 26, 2002
- -**_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 - -### 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, , 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PartBrief descriptionDIFFDateVerified?
2.2.13 Upgrade from Linux 2.2.12 to 2.2.13 patch-oskit-linux-2.2.13.diff.gz Oct 27, 2002 Yes (1)
2.2.14 Upgrade from Linux 2.2.12 to 2.2.14 patch-oskit-linux-2.2.14.diff.gz Oct 30, 2002 Yes (1)
2.2.15 Upgrade from Linux 2.2.12 to 2.2.15 patch-oskit-linux-2.2.15.diff.gz Oct 31, 2002 Yes (1)
2.2.16 Upgrade from Linux 2.2.12 to 2.2.16 patch-oskit-linux-2.2.16.diff.gz Oct 31, 2002 Yes (1)
2.2.17 Upgrade from Linux 2.2.12 to 2.2.17 patch-oskit-linux-2.2.17.diff.gz Nov 1, 2002 Yes (1)
2.2.18 Upgrade from Linux 2.2.12 to 2.2.18 patch-oskit-linux-2.2.18.diff.gz Nov 1, 2002 Yes (1)
2.2.19 Upgrade from Linux 2.2.12 to 2.2.19 patch-oskit-linux-2.2.19.diff.gz Nov 4, 2002 Yes (1)
2.2.20 Upgrade from Linux 2.2.12 to 2.2.20 patch-oskit-linux-2.2.20.diff.gz Nov 5, 2002 Yes (1)
2.2.21 Upgrade from Linux 2.2.12 to 2.2.21 patch-oskit-linux-2.2.21.diff.gz Nov 5, 2002 Yes (1)
2.2.22 Upgrade from Linux 2.2.12 to 2.2.22 patch-oskit-linux-2.2.22.diff.gz Nov 5, 2002 Yes (1)
2.2.23 Upgrade from Linux 2.2.12 to 2.2.23 [[][patch-oskit-linux-2.2.23.diff.gz]] Not yet  
- -**_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). - -## Future Work - -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. - -### [[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 - -## Comments - -Go Joachim! Great work! - --- [[Main/GrantBow]] - 11 Nov 2002 diff --git a/Hurd/JoachimNilssonHurdPage/patch_kit.jpg b/Hurd/JoachimNilssonHurdPage/patch_kit.jpg deleted file mode 100644 index da5cc147..00000000 Binary files a/Hurd/JoachimNilssonHurdPage/patch_kit.jpg and /dev/null differ diff --git a/Hurd/KernelCousinDebianHurd.mdwn b/Hurd/KernelCousinDebianHurd.mdwn deleted file mode 100644 index 1ff8a698..00000000 --- a/Hurd/KernelCousinDebianHurd.mdwn +++ /dev/null @@ -1,3 +0,0 @@ -[Kernel Traffic](http://www.kerneltraffic.org/) publishes newsletters that track the technical developments of various projects of the Free and Open Source world. [Newsletters for the Hurd development](http://www.kerneltraffic.org/debian-hurd/archives.html) were published, but not anymore. - -Updated status. -- [[Main/OgnyanKulev]] - 18 Sep 2004 diff --git a/Hurd/KnownHurdLimits.mdwn b/Hurd/KnownHurdLimits.mdwn deleted file mode 100644 index 51d66b50..00000000 --- a/Hurd/KnownHurdLimits.mdwn +++ /dev/null @@ -1,20 +0,0 @@ -* ~1.5 GB ext2 file system size limit - * The problem is fixed in the Debian GNU/Hurd distribution but not the official sources, see [this email](http://lists.debian.org/debian-hurd/2007/07/msg00087.html) - * See [[ExtTwoSize]] - -* Many Unsupported Devices. - * See [[Mach/HardwareCompatabilityList]] - -* Entropy. Mach does not yet gather entropy and thus there are no /dev/random and /dev/urandom nodes. - There are needed by OpenSSH. - * In progress, see [[translator/random]] - -* No DHCP client - * promising information [Jan 2005](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html), needs an update - * See [[DhcpClient]] - need to update TCP/IP server. - -* Missing bits of POSIX - * See [[Distrib/SystemAPILimits]] - -* Stability issues - * [[ZallocPanics]] diff --git a/Hurd/LuisBustamanteHurdPage.mdwn b/Hurd/LuisBustamanteHurdPage.mdwn deleted file mode 100644 index abbf1531..00000000 --- a/Hurd/LuisBustamanteHurdPage.mdwn +++ /dev/null @@ -1,11 +0,0 @@ -Nothing much to see right now, I'll add some stuff I'm working in the near future! :) - -Cheers, - --- [[Main/LuisBustamante]] - 16 May 2002 - -After making some trivial/incorrect patches (thanks Neal :) for building um-pppd with gcc 3.0.4 in Debian (see [\#147085](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=147085&repeatmerged=yes)) this weekend I'll finally give it a try, I got an external modem... anyway serial drivers seem to be broken in GNUmach iirc, I won't get much more than 300b/s :). - -Keep Hurding! - --- [[Main/LuisBustamante]] - 17 May 2002 diff --git a/Hurd/MakeImage.mdwn b/Hurd/MakeImage.mdwn deleted file mode 100644 index 95b928c4..00000000 --- a/Hurd/MakeImage.mdwn +++ /dev/null @@ -1,60 +0,0 @@ -## Make a disk image - -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< 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 - -## 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 - -## Booting Qemu - - qemu -user-net -isa -boot d -cdrom grub.iso -hda gnu.img - -The switch `-isa` is for current gnumach.gz on hda. - --- [[Main/JoachimNilsson]] - 11 Apr 2005 diff --git a/Hurd/PosixThreads.mdwn b/Hurd/PosixThreads.mdwn deleted file mode 100644 index f031b56f..00000000 --- a/Hurd/PosixThreads.mdwn +++ /dev/null @@ -1,21 +0,0 @@ -## POSIX Threads for the Hurd - -One of the features the Hurd has been lacking up til now is support for POSIX threads, pthreads. It has been the show stopper for porting many useful applications and has sometimes been pointed out as one of the bigger problems with the GNU operating system. - -In 2002 however, all this came to an end when Neal Walfield implemented libpthreads for his work on L4 and decided to also make it work on GNUmach. - -Information on the library can be found on Neals web site. - -* - -## Previous Attempts - -Plans to implement pthreads for the Hurd has existed since, at least, 1999. Mark Kettenis [1] began work that was supposed to be useful on Linux as well. His work was continued by Igor Khavikine [2], who implemented most of it. Igor could however not continue his work so it was picked up by Jeroen Dekkers [3] and Ryan Golbeck. Their work can be found on Savannah, . - -1. -2. -3. - ----- - -Initial version -- [[Main/JoachimNilsson]] - 03 Nov 2002 diff --git a/Hurd/PppDaemon.mdwn b/Hurd/PppDaemon.mdwn deleted file mode 100644 index f667d449..00000000 --- a/Hurd/PppDaemon.mdwn +++ /dev/null @@ -1,6 +0,0 @@ -There is no PPP solution present for the Hurd. - -* Filed Debian [um-ppp bug](http://bugs.debian.org/cgi-bin/bugreport.cgi?archive=no\&bug=147085) -* Clemmitt [asked about um-pppd](http://mail.gnu.org/pipermail/help-hurd/2002-October/006664.html) in this thread of 9 posts beginning Oct 10, 2002. - --- [[Main/GrantBow]] - 20 Oct 2002 diff --git a/Hurd/RequirementsForLiveCD.mdwn b/Hurd/RequirementsForLiveCD.mdwn deleted file mode 100644 index 03bd3884..00000000 --- a/Hurd/RequirementsForLiveCD.mdwn +++ /dev/null @@ -1,54 +0,0 @@ -# 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. - -## 1. We need to be able get a bootloader for CDs - -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. - -## 2. We need a bootstrap filesystem translator - -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. - -## 3. We need a ramdisk to enable write access - -I think we could fake this with Farid Hajii's [memfs](http://www.fprintf.net/hurd/) translator and writing an ext2 filesystem to it. - -From the mem-fs README... - -> memfs-1 is a translator that provides a memory-based file of fixed size. This file can, just like bigfile, contain a regular filesystem. - -We could set a mem-fs translator anywhere on the CD you needed write access, including having softlinks to the contents of the root directory and chrooting to this new directory. - -For a quick and dirty memfs, you can do it right now with the following commands: - - # touch ./ramdisk - # touch ./tmpfs - # settrans -a ./ramdisk /hurd/storeio -Tcopy zero:50M - # /sbin/mke2fs -o hurd -b 4096 -F ./ramdisk - # settrans -a tmpfs /hurd/ext2fs.static ./ramdisk - # fsysopts --writable ./tmpfs - # cd tmpfs - # touch somenewfile - -Here we use two files ramdisk, and tmpfs that are already created on a readonly file system. For illustration purposes, they are touched beforehand. We run an active storeio translator on the ramdisk file to give us 50MB of RAM to work with, and then we make an ext2 filesystem on it. - -At this point we'd could copy the contents of the `/var` directory into the tmpfs, and then symlink `/var` to `/tmpfs/var`. The same goes for all other mutable dirs. - -This approach of putting an entire ext2 filesystem in a copy zero'd store has some drawbacks listed [here](http://lists.gnu.org/archive/html/bug-hurd/2000-12/msg00073.html). - -Those are the essentials. Here is a list of the things which would be nice to have for a Live-CD. - -* Knoppix like script for starting up X and [[GraphicEnvironment]] s ([[FluxBox]], Gnome...) -* DHCP support for easy network setup -* Hardware autodetection (Kudzu). -* Knoppix like script for installing to the hard drive or to bootable USB pendrive . -* (add your favorite feature here) - -Here is a mailing-list [thread](http://lists.debian.org/debian-hurd/2003/debian-hurd-200308/msg00172.html) discussing some of these issues. - --- [[Main/GregBuchholz]] - 21 Oct 2003 -- [[Main/NagromNamreh]] - 29 Jan 2004 diff --git a/Hurd/SeenHurd.mdwn b/Hurd/SeenHurd.mdwn deleted file mode 100644 index be9e1aba..00000000 --- a/Hurd/SeenHurd.mdwn +++ /dev/null @@ -1,71 +0,0 @@ -# Hurd Sightings - -#### Table Of Contents - -%TOC% - -## Hurd People Sightings - -
-
[[Mailing_lists]]
-
Available mailing lists
-
[[IRC]]
-
-
-
[[WhoRunsGNU]]
-
-
-
[[HurdDevelopers]]
-
Who's who?
-
[[PersonalHurdPages]]
-
Users with Hurd wiki pages
-
[[UserGroups]]
-
Canadian, French &amp; Russian
-
[[community/Meetings]]
-
Meetings with Hurd developer attendance.
-
[[community/Orkut]]
-
online "community" of interest - 89 members and counting
-
[[community/LiveJournal]]
-
online community
-
- -## Hurd Press Sightings - -Here's a page for links that specifically talk about the Hurd in some way. See also, [[FunnyHurd]]. - -### Searching the Word "Hurd" in Some Famous Sites - -* [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) - -### Single Articles - -* [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 - -### On Cover Pages - -* [freeX #4 2000](http://www.cul.de/data/freex42000inh.pdf) (PDF) - _Die andere Systemphilosophie_ auf Marcus Brinkmann - -%ATTACHURL%/freex42000cg.jpg - -* Linux Magazine France 10 - -%ATTACHURL%/lmf10\_1999.jpg diff --git a/Hurd/SeenHurd/lmf10_1999.jpg b/Hurd/SeenHurd/lmf10_1999.jpg deleted file mode 100644 index 85332658..00000000 Binary files a/Hurd/SeenHurd/lmf10_1999.jpg and /dev/null differ diff --git a/Hurd/SerialConsole.mdwn b/Hurd/SerialConsole.mdwn deleted file mode 100644 index e4e5324d..00000000 --- a/Hurd/SerialConsole.mdwn +++ /dev/null @@ -1,28 +0,0 @@ -# Grub - -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. - -# Hurd - -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. - -# Using the Serial Port - -minicom is popular but sredird has a more integrated feel. - --- [[NealWalfield]] - 12 Dec 2005 diff --git a/Hurd/Shopping.mdwn b/Hurd/Shopping.mdwn deleted file mode 100644 index d9806e93..00000000 --- a/Hurd/Shopping.mdwn +++ /dev/null @@ -1,13 +0,0 @@ -Here are some e-shops from which you can buy stuff: T-Shirts and others. Free Software Foundation Inc. doesn't get percent from these sells. - -* [CafePress](http://www.cafeshops.com/hurd) - --- [[Main/OgnyanKulev]] - 11 Feb 2004 - -Wait, so they are making money off the Hurd and not giving any to the FSF? Uh.... - --- [[Main/GrantBow]] - 27 Feb 2004 - -OK, It was kind a stupid to add this sentence. What about removing it all this sentence? - --- [[Main/OgnyanKulev]] - 27 Feb 2004 diff --git a/Hurd/Translation.mdwn b/Hurd/Translation.mdwn deleted file mode 100644 index a5f78aa5..00000000 --- a/Hurd/Translation.mdwn +++ /dev/null @@ -1,18 +0,0 @@ -\* [[HurdCn]]: - -\* [[HurdNl]]: - -\* [[HurdPl]] : - -\* [[HurdEo]]: - -\* [[HurdHe]] : - -\* [[HurdEs]]: - -\* [[HurdFr]]: - -\* [[HurdIt]]: - -\* [[HurdRu]]: - diff --git a/Hurd/TranslatorExamples.mdwn b/Hurd/TranslatorExamples.mdwn deleted file mode 100644 index 0c2e5741..00000000 --- a/Hurd/TranslatorExamples.mdwn +++ /dev/null @@ -1,61 +0,0 @@ -## Introduction - -Translators are probably the most known feature of the Hurd, the first thing you should show when doing a demo. - -## run - -Couldn't manage to compile it, but allows you to do nice things with eg. fortune. - -## ftpfs - -hurd:~# settrans -c ftp /hurd/ftpfs 128.101.80.131:/ - -hurd:~# cd ftp - -hurd:~/ftp# ls - -debian debian-archive lost+found - -hurd:~/ftp# cd debian - -hurd:~/ftp/debian# ls - -README README.mirrors.txt doc ls-lR.patch.gz - -README.CD-manufacture README.non-US indices pool - -README.html README.pgp ls-lR project - -README.mirrors.html dists ls-lR.gz tools - -hurd:~/ftp/debian# cp README ~ - -hurd:~/ftp/debian# - -You have to specify the server address with its IP, or your computer will buy a farm or something. - -## ftpfs and hostmux - -currently (28/02/2004) not working, but should be. - -hurd:~# settrans -c ftp /hurd/hostmux /hurd/ftpfs / - -hurd:~# cd ftp - -hurd:~/ftp# cd ftp.debian.org - --bash: cd: ftp.debian.org: Computer bought the farm - -hurd:~/ftp# host ftp.debian.org - -ftp.debian.org A 128.101.80.131 - -ftp.debian.org A 208.185.25.38 - -hurd:~/ftp# cd 128.101.80.131 - --bash: cd: 128.101.80.131: Computer bought the farm - -## Articles about translators - -* [The GNU Hurd - Translators by Gael le Mignot](http://kilobug.free.fr/hurd/pres-en/html/node8.html) diff --git a/Hurd/TranslatorPages.mdwn b/Hurd/TranslatorPages.mdwn deleted file mode 100644 index 8e954521..00000000 --- a/Hurd/TranslatorPages.mdwn +++ /dev/null @@ -1,51 +0,0 @@ -
-
[[NeighborHurd]]
-
A concept possible with microkernels.
-
[[InteractiveTranslators]]
-
Translators that interact with user
-
[[TranslatorExamples]]
-
Examples of what you can do with translators
-
[[TranslatorWishList]]
-
Interesting file translator ideas
-
- -Here are the translators that currently exist: - -* [[AuthTranslator]] -* [[CrashTranslator]] -* [[ExecTranslator]] -* [[ExtTwofsTranslator]] - (actually named ext2fs) Ext2 filesystems, also ext2fs.static -* [[FifoTranslator]] - also [[NewfifoTranslator]] (actually named new-fifo) -* [[FirmlinkTranslator]] -* [[FtpfsTranslator]] - ftp as a filesystem -* [[FwdTranslator]] -* [[HelloTranslator]] - also [[HellomtTranslator]] (actually named hello-mt) -* [[HostmuxTranslator]] -* [[IfsockTranslator]] -* [[InitTranslator]] -* [[IsofsTranslator]] -* [[KbdTranslator]] -* [[MachdefpagerTranslator]] - (actually named mach-defpager) -* [[hurd/translator/magic]] -* [[MouseTranslator]] -* [[NfsTranslator]] -* [[NullTranslator]] -* [[PasswordTranslator]] -* [[PfinetTranslator]] - also [[PflocalTranslator]] -* [[ProcTranslator]] -* [[SmbfsTranslator]] -* [[StoreioTranslator]] -* [[StreamioTranslator]] -* [[SymlinkTranslator]] -* [[TermTranslator]] -* [[TmpfsTranslator]] -* [[UfsTranslator]] - also ufs.static -* [[UsermuxTranslator]] - -Here are the contributed translators: - -* [[CryptTranslator]] - - -This is an old list and might need some updating, please check if you have a Hurd system that this list is accurate. - --- [[Main/GrantBow]] - 03 Mar 2004 diff --git a/Hurd/TranslatorWishList.mdwn b/Hurd/TranslatorWishList.mdwn deleted file mode 100644 index 38bd87d9..00000000 --- a/Hurd/TranslatorWishList.mdwn +++ /dev/null @@ -1,193 +0,0 @@ -## Introduction - -The idea behind file system translators is a powerful concept which hasn't recieved much attention in the mainstream computing world. So here is a list of interesting translators I've been able to dream up. I'm sure there are many more ideas floating around out there, so add them to the list! - -The [ferris project](http://witme.sourceforge.net/libferris.web/features.html) has some great ideas and code in the area of userspace dynamic filesystems, as has the [FUSE project](http://fuse.sourceforge.net/). - -## Audio\_cdfs - -A translator which produces a directory of \*.wav files when you have an audio CD in the drive. - -## Ogg - -This translator could be a sub-directory of the Audio\_cdfs translator and it would translate the \*.wav files into Ogg Vorbis/MP3 format. - -## CDDB - -Of course it would be a lot nicer if the above two translators didn't name their files something worthless like track001.ogg. So we would want a translator which would hook up with a database on the web and produce meaningful file names. - -## Crypto - -A cryptographic/steganographic seem like a nice match with the concept of user-land file systems. I like the idea of something like `settrans -a /secure stegfs --mpeg file001.mpg` - -## Revision control - -All of the empty space on your drive is now being wasted. Why not have a revision control translator which tracks changes to your documents? See also [this guy](http://www.linuxjournal.com/article.php?sid=5976). And then you'd do something like `cd /time-machine/2003/sept/14/` to see what your system looked like on the 14th of septempber 2003. - -## CVSFS - -See [cvsFS for Linux](http://cvsfs.sourceforge.net/). This provides a package which presents the CVS contents as mountable file system. It allows to view the versioned files as like they were ordinary files on a disk. There is also a possibility to check in/out some files for editing. A read-only version has been written by Stefan Siegl and is available at [Berlios](http://cvs.berlios.de/cgi-bin/viewcvs.cgi/cvsfs4hurd/cvsfs/). - -## tar and gzip - -Rumor has it that they are on the way. Actually, a tar + gzip/bzip2 translator does exist (although it hasn't been used much...) : see [the Hurdextras project](http://savannah.nongnu.org/projects/hurdextras/) on Savannah. - -## ROM - -How about a translator which makes it look like you can write to read only media (like CDs), or change files which I don't have permission to change. This translator would make it seem like you could copy files to places where you normally couldn't. Think about combining this translator with the ftp translator and the tar and gzip translators. (cd /ftp/gnu.org/gnome.tar.gz/writes\_allowed; make install). It could be that unionfs does this very thing. - -## Super\_FIFO - -It's like a named pipe which is smart enough to start a process everytime something new tries to read from it. For example, let's say I have a script that reads in a JPEG image and spits out a smaller thumbnail \*.jpg to STDOUT. With a standard fifo (`mknod -p fifo`) this would almost works (`script big.jpg > fifo`). But what if there are two processes trying to read the fifo at once? Ick. And of course the standard way only works once without rerunning the command. I'm not quite sure what the syntax should look like, but I'm sure someone out there has a great idea waiting to happen. - -## Perl - -Perl is a wonderful language for hacking together something useful in a short amount of time. No concept is complete without being able to use it in a perl one-liner. And that goes for Hurd translators too. Right? - - #!/usr/bin/perl - use Hurd::translator; - - #file named "two" can produce an endless supply of twos, etc. (a la /dev/zero) - my $i=0; - for $filename ([zero one two three four]) - { - $libtrivfsread_codehash{$filename}= - sub{ $num_bytes=shift; my $data=$i; return chr($data) x $num_bytes; }; - #that's a hash of references to closures - $i++; - } - translator_startup(); - -A Perl translator has been started by [John Edwin Tobey](http://john-edwin-tobey.org/Hurd/) (pith). - -## Source code - -Here's a crazy thought. How about a translator for source code. You have a C source file like `hello.c` which is your normal everyday file. But there's a translator sitting underneath, so when you `cd hello.c` you get a directory with files like `main()` which represent the subroutines in `hello.c`. And of course you should be able to edit/remove those and have it modify the original source. - -## Libraries - -Here's an [idea](http://www.circlemud.org/~jelson/software/fusd/docs/node13.html) from the people making [userspace drivers in Linux](http://www.circlemud.org/~jelson/software/fusd/): - -* "One particularly interesting application of FUSD that we've found very useful is as a way to let regular user-space libraries export device file APIs. For example, imagine you had a library which factored large composite numbers. Typically, it might have a C interface--say, a function called `int *factorize(int bignum)`. With FUSD, it's possible to create a device file interface--say, a device called `/dev/factorize` to which clients can `write(2)` a big number, then `read(2)` back its factors. - -* This may sound strange, but device file APIs have at least three advantages over a typical library API. First, it becomes much more language independent--any language that can make system calls can access the factorization library. Second, the factorization code is running in a different address space; if it crashes, it won't crash or corrupt the caller. Third, and most interestingly, it is possible to use `select(2)` to wait for the factorization to complete. `select(2)` would make it easy for a client to factor a large number while remaining responsive to other events that might happen in the meantime. In other words, FUSD allows normal user-space libraries to integrate seamlessly with UNIX's existing, POSIX-standard event notification interface: `select(2)`." - -## Mail - -Am I off my rocker, or does an IMAP/POP translator sound like a good idea? It would make your remote mail servers look like local ones. Or what about a translator that makes a mbox format mail spool look like a directory. Can anyone think of a good use for an SMTP translator? - -## UUEncode - -How about a UUEncode translator for those places you can only store ASCII. Combine this with a NNTP translator and store your data in someone's Usenet archive. Or since, (as far as I know), there are no size limitations on file names in the Hurd, why not have a filesystem translator whose underlying store is a file name. (Now ls becomes cat). - -## Computation - -This is from the revenge of the command-line department. Make a directory translator whose contents are a result of the computation specified in the directory name. Here's an example... - - $ settrans -a /comp /hurd/computationfs - $ cd "/comp/3+4" - $ ls -l - total 0 - -rw-r--r-- 1 nobody users 0 Oct 16 11:41 7 - $ - $ cd "/comp/sqrt(2)" - $ ls -l - total 0 - -rw-r--r-- 1 nobody users 0 Oct 16 11:42 1.4142135623731 - $ - -...etc. Now think about your favorite GUI HTML editor and using File->Open on the following directory name, ``"/comp/for i in $( find / -name *.html ); do ln -s $i `basename $i`;done"`` Which would produce a directory listing with soft links to all of the \*.html files on your system. You could have all of the comforts of the shell from within that little File->Open dialog box. - -## Other - -Just found Wolfgang J�hrling's translator [wishlist](http://www.8ung.at/shell/trans.html). - -## Bochs - -A translator which works with [Bochs](http://bochs.sourceforge.net/) disk images would be nice. - -## Rollover - -A translator that uses a circular buffer to store log files. The translated node only contains the last N (mega,kilo)bytes. - -## Birthday - -A translator that provides an interface into the birthday program. - -You can cat your calendar, eg. bd/calendar/today bd/calendar/this-week or bd/calendar/this-month. - -And you could write new events into files located in bd/events/DATE/event-name. - -DATE is of the format the birthday expects DD/MM/YYYY. - -The contents of the file are any or none of the following birthday options: ann (An anniversary), bd (A birthday), ev (Some other event), wN (Warn N days in advance of date), toDATE (Event lasts until this DATE), forDAYS (Event runs for DAYS). - -You can optionally just edit the bd/birthdays file if you want to edit the configuration file by hand. It might make sense to write changes from bd/birthdays into ~/.birthdays. - - $ settrans -c bd /hurd/birthday -f ~/.birthdays - $ ls bd/ - birthdays calendar events - $ find bd -print - bd - bd/calendar - bd/calendar/daily - bd/calendar/this-week - bd/calendar/this-month - bd/events - bd/birthdays - $ - -## LVM - -A translator to access block devices from Linux's [Logical Volume Management](http://www.tldp.org/HOWTO/LVM-HOWTO/) would be an useful addition. - - # settrans -cap /dev/VolumeGroup0 /hurd/lvm /dev/PhysicalVolume0 /dev/PhysicalVolume1 ... - # ls /dev/VolumeGroup0/ - home - var - # settrans -cap /home /hurd/ext2fs /dev/VolumeGroup0/home - # settrans -cap /var /hurd/ext2fs /dev/VolumeGroup0/var - -Probably both [LVM2](http://sourceware.org/lvm2/) and the [Device-mapper](http://sourceware.org/dm/) need to be ported. - -## bridging translator - -A [bridging](http://bridge.sourceforge.net/faq.html) translator could improve the Hurd's networking facilities. - - # settrans -cap /dev/br0 /hurd/bridge -i eth0 -i eth1 ... - # settrans -cap /servers/socket/2 /hurd/pfinet -i /dev/br0 -a ... -g ... -m ... - -Perhaps Linux's bridging code and [utilities](http://bridge.sourceforge.net/) can be ported (or glued in) or code from one of the BSDs. - -## SSH translator - -Presenting remote file systems through SSH similar to what gnome-vfs does. - -## SMB translator - -Presenting remote file systems through Samba similar to what gnome-vfs does. Guiseppe Scrivano has worked on this and smbfs is available at [hurdextras](http://savannah.nongnu.org/cgi-bin/viewcvs/hurdextras/smbfs/). - -## Crontab translator - -Presenting a user's crontab in a filesystem where cron entries are files. - -## globlink - -Firmlink to a file according to a filename matching pattern. When a file goes away, the next file that is matched is automatically linked to. - - $ settrans -ac libfoo.so /hurd/globlink '/lib/libfoo*' - -## alphabetfs - -Organize a large group of files by their first letter. Present one subdirectory for each letter in the alphabet. - -## fsysoptsctl - -Send an fsysopts command to a set of translators. When you have a directory full of translators and you want to send each of them the same runtime option, this translator can do it for you. - - $ settrans -ac all /hurd/fsysoptsctl '/tmp/mystuff/*' - $ fsysopts all --update - ----- - --- [[Main/GregBuchholz]] - updated 17 Oct 2003 diff --git a/Hurd/WebHome/hurd_sm_mf.png b/Hurd/WebHome/hurd_sm_mf.png deleted file mode 100644 index 26bb78b5..00000000 Binary files a/Hurd/WebHome/hurd_sm_mf.png and /dev/null differ diff --git a/Hurd/WhoRunsGNU.mdwn b/Hurd/WhoRunsGNU.mdwn deleted file mode 100644 index ad1685b7..00000000 --- a/Hurd/WhoRunsGNU.mdwn +++ /dev/null @@ -1,31 +0,0 @@ -## Who runs GNU in production? - -On an official [GNU Project](http://www.gnu.org/gnu/thegnuproject.html) page I found a quote, attributed to Rabbi Hillel: - -> If I am not for myself, who will be for me? -> ->
-> -> If I am only for myself, what am I? -> ->
-> -> If not now, when? - -There are many now using test installations of Debian GNU/Hurd for testing and development. This page is set aside to list those sites using full GNU systems (GNU/Hurd) for non-testing and non-development purposes. - -## I run GNU! - -
-
Budi Rahardjo
-
http://hurd.indocisc.com, contact at budi@research.indociscNOSPAM.com
-
[[Main/JamesAMorrison]]
-
http://hurd.dyndns.org - -seems to be offline -- [[Community/weblogs/ArneBab]] - 2008-09-02
-
- -### Testing and developer installations - -Installations for testing purposes are listed as [[public_hurd_boxen]]. - -These also contain the wiki server. diff --git a/Hurd/XattrHurd.mdwn b/Hurd/XattrHurd.mdwn deleted file mode 100644 index d3856c1b..00000000 --- a/Hurd/XattrHurd.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -Roland McGrath has made [Linux support for Hurd's extensions to ext2 via Extended Attributes (xattr) interface](http://lists.gnu.org/archive/html/bug-hurd/2004-02/msg00108.html). This is important because it allows Hurd to be completely cross-installed in Linux. - -Michael Banck made some Debian precompiled Linux kernel packages that allow [using this xattr-hurd](http://lists.debian.org/debian-hurd/2004/09/msg00036.html). - --- [[Main/OgnyanKulev]] - 18 Sep 2004 diff --git a/Hurd/Xfree86.mdwn b/Hurd/Xfree86.mdwn deleted file mode 100644 index 617508e5..00000000 --- a/Hurd/Xfree86.mdwn +++ /dev/null @@ -1,109 +0,0 @@ -# Setup XFree86 in GNU - -#### Table Of Content - -%TOC% - -This is a brief helper on how to setup X-Window on GNU. - -### Mouse & Keyboard - -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 - -### Selecting & Configuring Packages - -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. - -### Edit XF86Config-4 - -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" - -### Dynamic Linking - -The Hurd does not use `ld.so.conf`, it is necessary to add the following to `/etc/profile` to be sure that the libraries are found: - - LD_LIBRARY_PATH=/X11R6/lib:$LD_LIBRARY_PATH - -"This is a linker issue. GNU/Hurd expects that \`RPATH' is used, however, Debian takes certain measures to avoid this. Note that this does not cut it for suid binaries because of security implications. We expect to rectify this by using \`RUNPATH', which is specified in the new ELF standard." -- [Why does X not work?](http://www.gnu.org/software/hurd/faq.en.html#q4-8) - -### Starting X - -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. - -### Graphical Environment - -See [[GNOME]] in Hurd . (?) - ----- - -Created. -- [[Main/RobertMillan]] - 21 Nov 2002 - -Some text formatting. -- [[Main/OgnyanKulev]] - 05 Dec 2002 - -Dito. -- [[Main/JoachimNilsson]] - 12 Jan 2003 - -`/hurd/kbd` is no longer supported. -- [[Main/OgnyanKulev]] - 11 Aug 2004 - -`/hurd/mouse` is deprecated. -- [[Main/OgnyanKulev]] - 21 Sep 2004 - --c /dev/cons is now --console-note=/dev/cons -- Sven 01 May 2005 diff --git a/Hurd/ZallocPanics.mdwn b/Hurd/ZallocPanics.mdwn deleted file mode 100644 index 0b00d7ec..00000000 --- a/Hurd/ZallocPanics.mdwn +++ /dev/null @@ -1,43 +0,0 @@ -The Hurd sometimes crashes with a kernel panic saying someting like: "Panic: zalloc failed: zone map exhausted". - -These panics are generally caused by some kind of kernel resource exhaustion, but there are several differnt reasons for that. - -It used to happen very often under heavy disk load (like large compile jobs), or in a reproducible test case by opening a large number of ports to /dev/null and then closing them all very quickly. The reason for this particular problem has been identified a while back: The multithreaded Hurd servers create a new worker thread whenever a new request (RPC) comes in while all existing threads are busy. When the server is hammered with lots of requests -- which happens both under heavy disk load, and when quickly closing many ports to one server -- it will create an absurd number of threads, causing the resource exhaustion. - -The Debian hurd package contains a patch by k0ro (Sergio Lopez), which fixes this by limiting the amount of created threads in a rather simplistic but very effective manner. This patch however hasn't been included in upstream CVS so far. A more elegant solution, suitable for upstream inclusion, would be desirable. - -Some panics still seem to happen in very specific situations, like the one described at . These are probably the result of bugs that cause port leaks, accidental fork bombs, or similar problems. - -In principle, resource exhaustion can also happen by normal use, though this is rather unlikely in the absence of bugs or malicious programs. Nevertheless, all these problems could be avoided (or limited in effect) by introducing some limits on number of processes per user, number of threads and ports per process/user etc. - -Trying to track down causes for the panics, I got some interesting results. (UPDATE: Many of my original observations were clearly related to the server thread explosion problem. To avoid confusion, I now removed these, as this is no longer an open issue.) - -* It all started with someone (probably azeem) mentioning that builing some package always crashes Hurd at the same stage of the Debian packaging process (UPDATE: Almost all of these panics when building packages were a result of the thread explosion and don't happen anymore.) -* Someone (maybe he himself) pointed out that this stage is characterized by many processes being quickly created and destroyed -* Someone else (probably hde) started some experimenting, to get a reproducible test case -* He realized that just starting and killing five child processes in quick succession suffices to kill some Hurd systems -* I tried to confirm this, but it turned out my system is more robust - -As I could never reproduce the problem with a small number of quickly killed processes, I can't say whether this problem still exists. While I could reproduce such an effect with first opening and then very quickly closing many ports (which is more or less what happens when quickly killing many processes), I needed really large numbers of processes/ports for that. The thread throtteling patch fixed my test case; but it seems unlikely that killing only five processes could have caused a thread explosion, so maybe hde's observation was a different problem really... - -I started various other experiments with creating child processes (fork bombs), resulting in a number of interesting observations: - -* Just forking a large number of processes crashes the Hurd reliably (not surprising) -* The number of processes at which the panic occurs is very constant (typicallly +-2) under stable conditions, as long as forking doesn't happen too fast -* The exact number depends on various conditions: - * Run directly from the Mach console, it's around 1040 on my machine (given enough RAM); however, it drops to 940 when started through a raw ssh session, and to 990 when run under screen through ssh (TODO: check number of ports open per process depending on how it is started) UPDATE: In a later test, I got somewhat larger numbers (don't remember exactly, but well above 1000), but still very constant between successive runs. Not sure what effected this change. - * It doesn't depend on whether normal user or root - * With only 128 MiB of RAM, the numbers drop slightly (like 100 less or so); no further change between 256 and 384 MiB - * Lowering zone\_map\_size in mach/kern/zalloc.c reduces the numbers (quite exactly half from 8 MiB to 4 MiB) - * There seems to be some saturation near 16 MiB however: The difference between 8 MiB and 16 MiB is significantly smaller - * Also, with 8 MiB or 4 MiB, the difference between console/ssh/screen becomes much more apparent (500 vs. 800, 250 vs. 400) - * With more than 16 MiB, Mach doesn't even boot -* Creating the processes very fast results in a sooner and less predictable crash (TODO: Check whether this is still the case with thread throtteling?) -* Creating processes recursively (fork only one child which forks the next one etc.) results in faster crash -* rpcinfo shows that child processes have more ports open by default, which is very likely the reason for the above observation -* Opening many ports from a few processes doesn't usually cause a system crash; there are only lots of open() failures and translator faults once some limit is reached... Seems the zalloc-full condition is better caught on open() than on fork() (TODO: investigate this further, with different memory sizes, different zone\_map\_size, different kinds of resources using zalloc etc.) -* After opening/leaking lots of ports to /dev/null (32768 it seems), the NULL translator somehow becomes disfunctional, and a new instance is started - -While most of these Observations clearly show an exhaustion of kernel memory which is not surprising, some of the oddities seem to indicate problems that might deserve further investigation. - --- antrik (Last update: 12 Apr 2007) diff --git a/Mach/AdvancedGrubUsage.mdwn b/Mach/AdvancedGrubUsage.mdwn deleted file mode 100644 index 8e307b4f..00000000 --- a/Mach/AdvancedGrubUsage.mdwn +++ /dev/null @@ -1,42 +0,0 @@ -## Advanced Grub - -[Grub](http://www.gnu.org/software/grub/) is a capable boot loader. This document is intended to capture some of its most interesting features and try to explain them a bit better than the texinfo documentation. - -### Debian Grub - -The Debian grub packages do not have networking enabled, so you have to apt-get the source, modify the debian/rules file to include --enable-network-card and dpkg-buildpackage to get a .deb of grub that supports TFTP. - -1. cd /usr/src/debian -2. apt-get source grub -3. cd grub-\_VERSION\_ -4. Add `--enable-tulip` or similar for your NIC to the `./configure` line of the `configure-stamp` target in the `debian/rules` file. -5. `dpkg-buildpackage` (as `root`) -6. `cd ..` -7. `dpkg -i grub*.deb` -8. cp /lib/grub/\_ARCH\_/\* /boot/grub/, e.g., _ARCH_ is `i386-pc` -9. Edit your `/boot/grub/menu.lst` (see below) -10. If your boot disk is `/dev/hda` ==> `grub-install (hd0)` - -### TFTP Boot - -Using trivial ftp to load a kernel is one of the best features of Grub. Here is how it is done. - -The `menu.lst` can look something like this: - - ifconfig --address=192.168.1.2 --server=192.168.1.1 - root (nd) - kernel /gnu/boot/oskit-mach.gz root=device:hd0s2 -- - root (hd0,1) - 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) - -**Note: Make sure there are NO spaces after the trailing backslases (\\)!!** - -For more information on GNUmach modules lines and installation setup, see [[Hurd/InstallNotes]] - --- [[Main/JoachimNilsson]] - 13 Apr 2005 diff --git a/Mach/BuildingOskitMach.mdwn b/Mach/BuildingOskitMach.mdwn deleted file mode 100644 index 334b0669..00000000 --- a/Mach/BuildingOskitMach.mdwn +++ /dev/null @@ -1,190 +0,0 @@ -## HowTo Build OSKit-Mach - - - - - - -
%TOC% -

-

Introduction

This is a brief "HowTO build OSKit-Mach" (a.k.a GNUmach 2.0). It covers everything from getting the latest sources of both the OSKit and the GNUmach kernel, down to building and debugging them.

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 gnu-20020816.tar.gz or later. See [[Distrib/TarballNotesHome]] for more info.

- -## Getting your hands on the source - -First you need to checkout the relevant sources. It comes in various flavours and the recommended way is to checkout from CVS. - -### 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: - -* Valentine's day 2001 release: - -**_Official Patches:_** - -* Download useful [[OskitPatches]] or on the nearest Debian FTP. - -**_Savannah CVS:_** - -The recommended document for accessing the Savannah OSKit CVS is - -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: - -### GNUmach & Mig Sources - -The recommended document for accessing the Hurd CVS on Savannah is at - -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: - -**_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 - $ cvs -z3 -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/hurd update -Pd -A - -Where `` 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 - -## Building - -The recommended versions of GCC are - -
-
For the OSKit
-
GCC 2.95.X
-
For GNUmach and MiG
-
GCC 3.2
-
- -### 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. - -### Mach Interface Generator - -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 - -### 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 make kernel-DRIVERS, where DRIVERS is DRIVER+DRIVER+...+DRIVER (a list of drivers separated by `+`). DRIVER can be one of: - -* `ide` -* `floppy` -* ethernet\_ETHDRV where ETHDRV is taken from `oskit/oskit/dev/linux_ethernet.h`. -* scsi\_SCSIDRV where SCSIDRV 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. - -## Debugging - -See the [[Mach/RemoteDebugOskitMach]] page. - -## Attachments - -* [[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/Mach/BuildingOskitMach/modules-light.x86.pc b/Mach/BuildingOskitMach/modules-light.x86.pc deleted file mode 100644 index 07818cc5..00000000 --- a/Mach/BuildingOskitMach/modules-light.x86.pc +++ /dev/null @@ -1,236 +0,0 @@ -## -## 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= -## 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/Mach/BuildingOskitMach/modules.x86.pc b/Mach/BuildingOskitMach/modules.x86.pc deleted file mode 100644 index bb27aca3..00000000 --- a/Mach/BuildingOskitMach/modules.x86.pc +++ /dev/null @@ -1,236 +0,0 @@ -## -## 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= -## 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/Mach/OskitMach.mdwn b/Mach/OskitMach.mdwn deleted file mode 100644 index c28f2d89..00000000 --- a/Mach/OskitMach.mdwn +++ /dev/null @@ -1,64 +0,0 @@ -[[toc ]] - -* [[OskitMachStatusList]]: Status and TODO list (deb status) -* [[OskitMachPatches]]: Bleeding edge patches -* [[OskitPatches]]: Useful patches for the OSKit -* [[BuildingOskitMach]]: How to build your own GNUmach kernel -* [[RemoteDebugOskitMach]]: How to use gdb to remote debug the GNUmach kernel - - -## About - -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. - -## Status - -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. - -## Building - -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]]. - -## Starting - -You start Oskit-Mach almost the same way as the old 1.x version of GNUmach. Using [[Hurd/GrubNotes]] 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. - -## Bugs - -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]] - -## Debugging - -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/Mach/OskitMachPatches.mdwn b/Mach/OskitMachPatches.mdwn deleted file mode 100644 index c1e1b068..00000000 --- a/Mach/OskitMachPatches.mdwn +++ /dev/null @@ -1,10 +0,0 @@ -## 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/Mach/OskitMachPatches/patch-gnumach_softclock-wagi.diff.gz b/Mach/OskitMachPatches/patch-gnumach_softclock-wagi.diff.gz deleted file mode 100644 index 3d57b43a..00000000 Binary files a/Mach/OskitMachPatches/patch-gnumach_softclock-wagi.diff.gz and /dev/null differ diff --git a/Mach/OskitMachPatches/patch-gnumach_softint-wagi.diff.gz b/Mach/OskitMachPatches/patch-gnumach_softint-wagi.diff.gz deleted file mode 100644 index 215706b3..00000000 Binary files a/Mach/OskitMachPatches/patch-gnumach_softint-wagi.diff.gz and /dev/null differ diff --git a/Mach/OskitMachStatusList.mdwn b/Mach/OskitMachStatusList.mdwn deleted file mode 100644 index f62e0686..00000000 --- a/Mach/OskitMachStatusList.mdwn +++ /dev/null @@ -1,15 +0,0 @@ -**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/Mach/OskitPatches.mdwn b/Mach/OskitPatches.mdwn deleted file mode 100644 index d189bb6d..00000000 --- a/Mach/OskitPatches.mdwn +++ /dev/null @@ -1,67 +0,0 @@ -## Table of Contents - -%TOC% - -## Flux OS Toolkit - -[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. - -## 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]] - -## 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. - -**_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 - -* Daniel Wagner - PCMCIA support. ([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. - ----- - -## Comments - -Divided this growing topic into sections.
-- [[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/Mach/OskitPatches/patch-oskit-0.97-eepro.diff.gz b/Mach/OskitPatches/patch-oskit-0.97-eepro.diff.gz deleted file mode 100644 index 80d94f3f..00000000 Binary files a/Mach/OskitPatches/patch-oskit-0.97-eepro.diff.gz and /dev/null differ diff --git a/Mach/OskitPatches/patch-oskit-0.97-i_khavki.diff.gz b/Mach/OskitPatches/patch-oskit-0.97-i_khavki.diff.gz deleted file mode 100644 index 2e322de9..00000000 Binary files a/Mach/OskitPatches/patch-oskit-0.97-i_khavki.diff.gz and /dev/null differ diff --git a/Mach/OskitPatches/patch-oskit-0.97-jon_arney.diff.gz b/Mach/OskitPatches/patch-oskit-0.97-jon_arney.diff.gz deleted file mode 100644 index aaf1475a..00000000 Binary files a/Mach/OskitPatches/patch-oskit-0.97-jon_arney.diff.gz and /dev/null differ diff --git a/Mach/OskitPatches/patch-oskit-0.97-kkraemer.diff.gz b/Mach/OskitPatches/patch-oskit-0.97-kkraemer.diff.gz deleted file mode 100644 index 7d75a34e..00000000 Binary files a/Mach/OskitPatches/patch-oskit-0.97-kkraemer.diff.gz and /dev/null differ diff --git a/Mach/OskitPatches/patch-oskit-0.97-sbrk_hack.diff.gz b/Mach/OskitPatches/patch-oskit-0.97-sbrk_hack.diff.gz deleted file mode 100644 index 2fef6632..00000000 Binary files a/Mach/OskitPatches/patch-oskit-0.97-sbrk_hack.diff.gz and /dev/null differ diff --git a/Mach/PortToL4.mdwn b/Mach/PortToL4.mdwn deleted file mode 100644 index fb7f0004..00000000 --- a/Mach/PortToL4.mdwn +++ /dev/null @@ -1,42 +0,0 @@ -**_The Hurd-L4 port has an [official page](http://www.gnu.org/software/hurd/hurd-l4.html) with more up-to-date information_** -- [[Main/OgnyanKulev]] - 05 Feb 2005 - -A group of one being led by Neal H. Walfield is working on porting the Hurd to the pistachio version of the L4 microkernel. This second generation microkernel provides a significantly different API than the one offered by the Mach microkernel, a first generation microkernel. One of the primary goals of the project, outside of porting the Hurd to L4, is to reevaluate the current Hurd abstractions and consider how they can be modified to be more general. - -I have no web page describing my efforts. There is a mailing list[1]. - -[1] - --- Neal Walfield, 18 Sep 2002 - -Neal noted [1] that there are licensing issues being worked out so no code is yet released. His work was performed in the summer of 2002 at Karlsruhe. - -[1] - --- [[Main/GrantBow]] - 21 Sep 2002 - -There are several important pages that are of interest for the L4 & hurd communities. - -* Main L4 home page - -* Hurd on L4 - -* Hurd on L4 - -* - --- [[Main/GrantBow]] - 22 May 2002 - - - --- [[Main/GrantBow]] - 24 Oct 2002 - -There was [discussion in October 2002](http://mail.gnu.org/pipermail/l4-hurd/2002-October/000727.html) about the differences between Hurd on Mach and Hurd on L4 with some interesting URLs. In the thread Okuji [responds](http://mail.gnu.org/pipermail/l4-hurd/2002-October/000728.html) confirming his document is two years old and outdated by the directions that Neal is taking in furthering this effort. The URLs in that email might be helpful to those learning more about Hurd and L4 ideas that were considered yet abandoned. - --- [[Main/GrantBow]] - 04 Jan 2003 - -A "Porting GNU Hurd to L4" website: - -* - --- [[Main/SebastianGabriel]] - 29 Sep 2003 - -The only valid L4-Hurd link on is - --- [[Main/JoachimNilsson]] - 29 Sep 2003 diff --git a/Mach/PosixSemaphores.mdwn b/Mach/PosixSemaphores.mdwn deleted file mode 100644 index be5586bd..00000000 --- a/Mach/PosixSemaphores.mdwn +++ /dev/null @@ -1,13 +0,0 @@ -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)](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/Mach/RemoteDebugOskitMach.mdwn b/Mach/RemoteDebugOskitMach.mdwn deleted file mode 100644 index c260ce25..00000000 --- a/Mach/RemoteDebugOskitMach.mdwn +++ /dev/null @@ -1,195 +0,0 @@ -# Remote Debug GNUmach - -# Table of Contents - -%TOC% - -# Booting oskit-mach with a serial console - -**Original Author:** Igor Khavkine **Last Updated:** Mon Jul 30 17:58:55 EDT 2001 - ----- - -## Introduction - -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). - -## Why? - -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. - -## How? - -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 -- -
-

-

-
-h
-
use serial console:
    -
  • CONS_COM=1 (COM1)
  • -
  • CONS_COM=2 (COM2)
  • -
  • CONS_COM=3 (COM3)
  • -
  • CONS_COM=4 (COM4)
  • -
-
-

-

-
-d
-
enable serial port debugging, optional
-

-

-
GDB_COM=2
-
use a different port other then CONS_COM, default is to use the same as CONS_COM
-

-

-
BAUD=9600
-
use this baud rate, optional, default is 9600
-

-

-
--
-
delimits the arguments passed to the oskit from those to the kernel
-

-

-
root=device:hd0s2
-
tell gnumach which is your root partition, in this case it's hd0s2
-

-

-
-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. - -## Appendix 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 - - #include - #include - - 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 - - kernel_trap(gdb_break_stub,-129,1) - --- end --- - -## References - -* [1] OSKit documentation, section 1.6.3. -* [2] -* [3] -* [4] -* [5] - - 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/ABITransitionStatus.mdwn b/unsorted/ABITransitionStatus.mdwn new file mode 100644 index 00000000..123e8f8c --- /dev/null +++ b/unsorted/ABITransitionStatus.mdwn @@ -0,0 +1,9 @@ +Several transitions have occured recently. + +* [ABI Switch](http://lists.debian.org/debian-hurd/2002/debian-hurd-200204/msg00096.html) from April 17, 2002 + +* [Phase I accomplished](http://lists.debian.org/debian-hurd/2002/debian-hurd-200204/msg00157.html) from April 26, 2002 + +* [status of the ABI transition](http://lists.debian.org/debian-hurd/2002/debian-hurd-200205/msg00242.html) from May 15, 2002 + +-- [[Main/GrantBow]] - 15 May 2002 diff --git a/unsorted/AdvancedGrubUsage.mdwn b/unsorted/AdvancedGrubUsage.mdwn new file mode 100644 index 00000000..8e307b4f --- /dev/null +++ b/unsorted/AdvancedGrubUsage.mdwn @@ -0,0 +1,42 @@ +## Advanced Grub + +[Grub](http://www.gnu.org/software/grub/) is a capable boot loader. This document is intended to capture some of its most interesting features and try to explain them a bit better than the texinfo documentation. + +### Debian Grub + +The Debian grub packages do not have networking enabled, so you have to apt-get the source, modify the debian/rules file to include --enable-network-card and dpkg-buildpackage to get a .deb of grub that supports TFTP. + +1. cd /usr/src/debian +2. apt-get source grub +3. cd grub-\_VERSION\_ +4. Add `--enable-tulip` or similar for your NIC to the `./configure` line of the `configure-stamp` target in the `debian/rules` file. +5. `dpkg-buildpackage` (as `root`) +6. `cd ..` +7. `dpkg -i grub*.deb` +8. cp /lib/grub/\_ARCH\_/\* /boot/grub/, e.g., _ARCH_ is `i386-pc` +9. Edit your `/boot/grub/menu.lst` (see below) +10. If your boot disk is `/dev/hda` ==> `grub-install (hd0)` + +### TFTP Boot + +Using trivial ftp to load a kernel is one of the best features of Grub. Here is how it is done. + +The `menu.lst` can look something like this: + + ifconfig --address=192.168.1.2 --server=192.168.1.1 + root (nd) + kernel /gnu/boot/oskit-mach.gz root=device:hd0s2 -- + root (hd0,1) + 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) + +**Note: Make sure there are NO spaces after the trailing backslases (\\)!!** + +For more information on GNUmach modules lines and installation setup, see [[Hurd/InstallNotes]] + +-- [[Main/JoachimNilsson]] - 13 Apr 2005 diff --git a/unsorted/AptConfOffline.mdwn b/unsorted/AptConfOffline.mdwn new file mode 100644 index 00000000..c4cc85be --- /dev/null +++ b/unsorted/AptConfOffline.mdwn @@ -0,0 +1,28 @@ + APT + { + /* This file belongs in Debian GNU/Hurd's /etc/apt/apt.conf.offline + and will be used when running Debian GNU/Linux. This is only + required when the GNU/Hurd does not have network access. */ + + Architecture "hurd-i386"; + + Get::Download-Only "true"; + }; + + Dir + { + /* Use the disc for state information and redirect the status file from + the /var/lib/dpkg default + assumes Debian GNU/Hurd mounted on /misc/hurd and /var mounted underneath this if necessary */ + + // State::lists should be here, the lists subdirectory. + State "/misc/hurd/var/lib/apt/"; + State::status "/misc/hurd/var/lib/dpkg/status"; + + // Binary caches will be stored locally + Cache::archives "/misc/hurd/var/cache/apt/archives/"; + Cache "/tmp/"; + + // Location of the source list. + Etc "/misc/hurd/etc/apt/"; + }; diff --git a/unsorted/BuildingHurdLiveCD.mdwn b/unsorted/BuildingHurdLiveCD.mdwn new file mode 100644 index 00000000..e2082268 --- /dev/null +++ b/unsorted/BuildingHurdLiveCD.mdwn @@ -0,0 +1,70 @@ +# Recipes for bootable GNU Mach/Hurd Live CD + +## Greg's recipe + +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 , and version 1.16 of mkbimage (I don't exactly remember where I got that from). + +You can grab a copy of it at , 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 + +## Another recipe for a bootable GNU CD + +[screenshot](http:///mycelium.afraid.org/Screenshot2.png) + +### What you'll need + +* 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 + +### HowTo + + # 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` + +## Contents of grub.conf + + 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..334b0669 --- /dev/null +++ b/unsorted/BuildingOskitMach.mdwn @@ -0,0 +1,190 @@ +## HowTo Build OSKit-Mach + + + + + + +
%TOC% +

+

Introduction

This is a brief "HowTO build OSKit-Mach" (a.k.a GNUmach 2.0). It covers everything from getting the latest sources of both the OSKit and the GNUmach kernel, down to building and debugging them.

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 gnu-20020816.tar.gz or later. See [[Distrib/TarballNotesHome]] for more info.

+ +## Getting your hands on the source + +First you need to checkout the relevant sources. It comes in various flavours and the recommended way is to checkout from CVS. + +### 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: + +* Valentine's day 2001 release: + +**_Official Patches:_** + +* Download useful [[OskitPatches]] or on the nearest Debian FTP. + +**_Savannah CVS:_** + +The recommended document for accessing the Savannah OSKit CVS is + +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: + +### GNUmach & Mig Sources + +The recommended document for accessing the Hurd CVS on Savannah is at + +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: + +**_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 + $ cvs -z3 -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/hurd update -Pd -A + +Where `` 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 + +## Building + +The recommended versions of GCC are + +
+
For the OSKit
+
GCC 2.95.X
+
For GNUmach and MiG
+
GCC 3.2
+
+ +### 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. + +### Mach Interface Generator + +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 + +### 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 make kernel-DRIVERS, where DRIVERS is DRIVER+DRIVER+...+DRIVER (a list of drivers separated by `+`). DRIVER can be one of: + +* `ide` +* `floppy` +* ethernet\_ETHDRV where ETHDRV is taken from `oskit/oskit/dev/linux_ethernet.h`. +* scsi\_SCSIDRV where SCSIDRV 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. + +## Debugging + +See the [[Mach/RemoteDebugOskitMach]] page. + +## Attachments + +* [[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= +## 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= +## 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 + +## Reserving partitions + +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 + +
+
"Carlsberg. Probably the best beer in the world."
+
+ +## Bootstrapping + +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. + +## Rebooting + +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. + +## First steps + +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. + +## Logging in + +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. + +## References + +* [[InstallNotes]] +* [[Network]] +* [[Console]] diff --git a/unsorted/CrossPlatformAliases.mdwn b/unsorted/CrossPlatformAliases.mdwn new file mode 100644 index 00000000..06a0e897 --- /dev/null +++ b/unsorted/CrossPlatformAliases.mdwn @@ -0,0 +1,8 @@ + # Aliases assume Debian GNU/Hurd mounted on /misc/hurd + # possibly via autofs /etc/auto.misc configuration and 'cd / && ln -s var/autofs/misc misc' + alias locatehurd="locate -d /misc/hurd/var/lib/locate/locatedb" + alias apt-cachehurd="APT_CONFIG=/misc/hurd/etc/apt/apt.conf.offline apt-cache" + alias apt-gethurd="APT_CONFIG=/misc/hurd/etc/apt/apt.conf.offline apt-get" + # dselect requires APT_CONFIG due to dselect apt method + alias dselecthurd="APT_CONFIG=/misc/hurd/etc/apt/apt.conf.offline dselect --admindir /misc/hurd/var/lib/dpkg/" + alias dpkghurd="dpkg --root=/misc/hurd"= diff --git a/unsorted/DebianX.mdwn b/unsorted/DebianX.mdwn new file mode 100644 index 00000000..00692ca8 --- /dev/null +++ b/unsorted/DebianX.mdwn @@ -0,0 +1,130 @@ +# Setting up X on Debian GNU/Hurd + +#### Table Of Contents + +%TOC% + +This is a brief helper on how to setup X-Windows on Debian GNU/Hurd. + +Obviously this text is taken from the page but I was making such drastic changes, I didn't want to hack up that page. + +### Mouse & Keyboard + +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 + +### Selecting & Configuring Packages + +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. + +### Edit XF86Config-4 + +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. + +### Dynamic Linking + +The Hurd does not use `ld.so.conf`, it is necessary to add the following to `/etc/profile` to be sure that the libraries are found: + + LD_LIBRARY_PATH=/X11R6/lib:$LD_LIBRARY_PATH + +"This is a linker issue. GNU/Hurd expects that \`RPATH' is used, however, Debian takes certain measures to avoid this. Note that this does not cut it for suid binaries because of security implications. We expect to rectify this by using \`RUNPATH', which is specified in the new ELF standard." -- [Why does X not work?](http://www.gnu.org/software/hurd/faq.en.html#q4-8) + +**_CAVEAT 12/28/2004:_** I did not have to do this so can someone verify that this still needs to be done or was it fixed? Thanks! + +### Starting X + +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" + +### Miscellaneous + +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..1599c689 --- /dev/null +++ b/unsorted/DebianXorg.mdwn @@ -0,0 +1,197 @@ +# Setting up Xorg on Debian GNU/Hurd + +#### Table Of Contents + +%TOC% + +This is a brief helper on how to setup Xorg on Debian GNU/Hurd. + +Obviously this text is taken from the page but I was making such drastic changes, I didn't want to hack up that page. + +### Mouse & Keyboard + +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 + +### Selecting & Configuring Packages + +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.** + +### Edit xorg.conf + +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 + +### Starting X + +Finally, run `startx` + +However, there are several caveats to be aware of: + +* `update-menu` does not yet work. As such, there are no fine Debian menus. + +**_WARNING:_** If you get an error about opening the display or a permissions issue, you may need to run the following: + + # dpkg-reconfigure x11-common + +change from "Console Users Only" to "Anybody" + +Good luck and enjoy! + +---- + +-- [[Main/BarryDeFreese]] - 02 Mar 2006 diff --git a/unsorted/DhcpClient.mdwn b/unsorted/DhcpClient.mdwn new file mode 100644 index 00000000..442f4781 --- /dev/null +++ b/unsorted/DhcpClient.mdwn @@ -0,0 +1,42 @@ +# DHCP and the Hurd + +According to the following thread, no port should be needed since all the patches that have been applied, including the one concerning the thread. In fact, the thread finishes without concluding whether the patch has been applied or not. You can grab it in the thread, anyway. + +[Link to thread](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html) + +The thread starts at Jan 4th 2005 until Jan 6th and is only retaken at April 14th in [this thread](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html). + +-- [[Main/ThadeuCascardo]] - 29 Sep 2005 + +No DHCP client has been ported to the Hurd yet. + +[This](http://mail.gnu.org/archive/html/help-hurd/2003-10/msg00016.html) thread on help-hurd has a little more info on what's still needed for DHCP. + +-- [[Main/GregBuchholz]] - 09 Oct 2003 + +Found this [message](http://mail.gnu.org/archive/html/bug-hurd/2003-08/msg00045.html) about DHCP capabilities in the Hurd encouraging. + +-- [[Main/GregBuchholz]] - 03 Sep 2003 + +* Tom Hart began a [discussion ](http://mail.gnu.org/pipermail/help-hurd/2002-October/006643.html) of 14 posts in Oct 2002. + +-- [[Main/GrantBow]] - 20 Oct 2002 + +The beginnings of a DHCP translator is available in the Hurd sources on Savannah: [hurd/trans/pump.c](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/trans/pump.c?rev=1.3&content-type=text/vnd.viewcvs-markup) + +Unfortunately our current TCP/IP stack, the pfinet translator, lacks support for the AF\_PACKET interface as well as sending packets with an IP address of 0.0.0.0. + +Grant Bowman on bug-hurd: + + Herbert Xu (Pump maintainer) told me that to operate correctly, pump + uses the AF_PACKET interface which is only present in 2.2. + + Anyone else know the status of getting these compiled and functional? + +Neal Walfield on bug-hurd replies: + + > Anyone else know the status of getting these compiled and functional? + + We need to be able to send to the DHCP server with ip address 0.0.0.0. + +-- [[Main/JoachimNilsson]] - 12 Nov 2002 diff --git a/unsorted/DistributedServers.mdwn b/unsorted/DistributedServers.mdwn new file mode 100644 index 00000000..cb2dd5bc --- /dev/null +++ b/unsorted/DistributedServers.mdwn @@ -0,0 +1,29 @@ +# Distributed Computing + +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: + +* +* +* + +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. + +---- + +## Document history + +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 @@ +## Ext2 File system limitation + +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:_** + +* (This link is broken. Have been unable to fix it. [[MauriceMcCarthy]] 2 Nov 2004.) +* + +(Searching Beowulf for '2Gb patch' seems to show this still present in the archive but somehow it is not accessible.) diff --git a/unsorted/ExtTwofsTranslator.mdwn b/unsorted/ExtTwofsTranslator.mdwn new file mode 100644 index 00000000..d8f708fc --- /dev/null +++ b/unsorted/ExtTwofsTranslator.mdwn @@ -0,0 +1,4 @@ +* [[ExtTwoSize]] - information about the limitation of partition size +* [[XattrHurd]] - Supports Hurd ext2 format extensions on Linux, images at + +-- [[Main/GrantBow]] - 03 Mar 2004 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 @@ +# 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. + +## Requirements Outline + +### 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. + +### 2. We need a bootstrap filesystem translator + +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. + +### 3. We need a ramdisk to enable write access + +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/FtpfsTranslator.mdwn b/unsorted/FtpfsTranslator.mdwn new file mode 100644 index 00000000..528a10f2 --- /dev/null +++ b/unsorted/FtpfsTranslator.mdwn @@ -0,0 +1,7 @@ +ftpfs lets you access ftp servers via the filesystem. For detailed usage information use `/hurd/ftpfs --help` and `/hurd/ftpfs --usage`. + +### hostmux + +ftpfs ist best used with [[HostmuxTranslator]] + +-- [[Main/PatrickStrasser]] - 13 Jul 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 @@ +## Fun stuff ripped from the Internet + + + + + + + + + + + + + + +
%ATTACHURL%/hurd-windows.gif
Hurd Windows, availble from http://www.hurd.com
%ATTACHURL%/HurdExchange.gif
Exchange your Hurd at http://www.thunderinghurd.com
%ATTACHURL%/HurdCarDeal.jpg
... and we can of course also offer you a great deal on this -91 Chevy! :-)
%ATTACHURL%/HurdLodge.jpg
The many perks of being a Hurd user also includes our own ski lodge!
Hurd House
+
    +
  • Knotty pine kitchen
  • +
  • Spacious kitchen &amp; living room with loft
  • +
  • Leather couch and love seat with a TV &amp; VCR
  • +
  • Outdoor Jacuzzi
  • +
  • Spacious master bedroom/bath upstairs
  • +
  • Twin beds in one room / queen bed in another
  • +
+
%ATTACHURL%/HurdMagician.jpg
From http://www.magicposters.com/buy/h-k.html
%ATTACHURL%/CrystalAwards.jpg
"Wow dude, I saw the Debian Swirl logo on last nights Crystal Awards!"
+ +---- + +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. + +---- + +### Comments + +Created the page. + +-- [[Main/JoachimNilsson]] - 09 Nov 2002 diff --git a/unsorted/FunnyHurd/CrystalAwards.jpg b/unsorted/FunnyHurd/CrystalAwards.jpg new file mode 100644 index 00000000..2daac850 Binary files /dev/null and b/unsorted/FunnyHurd/CrystalAwards.jpg differ diff --git a/unsorted/FunnyHurd/HurdCarDeal.jpg b/unsorted/FunnyHurd/HurdCarDeal.jpg new file mode 100644 index 00000000..9f533384 Binary files /dev/null and b/unsorted/FunnyHurd/HurdCarDeal.jpg differ diff --git a/unsorted/FunnyHurd/HurdExchange.gif b/unsorted/FunnyHurd/HurdExchange.gif new file mode 100644 index 00000000..bbbb4844 Binary files /dev/null and b/unsorted/FunnyHurd/HurdExchange.gif differ diff --git a/unsorted/FunnyHurd/HurdLodge.jpg b/unsorted/FunnyHurd/HurdLodge.jpg new file mode 100644 index 00000000..d13562f5 Binary files /dev/null and b/unsorted/FunnyHurd/HurdLodge.jpg differ diff --git a/unsorted/FunnyHurd/HurdMagician.jpg b/unsorted/FunnyHurd/HurdMagician.jpg new file mode 100644 index 00000000..5ef6509a Binary files /dev/null and b/unsorted/FunnyHurd/HurdMagician.jpg differ diff --git a/unsorted/FunnyHurd/hurd-windows.gif b/unsorted/FunnyHurd/hurd-windows.gif new file mode 100644 index 00000000..5ca7dd74 Binary files /dev/null and b/unsorted/FunnyHurd/hurd-windows.gif differ diff --git a/unsorted/GNOME.mdwn b/unsorted/GNOME.mdwn new file mode 100644 index 00000000..1dbef091 --- /dev/null +++ b/unsorted/GNOME.mdwn @@ -0,0 +1,11 @@ +![gnome-hurd.png](http://people.debian.org/~mbanck/media/gnome-hurd.png) + +GNOME can now be ported with the new [[Pthreads]], but is still being worked on.The packages are at + +deb ./ + +The caveats: + +Some applications are not yet built, not even all the ones from gnome-core. 'apt-get install gnome-applets gnome-control-center gnome-icon-theme gnome-panel gnome-session metacity nautilus scrollkeeper' (along with the above APT source) should get you started. + +See also: [[Xfree86]]. diff --git a/unsorted/GNUstep.mdwn b/unsorted/GNUstep.mdwn new file mode 100644 index 00000000..95b2a622 --- /dev/null +++ b/unsorted/GNUstep.mdwn @@ -0,0 +1,64 @@ +# Setting up GNUstep on the Hurd + +GNUstep is not available on the Debian distribution for GNU/Hurd, but it can be built manually. This is, how to do it. + +#### Prerequisites + +This packages should already be installed (Debian package names in brackets): ffcall (libffcall1, libffcall1-dev), libffi (libffi4), libffi4-dev, openssl (openssl), libtiff (libtiff4), libpng (libpng12-0, libpng3), libjpg (libjpeg62), libxml (libxml1, libxml2, libxml2-dev & dependencies), xslt (libxslt1.1, libxslt1-dev & dependencies), ssl (libssl0.9.8, libssl-dev), libungif4-dev libungif4g, aspell (libaspell15, libaspell-dev, aspell & apspell-[for your language, e. g. en]) windowmaker (wmaker), Objective-C-Compiler (gobjc and depending packages) + +#### Getting the sources + +To do an up-to-date-installation, download the daily snapshot from GNUstep into one new directory and unzip/untar them: + + wget ftp://ftp.gnustep.org/pub/daily-snapshots/core.current.tar.bz2 + +#### Building GNUstep + +Everything needed for the GNUstep base system is included into the expanded tarball. This is how to build it: + +Do the following installation as root! + + cd core/make + ./configure + make && make install + cd .. + . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh (see the dot at the begin!) + cd ../base + ./configure + Edit the file Headers/Additions/GNUstepBase/config.h and add "#define BROKEN_SO_REUSEADDR 1" somewhere + make && make install + cd ../gui + ./configure + make && make install + cd ../back + make && make install + +Now, you've built the GNUstep base system. When you want to start a GNUstep application later or want to build one, open a bash shell and enter this command: + + . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh + +This sets some necessary environment variables. + +#### Building GNUstep apps + +You can find some GNUstep applications here: + +and here: [http://mediawiki.gnustep.org/index.php/Main\_Page](http://mediawiki.gnustep.org/index.php/Main_Page) + +#### Known problems + +##### GNUMail + +After starting GNUMail, you can only once get mails from a pop3-server. If you want to fetch mails again, you have to restart it. + +##### GWorkspace 0.8 + +GWorkspace 0.8 expects a /etc/mtab file. If you want to use it, you must manually make this file. + +Example for a /etc/mtab file: + + /dev/hd0s1 / ext2 rw 1 1 + +---- + +-- Thomas Schlesinger - 03 Mar 2006 diff --git a/unsorted/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) \* + +\*[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:
![diagram.png](%ATTACHURLPATH%/diagram.png) diff --git a/unsorted/GrantBowHurdPage/diagram.png b/unsorted/GrantBowHurdPage/diagram.png new file mode 100644 index 00000000..c8b29047 Binary files /dev/null and b/unsorted/GrantBowHurdPage/diagram.png differ diff --git a/unsorted/GrantBowHurdPage/diagram.xcf b/unsorted/GrantBowHurdPage/diagram.xcf new file mode 100644 index 00000000..76396410 Binary files /dev/null and b/unsorted/GrantBowHurdPage/diagram.xcf differ 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. + + +--- + +

Acknowledgements

+ +

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! + +

+
Hurd software
+
+
Mark Kettenis
+
many GNU C library and Hurd bug fixes and updates
+
Miles Bader
+
paid by the FSF to help make the Hurd usable as a standalone system, + wrote several important translators
+
OKUJI Yoshinori
+
many gnumach bug fixes and updates
+
Roland McGrath
+
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
+
Thomas Bushnell, BSG (formerly Michael I. Bushnell)
+
paid by the FSF as primary architect of the Hurd, current Hurd maintainer
+
UCHIYAMA Yasushi
+
ported XFree86 to the Hurd
+
+ +
Debian GNU/Hurd
+
+
Gordon Matzigkeit
+
paid by the FSF as a liason from GNU to Debian
+
Marcus Brinkmann
+
bootstrapped the Debian GNU/Hurd base set and many packages, liason + from Debian to GNU
+
Santiago Vila
+
support for cross-compiling Debian packages
+
+ +
Documentation
+
+
Derek Upham
+
wrote the original GNU Hurd FAQ
+
Gordon Matzigkeit
+
reorganized and updated the GNU Hurd Reference Manual for release 0.3 +
Matthew C. Vernon
+
wrote the ``Idiot's Guide'' for getting started with the Hurd
+
Matthias Pfisterer
+
reorganized and updated the web site in early 1999
+
Stephen L. Favor
+
current FAQ maintainer
+
Trent Fisher
+
wrote the original version of the Hurd pages
+
+
+ +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! + + + +Copyright (C) 1998 Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111, USA + +Verbatim copying and distribution of this entire article is +permitted in any medium, provided this notice is preserved. diff --git a/unsorted/HurdOnL4.mdwn b/unsorted/HurdOnL4.mdwn new file mode 100644 index 00000000..79e7a714 --- /dev/null +++ b/unsorted/HurdOnL4.mdwn @@ -0,0 +1,173 @@ +# GNU/Hurd on L4 wiki + +## Introduction + +This page is a place for information pertaining to the efforts towards realizing the migration and porting of the [[Hurd]] such that it uses the [L4 Microkernel](http://l4ka.org/). The GNU/Hurd Operating System, sometimes just referred to as the _GNU Operating System_ is a rich and robust collection of programs and utilities which enable you to use your computer to do usefull and or entertaining things. The intent is that most any applicable software package available on the [GNU Website](http://www.gnu.org) (and many others also) will be able to be compiled and run under the resultant operating system. + +At this point (06/20/2004) this is not yet possible. Indeed, the preliminary foundations are still being developed. Nevertheless, this is a volunteer created operating system so those with the knowledge, interest, and spare time are encouraged to study and if possible contribute to the project. + +In [CVS module hurd-l4](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/), there is a [comprehensive list of items that need to be done](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/TODO). + +## Components of the System + +### The L4 Microkernel + +The kernel of an operating system is a fundamental program which provides essential resources from the hardware of the computer to other programs. A kernel typically runs all the time and remains resident in main memory. The amount of functionality and resources which it provides vary tremendously. The [L4 Microkernel](http://l4ka.org/) is an attempt to create a very small high performace core which provides basic memory management, task and context switching, and little else. + +### The Hurd + +The [Hurd](http://www.gnu.org/software/hurd/hurd.html) is a conglomeration of servers and programs which add additional functionality to a microkernel such that it is capable of utilizing additional hardware resources of the computer. It also provides a compatibility layer such that compiling higher level programs is essentially transparent; i.e. when you write a C program and compile it, you need only include standard headers and libraries and for all intents and purposes your generic program will build and run and you need never resort to unportable coding or access to hardware specific methods. + +For a typical user, The Hurd is intended to silently work in the background providing the services and infrastructure which are lacking in the microkernel but are required for higher level programs and libraries to operate. + +### GNU Programs + +For the user, this is what is desired: to run [GNU Software](http://www.gnu.org/). These programs provide a full featured, robust, and extremely effective operating system. A L4/Hurd system should be capable of compiling and executing most any software package available from GNU with little or no modification. + +Some readers may be familiar with GNU/Linux systems. When GNU/L4 is complete it should highly resemble the functionality of such systems as L4 and Hurd effectively replace the Linux kernel. The bulk of the software should be expected to run much as it does presently under the Linux kernel (or gnumach based GNU/Hurd systems). + +## Preparations + +### Build System + +There are no precompiled binaries for Hurd on L4 that I am aware of, so you will need to be able to compile the source code packages in order to experiment with it. While L4Ka will likely build on a variety of compilers and systems, the Hurd may prove troublesome unless it is built using recent GNU compilers and tools. + +I recently used [Debian Unstable](http://www.debian.org) (Sarge) with GNU gcc version 3.3, autoconf version 2.50, and automake version 1.8 to build the system with good results, although other similarly equipped systems with a good development environment, such as [Gentoo](http://www.gentoo.org) or [Slackware](http://www.slackware.com) are reported to work fine also. + +Generally, I would recommend building the packages using any very up-to-date GNU development system. I'm not going to say that you can't compile them using more exotic platforms, but I wouldn't be overly hopefull about it. I have no idea if Pistachio can be compiled under current gnuMach/Hurd systems it might be interesting to try it. + +### Making a Home for L4/Hurd + +Obviously you want to have a home for this little embryonic operating system. Currently, mine is using about 5M for the binaries and headers. If you want the source to reside with the binaries, then allow perhaps another 50M or so, but this is purely optional. + +At the moment, Hurd on L4 can't even see your hard drive, so all you need is a directory on some partition which is visible to the GRUB bootloader. A `/l4hurd` directory on your existing GNU/Linux system is probably fine for now. + +Howevever, if you have some spare disk space or an unused partition, you could optionally create a small partition for the system. This is totally unnecessary at the moment because L4/Hurd lacks hard disk drivers right now, but it is an option. Assuming that you have made some partition **X** with linux _fdisk_, set it to type 83 - Linux and use the following command to initialize it with the classic Hurd extensions: + + + +As noted, this is purely optional, in fact right now you can use any filesystem that GRUB can understand. You can even use TFTP to netboot the system. My current setup takes about 5M for the full install so obviously you don't need much space for this. + +### Boot Loader + +Just like regular GNU/Hurd, you need to use [GNU GRUB](http://www.gnu.org/software/grub/), the _GRand Unified Bootloader_ in order to boot the system. Hopefully you already have it installed, in which case adding the commands for L4/Hurd to your `menu.lst` is quite trivial. + +If you don't have GRUB installed, then you should probably take some time to get it set up. A good place to look for help is on the regular [Debian GNU/Hurd Installation Page](http://www.debian.org/ports/hurd/hurd-install) at the **3\. The Boot Loader** section. + +This is probably a bit superfluous, but you can even display a snazzy little graphic of some type on your GRUB boot menu. Here's a snip from the header of my `menu.lst` which demonstrates how to do this. + + # menu for grub + splashimage (hd0,0)/boot/grub/debian.xpm + foreground bfbfe7 + background 3f3f7f + +In the above example, my `debian.xpm` is just a 640x480 graphic in xpm format (which you can easily create with GIMP). It does add a bit of pizazz to your boot screen :-) + +In fact, I will attach a sample copy of my `menu.lst` here. It has lots of examples for booting a variety of operating systems in it. Remember that my hard drive partitions are unique to my system. + +* [[ATTACHURLmenulst]]: Sample GRUB boot menu + +## Building Hurd on L4 + +### L4Ka Pistachio + +#### Getting the Sources + +I used the latest version of L4Ka, Pistachio version 0.4. It can be obtained from the following website: + +[L4Ka Pistachio Home](http://l4ka.org/projects/pistachio/) + +#### Compiling + +Pistachio is designed to be compiled in a build directory which is independant from the source directory, so you need to create your build directory after unpacking the tarball. Furthermore, you need to pass a couple of special parameters to the configure program to set it up for use with Hurd. Here is what I did on my ia32 system: + +Note: I have my installation set up in `/l4hurd` and I am starting from within the Pistachio source top-level directory. + + $ mkdir build + $ cd build + Building and installing user-level libraries and servers/applications + $ ../user/configure --with-s0-linkbase=0x40000 --prefix=/l4hurd + $ make + $ make install + Building and installing the kernel + $ make -C ../kernel BUILDDIR=`pwd`/kernel + $ cd kernel + $ make menuconfig + $ make + $ mkdir /l4hurd/boot + $ cp ia32-kernel /l4hurd/boot + +Hopefully everything worked and there were no problems. As usual, if the build fails then scrutinize the output from `configure` and install any missing libraries or development packages. + +### CVS l4hurd + +#### Getting the sources + + You need to pull the L4 Hurd sources from the CVS tree on Savannah. The CVS access page is [The GNU/Hurd - CVS (module hurd-l4)](http://savannah.gnu.org/cvs/?group=hurd). In a nutshell, the following commands should retrieve the sources for you: + + $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co hurd-l4 + +#### Compiling + +Take a look at the README, compiling should be quite simple on any state of the art GNU development system. As per the README, and for my example, you would: + + $ autoreconf -f -i -s + $ ./configure --enable-maintainer-mode --prefix=/l4hurd + $ make + $ make install + $ strip physmem/physmem + + $ mkdir /l4hurd/boot + $ cp laden/laden /l4hurd/boot + $ cp wortel/wortel /l4hurd/boot + $ cp physmem/physmem /l4hurd/boot + +Currently (2004/08/09), physmem needs to be stripped to to avoid a memory conflict with wortel; this requirement may be fixed in the future. + +In my case it was slightly more complicated as Debian uses a wrapper system to enable the use of multiple versions of the GNU Autotools. In this case, the trick is to utilize some environment variables on the command line as follows: + + $ ACLOCAL=aclocal-1.8 AUTOMAKE=automake-1.8 autoreconf -f -i -s + +As above, hopefully this will compile cleanly; otherwise, scroll up, read any error messages, and correct them by installing required packages of the proper version. Any bad compilation problems are most likely due to you either missing or using a wrong version of something. + +## Installing + +The binaries are now installed into `/l4hurd`. All that remains is to add an entry into GRUB's `menu.lst` in order to test it out. Here's an example from my system where I have `/l4hurd` on `/dev/hda9` in my Linux system: + + title GNU Hurd on L4Ka Pistachio 0.4 + root (hd0,8) + kernel /boot/laden -D + module /boot/ia32-kernel + module /libexec/l4/sigma0 + module /boot/wortel -D + module /boot/physmem -D + module /boot/physmem + module /boot/physmem + module /boot/physmem + module /boot/physmem + +It might strike you a little odd that there are five physmem modules. This is done because wortel currently (2004/08/09) expects exactly five modules and the other modules (like the task server, auth server, etc.) have not been implemented yet. Therefore the physmem module is used as a dummy module. + +## Booting + +For me at least, I got some nifty messages and then it dropped into a simple debugging mode. As far as I know, thats all there is right now. + +Read, build, learn, code... + +--todo: add more here. + +## Experimenting + +Well, thats why you did all of this, certainly not to do anything else. Use that debugger and get experimenting. + +--todo: things to do wth the debugger + +## Conclusion + +If you followed these steps, you most likely have built and booted the latest version of Hurd on L4. I would encourage you to subscribe to the mailing list at the following URL and help in the efforts to get this nifty system up to speed: + +[l4-hurd mailing list](http://lists.gnu.org/mailman/listinfo/l4-hurd) + +And finally, this is a wiki, meaning that **you** have the ability to edit and modify this page. If you want to fix something, add more information, new sub-pages, whatever, feel free to do so. This is a great way to get a doc base up fast and keep it current, so use it like its supposed to be and have fun with Hurd on L4! + +-- [[Main/BDouglasHilton]] - 20 Jun 2004 diff --git a/unsorted/HurdOnL4/menu.lst b/unsorted/HurdOnL4/menu.lst new file mode 100644 index 00000000..3129ea74 --- /dev/null +++ b/unsorted/HurdOnL4/menu.lst @@ -0,0 +1,55 @@ +# menu for grub +splashimage (hd0,0)/boot/grub/debian.xpm +foreground bfbfe7 +background 3f3f7f + +timeout 30 +default 0 + +title Debian Sid with Linux kernel 2.6.5 +root (hd0,1) +kernel /vmlinuz root=/dev/hda2 vga=0x318 + +title Debian Sid with old kernel +root (hd0,1) +kernel /vmlinuz.old root=/dev/hda2 vga=9 + +title Microsoft Windows 2000 +rootnoverify (hd0,3) +chainloader (hd0,3)+1 + +title FreeDOS BETA 8.0 +root (hd0,0) +chainloader +1 + +title GNU Hurd on L4Ka Pistachio 0.4 +root (hd0,8) +kernel /boot/laden -D +module /boot/ia32-kernel +module /libexec/l4/sigma0 +module /boot/wortel -D +module /boot/physmem + +title Debian GNU/Hurd (gnumach) +root (hd0,7) +kernel /boot/kernel.gz root=device:hd0s8 +module /hurd/ext2fs.static --readonly \ + --multiboot-command-line=${kernel-command-line} \ + --host-priv-port=${host-port} \ + --device-master-port=${device-port} \ + --exec-server-task=${exec-task} \ + -T typed ${root} $(task-create) $(task-resume) +module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) + +# title Debian GNU/Hurd (oskit-mach) +# root (hd3,0) +# kernel /boot/kernel-ide -- root=hd0s1 +# module /hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T device ${root-device} $(task-create) $(task-resume) +# module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) + +# title Debian GNU/Hurd (oskit-mach w/ remote debugging) +# root (hd3,0) +# kernel /boot/kernel-ide -d GDB_COM=1 BAUD=9600 -- root=hd0s1 +# module /hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T device ${root-device} $(task-create) $(task-resume) +# module /lib/ld.so.1 /hurd/exec $(exec-task=task-create) + diff --git a/unsorted/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..e4dde2b9 --- /dev/null +++ b/unsorted/JoachimNilssonHurdPage.mdwn @@ -0,0 +1,247 @@ + + + + + + + + + +
+ Edit this page
%ATTACHURL%/patch_kit.jpg

Table of Contents

%TOC%
+ +## Introduction + +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. + +## Progress + +**_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. + +## Current Project + +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 + +### 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. + + + + + + + + + + + + + + +
PartBrief descriptionDIFFDate
2.2.22-ATA (ALPHA) Adds ATA-100/66 capabilities (alpha release) patch-oskit-linux-2.2.22-ATA-alpha.diff.gz Jan 3, 2003
+ +**_Comments:_** + +* Progress is slow. + * Off-board chipsets seem more difficult ... + * PIIX chipset works, tuning included. + +---- + +## Previous Projects + +### 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 + + + + + + + + + + + + + + +
PartBrief descriptionDIFFDate
2.2.22-NET Adds more Linux NIC drivers patch-oskit-linux-2.2.22-net.diff.gz Dec 26, 2002
+ +**_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 + +### 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, , 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PartBrief descriptionDIFFDateVerified?
2.2.13 Upgrade from Linux 2.2.12 to 2.2.13 patch-oskit-linux-2.2.13.diff.gz Oct 27, 2002 Yes (1)
2.2.14 Upgrade from Linux 2.2.12 to 2.2.14 patch-oskit-linux-2.2.14.diff.gz Oct 30, 2002 Yes (1)
2.2.15 Upgrade from Linux 2.2.12 to 2.2.15 patch-oskit-linux-2.2.15.diff.gz Oct 31, 2002 Yes (1)
2.2.16 Upgrade from Linux 2.2.12 to 2.2.16 patch-oskit-linux-2.2.16.diff.gz Oct 31, 2002 Yes (1)
2.2.17 Upgrade from Linux 2.2.12 to 2.2.17 patch-oskit-linux-2.2.17.diff.gz Nov 1, 2002 Yes (1)
2.2.18 Upgrade from Linux 2.2.12 to 2.2.18 patch-oskit-linux-2.2.18.diff.gz Nov 1, 2002 Yes (1)
2.2.19 Upgrade from Linux 2.2.12 to 2.2.19 patch-oskit-linux-2.2.19.diff.gz Nov 4, 2002 Yes (1)
2.2.20 Upgrade from Linux 2.2.12 to 2.2.20 patch-oskit-linux-2.2.20.diff.gz Nov 5, 2002 Yes (1)
2.2.21 Upgrade from Linux 2.2.12 to 2.2.21 patch-oskit-linux-2.2.21.diff.gz Nov 5, 2002 Yes (1)
2.2.22 Upgrade from Linux 2.2.12 to 2.2.22 patch-oskit-linux-2.2.22.diff.gz Nov 5, 2002 Yes (1)
2.2.23 Upgrade from Linux 2.2.12 to 2.2.23 [[][patch-oskit-linux-2.2.23.diff.gz]] Not yet  
+ +**_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). + +## Future Work + +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. + +### [[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 + +## Comments + +Go Joachim! Great work! + +-- [[Main/GrantBow]] - 11 Nov 2002 diff --git a/unsorted/JoachimNilssonHurdPage/patch_kit.jpg b/unsorted/JoachimNilssonHurdPage/patch_kit.jpg new file mode 100644 index 00000000..da5cc147 Binary files /dev/null and b/unsorted/JoachimNilssonHurdPage/patch_kit.jpg differ diff --git a/unsorted/KernelCousinDebianHurd.mdwn b/unsorted/KernelCousinDebianHurd.mdwn new file mode 100644 index 00000000..1ff8a698 --- /dev/null +++ b/unsorted/KernelCousinDebianHurd.mdwn @@ -0,0 +1,3 @@ +[Kernel Traffic](http://www.kerneltraffic.org/) publishes newsletters that track the technical developments of various projects of the Free and Open Source world. [Newsletters for the Hurd development](http://www.kerneltraffic.org/debian-hurd/archives.html) were published, but not anymore. + +Updated status. -- [[Main/OgnyanKulev]] - 18 Sep 2004 diff --git a/unsorted/KnownHurdLimits.mdwn b/unsorted/KnownHurdLimits.mdwn new file mode 100644 index 00000000..51d66b50 --- /dev/null +++ b/unsorted/KnownHurdLimits.mdwn @@ -0,0 +1,20 @@ +* ~1.5 GB ext2 file system size limit + * The problem is fixed in the Debian GNU/Hurd distribution but not the official sources, see [this email](http://lists.debian.org/debian-hurd/2007/07/msg00087.html) + * See [[ExtTwoSize]] + +* Many Unsupported Devices. + * See [[Mach/HardwareCompatabilityList]] + +* Entropy. Mach does not yet gather entropy and thus there are no /dev/random and /dev/urandom nodes. + There are needed by OpenSSH. + * In progress, see [[translator/random]] + +* No DHCP client + * promising information [Jan 2005](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html), needs an update + * See [[DhcpClient]] - need to update TCP/IP server. + +* Missing bits of POSIX + * See [[Distrib/SystemAPILimits]] + +* Stability issues + * [[ZallocPanics]] diff --git a/unsorted/LuisBustamanteHurdPage.mdwn b/unsorted/LuisBustamanteHurdPage.mdwn new file mode 100644 index 00000000..abbf1531 --- /dev/null +++ b/unsorted/LuisBustamanteHurdPage.mdwn @@ -0,0 +1,11 @@ +Nothing much to see right now, I'll add some stuff I'm working in the near future! :) + +Cheers, + +-- [[Main/LuisBustamante]] - 16 May 2002 + +After making some trivial/incorrect patches (thanks Neal :) for building um-pppd with gcc 3.0.4 in Debian (see [\#147085](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=147085&repeatmerged=yes)) this weekend I'll finally give it a try, I got an external modem... anyway serial drivers seem to be broken in GNUmach iirc, I won't get much more than 300b/s :). + +Keep Hurding! + +-- [[Main/LuisBustamante]] - 17 May 2002 diff --git a/unsorted/MakeImage.mdwn b/unsorted/MakeImage.mdwn new file mode 100644 index 00000000..95b928c4 --- /dev/null +++ b/unsorted/MakeImage.mdwn @@ -0,0 +1,60 @@ +## Make a disk image + +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< 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 + +## 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 + +## Booting Qemu + + qemu -user-net -isa -boot d -cdrom grub.iso -hda gnu.img + +The switch `-isa` is for current gnumach.gz on hda. + +-- [[Main/JoachimNilsson]] - 11 Apr 2005 diff --git a/unsorted/OskitMach.mdwn b/unsorted/OskitMach.mdwn new file mode 100644 index 00000000..c28f2d89 --- /dev/null +++ b/unsorted/OskitMach.mdwn @@ -0,0 +1,64 @@ +[[toc ]] + +* [[OskitMachStatusList]]: Status and TODO list (deb status) +* [[OskitMachPatches]]: Bleeding edge patches +* [[OskitPatches]]: Useful patches for the OSKit +* [[BuildingOskitMach]]: How to build your own GNUmach kernel +* [[RemoteDebugOskitMach]]: How to use gdb to remote debug the GNUmach kernel + + +## About + +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. + +## Status + +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. + +## Building + +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]]. + +## Starting + +You start Oskit-Mach almost the same way as the old 1.x version of GNUmach. Using [[Hurd/GrubNotes]] 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. + +## Bugs + +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]] + +## Debugging + +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 @@ +## 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 new file mode 100644 index 00000000..3d57b43a Binary files /dev/null and b/unsorted/OskitMachPatches/patch-gnumach_softclock-wagi.diff.gz differ diff --git a/unsorted/OskitMachPatches/patch-gnumach_softint-wagi.diff.gz b/unsorted/OskitMachPatches/patch-gnumach_softint-wagi.diff.gz new file mode 100644 index 00000000..215706b3 Binary files /dev/null and b/unsorted/OskitMachPatches/patch-gnumach_softint-wagi.diff.gz differ 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..d189bb6d --- /dev/null +++ b/unsorted/OskitPatches.mdwn @@ -0,0 +1,67 @@ +## Table of Contents + +%TOC% + +## Flux OS Toolkit + +[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. + +## 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]] + +## 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. + +**_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 + +* Daniel Wagner - PCMCIA support. ([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. + +---- + +## Comments + +Divided this growing topic into sections.
-- [[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 new file mode 100644 index 00000000..80d94f3f Binary files /dev/null and b/unsorted/OskitPatches/patch-oskit-0.97-eepro.diff.gz differ diff --git a/unsorted/OskitPatches/patch-oskit-0.97-i_khavki.diff.gz b/unsorted/OskitPatches/patch-oskit-0.97-i_khavki.diff.gz new file mode 100644 index 00000000..2e322de9 Binary files /dev/null and b/unsorted/OskitPatches/patch-oskit-0.97-i_khavki.diff.gz differ diff --git a/unsorted/OskitPatches/patch-oskit-0.97-jon_arney.diff.gz b/unsorted/OskitPatches/patch-oskit-0.97-jon_arney.diff.gz new file mode 100644 index 00000000..aaf1475a Binary files /dev/null and b/unsorted/OskitPatches/patch-oskit-0.97-jon_arney.diff.gz differ diff --git a/unsorted/OskitPatches/patch-oskit-0.97-kkraemer.diff.gz b/unsorted/OskitPatches/patch-oskit-0.97-kkraemer.diff.gz new file mode 100644 index 00000000..7d75a34e Binary files /dev/null and b/unsorted/OskitPatches/patch-oskit-0.97-kkraemer.diff.gz differ diff --git a/unsorted/OskitPatches/patch-oskit-0.97-sbrk_hack.diff.gz b/unsorted/OskitPatches/patch-oskit-0.97-sbrk_hack.diff.gz new file mode 100644 index 00000000..2fef6632 Binary files /dev/null and b/unsorted/OskitPatches/patch-oskit-0.97-sbrk_hack.diff.gz differ diff --git a/unsorted/PortToL4.mdwn b/unsorted/PortToL4.mdwn new file mode 100644 index 00000000..fb7f0004 --- /dev/null +++ b/unsorted/PortToL4.mdwn @@ -0,0 +1,42 @@ +**_The Hurd-L4 port has an [official page](http://www.gnu.org/software/hurd/hurd-l4.html) with more up-to-date information_** -- [[Main/OgnyanKulev]] - 05 Feb 2005 + +A group of one being led by Neal H. Walfield is working on porting the Hurd to the pistachio version of the L4 microkernel. This second generation microkernel provides a significantly different API than the one offered by the Mach microkernel, a first generation microkernel. One of the primary goals of the project, outside of porting the Hurd to L4, is to reevaluate the current Hurd abstractions and consider how they can be modified to be more general. + +I have no web page describing my efforts. There is a mailing list[1]. + +[1] + +-- Neal Walfield, 18 Sep 2002 + +Neal noted [1] that there are licensing issues being worked out so no code is yet released. His work was performed in the summer of 2002 at Karlsruhe. + +[1] + +-- [[Main/GrantBow]] - 21 Sep 2002 + +There are several important pages that are of interest for the L4 & hurd communities. + +* Main L4 home page - +* Hurd on L4 - +* Hurd on L4 - +* + +-- [[Main/GrantBow]] - 22 May 2002 + + + +-- [[Main/GrantBow]] - 24 Oct 2002 + +There was [discussion in October 2002](http://mail.gnu.org/pipermail/l4-hurd/2002-October/000727.html) about the differences between Hurd on Mach and Hurd on L4 with some interesting URLs. In the thread Okuji [responds](http://mail.gnu.org/pipermail/l4-hurd/2002-October/000728.html) confirming his document is two years old and outdated by the directions that Neal is taking in furthering this effort. The URLs in that email might be helpful to those learning more about Hurd and L4 ideas that were considered yet abandoned. + +-- [[Main/GrantBow]] - 04 Jan 2003 + +A "Porting GNU Hurd to L4" website: + +* + +-- [[Main/SebastianGabriel]] - 29 Sep 2003 + +The only valid L4-Hurd link on is + +-- [[Main/JoachimNilsson]] - 29 Sep 2003 diff --git a/unsorted/PosixSemaphores.mdwn b/unsorted/PosixSemaphores.mdwn new file mode 100644 index 00000000..be5586bd --- /dev/null +++ b/unsorted/PosixSemaphores.mdwn @@ -0,0 +1,13 @@ +Posix Semaphores are an optional part of pthreads. There is currently an implementation for Neal Walfields libpthread, which is included in the hurd sources tree. This implemention uses a mutex and a condition variable. The implmentation is in the mailing list archives at [ [http://mail.gnu.org/archive/html/bug-hurd/2002-11/msg00316.html](http://mail.gnu.org/archive/html/bug-hurd/2002-11/msg00316.html)](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 @@ +## POSIX Threads for the Hurd + +One of the features the Hurd has been lacking up til now is support for POSIX threads, pthreads. It has been the show stopper for porting many useful applications and has sometimes been pointed out as one of the bigger problems with the GNU operating system. + +In 2002 however, all this came to an end when Neal Walfield implemented libpthreads for his work on L4 and decided to also make it work on GNUmach. + +Information on the library can be found on Neals web site. + +* + +## Previous Attempts + +Plans to implement pthreads for the Hurd has existed since, at least, 1999. Mark Kettenis [1] began work that was supposed to be useful on Linux as well. His work was continued by Igor Khavikine [2], who implemented most of it. Igor could however not continue his work so it was picked up by Jeroen Dekkers [3] and Ryan Golbeck. Their work can be found on Savannah, . + +1. +2. +3. + +---- + +Initial version -- [[Main/JoachimNilsson]] - 03 Nov 2002 diff --git a/unsorted/PppDaemon.mdwn b/unsorted/PppDaemon.mdwn new file mode 100644 index 00000000..f667d449 --- /dev/null +++ b/unsorted/PppDaemon.mdwn @@ -0,0 +1,6 @@ +There is no PPP solution present for the Hurd. + +* Filed Debian [um-ppp bug](http://bugs.debian.org/cgi-bin/bugreport.cgi?archive=no\&bug=147085) +* Clemmitt [asked about um-pppd](http://mail.gnu.org/pipermail/help-hurd/2002-October/006664.html) in this thread of 9 posts beginning Oct 10, 2002. + +-- [[Main/GrantBow]] - 20 Oct 2002 diff --git a/unsorted/RemoteDebugOskitMach.mdwn b/unsorted/RemoteDebugOskitMach.mdwn new file mode 100644 index 00000000..c260ce25 --- /dev/null +++ b/unsorted/RemoteDebugOskitMach.mdwn @@ -0,0 +1,195 @@ +# Remote Debug GNUmach + +# Table of Contents + +%TOC% + +# Booting oskit-mach with a serial console + +**Original Author:** Igor Khavkine **Last Updated:** Mon Jul 30 17:58:55 EDT 2001 + +---- + +## Introduction + +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). + +## Why? + +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. + +## How? + +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 -- +
+

+

+
-h
+
use serial console:
    +
  • CONS_COM=1 (COM1)
  • +
  • CONS_COM=2 (COM2)
  • +
  • CONS_COM=3 (COM3)
  • +
  • CONS_COM=4 (COM4)
  • +
+
+

+

+
-d
+
enable serial port debugging, optional
+

+

+
GDB_COM=2
+
use a different port other then CONS_COM, default is to use the same as CONS_COM
+

+

+
BAUD=9600
+
use this baud rate, optional, default is 9600
+

+

+
--
+
delimits the arguments passed to the oskit from those to the kernel
+

+

+
root=device:hd0s2
+
tell gnumach which is your root partition, in this case it's hd0s2
+

+

+
+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. + +## Appendix 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 + + #include + #include + + 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 + + kernel_trap(gdb_break_stub,-129,1) + --- end --- + +## References + +* [1] OSKit documentation, section 1.6.3. +* [2] +* [3] +* [4] +* [5] + + 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 @@ +# 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. + +## 1. We need to be able get a bootloader for CDs + +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. + +## 2. We need a bootstrap filesystem translator + +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. + +## 3. We need a ramdisk to enable write access + +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/SeenHurd.mdwn b/unsorted/SeenHurd.mdwn new file mode 100644 index 00000000..be9e1aba --- /dev/null +++ b/unsorted/SeenHurd.mdwn @@ -0,0 +1,71 @@ +# Hurd Sightings + +#### Table Of Contents + +%TOC% + +## Hurd People Sightings + +
+
[[Mailing_lists]]
+
Available mailing lists
+
[[IRC]]
+
+
+
[[WhoRunsGNU]]
+
+
+
[[HurdDevelopers]]
+
Who's who?
+
[[PersonalHurdPages]]
+
Users with Hurd wiki pages
+
[[UserGroups]]
+
Canadian, French &amp; Russian
+
[[community/Meetings]]
+
Meetings with Hurd developer attendance.
+
[[community/Orkut]]
+
online "community" of interest - 89 members and counting
+
[[community/LiveJournal]]
+
online community
+
+ +## Hurd Press Sightings + +Here's a page for links that specifically talk about the Hurd in some way. See also, [[FunnyHurd]]. + +### Searching the Word "Hurd" in Some Famous Sites + +* [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) + +### Single Articles + +* [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 + +### On Cover Pages + +* [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 new file mode 100644 index 00000000..85332658 Binary files /dev/null and b/unsorted/SeenHurd/lmf10_1999.jpg differ 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 @@ +# Grub + +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. + +# Hurd + +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. + +# Using the Serial Port + +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/Translation.mdwn b/unsorted/Translation.mdwn new file mode 100644 index 00000000..a5f78aa5 --- /dev/null +++ b/unsorted/Translation.mdwn @@ -0,0 +1,18 @@ +\* [[HurdCn]]: + +\* [[HurdNl]]: + +\* [[HurdPl]] : + +\* [[HurdEo]]: + +\* [[HurdHe]] : + +\* [[HurdEs]]: + +\* [[HurdFr]]: + +\* [[HurdIt]]: + +\* [[HurdRu]]: + diff --git a/unsorted/TranslatorExamples.mdwn b/unsorted/TranslatorExamples.mdwn new file mode 100644 index 00000000..0c2e5741 --- /dev/null +++ b/unsorted/TranslatorExamples.mdwn @@ -0,0 +1,61 @@ +## Introduction + +Translators are probably the most known feature of the Hurd, the first thing you should show when doing a demo. + +## run + +Couldn't manage to compile it, but allows you to do nice things with eg. fortune. + +## ftpfs + +hurd:~# settrans -c ftp /hurd/ftpfs 128.101.80.131:/ + +hurd:~# cd ftp + +hurd:~/ftp# ls + +debian debian-archive lost+found + +hurd:~/ftp# cd debian + +hurd:~/ftp/debian# ls + +README README.mirrors.txt doc ls-lR.patch.gz + +README.CD-manufacture README.non-US indices pool + +README.html README.pgp ls-lR project + +README.mirrors.html dists ls-lR.gz tools + +hurd:~/ftp/debian# cp README ~ + +hurd:~/ftp/debian# + +You have to specify the server address with its IP, or your computer will buy a farm or something. + +## ftpfs and hostmux + +currently (28/02/2004) not working, but should be. + +hurd:~# settrans -c ftp /hurd/hostmux /hurd/ftpfs / + +hurd:~# cd ftp + +hurd:~/ftp# cd ftp.debian.org + +-bash: cd: ftp.debian.org: Computer bought the farm + +hurd:~/ftp# host ftp.debian.org + +ftp.debian.org A 128.101.80.131 + +ftp.debian.org A 208.185.25.38 + +hurd:~/ftp# cd 128.101.80.131 + +-bash: cd: 128.101.80.131: Computer bought the farm + +## Articles about translators + +* [The GNU Hurd - Translators by Gael le Mignot](http://kilobug.free.fr/hurd/pres-en/html/node8.html) diff --git a/unsorted/TranslatorPages.mdwn b/unsorted/TranslatorPages.mdwn new file mode 100644 index 00000000..8e954521 --- /dev/null +++ b/unsorted/TranslatorPages.mdwn @@ -0,0 +1,51 @@ +
+
[[NeighborHurd]]
+
A concept possible with microkernels.
+
[[InteractiveTranslators]]
+
Translators that interact with user
+
[[TranslatorExamples]]
+
Examples of what you can do with translators
+
[[TranslatorWishList]]
+
Interesting file translator ideas
+
+ +Here are the translators that currently exist: + +* [[AuthTranslator]] +* [[CrashTranslator]] +* [[ExecTranslator]] +* [[ExtTwofsTranslator]] - (actually named ext2fs) Ext2 filesystems, also ext2fs.static +* [[FifoTranslator]] - also [[NewfifoTranslator]] (actually named new-fifo) +* [[FirmlinkTranslator]] +* [[FtpfsTranslator]] - ftp as a filesystem +* [[FwdTranslator]] +* [[HelloTranslator]] - also [[HellomtTranslator]] (actually named hello-mt) +* [[HostmuxTranslator]] +* [[IfsockTranslator]] +* [[InitTranslator]] +* [[IsofsTranslator]] +* [[KbdTranslator]] +* [[MachdefpagerTranslator]] - (actually named mach-defpager) +* [[hurd/translator/magic]] +* [[MouseTranslator]] +* [[NfsTranslator]] +* [[NullTranslator]] +* [[PasswordTranslator]] +* [[PfinetTranslator]] - also [[PflocalTranslator]] +* [[ProcTranslator]] +* [[SmbfsTranslator]] +* [[StoreioTranslator]] +* [[StreamioTranslator]] +* [[SymlinkTranslator]] +* [[TermTranslator]] +* [[TmpfsTranslator]] +* [[UfsTranslator]] - also ufs.static +* [[UsermuxTranslator]] + +Here are the contributed translators: + +* [[CryptTranslator]] - + +This is an old list and might need some updating, please check if you have a Hurd system that this list is accurate. + +-- [[Main/GrantBow]] - 03 Mar 2004 diff --git a/unsorted/TranslatorWishList.mdwn b/unsorted/TranslatorWishList.mdwn new file mode 100644 index 00000000..38bd87d9 --- /dev/null +++ b/unsorted/TranslatorWishList.mdwn @@ -0,0 +1,193 @@ +## Introduction + +The idea behind file system translators is a powerful concept which hasn't recieved much attention in the mainstream computing world. So here is a list of interesting translators I've been able to dream up. I'm sure there are many more ideas floating around out there, so add them to the list! + +The [ferris project](http://witme.sourceforge.net/libferris.web/features.html) has some great ideas and code in the area of userspace dynamic filesystems, as has the [FUSE project](http://fuse.sourceforge.net/). + +## Audio\_cdfs + +A translator which produces a directory of \*.wav files when you have an audio CD in the drive. + +## Ogg + +This translator could be a sub-directory of the Audio\_cdfs translator and it would translate the \*.wav files into Ogg Vorbis/MP3 format. + +## CDDB + +Of course it would be a lot nicer if the above two translators didn't name their files something worthless like track001.ogg. So we would want a translator which would hook up with a database on the web and produce meaningful file names. + +## Crypto + +A cryptographic/steganographic seem like a nice match with the concept of user-land file systems. I like the idea of something like `settrans -a /secure stegfs --mpeg file001.mpg` + +## Revision control + +All of the empty space on your drive is now being wasted. Why not have a revision control translator which tracks changes to your documents? See also [this guy](http://www.linuxjournal.com/article.php?sid=5976). And then you'd do something like `cd /time-machine/2003/sept/14/` to see what your system looked like on the 14th of septempber 2003. + +## CVSFS + +See [cvsFS for Linux](http://cvsfs.sourceforge.net/). This provides a package which presents the CVS contents as mountable file system. It allows to view the versioned files as like they were ordinary files on a disk. There is also a possibility to check in/out some files for editing. A read-only version has been written by Stefan Siegl and is available at [Berlios](http://cvs.berlios.de/cgi-bin/viewcvs.cgi/cvsfs4hurd/cvsfs/). + +## tar and gzip + +Rumor has it that they are on the way. Actually, a tar + gzip/bzip2 translator does exist (although it hasn't been used much...) : see [the Hurdextras project](http://savannah.nongnu.org/projects/hurdextras/) on Savannah. + +## ROM + +How about a translator which makes it look like you can write to read only media (like CDs), or change files which I don't have permission to change. This translator would make it seem like you could copy files to places where you normally couldn't. Think about combining this translator with the ftp translator and the tar and gzip translators. (cd /ftp/gnu.org/gnome.tar.gz/writes\_allowed; make install). It could be that unionfs does this very thing. + +## Super\_FIFO + +It's like a named pipe which is smart enough to start a process everytime something new tries to read from it. For example, let's say I have a script that reads in a JPEG image and spits out a smaller thumbnail \*.jpg to STDOUT. With a standard fifo (`mknod -p fifo`) this would almost works (`script big.jpg > fifo`). But what if there are two processes trying to read the fifo at once? Ick. And of course the standard way only works once without rerunning the command. I'm not quite sure what the syntax should look like, but I'm sure someone out there has a great idea waiting to happen. + +## Perl + +Perl is a wonderful language for hacking together something useful in a short amount of time. No concept is complete without being able to use it in a perl one-liner. And that goes for Hurd translators too. Right? + + #!/usr/bin/perl + use Hurd::translator; + + #file named "two" can produce an endless supply of twos, etc. (a la /dev/zero) + my $i=0; + for $filename ([zero one two three four]) + { + $libtrivfsread_codehash{$filename}= + sub{ $num_bytes=shift; my $data=$i; return chr($data) x $num_bytes; }; + #that's a hash of references to closures + $i++; + } + translator_startup(); + +A Perl translator has been started by [John Edwin Tobey](http://john-edwin-tobey.org/Hurd/) (pith). + +## Source code + +Here's a crazy thought. How about a translator for source code. You have a C source file like `hello.c` which is your normal everyday file. But there's a translator sitting underneath, so when you `cd hello.c` you get a directory with files like `main()` which represent the subroutines in `hello.c`. And of course you should be able to edit/remove those and have it modify the original source. + +## Libraries + +Here's an [idea](http://www.circlemud.org/~jelson/software/fusd/docs/node13.html) from the people making [userspace drivers in Linux](http://www.circlemud.org/~jelson/software/fusd/): + +* "One particularly interesting application of FUSD that we've found very useful is as a way to let regular user-space libraries export device file APIs. For example, imagine you had a library which factored large composite numbers. Typically, it might have a C interface--say, a function called `int *factorize(int bignum)`. With FUSD, it's possible to create a device file interface--say, a device called `/dev/factorize` to which clients can `write(2)` a big number, then `read(2)` back its factors. + +* This may sound strange, but device file APIs have at least three advantages over a typical library API. First, it becomes much more language independent--any language that can make system calls can access the factorization library. Second, the factorization code is running in a different address space; if it crashes, it won't crash or corrupt the caller. Third, and most interestingly, it is possible to use `select(2)` to wait for the factorization to complete. `select(2)` would make it easy for a client to factor a large number while remaining responsive to other events that might happen in the meantime. In other words, FUSD allows normal user-space libraries to integrate seamlessly with UNIX's existing, POSIX-standard event notification interface: `select(2)`." + +## Mail + +Am I off my rocker, or does an IMAP/POP translator sound like a good idea? It would make your remote mail servers look like local ones. Or what about a translator that makes a mbox format mail spool look like a directory. Can anyone think of a good use for an SMTP translator? + +## UUEncode + +How about a UUEncode translator for those places you can only store ASCII. Combine this with a NNTP translator and store your data in someone's Usenet archive. Or since, (as far as I know), there are no size limitations on file names in the Hurd, why not have a filesystem translator whose underlying store is a file name. (Now ls becomes cat). + +## Computation + +This is from the revenge of the command-line department. Make a directory translator whose contents are a result of the computation specified in the directory name. Here's an example... + + $ settrans -a /comp /hurd/computationfs + $ cd "/comp/3+4" + $ ls -l + total 0 + -rw-r--r-- 1 nobody users 0 Oct 16 11:41 7 + $ + $ cd "/comp/sqrt(2)" + $ ls -l + total 0 + -rw-r--r-- 1 nobody users 0 Oct 16 11:42 1.4142135623731 + $ + +...etc. Now think about your favorite GUI HTML editor and using File->Open on the following directory name, ``"/comp/for i in $( find / -name *.html ); do ln -s $i `basename $i`;done"`` Which would produce a directory listing with soft links to all of the \*.html files on your system. You could have all of the comforts of the shell from within that little File->Open dialog box. + +## Other + +Just found Wolfgang J�hrling's translator [wishlist](http://www.8ung.at/shell/trans.html). + +## Bochs + +A translator which works with [Bochs](http://bochs.sourceforge.net/) disk images would be nice. + +## Rollover + +A translator that uses a circular buffer to store log files. The translated node only contains the last N (mega,kilo)bytes. + +## Birthday + +A translator that provides an interface into the birthday program. + +You can cat your calendar, eg. bd/calendar/today bd/calendar/this-week or bd/calendar/this-month. + +And you could write new events into files located in bd/events/DATE/event-name. + +DATE is of the format the birthday expects DD/MM/YYYY. + +The contents of the file are any or none of the following birthday options: ann (An anniversary), bd (A birthday), ev (Some other event), wN (Warn N days in advance of date), toDATE (Event lasts until this DATE), forDAYS (Event runs for DAYS). + +You can optionally just edit the bd/birthdays file if you want to edit the configuration file by hand. It might make sense to write changes from bd/birthdays into ~/.birthdays. + + $ settrans -c bd /hurd/birthday -f ~/.birthdays + $ ls bd/ + birthdays calendar events + $ find bd -print + bd + bd/calendar + bd/calendar/daily + bd/calendar/this-week + bd/calendar/this-month + bd/events + bd/birthdays + $ + +## LVM + +A translator to access block devices from Linux's [Logical Volume Management](http://www.tldp.org/HOWTO/LVM-HOWTO/) would be an useful addition. + + # settrans -cap /dev/VolumeGroup0 /hurd/lvm /dev/PhysicalVolume0 /dev/PhysicalVolume1 ... + # ls /dev/VolumeGroup0/ + home + var + # settrans -cap /home /hurd/ext2fs /dev/VolumeGroup0/home + # settrans -cap /var /hurd/ext2fs /dev/VolumeGroup0/var + +Probably both [LVM2](http://sourceware.org/lvm2/) and the [Device-mapper](http://sourceware.org/dm/) need to be ported. + +## bridging translator + +A [bridging](http://bridge.sourceforge.net/faq.html) translator could improve the Hurd's networking facilities. + + # settrans -cap /dev/br0 /hurd/bridge -i eth0 -i eth1 ... + # settrans -cap /servers/socket/2 /hurd/pfinet -i /dev/br0 -a ... -g ... -m ... + +Perhaps Linux's bridging code and [utilities](http://bridge.sourceforge.net/) can be ported (or glued in) or code from one of the BSDs. + +## SSH translator + +Presenting remote file systems through SSH similar to what gnome-vfs does. + +## SMB translator + +Presenting remote file systems through Samba similar to what gnome-vfs does. Guiseppe Scrivano has worked on this and smbfs is available at [hurdextras](http://savannah.nongnu.org/cgi-bin/viewcvs/hurdextras/smbfs/). + +## Crontab translator + +Presenting a user's crontab in a filesystem where cron entries are files. + +## globlink + +Firmlink to a file according to a filename matching pattern. When a file goes away, the next file that is matched is automatically linked to. + + $ settrans -ac libfoo.so /hurd/globlink '/lib/libfoo*' + +## alphabetfs + +Organize a large group of files by their first letter. Present one subdirectory for each letter in the alphabet. + +## fsysoptsctl + +Send an fsysopts command to a set of translators. When you have a directory full of translators and you want to send each of them the same runtime option, this translator can do it for you. + + $ settrans -ac all /hurd/fsysoptsctl '/tmp/mystuff/*' + $ fsysopts all --update + +---- + +-- [[Main/GregBuchholz]] - updated 17 Oct 2003 diff --git a/unsorted/WebHome/hurd_sm_mf.png b/unsorted/WebHome/hurd_sm_mf.png new file mode 100644 index 00000000..26bb78b5 Binary files /dev/null and b/unsorted/WebHome/hurd_sm_mf.png differ diff --git a/unsorted/WhoRunsGNU.mdwn b/unsorted/WhoRunsGNU.mdwn new file mode 100644 index 00000000..ad1685b7 --- /dev/null +++ b/unsorted/WhoRunsGNU.mdwn @@ -0,0 +1,31 @@ +## Who runs GNU in production? + +On an official [GNU Project](http://www.gnu.org/gnu/thegnuproject.html) page I found a quote, attributed to Rabbi Hillel: + +> If I am not for myself, who will be for me? +> +>
+> +> If I am only for myself, what am I? +> +>
+> +> If not now, when? + +There are many now using test installations of Debian GNU/Hurd for testing and development. This page is set aside to list those sites using full GNU systems (GNU/Hurd) for non-testing and non-development purposes. + +## I run GNU! + +
+
Budi Rahardjo
+
http://hurd.indocisc.com, contact at budi@research.indociscNOSPAM.com
+
[[Main/JamesAMorrison]]
+
http://hurd.dyndns.org - +seems to be offline -- [[Community/weblogs/ArneBab]] - 2008-09-02
+
+ +### Testing and developer installations + +Installations for testing purposes are listed as [[public_hurd_boxen]]. + +These also contain the wiki server. 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..617508e5 --- /dev/null +++ b/unsorted/Xfree86.mdwn @@ -0,0 +1,109 @@ +# Setup XFree86 in GNU + +#### Table Of Content + +%TOC% + +This is a brief helper on how to setup X-Window on GNU. + +### Mouse & Keyboard + +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 + +### Selecting & Configuring Packages + +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. + +### Edit XF86Config-4 + +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" + +### Dynamic Linking + +The Hurd does not use `ld.so.conf`, it is necessary to add the following to `/etc/profile` to be sure that the libraries are found: + + LD_LIBRARY_PATH=/X11R6/lib:$LD_LIBRARY_PATH + +"This is a linker issue. GNU/Hurd expects that \`RPATH' is used, however, Debian takes certain measures to avoid this. Note that this does not cut it for suid binaries because of security implications. We expect to rectify this by using \`RUNPATH', which is specified in the new ELF standard." -- [Why does X not work?](http://www.gnu.org/software/hurd/faq.en.html#q4-8) + +### Starting X + +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. + +### Graphical Environment + +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/ZallocPanics.mdwn b/unsorted/ZallocPanics.mdwn new file mode 100644 index 00000000..0b00d7ec --- /dev/null +++ b/unsorted/ZallocPanics.mdwn @@ -0,0 +1,43 @@ +The Hurd sometimes crashes with a kernel panic saying someting like: "Panic: zalloc failed: zone map exhausted". + +These panics are generally caused by some kind of kernel resource exhaustion, but there are several differnt reasons for that. + +It used to happen very often under heavy disk load (like large compile jobs), or in a reproducible test case by opening a large number of ports to /dev/null and then closing them all very quickly. The reason for this particular problem has been identified a while back: The multithreaded Hurd servers create a new worker thread whenever a new request (RPC) comes in while all existing threads are busy. When the server is hammered with lots of requests -- which happens both under heavy disk load, and when quickly closing many ports to one server -- it will create an absurd number of threads, causing the resource exhaustion. + +The Debian hurd package contains a patch by k0ro (Sergio Lopez), which fixes this by limiting the amount of created threads in a rather simplistic but very effective manner. This patch however hasn't been included in upstream CVS so far. A more elegant solution, suitable for upstream inclusion, would be desirable. + +Some panics still seem to happen in very specific situations, like the one described at . These are probably the result of bugs that cause port leaks, accidental fork bombs, or similar problems. + +In principle, resource exhaustion can also happen by normal use, though this is rather unlikely in the absence of bugs or malicious programs. Nevertheless, all these problems could be avoided (or limited in effect) by introducing some limits on number of processes per user, number of threads and ports per process/user etc. + +Trying to track down causes for the panics, I got some interesting results. (UPDATE: Many of my original observations were clearly related to the server thread explosion problem. To avoid confusion, I now removed these, as this is no longer an open issue.) + +* It all started with someone (probably azeem) mentioning that builing some package always crashes Hurd at the same stage of the Debian packaging process (UPDATE: Almost all of these panics when building packages were a result of the thread explosion and don't happen anymore.) +* Someone (maybe he himself) pointed out that this stage is characterized by many processes being quickly created and destroyed +* Someone else (probably hde) started some experimenting, to get a reproducible test case +* He realized that just starting and killing five child processes in quick succession suffices to kill some Hurd systems +* I tried to confirm this, but it turned out my system is more robust + +As I could never reproduce the problem with a small number of quickly killed processes, I can't say whether this problem still exists. While I could reproduce such an effect with first opening and then very quickly closing many ports (which is more or less what happens when quickly killing many processes), I needed really large numbers of processes/ports for that. The thread throtteling patch fixed my test case; but it seems unlikely that killing only five processes could have caused a thread explosion, so maybe hde's observation was a different problem really... + +I started various other experiments with creating child processes (fork bombs), resulting in a number of interesting observations: + +* Just forking a large number of processes crashes the Hurd reliably (not surprising) +* The number of processes at which the panic occurs is very constant (typicallly +-2) under stable conditions, as long as forking doesn't happen too fast +* The exact number depends on various conditions: + * Run directly from the Mach console, it's around 1040 on my machine (given enough RAM); however, it drops to 940 when started through a raw ssh session, and to 990 when run under screen through ssh (TODO: check number of ports open per process depending on how it is started) UPDATE: In a later test, I got somewhat larger numbers (don't remember exactly, but well above 1000), but still very constant between successive runs. Not sure what effected this change. + * It doesn't depend on whether normal user or root + * With only 128 MiB of RAM, the numbers drop slightly (like 100 less or so); no further change between 256 and 384 MiB + * Lowering zone\_map\_size in mach/kern/zalloc.c reduces the numbers (quite exactly half from 8 MiB to 4 MiB) + * There seems to be some saturation near 16 MiB however: The difference between 8 MiB and 16 MiB is significantly smaller + * Also, with 8 MiB or 4 MiB, the difference between console/ssh/screen becomes much more apparent (500 vs. 800, 250 vs. 400) + * With more than 16 MiB, Mach doesn't even boot +* Creating the processes very fast results in a sooner and less predictable crash (TODO: Check whether this is still the case with thread throtteling?) +* Creating processes recursively (fork only one child which forks the next one etc.) results in faster crash +* rpcinfo shows that child processes have more ports open by default, which is very likely the reason for the above observation +* Opening many ports from a few processes doesn't usually cause a system crash; there are only lots of open() failures and translator faults once some limit is reached... Seems the zalloc-full condition is better caught on open() than on fork() (TODO: investigate this further, with different memory sizes, different zone\_map\_size, different kinds of resources using zalloc etc.) +* After opening/leaking lots of ports to /dev/null (32768 it seems), the NULL translator somehow becomes disfunctional, and a new instance is started + +While most of these Observations clearly show an exhaustion of kernel memory which is not surprising, some of the oddities seem to indicate problems that might deserve further investigation. + +-- antrik (Last update: 12 Apr 2007) -- cgit v1.2.3 From dd44be50ebbb0f644a88b5081875956cd3bf9e9f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 10:44:52 +0100 Subject: Fix and add some links. --- getting_help.mdwn | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/getting_help.mdwn b/getting_help.mdwn index 21d4980b..11f56eec 100644 --- a/getting_help.mdwn +++ b/getting_help.mdwn @@ -10,13 +10,20 @@ is included in the section entitled # Essential Documentation -* [[FAQ]] -* [[microkernel/mach/gnumach/Hardware_Compatibility_List]] -* [[Documentation] + * GNU/Hurd [[hurd/FAQ]] + + * Debian GNU/Hurd [[hurd/running/debian/FAQ]] + + * Microkernel [[microkernel/FAQ]] + + * GNU Mach's [[microkernel/mach/gnumach/Hardware_Compatibility_List]] + + * [[Documentation]] + # Forums [[inline pages=asking_questions raw=yes feeds=no]] -* [[Mailing_lists]] -* [[IRC]] + * [[Mailing_lists]] + * [[IRC]] -- cgit v1.2.3 From 4c3a12489e6b24d1f09c7cf63752dff03cb5919f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 10:51:11 +0100 Subject: Also display the time zone. --- ikiwiki.setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ikiwiki.setup b/ikiwiki.setup index a6de93cf..5e649ec9 100644 --- a/ikiwiki.setup +++ b/ikiwiki.setup @@ -80,7 +80,7 @@ IkiWiki::Setup::Standard->import({ # extension to use for html files htmlext => 'html', # strftime format string to display date - timeformat => '%F %T', + timeformat => '%F %T %Z', # UTF-8 locale to use locale => 'C', # put user pages below specified page -- cgit v1.2.3 From 749c26f2b5c6e0230d63e166b1a698699c0f2bfc Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 11:08:43 +0100 Subject: Incorporate text from and extend a bit. --- contributing/web_pages.mdwn | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/contributing/web_pages.mdwn b/contributing/web_pages.mdwn index 0cf55baf..5796d56e 100644 --- a/contributing/web_pages.mdwn +++ b/contributing/web_pages.mdwn @@ -32,6 +32,16 @@ we do have some simple requests. Please try to match the *tone* of your topics and edits with the existing topics. If we all pull in the same direction these pages will be more useful for everyone, especially for our own use. +When you commit changes, either using the web interface or checking them in +into the repository, they'll not become visible on + immediatelly, but first of all only on + instead. The former set of pages, +the official GNU Hurd web appearance, will be updated periodically (but +manually) from the latter one, where every edit is visible immediatelly. This +is so that we have a chance to have the pages make fit for appearance on +`www.gnu.org`, but you are nevertheless able to work on all pages +unrestrictedly. + # Edit Via the Web Interface -- cgit v1.2.3 From fc517d2315c1ef0cf9b624880905eba4a0bb476b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 11:09:10 +0100 Subject: We're now official. --- colophon.mdwn | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/colophon.mdwn b/colophon.mdwn index d9b771a9..b51c2f36 100644 --- a/colophon.mdwn +++ b/colophon.mdwn @@ -47,5 +47,7 @@ TWiki content to [ikiwiki](http://ikiwiki.info). Read # Rev. III -In November 2008, [[Thomas_Schwinge|tschwinge]] imported the Hurd's current web -pages into this repository and made this the official GNU Hurd web appearance. +In November 2008, [[Thomas_Schwinge|tschwinge]] imported the Hurd's old static +web pages into this repository. After a lot of cleansing work, on 2008-11-22 +this repository's pages were installed as the official GNU Hurd web appearance +at . -- cgit v1.2.3 From eaa5c29a2daa5010ce63083cf480027cb3315eb5 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 18:09:22 +0100 Subject: Formatting. --- hurd/building/cross-compiling.mdwn | 76 +++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/hurd/building/cross-compiling.mdwn b/hurd/building/cross-compiling.mdwn index b007928c..8f9f325f 100644 --- a/hurd/building/cross-compiling.mdwn +++ b/hurd/building/cross-compiling.mdwn @@ -33,24 +33,24 @@ installed in the upstream repositories. The following ones are known to work. Others may work as well, but no guarantee is given. Always the preferred version is listed first. -* `src/binutils`: [[GNU_Binutils|binutils]] + * `src/binutils`: [[GNU_Binutils|binutils]] - * CVS `binutils-2_18-branch` + * CVS `binutils-2_18-branch` $ mkdir binutils-2_18-branch $ cd binutils-2_18-branch - $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src \ - co -r binutils-2_18-branch binutils + $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src ↩ + co -r binutils-2_18-branch binutils The sources are rooted in `binutils-2_18-branch/src/`. Also use these commands for updating, instead of the usual `cvs update`. - * The 2.18 release tarball from should + * The 2.18 release tarball from should also be fine, as should be all other recent releases. -* `src/gcc`: [[GNU_Compiler_Collection|gcc]] + * `src/gcc`: [[GNU_Compiler_Collection|gcc]] - * SVN `gcc-4_1-branch` + * SVN `gcc-4_1-branch` $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch @@ -58,10 +58,10 @@ guarantee is given. Always the preferred version is listed first. $ ( cd gcc-4_1-branch/ && contrib/gcc_update --touch ) - * Recent releases of the 4.1 series from + * Recent releases of the 4.1 series from should also be fine. - * SVN `gcc-4_2-branch` + * SVN `gcc-4_2-branch` $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_2-branch @@ -69,18 +69,18 @@ guarantee is given. Always the preferred version is listed first. $ ( cd gcc-4_2-branch/ && contrib/gcc_update --touch ) - * Patches: + * Patches: - * Recent releases of the 4.2 series from + * Recent releases of the 4.2 series from should also be fine, but need the same set of patches as the `gcc-4_2-branch` needs. - * SVN `trunk` -- upcoming 4.3 series + * SVN `trunk` -- upcoming 4.3 series $ svn co svn://gcc.gnu.org/svn/gcc/trunk @@ -88,31 +88,31 @@ guarantee is given. Always the preferred version is listed first. $ ( cd trunk/ && contrib/gcc_update --touch ) - * Patches: + * Patches: -* `src/gnumach`: [[GNU_Mach|microkernel/mach/gnumach]] + * `src/gnumach`: [[GNU_Mach|microkernel/mach/gnumach]] - * CVS `gnumach-1-branch` + * CVS `gnumach-1-branch` - $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd \ - co -r gnumach-1-branch gnumach + $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd ↩ + co -r gnumach-1-branch gnumach $ mv gnumach gnumach-1-branch Prepare: $ ( cd gnumach-1-branch/ && autoreconf -vfi ) -* `src/mig`: [[microkernel/mach/mig/GNU_MIG]] + * `src/mig`: [[microkernel/mach/mig/GNU_MIG]] - * CVS `HEAD` + * CVS `HEAD` $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd co mig @@ -120,55 +120,55 @@ guarantee is given. Always the preferred version is listed first. $ ( cd mig/ && autoreconf -vfi ) -* `src/hurd`: [[GNU_Hurd|hurd]] + * `src/hurd`: [[GNU_Hurd|hurd]] - * CVS `HEAD` + * CVS `HEAD` $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd co hurd -* `src/glibc`: [[GNU_C_Library|glibc]] + * `src/glibc`: [[GNU_C_Library|glibc]] - * CVS `glibc-2_7-branch` + * CVS `glibc-2_7-branch` - $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/glibc \ - co -r glibc-2_7-branch glibc + $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/glibc ↩ + co -r glibc-2_7-branch glibc $ mv libc glibc-2_7-branch - * Patches: + * Patches: - * Recent releases of the 2.7 series from + * Recent releases of the 2.7 series from should also be fine, but need the same set of patches as the `glibc-2_7-branch` needs. -- cgit v1.2.3 From 818f2a6ea74c80bbda8bdd1e841c02d2e8fe653d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 23 Nov 2008 18:10:57 +0100 Subject: Binutils 2.19. --- hurd/building/cross-compiling.mdwn | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hurd/building/cross-compiling.mdwn b/hurd/building/cross-compiling.mdwn index 8f9f325f..8d13a4a7 100644 --- a/hurd/building/cross-compiling.mdwn +++ b/hurd/building/cross-compiling.mdwn @@ -35,6 +35,19 @@ guarantee is given. Always the preferred version is listed first. * `src/binutils`: [[GNU_Binutils|binutils]] + * CVS `binutils-2_19-branch` + + $ mkdir binutils-2_19-branch + $ cd binutils-2_19-branch + $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src ↩ + co -r binutils-2_19-branch binutils + + The sources are rooted in `binutils-2_19-branch/src/`. Also use these + commands for updating, instead of the usual `cvs update`. + + * The 2.19 release tarball from should + also be fine. + * CVS `binutils-2_18-branch` $ mkdir binutils-2_18-branch -- cgit v1.2.3 From 43a193caf31bdb106283fbe3135f2b5e1d6c08d4 Mon Sep 17 00:00:00 2001 From: "Anatoly A. Kazantsev" Date: Sun, 23 Nov 2008 18:29:02 +0100 Subject: CSS improvements. --- local.css | 49 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/local.css b/local.css index 519d0555..966ddcd9 100644 --- a/local.css +++ b/local.css @@ -30,8 +30,7 @@ body { font-family: "Bitstream Vera Sans", sans-serif; - margin: 2px; - padding: 1em; + padding: 0.5em; } p @@ -44,10 +43,7 @@ hr height: 1px; border-style: none; background-color: black; - /* No idea, if this is ``just'' a Firefox bug (looks fine without the - * following statement in konqueror), but it for sure inhibits the `hr's from - * being shifted to the right. */ - margin-left: 0px; + margin-left: 0; } pre @@ -57,6 +53,16 @@ pre padding: 0.5em; } +a +{ + text-decoration: none; +} + +a:hover +{ + border-bottom: 1px dotted blue; +} + /* Put these elements side by side. */ .pagedate, .pagecopyright, @@ -86,9 +92,38 @@ pre background-color: #f0f0f0; } -.actions +.pageheader .actions +{ + background-color: #e7e7e7; + padding: 0em 0.5em 0.3em 0.5em; + border-top: 1px solid #999999; +} + +.pageheader .actions ul +{ + border: none; + padding-top: 0.7em; +} + +.pageheader .actions li +{ + padding: 0.7em 0.7em 0.4em 0.7em; + border: 1px solid #e7e7e7; + border-top: 1px solid #999999; +} + +.pageheader .actions li:hover { background-color: #f0f0f0; + border: 1px solid #999999; + border-top: 1px solid #f0f0f0; + -moz-border-radius-bottomleft: 0.8em; + -moz-border-radius-bottomright: 0.8em; +} + +#content +{ + padding: 0.5em; } #sidebar -- cgit v1.2.3 From 9ed5865d3e05e461dd5dc7e0351721723ab5ea58 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 24 Nov 2008 11:27:45 +0100 Subject: News item layout change as per a suggestion of Neal Walfield. --- local.css | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/local.css b/local.css index 966ddcd9..b27c82c9 100644 --- a/local.css +++ b/local.css @@ -174,22 +174,21 @@ a:hover /* News items on the front page. */ .newsitem { - padding-top: 2px; + margin-top: 2px; + border: 1px solid black; } -.newsitem + .newsitem -{ - clear: left; -} -.newsitemheader +.newsitem .newsitemheader .header { max-width: 30%; float: left; margin-right: 10px; + border-bottom: 1px solid black; + border-right: 1px solid black; } .newsitem .header, .newsitem .author { - font-size: medium; + font-size: small; font-style: italic; } .newsitem .actions @@ -198,22 +197,15 @@ a:hover } .newsitem .actions ul { - padding: 0; - border-bottom: 0; -} -.newsitem .actions li -{ - display: block; + border-bottom-style: none; } .newsitemcontent { - /* TODO. Why is this needed to make the floating text appear on the same - vertical height as is the item's title? */ - margin-top: -10px; -} -.newsitemcontent p -{ - clear: none; + /* TODO. Why is all this needed? */ + margin-left: 2px; + margin-right: 2px; + margin-top: -15px; + margin-bottom: -10px; } -- cgit v1.2.3 From 114ed23ae6fdf4cb021e7cfbbdbde3367fc89e8f Mon Sep 17 00:00:00 2001 From: MichaelBanck Date: Mon, 24 Nov 2008 19:20:52 +0000 Subject: add note about random-egd package --- hurd/running/debian/faq/dev_random.mdwn | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hurd/running/debian/faq/dev_random.mdwn b/hurd/running/debian/faq/dev_random.mdwn index 0043699e..eee7d0be 100644 --- a/hurd/running/debian/faq/dev_random.mdwn +++ b/hurd/running/debian/faq/dev_random.mdwn @@ -12,4 +12,6 @@ is included in the section entitled There is no random device by default as no secure implementation has been finished yet. An easy (but very insecure) work-around is to copy a binary file -like `/bin/bash` to `/dev/random` and `/dev/urandom`. +like `/bin/bash` to `/dev/random` and `/dev/urandom`. A slightly more secure +alternative is installing the `random-egd` from the `debian-ports` repository. + -- cgit v1.2.3 From 30a4bd7f9ccf42fbfb3c7406d88f5041773ea355 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 25 Nov 2008 11:43:14 +0100 Subject: .templates/page.tmpl: Copy from ikiwiki 2.70. --- .templates/page.tmpl | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 .templates/page.tmpl diff --git a/.templates/page.tmpl b/.templates/page.tmpl new file mode 100644 index 00000000..8c2ca668 --- /dev/null +++ b/.templates/page.tmpl @@ -0,0 +1,125 @@ + + + + +<TMPL_VAR TITLE> + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + -- cgit v1.2.3 From fad9d38acdcb2bf1e12f4991bb01e207d0cf64a5 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 25 Nov 2008 12:24:44 +0100 Subject: Split action items into global and per-page ones. --- .templates/page.tmpl | 18 ++++++++++++------ local.css | 9 +++++++-- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/.templates/page.tmpl b/.templates/page.tmpl index 8c2ca668..ae9347fb 100644 --- a/.templates/page.tmpl +++ b/.templates/page.tmpl @@ -36,23 +36,29 @@
+ + + + +
diff --git a/local.css b/local.css index b27c82c9..acf2b406 100644 --- a/local.css +++ b/local.css @@ -57,7 +57,6 @@ a { text-decoration: none; } - a:hover { border-bottom: 1px dotted blue; @@ -99,6 +98,13 @@ a:hover border-top: 1px solid #999999; } +.pageheader .actions .global +{ + max-width: 50%; + float: left; + margin-right: 40px; +} + .pageheader .actions ul { border: none; @@ -111,7 +117,6 @@ a:hover border: 1px solid #e7e7e7; border-top: 1px solid #999999; } - .pageheader .actions li:hover { background-color: #f0f0f0; -- cgit v1.2.3 From 3ef1e29b25d0c2ce433e2fd255cb5da59453fbee Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 25 Nov 2008 12:25:10 +0100 Subject: Add a description to the per-page action items. --- local.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/local.css b/local.css index acf2b406..51ef1fe5 100644 --- a/local.css +++ b/local.css @@ -105,6 +105,12 @@ a:hover margin-right: 40px; } +.pageheader .actions .per_page ul:before +{ + font-style: oblique; + content: "This page:"; +} + .pageheader .actions ul { border: none; -- cgit v1.2.3 From e73ae9e652e36dcf6cfe10f91fafff06e2a439b4 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 25 Nov 2008 12:26:57 +0100 Subject: Properly spell ``recent changes''. --- .templates/page.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.templates/page.tmpl b/.templates/page.tmpl index ae9347fb..4bc13d40 100644 --- a/.templates/page.tmpl +++ b/.templates/page.tmpl @@ -39,7 +39,7 @@
    -
  • RecentChanges
  • +
  • Recent Changes
  • Preferences
  • -- cgit v1.2.3 From bd599fd2f9e5ceff3effb2e684ccf4546f78cc15 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 25 Nov 2008 13:27:23 +0100 Subject: More CSS changes. --- local.css | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/local.css b/local.css index 51ef1fe5..155c73c5 100644 --- a/local.css +++ b/local.css @@ -183,9 +183,14 @@ a:hover } /* News items on the front page. */ +#feedlink, +.newsitem +{ + margin-bottom: 2px; +} + .newsitem { - margin-top: 2px; border: 1px solid black; } .newsitem .newsitemheader .header @@ -212,9 +217,9 @@ a:hover } .newsitemcontent { - /* TODO. Why is all this needed? */ - margin-left: 2px; - margin-right: 2px; + padding-left: 0.5em; + padding-right: 0.5em; + /* TODO. Why are these needed? */ margin-top: -15px; margin-bottom: -10px; } -- cgit v1.2.3 From 09c5e12d0801437e75c7af45c9a743e2f764b276 Mon Sep 17 00:00:00 2001 From: antrik Date: Tue, 25 Nov 2008 15:48:27 +0000 Subject: Fix embarrassing typo --- news/2008-09-11.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/news/2008-09-11.mdwn b/news/2008-09-11.mdwn index 55ebc801..1060761c 100644 --- a/news/2008-09-11.mdwn +++ b/news/2008-09-11.mdwn @@ -9,5 +9,5 @@ is included in the section entitled [[GNU_Free_Documentation_License|/fdl]]."]]"""]] Please see [[the_community/gsoc_page|community/gsoc]] for information about how -our **Goggle Summer of Code 2008 participation** worked out. **Congratulations +our **Google Summer of Code 2008 participation** worked out. **Congratulations to both students and mentors!** -- cgit v1.2.3 From 0e532fa981a9b1ad8e1165dfe4375fbb9fca95e3 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 26 Nov 2008 00:22:28 +0100 Subject: Incorporate and further improvements. --- hurd/debugging/glibc.mdwn | 46 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/hurd/debugging/glibc.mdwn b/hurd/debugging/glibc.mdwn index f0fe8b61..54a3446c 100644 --- a/hurd/debugging/glibc.mdwn +++ b/hurd/debugging/glibc.mdwn @@ -13,11 +13,11 @@ glibc have been done. --- -First step is having the build a glibc complete. This is actually more -difficult than one might expect, as it involves (towards the end of the build -process; unless you are cross-building, of course), that the newly created -libraries and loader actually work: they're used to run the `rpcgen` -program. If that step doesn't succeed, it'll look similar to this: +First step is having the build of glibc succeed. This is actually more +difficult than one might expect as it involves (towards the end of the build +process -- unless you are [[building/cross-compiling]], of course -- that the +newly created libraries and loader actually work: they'll be used to run the +`rpcgen` program. If that step doesn't succeed, it'll look similar to this: [...] CPP='gcc -E -x c-header' [...]/build/elf/ld.so.1 --library-path [...] [...]/build/sunrpc/rpcgen [...] @@ -25,8 +25,8 @@ program. If that step doesn't succeed, it'll look similar to this: --- -If building glibc succeeds, the next thing to try is running the test suite, or -parts of it. +Unless [[building/cross-compiling]], the next thing you'll probably want to do +is running the test suite, or parts of it. Here is a list of known failures: @@ -34,10 +34,28 @@ Here is a list of known failures: --- -Make sure static linking is working OK at all. The `elf/sln` program (a -stripped-down `ln` that is statically linked) in the glibc build ought to test -that. Also, static linking under various conditions will already have been -tested when running the test suite, especially in `elf/` and `dlfcn/`. +If you've been doing simple changes to glibc functions that end up in +`libc.so`, you may test them like this (like for a `strerror_l` implementation +in this case): + + $ LD_PRELOAD=./libc.so ./ld.so ./a.out 10 1073741928 de_DE.utf8 + 1073741928 (0x40000068): Computer bought the farm + 1073741928 (0x40000068): Der Computer hat den Bauernhof erworben + +You usually will only have luck using the new `libc.so` (from +`[glibc-build]/libc.so`) in combination together with the new `ld.so` (from +`[glibc-build]/elf/ld.so`): + + $ LD_PRELOAD=./libc.so ./a.out 10 1073741928 de_DE.utf8 + Killed + $ LD_PRELOAD=./libc.so /lib/ld.so ./a.out 10 1073741928 de_DE.utf8 + Killed + +Make sure static linking is working OK at all. Running the +`[glibc-build]/elf/sln` program (a stripped-down `ln` that is statically +linked) ought to test that. Also, static linking under various conditions will +already have been tested when running the test suite, especially in `elf/` and +`dlfcn/`. Make sure static linking with cthreads is working. If you can get an `ext2fs.static` compiled and linked against the new glibc, that is good. @@ -51,8 +69,8 @@ Then debug its startup as a normal program on your working hurd. Then try its full server startup. - $ settrans -ca node [...]/ext2fs.static - $ cd node/ + $ settrans -ca node [...]/ext2fs.static BACKING_STORE + $ ls -l node/ [...] Make sure dynamic linking for servers is working. If you haven't broken the @@ -61,7 +79,7 @@ glibc's `testrun.sh` does it. [TODO]: Is this the correct way to do that? - $ settrans -ca node [glibc]/build/testrun.sh /hurd/ext2fs + $ settrans -ca node [glibc]/build/testrun.sh /hurd/ext2fs BACKING_STORE $ cd node/ [...] -- cgit v1.2.3 From 1ef24b38c7bc9952bbeba13d997eeec11154d3a4 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 26 Nov 2008 00:22:49 +0100 Subject: Remove sources, as they're in the RCS history. --- hurd/debugging/glibc.mdwn | 7 ------- 1 file changed, 7 deletions(-) diff --git a/hurd/debugging/glibc.mdwn b/hurd/debugging/glibc.mdwn index 54a3446c..912f656c 100644 --- a/hurd/debugging/glibc.mdwn +++ b/hurd/debugging/glibc.mdwn @@ -90,10 +90,3 @@ Test it in a [[subhurd]]. --- Test it on a real system. - ---- - -Sources: - -* -* [[Thomas_Schwinge|tschwinge]]'s mind -- cgit v1.2.3 From 6ab3328c2a0b92dbf4811b60c5bc608a6c018c0a Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 26 Nov 2008 19:33:29 +0100 Subject: Incorporate suggestions by Olaf Buddenhagen. --- local.css | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/local.css b/local.css index 155c73c5..f99a4602 100644 --- a/local.css +++ b/local.css @@ -102,7 +102,7 @@ a:hover { max-width: 50%; float: left; - margin-right: 40px; + margin-right: 3em; } .pageheader .actions .per_page ul:before @@ -186,7 +186,7 @@ a:hover #feedlink, .newsitem { - margin-bottom: 2px; + margin-bottom: 0.2em; } .newsitem @@ -197,7 +197,7 @@ a:hover { max-width: 30%; float: left; - margin-right: 10px; + margin-right: 1em; border-bottom: 1px solid black; border-right: 1px solid black; } @@ -214,14 +214,12 @@ a:hover .newsitem .actions ul { border-bottom-style: none; + padding: 0.5em 0; + line-height: 1; } -.newsitemcontent +.newsitemcontent p { - padding-left: 0.5em; - padding-right: 0.5em; - /* TODO. Why are these needed? */ - margin-top: -15px; - margin-bottom: -10px; + margin: 0.3em; } -- cgit v1.2.3 From dc706bf3ce370c9675fa6dd91aeb377e28df1a30 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 27 Nov 2008 00:04:15 +0100 Subject: Anatoly A. Kazantsev knew how to have the new items' boxes not run under the sidebar. --- local.css | 1 + 1 file changed, 1 insertion(+) diff --git a/local.css b/local.css index f99a4602..998e2913 100644 --- a/local.css +++ b/local.css @@ -192,6 +192,7 @@ a:hover .newsitem { border: 1px solid black; + overflow: auto; } .newsitem .newsitemheader .header { -- cgit v1.2.3 From a13e542d877730f3d2e5b889725b5e6637772d7d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 27 Nov 2008 23:39:40 +0100 Subject: Formatting. --- community/meetings.mdwn | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/community/meetings.mdwn b/community/meetings.mdwn index b4a5a7b3..64c83b2c 100644 --- a/community/meetings.mdwn +++ b/community/meetings.mdwn @@ -10,15 +10,15 @@ is included in the section entitled # Upcoming -* [[Self-organised_2008]] + * [[Self-organised_2008]] # Past -* [[FOSDEM_2008]] -* [[Weekend_at_stesie's|stesie_2007-10-12]] -* [[FOSDEM_2007]] -* [[RMLL_2006]] -* [[FOSDEM_2006]] -* [[RMLL_2005]] -* [[FOSDEM_2005]] -* ... + * [[FOSDEM_2008]] + * [[Weekend_at_stesie's|stesie_2007-10-12]] + * [[FOSDEM_2007]] + * [[RMLL_2006]] + * [[FOSDEM_2006]] + * [[RMLL_2005]] + * [[FOSDEM_2005]] + * ... -- cgit v1.2.3 From 21a2f69f26ea86faa12fbfc03c8b132267f36aeb Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 27 Nov 2008 23:56:25 +0100 Subject: FOSDEM 2009. --- community/meetings.mdwn | 1 + community/meetings/fosdem_2009.mdwn | 173 ++++++++++++++++++++++++++++++++++++ 2 files changed, 174 insertions(+) create mode 100644 community/meetings/fosdem_2009.mdwn diff --git a/community/meetings.mdwn b/community/meetings.mdwn index 64c83b2c..c9ff6f4d 100644 --- a/community/meetings.mdwn +++ b/community/meetings.mdwn @@ -11,6 +11,7 @@ is included in the section entitled # Upcoming * [[Self-organised_2008]] + * [[FOSDEM_2009]] # Past diff --git a/community/meetings/fosdem_2009.mdwn b/community/meetings/fosdem_2009.mdwn new file mode 100644 index 00000000..d57b5b2c --- /dev/null +++ b/community/meetings/fosdem_2009.mdwn @@ -0,0 +1,173 @@ +[[meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation, +Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + + + +FOSDEM will take place on February 7th/8th at the Université Libre de +Bruxelles. + + +# Who And When + +[[table class="table_style_1" data=""" +"Name","Attending","Arrival","Return","Share room with us" +"Alfredo Beaumont","?","?","?","?" +"Andrei Barbu","?","?","?","?" +"Andrew Resch","?","?","?","?" +"Ben Asselstine","?","?","?","?" +"Barry de Freese","?","?","?","?" +"Bas Wijnen","?","?","?","?" +"Christian Dietrich","?","?","?","?" +"Christopher Bodenstein","?","?","?","?" +"Colin Leitner","?","?","?","?" +"Cyril Brulebois","?","?","?","?" +"Daniel Wagner","?","?","?","?" +"[[Flávio_Cruz|flaviocruz]]","?","?","?","?" +"Fredrik Hammar","?","?","?","?" +"Gaël Le Mignot","?","?","?","?" +"Gianluca Guida","?","?","?","?" +"Guillaume Libersat","?","?","?","?" +"Guillem Jover","?","?","?","?" +"Jeff Bailey","?","?","?","?" +"Jeroen Dekkers","?","?","?","?" +"Johan Rydberg","?","?","?","?" +"Jordi Mallach","?","?","?","?" +"[[Madhusudan_C.S.|madhusudancs]]","?","?","?","?" +"Marc Dequènes","?","?","?","?" +"Marc Poulhies","?","?","?","?" +"Marco Gerards","?","?","?","?" +"Marcus Brinkmann","?","?","?","?" +"Mark Kettenis","?","?","?","?" +"Matthieu Lemerre","?","?","?","?" +"Manuel Menal","?","?","?","?" +"Michael Banck","?","?","?","?" +"Neal Walfield","?","?","?","?" +"Nicolas Centa","?","?","?","?" +"Ognyan Kulev","?","?","?","?" +"Olaf Buddenhagen","?","?","?","?" +"Peter de Schrijver","?","?","?","?" +"Richard Braun","?","?","?","?" +"Roland McGrath","?","?","?","?" +"[[Samuel_Thibault|SamuelThibault]]","?","?","?","?" +"[[Sergiu_Ivanov|scolobb]]","?","?","?","?" +"Soeren Schulze","?","?","?","?" +"[[Stefan_Siegl|stesie]]","?","?","?","?" +"Thomas Bushnell","?","?","?","?" +"[[Thomas_Schwinge|tschwinge]]","?","?","?","?" +"Tim Retout","?","?","?","?" +"Tom Bachmann","?","?","?","?" +"[[Vikram_Vincent|vincentvikram]]","?","?","?","?" +"Wouter van Heyst","?","?","?","?" +"Yoshinori K. Okuji","?","?","?","?" +"[[Zheng_Da|zhengda]]","?","?","?","?" +"""]] + + +# Accommodation + + + + +## The Moon Hotel + +Rue de la Montagne 4B. + +EUR 33.5 per night. + +Breakfast is included, there is hotspot wifi + +check-in can be between 13:00 and 00:00, departure is before 11:00 + +Been there in 2008. It was okay. + + +## A-XL flathotel + + + + +## Youth hostel _Bruegel_ + + + +Heilige Geeststraat 2 +1000 Brussels +Phone: +32(0)2 511 04 36 +Fax: +32(0)2 512 07 11 + + +[Map via Google maps](http://maps.google.com/maps?f=q&hl=en&q=Heilige+Geeststraat+2,+1000+Brussels,+Belgium&sll=50.846056,4.344578&sspn=0.022599,0.086517&ie=UTF8&om=1&z=15&ll=50.843942,4.351444&spn=0.0113,0.043259&iwloc=cent). +[Map via Map24](http://link2.map24.com/?street0=Heilige%20Geeststraat&zip0=1000&city0=Br%FCssel&state0=&country0=be&name0=&lid=43c26f81&ol=de-de). + +Been there in 2006 and 2007. It was okay. + +Rooms at ~ 18.60€ + +We need someone to get the keys before +20:00. Reservations last until 16:00, so either he gets the keys before 16:00, +or we just need to call for confirming the reservation + +[[I|tschwinge]] seem to remember something that in 2007 the Madame at the +reception wasn't really happy with us arriving later than 16:00 even with +having had confirmed that via a phone call. + + +## Sleep Well Youth Hostel + + + + +## Youth Hostel Can Gogh + + + +No under 18-ers and over 35-ers allowed. + + +## Auberge de Jeunesse Jacques Brel + +. + +Samuel knows that one and liked it. antrik too :-) + + + + + + + + + + + + -- cgit v1.2.3 From ab5f707024a2c7ae10b8109a006d1a6b75b3c31c Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 28 Nov 2008 00:01:35 +0100 Subject: FOSDEM 2009: no tschwinge this year. :-( --- community/meetings/fosdem_2009.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community/meetings/fosdem_2009.mdwn b/community/meetings/fosdem_2009.mdwn index d57b5b2c..8af6e7b0 100644 --- a/community/meetings/fosdem_2009.mdwn +++ b/community/meetings/fosdem_2009.mdwn @@ -61,7 +61,7 @@ Bruxelles. "Soeren Schulze","?","?","?","?" "[[Stefan_Siegl|stesie]]","?","?","?","?" "Thomas Bushnell","?","?","?","?" -"[[Thomas_Schwinge|tschwinge]]","?","?","?","?" +"[[Thomas_Schwinge|tschwinge]]","no","n/a","n/a","n/a" "Tim Retout","?","?","?","?" "Tom Bachmann","?","?","?","?" "[[Vikram_Vincent|vincentvikram]]","?","?","?","?" -- cgit v1.2.3 From 925b8943aa6b624d83e4d9ff6f438bb28ba5176f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 28 Nov 2008 00:05:10 +0100 Subject: EuroSys 2009. --- community/meetings.mdwn | 1 + community/meetings/eurosys_2009.mdwn | 99 ++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 community/meetings/eurosys_2009.mdwn diff --git a/community/meetings.mdwn b/community/meetings.mdwn index c9ff6f4d..edda990f 100644 --- a/community/meetings.mdwn +++ b/community/meetings.mdwn @@ -11,6 +11,7 @@ is included in the section entitled # Upcoming * [[Self-organised_2008]] + * [[EuroSys_2009]] * [[FOSDEM_2009]] # Past diff --git a/community/meetings/eurosys_2009.mdwn b/community/meetings/eurosys_2009.mdwn new file mode 100644 index 00000000..80cd9aca --- /dev/null +++ b/community/meetings/eurosys_2009.mdwn @@ -0,0 +1,99 @@ +[[meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation, +Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + + + +EuroSys will take place on March 30th to April 3rd in Nuremberg, Germany. + + +# Who And When + +[[table class="table_style_1" data=""" +"Name","Attending","Arrival","Return","Share room with us" +"Alfredo Beaumont","?","?","?","?" +"Andrei Barbu","?","?","?","?" +"Andrew Resch","?","?","?","?" +"Ben Asselstine","?","?","?","?" +"Barry de Freese","?","?","?","?" +"Bas Wijnen","?","?","?","?" +"Christian Dietrich","?","?","?","?" +"Christopher Bodenstein","?","?","?","?" +"Colin Leitner","?","?","?","?" +"Cyril Brulebois","?","?","?","?" +"Daniel Wagner","?","?","?","?" +"[[Flávio_Cruz|flaviocruz]]","?","?","?","?" +"Fredrik Hammar","?","?","?","?" +"Gaël Le Mignot","?","?","?","?" +"Gianluca Guida","?","?","?","?" +"Guillaume Libersat","?","?","?","?" +"Guillem Jover","?","?","?","?" +"Jeff Bailey","?","?","?","?" +"Jeroen Dekkers","?","?","?","?" +"Johan Rydberg","?","?","?","?" +"Jordi Mallach","?","?","?","?" +"[[Madhusudan_C.S.|madhusudancs]]","?","?","?","?" +"Marc Dequènes","?","?","?","?" +"Marc Poulhies","?","?","?","?" +"Marco Gerards","?","?","?","?" +"Marcus Brinkmann","?","?","?","?" +"Mark Kettenis","?","?","?","?" +"Matthieu Lemerre","?","?","?","?" +"Manuel Menal","?","?","?","?" +"Michael Banck","?","?","?","?" +"Neal Walfield","?","?","?","?" +"Nicolas Centa","?","?","?","?" +"Ognyan Kulev","?","?","?","?" +"Olaf Buddenhagen","?","?","?","?" +"Peter de Schrijver","?","?","?","?" +"Richard Braun","?","?","?","?" +"Roland McGrath","?","?","?","?" +"[[Samuel_Thibault|SamuelThibault]]","?","?","?","?" +"[[Sergiu_Ivanov|scolobb]]","?","?","?","?" +"Soeren Schulze","?","?","?","?" +"[[Stefan_Siegl|stesie]]","?","?","?","?" +"Thomas Bushnell","?","?","?","?" +"[[Thomas_Schwinge|tschwinge]]","?","?","?","?" +"Tim Retout","?","?","?","?" +"Tom Bachmann","?","?","?","?" +"[[Vikram_Vincent|vincentvikram]]","?","?","?","?" +"Wouter van Heyst","?","?","?","?" +"Yoshinori K. Okuji","?","?","?","?" +"[[Zheng_Da|zhengda]]","?","?","?","?" +"""]] + + + + + + + + + + + -- cgit v1.2.3 From 08f8d8c4105df9f1b2d50207eaba105c764e9fb0 Mon Sep 17 00:00:00 2001 From: SamuelThibault Date: Thu, 27 Nov 2008 23:10:15 +0000 Subject: --- community/meetings/self-organised_2008.mdwn | 1 + 1 file changed, 1 insertion(+) diff --git a/community/meetings/self-organised_2008.mdwn b/community/meetings/self-organised_2008.mdwn index dc86afc2..10d746fc 100644 --- a/community/meetings/self-organised_2008.mdwn +++ b/community/meetings/self-organised_2008.mdwn @@ -20,6 +20,7 @@ Please add yourself here. * [[Thomas_Schwinge|tschwinge]] * [[Tom_Bachmann|tombachmann]] (weekend in the middle of germany would be preferred) * [[Gianluca_Guida|GianlucaGuida]] (wherever, whenever) +* [[Samuel_Thibault|SamuelThibault]] (wherever, whenever) # Who will come? -- cgit v1.2.3 From 7763ae48f6ba5613a6b4d18f04eb80739e999e93 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 28 Nov 2008 00:26:36 +0100 Subject: EuroSys 2009: Neal, Samuel, Thomas intend to go. --- community/meetings/eurosys_2009.mdwn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/community/meetings/eurosys_2009.mdwn b/community/meetings/eurosys_2009.mdwn index 80cd9aca..2f45e7b7 100644 --- a/community/meetings/eurosys_2009.mdwn +++ b/community/meetings/eurosys_2009.mdwn @@ -48,19 +48,19 @@ EuroSys will take place on March 30th to April 3rd in Nuremberg, Germany. "Matthieu Lemerre","?","?","?","?" "Manuel Menal","?","?","?","?" "Michael Banck","?","?","?","?" -"Neal Walfield","?","?","?","?" +"Neal Walfield","intends to go","?","?","?" "Nicolas Centa","?","?","?","?" "Ognyan Kulev","?","?","?","?" "Olaf Buddenhagen","?","?","?","?" "Peter de Schrijver","?","?","?","?" "Richard Braun","?","?","?","?" "Roland McGrath","?","?","?","?" -"[[Samuel_Thibault|SamuelThibault]]","?","?","?","?" +"[[Samuel_Thibault|SamuelThibault]]","intends to go","?","?","?" "[[Sergiu_Ivanov|scolobb]]","?","?","?","?" "Soeren Schulze","?","?","?","?" "[[Stefan_Siegl|stesie]]","?","?","?","?" "Thomas Bushnell","?","?","?","?" -"[[Thomas_Schwinge|tschwinge]]","?","?","?","?" +"[[Thomas_Schwinge|tschwinge]]","intends to go","?","?","?" "Tim Retout","?","?","?","?" "Tom Bachmann","?","?","?","?" "[[Vikram_Vincent|vincentvikram]]","?","?","?","?" -- cgit v1.2.3 From 66fd74c830e712ffb0efc73cef6dc52283f8e49e Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 28 Nov 2008 00:45:06 +0100 Subject: Typo fix. --- microkernel/faq.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microkernel/faq.mdwn b/microkernel/faq.mdwn index f83c65ca..b8a2c28f 100644 --- a/microkernel/faq.mdwn +++ b/microkernel/faq.mdwn @@ -8,7 +8,7 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU_Free_Documentation_License|/fdl]]."]]"""]] -[[meta title=Microkernel FAQ"]] +[[meta title="Microkernel FAQ"]] [[inline pages="microkernel/faq/* and !*/discussion" -- cgit v1.2.3 From f67a4d6511e325d6ebdf1c133029f398c63825aa Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 1 Dec 2008 15:42:27 +0100 Subject: Talk about GCC 4.3 and SVN trunk. --- hurd/building/cross-compiling.mdwn | 41 +++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/hurd/building/cross-compiling.mdwn b/hurd/building/cross-compiling.mdwn index 8d13a4a7..80239860 100644 --- a/hurd/building/cross-compiling.mdwn +++ b/hurd/building/cross-compiling.mdwn @@ -71,29 +71,40 @@ guarantee is given. Always the preferred version is listed first. $ ( cd gcc-4_1-branch/ && contrib/gcc_update --touch ) - * Recent releases of the 4.1 series from - should also be fine. + * Releases of the 4.1 series from should + also be fine. * SVN `gcc-4_2-branch` $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_2-branch + * Patches: + + Prepare: $ ( cd gcc-4_2-branch/ && contrib/gcc_update --touch ) + * Releases of the 4.2 series from should + also be fine, but need the same set of patches as the `gcc-4_2-branch` + needs. + + * SVN `gcc-4_3-branch` + + $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_3-branch + * Patches: - * Recent releases of the 4.2 series from - should also be fine, but need the same set of patches as the - `gcc-4_2-branch` needs. + Prepare: - - * SVN `trunk` -- upcoming 4.3 series + $ ( cd gcc-4_3-branch/ && contrib/gcc_update --touch ) + + * Releases of the 4.3 series from should + also be fine, but need the same set of patches as the `gcc-4_3-branch` + needs. + + * SVN `trunk` -- upcoming 4.4 series $ svn co svn://gcc.gnu.org/svn/gcc/trunk @@ -101,16 +112,6 @@ guarantee is given. Always the preferred version is listed first. $ ( cd trunk/ && contrib/gcc_update --touch ) - * Patches: - - - - * `src/gnumach`: [[GNU_Mach|microkernel/mach/gnumach]] * CVS `gnumach-1-branch` -- cgit v1.2.3 From 4627438ce70ae891851ff04142c5cbdc89ef8db4 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 1 Dec 2008 15:57:25 +0100 Subject: Avoid
     stuff from running under the sidebar.
    
    ---
     local.css | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/local.css b/local.css
    index 998e2913..97f12a64 100644
    --- a/local.css
    +++ b/local.css
    @@ -51,6 +51,7 @@ pre
       margin-left: 3em;
       font-weight: bold;
       padding: 0.5em;
    +  overflow: auto;
     }
     
     a
    -- 
    cgit v1.2.3
    
    
    From 64053fc344b6874499ddf82c6a97d6e9031a546d Mon Sep 17 00:00:00 2001
    From: Thomas Schwinge 
    Date: Mon, 1 Dec 2008 16:36:14 +0100
    Subject: C++ problem with GCC SVN trunk.
    
    ---
     hurd/running/debian/porting/gcc.mdwn     |  2 ++
     hurd/running/debian/porting/gcc/c++.mdwn | 39 ++++++++++++++++++++++++++++++++
     2 files changed, 41 insertions(+)
     create mode 100644 hurd/running/debian/porting/gcc/c++.mdwn
    
    diff --git a/hurd/running/debian/porting/gcc.mdwn b/hurd/running/debian/porting/gcc.mdwn
    index ec412b9c..c15f40aa 100644
    --- a/hurd/running/debian/porting/gcc.mdwn
    +++ b/hurd/running/debian/porting/gcc.mdwn
    @@ -42,3 +42,5 @@ Additionally:
         might/should often contain those for us (and GNU/k*BSD) as well.
     
       * [[`libmudflap`|libmudflap]].
    +
    +  * [[C++]].
    diff --git a/hurd/running/debian/porting/gcc/c++.mdwn b/hurd/running/debian/porting/gcc/c++.mdwn
    new file mode 100644
    index 00000000..1d64b9b5
    --- /dev/null
    +++ b/hurd/running/debian/porting/gcc/c++.mdwn
    @@ -0,0 +1,39 @@
    +[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
    +
    +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
    +id="license" text="Permission is granted to copy, distribute and/or modify this
    +document under the terms of the GNU Free Documentation License, Version 1.2 or
    +any later version published by the Free Software Foundation; with no Invariant
    +Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
    +is included in the section entitled
    +[[GNU_Free_Documentation_License|/fdl]]."]]"""]]
    +
    +Modify the [[building/cross-compiling]] shell script to configure GCC for
    +building GCC with C++ support when building its second (i.e., final) version.
    +
    +Compiling a most-trivial C++ program used to work with GCC 4.2 and 4.3 (and the
    +resulting binaries would also work), but linking fails with GCC SVN trunk:
    +
    +    $ $TARGET-g++ -Wall a.cc -lpthread
    +    /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__multf3'
    +    /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__fixunstfsi'
    +    /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__subtf3'
    +    /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__divtf3'
    +    /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__copysigntf3'
    +    /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__addtf3'
    +    /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__lttf2'
    +    /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__floatsitf'
    +    /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__netf2'
    +    /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__floatunsitf'
    +    /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__eqtf2'
    +    /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__fabstf2'
    +    collect2: ld returned 1 exit status
    +
    +Whether this defect report also applies to a natively-build GCC from SVN trunk
    +has not yet been checked.
    +
    +[[Thomas_Schwinge|tschwinge]] suspects the problem to be a configuration issue
    +of a GCC helper library, whose configuration setup has changed after GCC 4.3.
    +
    +The need for `-lpthread` is another story.  See the Debian glibc patches
    +repository for details.
    -- 
    cgit v1.2.3