# Leos Operating System for ARMv8 (aarch64) Architecture * [The Idea](#The Idea) * [Hardware](#Hardware) * [Documentation](#Documentation) * [Compilation](#Compilation) * [Run](#Run) * [Debug](#Debug) * [Roadmap](#Roadmap) * [Contribution](#Contribution) --- ## The Idea Löwe OS is being developed to be a lightweight desktop operating system for ARM-based computers, tablets, mobile phones etc. Here are some concepts behind it: 1. The OS is free with open source codes, distributed under terms of [CC BY-ND 4.0](LICENSE.md). 2. The OS will have POSIX-compliant API. 3. The OS will include graphical system, shell and generic utilities as a part of it, being designed to work as a solid product. 4. The OS will respect user's privacy and will not track his/her actions and data. 5. The OS will stive to be secure and robust. ## Hardware Early development is going for **Raspberry PI3** board and its emulation using **QEMU**. ## Documentation * [Project structure](docs/project-structure.md) * [Naming convention](docs/naming-convention.md) * [Task scheduling](docs/task-scheduling.md) * [Memory management](docs/memory-management.md) ## Compilation To compile Löwe OS run `make` from repository root, make sure [Clang](https://clang.llvm.org/) compiler is installed on your system. ``` $ make ``` Output files will be stored inside newly created `build` folder. ## Run To run Löwe OS on QEMU, execute `make run` command for the repository root. To run Löwe OS on Raspberry PI3, follow these steps: 1. Compile project and copy `build/kernel8.img` and `config.txt` files to Micro SD card 2. Make sure latest boot code is installed on the SD card 3. Insert SD card into your Raspberry PI3 and power it up ## Debug If you have `gdb-multiarch` and **QEMU** installed, then debugging should be as easy as `make debug`. ## Roadmap 1. Generic kernel features: [x] Loadable Kernel file [x] UART logging [x] Memory pages avalability bitmap [x] Interrupt vectors table [x] Basic task scheduler [ ] Context switching [ ] Memory Mapping Unit 2. Input/output: [ ] Graphical driver [ ] USB driver [ ] Keyboard input driver [ ] Mouse input driver 3. Graphical system 4. Shell and utilities 5. Networking 6. Sound system ## Contribution