summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-09-07user: fix stdio stream pos; remove the shell pipe redir workarounddzwdz
2023-09-07shell: use waitpiddzwdz
2023-09-07shell: fix endless loop after redirectiondzwdz
2023-09-06./boot: pass through C-cdzwdz
2023-09-06boot: compress the init moduledzwdz
2023-09-06kernel: fix panic with large initrddzwdz
2023-09-03misc: remove old debug printsdzwdz
the rtl8139 mac wasn't being read correctly anyways, and the init stuff wasn't revelant in ages. the rest is relatively useful
2023-09-03build: -Osdzwdz
2023-09-03libc: split up large .c files, slimming down small binaries a bitdzwdz
2023-09-02netstack: only return from open() once the socket connectsdzwdz
2023-09-02cmd: add socksfsdzwdz
2023-09-02libc: opendir_f; make httpd use itdzwdz
2023-08-31cmd/ps: use dirent.hdzwdz
2023-08-31kernel: add _sys_getprocfs in place of HANDLE_PROCFSdzwdz
This makes the side-effects more explicit, and feels less hacky than `HANDLE_PROCFS`. I don't think accessing a handle alone should have side-effects, even if it's a "special" one.
2023-08-30style: get rid of eprintfdzwdz
2023-08-29kernel: remove _sys_await, emulate it in libcdzwdz
2023-08-29tests: fix everything broken by the pipe changedzwdz
god, those tests are a mess. so are esemaphores.
2023-08-27ports: qbe, cproc :^)dzwdz
2023-08-25ports: binutils :^)dzwdz
2023-08-25bootstrap: support hardlinks in initrddzwdz
required for the binutils port
2023-08-25libc: get as+ld to workdzwdz
2023-08-24libc: get most of binutils to compiledzwdz
2023-08-17build: rework how sysroots workdzwdz
/usr/include is now built on the fly, letting me merge include files from multiple modules, which should be a win for organization later on. binutils & gcc need to be recompiled. limits.h shamelessly stolen from heat on #osdev, as gcc stopped providing me with its own header. which was a hack in the first place
2023-08-16libc: "fix" unused argument warningsdzwdz
2023-08-16build: generate the Makefile in pythondzwdz
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-15build: replace make {boot,test} with a dedicated scriptdzwdz
2023-08-15user: fix freeze if graphical shell was quitdzwdz
2023-08-14reorganization: first stepsdzwdz
2023-08-13libc: replace fork2_n_mount with mount_atdzwdz
2023-08-13kern: undo accidentally commited debug codedzwdz
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-08bootstrap: fix main()'s stack alignmentdzwdz
2023-08-08build: build bootstrap as an ELF first, and then convert to a raw binarydzwdz
2023-08-06kernel: 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-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-07-08add debian build deps to the readmedzwdz
2023-06-25user/libc: fix fgets not storing the newlinedzwdz
also removed an old TODO
2023-06-25user/testelf: fix broken path in stackexecdzwdz
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-20build: 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-18libc: experimental fread buffering supportdzwdz
makes find(1) run 3x faster
2023-06-17libc: implement dirent.hdzwdz
2023-06-17kernel: fix procfs overflow bug, add safeguard to prevent similar onesdzwdz
2023-06-17libc: dumb stat() stubs to make dash's PATH search workdzwdz
2023-06-17libc: expand psdata into a proper struct, include executable basedzwdz
this is very useful for debugging userland programs using the qemu gdb stub
2023-06-11kernel: replace await with wait2, roughly compatible with POSIXdzwdz
dash works now :^)))
2023-06-10user: fix floating point operationsdzwdz