summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2013-10-13 20:13:46 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2013-10-13 20:13:46 +0200
commit99a32b7776b16c94c45ce484dc09d8f6f52d6b70 (patch)
treef0b65ada17ff0e343807891b665ce40e76e653b8
parentff1b4ffd162fb0cc70cd474e88ea199f07f6022b (diff)
parent36744577a3056da6251498e38ec2c0b7e6b6a9ba (diff)
Merge branch 'master' of braunbox:~hurd-web/hurd-web
-rw-r--r--microkernel.mdwn2
-rw-r--r--microkernel/x15.mdwn24
-rw-r--r--open_issues/glibc.mdwn114
3 files changed, 83 insertions, 57 deletions
diff --git a/microkernel.mdwn b/microkernel.mdwn
index c7fc0995..7c0e34c2 100644
--- a/microkernel.mdwn
+++ b/microkernel.mdwn
@@ -57,3 +57,5 @@ A 2002 article about [[microkernel_FUD|FUD]] (Fear, Uncertainty, Doubt).
* [[Viengoos]]
* [[Genode]]
+
+ * [[x15]]
diff --git a/microkernel/x15.mdwn b/microkernel/x15.mdwn
new file mode 100644
index 00000000..b56c97fc
--- /dev/null
+++ b/microkernel/x15.mdwn
@@ -0,0 +1,24 @@
+[[!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]]."]]"""]]
+
+The x15 microkernel is under development by Richard Braun. Overall, x15 is intended to provide better performance because of simpler IPC and data structures and better scalability because of improved data structure algorithms and concurrency.
+
+The following specific features are intended to distinguish x15 from other microkernels. However, it should be noted that the microkernel is under heavy development and so the list may (and almost certainly will) change.
+
+* SMP support
+* Lockless synchronisation à la RCU
+* Support for large amounts of physical memory. GNU Mach does the same as Linux, physical memory is mapped in kernel space so you can't have more physical memory than you have kernel space which is why GNU Mach can't handle more than 1.8G right now, it's a 2/2 split. In x15, the kernel maps what it needs and can map it from anywhere in physical memory the drawback is that it needs to update kernel page tables more often.
+* Virtual memory operations are planned to be completely concurrent on x15, similar to what is described in radixvm
+* Intended to efficiently run a Hurd-like system providing a POSIX interface
+* Providing both synchronisation IPC and signals, as opposed to just synchronisation IPC
+* Port names which will transparently identify as file descriptors
+* Light reference counting
+* A restriction on IPC that only allows reliable transfers across network to machines with same arch and endianness
+* etc.
diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn
index b453b44f..0c702144 100644
--- a/open_issues/glibc.mdwn
+++ b/open_issues/glibc.mdwn
@@ -22,7 +22,7 @@ Here's what's to be done for maintaining glibc.
# [[Sources|source_repositories/glibc]]
-# [[Debian]] Cheat Sheet
+# [[Debian Cheat Sheet|debian]]
# Configuration
@@ -39,24 +39,24 @@ git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C
Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
(2013-05-24) sources|source_repositories/glibc]].
- * `t/hurdsig-fixes`
+ * <a id=t_hurdsig-fixes>`t/hurdsig-fixes`</a>
hurdsig.c: In function '_hurd_internal_post_signal':
hurdsig.c:1188:26: warning: 'pending' may be used uninitialized in this function [-Wmaybe-uninitialized]
hurdsig.c:1168:12: note: 'pending' was declared here
- * `t/host-independency`
+ * <a id=t_host-independency>`t/host-independency`</a>
[[!message-id "87bougerfb.fsf@kepler.schwinge.homeip.net"]], [[!message-id
"20120525202732.GA31088@intel.com"]], commit
918b56067a444572f1c71b02f18255ae4540b043. [[!GCC_PR 53183]], GCC commit
c05436a7e361b8040ee899266e15bea817212c37.
- * `t/pie-sbrk`
+ * <a id=t_pie-sbrk>`t/pie-sbrk`</a>
[[gcc/PIE]].
- * `t/sysvshm`
+ * <a id=t_sysvshm>`t/sysvshm`</a>
../sysdeps/mach/hurd/shmat.c: In function '__shmat':
../sysdeps/mach/hurd/shmat.c:57:7: warning: implicit declaration of function '__close' [-Wimplicit-function-declaration]
@@ -65,11 +65,11 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
../sysdeps/mach/hurd/shmget.c:102:8: warning: 'dir' may be used uninitialized in this function [-Wmaybe-uninitialized]
../sysdeps/mach/hurd/shmget.c:102:8: warning: 'file' may be used uninitialized in this function [-Wmaybe-uninitialized]
- * [[`t/tls`|t/tls]]
+ * <a id=t_tls>[[`t/tls`|t/tls]]</a>
- * [[`t/tls-threadvar`|t/tls-threadvar]]
+ * <a id=t_tls-threadvar>[[`t/tls-threadvar`|t/tls-threadvar]]</a>
- * t/verify.h
+ * <a id=t_verify.h>`t/verify.h`</a>
People didn't like this too much.
@@ -77,7 +77,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
* 11988f8f9656042c3dfd9002ac85dff33173b9bd -- `static_assert`
- * [[toolchain/cross-gnu]], without `--disable-multi-arch`
+ * <a id=toolchain_cross-gnu>[[toolchain/cross-gnu]], without `--disable-multi-arch`</a>
i686-pc-gnu-gcc ../sysdeps/i386/i686/multiarch/strcmp.S -c [...]
../sysdeps/i386/i686/multiarch/../strcmp.S: Assembler messages:
@@ -87,7 +87,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
Might simply be a missing patch(es) from master.
- * `--disable-multi-arch`
+ * <a id=disable-multi-arch>`--disable-multi-arch`</a>
IRC, freenode, #hurd, 2012-11-22
@@ -116,12 +116,12 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
<tschwinge> Ah, I probably have been thinking about open_issues/ifunc
and open_issues/libc_variant_selection.
- * --build=X
+ * <a id=buildX>--build=X</a>
`long double` test: due to `cross_compiling = maybe` wants to execute a
file, which fails. Thus `--build=X` has to be set.
- * Check what all these are:
+ * <a id=check>Check what all these are:</a>
running configure fragment for sysdeps/mach/hurd
checking Hurd header version... ok
@@ -157,19 +157,19 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
checking for i386_set_gdt in mach_i386.defs... yes
checking whether i586-pc-gnu-mig supports the retcode keyword... yes
- * `sysdeps/i386/stackguard-macros.h`
+ * <a id=stackguard>`sysdeps/i386/stackguard-macros.h`</a>
See [[t/tls|t/tls]].
- * Verify 77c84aeb81808c3109665949448dba59965c391e against
- `~/shared/glibc/make_TAGS.patch`.
+ * <a id=77c84aeb81808c3109665949448dba59965c391e>Verify 77c84aeb81808c3109665949448dba59965c391e against
+ `~/shared/glibc/make_TAGS.patch`.</a>
- * `HP_SMALL_TIMING_AVAIL` not defined anywhere.
+ * <a id=HP_SMALL_TIMING_AVAIL>`HP_SMALL_TIMING_AVAIL` not defined anywhere.</a>
- * Unify `CPUCLOCK_WHICH` stuff in `clock_*` files.
+ * <a id=CPUCLOCK_WHICH>Unify `CPUCLOCK_WHICH` stuff in `clock_*` files.</a>
- * Not all tests are re-run in a `make -k tests; make tests-clean; make -k
- tests` cycle. For example, after `make tests-clean`:
+ * <a id=tests-clean>Not all tests are re-run in a `make -k tests; make tests-clean; make -k
+ tests` cycle. For example, after `make tests-clean`:</a>
$ find ./ -name \*.out
./localedata/tst-locale.out
@@ -196,7 +196,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
./check-local-headers.out
./begin-end-check.out
- * `CPUCLOCK_WHICH`, `t/cpuclock`
+ * <a id=t_cpuclock>`CPUCLOCK_WHICH`, `t/cpuclock`</a>
/media/boole-data/thomas/tmp/gnu-0/src/glibc.obj/rt/librt_pic.a(clock_settime.os): In function `clock_settime':
/media/boole-data/thomas/tmp/gnu-0/src/glibc/rt/../sysdeps/unix/clock_settime.c:113: undefined reference to `CPUCLOCK_WHICH'
@@ -208,7 +208,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
make[1]: Leaving directory `/media/boole-data/thomas/tmp/gnu-0/src/glibc'
make: *** [all] Error 2
- * Missing interfaces, amongst many more.
+ * <a id=missing>Missing interfaces, amongst many more.</a>
Many more are missing, some of which have been announced in `NEWS`, others
typically haven't (like new flags to existing functions). Typically,
@@ -228,7 +228,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
Check also the content of `gnu/stubs.h`, which lists all the functions
marked as stub which only return `ENOSYS`.
- * `chflags`
+ * <a id=chflags>`chflags`</a>
Patch sent, [[!message-id "20120427012130.GZ19431@type.famille.thibault.fr"]].
@@ -259,25 +259,25 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
<youpi> so I'd say ignore the error for now, we'll add the
declaration
- * [[t/tls-threadvar]]
+ * <a id=t_tls-threadvar>[[t/tls-threadvar]]</a>
- * `futimesat`
+ * <a id=futimesat>`futimesat`</a>
If we have all of 'em (check Linux kernel), `#define __ASSUME_ATFCTS`.
- * `bits/stat.h [__USE_ATFILE]`: `UTIME_NOW`, `UTIME_OMIT`
+ * <a id=bits_stat.h>`bits/stat.h [__USE_ATFILE]`: `UTIME_NOW`, `UTIME_OMIT`</a>
- * `io/fcntl.h [__USE_ATFILE]`
+ * <a id=__USE_ATFILE>`io/fcntl.h [__USE_ATFILE]`</a>
Do we support `AT_FDCWD` et al.?
(80b4e5f3ef231702b24d44c33e8dceb70abb3a06.)
- * `t/opendirat`: `opendirat` (`scandirat`, `scandirat64`)
+ * <a id=t_opendirat>`t/opendirat`: `opendirat` (`scandirat`, `scandirat64`)</a>
Need changes equivalent to c55fbd1ea768f9fdef34a01377702c0d72cbc213 +
14d96785125abee5e9a49a1c3037f35a581750bd.
- * `madvise`, `MADV_DONTNEED`, `MADV_DONTDUMP`, `MADV_DODUMP`
+ * <a id=madvise>`madvise`, `MADV_DONTNEED`, `MADV_DONTDUMP`, `MADV_DODUMP`</a>
[[glibc_madvise_vs_static_linking]].
@@ -303,11 +303,11 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
[...]
- Disable jemalloc on hurd and kfreebsd-*. No longer disabled upstream.
- * `msync`
+ * <a id=msync>`msync`</a>
Then define `_POSIX_MAPPED_FILES`, `_POSIX_SYNCHRONIZED_IO`.
- * `epoll`, `sys/epoll.h`
+ * <a id=epoll>`epoll`, `sys/epoll.h`</a>
Used by [[wayland]], for example.
@@ -330,18 +330,18 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
clearly not a priority
<nalaginrut> ok
- * `sys/eventfd.h`
+ * <a id=sys_eventfd.h>`sys/eventfd.h`</a>
- * `sys/inotify.h`
+ * <a id=sys_inotify.h>`sys/inotify.h`</a>
- * `sys/signalfd.h`
+ * <a id=sys_signalfd.h>`sys/signalfd.h`</a>
- * `sys/timerfd.h`
+ * <a id=sys_timerfd.h>`sys/timerfd.h`</a>
- * `timespec_get` (74033a2507841cf077e31221de2481ff30b43d51,
- 87f51853ce3671f4ba9a9953de1fff952c5f7e52)
+ * <a id=timespec_get>`timespec_get` (74033a2507841cf077e31221de2481ff30b43d51,
+ 87f51853ce3671f4ba9a9953de1fff952c5f7e52)</a>
- * `waitflags.h` (`WEXITED`, `WNOWAIT`, `WSTOPPED`, `WCONTINUED`)
+ * <a id=waitflags.h>`waitflags.h` (`WEXITED`, `WNOWAIT`, `WSTOPPED`, `WCONTINUED`)</a>
IRC, freenode, #hurd, 2012-04-20:
@@ -368,9 +368,9 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
See `posix/tst-waitid.out` failure below.
- * `getconf` things (see below the results of `tst-getconf.out`)
+ * <a id=getconf>`getconf` things (see below the results of `tst-getconf.out`)</a>
- * `getsockopt`, `setsockopt`
+ * <a id=getsockopt>`getsockopt`, `setsockopt`</a>
IRC, freenode, #hurd, 2013-02-14
@@ -415,7 +415,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
<braunr> no, linux is more permissive
<braunr> (at least, on this matter)
- * `getcontext`/`makecontext`/`setcontext`/`swapcontext`
+ * <a id=getcontext>`getcontext`/`makecontext`/`setcontext`/`swapcontext`</a>
Support for these functions within the Hurd threadvar environment has
been added, but for multi-threaded applications ([[libpthread]]), it is
@@ -854,7 +854,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
<braunr> to check where those locks are held and determine the
right order
- * `recvmmsg`/`sendmmsg` (`t/sendmmsg`)
+ * <a id=recvmmsg>`recvmmsg`/`sendmmsg` (`t/sendmmsg`)</a>
From [[!message-id "20120625233206.C000A2C06F@topped-with-meat.com"]],
Roland McGrath: *They are generally useful interfaces and there is
@@ -865,7 +865,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
Then perhaps the Linux fallback case should be that instead of stubs,
too.*
- * `SOCK_CLOEXEC`
+ * <a id=SOCK_CLOEXEC>`SOCK_CLOEXEC`</a>
IRC, freenode, #hurd, 2013-09-02:
@@ -994,19 +994,19 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
For specific packages:
- * [[octave]]
+ * <a id=octave>[[octave]]</a>
- * Create `t/cleanup_kernel-features.h`.
+ * <a id=t_cleanup_kernel-features.h>Create `t/cleanup_kernel-features.h`.</a>
- * [[Secure_file_descriptor_handling]].
+ * <a id=Secure_file_descriptor_handling>[[Secure_file_descriptor_handling]].</a>
- * In `sysdeps/unix/sysv/linux/Makefile`, there are a bunch of
- `-DHAVE_SENDFILE` -- but we do have `sendfile`, too.
+ * <a id=sendfile>In `sysdeps/unix/sysv/linux/Makefile`, there are a bunch of
+ `-DHAVE_SENDFILE` -- but we do have `sendfile`, too.</a>
Define `__ASSUME_SENDFILE` to 1 in `kernel-features.h`, if `sendfile`
works.
- * `/usr/include/pthread.h` overwrite issue
+ * <a id=pthreadoverwrite>`/usr/include/pthread.h` overwrite issue</a>
`make`, after editing `nss/nss_db/db-initgroups.c`:
@@ -1027,9 +1027,9 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
install`, prepending an additional slash to `install_root` (that is,
`install_root=//[...]`) is enough to obfuscate the Makefile rules.
- * `sysdeps/unix/sysv/linux/syslog.c`
+ * <a id=syslog.c>`sysdeps/unix/sysv/linux/syslog.c`</a>
- * `fsync` on a pipe
+ * <a id=fsync>`fsync` on a pipe</a>
IRC, freenode, #hurd, 2012-08-21:
@@ -1203,7 +1203,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
[[!message-id "1351231423.8019.19.camel@hp.my.own.domain"]].
- * `t/no-hp-timing`
+ * <a id=t_no-hp-timing>`t/no-hp-timing`</a>
IRC, freenode, #hurd, 2012-11-16
@@ -1211,7 +1211,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
couldn't that file be just replaced by #include
<sysdeps/generic/hp-timing.h>?
- * `flockfile`/`ftrylockfile`/`funlockfile`
+ * <a id=flockfile>`flockfile`/`ftrylockfile`/`funlockfile`</a>
IRC, freenode, #hurd, 2012-11-16
@@ -1350,7 +1350,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
<pinotree> provides a EXEC_PAGESIZE define in libio, so it makes it use
mmap (like on linux) instead of malloc
- `t/pagesize`.
+ * <a id=t_pagesize>`t/pagesize`.</a>
<braunr> yes, the stub is used instead of the libpthreads code
<braunr> tschwinge: ^
@@ -1468,7 +1468,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
<youpi> ok, so all god
<youpi> +o
- * `t/pagesize`
+ * <a id=t_pagesize2>`t/pagesize`</a>
IRC, freenode, #hurd, 2012-11-16
@@ -1509,7 +1509,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
size
<braunr> well they have to
- * `LD_DEBUG`
+ * <a id=LD_DEBUG>`LD_DEBUG`</a>
IRC, freenode, #hurd, 2012-11-22
@@ -1523,7 +1523,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
<pinotree> http://paste.debian.net/25934/ ← _hurd_thread_sigstate calls
malloc, boom
- * `conformtest`
+ * <a id=conformtest>`conformtest`</a>
IRC, OFTC, #debian-hurd, 2013-09-22:
@@ -1543,7 +1543,7 @@ Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
type for some flock structure field)
<youpi> s/by/be/
- * Verify baseline changes, if we need any follow-up changes:
+ * <a id=baselinechanges>Verify baseline changes, if we need any follow-up changes:</a>
* a11ec63713ea3903c482dc907a108be404191a02
* 7e2b0c8562b35155820f87b5ff02a8b6850344cc