Initial import

This commit is contained in:
Rafal Kupiec 2024-06-16 14:32:38 +02:00
parent 83270c38d4
commit ac2d4e4dd9
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
16 changed files with 459 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
public/
.hugo_build.lock

View File

@ -1 +1,2 @@
## ExectOS Web Site
This repository contains the entire content of the ExectOS Website, powered by the Hugo Static Site Generator.

73
config.toml Normal file
View File

@ -0,0 +1,73 @@
baseURL = "https://exectos.eu.org/"
title = "ExectOS Operating System"
theme = "exectos"
languageCode = "en-us"
defaultContentLanguage = "en"
paginate = 10
[menu]
[[menu.main]]
name = "About"
weight = 1
[[menu.main]]
parent = "About"
name = "About ExectOS"
url = "/about-exectos"
weight = 11
[[menu.main]]
parent = "About"
name = "FAQ"
url = "/faq"
weight = 12
[[menu.main]]
name = "Development"
weight = 2
[[menu.main]]
parent = "Development"
name = "Architecture"
url = "/xtos-architecture"
weight = 21
[[menu.main]]
parent = "Development"
name = "Contributing"
url = "/contributing"
weight = 22
[[menu.main]]
parent = "Development"
name = "Source Code"
url = "https://git.codingworkshop.eu.org/xt-sys/exectos"
weight = 23
[[menu.main]]
name = "Downloads"
weight = 3
[[menu.main]]
parent = "Downloads"
name = "ExectOS"
url = "https://artifacts.codingworkshop.eu.org/ExectOS"
weight = 31
[[menu.main]]
parent = "Downloads"
name = "ToolChain"
url = "https://github.com/xt-sys/xtchain/releases"
weight = 32
[[menu.main]]
name = "Discord"
url = "https://discord.com/invite/zBzJ5qMGX7"
weight = 4
[[menu.main]]
name = "Donate"
url = "https://github.com/sponsors/xt-sys/"
weight = 5
[params]
defaultKeywords = ["ExectOS", "XT", "XTOS", "efi", "gpl3", "kernel", "nt", "open source", "os", "osdev", "uefi boot", "win32"]
defaultDescription = "ExectOS Operating System"
[taxonomies]
author = "author"
tag = "tags"

46
content/about-exectos.md Normal file
View File

@ -0,0 +1,46 @@
+++
title = 'About Exectos'
date = 2024-06-16T12:12:40+02:00
draft = true
+++
## About
ExectOS aims to be a stable and flexible, general purpose operating system written from scratch. It is designed 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 us to implement any
environment subsystem to support applications that are strictly written to the corresponding standard (eg. DOS, or POSIX).
Thanks to that ExectOS will allow to run existing software, including Win32 applications.
## Features
* Completely free, Open Source and community-driven modern Operating System.
* Native multiple architecture support. It runs on x86 and x86_64 and is portable to other architectures.
* Uses a couple of ideas from other open source projects, but its our own ideas that really sets us apart and defines
ExectOS. The majority of code is original, not forked.
* Modular design for better compatibility with existing software.
* Own, XT drivers for commonly used devices as well as NT drivers compatibility layer for better hardware support.
## Why
* We believe, there is no ideal Operating System on the market. During ExectOS development, we try to bring most useful
features known from existing solutions, while keeping compatibility with NT architecture at desired level.
* Some of our ideas differ greatly from other projects and it is much easier if we do not have to fight legacy code and
ideas.
* We need the freedom to break things when necessary.
## Goals
* Keep the greatest advantages of the NT architecture, while implementing new features and technologies known from other
Operating Systems.
* Flexibility where it makes sense to provide flexibility.
* Be able to deliver features that other non-commercial Operating Systems consider too ambitious.
## 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.

97
content/faq.md Normal file
View File

