Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-12-12 | procfs: Add a procfs | Anton 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-10 | kernel: Add string view and string builder | Anton Kling | |
This makes write/read calls that use strings to communicate much simpler and less error prone. | |||
2024-12-09 | kernel: Add a way to parse numbers from C strings | Anton 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-09 | mmu: Make certain allocations physical and virtual mapping linear | Anton 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-08 | audio: Control master volume through /dev/volume | Anton Kling | |
2024-12-08 | kernel/libc: Add isdigit() | Anton Kling | |
2024-11-30 | vfs: Move read() to vfs.c | Anton Kling | |
2024-11-28 | changes | 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-07-06 | Kernel: Add queue syscall and improve TCP | Anton Kling | |
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-06-26 | Kernel: Move all syscalls into one file | Anton Kling | |
2024-06-26 | Kernel: Remove unused syscalls | Anton Kling | |
2024-06-26 | Kernel: Code cleanup | Anton Kling | |
2024-04-29 | Kernel/Socket: Move sockets back to being file descriptors | Anton Kling | |
2024-04-27 | Kernel: Make file descriptor numbers reusable. | Anton Kling | |
Instead of using the "append only" list it now uses "relist" which allows for indexes to be removed. | |||
2024-04-25 | Kernel: Add a ringbuffer | Anton Kling | |
This will be used later | |||
2024-04-18 | LibC/Kernel: Move lseek/seek to kernel | Anton Kling | |
2024-04-18 | Kernel: Fix compiler warnings | Anton Kling | |
2024-04-17 | Kernel/LibC: Add fstat() and remove stat() syscall | Anton Kling | |
2024-04-15 | Bug fix and cleanup. | Anton Kling | |
2024-04-02 | Kernel: Fix some memory leaks | Anton Kling | |
2024-03-25 | Random changes | Anton Kling | |
2024-03-14 | random changes made | Anton Kling | |
2024-02-22 | Kernel: Fix undefined behavior and cleanup functions. | Anton Kling | |
The int_syscall caused crashes for higher level of optimizations. To fix this I rewrote the function in assembly as I deemed it to be simpler. | |||
2024-02-21 | Kernel: Remove all inline assembly. | Anton Kling | |
Now the kernel does not rely upon inline assembly which is often very error prone. This also means that the kernel could probably be compiled with any c99 compiler which would help future bootstrapping. | |||
2024-02-21 | Kerenel: Cleanup halt checking code | Anton Kling | |
2024-02-21 | New clang-format options | Anton Kling | |
2024-02-19 | Kernel/VFS: Cleanup of file descriptor halts | Anton Kling | |
2024-02-16 | General cleanup | Anton Kling | |
2024-02-14 | Kernel: Update signal handling and IPC | Anton Kling | |
2024-02-09 | Kernel/Interrupts: Restructure how interrupts are handeled in the kernel | Anton Kling | |
Now all interrupts go through a common stub which will make certain signal handlers easier to implement | |||
2024-02-07 | Add enable/disable interrupts function | Anton Kling | |
This is to reduce usage of inline assembly | |||
2024-02-07 | A lot of small changes | Anton Kling | |
2023-11-28 | Kernel: Add basic IPC and move to microkernel design. | Anton Kling | |
The IPC design is currently a WIP and is nowhere near complete | |||
2023-11-24 | Refactor write() and pwrite() | Anton Kling | |
2023-11-24 | Refactor open() | Anton Kling | |
2023-11-23 | Kernel/LibC: Add randomfill() syscall. | Anton Kling | |
This syscall aims to fill the given buffer with cryptographically secure random data. If the syscall returns and does not cause a page fault it will **always** have filled the buffer with random data and never gives back any error value. | |||
2023-11-22 | Meta: Use dirent as a general include file | Anton Kling | |
This include file is shared by the kernel and libc | |||
2023-11-22 | Meta: Cleanup of header files such that they are partially shared | Anton Kling | |
The /include directory contains definitons that both the kernel and libc need to be in sync. | |||
2023-11-17 | Kernel: Add isatty syscall | Anton Kling | |
2023-11-16 | Kernel: Change how syscalls are built and implemented. | Anton Kling | |
2023-11-15 | VFS/LibC: Add getcwd() | Anton Kling | |
2023-11-15 | Kernel/LibC: Add chdir function and syscall | Anton Kling | |
2023-11-13 | Crypto: Implement fast insecure RNG for overwritting memory areas. | Anton Kling | |
This is mainly done to test for uninitlalized memory and find bugs faster. Therefore it does not need to be cryptographically secure or perfectly uniform. Xoshiro256++ seems like a good fit. | |||
2023-11-12 | AHCI: Add very basic AHCI and some additional helper functions to mmu.c | Anton Kling | |
Currently certain parts of the code are taken from osdev wiki as there seems to be very little documentation that I can find on how H2D FIS is structured. Those parts, especially some of the uglier parts of the example code will be rewritten/changed. | |||
2023-11-10 | Kernel/fs: Dynamically allocate based upon file size. | Anton Kling | |
This commit also changes "unsigned char" to "char". A slight step in the direction of making my coding style less bipolar. | |||
2023-11-01 | Kernel: Add a simple TCP implementation | Anton Kling | |