GatOS Kernel v1.7.5
The GatOS Kernel has just been updated from 1.7.0 to 1.7.5, by merging branch "project-refactor".
This version introduces several improvements, focusing entirely on structural integrity, cross-platform compatibility, and automated testing, bringing the kernel version to v1.7.5-alpha:
- Replaced the legacy Makefile-based build system with a robust, cross-platform Python implementation (
run.py), eliminating the need for shell scripts likerun.shandsetup.sh. - Introduced
setup.py, a dedicated script that automatically downloads, configures, and installs the architecture-specific toolchains for Windows, Linux, and macOS. - Completely refactored the project source tree and header include paths to support a scalable, modular architecture, moving away from the flat structure.
- Implemented a comprehensive Kernel Test Framework integrated directly into the build system. Tests can now be triggered via
python run.py test. - Added extensive dedicated test suites for the Physical Memory Manager (PMM), Virtual Memory Manager (VMM), Slab Allocator, and Kernel Heap to ensure strict memory integrity and boundary enforcement.
- Enhanced
run.pyto supportheadlessexecution andtimeoutparameters, enabling automated, non-interactive testing sessions. - Established a full CI/CD pipeline using GitHub Actions, ensuring that every commit is built and tested against Linux, Windows, and macOS (ARM64) runners.
- Updated compiler flags to support optimization profiles (
fast,vfast) within the Python build scripts. - Implemented specific fixes for macOS environments, including handling Gatekeeper warnings and path resolution for the cross-compiler toolchain.
- Refactored the kernel entry point to support a conditional test-build mode (
-DTEST_BUILD), allowing the kernel to run validation suites if the flag is specified, rather than booting into the standard loop.
Note: MacOS builds might fail (I'm waiting on my new Mac Mini to fix them), so until then, please use one of the other platforms. The documentation is also slightly outdated and will hopefully be updated soon.