Age | Commit message (Collapse) | Author | |
---|---|---|---|
2023-08-16 | build: generate the Makefile in python | dzwdz | |
i've been wanting to do this for a while the main benefit is that i can do stuff per-rule, so i can get rid of the `@mkdir -p $(D)` i had everywhere, and in the near future i can make CC targets automatically depend on a sysroot | |||
2023-08-15 | build: replace make {boot,test} with a dedicated script | dzwdz | |
2023-08-15 | user: fix freeze if graphical shell was quit | dzwdz | |
2023-08-14 | reorganization: first steps | dzwdz | |
2023-08-13 | libc: replace fork2_n_mount with mount_at | dzwdz | |
2023-08-13 | kern: undo accidentally commited debug code | dzwdz | |
2023-08-10 | user: more descriptive process titles | dzwdz | |
2023-08-10 | user/fs: no longer inject MOUNT_ATs by default | dzwdz | |
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-08 | bootstrap: fix main()'s stack alignment | dzwdz | |
2023-08-08 | build: build bootstrap as an ELF first, and then convert to a raw binary | dzwdz | |
2023-08-06 | kernel: put every driver in /kdev/ | dzwdz | |
there's no real reason for bootstrap to be doing that, and this brings it closer to only doing the elf loading | |||
2023-08-06 | libc: fs_dirinject2 for injecting multiple paths | dzwdz | |
2023-07-19 | user /keyboard: handle open()s instantly even if waiting for kb | dzwdz | |
fixes e.g. `echo */*` in dash | |||
2023-07-08 | user/keyboard: check open() path | dzwdz | |
this prevents someone from trying to `ls /keyboard/`, and makes `echo */*` in dash almost work if you mash the keyboard | |||
2023-07-08 | add debian build deps to the readme | dzwdz | |
2023-06-25 | user/libc: fix fgets not storing the newline | dzwdz | |
also removed an old TODO | |||
2023-06-25 | user/testelf: fix broken path in stackexec | dzwdz | |
2023-06-25 | ports: reimplement the ports system from scratch | dzwdz | |
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-20 | build: remove the old "linter" | dzwdz | |
It was a good idea, but it didn't even work. 0/10 Maybe I should replace it with semgrep someday. For the only current rule, I can split src/kernel/ into src/kernel/{amd64,generic}, and just don't have amd64 in generic's include path. | |||
2023-06-18 | libc: experimental fread buffering support | dzwdz | |
makes find(1) run 3x faster | |||
2023-06-17 | libc: implement dirent.h | dzwdz | |
2023-06-17 | kernel: fix procfs overflow bug, add safeguard to prevent similar ones | dzwdz | |
2023-06-17 | libc: dumb stat() stubs to make dash's PATH search work | dzwdz | |
2023-06-17 | libc: expand psdata into a proper struct, include executable base | dzwdz | |
this is very useful for debugging userland programs using the qemu gdb stub | |||
2023-06-11 | kernel: replace await with wait2, roughly compatible with POSIX | dzwdz | |
dash works now :^))) | |||
2023-06-10 | user: fix floating point operations | dzwdz | |
2023-06-10 | libc: last stubs needed for dash to run! :^) | dzwdz | |
2023-06-10 | kernel: implement DUP_SEARCH (like unix's F_DUPFD) | dzwdz | |
2023-06-10 | libc: basic signal stubs, non-spec-compliant write() stub | dzwdz | |
2023-06-10 | kernel: implement getpid, getppid | dzwdz | |
2023-06-09 | ports/dash: stub out everything needed for dash to compile | dzwdz | |
2023-06-08 | libc: move the strto* functions to stdlib.h, where they "belong" | dzwdz | |
2023-06-08 | user/vterm: support displaying tabs | dzwdz | |
2023-06-08 | libc/exec: don't leak file descriptors | dzwdz | |
2023-06-04 | user/vterm: vendor a font (spleen) instead of downloading one on build | dzwdz | |
2023-06-04 | kernel: rework /proc/ and process IDs | dzwdz | |
I'm yet to write proper docs but the TL;DR is: Mounting /proc/ creates a new pid namespace. You're still visible in the old namespace with your old pid, but your children won't be. You see your own pid as 1. Current pids of children will be preserved, pids will be allocated starting from the highest one of your children. | |||
2023-06-02 | libc: stub out sltar's requirements | dzwdz | |
2023-02-25 | merge the initrd and sysroot directories | dzwdz | |
2023-02-25 | user/font: stop depending on the system kbd install | dzwdz | |
2023-02-25 | user/ext2fs: don't treat EOF as an error | dzwdz | |
2023-02-25 | ports: move to the new toolchain | dzwdz | |
2023-02-25 | toolchain: working customized toolchain for userland bins | dzwdz | |
2023-02-24 | toolchain: partially set up the sysroot | dzwdz | |
2023-02-23 | build: don't -Isrc/ in user code | dzwdz | |
2023-02-23 | ports/doom: update to the current camellia api | dzwdz | |
2023-02-23 | fix: misc warnings | dzwdz | |
2023-02-23 | fix: printf related warnings | dzwdz | |
2023-02-23 | toolchain: update, move to a Camellia-specific toolchain | dzwdz | |
2023-02-22 | kernel/malloc: fill allocated and freed regions with junk | dzwdz | |
2023-02-19 | readme: remove stupid stuff | dzwdz | |