summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2022-05-01kernel/proc: make handles separate refcounted objectsdzwdz
2022-05-01init/fs: make directory listings respect offsetsdzwdz
2022-05-01init/libc: libc_file wrapper over the raw syscallsdzwdz
2022-05-01init/cat: read files until EOFdzwdz
2022-04-28kernel/proc: automatically free processes given the chancedzwdz
2022-04-28kernel/proc: reparent deathbedded processesdzwdz
dead processes now can't have alive children
2022-04-28init: run shells from a child process to expose bug in process_free()dzwdz
2022-04-28kernel/proc: simplify `process_seed`dzwdz
2022-04-28kernel/proc: explicitly handle all process states in switch()esdzwdz
2022-04-28kernel/vfs: don't wait for IRQs when system is about to haltdzwdz
2022-04-22kernel: recursive process_freedzwdz
2022-04-21kernel: consolidate `process_seed` and `run_init`dzwdz
2022-04-21kernel/proc: only expose `process_switch_any()`dzwdz
other parts of the kernel don't need to care about which process exactly gets switched into
2022-04-21kernel/proc: only kill deathbedded processes on switch attemptdzwdz
this makes `process_transition` safe again, as it won't be able to free processes. it was a pretty unintuitive behaviour
2022-04-21kernel: recursive kill()dzwdz
2022-04-21kernel: `shutdown()`; temporarily print process states on shutdowndzwdz
2022-04-16kernel/vfs: store the queue in `vfs_request` itselfdzwdz
2022-04-16kernel/vfs: refactor `vfs_request_accept` into `vfs_backend_accept`dzwdz
handling the backend queue makes more sense here than in the syscall implementation. it's also just overall cleaner
2022-04-16kernel/vfs: be more strict about the state of `vfs_backend.handler`dzwdz
2022-04-15kernel/vfs: don't hang on orphaned vfs callsdzwdz
2022-04-15kernel/vfs: don't hang waiting for a vfs backend after it exit()sdzwdz
2022-04-14kernel/proc: only change state through `process_transition`dzwdz
2022-04-14kernel: store a pointer to the callback function in .waits4irqdzwdz
removes `proc.c`'s pointless dependency on `vfs/root.h`
2022-04-14kernel/root: don't panic on writes to `/ps2`dzwdz
2022-04-14kernel: port init's `printf` implementationdzwdz
2022-04-14init: refactor printfdzwdz
2022-04-14init/fs: fix `fs_dir_inject`dzwdz
the loop wasn't bounder, so was copying garbage - including multiple null bytes also, the trailing slash was appended even if the injected path didn't have one
2022-04-14kernel: slightly clean up `vfs/request.c`dzwdz
2022-04-14kernel: basic page allocator, `process_free`dzwdz
2022-04-13init/test: add a fork() stress testdzwdz
this currently crashes the kernel. the point is to stop it from doing that
2022-04-12kernel/proc: implement `process_next` for simple process iterationdzwdz
2022-04-12shared: fix some minor warningsdzwdz
2022-04-12kernel: make all sizes unsigned, sort out the sign messdzwdz
2022-04-11kernel: implement `cpu_pause()` in assembly, remove `irq_interrupt_flag()`dzwdz
2022-04-11kernel/arch: only allow IRQs in the idle processdzwdz
2022-04-11kernel: shutdown when init quitsdzwdz
thanks to this it's easier to power off - instead of waiting for all processses to quit (which now involves writing `quit` both on serial and ps/2), one of those can just somehow kill init. currently this is just done by exiting from any shell - init will return from await and exit too
2022-04-11kernel/rootvfs: don't overread from ps2/serialdzwdz
2022-04-10kernel/driver: modify the ps2/serial drivers to use ring_tdzwdz
2022-04-10shared: implement a basic ring bufferdzwdz
2022-04-10init/stdlib: don't make printf() assume that stdout is fd 0dzwdz
2022-04-10kernel/i386: rewrite the serial driver to wait for IRQdzwdz
proper multiprocess support!
2022-04-10init/fs: handle delegated reads in a subprocessdzwdz
first off: this is horrible. there's no CoW, so this is horribly slow. the sole purpose of this is to let the userland delegate handle multiple requests at once, because i'm implementing concurrent IO and I kinda need that. it's possible that handling of multiple requests could be handled in a better way - but this could be good enough once i implement CoW
2022-04-10kernel: idle processdzwdz
2022-04-10kernel: process_find_multipledzwdz
2022-04-09kernel: prevent switching processes in syscall handlersdzwdz
2022-04-09init: disable the vga shelldzwdz
i was disabling it while working anyways, i'll only turn it back on once there's support for multiple processes waiting for an irq
2022-04-09kernel/vfs: prevent the vfs functions from switching processesdzwdz
2022-04-09kernel: `vfs_request_accept` now doesn't switch processesdzwdz
2022-04-07init: two concurrent shells - serial & vga/ps2dzwdz
2022-04-07kernel/vfs: fix panic when using an user fs which hadn't yet wait()eddzwdz