You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/docs/AerynOS/contribute.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ We currently accept donations via [Ko-Fi](https://ko-fi.com/aerynos).
18
18
19
19
## Contributing to our codebases
20
20
21
-
AerynOS utilizes GitHub to manage code changes, including updates our our websites. Each repository will have its own Readme that will include instructions on how to make updates to it. They can be found [here](https://github.com/orgs/AerynOS/repositories). To specifically make contributions to our websites, you can visit the following repositories:
21
+
AerynOS utilizes GitHub to manage code changes, including updates to our websites. Each repository will have its own Readme that will include instructions on how to make updates to it. They can be found [here](https://github.com/orgs/AerynOS/repositories). To specifically make contributions to our websites, you can visit the following repositories:
22
22
23
23
- AerynOS.com site [repo](https://github.com/AerynOS/dotdev)
24
24
- AerynOS.dev site [repo](https://github.com/AerynOS/dotcom)
Copy file name to clipboardExpand all lines: src/content/docs/AerynOS/faq.mdx
+18-18Lines changed: 18 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ import { Aside } from "@astrojs/starlight/components";
14
14
15
15
### What does AerynOS mean and how do I pronounce it?
16
16
17
-
AerynOS is a stylised spelling of "Erin", alluding to the project's Irish roots. It is pronounced exactly the same as "Erin" - "AIR-in" OS. It's also a play on "aer" and the phonetic "air" sound, indicative of our desire to produce an open, trusted and high-performance operating system.
17
+
AerynOS is a stylized spelling of "Erin", alluding to the project's Irish roots. It is pronounced exactly the same as "Erin" - "AIR-in" OS. It's also a play on "aer" and the phonetic "air" sound, indicative of our desire to produce an open, trusted and high-performance operating system.
18
18
19
19
It's pronounced as "AIR-in" OS.
20
20
@@ -36,7 +36,7 @@ Checking the currently supported x86_64 psABI feature level of a system can be d
36
36
37
37
### Does AerynOS offer NVIDIA GPU support?
38
38
39
-
Due to the way NVIDIA distributes its drivers, maintaining them in a distro is labour intensive and frustrating when they do not work as advertised.
39
+
Due to the way NVIDIA distributes its drivers, maintaining them in a distro is labor-intensive and frustrating when they do not work as advertised.
40
40
41
41
Given AerynOS is in the Alpha development stage, only limited, best effort NVIDIA enablement related to cards supported by the so-called nvidia-open-gpu-kernel-modules is currently offered.
42
42
@@ -55,12 +55,12 @@ You have been warned.
55
55
In practice, we recommend that you install AerynOS to a separate drive with:
56
56
57
57
- A >=256MB ESP FAT32 partition (type 1 in fdisk).
58
-
- This must be manually formatted for the installer to recognise it.
58
+
- This must be manually formatted for the installer to recognize it.
59
59
- A 4GB XBOOTLDR FAT32 partition (type 142 in fdisk, bls_boot in gparted).
60
-
- This must be manually formatted for the installer to recognise it.
60
+
- This must be manually formatted for the installer to recognize it.
61
61
- This partition is large, because it is where the AerynOS kernel+initramfs and (in the future) rescue image files will be saved.
62
62
- A >20 GB system xfs partition
63
-
- This must be manually formatted for the installer to recognise it.
63
+
- This must be manually formatted for the installer to recognize it.
64
64
- The larger the xfs system (/ or root) partition is, the more OS /usr directory rollback states it can support in /.moss/.
65
65
66
66
```
@@ -88,7 +88,7 @@ nvme1n1
88
88
ermo@virgil:~
89
89
```
90
90
91
-
NB: Remember, there is nothing stopping you from creating an extra partition, formatting it with a filesystem of your choice, and then configuring /etc/fstab to mount it as /home after AerynOS has been installed, if you want to use a different filesystem than xfs for your /home folders for whatever reason.
91
+
NB: Remember, there is nothing stopping you from creating an extra partition, formatting it with a filesystem of your choice, and then configuring /etc/fstab to mount it as /home after AerynOS has been installed. You can do this if you want to use a different filesystem than xfs for your /home folders for whatever reason.
92
92
93
93
### Why do you recommend the xfs filesystem for the root partition?
94
94
@@ -163,19 +163,19 @@ Tack on ```--help``` to see the options for prune.
163
163
164
164
See the [blsforme repo readme](https://github.com/AerynOS/blsforme/?tab=readme-ov-file#filesystem-layout) for the expected format.
165
165
166
-
Typically, it is necessary to change the installed system state with ```moss``` for command-line snippets to take effect.
166
+
Typically, it is necessary to change the installed system state with `moss` for command-line snippets to take effect.
167
167
168
-
One way of doing that is to do a ```sudo moss remove nano -y && sudo moss install nano -y```, followed by ```sudo moss boot status``` to check if the new cmdline snippet is now active.
168
+
One way of doing that is to do a `sudo moss remove nano -y && sudo moss install nano -y`, followed by `sudo moss boot status` to check if the new cmdline snippet is now active.
169
169
170
170
# Package Questions
171
171
172
172
### How come your package repository is so small?
173
173
174
-
We are still in heavy development ("Alpha") and are developing our back end and associated automated rebuild processes.
174
+
We are still in heavy development ("Alpha") and are developing our backend and associated automated rebuild processes.
175
175
176
176
If we discover that it is necessary for us to rebuild our entire repository, we would like the ability to do so in the span of an afternoon (using multiple builders in parallel).
177
177
178
-
Once our back end story and our automated rebuild process story are both further advanced, we will begin scaling out the repository to contain more packages.
178
+
Once our backend story and our automated rebuild process story are both further advanced, we will begin scaling out the repository to contain more packages.
179
179
180
180
### Could you package (...) please?
181
181
@@ -210,17 +210,17 @@ AerynOS has been bootstrapped and built from scratch and is not based on any oth
210
210
211
211
This implies that AerynOS has its own:
212
212
213
-
- package manager (```moss```)
214
-
- package build tool (```boulder```)
213
+
- package manager (`moss`)
214
+
- package build tool (`boulder`)
215
215
- build pipeline consisting of:
216
-
- the package build dashboard and controller (```summit```)
217
-
- the builder-as-a-service middleware (```avalanche```)
218
-
- the package repository manager (```vessel```)
216
+
- the package build dashboard and controller (`summit`)
217
+
- the builder-as-a-service middleware (`avalanche`)
218
+
- the package repository manager (`vessel`)
219
219
220
220
This also implies that AerynOS does NOT build upon or use either:
221
221
222
-
-```.rpm``` related tooling from Red Hat
223
-
-```.deb``` related tooling from the Debian Project
222
+
-`.rpm` related tooling from Red Hat
223
+
-`.deb` related tooling from the Debian Project
224
224
- Arch-related tooling
225
225
226
226
### When will AerynOS be considered stable?
@@ -229,4 +229,4 @@ AerynOS is taking on the ambitious task of creating a distribution from scratch,
229
229
230
230
As such, there is no official ETA.
231
231
232
-
Now that the project has hit alpha status, you will see more frequent updates and progress reports.
232
+
Now that the project has hit alpha status, you will see frequent updates and progress reports.
AerynOS is an independent Linux-based operating system that diverges significantly from traditional
9
-
distributions whilst still aiming to provide a familiar and comfortable environment. In this section
10
-
of the documentation, you can find high level information about the project itself and what sets it
11
-
apart from other distributions.
8
+
AerynOS is an independent Linux-based operating system that diverges significantly from traditional distributions whilst still aiming to provide a familiar and comfortable environment. In this section of the documentation, you can find high level information about the project itself and what sets it apart from other distributions.
AerynOS is a Linux-based operating system designed to eliminate years of technical baggage. It is an engineering
10
-
led effort in that the distribution is produced entirely by the tooling we have developed. Every new feature,
11
-
technology or enabling is carefully considered, drawing on our own experiences and by studying the impact in similar
12
-
decision spaces in other projects.
9
+
AerynOS is a Linux-based operating system designed to eliminate years of technical baggage. It is an engineering led effort in that the distribution is produced entirely by the tooling we have developed. Every new feature, technology, or enabling is carefully considered, drawing on our own experiences and by studying the impact in similar decision spaces in other projects.
13
10
14
-
Despite being heavily engineering led, we are not averse to design. We aim to provide the best in class user experience
15
-
atop a solid, innovative foundation, whilst ensuring we have the scope and scalability to meet the needs of the future.
11
+
Despite being heavily engineering led, we are not averse to design. We aim to provide the best in class user experience atop a solid, innovative foundation, whilst ensuring we have the scope and scalability to meet the needs of the future.
16
12
17
-
In essence, we're producing a distribution based on sound technical principles, in order to deliver a "daily driver"
18
-
that truly looks after itself, getting out of the way when you need it to, and providing the tools you need when you
19
-
need them.
13
+
In essence, we're producing a distribution based on sound technical principles, in order to deliver a "daily driver" that truly looks after itself. Its aim is to get out of the way when you need it to, and provide the tools you need when you need them.
20
14
21
-
If anything, AerynOS is "operating-system-as-infrastructure", providing a solid foundation for your daily computing
22
-
needs. We're not just a distribution, we're a platform for the future.
15
+
If anything, AerynOS is "operating-system-as-infrastructure", providing a solid foundation for your daily computing needs. We're not just a distribution, we're a platform for the future.
23
16
24
17
<Asidetype="caution">
25
-
Remember, AerynOS is still in development. Despite our goals, we must be clear
26
-
that we've deemed ourselves to be alpha quality software.
18
+
Remember, AerynOS is still in development. Despite our goals, we must be clear that we've deemed ourselves to be alpha quality software.
Copy file name to clipboardExpand all lines: src/content/docs/AerynOS/philosophy.mdx
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,32 +28,32 @@ System triggers do not run in an isolated container, but instead are run in the
28
28
29
29
## Atomic updates
30
30
31
-
An atomic update is a series of changes to a system that are treated as a single, indivisible operation. If any part of this update fails, then the entire update is cancelled with all prior parts of the incomplete update being rolled back. This means that either an update completes fully as intended, or the system is left in the state it was in before the update was attempted. This is important because partial updates often cause significant issues such as bricked installs.
31
+
An atomic update is a series of changes to a system that are treated as a single, indivisible operation. If any part of this update fails, then the entire update is canceled with all prior parts of the incomplete update being rolled back. This means that either an update completes fully as intended, or the system is left in the state it was in before the update was attempted. This is important because partial updates often cause significant issues such as bricked installs.
32
32
33
-
AerynOS's approach to atomic updates is fairly different to the approach taken by other Linux distributions, which mostly use an A/B switch model using specific read-only filesystems to swap the whole system upon reboot. Atomic updates in AerynOS are managed by its package manager `moss` (which we also refer to as a `system state manager`). As such, AerynOS is not tied to using read-only filesystems and this allows for the use of XFS, ext4 and F2FS.
33
+
AerynOS' approach to atomic updates is fairly different to the approach taken by other Linux distributions, which mostly use an A/B switch model using specific read-only filesystems to swap the whole system upon reboot. Atomic updates in AerynOS are managed by its package manager `moss` (which we also refer to as a `system state manager`). As such, AerynOS is not tied to using read-only filesystems and this allows for the use of XFS, ext4 and F2FS.
34
34
35
-
As mentioned above, AerynOS utilises a stateless design where packages can only be installed to the `/usr` directory. The knowledge that packages can only be installed to this directory allows AerynOS to innovate in its approach to atomic updates.
35
+
As mentioned above, AerynOS utilizes a stateless design where packages can only be installed to the `/usr` directory. The knowledge that packages can only be installed to this directory allows AerynOS to innovate in its approach to atomic updates.
36
36
37
37
AerynOS packages are packaged up as bespoke `.stone` moss-format files. Hence, AerynOS does not use or rely on e.g. Debian `.deb` format package files or Fedora/RHEL `.rpm` format package files. These `.stone` files contain a deduplicated set of hashed files compressed using zstd. When a `.stone` file is installed via `moss`, the files are decompressed and stored into a global, deduplicated content addressable store under`/.moss/`. Relevant metadata about these files is also stored in a database under `/.moss/`.
38
38
39
-
As part of the final stages of an atomic transaction, `moss` creates (or "blits") a new `/usr` directory based on [hardlinks](https://www.virtualcuriosities.com/articles/4507/how-hard-links-and-inodes-work-on-linux) to the global content addressable store, and swaps this new `/usr` directory into place using the `renameat2` Linux kernel syscall with the `RENAME_EXCHANGE` flag, which allows for atomically exchanging an old path for a new path.
39
+
As part of the final stages of an atomic transaction, `moss` creates (or "blits") a new `/usr` directory based on [hardlinks](https://www.virtualcuriosities.com/articles/4507/how-hard-links-and-inodes-work-on-linux) to the global content addressable store. It then swaps this new `/usr` directory into place using the `renameat2` Linux kernel syscall with the `RENAME_EXCHANGE` flag, which allows for atomically exchanging an old path for a new path.
40
40
41
41
As hardlinks do not take up any significant additional space on disk, and since the global content addressable store is always deduplicated as part of every transaction, `moss` stores every `/usr` directory from every transaction. This allows for retaining system snapshots with minimal overhead and provides the ability to perform atomic rollbacks to earlier states so long as the user does not prune those.
42
42
43
43
## Self healing
44
44
45
-
As part of our boot management solution, every moss transaction ID is encoded into the kernel command line and is picked up during early boot into our initramfs, before `/sysroot` is pivoted to. Every kernel is correctly synchronised with the right rootfs based on the moss transaction it was associated to. Given that every transaction creates a new bootloader entry, AerynOS prunes all but the last 5 transactions from the bootloader list to keep it manageable.
45
+
As part of our boot management solution, every moss transaction ID is encoded into the kernel command line and is picked up during early boot into our initramfs, before `/sysroot` is pivoted to. Every kernel is correctly synchronized with the right rootfs based on the moss transaction it was associated to. Given that every transaction creates a new bootloader entry, AerynOS prunes all but the last 5 transactions from the bootloader list to keep it manageable.
46
46
47
47
### What are the implications of this?
48
48
49
-
On a Gnome based system, if you were to delete `gtk3`, `GDM`, and `gnome-shell` you would not be able to log back into the gnome session (as you've just deleted some really important part of the gnome session!). In this case, on boot you would be greeted by a linux console login prompt, which would only let you log into your user's command line shell, which is less than ideal.
49
+
On a Gnome based system, if you were to delete `gtk3`, `GDM`, and `gnome-shell` you would not be able to log back into the gnome session (as you've just deleted some really important part of the gnome session!). In this case, on boot you would be greeted by a Linux console login prompt, which would only let you log into your user's command line shell, which is less than ideal.
50
50
51
-
In AerynOS, instead of this scenario, you can enter the bootloader (by mashing your spacebar) on reboot, and in the bootloader, you can select the second to last entry and this will automatically switch to the `/usr` filesystem transaction where `gtk3`, `GDM` and `gnome-shell` had not yet been deleted. On activating this entry with the Enter key, you will boot back into a working GDM for a graphical user experience.
51
+
In AerynOS, instead of this scenario, you can enter the bootloader (by mashing your spacebar) on reboot, and in the bootloader. Select the second to last entry and this will automatically switch to the `/usr` filesystem transaction where `gtk3`, `GDM` and `gnome-shell` had not yet been deleted. On activating this entry with the Enter key, you will boot back into a working GDM for a graphical user experience.
52
52
53
-
Taking this a step further, if you were to remove `glibc`, given how integral it is to the functioning of AerynOS and how it specifically includes the `renameat2` function used by `moss` to complete transactions, the system would be left in a state where the atomic update did not complete and the whole system would be broken. In a traditional Linux distribution, this will be very difficult, if not impossible to resolve without resorting to a fresh re-install.
53
+
Taking this a step further, if you were to remove `glibc`, given how integral it is to the functioning of AerynOS and how it specifically includes the `renameat2` function used by `moss` to complete transactions, the system would be left in a state where the atomic update did not complete and the whole system would be broken. In a traditional Linux distribution, this will be very difficult, or impossible to resolve without resorting to a fresh reinstall.
54
54
55
-
In AerynOS, however, upon trying to boot into this last transaction, the system will discover that there is an issue with the transaction and will atomically roll back to the prior bootloader entry with the associated correct `/usr` directory that works. This rollback process only takes around a second (or a couple seconds, depending on your hardware) and you will automatically be dropped back into a live working AerynOS system.
55
+
In AerynOS, however, upon trying to boot into this last transaction, the system will discover that there is an issue with the transaction and will atomically roll back to the prior bootloader entry with the associated correct `/usr` directory that works. This rollback process only takes around a second (or a couple of seconds, depending on your hardware) and you will automatically be dropped back into a live working AerynOS system.
56
56
57
57
### Could this happen?
58
58
59
-
Whilst it is unlikely that a user would ever knowingly delete these very important packages (though it could happen), the more likely scenario on traditional Linux distributions is that there is a partial update that may have deleted very important aspects for a functioning system with the newer versions not having been yet installed before the update stopped. By the design features mentioned above, this is impossible on AerynOS.
59
+
Whilst it is unlikely that a user would ever knowingly delete these very important packages (though it could happen). The more likely scenario on traditional Linux distributions is that there is a partial update that may have deleted very important aspects for a functioning system with the newer versions not having been yet installed before the update stopped. By the design features mentioned above, this is impossible on AerynOS.
0 commit comments