forked from xt-sys/exectos
Import readme and license
This commit is contained in:
100
README.md
Normal file
100
README.md
Normal file
@@ -0,0 +1,100 @@
|
||||
<p align=center>
|
||||
<a href="https://git.codingworkshop.eu.org/xt-sys/exectos">
|
||||
<img alt="GIT Repository" src="https://img.shields.io/badge/Source-GIT-blueviolet">
|
||||
</a>
|
||||
<a href="https://ci.codingworkshop.eu.org/xt-sys/exectos">
|
||||
<img alt="Build Status" src="https://ci.codingworkshop.eu.org/api/badges/xt-sys/exectos/status.svg">
|
||||
</a>
|
||||
<a href="https://git.codingworkshop.eu.org/xt-sys/exectos/src/branch/master/COPYING.md">
|
||||
<img alt="License" src="https://img.shields.io/badge/License-GPLv3-blue.svg">
|
||||
</a>
|
||||
<a href="https://discord.com/invite/3zgjQDVmAe">
|
||||
<img alt="Discord" src="https://img.shields.io/discord/723186294540206100">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
# ExectOS Operating System
|
||||
ExectOS is an open-source, general purpose operating system written from scratch. It aims to be modular,
|
||||
maintainable and compatible with existing software. It implements a brand new XT architecture and features
|
||||
own native application interface. On the backend, it contains a powerful driver model between device drivers
|
||||
and the kernel, that enables kernel level components to be upgraded without a need to recompile all drivers.
|
||||
|
||||
# XT Architecture
|
||||
ExectOS is a preemptive, reentrant multitasking operating system that implements the XT architecture which derives
|
||||
from NT architecture. It is modular, and consists of two main layers: microkernel and user modes. Its' kernel mode has
|
||||
full access to the hardware and system resources and runs code in a protected memory area. It consists of executive
|
||||
services, which is itself made up on many modules that do specific tasks, a kernel and drivers. Unlike the NT, system
|
||||
does not feature a separate hardware abstraction layer (HAL) between the physical hardware and the rest of the OS.
|
||||
Instead, XT architecture integrates a hardware specific code with the kernel. The user mode is made up of subsystems
|
||||
and it has been designed to run applications written for many different types of operating systems. This allows to
|
||||
implement any environment subsystem to support applications that are strictly written to the corresponding standard
|
||||
(eg. DOS, or POSIX).
|
||||
|
||||
# Features
|
||||
* Modern, EFI enabled operating system
|
||||
* Runs on x86 and x86_64 architectures
|
||||
* Portable to other architectures
|
||||
* Modular design, open-source project
|
||||
* Own drivers for commonly used devices
|
||||
* NT drivers compatibility layer
|
||||
|
||||
# Requirements
|
||||
ExectOS is in very early development stage, thus its requirements have been not specified yet. However according to its
|
||||
design, it requires a modern EFI enabled hardware. It is not possible currently to boot ExectOS on a legacy BIOS.
|
||||
|
||||
# Source structure
|
||||
| Directory | Description |
|
||||
|------------|----------------------------------------------------------|
|
||||
| bootdata | default configuration and data needed to boot XTOS |
|
||||
| drivers | XT native drivers source code |
|
||||
| sdk/cmake | Host toolchain configuration and build-related functions |
|
||||
| sdk/xtdk | XT Software Development Kit headers |
|
||||
| sdk/xtlib | XT Base library source code |
|
||||
| services | integral subsystems services source code |
|
||||
| subsystems | environment subsystems source code |
|
||||
| xtoskrnl | XTOS kernel source code |
|
||||
| xtldr | XTOS boot loader source code |
|
||||
|
||||
# Build
|
||||
XTOS can be built only by using XTChain, a special toolchain prepared for compiling XT software. Currently, there is
|
||||
only a Linux version available, so a Linux distribution or WSL is needed. If XTChain is already installed and
|
||||
available, then building ExectOS is quiet easy. First, open a terminal or WSL console and type the following command
|
||||
to launch XTChain build console:
|
||||
```
|
||||
xtchain
|
||||
```
|
||||
While the console is already running, navigate to the directory containing ExectOS source code and use the following
|
||||
commands to fisr set target build architecture and configure the sources:
|
||||
```
|
||||
charch [i686|amd64]
|
||||
chbuild [DEBUG|RELEASE]
|
||||
./configure.sh
|
||||
```
|
||||
Once the sources are configured, enter the build directory and compile the source code:
|
||||
```
|
||||
cd build
|
||||
ninja
|
||||
```
|
||||
It is also possible to build a disk image ready to use with QEMU with the following command:
|
||||
```
|
||||
ninja image
|
||||
```
|
||||
|
||||
# Contributing
|
||||
There is a ton of work to do in ExectOS and we appreciate any help. If you are interested in writing features,
|
||||
porting drivers, fixing bugs, writing tests, creating documentation, or helping out in any other way, we would
|
||||
love the help. More details on how to contrubite can be found it CONTRIBUTING.md file.
|
||||
|
||||
# Licensing
|
||||
ExectOS is licensed to the public under the terms of the GNU General Public License, version 3. For more
|
||||
detailed information check the COPYING.md file.
|
||||
|
||||
# GIT Mirrors
|
||||
* Main GIT Repository: https://git.codingworkshop.eu.org/xt-sys/exectos
|
||||
* GitHub Mirror: https://github.com/xt-sys/exectos
|
||||
* GitLab Mirror: https://gitlab.com/xt-sys/exectos
|
||||
|
||||
# Contact
|
||||
* Discord Server: https://discord.gg/3zgjQDVmAe
|
Reference in New Issue
Block a user