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/16 14:29]
dcvmoole update
wishlist:david [2017/10/11 18:13] (current)
dcvmoole networking project is merged
Line 190: Line 190:
   * 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
  
-=== Move the BSD socket API into VFS ===+=== Disallow killing processes in an uninterruptible system call ===
  
-  * status: **PULL REQUEST FILED*+  * reasonprocesses may currently be terminated while in an uninterruptible system call, possibly triggering poorly-tested scenarios in other services (safecopy failures, etc) 
-  * reasonlibc should not need to test or track socket typesit violates ​the light-libc minix philosophy +  ​complication:​ this will require changes to the PM signal state machine, with subtle side effects 
-  * reason: ​the individual writes to implement sendto ​(etcprobably violate posix signal atomicity +  ​complication:​ involving all user-facing system services in exit notification is a performance problem 
-  * benefitthis allows for proper socket call support in trace(1+  ​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 
-  * complication: ​this will break everything, ​require ​INET's retirement and substantial UDS rewrite +  * noteideally the same idea would be applied ​to signal handler invocationbecause ​the current approach makes dangerous and already-incorrect(?​) assumptions about "​retreg"​ there 
-  * note: this is probably best done along with many other network stack related changes+ 
 +=== Add support for pselect(2) === 
 + 
 +  * reason: ​pselect(2is required by dhcpcd(8) and various other parts of userland 
 +  * complicationpselect(2is 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 projectalso implement paccept(2); ​this will require storing more call state in VFS
  
 === Implement job control === === Implement job control ===
Line 215: 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.1489670941.txt.gz · Last modified: 2017/03/16 14:29 by dcvmoole