summaryrefslogtreecommitdiff
path: root/kernel/Makefile
AgeCommit message (Collapse)Author
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-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-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-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-08audio: Control master volume through /dev/volumeAnton Kling
2024-12-08kernel/libc: Add isdigit()Anton Kling
2024-11-30vfs: Move read() to vfs.cAnton Kling
2024-11-28changesAnton 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-07-06Kernel: Add queue syscall and improve TCPAnton Kling
2024-07-03Kernel/Time: Improve time keepingAnton Kling
This makes use of TSC and now provides a file system interface for userland programs to change the system time.
2024-07-03CMOS: Add basic CMOS RTC supportAnton Kling
2024-07-03Kernel: Add simple support for timer using TSCAnton Kling
2024-06-26Kernel: Move all syscalls into one fileAnton Kling
2024-06-26Kernel: Remove unused syscallsAnton Kling
2024-06-26Kernel: Code cleanupAnton Kling
2024-04-29Kernel/Socket: Move sockets back to being file descriptorsAnton Kling
2024-04-27Kernel: 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-25Kernel: Add a ringbufferAnton Kling
This will be used later
2024-04-18LibC/Kernel: Move lseek/seek to kernelAnton Kling
2024-04-18Kernel: Fix compiler warningsAnton Kling
2024-04-17Kernel/LibC: Add fstat() and remove stat() syscallAnton Kling
2024-04-15Bug fix and cleanup.Anton Kling
2024-04-02Kernel: Fix some memory leaksAnton Kling
2024-03-25Random changesAnton Kling
2024-03-14random changes madeAnton Kling
2024-02-22Kernel: 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-21Kernel: 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-21Kerenel: Cleanup halt checking codeAnton Kling
2024-02-21New clang-format optionsAnton Kling
2024-02-19Kernel/VFS: Cleanup of file descriptor haltsAnton Kling
2024-02-16General cleanupAnton Kling
2024-02-14Kernel: Update signal handling and IPCAnton Kling
2024-02-09Kernel/Interrupts: Restructure how interrupts are handeled in the kernelAnton Kling
Now all interrupts go through a common stub which will make certain signal handlers easier to implement
2024-02-07Add enable/disable interrupts functionAnton Kling
This is to reduce usage of inline assembly
2024-02-07A lot of small changesAnton Kling
2023-11-28Kernel: Add basic IPC and move to microkernel design.Anton Kling
The IPC design is currently a WIP and is nowhere near complete
2023-11-24Refactor write() and pwrite()Anton Kling
2023-11-24Refactor open()Anton Kling
2023-11-23Kernel/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-22Meta: Use dirent as a general include fileAnton Kling
This include file is shared by the kernel and libc
2023-11-22Meta: Cleanup of header files such that they are partially sharedAnton Kling
The /include directory contains definitons that both the kernel and libc need to be in sync.
2023-11-17Kernel: Add isatty syscallAnton Kling
2023-11-16Kernel: Change how syscalls are built and implemented.Anton Kling
2023-11-15VFS/LibC: Add getcwd()Anton Kling
2023-11-15Kernel/LibC: Add chdir function and syscallAnton Kling
2023-11-13Crypto: 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-12AHCI: Add very basic AHCI and some additional helper functions to mmu.cAnton 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-10Kernel/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-01Kernel: Add a simple TCP implementationAnton Kling