Tags: RavSS/HAVK
Tags
File headers updated and better context switching. Overall Changes --------------- - The way tasks yield upon an IPC system call has changed so now it is more performant. IPC is finally at a stage where performance is not an immediate issue. - Tasks can retrieve the first message present in their message boxes. This removes constant checking for messages; thus, reducing the amount of system calls in total, while simplifying the code of tasks which act as services. - Manual yielding is now less present in the various operating system programs. - The PS/2 driver task and the terminal task have been re-enabled for the sake of showcasing the current stage of graphics and input. - Likely resolved a file read deadlock when a file's byte size is a multiple of 256. - Makefile variable bug fix for `make stats`. Copyright Notice ---------------- - The file headers have had their copyright dates updated to match the current year (2021). Newlines have also been added to all text files.
Expanded system calls and added primative IPC. Overall Changes --------------- - Tasks can now identify other task's identities or self-identify themselves. This is further used for IPC purposes. - The in-kernel threading support has been completely removed. In an attempt to be more esoteric, I am switching from a 1:1 model to a N:1 model instead, which means there will only be a concept of threads in user space and not inside the kernel itself. - Tasks can load ELF files from the FAT16 partition; however, this is completely temporary and will only be limited to the initialisation task in the future. - A task can increase its heap space by a single page (4 KiB) upon a specific system call. Currently, it's kept to only a single page to limit fragmentation, and consecutive frames are harder to come by. - Tasks can send messages to other tasks via a vague sender and receiver setup with a notion of ports in between them. This is a multi-copy method of IPC and it uses SIMD registers (SSE "XMM" registers) to perform transfers. The buffer length is controlled inside the kernel and it is currently static. - Symbols registered as functions in the assembly files and the assembly files themselves have been renamed to avoid preprocessing, as I see no use for it. - A number of improvements to the various Makefiles in regard to organisation, operating system files, and the drive image. - Updated the supplied OVMF firmware and GNU-EFI object. Git Notice ---------- - Commits will no longer be made for version changes. It will be solely done through tags now. - These types of bulk commits may happen less now, as the focus is beginning to be solely on the operating system programs themselves, along with system call functionality.
PreviousNext