Skip to content

GatOS Kernel v1.7.5

Choose a tag to compare

@ApparentlyPlus ApparentlyPlus released this 13 Dec 14:34

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:

  1. Replaced the legacy Makefile-based build system with a robust, cross-platform Python implementation (run.py), eliminating the need for shell scripts like run.sh and setup.sh.
  2. Introduced setup.py, a dedicated script that automatically downloads, configures, and installs the architecture-specific toolchains for Windows, Linux, and macOS.
  3. Completely refactored the project source tree and header include paths to support a scalable, modular architecture, moving away from the flat structure.
  4. Implemented a comprehensive Kernel Test Framework integrated directly into the build system. Tests can now be triggered via python run.py test.
  5. 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.
  6. Enhanced run.py to support headless execution and timeout parameters, enabling automated, non-interactive testing sessions.
  7. Established a full CI/CD pipeline using GitHub Actions, ensuring that every commit is built and tested against Linux, Windows, and macOS (ARM64) runners.
  8. Updated compiler flags to support optimization profiles (fast, vfast) within the Python build scripts.
  9. Implemented specific fixes for macOS environments, including handling Gatekeeper warnings and path resolution for the cross-compiler toolchain.
  10. 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.