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
wishlist:david [2017/03/27 16:09]
dcvmoole not to forget: pselect(2)
wishlist:david [2017/10/11 18:13] (current)
dcvmoole networking project is merged
Line 189: Line 189:
   * problem: it is not possible to mount RMIB subtrees using a name only (e.g. minix.lwip)   * 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   * problem: it is currently possible to mess up the MIB tree with bad name+id combos in RMIB mount requests
 +
 +=== Disallow killing processes in an uninterruptible system call ===
 +
 +  * reason: processes may currently be terminated while in an uninterruptible system call, possibly triggering poorly-tested scenarios in other services (safecopy failures, etc)
 +  * complication:​ this will require changes to the PM signal state machine, with subtle side effects
 +  * complication:​ involving all user-facing system services in exit notification is a performance problem
 +  * note: the most obvious solution would be kernel support for notification (to PM) when a process system call has completed, comparable to SIGNDELAY, and a PREEXIT process state in PM
 +  * note: ideally the same idea would be applied to signal handler invocation, because the current approach makes dangerous and already-incorrect(?​) assumptions about "​retreg"​ there
  
 === Add support for pselect(2) === === Add support for pselect(2) ===
Line 196: Line 204:
   * complication:​ a proper implementation will require a non-trivial extension to the PM/VFS protocol   * 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   * subsequent project: also implement paccept(2); this will require storing more call state in VFS
- 
-=== Move the BSD socket API into VFS === 
- 
-  * status: **PULL REQUEST FILED** 
-  * 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 
-  * benefit: this allows for proper socket call support in trace(1) 
-  * complication:​ this will break everything, require INET's retirement and a substantial UDS rewrite 
-  * note: this is probably best done along with many other network stack related changes 
  
 === Implement job control === === Implement job control ===
Line 222: Line 221:
   * complication:​ different file system will require different small exceptions   * complication:​ different file system will require different small exceptions
   * complication:​ no neat way to model orphan management in the edge (directory) layer   * complication:​ no neat way to model orphan management in the edge (directory) layer
 +
 +=== Move the BSD socket API into VFS ===
 +
 +  * status: **MERGED**
 +  * 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
 +  * benefit: this allows for proper socket call support in trace(1)
 +  * complication:​ this will break everything, require INET's retirement and a substantial UDS rewrite
 +  * note: this is probably best done along with many other network stack related changes
  
 === Look into setuid/​seteuid behavior === === Look into setuid/​seteuid behavior ===
wishlist/david.1490623773.txt.gz · Last modified: 2017/03/27 16:09 by dcvmoole