summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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.
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-13Kernel: Add typedefs.hAnton Kling
2023-11-13ARP: Save the IP, MAC of incoming ARP requestsAnton Kling
2023-11-13Exceptions: Output CR2 on page faultAnton Kling
2023-11-13LibC: Support negative values in printf for %dAnton Kling
2023-11-12Meta: Change license to be WTFPLAnton Kling
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-12Kernel/PCI: Add functions for getting BAR and specific PCI devices byAnton Kling
class
2023-11-10Ext2: Change char* to u8* where the type is referencing data and not a CAnton Kling
string
2023-11-10Kernel Style: Change uint*_t -> u*Anton Kling
2023-11-10Kernel/Memory: Fill new allocations with random data.Anton Kling
This should make it easier to spot uninitalized memory being used.
2023-11-10Syscall: Cleanup code and remove dumb usage of get_vfs_fd.Anton Kling
2023-11-10Kernel: Remove old dead codeAnton Kling
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-09Kernel/fs: Dynamically allocate depending upon file size of directory.Anton Kling
This also solves a bug where the data_p pointer could get out of range due to incorrect assumptions being made about the ext2 directory layout. To be fair even a faulty ext2 directory layout should not be able to cause memory bugs.
2023-11-09Kernel: Remove old commentAnton Kling
2023-11-09Kernel: Initalize the file descriptor pointers in the proess struct toAnton Kling
zero.
2023-11-08Kerenl/MMU: Remove dumb bug as a result of uninitalized memoryAnton Kling
The kernel would randomly crash. Turns out I did not zero out the frames so my page allocator seemed to get into some weird state.
2023-11-08Kernel/MMU: Detect system memory and dynamically adjust memory usage availableAnton Kling
Previously this would be hardcoded but now it can be detected by the bootloader and passed in via the multiboot header.
2023-11-08Meta: Modify run and debug scriptsAnton Kling
2023-11-08Kernel/MMU: Detect system memory and dynamically adjust memory usage availableAnton Kling
Previously this would be hardcoded but now it can be detected by the bootloader and passed in via the multiboot header.
2023-11-08Kernel/MMU: Create a seperate table for heap allocationAnton Kling
2023-11-06Userland: Remove old coreutil applications that have moved to miniboxAnton Kling
2023-11-01Kernel: Add a simple TCP implementationAnton Kling
2023-10-31ante: Adjust X position of cursor so it can always land on a line.Anton Kling
If a y position is found for the cursor we will adjust the X position to the optimial position. Previously if you tried to move from the end of a long line to a short line it would not work since a valid X position could not be found.
2023-10-31Kernel: Remove all O0 optimizations on functions.Anton Kling
The kernel can now fully compile under O3 without any noticable problems :)
2023-10-31Kernel: Bug fix, infinite loop when checking string memory permissionsAnton Kling
If the string is pointed to a very exact location in memory the loop never finishes.
2023-10-31Meta: Sync the sysroot after running the VMAnton Kling
2023-10-31WindowServer: Make the mouse dotted to make it visible on all backgroundsAnton Kling
2023-10-31Meta: Fix build scripts to work on debianAnton Kling
2023-10-31Meta: Create a simple toolchain compilation scriptAnton Kling
2023-10-31Meta: Create simple build scripts for kernel, userland and general enviromentAnton Kling
2023-10-31Meta: Move kernel and userland to their own folders.Anton Kling
This is to allow both the kernel and the userland to share certain header files and to make the folder structure a bit more clear.
2023-10-30Cleanup of things that did not get formatted or not included in old commitsAnton Kling
2023-10-30LibC: Remove header files that are not in the "include" directoryAnton Kling
2023-10-30LibC: Don't fail if a free() is done that the wrong address location.Anton Kling
2023-10-30Kernel/LibC: Add signals and support for custom signal handlers to processes.Anton Kling
2023-10-30LibC: Bug fix, make sure to invalidate cache if it skips using itAnton Kling
Since when the cache gets skipped the offset in the file increases far outside of the reach of the current cache. Therefore the current cache should be discarded.
2023-10-30LibC: Skip using cache if length requested is longer than the cache blockAnton Kling
This avoid a bunch of extra systemcalls that would have to be made to read each portion into a cache block.
2023-10-30EXT2: Improve block cacheAnton Kling
This significantly speeds up certain operations as indirect block looksup now don't need to make as many requests to the hard drive.
2023-10-30Kernel/LibC/Networking: Be able to send UDP messagesAnton Kling
Now it can send UDP messages to a specific IP address and libc has enough to create a basic UDP ECHO server, that is kinda cool.
2023-10-30Kernel: Expose source information of incoming UDP packetsAnton Kling
2023-10-30Kernel: Move min, max functions to their own fileAnton Kling
2023-10-30LibC: Optimize memcpy functionAnton Kling
Instead of copying byte by byte it now copies in 64, 32, 16, 8 bit chunks.
2023-10-30Kernel/Networking/LibC: Add syscalls and libc functions for UDPAnton Kling
This allows a UDP server to be created in userland and read data. Currently it can't send data and is very very simplistic. Code is horrible and probably needs some fixing until it can be further built upon.
2023-10-30Kernel: Fixup rtl8139, add basic ARP and ethernet supportAnton Kling
Currently the ARP appears to be able to respond to requests.