summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--advantages.mdwn3
-rw-r--r--community/gsoc.mdwn17
-rw-r--r--community/gsoc/project_ideas.mdwn8
-rw-r--r--community/gsoc/project_ideas/physical_memory_management.mdwn51
-rw-r--r--community/meetings/fosdem_2010.mdwn2
-rw-r--r--community/meetings/fosdem_2013.mdwn2
-rw-r--r--community/meetings/fosdem_2014.mdwn2
-rw-r--r--contributing.mdwn4
-rw-r--r--documentation.mdwn16
-rw-r--r--faq/drivers.mdwn27
-rw-r--r--faq/libpthread_dlopen.mdwn12
-rw-r--r--hurd-paper.html23
-rw-r--r--hurd/documentation.mdwn23
-rw-r--r--hurd/running/debian/dhcp.mdwn18
-rw-r--r--hurd/running/debian/discussion.mdwn1
-rw-r--r--hurd/status/discussion.mdwn24
-rw-r--r--media_appearances.mdwn4
-rw-r--r--microkernel/mach/gnumach/boot_trace.mdwn191
-rw-r--r--news/2015-03-20-gsoc.mdwn (renamed from faq/off.mdwn)13
-rw-r--r--open_issues/ext2fs_dtime.mdwn2
-rw-r--r--open_issues/gcc.mdwn4
-rw-r--r--open_issues/kill_setuid.mdwn49
-rw-r--r--open_issues/libpthread_dlopen.mdwn13
-rw-r--r--open_issues/problematic_packages.mdwn3
-rw-r--r--open_issues/symlink_translator.mdwn24
-rw-r--r--open_issues/wine.mdwn4
-rw-r--r--overview.mdwn89
-rw-r--r--recent_changes.mdwn1
-rw-r--r--sidebar.mdwn6
29 files changed, 429 insertions, 207 deletions
diff --git a/advantages.mdwn b/advantages.mdwn
index cb77fd1a..94e64c33 100644
--- a/advantages.mdwn
+++ b/advantages.mdwn
@@ -11,8 +11,7 @@ License|/fdl]]."]]"""]]
[[!tag stable_URL]]
-The GNU Hurd has a number of enticing features:
-It is a free software and anybody can do changes to it for learning purposes.
+The GNU Hurd has a number of enticing features:
It's free software, so anybody can use, modify, and redistribute it under the
terms of the [[GNU General Public License (GPL)|GPL]].
diff --git a/community/gsoc.mdwn b/community/gsoc.mdwn
index 5a373014..8bba2ae9 100644
--- a/community/gsoc.mdwn
+++ b/community/gsoc.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free
+[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Free
Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
@@ -12,18 +12,17 @@ License|/fdl]]."]]"""]]
[[!meta title="Google Summer of Code"]]
<!--
-The Google Summer of Code 2013 is over. Chances are that we will again be
-participating in 2014, stay tuned.
+The Google Summer of Code 2014 is over. Chances are that we will again be
+participating in 2015, stay tuned.
-->
We're in! The GNU Hurd project is again participating in the [Google Summer of
Code](http://www.google-melange.com/) under the [GNU
umbrella](http://www.gnu.org/software/soc-projects/).
-Per the [Google Summer of Code 2014 Program
-Timeline](http://www.google-melange.com/gsoc/events/google/gsoc2014), on
-Monday, from 2014-03-10 to 2014-03-21, it's the *student application period*,
-which
+Per the [Google Summer of Code 2015 Program
+Timeline](http://www.google-melange.com/gsoc/events/google/gsoc2015),
+from 2015-03-16 to 2015-03-27, it's the *student application period*, which
is plenty of time for preparing and discussing your applications -- but please
don't wait to the last minute!
@@ -74,6 +73,7 @@ discussing with our GNU peers about how to split these up among all the GNU
subprojects.
-->
+
# Possible projects
We have a list of [[project_ideas]], and students are likewise encouraged to
@@ -99,6 +99,7 @@ with Hurd development, even outside of the GSoC context. Please don't hesitate
to contact us regarding mentoring even if it's not GSoC time at the moment, or
if you aren't a student anyway.
+
# History
In 2006 and [[2007]], we participated in GSoC under the umbrella of the GNU
@@ -107,4 +108,4 @@ participated on our own, instead of as a suborganization of the GNU project.
Read about our five students' success on the [[2008]] page. In the next years,
we again participated under the GNU umbrella with one slot in [[2009]], three
in [[2010]], one in [[2011]], two in [[2012]], three in [[2013]] (one GNU, one
-GCC, one Debian).
+GCC, one Debian), one in [[2014]].
diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn
index 262ead82..643a4240 100644
--- a/community/gsoc/project_ideas.mdwn
+++ b/community/gsoc/project_ideas.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free
-Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015
+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
@@ -97,7 +97,8 @@ All project ideas inlined:
project_ideas:
- "community/gsoc/project_ideas/language_bindings
+ "community/gsoc/project_ideas/physical_memory_management
+ community/gsoc/project_ideas/language_bindings
community/gsoc/project_ideas/virtualization
community/gsoc/project_ideas/file_locking
community/gsoc/project_ideas/gdb
@@ -105,7 +106,6 @@ project_ideas:
community/gsoc/project_ideas/nfs
community/gsoc/project_ideas/sound
community/gsoc/project_ideas/disk_io_performance
- community/gsoc/project_ideas/vm_tuning
community/gsoc/project_ideas/gnumach_cleanup
community/gsoc/project_ideas/xmlfs
community/gsoc/project_ideas/unionfs_boot
diff --git a/community/gsoc/project_ideas/physical_memory_management.mdwn b/community/gsoc/project_ideas/physical_memory_management.mdwn
new file mode 100644
index 00000000..2baa7a90
--- /dev/null
+++ b/community/gsoc/project_ideas/physical_memory_management.mdwn
@@ -0,0 +1,51 @@
+[[!meta copyright="Copyright © 2015 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="Physical memory management"]]
+
+GNU Mach is currently suffering from severe limitations caused by the way
+it manages physical memory. For example, since it requires pages to be mapped
+in kernel space in order to be used, the maximum amount of usable physical
+memory is currently around 800MB (or 1.8GB if a 2/2 split is set). And
+because the page allocator is unable to easily return blocks of contiguous
+pages, the kernel has to use virtual memory to provide contiguity.
+But the kernel virtual space is separate from the direct mapping of
+physical memory, so the larger it is, the less physical pages available.
+The size of the kernel space is currently around 200MB, with around 100MB
+for kernel objects. This small size prevents the system from achieving
+scalability, since a panic occurs when the kernel is unable to allocate
+a kernel object such as a port. In addition, the kernel uses mainly tables
+to store IPC rights. When a table is full, it is enlarged through a kernel
+specific version of realloc(). When a file system starts managing many
+files (e.g. because some of their content is cached in physical memory),
+these tables can get big enough to make realloc() fail because of
+fragmentation.
+
+The goal of this project is to make as much physical memory available as
+possible for both the kernel and applications, by rewriting the page
+allocator into a buddy allocator to support contiguous block allocations,
+using it directly instead of virtual memory as the backend of the slab
+allocator for kernel objects, and, if time allows it, transform IPC right
+tables (e.g. into radix trees) and get rid of realloc().
+
+This project requires a good understanding of virtual memory (both physical
+mappings at the MMU level and virtual mappings at the VM level), and strong
+skills in C programming. Note that some work has already been done in the
+X15 project about this, and can be reused as a reference.
+
+Useful links :
+
+ * <https://www.sceen.net/mapping-physical-memory-directly/>
+
+ * <http://git.sceen.net/rbraun/x15.git/>
+
+ * <http://git.sceen.net/rbraun/librbraun.git/blob/HEAD:/rdxtree.h>
+
+Possible mentors: Richard Braun
diff --git a/community/meetings/fosdem_2010.mdwn b/community/meetings/fosdem_2010.mdwn
index e42ff1fd..0ef53979 100644
--- a/community/meetings/fosdem_2010.mdwn
+++ b/community/meetings/fosdem_2010.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010 Free Software
+[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010, 2015 Free Software
Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
diff --git a/community/meetings/fosdem_2013.mdwn b/community/meetings/fosdem_2013.mdwn
index 4fafc895..5cbae067 100644
--- a/community/meetings/fosdem_2013.mdwn
+++ b/community/meetings/fosdem_2013.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2012, 2013, 2014 Free Software Foundation,
+[[!meta copyright="Copyright © 2012, 2013, 2014, 2015 Free Software Foundation,
Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
diff --git a/community/meetings/fosdem_2014.mdwn b/community/meetings/fosdem_2014.mdwn
index c5a7d5ba..b68a907d 100644
--- a/community/meetings/fosdem_2014.mdwn
+++ b/community/meetings/fosdem_2014.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2012, 2013, 2014 Free Software Foundation,
+[[!meta copyright="Copyright © 2012, 2013, 2014, 2015 Free Software Foundation,
Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
diff --git a/contributing.mdwn b/contributing.mdwn
index baa182fb..67b84590 100644
--- a/contributing.mdwn
+++ b/contributing.mdwn
@@ -99,9 +99,6 @@ which exposes the partitions of the disk image, using parted, and
the parted-based storeio (`settrans -c foos1 /hurd/storeio -T typed
part:1:file:/home/samy/tmp/foo`). This would be libnetfs-based.
* Write [[virtio drivers for KVM|open_issues/virtio#KVM]].
-* Port valgrind. There is a whole
-[[GSoC proposal|community/gsoc/project_ideas/valgrind]] about this, but the
-basic port could be small.
* Move the [[mount/umount|open_issues/glibc#mount]] logic from
`utils/{,u}mount.c` into [[glibc]].
* Fix [[`/proc/self`|hurd/translator/procfs/jkoenig/discussion#self]].
@@ -110,6 +107,7 @@ lookups|hurd/interface/dir_lookup]] work.
* Add a tool to trace system calls, by using gnumach's Syscall-Emulation, see <http://www.gnu.org/software/hurd/gnumach-doc/Syscall-Emulation.html>
* Improve our [[FUSE library|hurd/libfuse]].
* Add a relatime or lazytime option to ext2fs.
+* Fix our [[open_issues/symlink_translator]].
<a name="porting"></a>
## Porting Packages
diff --git a/documentation.mdwn b/documentation.mdwn
index 7f652e70..f2c30737 100644
--- a/documentation.mdwn
+++ b/documentation.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2008, 2010, 2011 Free Software Foundation,
+[[!meta copyright="Copyright © 2008, 2010, 2011, 2015 Free Software Foundation,
Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
@@ -52,6 +52,11 @@ text="*[[shapiro\_capintro\_1999|capability]]*:
system architecture.
+# Quick overview
+
+You may want to start reading a [[quick overview|overview]] of how the GNU/Hurd system
+starts, and thus how it is structured.
+
# FAQ
[[FAQ]]
@@ -59,7 +64,14 @@ text="*[[shapiro\_capintro\_1999|capability]]*:
# Specific Components
-Documentation for...
+The GNU/Hurd system is composed of the Hurd servers running on top of the
+GNU Mach microkernel. Mach only handles scheduling tasks and threads, memory
+management, and message passing. Mig is used to abstract RPCs on top of Mach's
+message passing. Eventually, the Hurd servers and Unix processes discuss with
+each other using these RPCs.
+
+Depending on your background, you may want to start reading the documentation
+from userlandish interfaces (Hurd) or from the micro kernel itself (Mach).
* [[GNU_Hurd|hurd/documentation]]
diff --git a/faq/drivers.mdwn b/faq/drivers.mdwn
index 57ed7ea9..50bd4542 100644
--- a/faq/drivers.mdwn
+++ b/faq/drivers.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2009, 2013 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2009, 2013, 2015 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
@@ -10,18 +11,18 @@ License|/fdl]]."]]"""]]
[[!tag faq/support faq/_important]]
-[[!meta title="What drivers does GNU/Hurd have?"]]
+[[!meta title="what hardware is supported? What drivers does GNU/Hurd have?"]]
+
+Currently, for disks Mach integrates old drivers from Linux through some
+[[community/gsoc/project_ideas/driver_glue_code]], which provide
+IDE disk support, and we have an AHCI driver which provides [[SATA
+support|faq/sata_disk_drives]]. For network boards, we use the [[DDE]] toolkit
+to run linux 2.6.32 drivers in userland processes, which provides both long-term
+support for new hardware and safety against driver bugs. Note however that we
+have of course not tested all drivers, we obviously don't even have all kinds of
+hardware. So we can not promise that they will all work. What probably
+works for sure is what we usually use: the rtl8139 and e1000 drivers for
+instance. Firmware loading is not implemented yet.
-Currently, for disks Mach integrates drivers from Linux 2.0 through some
-[[community/gsoc/project_ideas/driver_glue_code]]. As it's very old, that
-limits hardware support a lot, of course. For network boards, we use the
-[[DDE]] toolkit to run linux 2.6.32 drivers in userland processes,
-which provides both long-term support for new hardware and safety against driver
-bugs. Firmware loading is however not implemented yet.
[[microkernel/mach/gnumach/ports/Xen]] is also supported, both blkfront and
netfront.
-
-Note however that we have of course not tested all drivers, we obviously don't
-even have all kinds of hardware. So we can not promise that they will all
-work. What probably works for sure is what we usually use: the rtl8139 or e1000
-drivers for instance.
diff --git a/faq/libpthread_dlopen.mdwn b/faq/libpthread_dlopen.mdwn
index 94d091a4..3b365fad 100644
--- a/faq/libpthread_dlopen.mdwn
+++ b/faq/libpthread_dlopen.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2013, 2014 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2013, 2014, 2015 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
@@ -14,12 +15,13 @@ License|/fdl]]."]]"""]]
Some applications don't themselves link against libpthread, but then load
plugins which do link against libpthread. This means internally switching from
-single-threading to multi-threading, which is [[not yet
-supported|open_issues/libpthread_dlopen]] by our [[/libpthread]], and results
-in errors such as:
+single-threading to multi-threading, which is only supported since libc0.3
+2.19-16~2. Previously, it would result in errors such as:
./pthread/../sysdeps/generic/pt-mutex-timedlock.c:70: __pthread_mutex_timedlock_internal: Assertion `__pthread_threads' failed.
-This can be worked around by making the application link against libpthread (i.e. not only the plugin, but also the main binary), or without recompiling by explicitly pre-loading libpthread, for example:
+This could be worked around by making the application link against libpthread (i.e. not only the plugin, but also the main binary), or without recompiling by explicitly pre-loading libpthread, for example:
$ LD_PRELOAD=/lib/i386-gnu/libpthread.so.0.3 [application]
+
+But it should now be gone, simply upgrade libc0.3.
diff --git a/hurd-paper.html b/hurd-paper.html
index 880f5fca..272b7178 100644
--- a/hurd-paper.html
+++ b/hurd-paper.html
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 1996, 1997, 1998, 2007, 2008, 2009 Free Software
-Foundation, Inc."]]
+[[!meta copyright="Copyright © 1996, 1997, 1998, 2007, 2008, 2009, 2015 Free
+Software Foundation, Inc."]]
[[!meta license="Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved."]]
@@ -21,7 +21,9 @@ The design and implementation of the Hurd is being lead by Michael
Bushnell, with assistance from Richard Stallman, Roland McGrath,
Jan Brittenson, and others.
+<a name=design>
<H2>Part 1: A More Usable Approach to OS Design</H2>
+</a>
<P>
The fundamental purpose of an operating system (OS) is to enable a variety of
programs to share a single computer efficiently and productively.
@@ -148,7 +150,9 @@ None of the remaining services carry any special
status; not the network implementation, the filesystems, the program
execution mechanism (including setuid), or any others.
+<a name=translator>
<H3>The Translator Mechanism</H3>
+</a>
<P>
The Hurd uses Mach ports primarily as methods for communicating between users
and servers.
@@ -324,7 +328,9 @@ those semantics to allow users to improve, bypass, or replace them.
<H2>Part 2: A Look at Some of the Hurd's Beasts</H2>
+<a name=auth>
<H3>The Authentication Server</H3>
+</a>
<P>
One of the Hurd's more central servers is the authentication server.
Each
@@ -363,7 +369,9 @@ we have designed its interface to make any safe operation possible, and to
include no extraneous operations.
(This is why there is a separate password
server.)
+<a name=proc>
<H3>The Process Server</H3>
+</a>
<P>
The process server acts as an information categorization repository.
There
@@ -419,7 +427,9 @@ Those process server features which do not require root privileges
to be implemented could be done as per-user servers.
The user's hands are
not tied.
+<a name=ftpfs>
<H3>Transparent FTP</H3>
+</a>
<P>
Transparent FTP is an intriguing idea whose time has come.
The popular
@@ -429,7 +439,8 @@ virtually transparent to all the Emacs file manipulation functions.
Transparent FTP does the same thing, but in a system wide fashion.
This
server is not yet written; the details remain to be fleshed out, and will
-doubtless change with experience.
+doubtless change with experience [Note: since the writing of this, ftpfs was
+implemented and works as described here]
<P>
In a BSD kernel, a transparent FTP filesystem would be no harder to write
than in the Hurd.
@@ -492,7 +503,9 @@ more /ftp/ftp.uu.net/inet/rfc/rfc1097.
</CODE>
A copy command to a local disk
could be used if the RFC would be read frequently.
+<a name=fs>
<H3>Filesystems</H3>
+</a>
<P>
Ordinary filesystems are also being implemented.
The initial release of the
@@ -529,7 +542,9 @@ deficiencies.
There will also be various ``little'' filesystems, such as the
MS-DOS filesystem, to help people move files between GNU and other OSs.
+<a name=term>
<H3>Terminals</H3>
+</a>
<P>
An I/O server will provide the terminal semantics of Posix.
The GNU C
@@ -574,7 +589,9 @@ Instead they will be using the
underlying Mach device ports for terminals, which support moving large
amounts of data efficiently.
+<a name=exec>
<H3>Executing Programs</H3>
+</a>
<P>
The implementation of the
<CODE>execve</CODE>
diff --git a/hurd/documentation.mdwn b/hurd/documentation.mdwn
index ec19e90b..944b5c98 100644
--- a/hurd/documentation.mdwn
+++ b/hurd/documentation.mdwn
@@ -1,5 +1,5 @@
[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-2009, 2011, 2012 Free Software Foundation, Inc."]]
+2009, 2011, 2012, 2015 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
@@ -20,9 +20,24 @@ is included in the section entitled
* [[*The_Hurd_and_Linux*|/hurd-and-linux]], a comment by Richard Stallman.
* [[*Towards_a_New_Strategy_of_OS_Design*|/hurd-paper]], an architectural
- overview by Thomas Bushnell, BSG.
-
- * [[*The_Hurd*|/hurd-talk]], a presentation by Marcus Brinkmann.
+ overview by Thomas Bushnell, BSG, notably:
+
+ * [[The design|/hurd-paper#design]]
+ * [[Translators|/hurd-paper#translator]]
+ * [[The auth translator|/hurd-paper#auth]]
+ * [[The proc translator|/hurd-paper#proc]]
+ * [[The exec translator|/hurd-paper#exec]]
+ * [[The ftpfs translator|/hurd-paper#ftpfs]]
+
+ * [[*The_Hurd*|/hurd-talk]], a presentation by Marcus Brinkmann, notably:
+
+ * [[How to get a port?|/hurd-talk#how]]
+ * [[Pathname resolution example|/hurd-talk#pat]]
+ * [[Mapping the POSIX Interface|/hurd-talk#map]]
+ * [[Active vs Passive|/hurd-talk#act]]
+ * [[Authentication|/hurd-talk#aut]]
+ * [[Password Server|/hurd-talk#pas]]
+ * [[Process Server|/hurd-talk#pro]]
* The *[[translator_primer]]*.
diff --git a/hurd/running/debian/dhcp.mdwn b/hurd/running/debian/dhcp.mdwn
index 8846769a..aa9adfd9 100644
--- a/hurd/running/debian/dhcp.mdwn
+++ b/hurd/running/debian/dhcp.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2011, 2012, 2013, 2014 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2011, 2012, 2013, 2014, 2015 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
@@ -11,20 +11,6 @@ License|/fdl]]."]]"""]]
[[!tag open_issue_porting]]
-In order to use DHCP, you need to install the `ifupdown` and `isc-dhcp-client`
-packages, and manually create the following symbolic link:
-
- # ln -s ../rcS.d/S10networking /etc/rc.boot/
-
-During execution at boot time, the `S10networking` script will emit some error
-messages while trying to configure the loopback interface. These are not
-fatal.
-
-Debian GNU/Hurd doesn't currently execute Debian standard `/etc/rcS.d/*` boot
-scripts, but has its own `/libexec/rc` script -- which integrates scripts from
-`/etc/rc.boot/` instead.
-
-
# Open Issues
* [[!debbug 616290]]
diff --git a/hurd/running/debian/discussion.mdwn b/hurd/running/debian/discussion.mdwn
deleted file mode 100644
index 8b137891..00000000
--- a/hurd/running/debian/discussion.mdwn
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/hurd/status/discussion.mdwn b/hurd/status/discussion.mdwn
deleted file mode 100644
index a479268f..00000000
--- a/hurd/status/discussion.mdwn
+++ /dev/null
@@ -1,24 +0,0 @@
-[[!meta copyright="Copyright © 2014 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]]."]]"""]]
-
-HERE STARTS YOUR NEW CONTENT -- remove everything from here on, including this
-line.
-
-By creating this page, you agree to assign copyright for your contribution to
-the Free Software Foundation, <http://www.fsf.org/>. The Free Software
-Foundation promises to always use a free documentation license (as per our
-criteria of free documentation) when publishing your contribution. We grant
-you back all your rights under copyright, including the rights to copy, modify,
-and redistribute your contributions.
-
-We're requiring these copyright assignments, so that we'll easily be able to
-include your contributions in official GNU documentation, such as the GNU Hurd
-Reference Manual, etc. Send email to <hurd-maintainers@gnu.org> if there are
-questions.
diff --git a/media_appearances.mdwn b/media_appearances.mdwn
index d4b764e5..ccd0c3db 100644
--- a/media_appearances.mdwn
+++ b/media_appearances.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2010, 2011, 2012, 2013 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2010, 2011, 2012, 2013, 2015 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
diff --git a/microkernel/mach/gnumach/boot_trace.mdwn b/microkernel/mach/gnumach/boot_trace.mdwn
index ea999a9b..e2de4a28 100644
--- a/microkernel/mach/gnumach/boot_trace.mdwn
+++ b/microkernel/mach/gnumach/boot_trace.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2011, 2013 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2011, 2013, 2015 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
@@ -11,190 +11,187 @@ License|/fdl]]."]]"""]]
`if NCPUS > 1` stuff is not being considered so far.
+grub starts the execution at boot\_entry
-> i386/i386at/boothdr.S: \_start
+> i386/i386at/boothdr.S: boot\_entry: sets up C environment, i.e. sets up a basic stack and clears BSS, fixes ifunc.
-> i386/i386at/boothdr.S: boot\_entry
+> i386/i386at/model\_dep.c: c\_boot\_entry: gets multiboot parameters
->> i386/i386at/model\_dep.c: c\_boot\_entry
+>> i386/i386at/boothdr.S: discover\_x86\_cpu\_type: detect processor type
->>> i386/i386at/boothdr.S: discover\_x86\_cpu\_type
+>> i386/i386at/model\_dep.c: i386at\_init: initialize PC-specific stuff
->>> i386/i386at/model\_dep.c: i386at\_init
+>>> i386/i386/pic.c: picinit: initialize 8259 PIC
->>>> i386/i386/pic.c: picinit
+>>> i386/i386at/model\_dep.c: mem\_size\_init: compute memory size
->>>> i386/i386at/model\_dep.c: mem\_size\_init
+>>> i386/intel/pmap.c: pmap\_bootstrap: initialize x86 page table
->>>> i386/intel/pmap.c: pmap\_bootstrap
+>>> i386/i386/gdt.c: gdt\_init: initialize x86 segmentation
->>>> i386/i386/gdt.c: gdt\_init
+>>> i386/i386/idt.c: idt\_init: initialize x86 traps
->>>> i386/i386/idt.c: idt\_init
+>>> i386/i386at/int\_init.c: int\_init: initialize PC interrupts
->>>> i386/i386at/int\_init.c: int\_init
+>>> i386/i386/ldt.c: ldt\_init: initialize x86 segmentation
->>>> i386/i386/ldt.c: ldt\_init
+>>> i386/i386/ktss.c: ktss\_init: initialize x86 task switching
->>>> i386/i386/ktss.c: ktss\_init
+>> kern/startup.c: setup\_main: set up non-hardware specific stuff
->>> kern/startup.c: setup\_main
+>>> kern/debug.c: panic\_init: initialize panic data
->>>> kern/debug.c: panic\_init
+>>> kern/printf.c: printf\_init: initialize printf
->>>> kern/printf.c: printf\_init
+>>> kern/sched\_prim.c: sched\_init: initialize scheduler
->>>> kern/sched\_prim.c: sched\_init
+>>>> kern/processor.c: pset\_sys\_bootstrap: initialize processor sets
->>>>> kern/sched\_prim.c: wait\_queue\_init
+>>>> kern/ast.c: ast\_init: initialize Asychronous System Traps
->>>>> kern/processor.c: pset\_sys\_bootstrap
+>>> vm/vm\_init.c: vm\_mem\_bootstrap: initialize virtual memory
->>>>> kern/ast.c: ast\_init
+>>>> vm/vm\_resident.c: vm\_page\_bootstrap: turn physical pages into virtually allocatable pages
->>>> vm/vm\_init.c: vm\_mem\_bootstrap
+>>>>> vm/vm\_resident.c: pmap\_startup: initialize pages
->>>>> vm/vm\_resident.c: vm\_page\_bootstrap
+>>>> kern/slab.c: slab\_bootstrap: early-initialize SLAB
->>>>>> vm/vm\_resident.c: pmap\_startup
+>>>> vm/vm\_object.c: vm\_object\_bootstrap: initialize VM object management
->>>>> kern/zalloc.c: zone\_bootstrap
+>>>>> vm/vm\_external.c: vm\_external\_module\_initialize: initialize VM external object management
->>>>> vm/vm\_object.c: vm\_object\_bootstrap
+>>>> vm/vm\_map.c: vm\_map\_init: initialize VM maps
->>>>>> vm/vm\_external.c: vm\_external\_module\_initialize
+>>>> vm/vm\_kern.c: kmem\_init: initialize kernel's virtual memory
->>>>> vm/vm\_map.c: vm\_map\_init
+>>>> i386/intel/pmap.c: pmap\_init: initialize remainder of x86 page table
->>>>> vm/vm\_kern.c: kmem\_init
+>>>> kern/slab.c: slab\_init: initialize remainder of SLAB
->>>>> i386/intel/pmap.c: pmap\_init
+>>>> kern/kalloc.c: kalloc\_init: initialize kallocator
->>>>> kern/zalloc.c: zone\_init
+>>>> vm/vm\_fault.c: vm\_fault\_init: initialize VM fault management
->>>>> kern/kalloc.c: kalloc\_init
+>>>> vm/vm\_resident.c: vm\_page\_module\_init: initialize remainder of virtual memory
->>>>> vm/vm\_fault.c: vm\_fault\_init
+>>>> vm/memory\_object.c: memory\_manager\_default\_init: initialize remainder of VM object management
->>>>> vm/vm\_resident.c: vm\_page\_module\_init
+>>> ipc/ipc\_init.c: ipc\_bootstrap: initialize IPC
->>>>> vm/memory\_object.c: memory\_manager\_default\_init
+>>>> ipc/ipc\_table.c: ipc\_table\_init: initialize IPC tables
->>>> ipc/ipc\_init.c: ipc\_bootstrap
+>>>> ipc/ipc\_notify.c: ipc\_notify\_init: initialize IPC notification
->>>>> ipc/ipc\_table.c: ipc\_table\_init
+>>>> ipc/ipc\_hash.c: ipc\_hash\_init: initialize IPC reverse hash table
->>>>> ipc/ipc\_notify.c: ipc\_notify\_init
+>>>> ipc/ipc\_marequest.c: ipc\_marequest\_init: initialize msg-accepted request
->>>>> ipc/ipc\_hash.c: ipc\_hash\_init
+>>> vm/vm\_init.c: vm\_mem\_init: finish initializing VM
->>>>> ipc/ipc\_marequest.c: ipc\_marequest\_init
+>>>> vm/vm\_object.c: vm\_object\_init: finish initializing kernel object
->>>> vm/vm\_init.c: vm\_mem\_init
+>>>> vm/memory\_object\_proxy: memory\_object\_proxy\_init: initialize memory object proxy
->>>>> vm/vm\_object.c: vm\_object\_init
+>>> ipc/ipc\_init.c: ipc\_init: finish initializing IPC
->>>> ipc/ipc\_init.c: ipc\_init
+>>>> kern/ipc\_host.c: ipc\_host\_init: initialize host IPC
->>>>> kern/ipc\_host.c: ipc\_host\_init
+>>>>> kern/ipc\_host.c: ipc\_pset\_init: initialize processor sets ports
->>>>>> kern/ipc\_host.c: ipc\_pset\_init
+>>>>> kern/ipc\_host.c: ipc\_processor\_init: initialize processor ports
->>>>>> kern/ipc\_host.c: ipc\_pset\_enable
+>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL: activate kernel page table
->>>>>> kern/ipc\_host.c: ipc\_processor\_init
+>>> kern/timer.c: init\_timers: initialize timers
->>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL
+>>> kern/mach\_clock.c: init\_timeout: initialize timeout
->>>> kern/timer.c: init\_timers
+>>> kern/xpr.c: xprbootstrap: initialize xpr buffer
->>>> kern/mach\_clock.c: init\_timeout
+>>> kern/time\_stamp.c: timestamp\_init: initialize tick
->>>> kern/xpr.c: xprbootstrap
+>>> kern/mach\_clock.c: [[mapable\_time\_init|interface/device/time]]
->>>> kern/time\_stamp.c: timestamp\_init
+>>> i386/i386at/model\_dep.c: machine\_init: initialize x86 machine
->>>> kern/mach\_clock.c: [[mapable\_time\_init|interface/device/time]]
+>>>> device/cons.c: cninit: initialize console
->>>> i386/i386at/model\_dep.c: machine\_init
+>>>> i386/i386/fpu.c: init\_fpu: initialize 8087 FPU
->>>>> device/cons.c: cninit
+>>>> linux/dev/init/main.c: linux\_init: initialize linux drivers
->>>>> i386/i386/fpu.c: init\_fpu
+>>>>> linux/dev/arch/i386/kernel/irq.c: init\_IRQ: initialize IRQs
->>>>> linux/dev/init/main.c: linux\_init
+>>>>>> linux/dev/arch/i386/kernel/irq.c: reserve\_mach\_irqs: register IRQs to mach
->>>>>> linux/dev/arch/i386/kernel/irq.c: init\_IRQ
+>>>>> linux/dev/kernel/sched.c: linux\_sched\_init: initialize dumb scheduler
->>>>>>> linux/dev/arch/i386/kernel/irq.c: reserve\_mach\_irqs
+>>>>> linux/dev/init/main.c: calibrate\_delay: calibrate delay loop
->>>>>> linux/dev/kernel/sched.c: linux\_sched\_init
+>>>>> linux/dev/glue/kmem.c: linux\_kmem\_init: initialize memory management
->>>>>> linux/dev/init/main.c: calibrate\_delay
+>>>>> linux/src/drivers/pci/pci.c: pci\_init: initialize PCI bus
->>>>>> linux/dev/glue/kmem.c: linux\_kmem\_init
+>>>>>> linux/src/arch/i386/kernel/bios32.c: pcibios\_init: call PCI BIOS32 initialization
->>>>>> linux/src/drivers/pci/pci.c: pci\_init
+>>>>>> linux/src/drivers/pci/pci.c: scan\_bus: enumerate PCI devices
->>>>>>> linux/src/arch/i386/kernel/bios32.c: pcibios\_init
+>>>>>> linux/src/arch/i386/kernel/bios32.c: pcibios\_fixup: apply platform-specific fixes
->>>>>>> linux/src/drivers/pci/pci.c: scan\_bus
+>>>>> linux/dev/glue/net.c: linux\_net\_emulation\_init: initialize network glue
->>>>>>> linux/src/arch/i386/kernel/bios32.c: pcibios\_fixup
+>>>>> linux/dev/drivers/block/genhd.c: device\_setup: initialize block devices
->>>>>> linux/dev/glue/net.c: linux\_net\_emulation\_init
+>>>>>> linux/dev/glue/block.c: blk\_dev\_init: initialize linux block devices
->>>>>> linux/dev/drivers/block/genhd.c: device\_setup
+>>>>>>> linux/src/drivers/block/ide.c: ide\_init: initialize IDE driver
->>>>>>> linux/dev/glue/block.c: blk\_dev\_init
+>>>>>>> linux/dev/drivers/block/floppy.c: floppy\_init: initialize floppy driver
->>>>>>>> linux/src/drivers/block/ide.c: ide\_init
+>>>>>> linux/src/drivers/scsi/scsi.c: scsi\_dev\_init: initialize SCSI drivers
->>>>>>>> linux/dev/drivers/block/floppy.c: floppy\_init
+>>>>>> linux/dev/net/core/dev.c: net\_dev\_init: initialize network drivers
->>>>>>> linux/src/drivers/scsi/scsi.c: scsi\_dev\_init
+>>>>> linux/pcmcia-cs/glue/pcmcia.c: pcmcia\_init: initialize PCMCIA drivers
->>>>>>> linux/dev/net/core/dev.c: net\_dev\_init
+>>>> i386/i386at/autoconf.c: probeio: probe mach-managed devices (com, lpr)
->>>>>> linux/pcmcia-cs/glue/pcmcia.c: pcmcia\_init
+>>>> i386/i386at/model\_dep.c: inittodr: get RTC time
->>>>> i386/i386at/autoconf.c: probeio
+>>>> i386/intel/pmap.c: pmap\_unmap\_page\_zero: unmap address 0
->>>>> i386/i386at/model\_dep.c: inittodr
+>>>> kern/mach\_clock.c: mapable\_time\_init: initialize mappable time
->>>>> i386/intel/pmap.c: pmap\_unmap\_page\_zero
+>>> kern/task.c: task\_init: initialize gnuamch atsk
->>>> kern/task.c: task\_init
+>>>> kern/syscall\_emulation.c: eml\_init: initialize user space emulation code
->>>>> kern/syscall\_emulation.c: eml\_init
+>>> kern/thread.c: thread\_init: initialize thread management
->>>> kern/thread.c: thread\_init
+>>>> i386/i386/pcb.c: pcb\_module\_init: initialize PCB management
->>>>> i386/i386/pcb.c: pcb\_module\_init
+>>>>> i386/i386/fpu.c: fpu\_module\_init: initialize FPU management
->>>>>> i386/i386/fpu.c: fpu\_module\_init
+>>> kern/thread\_swap.c: swapper\_init: initialize thread swapper
->>>>>> i386/i386/iopb.c: iopb\_init
+>>> kern/sched\_prim.c: recompute\_priorities: initial priorities computation
->>>> kern/thread\_swap.c: swapper\_init
+>>> kern/mach\_factor.c: compute\_mach\_factor: initial mach factor computation
->>>> kern/sched\_prim.c: recompute\_priorities
+>>> kern/startup.c: thread\_start: create initial kernel thread
->>>> kern/mach\_factor.c: compute\_mach\_factor
+>>> kern/startup.c: cpu\_launch\_first\_thread: start first user thread
->>>> kern/startup.c: start\_kernel\_threads
+>>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL: activate kernel page table
-[...]
-
->>>> kern/startup.c: cpu\_launch\_first\_thread
-
->>>>> i386/i386at/model\_dep.c: startrtclock
+>>>> i386/i386at/model\_dep.c: startrtclock: start clock
->>>>>> i386/i386/pit.c: clkstart
+>>>>> i386/i386/pit.c: clkstart: start 8254 PIT
->>>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL
+>>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL: activate user page table
->>>>> i386/i386/pcb.c: load\_context
+>>>> i386/i386/pcb.c: load\_context: load first context
[...]
@@ -224,7 +221,7 @@ License|/fdl]]."]]"""]]
>> [...]
->> vm\_pageout
+>> vm\_pageout: run the paging out daemon
>> Does not return.
diff --git a/faq/off.mdwn b/news/2015-03-20-gsoc.mdwn
index 4777d066..143865f4 100644
--- a/faq/off.mdwn
+++ b/news/2015-03-20-gsoc.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2010, 2013 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2015 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
@@ -8,11 +8,8 @@ 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]]."]]"""]]
-[[!tag faq/running]]
+[[!meta date="2015-03-20 08:30 UTC"]]
-[[!meta title="how am I supposed to shut my Hurd system down?"]]
-
-[[!tag open_issue_gnumach]]
-GNU Mach does not have APM or ACPI support, so it will just stop with
-`In tight loop: hit ctl-alt-del to reboot`, and you can switch off the
-system.
+The **Google Summer of Code 2015** is on! If you're a student, consider
+applying for a GNU Hurd project -- details to be found on our
+[[community/GSoC]] and [[community/gsoc/project_ideas]] pages.
diff --git a/open_issues/ext2fs_dtime.mdwn b/open_issues/ext2fs_dtime.mdwn
index 592f1525..5cb5fb7b 100644
--- a/open_issues/ext2fs_dtime.mdwn
+++ b/open_issues/ext2fs_dtime.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2010, 2012 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2014 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
diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn
index a2a67632..19056b5c 100644
--- a/open_issues/gcc.mdwn
+++ b/open_issues/gcc.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
-Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
+2015 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
diff --git a/open_issues/kill_setuid.mdwn b/open_issues/kill_setuid.mdwn
new file mode 100644
index 00000000..047dceda
--- /dev/null
+++ b/open_issues/kill_setuid.mdwn
@@ -0,0 +1,49 @@
+[[!meta copyright="Copyright © 2015 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]]."]]"""]]
+
+[[!tag open_issue_hurd]]
+
+http://bugs.debian.org/413326
+
+The X server does not terminate when the user X session is finished. This is due
+to xinit not being able to kill the setuid Xorg.
+
+On the sending side, glibc does:
+
+ err = HURD_MSGPORT_RPC (__proc_getmsgport (proc, pid, &msgport),
+ (taskerr = __proc_pid2task (proc, pid,
+ &refport)) ?
+ __proc_getsidport (proc, &refport) : 0, 1,
+ kill_port (msgport, refport));
+ }
+
+I.e. asks proc for the task port, and if that fails, asks proc for the
+session port, then it sends the signal.
+
+It happens that since the target got setuid'ed, the proc server had set it
+owned by root, and hence (rightfully) refuses to return the task port through
+pid2task. As a result only proc_getsidport() works, but that will be accepted
+by the receiving side only for some signals.
+
+POSIX says
+
+ For a process to have permission to send a signal to a process designated
+ by pid, unless the sending process has appropriate privileges, the real or
+ effective user ID of the sending process shall match the real or saved
+ set-user-ID of the receiving process.
+
+And indeed Xorg keeps the original user uid as real uid, so that xinit can kill
+it when the session is finished.
+
+We probably need to implement another reference port that the killer can send to
+the killee. It may be useful for some other operations that users can do on the
+setuid processes they have started.
diff --git a/open_issues/libpthread_dlopen.mdwn b/open_issues/libpthread_dlopen.mdwn
index a825fdff..9e127841 100644
--- a/open_issues/libpthread_dlopen.mdwn
+++ b/open_issues/libpthread_dlopen.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2011, 2012, 2013, 2014 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2011, 2012, 2013, 2014, 2015 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
@@ -15,6 +15,15 @@ License|/fdl]]."]]"""]]
# [[FAQ entry|faq/libpthread_dlopen]]
+Some applications don't themselves link against libpthread, but then load
+plugins which do link against libpthread. This means internally switching from
+single-threading to multi-threading, which is only supported since libc0.3
+2.19-16~2. Previously, it would result in errors such as:
+
+ ./pthread/../sysdeps/generic/pt-mutex-timedlock.c:70: __pthread_mutex_timedlock_internal: Assertion `__pthread_threads' failed.
+
+*This is now fixed as of libc0.3 2.19-16~2.*
+
# IRC, freenode, #hurd, 2010-01-24
<pinotree> youpi: hm, thought about the pthread/stubs issue w/ dlopen'ed
diff --git a/open_issues/problematic_packages.mdwn b/open_issues/problematic_packages.mdwn
index 700e3d71..05c7eea4 100644
--- a/open_issues/problematic_packages.mdwn
+++ b/open_issues/problematic_packages.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2014 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2014, 2015 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
@@ -29,3 +29,4 @@ This page lists the few packages whose build makes the Debian buildd box crash a
* php-yac
* gnu-smalltalk
+ * globus-gram-job-manager
diff --git a/open_issues/symlink_translator.mdwn b/open_issues/symlink_translator.mdwn
new file mode 100644
index 00000000..80ce7f0e
--- /dev/null
+++ b/open_issues/symlink_translator.mdwn
@@ -0,0 +1,24 @@
+[[!meta copyright="Copyright © 2015 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]]."]]"""]]
+
+[[!tag open_issue_hurd]]
+
+The /hurd/symlink translator does not work as expected:
+
+ % settrans -ca broken /hurd/symlink missing
+ % file broken
+ broken: empty
+
+Here is the expected behavior, as implemented by the short-cut logic
+in lib*fs:
+
+ % ln -s missing broken_symlink
+ % file broken_symlink
+ broken_symlink: broken symbolic link to missing
diff --git a/open_issues/wine.mdwn b/open_issues/wine.mdwn
index ea91e5a6..6d48fda0 100644
--- a/open_issues/wine.mdwn
+++ b/open_issues/wine.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2010, 2011, 2013, 2014 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2010, 2011, 2013, 2014, 2015 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
diff --git a/overview.mdwn b/overview.mdwn
new file mode 100644
index 00000000..11d9382b
--- /dev/null
+++ b/overview.mdwn
@@ -0,0 +1,89 @@
+[[!meta copyright="Copyright © 2015 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]]."]]"""]]
+
+This provides an quick overview of how the GNU/Hurd system starts, and thus how
+it is structured.
+
+# Grub
+
+The GNU/Hurd system uses multiboot, and thus usually booted from grub, which
+loads into memory the GNU Mach kernel, the ext2fs server (see later), and the
+exec server (see later). It then gives hand to GNU Mach, passing ext2fs and exec
+as payloads.
+
+# GNU Mach
+
+GNU Mach initializes a basic console, and tasks, memory management and
+interprocess communication (details can be read on
+[[microkernel/mach/gnumach/boot_trace]]). It also initializes drivers for
+disk. It then creates two tasks for the ext2fs and exec servers.
+
+# ext2fs
+
+ext2fs is given as a parameter the name of the device of the root filesystem. It
+opens it through the GNU Mach disk driver, and mounts the filesystem found on
+it. When it is ready, it can start booting the system by starting the "startup",
+"proc", and "auth" servers. It does so by using the "exec" server already loaded
+by GNU Mach. We then have a posixish environment, ext2fs gives hand to
+"startup".
+
+# exec
+
+"exec" handles loading binaries into processes. Details are available in
+[[Thomas' overview|/hurd-paper#exec]].
+
+# proc
+
+Proc knows about processes: what pid they have, passing signals, managing tty
+sessions, etc. Details are available in [[Thomas' overview|/hurd-paper#proc]]
+and [[Marcus' presentation|/hurd-talk#pro]].
+
+# auth
+
+Auth knows about identities: uid, gid, etc. Details are available in
+[[Thomas' overview|/hurd-paper#auth]] and
+[[Marcus' presentation|/hurd-talk#aut]].
+
+# startup
+
+"startup" is the unixish system starting point: it basically runs /sbin/init, at
+which point we end up with the standard Unix boot up.
+
+# netdde / pfinet
+
+At some point of the boot process, networking will have to be configured. This
+is done by starting "pfinet", the TCP/IP stack, from /servers/socket/2, which
+itself starts the network device driver server, "netdde", from /dev/netdde.
+
+# everydaylife
+
+Normal processes use glibc to interact with the system. Depending on the kind of
+call, glibc will perform RPCs with the various servers mentioned above: opening
+files will trigger RPCs with ext2fs, calling getpid() and such will trigger RPCs
+with proc, calling getuid() and such will trigger RPCs with auth, opening a
+network socket will trigger RPCs with pfinet. Details are available in [[the RPC page|/hurd/rpc]]
+
+One can read the [[details how reading a file happens|hurd/io_path]].
+
+# how translators get started
+
+There are three ways translators get started:
+
+* exec, startup, proc, auth are explictly started during the boot as explained
+above.
+* some file of the filesystem have a *passive translator* record, i.e. it is
+recorded in the filesystem that when you open the file, it actually starts a
+translator which provides the content. For instance, */dev/null* is actually a
+translator which eats your data and produces no data.
+* one can manually start a translator and bind it on a file of the
+filesystem. It will stay there until getting killed or the system is
+restarted. For instance, one may want to temporarily mount an ISO image.
+
+Details are available in [[Marcus' presentation|/hurd-talk#act]].
diff --git a/recent_changes.mdwn b/recent_changes.mdwn
index 00a2eb71..594a0390 100644
--- a/recent_changes.mdwn
+++ b/recent_changes.mdwn
@@ -12,4 +12,3 @@ is included in the section entitled
[[!inline pages="internal(recent_changes/change_*)" template=recentchanges
show=0]]
-[[recent change]]
diff --git a/sidebar.mdwn b/sidebar.mdwn
index a5daebe5..1a45bb36 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
-Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
+2015 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
@@ -15,7 +15,7 @@ Welcome to... [[!img /logo/boxes-redrawn.png link=/logo]] ... the GNU Hurd!
---
-The **Google Summer of Code 2014** is on! If you're a student, consider
+The **Google Summer of Code 2015** is on! If you're a student, consider
applying for a GNU Hurd project -- details to be found on our
[[community/GSoC]] and [[community/gsoc/project_ideas]] pages."""]]