1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
[[!meta copyright="Copyright © 2011 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]]."]]"""]]
<!-- Date when the news item is (to be) pulished (important for RSS feeds).
Will be set by tschwinge when publishing.
[[!meta date="YYYY-MM-DD HH:MM UTC"]]
-->
<!-- This is just a skeleton. Use it to create a new MotH. -->
A month of the Hurd: *nix-based builds, *slab allocator*, and *life filesystem debugging*.
[[!if test="included()" then="""[[!toggle id=full_news
text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]"""
else="
[[!paste id=full_news]]"]]
[[!cut id="full_news" text="""
This quarter Ludovic Courtès added a [Continuously-built Nix-based QEMU image](http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00047.html), raising the count of Hurd distributions to 3: Debian, Arch and now Nix. His build is still pretty basic, but continuous integration is a great feature for testing images.
Also he added a [modern Autoconf initialization](http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00068.html), [allowed /hurd/init to be a symlink](http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00032.html) and made the Hurd [build with Savannah’s libc (2.14+)](http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00025.html), getting the Nix distribution even more towards the cutting edge.
Samuel Thibault followed up with a [new debian disk set](http://lists.debian.org/debian-hurd/2011/12/msg00095.html) as christmas gift, turned /dev/urandom into a [native translator](http://lists.debian.org/debian-hurd/2011/11/msg00092.html) and [identified](http://lists.debian.org/debian-hurd/2011/11/msg00095.html) three easy porting cases with solutions:
- undefined reference to dl_foo: add -ldl for building
- undefined reference to `main': missing gnu* case in the linking part of configure.ac or .in (pd-* packages are already being handled by their maintainer)
- undefined reference to clock_gettime or crypt: add -lrt or -lcrypt
These should help all those who want to help [[porting_packages|hurd/porting/]].
Maksym Planeta and Richard Braun committed [the last patches](http://lists.gnu.org/archive/html/bug-hurd/2011-12/msg00046.html) for integration of the slab allocator, making the memory allocator of GNU Mach SMP ready again. From IRC, freenode, #hurd, 2011-11-14:
(22:30:39) braunr: there shouldn't be any noticeable difference with the
master branch
(22:30:46) braunr: a bit less fragmentation
(22:30:55) braunr: more memory can be reclaimed by the VM system
(22:31:02) braunr: there are debugging features
(22:31:06) braunr: it's SMP ready
(22:31:15) braunr: and overall cleaner than the zone allocator
(22:31:31) braunr: although a bit slower on the free path (because of
what's performed to reduce fragmentation)
(22:32:42) braunr: but even "slower" here is completely negligible
Also Richard Brauh added [Exodar](http://exodar.debian.net), a new porter box. It is faster and more reliable, which facilitates testing and bug hunting.
Additionally [[documentation_of_the_I/O_Path|[[hurd/io_path/]]]] was improved and Sergio Lopez documented his work on [[Better_Memory_Management_and_memfs|user/Sergio_Lopez/]] to make it easier for other hackers to work on the Hurd.
Our hackers also used the quarter for porting a good number of packages. Sergio Lopez took care of [webkitgtk+](http://lists.debian.org/debian-hurd/2011/10/msg00025.html), while Svante Signell from [Arch Hurd](http://archhurd.org) went on a porting rampage with [pax](http://lists.debian.org/debian-hurd/2011/10/msg00105.html), [abiword](http://lists.debian.org/debian-hurd/2011/11/msg00035.html), [syslog-ng](http://lists.debian.org/debian-hurd/2011/11/msg00060.html), [ecl](http://lists.debian.org/debian-hurd/2011/11/msg00058.html), [fakeroot](http://lists.debian.org/debian-hurd/2011/12/msg00022.html), [daemon](http://lists.debian.org/debian-hurd/2011/12/msg00025.html) and [procps](http://lists.debian.org/debian-hurd/2011/12/msg00046.html) and the Samuel Thibault from [Debian GNU/Hurd](http://www.debian.org/ports/hurd/) followed up with [packagekit](http://lists.debian.org/debian-hurd/2011/10/msg00071.html), [evolution](http://lists.debian.org/debian-hurd/2011/10/msg00070.html), [emacs23 ](http://lists.debian.org/debian-hurd/2011/12/msg00018.html), [gcc-4.7](http://lists.debian.org/debian-hurd/2011/12/msg00065.html) and [iceweasel (firefox)](http://lists.debian.org/debian-hurd/2011/12/msg00080.html). Also Bouju Alain [submitted](http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00079.html) [patches](http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00084.html) to support cpuinfo in the /proc interface.
Additionally many many bugs were found and squashed, by Pino Toscano ([recvfrom() with null](http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00161.html)(, Maksym Planeta ([tmpfs](http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00125.html http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00118.html)), Samuel Thibault ([libtool](http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00073.html), [mknod](http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00070.html), [Fix POSIX 2008 visibility](http://lists.gnu.org/archive/html/bug-hurd/2011-12/msg00004.html), [sudo setresuid](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=645285)), Jim Meyering ([gnu tools with user id 4294967295](http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00094.html)), Paul Eggert ([Add error-checking on GNU](http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00130.html), Pino Toscano and Thomas Schwinge ([improved pthread](http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00013.html)) and Svante Signell ([e2fsprogs quota](http://lists.debian.org/debian-hurd/2011/10/msg00015.html) to list only the ones who posted their fixes on the mailing list.
Also Guillem Jover [fixed Mach's int vs long discrepancy](http://lists.debian.org/debian-hurd/2011/10/msg00053.html), which takes us the first step towards porting the Hurd to x64.
And there are now social network sites for GNU Hurd on [Google+](https://plus.google.com/114942488385711891227#114942488385711891227/posts) and the AGPL licensed [identi.ca](http://identi.ca/group/hurd), to make it easier to stay in touch.
As a final note, we want to share a story about real-life debugging with the Hurd:
<youpi> yay GNU/Hurd
<youpi> I have added i_translator check in e2fsck, it was missing
<youpi> I had a volume that was keeping making ext2fs crash
<youpi> with a reproductible scenario
<youpi> could easily work out it was i_translator, then add a check to e2fsck, run it, which indeed fixed, them, and voilà, ext2fs was working again
<youpi> all that on the same machine with *no* system reboot
<youpi> just ext2fs restart :)
So if you want to join us in our journey to realize more of the promises of the architecture of the Hurd, please [[get_in_contact|contact_us]] -- and maybe already grab the [[source_code|source_repositories]] and have fun hacking on free software!
---
The **GNU Hurd** is the GNU project's replacement for the Unix kernel. It is a
collection of servers that run on the Mach microkernel to implement file
systems, network protocols, file access control, and other features that are
implemented by the Unix kernel or similar kernels (such as Linux). [[More
detailed|hurd/documentation]].
**GNU Mach** is the microkernel upon which a GNU Hurd system is based. It
provides an Inter Process Communication (IPC) mechanism that the Hurd uses to
define interfaces for implementing in a distributed multi-server fashion the
services a traditional operating system kernel provides. [[More
detailed|microkernel/mach/gnumach]].
<!--see [[contributing/web_pages/news/writing_the_moth]] for additional information on writing the MotH.-->
"""]]
|