Fennix is an operating system built from scratch using C and C++.
--- > [!CAUTION] > The project is still in development and is not yet ready for production use. > > Please use a virtual machine to run the OS. ## Features - ๐งฉ Flexible and modular - You can easily choose the components you want to include in the kernel - ๐๏ธ Compatible with multiple platforms - Supports i386, AMD64 and AArch64 platforms - ๐ฆ Support for different operating system binaries - You can run Linux and Windows binaries - ๐จ๏ธ Driver support - Supports a variety of drivers for different hardware components - ๐ Detailed documentation - The project is well-documented using Doxygen > [!IMPORTANT] > Some features are still in development and may not be fully functional. ## Getting Started ### ๐พ Download ISO Image You can download the development ISO image from the [Actions](https://github.com/EnderIce2/Fennix/actions/workflows/makefile.yml) tab on the GitHub repository. ### ๐ ๏ธ Prerequisites To build the project, you need to have the following tools installed: - `make` - `gcc` - `ld` - ... and other standard Unix tools - These can be installed using `build-essential` on Ubuntu or `base-devel` on Arch Linux - `doxygen` (optional) - To generate the documentation ### ๐ Installation You can install the project by building it from source. #### Cloning the Repository First, clone the repository using Git: ```sh git clone https://github.com/EnderIce2/fennix.git cd fennix ``` #### Preparing the Environment Before building the project, you need to build the cross-compiler toolchain and QEMU. You can do this by running the following command: ```sh make setup ``` This will clone, patch, and build the required tools for you. #### Building the Project To build the project, run: ```sh make build ``` This will build the kernel, userspace, and drivers. The iso image will be `Fennix.iso`. #### Running the OS You can run the OS using QEMU. First, build the project, then run: ```sh make run ``` #### Additional Configuration You can configure the project by editing the `config.mk` file. ## ๐งช Debugging If you use Visual Studio Code, you can press `F5` to start debugging the OS. The configuration is already set up for you. > [!TIP] > Make sure you built the project at least once before debugging. ## ๐ Documentation The project documentation is generated using Doxygen. To generate the documentation, run: ```sh make docs ``` The documentation will be available in the `doxygen-doc/docs` directory. ## ๐จโ๐ป Contributing Contributions are welcome! Please read the [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines on how to contribute to this project. ### Contributors