aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-11less buggy forkKimplul
+ Not strictly done yet, but we can swap between two processes :D
2022-11-10initial implementation of process copyingKimplul
+ Not actually working (at least fully), need to continue debugging when I have time.
2022-11-09silence ubsan and docs warningsKimplul
2022-11-09update docsKimplul
2022-11-09add basic IPI structureKimplul
2022-10-29fix warning in mem.cKimplul
2022-10-29rewrite pmemKimplul
2022-10-22start outlining ipcKimplul
2022-10-22create impl and CAP_PROC checkingKimplul
2022-10-22initial high level fork impKimplul
2022-10-21beautificationKimplul
2022-10-21initial implementation of swapKimplul
+ Slightly unsure if it should be a syscall, or if assign would be enough. Also, which thread should run in a fork/spawn? For now, old thread, though this might increase latency. Or add swap flag to these calls?
2022-10-21initial spawn implementationKimplul
2022-10-21slight optimisation to cur_tcb on riscvKimplul
2022-10-14add spawn syscallKimplul
+ Prefer over unixy fork/exec for speed since I don't want to support cow. Shell redirection should be done with env server and cooperating libc.
2022-10-14remove references to cowKimplul
+ Skip cow for now, maybe implement later but try to keep things simple.
2022-09-23add notify_state to tcbKimplul
2022-09-23remove user data from sys_ipc_notifyKimplul
+ Multiple notify signals at the same time, or queued ones waiting for ipc_req/fwd to finish would require a notify stack of some kind, which is maybe too complex for my liking. Not impossible by any means, but I want to keep things simple. Let's say a client wants the server to do some async operation. First, the client calls ipc_req to inform the server that it would like the operation to be done. The server sets this task in some work queue or whatever, and returns to the client as quickly as possible. Later on, when the task is finished, the server does a ipc_req to the client, with data about what was just finished. The client is responsible for noting this data down somewhere, either reacting to the operation directly in the callback, or calling ipc_notify to the thread that requested the operation. Other possible notifications at the same time should be handled at the same time, whichever way the client wants to handle them. Note that ipc_notify triggers only when the thread it targets is in its base state, i.e. not doing an ipc_req. This makes things a bit easier.
2022-09-22add assign syscall skeletonKimplul
2022-09-20add notify syscall skeletonKimplul
+ Now to actually start implementing shit. :)
2022-09-20add capability subsystem and syscallsKimplul
2022-09-15change syscalls to take 5 params and return 6Kimplul
+ In total, a syscall is built up of 6 values, with the first being the syscall number. Symmetrically, the first value is now a status and the following five values return "values". This allows us to cram in more info into the ipc_* functions. The performance difference is absolutely minimal, at least from my testing in qemu.
2022-09-15add SYS_TICKSKimplul
2022-09-14add putch syscall for easier userspace debuggingKimplul
+ Note that it is NOT intended for end user usage, just for debugging.
2022-09-14add canary to kernel stackKimplul
2022-09-14riscv32 boots and advances as far as riscv64Kimplul
2022-09-11change external directory structureKimplul
+ Prepare for possibly testing rv32 + Also remove newline from debugging output
2022-09-11allow building with riscv64-linux-gnuKimplul
+ May warn about PHDR not being in LOAD, there is a flag to silence it (--no-warn-rwx-segment) but it doesn't seem to exist in riscv64-unknown-elf for some reason.
2022-09-02reserve more space for fwKimplul
+ Doesn't seem to be specified anywhere, but I'll stick with 2MB for now, working on the assumption that the FW is at the start of the physical RAM. Possible TODOs: generate apos.its automatically from init.elf, allocate root_branch statically?
2022-09-02fix documentation warningsKimplul
2022-06-16small changed to formattingKimplul
2022-06-12fix compilation errorsKimplul
2022-06-12doxygen shows no warningsKimplul
+ Does not mean documentation is done, but it's a nice little achievement nonetheless.
2022-06-12add license textsKimplul
2022-06-11continue documentationKimplul
2022-06-11fix ubsan warning in release modeKimplul
2022-06-11continue documentationKimplul
2022-06-11continue documentationKimplul
2022-06-09use doxygen todoKimplul
2022-06-09continue documentationKimplul
2022-06-08continue documentationKimplul
2022-06-02continue documentationKimplul
2022-06-01continue documentationKimplul
2022-05-29continue documentationKimplul
2022-05-29make pmem.c slightly easier to read.Kimplul
2022-05-29continue documentation effortsKimplul
2022-05-29modify formatting rulesKimplul
2022-05-29add clean_all directiveKimplul
2022-05-29continue documentation efforts.Kimplul
2022-05-28continue documenting sourceKimplul