diff options
Diffstat (limited to 'hurd')
-rw-r--r-- | hurd/documentation.mdwn | 23 | ||||
-rw-r--r-- | hurd/libfuse.mdwn | 2 | ||||
-rw-r--r-- | hurd/libstore/examples/ramdisk.mdwn | 7 | ||||
-rw-r--r-- | hurd/networking.mdwn | 17 | ||||
-rw-r--r-- | hurd/porting/guidelines.mdwn | 8 | ||||
-rw-r--r-- | hurd/running.mdwn | 1 | ||||
-rw-r--r-- | hurd/running/chroot.mdwn | 4 | ||||
-rw-r--r-- | hurd/running/debian/dhcp.mdwn | 18 | ||||
-rw-r--r-- | hurd/running/nix.mdwn | 2 | ||||
-rw-r--r-- | hurd/running/qemu.mdwn | 19 | ||||
-rw-r--r-- | hurd/running/qemu/networking.mdwn | 2 | ||||
-rw-r--r-- | hurd/translator/pfinet/ipv6.mdwn | 8 |
12 files changed, 61 insertions, 50 deletions
diff --git a/hurd/documentation.mdwn b/hurd/documentation.mdwn index ec19e90b..944b5c98 100644 --- a/hurd/documentation.mdwn +++ b/hurd/documentation.mdwn @@ -1,5 +1,5 @@ [[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -2009, 2011, 2012 Free Software Foundation, Inc."]] +2009, 2011, 2012, 2015 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 @@ -20,9 +20,24 @@ is included in the section entitled * [[*The_Hurd_and_Linux*|/hurd-and-linux]], a comment by Richard Stallman. * [[*Towards_a_New_Strategy_of_OS_Design*|/hurd-paper]], an architectural - overview by Thomas Bushnell, BSG. - - * [[*The_Hurd*|/hurd-talk]], a presentation by Marcus Brinkmann. + overview by Thomas Bushnell, BSG, notably: + + * [[The design|/hurd-paper#design]] + * [[Translators|/hurd-paper#translator]] + * [[The auth translator|/hurd-paper#auth]] + * [[The proc translator|/hurd-paper#proc]] + * [[The exec translator|/hurd-paper#exec]] + * [[The ftpfs translator|/hurd-paper#ftpfs]] + + * [[*The_Hurd*|/hurd-talk]], a presentation by Marcus Brinkmann, notably: + + * [[How to get a port?|/hurd-talk#how]] + * [[Pathname resolution example|/hurd-talk#pat]] + * [[Mapping the POSIX Interface|/hurd-talk#map]] + * [[Active vs Passive|/hurd-talk#act]] + * [[Authentication|/hurd-talk#aut]] + * [[Password Server|/hurd-talk#pas]] + * [[Process Server|/hurd-talk#pro]] * The *[[translator_primer]]*. diff --git a/hurd/libfuse.mdwn b/hurd/libfuse.mdwn index 28125dd9..0c76645a 100644 --- a/hurd/libfuse.mdwn +++ b/hurd/libfuse.mdwn @@ -25,7 +25,7 @@ etc. * lowlevel API not implemented * Options handling (`fuse_parse_cmdline` and `fuse_opt_*`) not implemented * CUSE lowlevel not supported (compatibility level 29) -* Supports up to the compatibility level 25 (while current libfuse 2.9.x provides 26) +* Supports the compatibility level 25 and 26, up to libfuse 2.6.x * File I/O is quite slow. diff --git a/hurd/libstore/examples/ramdisk.mdwn b/hurd/libstore/examples/ramdisk.mdwn index 33d33601..92e00f5c 100644 --- a/hurd/libstore/examples/ramdisk.mdwn +++ b/hurd/libstore/examples/ramdisk.mdwn @@ -11,9 +11,8 @@ License|/fdl]]."]]"""]] $ settrans --create --active ramdisk0 /hurd/storeio -T copy zero:32M $ mkfs.ext2 -F -b 4096 ramdisk0 [...] - $ settrans --active --orphan ramdisk0 /hurd/ext2fs.static ramdisk0 + $ settrans --active --orphan ramdisk0 /hurd/ext2fs ramdisk0 $ df -h ramdisk0/ - df: Warning: cannot read table of mounted file systems Filesystem Size Used Avail Use% Mounted on - 32M 1.1M 30M 4% /media/data/home/tschwinge/ramdisk0 @@ -24,9 +23,5 @@ translator running on the `ramdisk0` node with a instance of the [[`ext2fs` translator|translator/ext2fs]] running on the same node ([[translator stacking|translator/stacking]]). -It is a [[!taglink open_issue_hurd]] why this does only work with -`ext2fs.static`, but not the dynamically linked `ext2fs` (`settrans: -/hurd/ext2fs: Translator died`). - A (better) alternative would be using the [[`tmpfs` translator|translator/tmpfs]], but that one is broken at the moment. diff --git a/hurd/networking.mdwn b/hurd/networking.mdwn index bdf9def2..2f13813a 100644 --- a/hurd/networking.mdwn +++ b/hurd/networking.mdwn @@ -9,11 +9,18 @@ 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]]."]]"""]] -For each supported `PF_*` protocol family, there is a file `/servers/socket/N` -where `N` is the numberic value fo the `PF_*` symbol. Right now -[[`PF_LOCAL`|translator/pflocal]] (a.k.a. `PF_UNIX`) and -[[`PF_INET`|translator/pfinet]] (together with -[[`PF_INET6`|translator/pfinet/ipv6]]) are supported. +For each supported `PF_*` protocol family (domain), there is a file `/servers/socket/N` +where `N` is the numeric value for the `PF_*` symbol. libc's `socket()`, +`socketpair()` and friends use `_hurd_socket_server` to open them: the latter +computes the `/servers/socket/N` path, then opens it with `__file_name_lookup`, +and returns the result. Since those paths are translated (see showtrans on +`/servers/socket/N`), it's a port to a translator which is returned. Right now +[[`PF_LOCAL`|translator/pflocal]] (a.k.a. `PF_UNIX` or `AF_UNIX`) `N=1`, +[[`PF_INET`|translator/pfinet]] (a.k.a `AF_INET`) `N=2` and +[[`PF_INET6`|translator/pfinet/ipv6]] (a.k.a `AF_INET6`) `N=26` are supported. + +In case of problems to find out which server is called rpctrace can be of use: +search for the output `dir_lookup ("servers/socket/N" ...)` User programs open those files, and use the `socket_create` [[RPC]] to make a new socket. With that socket, they can use the other `socket_*` RPCs and also diff --git a/hurd/porting/guidelines.mdwn b/hurd/porting/guidelines.mdwn index c4c864f7..66c6ae28 100644 --- a/hurd/porting/guidelines.mdwn +++ b/hurd/porting/guidelines.mdwn @@ -305,7 +305,13 @@ We could easily provide it; ## <a name="PTHREAD_STACK_MIN"> `PTHREAD_STACK_MIN` </a> -We should actually provide it. +We don't really have a minimum value. We could define it to 4096 (or ~16, which +is our actual minimum), but most applications making use of `PTHREAD_STACK_MIN` +would just crash with such a value. + +The application knows way better than the OS which stack size it needs and have +its own hint about the stack size, and thus use `PTHREAD_STACK_MIN` only as a +minimum, not as a hint. ## <a name="types"> `linux/types.h` or `asm/types.h` </a> diff --git a/hurd/running.mdwn b/hurd/running.mdwn index b3caf21a..7653b387 100644 --- a/hurd/running.mdwn +++ b/hurd/running.mdwn @@ -20,6 +20,7 @@ There are several different ways to run a GNU/Hurd system: * [[cloud]] - In the "cloud": OpenStack * [[chroots|chroot]] need a couple of tricks to work properly. * [[VirtualBox]] - In VirtualBox +* [[https://github.com/bbesim/vagrant_GNU-debian-hurd_basebox]] - On Vagrant * [[vmware]] (**non-free!**) * [[FAQ]] diff --git a/hurd/running/chroot.mdwn b/hurd/running/chroot.mdwn index 38bab04e..699f05a1 100644 --- a/hurd/running/chroot.mdwn +++ b/hurd/running/chroot.mdwn @@ -13,8 +13,7 @@ This documents the currently-needed tricks to successfully build a # Preparation -For proper translator startup, the chroot storage needs to be handled by a -separate translator, for instance: +It can be a good idea to put the chroot on a separate translator, for instance: # dd [...] < /dev/zero > storage # mke2fs storage @@ -45,3 +44,4 @@ programs inside the chroot need to be able to access them: # settrans -kp chroot/dev /hurd/firmlink /dev # settrans chroot/tmp /hurd/firmlink /tmp # settrans -c chroot/var/lib/dbus /hurd/firmlink /var/lib/dbus + # settrans -c chroot/run/dbus /hurd/firmlink /run/dbus diff --git a/hurd/running/debian/dhcp.mdwn b/hurd/running/debian/dhcp.mdwn index 8846769a..aa9adfd9 100644 --- a/hurd/running/debian/dhcp.mdwn +++ b/hurd/running/debian/dhcp.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2011, 2012, 2013, 2014 Free Software Foundation, -Inc."]] +[[!meta copyright="Copyright © 2011, 2012, 2013, 2014, 2015 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 @@ -11,20 +11,6 @@ License|/fdl]]."]]"""]] [[!tag open_issue_porting]] -In order to use DHCP, you need to install the `ifupdown` and `isc-dhcp-client` -packages, and manually create the following symbolic link: - - # ln -s ../rcS.d/S10networking /etc/rc.boot/ - -During execution at boot time, the `S10networking` script will emit some error -messages while trying to configure the loopback interface. These are not -fatal. - -Debian GNU/Hurd doesn't currently execute Debian standard `/etc/rcS.d/*` boot -scripts, but has its own `/libexec/rc` script -- which integrates scripts from -`/etc/rc.boot/` instead. - - # Open Issues * [[!debbug 616290]] diff --git a/hurd/running/nix.mdwn b/hurd/running/nix.mdwn index 68052948..b77404a4 100644 --- a/hurd/running/nix.mdwn +++ b/hurd/running/nix.mdwn @@ -47,7 +47,7 @@ Nix, and because of that, it uses per-package installation directories under Guix -# <a href="guix">Guix</a> +# <a name="guix">Guix</a> ## <http://www.gnu.org/software/guix/> diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn index 5a13a655..2ce8aaeb 100644 --- a/hurd/running/qemu.mdwn +++ b/hurd/running/qemu.mdwn @@ -139,7 +139,7 @@ First off you will need to create a disk image using `qemu-img`. I have set mine Next you will want to start up QEMU and begin the installation process. - $ qemu -m 512 -drive cache=writeback,index=0,media=disk,file=hd0.img -cdrom mini.iso -net nic,model=rtl8139 -net user + $ qemu -m 512 -drive cache=writeback,index=0,media=disk,file=hd0.img -cdrom debian-7.0-hurd-i386-NETINST-1.iso -net nic,model=rtl8139 -net user Now at his point do the regular install using `hd0` as your harddrive. Partition it and install the base system. @@ -200,6 +200,14 @@ If you have problems with grub hanging during boot with the vmware vga driver: D uncomment GRUB_TERMINAL=console $ /usr/sbin/update-grub +### `qemu: fatal: Trying to execute code outside RAM or ROM at 0x000000010010001e` + +This is due to a bug in QEMU, where the x86_64 QEMU binary fails to properly +truncate addresses in 32-bit mode. Waiting for [[!message-id +"1386334344-24620-1-git-send-email-agraf@suse.de"]] to be applied and become +generally available, just use the `qemu-system-i386` binary instead. +See [[!debbug 719633]] + ### A few words about the qemu console During the graphical emulation, you can use the following keys: @@ -395,14 +403,7 @@ on their command line... You can also use `--append [...]`, which will show up in `/proc/cmdline`. - -# `qemu: fatal: Trying to execute code outside RAM or ROM at 0x000000010010001e` - -This is due to a bug in QEMU, where the x86_64 QEMU binary fails to properly -truncate addresses in 32-bit mode. Waiting for [[!message-id -"1386334344-24620-1-git-send-email-agraf@suse.de"]] to be applied and become -generally available, just use the `qemu-system-i386` binary instead. - +Command line above crashes with old qemu versions, for instance qemu 1.1.2 on Debian Wheezy, fixed by upgrading to wheezy-backports currently qemu 1.7.0, see [[!debbug 741873]] # Related Links diff --git a/hurd/running/qemu/networking.mdwn b/hurd/running/qemu/networking.mdwn index d20b84b1..0c8e0ae8 100644 --- a/hurd/running/qemu/networking.mdwn +++ b/hurd/running/qemu/networking.mdwn @@ -21,7 +21,7 @@ Netmask is 255.255.255.0 You can setup the pfinet translator with the command - $ settrans -fgap /servers/socket/2 /hurd/pfinet -i eth0 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0 + $ settrans -fgap /servers/socket/2 /hurd/pfinet -i /dev/eth0 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0 Configure nameserver in /etc/resolve.conf diff --git a/hurd/translator/pfinet/ipv6.mdwn b/hurd/translator/pfinet/ipv6.mdwn index 81826e00..ccb359cb 100644 --- a/hurd/translator/pfinet/ipv6.mdwn +++ b/hurd/translator/pfinet/ipv6.mdwn @@ -35,20 +35,20 @@ IPv6 address shall be assigned using IPv6 auto-configuration. settrans -fgp /servers/socket/2 ↩ /hurd/pfinet -6 /servers/socket/26 ↩ - -i eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 + -i /dev/eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 settrans -fgp /servers/socket/26 ↩ /hurd/pfinet -4 /servers/socket/2 ↩ - -i eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 + -i /dev/eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 Quite the same, but with static IPv6 address assignment: settrans -fgp /servers/socket/2 ↩ /hurd/pfinet -6 /servers/socket/26 ↩ - -i eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 ↩ + -i /dev/eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 ↩ -A 2001:4b88:10e4:0:216:3eff:feff:4223/64 -G 2001:4b88:10e4::1 settrans -fgp /servers/socket/26 ↩ /hurd/pfinet -4 /servers/socket/2 ↩ - -i eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 ↩ + -i /dev/eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 ↩ -A 2001:4b88:10e4:0:216:3eff:feff:4223/64 -G 2001:4b88:10e4::1 |