summaryrefslogtreecommitdiff
path: root/kernel
AgeCommit message (Collapse)Author
2024-12-15libc: Fix undefined behavior for non positive VLAAnton Kling
Apparently a VLA of zero size is undefined behavior.
2024-12-14procfs: Add `stat`Anton Kling
2024-12-14mmu: Remove recursion in ksbrkAnton Kling
Due to buggy edge cases it caused logic bugs which caused stack overflows. There should be no need to make any additional checks after the table was created anyways so it is better to just skip it.
2024-12-14procfs: Add `self` and `id`Anton Kling
2024-12-14sb/printf: Add ksbprintfAnton Kling
Easier to add formatted strings to the string builder without using intermediate buffers.
2024-12-14sb: Allow input to be "ignored"Anton Kling
This removes edge cases from read calls and makes bugs harder to introduce.
2024-12-12formatting: Use clang-format on all projectsAnton Kling
This commit also add braces to all `if` statements.
2024-12-12kernel: Fix/improve cleanup of process after exitAnton Kling
2024-12-12signal: Remove old way of sending signals and instead use procfsAnton Kling
2024-12-12procfs: Add a procfsAnton Kling
Userland can now interface with processes by writing/reading from `/proc/<pid>/<entry>` It can send signals, for example `echo 15 > /proc/1/signal`
2024-12-11kernel: Add more sv functions and change interfacesAnton Kling
2024-12-10kernel: Add string view and string builderAnton Kling
This makes write/read calls that use strings to communicate much simpler and less error prone.
2024-12-10kernel: Add kbnprintfAnton Kling
Like snprintf but without null termination
2024-12-09timer: Use strings instead of direct int64_t to communicate with userlandAnton Kling
This makes it easier to write and read from /dev/clock using shell scripts. The actual performance decrease will be minimal and the interface is not that perfect for proper time keeping anyways.
2024-12-09kernel: Add a way to parse numbers from C stringsAnton Kling
After making this change I am now actually doubting if using C strings is a good idea and maybe it should just always just the string view library that userland makes use of. But old code and the upcoming commits rely upon this so it is a change my future less lazy self will do.
2024-12-09kernel: Add ksnprintfAnton Kling
2024-12-09mmu: Make certain allocations physical and virtual mapping linearAnton Kling
Previously it was possible for fragmentation to occur and as a result certain allocations would have a linear virtual address space but not a linear physical address space. This is bad since a lot of calls to kmalloc_align rely upon both being linear, it has now been changed such that all allocations done by kmalloc_align now guarantee this mapping holds for both virtual and physical addresses. It was due to oversight and sheer luck that this had been working for so long.
2024-12-08vfs: Bug fix...Anton Kling
The commit is self explanatory. It was a simple mistype that went unnoticed for a while.
2024-12-08vfs: Force truncation even without permissionsAnton Kling
O_TRUNC as a mode does not seem to imply write permissions but we still wish to truncate the file before giving back a file descriptor. Therefore the kernel can now override any permission checks if it wishes to do a truncation while still using the "ordinary path".
2024-12-08audio: Control master volume through /dev/volumeAnton Kling
2024-12-08kernel/libc: Add isdigit()Anton Kling
2024-12-08kernel: Change error reporting for exec*Anton Kling
2024-12-02ac97: Messy fixes to audioAnton Kling
It seems to work completely now, but it is still very messy.
2024-11-30kernel: Change math.h to use macrosAnton Kling
Having min/max be functions was a stupid decision in the first place
2024-11-30ac97/audio: Add audioAnton Kling
Incomplete but still very cool
2024-11-30vfs: Move read() to vfs.cAnton Kling
2024-11-29ext2: Handle "zero" blocksAnton Kling
Any blocks with the value zero appear to indicate a region completly filled to zeros. I don't see this anywhere in the spec but it does make sense and the behavior matches files that I have on my FreeBSD machine so I guess it must be valid.
2024-11-28changesAnton Kling
2024-11-23vfs: Support O_TRUNCAnton Kling
2024-11-23vfs: Add O_APPEND support + refactoringAnton Kling
2024-11-22vfs: Add dup()Anton Kling
2024-11-22vfs: Close new file descriptor if already in use when calling dup2Anton Kling
2024-10-30kernel: Improve error handling for OOMAnton Kling
2024-10-30kernel/mmu: Make sure to check for NULL.Anton Kling
2024-10-17kernel: Use realloc instead of malloc+freeAnton Kling
2024-10-16kernel: Add RSOD(red screen of death)Anton Kling
This is not useful since 99% of the time I will have access to the serial output. But it does look cool.
2024-10-14kernel: small bug fixesAnton Kling
2024-10-14kernel: stuffAnton Kling
2024-10-14TCP: Don't free buffer prematurelyAnton Kling
2024-10-12Kernel/MMU: Don't return non present pages unless creation is desiredAnton Kling
`get_page` is a horrible multipurpose function and at this point I am unsure what behavior I expect and have expected it to produce. Refactor should probably be done soon.
2024-10-06Kernel/Networking: Modify outgoing packet in placeAnton Kling
This avoids creation of new buffers and unnecessary memcpys. The old interface still exists for UDP but will be removed when I am less lazy. From testing it does not appear to have any performance improvement but this is most likely due to other bottlenecks as extra copies should always be worse.
2024-10-03kernel/shm: shm_open only create if O_CREAT was suppliedAnton Kling
2024-10-03libc: Add sendfile and queueAnton Kling
2024-09-12Kernel: Add support for shebangsAnton Kling
Adds support for shebangs (#!) that allow for things such as shell scripts without appending `sh` before the file.
2024-08-17ext2: Bug fix. Incorrect assumption that `len` is not modified.Anton Kling
I appear to have assumed that len would always be the number requested not the number left to be read. Therefore to get the number of bytes left ot read I did `len - rc` but the `- rc` was already accounted for by line 298.
2024-07-11PCI: Fix bug not account for different bar indexAnton Kling
2024-07-08Kernel/Net: Don't use kmalloc to create send buffersAnton Kling
Current method is also really bad since it uses multiple copies when it should instead just copy to the send buffer of the network card directly. But I have other things that I want to prioritize first.
2024-07-08kmalloc: Merge headers more oftenAnton Kling
2024-07-06Kernel: Add kmalloc scanAnton Kling
This will scan for possible overflows in the program. It is a somewhat expensive operation but really useful for debugging.
2024-07-06Kernel: Add queue syscall and improve TCPAnton Kling