summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-09-18kernel: implement _sys_time()dzwdz
After some consideration this seems like the most fitting way to handle timekeeping. Directly, the syscall is only useful for keeping time within a single process, but it is meant to be used for e.g. NTP clients, which will provide the real time through the VFS.
2023-09-17kernel/proc: inline proc_switch into proc_switch_anydzwdz
2023-09-17kernel/amd64: add HPET support, slightly rework time handlingdzwdz
2023-09-15kern: fix GDT order for 64bit sysretdzwdz
2023-09-13*: clean up the filesystemdzwdz
moved keyboard and vtty to /dev/, removed some obsolete stuff
2023-09-13cmd/init: remove /initctl, use intr insteaddzwdz
2023-09-11*: rename /kdev/ to /dev/dzwdz
2023-09-09kernel: gracefully handle no serial portdzwdz
2023-09-09kernel: build /kdev/ on the flydzwdz
2023-09-07kernel: slightly refactor the page allocatordzwdz
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