A comprehensive library for the KronOS kernel.
To use or contribute to Hephaistos, the following tools are required:
- GCC: The GNU Compiler Collection.
- CLANG: A compiler front-end for C, C++, Objective-C, and Objective-C++.
- KVM: Kernel-based Virtual Machine for virtualization.
- QEMU: An open-source hardware virtualization tool.
Hephaistos is integrated with the KronOS build system, utilizing a custom setup to streamline the process. Building Hephaistos is seamlessly handled as part of the KronOS compilation. Follow these steps to build Hephaistos along with KronOS:
- Clone the KronOS repository:
git clone --recursive https://github.com/vvaucoul/KronOS
- Navigate to the KronOS directory:
cd KronOS
- Build KronOS:
make
- Build Verification: Upon completion, verify that Hephaistos libraries and modules are compiled and integrated as expected.
Hephaistos allows for certain customizations such as enabling/disabling specific modules. Refer to the KronOS and Hephaistos configuration files for more information on how to customize your build.
These tools are not mandatory but can enhance the development experience:
- CCACHE: A compiler cache that can speed up recompilation.
- GNU XORRISO: A tool to create, modify, and extract from ISO 9660 filesystem images.
The project is structured into multiple parts:
- Library: The main component, Hephaistos.
- Data Transfer: Charon, a submodule focused on efficient data transfer.
The Hephaistos library contains several submodules, each focusing on specific kernel functionalities. Below is a brief description of each submodule:
Submodule | Description |
---|---|
algorithms | Implements common algorithms like B+ Trees, B Trees, Hash Tables, Lists, Queues, RB Trees, and Sorting algorithms. |
assert | Provides functions for asserting conditions. |
bit | Contains functions for bit manipulation. |
convert | Provides functions for data type conversions. |
cpu | Contains functions for CPU interactions. |
ctype | Provides functions for character classification. |
errno | Defines error codes. |
macros | Contains useful macros. |
memory | Provides functions for memory management. |
stdarg | Functions for manipulating function arguments. |
stdbool | Defines the boolean data type. |
stddef | Defines common data types and macros. |
stdio | Provides Input/Output functions. |
string | Functions for string manipulation. |
time | Functions for time manipulation. |
If you're interested in contributing to Hephaistos, please check out our Contribution Guide for more information.