summaryrefslogtreecommitdiff
path: root/hurd
diff options
context:
space:
mode:
Diffstat (limited to 'hurd')
-rw-r--r--hurd/faq/smp.mdwn17
-rw-r--r--hurd/porting/guidelines.mdwn37
-rw-r--r--hurd/running/debian/faq/512_mib_ram_limit.mdwn15
-rw-r--r--hurd/running/debian/faq/debugging_translators.mdwn4
-rw-r--r--hurd/running/debian/faq/eata.mdwn13
-rw-r--r--hurd/running/debian/faq/ps_hangs.mdwn3
-rw-r--r--hurd/running/qemu.mdwn5
-rw-r--r--hurd/translator/unionfs.mdwn6
8 files changed, 89 insertions, 11 deletions
diff --git a/hurd/faq/smp.mdwn b/hurd/faq/smp.mdwn
new file mode 100644
index 00000000..953784da
--- /dev/null
+++ b/hurd/faq/smp.mdwn
@@ -0,0 +1,17 @@
+[[!meta copyright="Copyright © 2009 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="Does GNU/Hurd support SMP/Multicore?"]]
+
+The Hurd servers themselves are multithreaded, so they should be able to take benefit of the parallelism brought by SMP/Multicore boxes. This has however never been tested yet because of the following.
+
+Mach used to be running on SMP boxes like the [[http://en.wikipedia.org/wiki/Intel_iPSC/860 | iPSC 860]], so has an infrastructure for running on them. It has however not (yet) been ported to nowadays' SMP standards like ACPI etc.
+
+That is why for now GNU/Hurd will only uses one logical processor (i.e. one core or one thread, depending on the socket type).
diff --git a/hurd/porting/guidelines.mdwn b/hurd/porting/guidelines.mdwn
index bcfc8dd5..8dd27a52 100644
--- a/hurd/porting/guidelines.mdwn
+++ b/hurd/porting/guidelines.mdwn
@@ -232,3 +232,40 @@ Not implemented, not POSIX. Try to disable the feature in the package.
## <a name="parport"> <linux/parport.h> <linux/ppdev.h> </a>
There is no programming interface for the parallel port on GNU/Hurd yet.
+
+## <a name="errno"> `errno` values </a>
+
+When dealing with `errno`, you should always use the predefined error codes defined with the `E*` constants, instead of manually comparing/assigning/etc with their values.
+
+For example (C/C++):
+
+ /* check whether it does not exist */
+ if (errno == 2)
+ ...
+
+or Python:
+
+ # check whether it does not exist
+ try:
+ ...
+ except OSError, err:
+ err.errno == 2:
+ ...
+
+This is wrong, as [the actual values of the `E*` are unspecified (per POSIX)](http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_03.html#tag_02_03). You must always use the predefined constants for the possible errors.
+
+For example (C/C++):
+
+ /* check whether it does not exist */
+ if (errno == ENOENT)
+ ...
+
+With Python, you can use the [`errno` module](http://docs.python.org/library/errno.html) for the various constants:
+
+ # check whether it does not exist
+ try:
+ ...
+ except OSError, err:
+ import errno
+ err.errno == errno.ENOENT:
+ ...
diff --git a/hurd/running/debian/faq/512_mib_ram_limit.mdwn b/hurd/running/debian/faq/512_mib_ram_limit.mdwn
index 90c16a69..f89a5c01 100644
--- a/hurd/running/debian/faq/512_mib_ram_limit.mdwn
+++ b/hurd/running/debian/faq/512_mib_ram_limit.mdwn
@@ -10,9 +10,12 @@ is included in the section entitled
[[!meta title="512 MiB RAM Limit"]]
-GNU Mach does not cope well with lots of memory. Newer versions of the Debian
-`gnumach` package will limit themselves to around 1 GiB of memory. If you have
-an older version, or still experience problems with `vmstat` (see above)
-reported much less memory than you have, the best is to limit the memory it can
-see via GRUB's `upppermem` feature. Add `uppermem 786432` to GRUB's Hurd entry
-in `menu.lst`.
+Just like any 32bit OS without bad tricks, GNU Mach does not cope well with lots
+of memory. Newer versions of the Debian `gnumach` package will limit themselves
+to around 1 GiB of memory. If you want more, you can twiddle the VM_MAX_ADDRESS
+limit between kernelland and userland in i386/include/mach/i386/vm_param.h.
+
+If you have an older version, or still experience problems with `vmstat` (see
+above) reported much less memory than you have, the best is to limit the memory
+it can see via GRUB's `upppermem` feature. Add `uppermem 786432` to GRUB's Hurd
+entry in `menu.lst`.
diff --git a/hurd/running/debian/faq/debugging_translators.mdwn b/hurd/running/debian/faq/debugging_translators.mdwn
index d3aadec8..b55484e1 100644
--- a/hurd/running/debian/faq/debugging_translators.mdwn
+++ b/hurd/running/debian/faq/debugging_translators.mdwn
@@ -9,9 +9,7 @@ is included in the section entitled
[[GNU Free Documentation License|/fdl]]."]]"""]]
In order to [[debug|debugging]] translators and being able to step into glibc
-during it, you need the `hurd-dbg` and `libc0.3-dbg` packages installed. Then
+during it, you need the `hurd-dbg` and `libc0.3-dbg` packages installed. If you need to debug the initialization of the translator,
start the translator like `settrans -P /foo /usr/bin/env
LD\_LIBRARY\_PATH=/usr/lib/debug /hurd/foofs`. The `-P` option will make it
pause and you will be able to attach [[debugging/GDB]] to the process.
-
-Is starting the translator like this really needed?
diff --git a/hurd/running/debian/faq/eata.mdwn b/hurd/running/debian/faq/eata.mdwn
new file mode 100644
index 00000000..fa7dbdec
--- /dev/null
+++ b/hurd/running/debian/faq/eata.mdwn
@@ -0,0 +1,13 @@
+[[!meta copyright="Copyright © 2010 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]]."]]"""]]
+
+In some virtual machines (e.g. VirtualBox), "probing eata on XXX" may be
+quite long. This is apparently due to poor efficiency of the virtualizer, not
+Mach. There is no such issue on real hardware or using qemu/kvm.
diff --git a/hurd/running/debian/faq/ps_hangs.mdwn b/hurd/running/debian/faq/ps_hangs.mdwn
index b5e35420..febfeb59 100644
--- a/hurd/running/debian/faq/ps_hangs.mdwn
+++ b/hurd/running/debian/faq/ps_hangs.mdwn
@@ -8,4 +8,5 @@ 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 `ps` hangs, try `ps -M` which might still work.
+If `ps` hangs, try `ps -M` which might still work by not getting detailed
+information from processes.
diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn
index b3346af1..6b9062e9 100644
--- a/hurd/running/qemu.mdwn
+++ b/hurd/running/qemu.mdwn
@@ -108,6 +108,11 @@ If you just want to access the internet from within QEMU, you can setup pfinet f
(See also <http://www.nongnu.org/qemu/qemu-doc.html#SEC32>.)
Outgoing internet connections should just work then.
+Testing it can be difficult with a minimal installation,
+but `apt-get update` should work after you have filled out
+`/etc/apt/sources.list`.
+After that you should be able to install other network packages,
+but note that `ping` doesn't work with QEMU's user-networking stack.
If you want to connect from the host system to the Hurd system running in QEMU, you need to setup something more advanced, like bridged networking.
diff --git a/hurd/translator/unionfs.mdwn b/hurd/translator/unionfs.mdwn
index 331ad19f..d1e3868b 100644
--- a/hurd/translator/unionfs.mdwn
+++ b/hurd/translator/unionfs.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2010 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
@@ -73,6 +74,9 @@ both for comparision.) The ethernet multiplexer shall serve as an example use
case -- any changes necessary to allow using it with the union mount
functionality are also to be considered part of the task.
+[[Sergiu Ivanov|scolobb]] has been working on this as a [[Google Summer of Code
+2009 project|community/gsoc/2009]].
+
## Implementation
### Source