Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-07-14 | kernel: make the adhoc VfsQueue queues use ReqQueue instead | dzwdz | |
I'm still not sure if I should use sys/queue.h for this. But yeah, this is more consistent, and it will also let me switch over to O(1) insertions later on. | |||
2024-07-14 | kernel: rework postqueue | dzwdz | |
Keeping its old name for now to make things easier for myself. This might just be replaced by sys/queue.h soon. | |||
2024-07-14 | kernel/request: remove outdated comment in VfsReq | dzwdz | |
2024-07-14 | kernel/malloc: clean up the code a little bit | dzwdz | |
The bitmap functions now accept page addresses so I don't have to handle raw bitmap indexes, which was kinda complex. kmalloc_sanity is now not visible to other code as it wasn't really that useful in the first place. | |||
2024-07-13 | kernel/malloc: limit the maximum allocation size to under a page | dzwdz | |
This will likely be changed back, but for the time being it will let me implement a better allocator without too much effort. | |||
2024-07-12 | kernel: don't reuse VfsReq allocations for a single process | dzwdz | |
To use the same testing methodology as when I've introduced request slots: before: / $ iostress 1 1000000 0 > /dev/vtty run 0: 2585203 1000000 calls, 0 bytes. avg 2585203 after: / $ iostress 1 1000000 0 > /dev/vtty run 0: 2783171 1000000 calls, 0 bytes. avg 2783171 This is around a 7.7% slowdown - that I hope to fix with a better malloc. While this doesn't really make the code that much simpler, it doesn't feel like the right approach in the first place | |||
2024-07-11 | kernel: start cleaning up VfsRequest | dzwdz | |
* I'm being more strict about the linked list state to hopefully ensure I'm not leaking any references. * vfsreq_create was renamed to vfsreq_dispatchcopy as that name feels more clear. It copies its argument, and dispatches it. * Requests for user backends are now handled more like requests for kernel backends - there's an accept() function that accepts a request. | |||
2024-07-07 | kernel/vfs: split vfs_backend_refdown into two functions | dzwdz | |
2024-05-19 | kernel: implement /dev/bintime | dzwdz | |
2024-05-11 | kernel: DUP_RDONLY and DUP_WRONLY | dzwdz | |
I probably should've tested DUP_WRONLY too, now that I think about it. TODO? | |||
2024-05-11 | kernel: remove HANDLE_NULLFS | dzwdz | |
It was a dumb hack that wasn't even necessary - an error when mounting should shadow over the mountpoint anyways. | |||
2024-05-11 | kernel: fix null dereference when delegating an nonexistent handle | dzwdz | |
2024-05-11 | kernel: refactor handle management out of proc.c | dzwdz | |
2024-05-05 | net: expose the rtl mac to userland, make the netstack use it | dzwdz | |
2024-05-04 | kernel/rtl8139: prepare for /dev/eth/mac | dzwdz | |
2024-03-13 | kernel/malloc: slight rework (it's still bad), store more metadata | dzwdz | |
2024-03-13 | kernel/amd64: print debugging info on NMI | dzwdz | |
the vm isn't getting an NMI for any real reason anyways, so I might as well abuse it | |||
2024-02-23 | kernel: knock off some simple vfsreq TODOs | dzwdz | |
2024-02-23 | kernel: fix _sys_fs_wait in init | dzwdz | |
2024-02-21 | kernel: integrate the proc_ns_next fixes into proc_next | dzwdz | |
2023-12-25 | kernel: _sys_getnull() (basically /dev/null) | dzwdz | |
2023-09-29 | kernel: fix linked list iteration in postqueue | dzwdz | |
2023-09-29 | *: properly remove _sys_filicide | dzwdz | |
not sure how that slipped by | |||
2023-09-25 | kernel/procfs: `intrdown` node for sending an interrupt to all children | dzwdz | |
2023-09-25 | kernel: remove _sys_filicide (made redundant by _sys_intr) | dzwdz | |
2023-09-25 | kernel/intr: accept a message, allow killing processes via intrs | dzwdz | |
2023-09-24 | kernel: delay removing processes from tree | dzwdz | |
2023-09-19 | kernel: use HPET timer for sleeps | dzwdz | |
not strictly necessary, but this should improve: 1. sleep performance 2. power efficiency when idle | |||
2023-09-18 | kernel: 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-17 | kernel/proc: inline proc_switch into proc_switch_any | dzwdz | |
2023-09-17 | kernel/amd64: add HPET support, slightly rework time handling | dzwdz | |
2023-09-15 | kern: fix GDT order for 64bit sysret | dzwdz | |
2023-09-13 | cmd/init: remove /initctl, use intr instead | dzwdz | |
2023-09-11 | *: rename /kdev/ to /dev/ | dzwdz | |
2023-09-09 | kernel: gracefully handle no serial port | dzwdz | |
2023-09-09 | kernel: build /kdev/ on the fly | dzwdz | |
2023-09-07 | kernel: slightly refactor the page allocator | dzwdz | |
2023-09-06 | boot: compress the init module | dzwdz | |
2023-09-06 | kernel: fix panic with large initrd | dzwdz | |
2023-09-03 | misc: remove old debug prints | dzwdz | |
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-03 | build: -Os | dzwdz | |
2023-08-31 | kernel: add _sys_getprocfs in place of HANDLE_PROCFS | dzwdz | |
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-30 | style: get rid of eprintf | dzwdz | |
2023-08-29 | kernel: remove _sys_await, emulate it in libc | dzwdz | |
2023-08-27 | ports: qbe, cproc :^) | dzwdz | |
2023-08-14 | reorganization: first steps | dzwdz | |
2023-08-13 | kern: undo accidentally commited debug code | 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-06-17 | kernel: fix procfs overflow bug, add safeguard to prevent similar ones | dzwdz | |
2023-06-11 | kernel: replace await with wait2, roughly compatible with POSIX | dzwdz | |
dash works now :^))) |