summaryrefslogtreecommitdiff
path: root/kernel
AgeCommit message (Collapse)Author
2024-03-20MMU: Fixed massive problem in assumption of RAM layoutAnton Kling
This caused certain addreses which where not RAM memory to be assigned to virtual addresses incorrectly. This caused a significant slowdown when running it with KVM due to constantly having to exit the VM if the OS writes to memory that is not RAM. This fix increased the performance of KVM significantly and improved TCG performance.
2024-03-19IRC: Add the IRC client I am working onAnton Kling
2024-03-17stuffAnton Kling
2024-03-14random changes madeAnton Kling
2024-03-02Kernel: Fix incorrect hardcoded value.Anton Kling
It should be 20 as there are 5 addresses pushed onto the stack. Not hex 20 which is sligthly more and as a result caused random crashes.
2024-02-28TCP/UDP: Start rewrite of network socketsAnton Kling
Having sockets be file descriptors seems like a bad idea so I trying to make UDP and TCP sockets be more independent and not be abstracted away as much.
2024-02-25IPC: Inform the scheduler the process is waiting for a IPC messageAnton 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: Change timing for context switchesAnton Kling
2024-02-19Kernel/VFS: Cleanup of file descriptor haltsAnton Kling
2024-02-17cleanupAnton 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-07Kernel: poll() should skip invalid file descriptorsAnton Kling
2024-02-07Remove sti and cli inline assemblyAnton Kling
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-29Kernel: Zero initialize process struct during creationAnton Kling
2023-11-28Meta: Apply new clang-format rules to kernelAnton 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-25Kernel: Add stat syscallAnton Kling
forgot to add it before
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-22Networking: Split network packets if they are too largeAnton Kling
2023-11-22Meta: Use dirent as a general include fileAnton Kling
This include file is shared by the kernel and libc
2023-11-22Kernel/RTL8139/Networking fixesAnton Kling
This is just a commit containing multiple fixes since I am too lazy to split them up.
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-21Kernel: Make poll() return number of file descriptors that had revent setAnton Kling
2023-11-18VFS: Do not add extra '/' on root path.Anton Kling
2023-11-17Kernel: Add isatty syscallAnton Kling
2023-11-16VFS: Do canonicalization of the current working directoryAnton Kling
2023-11-16Kernel: Change how syscalls are built and implemented.Anton Kling
2023-11-16ext2: Fix directory resolutionAnton Kling
Previously a parsing of /usr/../ would fail as it would be searching '/' for a empty file even though the desired outcome if for it to stop parsing after reaching '/'. The solution is to give the current directory inode if the file searched for in the directory is empty.
2023-11-15Add untracked filesAnton Kling
2023-11-15VFS/LibC: Add getcwd()Anton Kling
2023-11-15Meta: Setup a drive over AHCIAnton Kling
2023-11-15PCI: Add interrupt handler functionsAnton Kling
2023-11-15Kernel/LibC: Add chdir function and syscallAnton Kling
2023-11-15VFS: Add statAnton Kling
2023-11-15VFS: Bug fix. Uninitalized structure member.Anton Kling
This was found thanks to kmalloc now filling new allocations with random data.
2023-11-15ext2: Bug fix. Add padding to the block group descriptor.Anton Kling
2023-11-13AHCI: Add write function.Anton Kling
This also changes the ext2 filesystem so it will now write to the file it mounted. Currently the file mounted is /dev/sda which points to a SATA drive.
2023-11-13Kernel: Add support for AHCI and make use of it with the current filesystem.Anton Kling
It will now also create a corresponding /dev/sd* device for each detected SATA drive. The filesystem still writes using the ATA driver. This should be fixed soon.
2023-11-13Memory: Fix problem where certain tables did not get marked as kernel.Anton Kling
This caused the tables to be cloned instead of having the pointer copied on the new page directory creations. This is just a solution to the symptom of having a bad design for memory managment. Maybe I will figure out something better.
2023-11-13Kernel: Remove kmalloc_eternalAnton Kling
I would like to be able to free some of those objects but I have not decided upon how that will be done yet. Even if not freeded the added complexity of having two functions does not make the extra bytes saved worth it IMO.