summaryrefslogtreecommitdiff
path: root/src/user/bootstrap
AgeCommit message (Collapse)Author
2023-08-14reorganization: first stepsdzwdz
2023-08-10user/fs: no longer inject MOUNT_ATs by defaultdzwdz
arguably the wrong choice from an usability standpoint, but the right choice from a performance standpoint. there's definitely a nicer way to do this
2023-08-08bootstrap: fix main()'s stack alignmentdzwdz
2023-08-08build: build bootstrap as an ELF first, and then convert to a raw binarydzwdz
2023-08-06kernel: put every driver in /kdev/dzwdz
there's no real reason for bootstrap to be doing that, and this brings it closer to only doing the elf loading
2023-08-06libc: fs_dirinject2 for injecting multiple pathsdzwdz
2023-06-17libc: expand psdata into a proper struct, include executable basedzwdz
this is very useful for debugging userland programs using the qemu gdb stub
2023-02-25toolchain: working customized toolchain for userland binsdzwdz
2023-02-23build: don't -Isrc/ in user codedzwdz
2023-02-23fix: misc warningsdzwdz
2023-01-25style: typedef structs, shorter namespacesdzwdz
I've wanted to do this for a while, and since I've just had a relatively large refactor commit (pcpy), this is as good of a time as any. Typedefing structs was mostly inspired by Plan 9's coding style. It makes some lines of code much shorter at basically no expense. Everything related to userland kept old-style struct definitions, so as not to force that style onto other people. I also considered changing SCREAMING_ENUM_FIELDS to NicerLookingCamelcase, but I didn't, just in case that'd be confusing.
2023-01-25user: process titles, /bin/psdzwdz
2023-01-06kernel: basic procfsdzwdz
2022-12-25user/lib: reorganize a few header filesdzwdz
2022-09-20shared: rename ufs_request to better fit its role in userlanddzwdz
The old name could have suggested that it held a response to a request received by fs_wait. The new name is unfortunately very similar to the `struct vfs_request` already used internally in the kernel, but it's better at conveying that it contains a filesystem request yet to be handled. vfs_request - virtual filesystem request (a bad name in hindsight) ufs_request - user filesystem request
2022-08-30set up the stack in user/bootstrap instead of the kerneldzwdz
2022-08-28user/lua: prepare libc headersdzwdz
2022-08-19syscall/fs_wait: return a handle for each requestdzwdz
2022-08-13user/bootstrap: remove some dummy symbolsdzwdz
2022-08-13user/bootstrap: move .bss before .textdzwdz
prevents the initrd from overflowing into .bss
2022-08-13user: plan9-style /bin/ uniondzwdz
2022-08-08fs: getsize() on directoriesdzwdz
2022-08-07user/libc: strchrdzwdz
2022-08-05add _syscall_getsizedzwdz
2022-08-04do some simple TODOs, organize the rest; general code maintainancedzwdz
2022-08-01user/fs: fs_whitelist injects directory entriesdzwdz
2022-07-31user: replace the MOUNT macro with MOUNT_ATdzwdz
The old style could be confused with a regular function, where the driver would be executed unconditionally. This should make it more obvious that the driver doesn't get executed in the parent process.
2022-07-30user/fs: create a shared library for handling directory readsdzwdz
2022-07-30user/bootstrap: discard the relocation sectionsdzwdz
2022-07-29use a shared fs_normslice() function to handle offsetsdzwdz
2022-07-27user/libc: execve() supports passing argv nowdzwdz
2022-07-26user/shell: automatically execute binaries in /bin/dzwdz
2022-07-26user/libc: a _start that automatically selfrelocates PIEsdzwdz
2022-07-26user/libc: exit()dzwdz
What an interesting commit.
2022-07-26shared: move some headers from shared/ to camellia/dzwdz
2022-07-26move user_bootstrap to user/bootstrap for consistency's sakedzwdz