Commit Graph

863 Commits

Author SHA1 Message Date
dzwdz 7f6686177a libc: better curl compat
I can now actually curl an entire page :^)
2024-02-20 20:09:06 +01:00
dzwdz 4be1fd6213 user/libc: reorganize net stuff, basic hosts-only gethostbyname()
/usr/share/hosts because i don't have /etc/ yet and i don't feel like creating it.
2023-12-25 20:12:44 +01:00
dzwdz b9f5f92bff kernel: _sys_getnull() (basically /dev/null) 2023-12-25 19:08:04 +01:00
dzwdz 4e1a6f1b3c ports: curl :^)
had to do a lot of hacky stuff, but it's there.
worked on this on and off for a while now
2023-12-25 18:36:02 +01:00
dzwdz 64d4330810 user: rework terminal handling 2023-09-30 00:43:02 +02:00
dzwdz eccd9d6d23 kernel: fix linked list iteration in postqueue 2023-09-29 22:00:07 +02:00
dzwdz df9343bb9e *: properly remove _sys_filicide
not sure how that slipped by
2023-09-29 09:21:20 +02:00
dzwdz 75f137b85a kernel/procfs: `intrdown` node for sending an interrupt to all children 2023-09-25 00:25:53 +02:00
dzwdz 681470cf98 kernel: remove _sys_filicide (made redundant by _sys_intr) 2023-09-25 00:16:12 +02:00
dzwdz 2c78dc983d kernel/intr: accept a message, allow killing processes via intrs 2023-09-25 00:12:57 +02:00
dzwdz 16138fc20f kernel: delay removing processes from tree 2023-09-24 14:06:34 +02:00
dzwdz 6a4d4a41a6 build: support single file commands 2023-09-22 23:42:30 +02:00
dzwdz a3d6aa9f8d ports: fix the doom port's time handling 2023-09-20 00:34:26 +02:00
dzwdz 8b0953d8cd kernel: use HPET timer for sleeps
not strictly necessary, but this should improve:
1. sleep performance
2. power efficiency when idle
2023-09-19 15:38:34 +02:00
dzwdz 14fd2aecd0 kernel: implement _sys_time()
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-18 16:20:52 +02:00
dzwdz 730a929fff kernel/proc: inline proc_switch into proc_switch_any 2023-09-17 17:16:43 +02:00
dzwdz 4ade8ff9e6 kernel/amd64: add HPET support, slightly rework time handling 2023-09-17 17:13:50 +02:00
dzwdz 458978e7b8 kern: fix GDT order for 64bit sysret 2023-09-15 00:29:11 +02:00
dzwdz 8757321821 *: clean up the filesystem
moved keyboard and vtty to /dev/, removed some obsolete stuff
2023-09-13 22:19:26 +02:00
dzwdz c9fbab701f cmd/init: remove /initctl, use intr instead 2023-09-13 00:05:06 +02:00
dzwdz 1e54db2608 *: rename /kdev/ to /dev/ 2023-09-11 03:17:23 +02:00
dzwdz 73ea9f2e35 kernel: gracefully handle no serial port 2023-09-09 16:55:10 +02:00
dzwdz 4516acc281 kernel: build /kdev/ on the fly 2023-09-09 16:54:13 +02:00
dzwdz b7e5252ab4 kernel: slightly refactor the page allocator 2023-09-07 22:35:15 +02:00
dzwdz 58eed4a579 user: fix stdio stream pos; remove the shell pipe redir workaround 2023-09-07 01:31:09 +02:00
dzwdz 9c3ee3807c shell: use waitpid 2023-09-07 00:52:31 +02:00
dzwdz cd8143209f shell: fix endless loop after redirection 2023-09-07 00:45:30 +02:00
dzwdz 8f5e8eb284 ./boot: pass through C-c 2023-09-06 22:25:38 +02:00
dzwdz 9abbefe27e boot: compress the init module 2023-09-06 22:25:29 +02:00
dzwdz cfaf50eac5 kernel: fix panic with large initrd 2023-09-06 21:23:55 +02:00
dzwdz 59dfa24f6f misc: remove old debug prints
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 01:51:36 +02:00
dzwdz f8732691b4 build: -Os 2023-09-03 01:41:52 +02:00
dzwdz a492c6ec11 libc: split up large .c files, slimming down small binaries a bit 2023-09-03 01:30:53 +02:00
dzwdz fd80c0b227 netstack: only return from open() once the socket connects 2023-09-02 22:39:59 +02:00
dzwdz c8d6ce89f1 cmd: add socksfs 2023-09-02 18:36:29 +02:00
dzwdz 48d6aa1145 libc: opendir_f; make httpd use it 2023-09-02 17:45:35 +02:00
dzwdz fd7be968dd cmd/ps: use dirent.h 2023-08-31 01:17:58 +02:00
dzwdz 6cbe587977 kernel: add _sys_getprocfs in place of HANDLE_PROCFS
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-31 01:06:41 +02:00
dzwdz cf7877737f style: get rid of eprintf 2023-08-30 00:03:43 +02:00
dzwdz f71af249cf kernel: remove _sys_await, emulate it in libc 2023-08-29 23:35:03 +02:00
dzwdz dd385a413c tests: fix everything broken by the pipe change
god, those tests are a mess. so are esemaphores.
2023-08-29 23:02:42 +02:00
dzwdz e43939bcc6 ports: qbe, cproc :^) 2023-08-27 02:06:32 +02:00
dzwdz 1f938c20b4 ports: binutils :^) 2023-08-25 18:36:57 +02:00
dzwdz eff47b170a bootstrap: support hardlinks in initrd
required for the binutils port
2023-08-25 17:18:30 +02:00
dzwdz a767724386 libc: get as+ld to work 2023-08-25 14:06:00 +02:00
dzwdz 3e09037780 libc: get most of binutils to compile 2023-08-24 19:10:35 +02:00
dzwdz 292b2386d7 build: rework how sysroots work
/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-17 00:50:52 +02:00
dzwdz a454a4ee0c libc: "fix" unused argument warnings 2023-08-16 14:49:35 +02:00
dzwdz c727e234a9 build: generate the Makefile in python
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-16 14:47:32 +02:00
dzwdz 034a60c19f build: replace make {boot,test} with a dedicated script 2023-08-15 20:41:38 +02:00