Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-08-18 | fork() now has a return value; you can tell the child and parent apart | dzwdz | |
2021-08-18 | rename process_clone to process_fork | dzwdz | |
2021-08-18 | store the processes as a tree instead of a list | dzwdz | |
I'm about to need that for waits(). There's no single list of processes for simplicity's sake, but the search will now be even slower and it might even introduce a potential vuln! How fun! Someone could override stuff in .bss with random values. I'll either make gcc check if it hasn't gone past the end of the stack, or turn this into a non recursive function. | |||
2021-08-14 | init: add multipageify(), so i can test virt_iter in an simpler way | dzwdz | |
2021-08-12 | init: preserve registers in _syscall() | dzwdz | |
2021-08-11 | abstract out iterating over virtual memory | dzwdz | |
most syscalls will have to do this to copy memory around or whatever. it's pretty ugly too, but i can't come up with a better abstraction... | |||
2021-08-11 | read _syscall_debuglog arguments across page boundaries | dzwdz | |
2021-08-10 | fix typo referring to unexistent function | dzwdz | |
2021-08-10 | statically assert that the pointer size == 4 bytes | dzwdz | |
2021-08-09 | move the x86 port io code to a separate file | dzwdz | |
2021-08-09 | print the boot heart on both VGA and serial | dzwdz | |
2021-08-09 | vga tty: vga_putchar is now static | dzwdz | |
2021-08-09 | implement serial output | dzwdz | |
2021-08-09 | rename `log_` to `tty_`, `tty_` to `vga_` | dzwdz | |
2021-08-09 | move all the tty stuff to a tty directory | dzwdz | |
2021-08-09 | a sloppy implementation of path_simplify() | dzwdz | |
it's kinda bad. it passes the tests, though... | |||
2021-08-08 | path_simplify now returns int, has better tests | dzwdz | |
2021-08-04 | partial path_simplify implementation | dzwdz | |
it currently only checks if the path is valid, it's the bare minimum needed to write tests | |||
2021-08-04 | rename TEST_IF to TEST_COND | dzwdz | |
i'll be adding a TEST_STR macro soon, so TEST_COND makes more sense | |||
2021-08-03 | remove the dummy kernel test | dzwdz | |
what's the point, we have real tests now | |||
2021-08-03 | fix inconsistent semicolons | dzwdz | |
2021-08-03 | kernel: implement static_strcmp() | dzwdz | |
will be used to test functions operating on strings | |||
2021-08-03 | kernel: implement memcmp | dzwdz | |
2021-08-03 | a bad testing framework | dzwdz | |
2021-08-03 | put the NUM2STR macro in util.h | dzwdz | |
i'll use it outside of panic.h | |||
2021-07-31 | try documenting the syscalls (and fail badly) | dzwdz | |
2021-07-31 | change the syscall naming convention; same one in kernel and userland | dzwdz | |
2021-07-31 | kmalloc() and kfree() stubs | dzwdz | |
2021-07-26 | rename process_new() to process_seed() | dzwdz | |
it's only meant to create the root process, the old name could've been misleading | |||
2021-07-26 | exit() now switches to the first running process | dzwdz | |
i used a linked list because it's the simplest way to implement this | |||
2021-07-26 | fork() pt 1: cloning process memory | dzwdz | |
2021-07-26 | mark sc_exit() as noreturn | dzwdz | |
gets rid of the double panic() call | |||
2021-07-25 | print a heart on boot | dzwdz | |
2021-07-24 | fix some warnings | dzwdz | |
2021-07-24 | simplify the struct copy in sysexit() | dzwdz | |
2021-07-24 | sysenter: save the registers into _sysexit_regs, makes the code cleaner (imo) | dzwdz | |
2021-07-24 | merge the `register` and `register_pushad` structs | dzwdz | |
2021-07-24 | sysexit() now overrides all registers | dzwdz | |
when doing anything more complex than starting a new program, you pretty much need to pass a full register dump. otherwise stuff will break | |||
2021-07-24 | remove sysenter_setup from arch/generic.h - it's not even used | dzwdz | |
2021-07-24 | save all registers on syscalls | dzwdz | |
2021-07-23 | add a barebones exit() syscall | dzwdz | |
2021-07-23 | update the process' EIP/ESP when it syscalls | dzwdz | |
2021-07-22 | don't map the VGA console buffer in user processes | dzwdz | |
2021-07-22 | disable paging when handling interrupts | dzwdz | |
The kernel code assumes that paging is always disabled. I've also added a bit of comments to the assembly / ruined the git blame. | |||
2021-07-22 | implement the debuglog() syscall | dzwdz | |
2021-07-21 | syscall parameter & return value passing | dzwdz | |
Sadly, sysenter on i386 limits me to only 4 arguments (so, 1 for the syscall id + 3 real args). If that turns out to be an issue I'll either just switch to interrupts, or switch to x64. | |||
2021-07-21 | barebones syscall | dzwdz | |
2021-07-21 | fix init stack alignment | dzwdz | |
2021-07-21 | fix sysenter()'s stack argument | dzwdz | |
It was taken from the wrong place - also I don't think that functions should change their EIP in the first place? | |||
2021-07-21 | simplify the IDT generation | dzwdz | |