Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-11-23 | vfs: Support O_TRUNC | Anton Kling | |
2024-11-23 | vfs: Add O_APPEND support + refactoring | Anton Kling | |
2024-11-22 | vfs: Add dup() | Anton Kling | |
2024-11-22 | vfs: Close new file descriptor if already in use when calling dup2 | Anton Kling | |
2024-10-30 | kernel: Improve error handling for OOM | Anton Kling | |
2024-10-30 | kernel/mmu: Make sure to check for NULL. | Anton Kling | |
2024-10-17 | kernel: Use realloc instead of malloc+free | Anton Kling | |
2024-10-16 | kernel: 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-14 | kernel: small bug fixes | Anton Kling | |
2024-10-14 | kernel: stuff | Anton Kling | |
2024-10-14 | TCP: Don't free buffer prematurely | Anton Kling | |
2024-10-12 | Kernel/MMU: Don't return non present pages unless creation is desired | Anton 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-06 | Kernel/Networking: Modify outgoing packet in place | Anton 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-03 | kernel/shm: shm_open only create if O_CREAT was supplied | Anton Kling | |
2024-10-03 | libc: Add sendfile and queue | Anton Kling | |
2024-09-12 | Kernel: Add support for shebangs | Anton Kling | |
Adds support for shebangs (#!) that allow for things such as shell scripts without appending `sh` before the file. | |||
2024-08-17 | ext2: 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-11 | PCI: Fix bug not account for different bar index | Anton Kling | |
2024-07-08 | Kernel/Net: Don't use kmalloc to create send buffers | Anton 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-08 | kmalloc: Merge headers more often | Anton Kling | |
2024-07-06 | Kernel: Add kmalloc scan | Anton Kling | |
This will scan for possible overflows in the program. It is a somewhat expensive operation but really useful for debugging. | |||
2024-07-06 | Kernel: Add queue syscall and improve TCP | Anton Kling | |
2024-07-06 | Kernel: Fix integer overflow | Anton Kling | |
2024-07-06 | Kernel: Fix sleep function to use uptime instead of UTC time | Anton Kling | |
2024-07-06 | Bug fix: Fix use after free when closing a pipe | Anton Kling | |
The other inode might already have been freed when close() is called. | |||
2024-07-05 | TCP: Add back support for listening on a socket | Anton Kling | |
2024-07-04 | scheduler: Use get_uptime() since it caches the result | Anton Kling | |
Apparently getting the current TSC is a expensive operation. This change had a significant improvements for I/O heavy applications. | |||
2024-07-04 | TCP: Allow delay for sends | Anton Kling | |
This is not at all optimal for applications that already buffer their data but can have a huge impact on those that don't. Applications that don't wish to use this should disable this for their socket. | |||
2024-07-04 | PIT: Fix dumb bug | Anton Kling | |
The incorrect timer was being used for TCP ACK flush | |||
2024-07-04 | Random: Improve random seeding. | Anton Kling | |
Now it appears to be sufficiently good at producing a distinct seed at each boot without using a /etc/seed file. Previously it did not do this. Of course this is nowhere near cryptographically secure but randomness does assist with things such as kmalloc. | |||
2024-07-04 | CMOS: Make read/write calls async | Anton Kling | |
This can speed up boot times since CMOS would otherwise have to wait before it could perform a read/write call. Now it gets triggered by a interrupt. | |||
2024-07-03 | Kernel/Time: Improve time keeping | Anton Kling | |
This makes use of TSC and now provides a file system interface for userland programs to change the system time. | |||
2024-07-03 | CMOS: Add basic CMOS RTC support | Anton Kling | |
2024-07-03 | Kernel: Add simple support for timer using TSC | Anton Kling | |
2024-07-02 | TCP: Increase the receive buffer significantly | Anton Kling | |
2024-07-02 | ahci: Bug fix, turns out the async optimization does not work that well | Anton Kling | |
2024-07-01 | Bug fix: avoid use after free | Anton Kling | |
2024-07-01 | VFS: Move towards unifying vfs_inode_t and vfs_fd_t | Anton Kling | |
There is no need for these to be seperate. They will probably move to the same struct soon. | |||
2024-06-30 | ahci/ext2: small fixes | Anton Kling | |
2024-06-30 | Kernel: cleanup | Anton Kling | |
2024-06-30 | UBSAN: Add more ubsan handlers | Anton Kling | |
2024-06-30 | Kernel: Add clock_gettime | Anton Kling | |
2024-06-30 | AHCI: Optimization to writes | Anton Kling | |
Now it avoids waiting for completion if possible and can instead batch commands. | |||
2024-06-30 | ext2: Optimize block writes | Anton Kling | |
2024-06-30 | ext2: Get multiple blocks in one function call | Anton Kling | |
This significantly reduces I/O operations on the bitmap when large writes occur. | |||
2024-06-30 | AHCI: Only check command slots that exist | Anton Kling | |
2024-06-30 | ext2: Refactor and optimize free block/inode lookup | Anton Kling | |
2024-06-30 | ext2: Performance improvements to block write | Anton Kling | |
Don't invalidate the cache of a block if written to. Instead the cache can be changed and then be written to disk. This is optimal for ext2 since it gets to keep the cache and the hard drive since it may not have to do extra reads when doing writes. | |||
2024-06-29 | Ext2: Large file support and stylistic changes | Anton Kling | |
2024-06-29 | Ext2: Bug fix | Anton Kling | |
Off by one error in block/inode lookup that caused roughly two days of debugging |