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