diff options
-rw-r--r-- | community/gsoc/project_ideas/gnumach_cleanup.mdwn | 11 | ||||
-rw-r--r-- | contributing/web_pages/news/qoth_next.mdwn | 26 | ||||
-rw-r--r-- | hurd/running/live_cd.mdwn | 14 | ||||
-rw-r--r-- | microkernel/mach/deficiencies.mdwn | 16 | ||||
-rw-r--r-- | microkernel/mach/gnumach/interface/syscall/mach_print.mdwn | 8 | ||||
-rw-r--r-- | microkernel/mach/gnumach/interface/syscall/mach_print/Makefile | 9 | ||||
-rw-r--r-- | microkernel/mach/gnumach/interface/syscall/mach_print/mach_print.S | 3 | ||||
-rw-r--r-- | microkernel/mach/gnumach/interface/syscall/mach_print/main.c | 21 | ||||
-rw-r--r-- | open_issues/libpthread_cancellation_points.mdwn | 41 | ||||
-rw-r--r-- | user/musial.mdwn | 2 |
10 files changed, 133 insertions, 18 deletions
diff --git a/community/gsoc/project_ideas/gnumach_cleanup.mdwn b/community/gsoc/project_ideas/gnumach_cleanup.mdwn index 4aef0d1b..11b4889f 100644 --- a/community/gsoc/project_ideas/gnumach_cleanup.mdwn +++ b/community/gsoc/project_ideas/gnumach_cleanup.mdwn @@ -1,12 +1,13 @@ -[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 2009, 2013 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] [[!meta title="GNU Mach Code Cleanup"]] @@ -43,4 +44,6 @@ not really necessary. Possible mentors: Samuel Thibault (youpi) Exercise: You should have no trouble finding something to improve when looking -at the gnumach code, or even just at compiler warnings. +at the gnumach code, or even just at compiler warnings, for instance "implicit +declaration of function", "format ‘%lu’ expects argument of type..." are +easy to start with. diff --git a/contributing/web_pages/news/qoth_next.mdwn b/contributing/web_pages/news/qoth_next.mdwn index efce525c..96efacbc 100644 --- a/contributing/web_pages/news/qoth_next.mdwn +++ b/contributing/web_pages/news/qoth_next.mdwn @@ -15,7 +15,7 @@ Will be set by tschwinge when publishing. <!-- This is just a skeleton. Use it to create a new QotH. --> -A quarter of the Hurd, Q2 of 2012: *TODO*, *TODo* and *TODo*. +A quarter of the Hurd, Q2 of 2012: *TODO*, *TODO* and *TODo*. [[!if test="included()" then="""[[!toggle id=full_news text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]""" else=" @@ -25,8 +25,30 @@ else=" <!--basic structure of a QotH entry. Adapt, reduce and add points as needed. At the end, try to make the text flow as a unified whole.--> -For details, see Richards report about running +News items: + +- For details, see Richards report about running [Hurd without dependency on cthreads](http://lists.gnu.org/archive/html/bug-hurd/2012-08/msg00062.html). +- new cd images with keyboard layout configuration http://lists.gnu.org/archive/html/bug-hurd/2012-07/msg00048.html +- Pino Toscano: FIFO sockets with mknod (test passes now) http://lists.gnu.org/archive/html/bug-hurd/2012-09/msg00053.html +- Pino Toscano added a size parameter to tmpfs for easier usage in scripts: http://lists.gnu.org/archive/html/bug-hurd/2012-09/msg00005.html and a [version suffix option](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00009.html) for gnumach configure. +- Pino Toscano added patches for [procfs](http://lists.gnu.org/archive/html/bug-hurd/2012-09/msg00004.html), [ptrace](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00035.html), [fsync on stdout](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00046.html), [muntrace](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00033.html), [ulimit](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00034.html), [glibc](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00029.html) which among others improve POSIX conformance, making it easier to write programs which work on the Hurd and GNU/Linux. +- Cyril Roeland fixed a documentation typo [in ps](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00032.html) and a missing linker flag [in procfs](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00025.html). + +- Samuel Thibault pushed the [pthread patches](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00088.html) from Vincente, Barry, Thomas, Richard and Samuel and others to the different upstream packages, finally enabling modern pthreads for the Hurd, which makes it possible to implement full Hurd bindings for languages which require pthreads, so for example [PyHurd](http://savannah.nongnu.org/projects/pyhurd/) can profit from the Hurd libraries instead of having to rely on low-level Mach bindings to implement Hurd features. +- Thomas Schwinge fixed [some errors](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00077.html) which caused a miscalculation of the size of medium sized disks reporting 15 heads instead of 16. +- Svante Signell [improved](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00062.html) the error handling in pflocal, +- Pino Toscano [implemented syncfs](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00046.html) which ensures that all data in the filesystem gets written to disk, as well as [statfs](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00005.html), which adds some additional statistics to procfs. +- Matthew Leach [fixed](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00037.html) a compilation error with older GCC versions due to duplicate type definition. +- Samuel Thibault [provided](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00052.html) new [installation CDs](http://people.debian.org/~sthibault/hurd-i386/installer/cdimage/current) and a new [qemu image](http://people.debian.org/~sthibault/hurd-i386/). +- Thomas Schwinge [debugged and fixed](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00044.html) a deadlock with child threads resulting from a regression due to earlier fixes. +- Cyril Roelandt shared a [patch series](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00018.html) to fix double mutex unlocking with pthreads. We will likely see more fixes like these, given that the whole threading interface changed. +- Cyril Roelandt fixed a [ps](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00012.html) bug. + +- + +Still to do: everything starting from http://lists.debian.org/debian-hurd/2012/07/threads.html + This quarter [hurd hacker] [item] diff --git a/hurd/running/live_cd.mdwn b/hurd/running/live_cd.mdwn index 1eb9b8e0..7c5f0a8e 100644 --- a/hurd/running/live_cd.mdwn +++ b/hurd/running/live_cd.mdwn @@ -1,16 +1,6 @@ -[[Arch Hurd|hurd/running/arch_hurd/]] offers Hurd LiveCDs at <http://www.archhurd.org/gethurd.php>. +[[Arch Hurd|hurd/running/arch_hurd/]] offers Hurd LiveCDs at <http://www.archhurd.org/download/>. -Also you can download a gzipped iso of a Hurd Live CD at -<http://www.superunprivileged.org/hurd/live-cd/>. - -The Superunpriveleged crew also offers a tiny Hurd Live CD that is under 10 -MiB: <http://www.superunprivileged.org/hurd/tiny-cd/> - -Use it like this: - - $ qemu -m 512 -cdrom hurd-tiny-cd-20060722.iso - -A more recent Live CD can be found at <http://teythoon.cryptobitch.de/hurd/livecd/hurd-live-install-1273300101.iso.xz>. +A less recent Live CD can be found at <http://teythoon.cryptobitch.de/hurd/livecd/hurd-live-install-1273300101.iso.xz>. It can be run with qemu via diff --git a/microkernel/mach/deficiencies.mdwn b/microkernel/mach/deficiencies.mdwn index dcabb56e..1294b8b3 100644 --- a/microkernel/mach/deficiencies.mdwn +++ b/microkernel/mach/deficiencies.mdwn @@ -751,3 +751,19 @@ In context of [[open_issues/multithreading]] and later [[open_issues/select]]. part AIUI, and scheduling contexts can be inherited explicitly too, like in EROS (and in a way in Viengoos) <braunr> i don't understand viengoos well enough to do it that way + + +## IRC, freenode, #hurd, 2013-04-13 + + <braunr> a microkernel loosely based on mach for a future hurd-like system + <JoshuaB> ok. no way! Are you in the process of building a micro-kernel + that the hurd may someday run on? + <braunr> not the hurd, a hurd-like system + <JoshuaB> ok wow. sounds pretty cool, and tricky + <braunr> the hurd could, but would require many changes too, and the point + of this rewrite is to overcome the most difficult technical performance + and scalability problems of the current hurd + <braunr> doing that requires deep changes in the low level interfaces + <braunr> imo, a rewrite is more appropriate + <braunr> sometimes, things done in x15 can be ported to the hurd + <braunr> but it still requires a good deal of effort diff --git a/microkernel/mach/gnumach/interface/syscall/mach_print.mdwn b/microkernel/mach/gnumach/interface/syscall/mach_print.mdwn index c0b0d0b3..ca52dca5 100644 --- a/microkernel/mach/gnumach/interface/syscall/mach_print.mdwn +++ b/microkernel/mach/gnumach/interface/syscall/mach_print.mdwn @@ -51,3 +51,11 @@ License|/fdl]]."]]"""]] <youpi> k <braunr> if it's fine with you, i'll commit it too <youpi> I'm fine + + +## IRC, freenode, #hurd, 2013-04-07 + + <braunr> see http://www.sceen.net/~rbraun/mach_print/ for an example to use + it + +[[Makefile]], [[mach_print.S]], [[main.c]]. diff --git a/microkernel/mach/gnumach/interface/syscall/mach_print/Makefile b/microkernel/mach/gnumach/interface/syscall/mach_print/Makefile new file mode 100644 index 00000000..8590ef7f --- /dev/null +++ b/microkernel/mach/gnumach/interface/syscall/mach_print/Makefile @@ -0,0 +1,9 @@ +CFLAGS = -O0 -g3 + +mach_print: main.o mach_print.o + gcc -o mach_print main.o mach_print.o + +clean: + rm -f mach_print *.o + +.PHONY: clean diff --git a/microkernel/mach/gnumach/interface/syscall/mach_print/mach_print.S b/microkernel/mach/gnumach/interface/syscall/mach_print/mach_print.S new file mode 100644 index 00000000..606a66e6 --- /dev/null +++ b/microkernel/mach/gnumach/interface/syscall/mach_print/mach_print.S @@ -0,0 +1,3 @@ +#include <mach/machine/syscall_sw.h> + +kernel_trap(mach_print,-30,1) diff --git a/microkernel/mach/gnumach/interface/syscall/mach_print/main.c b/microkernel/mach/gnumach/interface/syscall/mach_print/main.c new file mode 100644 index 00000000..23b9fc88 --- /dev/null +++ b/microkernel/mach/gnumach/interface/syscall/mach_print/main.c @@ -0,0 +1,21 @@ +#include <assert.h> +#include <stdio.h> +#include <stdlib.h> + +void mach_print(char *); + +int +main(int argc, char *argv[]) +{ + int size; + char *s; + + size = snprintf(NULL, 0, "%s\n", argv[1]); + assert(size > 0); + s = malloc(size); + assert(s != NULL); + sprintf(s, "%s\n", argv[1]); + mach_print(s); + free(s); + return EXIT_SUCCESS; +} diff --git a/open_issues/libpthread_cancellation_points.mdwn b/open_issues/libpthread_cancellation_points.mdwn new file mode 100644 index 00000000..af0efa9d --- /dev/null +++ b/open_issues/libpthread_cancellation_points.mdwn @@ -0,0 +1,41 @@ +[[!meta copyright="Copyright © 2013 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="cancellation points are not cancelling threads"]] + +[[!tag open_issue_libpthread]] + + #include <pthread.h> + #include <stdio.h> + #include <sys/select.h> + #include <unistd.h> + + void *f (void*foo) + { + char buf[128]; + //pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL); + while (1) { + read (0, buf, sizeof(buf)); + } + } + int main (void) { + pthread_t t; + pthread_create (&t, NULL, f, NULL); + sleep (1); + pthread_cancel (t); + pthread_join (t, NULL); + exit(0); + } + +read() is not behaving as a cancellation point, only setting the cancel +type to asynchronous permits this testcase to terminate. We do have the +pthread_setcanceltype glibc/libpthread hook in the forward structure, but we are +not using it: the LIBC_CANCEL_ASYNC macros are void, and we're not using them in +the mig msg call either. diff --git a/user/musial.mdwn b/user/musial.mdwn index bcdaea2c..09992930 100644 --- a/user/musial.mdwn +++ b/user/musial.mdwn @@ -10,6 +10,8 @@ License|/fdl]]."]]"""]] ~musial (Robert Musial) - Cleveland, OH +http://t-n.us/.musial/ + email: musial@gnu.org Join the FSF! - http://www.fsf.org/register_form?referrer=9143 |