User Tools

Site Tools


wishlist:david

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
wishlist:david [2016/03/14 12:36]
dcvmoole setuid revision done
wishlist:david [2017/03/27 16:09]
dcvmoole not to forget: pselect(2)
Line 167: Line 167:
   * complication:​ /etc/mtab is currently a symlink to /​proc/​mounts,​ this needs to be dealt with   * complication:​ /etc/mtab is currently a symlink to /​proc/​mounts,​ this needs to be dealt with
   * note: ideally, procfs should no longer be needed on the ramdisk   * note: ideally, procfs should no longer be needed on the ramdisk
 +
 +=== Rework the DS publish/​subscribe API ===
 +
 +  * reason: the current implementation is heavyweight (libc regex) and uses malloc through regcomp(3)
 +  * reason: at the same time it does not fulfill needs of services, which want to have multiple independent subscriptions
 +  * complication:​ this requires a proper look at all current DS publish/​subscribe usage scenarios
 +  * note: an example use case is RMIB, which wants to detect MIB-service restarts independent of the main code
 +  * note: a solution based on multiple possible subscriptions to sets of service classes would probably suffice
 +  * note: libsys should probably have a DS notification dispatcher, possibly as part of SEF
 +  * note: this probably a good time to introduce a system-wide constant for service label sizes
 +
 +=== Make the MIB service'​s RMIB calls asynchronous ===
 +
 +  * reason: a RMIB call to a deadlocked service may currently deadlock MIB, and with that the entire system
 +  * complication:​ this may or may not require the MIB service to sign up for PM process events
 +  * note: this depends on RMIB being notified about service deaths through DS, rather than via ipc_sendrec()
 +
 +=== Extend RMIB functionality/​robustness to match service requirements ===
 +
 +  * problem: it is not possible to modify (= bump the version number of) already-mounted RMIB subtrees (e.g., net.interface)
 +  * problem: it is not possible to mount RMIB subtrees using a name only (e.g. minix.lwip)
 +  * problem: it is currently possible to mess up the MIB tree with bad name+id combos in RMIB mount requests
 +
 +=== Add support for pselect(2) ===
 +
 +  * reason: pselect(2) is required by dhcpcd(8) and various other parts of userland
 +  * complication:​ pselect(2) is supposed to be atomic and thus cannot be implemented as a select(2) wrapper
 +  * complication:​ a proper implementation will require a non-trivial extension to the PM/VFS protocol
 +  * subsequent project: also implement paccept(2); this will require storing more call state in VFS
  
 === Move the BSD socket API into VFS === === Move the BSD socket API into VFS ===
  
-  * status: **IN PROGRESS**+  * status: **PULL REQUEST FILED**
   * reason: libc should not need to test or track socket types, it violates the light-libc minix philosophy   * reason: libc should not need to test or track socket types, it violates the light-libc minix philosophy
   * reason: the individual writes to implement sendto (etc) probably violate posix signal atomicity   * reason: the individual writes to implement sendto (etc) probably violate posix signal atomicity
wishlist/david.txt · Last modified: 2017/10/11 18:13 by dcvmoole