summaryrefslogtreecommitdiff
path: root/news/2012-q2.mdwn
blob: 71bae98329a5107bb26d5688f88dd8a2baa33115 (plain)
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
[[!meta copyright="Copyright © 2012 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 QotH.  -->

A quarter of the Hurd, Q2 of 2012: *GSoC*, *POSIX* and *reduced barrier of entry*.
[[!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 Jeremie Koenig released the final [report](http://www.bddebian.com/~hurd-web/user/jkoenig/java/report) on his GSoC project Java on Hurd  along with a summary of his changes and the [challenges](http://lists.gnu.org/archive/html/bug-hurd/2012-01/msg00062.html) he bested. In a similar track, Samuel Thibault [merged the slab branch](http://lists.gnu.org/archive/html/bug-hurd/2012-02/msg00010.html), finishing Maksym Planetas GSoC work on a better memory allocator. 

Also Pino Toscano improved the POSIX compliance of the Hurd [for nanosleep](http://lists.gnu.org/archive/html/bug-hurd/2012-04/msg00130.html) [ptsname_r](http://lists.gnu.org/archive/html/bug-hurd/2012-04/msg00122.html), 
[getlogin_r](http://lists.gnu.org/archive/html/bug-hurd/2012-04/msg00121.html), [getgroups](http://lists.gnu.org/archive/html/bug-hurd/2012-04/msg00120.html) and [sendto](http://lists.gnu.org/archive/html/bug-hurd/2012-06/msg00009.html), making it easier to port POSIX programs, and Samuel Thibault [added Thread Local support (TLS)](http://lists.gnu.org/archive/html/bug-hurd/2012-05/msg00046.html), further improving the standards conformance of the Hurd and paving the way for C++11x.

Samuel Thibault, Ludovic Courtès and Thomas Schwinge reduced the barrier of entry into hacking the Hurd. 

As part of this, Samuel prepared [dde in incubator](http://lists.gnu.org/archive/html/bug-hurd/2012-02/msg00037.html), making about half the Linux network drivers compile on the Hurd. Also he added the [netdde debian package and testing notes](http://lists.gnu.org/archive/html/bug-hurd/2012-02/msg00038.html). 

Ludovic added [a continuous testing framework](http://lists.gnu.org/archive/html/bug-hurd/2012-03/msg00019.html) using a Nix-based GNU QEMU image. Since Hurd can now be built using „Nix“ (german for nothing), how about asking a colleague to revise his image of the Hurd as vaporware and showing him vapor chugging away on a compile of your favorite free program? If you don’t want to install the Hurd yourself, you can also check the [automatic tests on hydra](http://hydra.nixos.org/jobset/gnu/hurd-master) ([background](http://lists.gnu.org/archive/html/bug-hurd/2012-04/msg00104.html)).

Thomas on the other hand [moved](http://lists.gnu.org/archive/html/bug-hurd/2012-03/msg00063.html) the translators [cvsfs](http://git.savannah.gnu.org/cgit/hurd/incubator.git/log/?h=cvsfs/master), [libfuse](http://git.savannah.gnu.org/cgit/hurd/incubator.git/log/?h=libfuse/master) and [smbfs](http://git.savannah.gnu.org/cgit/hurd/incubator.git/log/?h=smbfs/master) into the incubator git repository, reducing the barrier of entry to improving them, so integrating cvs and samba in the filesystem and using FUSE translators can be stabilized more easily. Also he [improved the Hurd build system](http://lists.gnu.org/archive/html/bug-hurd/2012-04/msg00087.html), making it easier to get in: „running autoreconf is all you need“.

Additionally Roland McGrath [merged many libc changes](http://lists.gnu.org/archive/html/bug-hurd/2012-05/msg00033.html) for upstream inclusion, reducing the maintenance load for getting recent improvements of libc.

Ludovic Courtes, Maksym Planeta, Samuel Thibault and Richard Braun took a dive into the core of the Hurd. Ludovic [fixed invalid port deallocation in `symlink'](http://lists.gnu.org/archive/html/bug-hurd/2012-03/msg00013.html) and [made console-run resilient against missing /dev/console](http://lists.gnu.org/archive/html/bug-hurd/2012-03/msg00002.html), improving the overall reliability of the system. Maksym [tested the performance of tmpfs](http://lists.gnu.org/archive/html/bug-hurd/2012-03/msg00040.html), showing a speedup from 22s with ramfs and ext2fs to 16s with tmpfs for apt-get calls, showing the possible wins due to going deep. An obvious usecase for tmpfs are [faster Hurd LiveCDs](http://lists.gnu.org/archive/html/bug-hurd/2012-03/msg00050.html). Samuel made it easier to dive in by [improving debugging in GNU Mach](http://lists.gnu.org/archive/html/bug-hurd/2012-03/msg00032.html). The debugger is now aware of the difference between kernel space and user space. This should substantially reduce the development time for features in Mach by giving [nicer stack traces](http://lists.gnu.org/archive/html/bug-hurd/2012-03/msg00047.html). And in the deepest core of the Mach, Richard improved memory mapping [with a red-black tree](http://lists.gnu.org/archive/html/bug-hurd/2012-04/msg00109.html), which should speed up memory access.

As usually, we also saw lots of ported packages, including Richards work on [libpcap](http://lists.gnu.org/archive/html/bug-hurd/2012-01/msg00059.html) which brought wireshark and [pcap_inject](http://lists.gnu.org/archive/html/bug-hurd/2012-03/msg00000.html) for easier network testing, [libtool](http://lists.gnu.org/archive/html/bug-hurd/2012-02/msg00023.html) thanks to Samuel Thibault and Peter O'Gorman, [gnat](http://lists.gnu.org/archive/html/bug-hurd/2012-03/msg00060.html) by Svante Signell for basics of ADA support, which gives us the option to use provable programs optimized for embedded systems with the Hurd, and [iconx](http://lists.gnu.org/archive/html/bug-hurd/2012-06/msg00004.html) thanks to Samuel Thibault, which fullfills a requirement of tests for many packages, among them glib. Also Thomas DiModica [merged](http://lists.gnu.org/archive/html/bug-hurd/2012-06/msg00018.html) the cthreads to pthreads patch to Hurd master and [added a branch for it](http://lists.gnu.org/archive/html/bug-hurd/2012-07/msg00087.html) to make it easier to work on getting Hurd to use the more current pthreads. For details, see Richards report about running [Hurd without dependency on cthreads](http://lists.gnu.org/archive/html/bug-hurd/2012-08/msg00062.html). And Roland McGrath [merged many libc changes](http://lists.gnu.org/archive/html/bug-hurd/2012-05/msg00033.html) for upstream inclusion, reducing the maintenance load for getting recent improvements of libc.

And now, as a final note, we want to share a story about real-life debugging with the
Hurd; IRC, freenode, #hurd, 2012-03-02:

    <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 experience enjoyable debugging of code deep in the core of your system,
please [[get in contact|contact_us]] -- and maybe already grab the [[source
code|source_repositories]].

---

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_qoth]] for additional information on writing the QotH.-->

"""]]