From 4df8e9bc53ebc996fc9140474391e2abd77ddf6b Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 1 Sep 2010 00:07:55 +0200 Subject: Explain how expensive it is to switch microkernel --- hurd/faq/how_to_switch_microkernels.mdwn | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 hurd/faq/how_to_switch_microkernels.mdwn (limited to 'hurd/faq/how_to_switch_microkernels.mdwn') diff --git a/hurd/faq/how_to_switch_microkernels.mdwn b/hurd/faq/how_to_switch_microkernels.mdwn new file mode 100644 index 00000000..468fab54 --- /dev/null +++ b/hurd/faq/how_to_switch_microkernels.mdwn @@ -0,0 +1,15 @@ +[[!meta copyright="Copyright © 2009 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="How difficult would it be to switch to another microkernel?"]] + +One thing for sure is to rewrite the mach and sysdeps/mach parts of glibc and +libpthread. Quite a few tools also assume a Mach kernel and would have to be +rewritten. -- cgit v1.2.3 From 3f11d947b91a9c5f5eaa743ebb9dd38e34a625a4 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 21 Sep 2010 11:45:06 +0200 Subject: libpthread: New. --- community/gsoc/project_ideas/language_bindings.mdwn | 8 +++++--- community/gsoc/project_ideas/pthreads.mdwn | 5 +++-- hurd.mdwn | 1 + hurd/faq/how_to_switch_microkernels.mdwn | 8 ++++---- hurd/running/debian/package_troubleshooting.mdwn | 3 ++- libpthread.mdwn | 19 +++++++++++++++++++ open_issues/some_todo_list.mdwn | 1 - 7 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 libpthread.mdwn (limited to 'hurd/faq/how_to_switch_microkernels.mdwn') diff --git a/community/gsoc/project_ideas/language_bindings.mdwn b/community/gsoc/project_ideas/language_bindings.mdwn index a27b0d30..460b380b 100644 --- a/community/gsoc/project_ideas/language_bindings.mdwn +++ b/community/gsoc/project_ideas/language_bindings.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 2009, 2010 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 @@ -42,8 +43,9 @@ use the latter approach, and can serve as a good example. There is another possible reason for preferring lower-level bindings: Presently, the Hurd server libraries use the cthreads threading library, which -predates the pthread standard prevalent today. There is a pthread library for -the Hurd as well, but it's not possible to use both cthreads and pthreads in +predates the pthread standard prevalent today. There is a +[[pthread library for the Hurd|libpthread]] +as well, but it's not possible to use both cthreads and pthreads in the same executable. Thus, until [[porting_the_Hurd_libraries_to_pthreads|community/gsoc/project_ideas/pthreads]] is finished, implementing bindings for any language that uses pthreads (in the diff --git a/community/gsoc/project_ideas/pthreads.mdwn b/community/gsoc/project_ideas/pthreads.mdwn index a33187f6..2270c774 100644 --- a/community/gsoc/project_ideas/pthreads.mdwn +++ b/community/gsoc/project_ideas/pthreads.mdwn @@ -17,11 +17,12 @@ The Hurd was originally created at a time when the [pthreads standard](http://www.opengroup.org/onlinepubs/009695399/basedefs/pthread.h.html) didn't exist yet. Thus all Hurd servers and libraries are using the old [[cthreads|hurd/libcthreads]] package that came with [[microkernel/Mach]], -which is not compatible with [[pthreads|hurd/libpthread]]. +which is not compatible with pthreads. Not only does that mean that people hacking on Hurd internals have to deal with a non-standard thread package, which nobody is familiar with. Although a -pthreads implementation for the Hurd was created in the meantime, it's not +[[pthreads implementation for the Hurd|libpthread]] +was created in the meantime, it's not possible to use both cthreads and pthreads in the same program. Consequently, pthreads can't presently be used in any Hurd servers -- including translators. diff --git a/hurd.mdwn b/hurd.mdwn index c5627e29..24610f97 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -96,6 +96,7 @@ in the *unstable* branch of the Debian archive. * [[libtrivfs]] * [[libnetfs]] -- short introductory material * [[libihash]] + * [[libpthread]] * [[IO_Path]] * [[Porting]] * [[Debugging]] diff --git a/hurd/faq/how_to_switch_microkernels.mdwn b/hurd/faq/how_to_switch_microkernels.mdwn index 468fab54..21f7a371 100644 --- a/hurd/faq/how_to_switch_microkernels.mdwn +++ b/hurd/faq/how_to_switch_microkernels.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2009, 2010 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,6 +10,6 @@ License|/fdl]]."]]"""]] [[!meta title="How difficult would it be to switch to another microkernel?"]] -One thing for sure is to rewrite the mach and sysdeps/mach parts of glibc and -libpthread. Quite a few tools also assume a Mach kernel and would have to be -rewritten. +One would have to reimplement the `mach/` and `sysdeps/mach/` parts of +[[glibc]] and [[libpthread]]. Quite a few other Hurd tools also assume a +[[microkernel/Mach]] kernel and would have to be adapted or rewritten. diff --git a/hurd/running/debian/package_troubleshooting.mdwn b/hurd/running/debian/package_troubleshooting.mdwn index 43ecbc77..c6236c2f 100644 --- a/hurd/running/debian/package_troubleshooting.mdwn +++ b/hurd/running/debian/package_troubleshooting.mdwn @@ -17,7 +17,8 @@ You must set up the [[translator/random]] device first. ## An X package hangs at startup without error messages -Observed with GTK programs like xchat, synaptic, inkscape. It is an issue with libpthread that (as of 04 Feb 2007) is still unresolved. Sorry. +Observed with GTK programs like xchat, synaptic, inkscape. It is an issue with +[[libpthread]] that (as of 04 Feb 2007) is still unresolved. Sorry. ## Borked fonts on GTK app diff --git a/libpthread.mdwn b/libpthread.mdwn new file mode 100644 index 00000000..f6210706 --- /dev/null +++ b/libpthread.mdwn @@ -0,0 +1,19 @@ +[[!meta copyright="Copyright © 2010 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="POSIX Threading Library"]] + +Used by / ported to the [[Hurd]] on [[GNU Mach|microkernel/mach/gnumach]], some +[[microkernel/L4]] variants, and [[microkernel/Viengoos]]. + + +# Open Issues + + * [[tag/open_issue_libpthread]] diff --git a/open_issues/some_todo_list.mdwn b/open_issues/some_todo_list.mdwn index 5f8470b7..1f6f5002 100644 --- a/open_issues/some_todo_list.mdwn +++ b/open_issues/some_todo_list.mdwn @@ -51,7 +51,6 @@ From Marcus, 2002: * Are all inode numbers and link counts correct? * We also should have a "make check" test suite. We can add this once Jeff finished his automake patches * pick up the other things - * pthread, definitely. Now that we are so close * new console is basically done * needs integration of course * X switching support -- cgit v1.2.3