[Soc-coordination] Weekly report (11th week) - Debian GNU/Hurd Debianish initialization
4winter at informatik.uni-hamburg.de
4winter at informatik.uni-hamburg.de
Fri Aug 30 15:32:34 UTC 2013
.. link:
.. description:
.. tags: gsoc, debian, hurd
.. date: 2013/08/30 16:56:18
.. title: What will I do next? cgroupfs \o/
.. slug: what-will-i-do-next-cgroupfs-o
With the `ifupdown` fixes that I published last week I actually
reached my initial goal, that is to make Debian/Hurd boot using
`sysvinit` and the `initscripts` provided by Debian. So on Monday we
were discussing in #hurd what I could do next. Michael Banck suggested
that I should port Upstart, but we agreed to do something different
instead for two reasons:
1. Upstart and systemd are somewhat competing to be the default init
system for Debian, and we felt it might be inappropriate to get
involved with this question as porting Upstart to Hurd would
probably also enable it to be used on FreeBSD. The Upstart folks
could then point out that Upstart is more portable because it runs
on all kernels used by Debian.
2. Upstart uses ptrace(2) to track child processes of servers it
monitors. Obviously this is kind of a hack, and it was conjectured
that Upstart would eventually use cgroups to do that. Also, the
Hurd lacks support for ptrace(2) (that is most likely by choice by
the way, ptrace(2) is not a nice interface and the Hurd (Mach
actually) has much nicer interfaces to implement a debugger).
So we decided that no matter how the struggle between Upstart and
systemd turns out, the Hurd would eventually need to support
cgroups. So I started to write a cgroupfs translator, it is in its
early stages but it already looks and acts a lot like Linux' cgroups::
% settrans -ac cg ./cgroupfs --release-agent=foobar
% ls cg
release_agent tasks
% tail -n3 cg/tasks
11395
12869
1266
% mkdir cg/foo
% echo 1266 >> cg/foo/tasks
% tail -n3 cg/tasks cg/foo/tasks
==> cg/tasks <==
215
11395
12869
==> cg/foo/tasks <==
1266
To make this fully functional I will have to modify `/hurd/proc` and
most likely also GNU Mach, but on the bright side this will help make
`subhurds <http://www.gnu.org/software/hurd/hurd/subhurd.html>`_
(Hurds native, by-design-for-free-and-without-overhead container like
functionality) work better and more securely (among other things this
could enable non-root users to start subhurds). I will also look into
porting `libcg <http://libcg.sourceforge.net/>`_ (I have a hacky patch
series ready) so that we can actually test the cgroupfs
translator. All current users of the cgroup interface are very Linux
specific (surprise!), and libcg looks like the easiest one to
port. And they do have a test suite that could help me improve the
cgroupfs translator.
More information about the Soc-coordination
mailing list