summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-09hide the QEMU window, since serial made it mostly uselessdzwdz
2021-08-09print the boot heart on both VGA and serialdzwdz
2021-08-09vga tty: vga_putchar is now staticdzwdz
2021-08-09implement serial outputdzwdz
2021-08-09rename `log_` to `tty_`, `tty_` to `vga_`dzwdz
2021-08-09move all the tty stuff to a tty directorydzwdz
2021-08-09silence the QEMU debug outputdzwdz
i'm using bochs for debugging now anyways, and this will be useful for serial output
2021-08-09a sloppy implementation of path_simplify()dzwdz
it's kinda bad. it passes the tests, though...
2021-08-08path_simplify now returns int, has better testsdzwdz
2021-08-08Merge branch 'main' of github.com:dzwdz/camelliadzwdz
2021-08-07build all parts of the toolchain to the same $PREFIXdzwdz
If gcc is built with a different $PREFIX than binutils, it won't even attempt using them - it will use the system assembler instead, which fails for obvious reasons.
2021-08-06a (seemingly broken) gcc build scriptdzwdz
It compiles, but the resulting gcc binary doesn't actually work. Maybe it's too new for the binutils?
2021-08-06quit the binutils build script if an error occursdzwdz
2021-08-05add a script which builds i686-elf-binutilsdzwdz
2021-08-04partial path_simplify implementationdzwdz
it currently only checks if the path is valid, it's the bare minimum needed to write tests
2021-08-04rename TEST_IF to TEST_CONDdzwdz
i'll be adding a TEST_STR macro soon, so TEST_COND makes more sense
2021-08-03remove the dummy kernel testdzwdz
what's the point, we have real tests now
2021-08-03fix inconsistent semicolonsdzwdz
2021-08-03kernel: implement static_strcmp()dzwdz
will be used to test functions operating on strings
2021-08-03kernel: implement memcmpdzwdz
2021-08-03a bad testing frameworkdzwdz
2021-08-03put the NUM2STR macro in util.hdzwdz
i'll use it outside of panic.h
2021-07-31fix formatting in github's viewer thingydzwdz
2021-07-31draft out a simple overview of the VFSdzwdz
i'm a terrible writer
2021-07-31try documenting the syscalls (and fail badly)dzwdz
2021-07-31change the syscall naming convention; same one in kernel and userlanddzwdz
2021-07-31kmalloc() and kfree() stubsdzwdz
2021-07-26rename process_new() to process_seed()dzwdz
it's only meant to create the root process, the old name could've been misleading
2021-07-26exit() now switches to the first running processdzwdz
i used a linked list because it's the simplest way to implement this
2021-07-26fork() pt 1: cloning process memorydzwdz
2021-07-26mark sc_exit() as noreturndzwdz
gets rid of the double panic() call
2021-07-25print a heart on bootdzwdz
2021-07-24fix some warningsdzwdz
2021-07-24make the Makefile show almost nothing except warnings/errorsdzwdz
2021-07-24simplify the struct copy in sysexit()dzwdz
2021-07-24sysenter: save the registers into _sysexit_regs, makes the code cleaner (imo)dzwdz
2021-07-24merge the `register` and `register_pushad` structsdzwdz
2021-07-24sysexit() now overrides all registersdzwdz
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-24remove sysenter_setup from arch/generic.h - it's not even useddzwdz
2021-07-24save all registers on syscallsdzwdz
2021-07-23add a barebones exit() syscalldzwdz
2021-07-23update the process' EIP/ESP when it syscallsdzwdz
2021-07-22don't map the VGA console buffer in user processesdzwdz
2021-07-22disable paging when handling interruptsdzwdz
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-22implement the debuglog() syscalldzwdz
2021-07-21syscall parameter & return value passingdzwdz
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-21barebones syscalldzwdz
2021-07-21fix init stack alignmentdzwdz
2021-07-21fix sysenter()'s stack argumentdzwdz
It was taken from the wrong place - also I don't think that functions should change their EIP in the first place?
2021-07-21simplify the IDT generationdzwdz