summaryrefslogtreecommitdiff
path: root/src/user/app/init
AgeCommit message (Collapse)Author
2023-08-14reorganization: first stepsdzwdz
2023-08-10user: more descriptive process titlesdzwdz
2023-08-10user/fs: no longer inject MOUNT_ATs by defaultdzwdz
arguably the wrong choice from an usability standpoint, but the right choice from a performance standpoint. there's definitely a nicer way to do this
2023-08-06libc: fs_dirinject2 for injecting multiple pathsdzwdz
2023-07-19user /keyboard: handle open()s instantly even if waiting for kbdzwdz
fixes e.g. `echo */*` in dash
2023-07-08user/keyboard: check open() pathdzwdz
this prevents someone from trying to `ls /keyboard/`, and makes `echo */*` in dash almost work if you mash the keyboard
2023-06-25ports: reimplement the ports system from scratchdzwdz
side stuff: * removed sltar since it wasn't working anyways * made signal() no longer panic, as that broke certain ports (oops) * doom now ships with the FreeDOOM WADs * /usr/ was aliased to /init/usr/, more directories were added to /bin/ to improve compat with ports
2023-06-04user/vterm: vendor a font (spleen) instead of downloading one on builddzwdz
2023-02-23build: don't -Isrc/ in user codedzwdz
2023-01-25style: typedef structs, shorter namespacesdzwdz
I've wanted to do this for a while, and since I've just had a relatively large refactor commit (pcpy), this is as good of a time as any. Typedefing structs was mostly inspired by Plan 9's coding style. It makes some lines of code much shorter at basically no expense. Everything related to userland kept old-style struct definitions, so as not to force that style onto other people. I also considered changing SCREAMING_ENUM_FIELDS to NicerLookingCamelcase, but I didn't, just in case that'd be confusing.
2023-01-25user: process titles, /bin/psdzwdz
2023-01-24kernel/procfs: allow reading memory of descendantsdzwdz
I'm suprised how short this patch is. It also feels like I've introducted a vulnerability somewhere with it. Hopefully it's a false feeling.
2023-01-19kernel: user interruptsdzwdz
2023-01-11kernel: return EPIPE when fs_waiting on a dead filesystemdzwdz
2023-01-08kernel: let parents kill their children againdzwdz
2022-12-27user/termcook: ignore arrows/tabdzwdz
2022-12-27sh: minor usability / aesthetic improvementsdzwdz
2022-12-25user/lib: reorganize a few header filesdzwdz
2022-11-21user/init: sandbox driversdzwdz
2022-10-19shared/printf: implement %pdzwdz
2022-09-20shared: rename ufs_request to better fit its role in userlanddzwdz
The old name could have suggested that it held a response to a request received by fs_wait. The new name is unfortunately very similar to the `struct vfs_request` already used internally in the kernel, but it's better at conveying that it contains a filesystem request yet to be handled. vfs_request - virtual filesystem request (a bad name in hindsight) ufs_request - user filesystem request
2022-09-02user/init: don't shutdown when a fs driver quitsdzwdz
2022-09-02kernel/proc: introduce child ids for telling children apartdzwdz
2022-08-29user/termcook: make C-c kill the running processdzwdz
2022-08-28user/lua: prepare libc headersdzwdz
2022-08-27user/netstack: IP gateway, make networking work without a second vmdzwdz
2022-08-26user/ports: port oeddzwdz
make clean; ./port ed clean; make -j4 out/libc.a && ./port ed install && make -j4
2022-08-24user/netstack: take ip as argument when mountingdzwdz
2022-08-23shared/ring: rename ring_size to ring_used, add ring_availdzwdz
2022-08-21user: rename ethdump to netstackdzwdz
2022-08-20user/ethdump: turn into a file serverdzwdz
2022-08-19syscall/fs_wait: return a handle for each requestdzwdz
2022-08-14user/libc: ctype.hdzwdz
2022-08-13user: a primitive login utilitydzwdz
2022-08-13user/init: restart the shell processesdzwdz
2022-08-13user: add /initctl for shutting the system down in a cleaner waydzwdz
2022-08-13user: plan9-style /bin/ uniondzwdz
2022-08-08user: union filesystemsdzwdz
2022-08-08user: separate tmpfs into its own executable, add `mount`dzwdz
2022-08-07driver/ps2: prepare for mouse supportdzwdz
2022-08-07user/tmpfs: expand files on the flydzwdz
2022-08-05add _syscall_getsizedzwdz
2022-08-04do some simple TODOs, organize the rest; general code maintainancedzwdz
2022-08-02user: separate ansiterm/vterm out into its own binarydzwdz
2022-08-02user/ansiterm: only write() the part of the framebuffer that changeddzwdz
2022-08-01fix some sign comparision warningsdzwdz
2022-08-01user: make ansiterm use the framebuffer instead of vga text modedzwdz
2022-07-31user: replace the MOUNT macro with MOUNT_ATdzwdz
The old style could be confused with a regular function, where the driver would be executed unconditionally. This should make it more obvious that the driver doesn't get executed in the parent process.
2022-07-30user/fs: create a shared library for handling directory readsdzwdz
2022-07-30user: stderrdzwdz