@ -0,0 +1,97 @@
+++
title = 'Frequently Asked Questions'
date = 2024-06-16T12:33:36+02:00
draft = true
+++
## Frequently Asked Questions
#### What is ExectOS?
ExectOS is an open-source, general purpose operating system written from scratch and based on new XT architecture.
It aims to be modular, maintainable and compatible with existing software.
#### What does ExectOS mean? What is the origin of this name?
The name 'ExectOS' doesnt have a specific historical origin, as it appears to be a unique creation for this
Operating System. The term 'Exec' within ExectOS directly relates to execution - the act of carrying out tasks,
processes, and instructions. In the context of operating system, execution involves managing programs, resources,
and system operations. Users should associate ExectOS with streamlined performance and reliability.
#### What does the ExectOS logo present and what is the relation between the logo and the OS name?
The three wavy lines in the ExectOS logo evoke a sense of fluidity and movement. Their arrangement, forms a shape
reminiscent of the capital letter E, directly corresponding to the initial letter of ExectOS. The flowing waves
symbolize dynamism, progress, and forward motion. The smooth curves suggest a seamless user experience, while gradient
colors represent diversity and adaptability. All of this convey a message of innovation, user-friendliness, and
adaptability. It invites users to explore a new operating system that promises a seamless computing experience.
#### What architectures does ExectOS support?
ExectOS supports the x86_64 (sometimes called AMD64 or EM64T), as well as i686 CPU architectures. However, it requires
a modern EFI enabled hardware, thus it is not possible currently to boot ExectOS on a legacy BIOS.
#### Is ExectOS a Windows replacement?
No. ExectOS is a brand new, modern system 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). This means that running Windows applications might be as well possible at
some time. However development is mostly focused on providing system core at the moment.
#### Is ExectOS another Unix based OS?
No. ExectOS implements the XT architecture which derives from NT architecture. It is modular, and consists of two main
layers: microkernel and user mode. 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.
#### Does ExectOS allow to use Windows drivers?
This is one of our goals. Thanks to the NT drivers compatibility layer provided by ExectOS, you should be able to install
and use the same drivers as you can on Windows.
#### Can I install ExectOS on a pendrive / USB stick?
Yes. This is how it is tested on a bare metal (real hardware).
#### Program X does not work when I launch it. When can I except things to change?
It depends. ExectOS is in early development stage and it is not recommended for everyday usage. At this point we cannot
guarantee anything.
#### When will feature X get added?
If you think an idea has merit, you may choose to discuss it on [Discord Server](https://discord.com/invite/zBzJ5qMGX7).
However, the best way to get a feature added to ExectOS is to implement it yourself.
#### When will the project be finished?
Writing an Operating System is a complex task that requires time. Other popular Operating Systems, such as Linux, are
also constantly being developed to meet the everyday users requirements.
#### Where can I obtain the source code?
ExectOS source code can be obtained from GIT repository available [here](https://git.codingworkshop.eu.org/xt-sys/exectos).
It can be also found on [GitHub](https://github.com/xt-sys/exectos) and [GitLab](https://gitlab.com/xt-sys/exectos) mirrors.
#### Where can I download ExectOS?
Each ExectOS build, including binaries, disk image, libraries and debug symbols are available [here](https://artifacts.codingworkshop.eu.org/ExectOS/).
#### How can I contribute to ExectOS?
We are looking for C and Assembler developers for core OS development as well as testers. If you are willing to help,
please join our [Discord server](https://discord.com/invite/zBzJ5qMGX7) and contact one of ExectOS developers.
#### Why don't you use GCC?
Because GCC is a crap.
#### Do you have any kind of tests to check if the code is working as expected?
We don't need tests. If it compiles, it is good enough; if it boots up, then it is perfect.
#### Why don't you help Wine?
Wine implements Win32Api only, while ExectOS is a featureful Operating System, that implements a compatibility layer with NT.
This means, ExectOS will be able to run NT drivers as well, not only Windows software. However, thanks to its modular design,
it will be possible to implement Win32 subsystem as well at some point, based on Wine.
#### Why don't you help ReactOS?
ExectOS goals are very different from ReactOS, and contrast the project's core philosophy as being quite on different paths.
While ReactOS aims to replicate Windows NT, ExectOS is a completely new Operating System implementing the XT architecture
which derives from NT. Although both projects share the goal of being NT compatible, they intend to achieve it in different
ways. What ReactOS tries to replicate, ExectOS only implements as a compatibility layer. Thanks to that, ExectOS does not
need to strictly follow NT architecture and is capable of providing modern features.
#### Do you intend to cooperate with ReactOS to achieve common goals?
No. We share Wine's opinion on the inappropriate reverse-engineering methods used in the ReactOS project, as well as its
association with the TinyKrnl project, which used every possible method of achieving the end result of having a 100%
compatible results. This especially applies to the so-called dirty way.
#### Which license does ExectOS use?
ExectOS is licensed under the GNU General Public License v3.

View File

@ -0,0 +1,3 @@
module:
hugoVersion:
min: "0.84.0"

View File

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
{{- partial "head.html" . -}}
<body>
{{- partial "header.html" . -}}
<div class="wrapper_content">
<div class="content">
{{- block "main" . }}{{- end }}
</div>
</div>
{{- partial "footer.html" . -}}
</body>
</html>

View File

@ -0,0 +1,10 @@
{{ define "main" }}
<h1>{{ .Title }}</h1>
{{ range .Pages.ByPublishDate.Reverse }}
<h3><a class="title" href="{{ .RelPermalink }}">{{ .Title }}</a></h3>
{{ partial "metadata.html" . }}
<a class="summary" href="{{ .RelPermalink }}">
<p>{{ .Summary }}</p>
</a>
{{ end }}
{{ end }}

View File

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
{{- partial "head.html" . -}}
<body>
{{- partial "header.html" . -}}
<div id="content">
{{- block "main" . }}{{- end }}
</div>
{{- partial "footer.html" . -}}
{{- partial "script.html" . -}}
</body>
</html>

View File

@ -0,0 +1,6 @@
{{ define "main" }}
<h1>{{ .Title }}</h1>
{{ partial "metadata.html" . }}
<br><br>
{{ .Content }}
{{ end }}

View File

@ -0,0 +1,9 @@
<div class="wrapper_footer">
<div class="footer">
<div class="footer-left">
Copyright&copy; 2017 - 2024, CodingWorkshop
</div>
<div class="footer-right">
</div>
</div>
</div>

View File

@ -0,0 +1,9 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="/favicon.png" />
<link rel="stylesheet" type="text/css" href="/css/style.css">
<meta http-equiv="Content-type" content="application/xhtml+xml;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>{{ $title := print .Site.Title " | " .Title }}{{ if .IsHome }}{{ $title = .Site.Title }}{{ end }}{{ $title }}</title>
</head>

View File

@ -0,0 +1,19 @@
<div class="wrapper_header">
<div class="header">
<h1><a href="{{ .Site.BaseURL }}"><img src="" alt="{{ .Site.Title }}" /></a></h1>
<ul>
{{ range .Site.Menus.main }}
{{ if .HasChildren }}
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{{ .Name }}<span class="caret"></span></a>
<ul class="dropdown-menu">
{{ range .Children }}
<li><a href="{{ .URL }}">{{ .Pre }}{{ .Name }}{{ .Post }}</a></li>
{{ end }}
</ul>
{{ else }}
<li><a href="{{ .URL }}"><b>{{ $text := print .Name | safeHTML }}{{ $text }}</b></a></li>
{{ end }}
{{ end }}
</ul>
</div>
</div>

View File

@ -0,0 +1,149 @@
html {
color : #333333;
background-color : #FFFFFF;
margin : 0;
padding : 0;
}
body {
font-family : "trebuchet ms", "verdana", sans-serif;
margin : 0;
padding : 0;
}
h1 {
margin-top : 8px;
padding : 1px;
}
h2 {
border-bottom : 1px solid #8877FF;
margin-left : -1em;
margin-right : -1em;
}
img {
border : 0px;
}
.content {
margin-left : 25%;
margin-right : 25%;
margin-top : 2.5em;
}
.content li {
list-style-type : square;
}
.copyright {
color : #404040;
font-family : sans-serif, Verdana, Arial, Helvetica;
font-size : 10px;
text-align : center;
text-decoration : none;
}
.copyright a {
color : #404040;
text-decoration : none;
}
.copyright a:hover {
color : #404040;
text-decoration : none;
}
.header {
background : #bee0ff;
border-bottom : 2px solid #186196;
color : #186196;
clear : both;
padding-left : 1em;
padding-top : 0.5em;
}
.header a {
border : 2px solid transparent;
color : #186196;
padding-left : 10px;
padding-right : 10px;
padding-top : 1px;
text-decoration : none;
}
.header li a:before {
content: "\00BB ";
color: #186196;
}
.header a:hover {
color : #000055;
padding-left : 10px;
padding-right : 10px;
padding-top : 1px;
}
.header li {
display : inline;
margin-left : 2em;
}
.header ul {
margin : 0px;
padding : 0px;
text-align : left;
}
.footer {
background : #FFFFFF;
color : #000000;
clear : both;
font-family : sans-serif, verdana, Helvetica;
font-size : 12px;
margin-left : 10px;
margin-top : 0.4em;
padding : 0;
width : 100%
}
.footer-left {
position : absolute;
text-align : left;
width : 50%;
}
.footer-right {
left : 50%;
position : absolute;
text-align : right;
width : 50%;
}
.wrapper_content {
margin-bottom : 2.5em;
padding : 6em 0 0 0;
}
.wrapper_header {
background : #FFFFFF;
color : #000000;
height : 6em;
left : 0;
position : absolute;
position : fixed;
top : 0;
width : 100%;
}
.wrapper_footer {
background : #FFFFFF;
border-top : 2px solid #186196;
bottom : 0;
color : #000000;
height : 1.5em;
left : 0;
position : absolute;
position : fixed;
width : 100%
}

10
themes/exectos/theme.toml Normal file
View File

@ -0,0 +1,10 @@
name = "ExectOS"
license = "GPLv3"
licenselink = "https://www.gnu.org/licenses/gpl-3.0.html"
description = "ExectOS Theme"
homepage = "https://exectos.eu.org"
languageCode = "en-us"
min_version = "0.1.0"
[author]
name = "Rafal Kupiec"