|
| 1 | +# AnasOS Documentation |
| 2 | + |
| 3 | +Welcome to the AnasOS documentation. This document will guide you through the various components of the AnasOS operating system, including the multiboot configuration, kernel, window manager, and applications. |
| 4 | + |
| 5 | +## Table of Contents |
| 6 | + |
| 7 | +1. [Introduction](#introduction) |
| 8 | +2. [File Structure](#file-structure) |
| 9 | +3. [Multiboot Configuration](#multiboot-configuration) |
| 10 | +4. [Bootloader](#bootloader) |
| 11 | +4. [Kernel](#kernel) |
| 12 | +5. [Window Manager](#window-manager) |
| 13 | +6. [Applications](#applications) |
| 14 | +7. [Technologies Used](#technologies-used) |
| 15 | +8. [CI with GitHub Actions](#ci-with-github-actions) |
| 16 | +9. [Requirements](#requirements) |
| 17 | + |
| 18 | +## Introduction |
| 19 | + |
| 20 | +AnasOS is a custom operating system designed for educational purposes as part of a 12th-grade thesis project. This documentation provides detailed information about the different parts of the OS and how they work together. AnasOS is built for the **_x86_64_** architecture, chosen over ARM due to the availability of more and better resources on the topic. |
| 21 | + |
| 22 | +## Technologies Used |
| 23 | + |
| 24 | +- **Rust**: The core of the operating system is written in Rust for safety and performance. |
| 25 | +- **NASM**: The assembler used for writing assembly code for the bootloader. |
| 26 | +- **Makefile**: Used for managing build automation. |
| 27 | +- **GRUB**: The bootloader used for loading the kernel. |
| 28 | +- **QEMU**: The emulator used for testing the operating system. |
| 29 | +- **GitHub Actions**: Used for continuous integration and deployment. |
| 30 | + |
| 31 | +## File Structure |
| 32 | + |
| 33 | +Below is the file structure for the AnasOS documentation: |
| 34 | + |
| 35 | +``` |
| 36 | +/docs |
| 37 | + ├── README.md |
| 38 | + ├── applications |
| 39 | + │ ├── README.md |
| 40 | + │ ├── browser.md |
| 41 | + │ └── terminal.md |
| 42 | + ├── bootloader |
| 43 | + │ ├── README.md |
| 44 | + │ ├── header.md |
| 45 | + │ ├── boot.md |
| 46 | + │ └── boot-64.md |
| 47 | + ├── ci-github-actions |
| 48 | + │ ├── README.md |
| 49 | + │ ├── header.md |
| 50 | + │ ├── boot.md |
| 51 | + │ └── boot-64.md |
| 52 | + ├── kernel |
| 53 | + │ ├── README.md |
| 54 | + │ └── kernel.md |
| 55 | + ├── multiboot |
| 56 | + │ ├── README.md |
| 57 | + │ └── multiboot.md |
| 58 | + └── window-manager |
| 59 | + ├── README.md |
| 60 | + └── window_manager.md |
| 61 | +``` |
| 62 | + |
| 63 | +## Multiboot Configuration |
| 64 | + |
| 65 | +The multiboot configuration is responsible for initializing the hardware and loading the kernel into memory. Detailed documentation about the multiboot configuration can be found [here](multiboot/). |
| 66 | + |
| 67 | +## Bootloader |
| 68 | + |
| 69 | +The bootloader is a critical component that initializes the system and loads the kernel into memory. It is responsible for setting up the environment so that the kernel can execute properly. Detailed documentation about the bootloader can be found [here](bootloader/). |
| 70 | + |
| 71 | +## Kernel |
| 72 | + |
| 73 | +The kernel is the core component of AnasOS, managing system resources and providing essential services. Detailed documentation about the kernel can be found [here](kernel/). |
| 74 | + |
| 75 | +## Window Manager |
| 76 | + |
| 77 | +The window manager **WILL** handle the graphical user interface and window management. Detailed documentation about the window manager will be available [here](window-manager/). |
| 78 | + |
| 79 | +## Applications |
| 80 | + |
| 81 | +AnasOS **WILL** include two main applications: a [browser](applications/browser.md) and a [terminal](applications/terminal.md). Detailed documentation about these applications will be available [here](applications/). |
| 82 | + |
| 83 | +## CI with GitHub Actions |
| 84 | + |
| 85 | +GitHub Actions is used for continuous integration (CI) to automate the build, testing, and release processes of AnasOS. This ensures that every change is verified, the system remains stable, and new versions are released efficiently. The workflows are defined in the `.github/workflows` directory, with detailed documentation available in the [here](ci-github-actions/). |
| 86 | + |
| 87 | +## Requirements |
| 88 | + |
| 89 | +Before fully testing the OS, ensure you have the following requirements installed: |
| 90 | + |
| 91 | +- **Rust**: Install Rust from [rust-lang.org](https://www.rust-lang.org/). |
| 92 | +- **NASM**: Install NASM from [nasm.us](https://www.nasm.us/). |
| 93 | +- **GRUB**: Install GRUB using your package manager. |
| 94 | +- **QEMU**: Install QEMU from [qemu.org](https://www.qemu.org/). |
| 95 | +- **Make**: Ensure Make is installed on your system. |
| 96 | + |
| 97 | + |
| 98 | +You can install the required packages on Debian-based Linux distributions using `apt` with the example from the [main README](../) file |
0 commit comments