ref: 9b8e21a6669c6312809b174220fca59728cbb68b
dir: /TODO/
TODO:
- [ ] Look into args address space prior to hitting exec
- [ ] /env/fn# to init functions?
- [ ] set up initial connection before handing over to an rc session, to set up binds and mounts
- [ ] Import our $objtype/bin and /rc from 9front instead of builtins, -f $9filesys
- [x] remove rc builtins, possibly add os() as it uses devcmd locally, if needed
- [ ] Adapt github.com/michaelforney/nine to load and execute our binaries (exec)
- [x] start.s in libmachdep for each posix-target, just do like tas.c
- investigate if we want to run this another way instead!
- [ ] darwin will use mach_vm_-family of functions, else we use mmap
- [ ] have it export a var service=unix
- [ ] Some people probably want aan?
- [ ] gui-cocoa try to capture the windows we create so we can send mouse/keyboard to it, plist for launchd
- [ ] gui-wl cannibalize the wayland shims
- [ ] Use ScreenCaptureKit to get at the video/audio. Handle resizes the other direction
- [ ] define the gui interface
- [x] Makefile librc --> librc.a
- [ ] RFREND + RFNOMEM could probably be handled in rfork
Kernel space needs:
- devdraw - #i: !needed, We use the client exported /dev/draw instead
- devkbd - #b: !needed, We use the client exported /dev/kbd instead
- devmouse - #m: !needed, We use the client exported /dev/mouse instead
- devaudio - #A: !needed, We use the client exported /dev/audio instead
- devcmd - #C: needed OS(1) commands, we already run on host
- devcons - #c: needed, /dev/cons
- devenv - #e: needed, /dev/env
- devfs - #U: needed, local files
- devip - #I: needed, networking
- devlfd - #L: needed, local fd
- devmnt - #M: needed, client shares
- devpipe - #|: needed for pipes
- devroot - #/: needed, base of stack
- devssl - #D: !needed, ssl - eventually add
- devtls - #a: !needed, tls - eventually add
- devproc - #p: needed, /dev/proc, overlay any existing
- devsrv - #s: !needed, eventually add
- devtab - meta, needed - add/remove any devices that we add/remove, from here as well