A quarter of the Hurd, Q4 of 2011: Nix-based builds and bounty: slab allocator merged.
This quarter, Ludovic Courtès contributed a continuously-built Nix-based QEMU image, raising the count of GNU/Hurd distributions to three: Debian GNU/Hurd, Arch Hurd, and now Nix. His build is still pretty basic, but a step into the right direction: continuous integration is a great facility for automated testing.
Samuel Thibault followed suit with a new Debian GNU/Hurd disk set as a christmas gift, and identified three easy porting cases with solutions:
- undefined reference to
dl_*
: add-ldl
for building - undefined reference to
main
: missinggnu*
case in the linking part ofconfigure.ac
or.in
- undefined reference to
clock_gettime
orcrypt
: add-lrt
or-lcrypt
These should help all those who want to help porting packages.
Maksym Planeta and Richard Braun finished integration of the slab allocator. From IRC, freenode, #hurd, 2011-11-14:
<braunr> there shouldn't be any noticeable difference [...]
<braunr> a bit less fragmentation
<braunr> more memory can be reclaimed by the VM system
<braunr> there are debugging features
<braunr> it's SMP ready
<braunr> and overall cleaner than the zone allocator
<braunr> although a bit slower on the free path (because of
what's performed to reduce fragmentation)
<braunr> but even "slower" here is completely negligible
This also concludes our first FOSS Factory project -- one bounty has been redeemed, more are waiting.
Sergio Lopez documented his work on better memory management and memfs, making it easier for other hackers to join in working on that topic.
Our hackers also used the quarter for porting a good number of packages and
fixing bugs. After fixing quirks in the Hurd's memory management system,
Sergio Lopez reported success building
webkitgtk+, whose
build stresses the available memory resources on a 32-bit architecture to a
large extent. Svante Signell was busy, too:
pax,
abiword,
syslog-ng,
ecl,
fakeroot,
daemon, and
procps,
e2fsprogs' quota.
Samuel Thibault handled
packagekit,
evolution,
emacs23,
gcc-4.7, and
iceweasel
(firefox). Bouju
Alain submitted a
patch to
support /proc/cpuinfo
. Ludovic Courtès contributed a patch to allow for
/hurd/init
being
symlink,
made the Hurd build with glibc
2.14+, and
worked with the GNU coreutils
team on a
few issues. Pino Toscano improved recvfrom
with NULL
address
ports.
Maksym Planeta continued working on
tmpfs.
Samuel Thibault turned /dev/random
and /dev/urandom
into native
translators,
modernized libtool's
configuration,
mknod's cleanup in error
cases,
fixed POSIX 2008
visibility,
and fixed an issue in setresuid
that broke sudo
.
Pino
Toscano and
Thomas
Schwinge
improved key handling in libpthread. Guillem Jover fixed Mach's int
vs. long
discrepancy, which
takes us the first step towards porting the system to
x86 64.
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 -- and maybe already grab the source code 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.
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.