1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="description" content="A page detailing Project Shards"/>
<link rel="stylesheet" href="./style.css" type="text/css" media="all"/>
<title>Shards(1)</title>
</head>
<body>
<script src="./antiChrome_Brave.js"></script>
<table class="head">
<tr>
<td class="head-ltitle">Shards(1)</td>
<td class="head-vol">General Commands Manual</td>
<td class="head-rtitle">Shards(1)</td>
</tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<table class="Nm">
<tr>
<td><code class="Nm">Project Shards</code></td>
<td>[shards] <var class="Ar">MacOS inspired</var>
<var class="Ar">Immutable</var> <var class="Ar">Linux
Distribution</var></td>
</tr>
</table>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp"><code class="Nm">Project Shards</code> is an immutable linux
distribution using multiple Volumes to create one system</p>
</section>
<section class="Sh">
<h1 class="Sh" id="How_it_works"><a class="permalink" href="#How_it_works">How
it works</a></h1>
<p class="Pp"><code class="Nm">Project Shards</code> utilizes multiple Volumes
(called Shards) to create one root using bind and overlay mounts</p>
<p class="Pp"></p>
</section>
<section class="Sh">
<h1 class="Sh" id="The_different_Shards"><a class="permalink" href="#The_different_Shards">The
different Shards</a></h1>
<p class="Pp"><code class="Nm">Project Shards</code> Consists of 6 Shards:</p>
<p class="Pp">- The Root shard acts like a preloader, it provides the special
root directories like /run or /dev and the initial tools for mounting the
other Shards and creating the proper root system</p>
<p class="Pp">- The Boot shard contains files and packages requir to boot on
real hardware this is mainly the bootloader and kernel</p>
<p class="Pp">- The System shard is the main root, it contains everything
required to boot into userspace and cannot be modified unless booted into
the recovery</p>
<p class="Pp">- Data Contains everything the user installs themselves or changes
on the root filesystem, it is mounted read-write and contains /etc</p>
<p class="Pp"></p>
<p class="Pp">- Users contains the home directories of all users, it is simply
bind mounted to /home on boot as read-write</p>
<p class="Pp"></p>
<p class="Pp">- The Recovery shard is a seperate system from the other shards,
it can be booted by itself. It contains the Graphical and Terminal based
recovery for updating, troubleshooting or reinstalling Project Shards</p>
<p class="Pp"></p>
<p class="Pp"></p>
</section>
<section class="Sh">
<h1 class="Sh" id="Package_Management"><a class="permalink" href="#Package_Management">Package
Management</a></h1>
<p class="Pp"><code class="Nm">Project Shards</code> uses a pacman wrapper
called shardctl to install and remove packages, however users can also enter
a special mode to use <b>pacman</b>(1) directly.</p>
<p class="Pp"><b>shardctl</b> also allows installing aur packages and wraps
around <b>apx</b>(1) to allow installing packages into containers.</p>
<p class="Pp"></p>
<p class="Pp"><code class="Nm">Project Shards</code> comes preinstalled with
flatpak and allows installing them by simply dragging the flatpakref files
into ~/Applications. This is achieved using <b>appD</b>.</p>
<p class="Pp"></p>
<p class="Pp"><b>appD</b> also allows installing pacman packages by dragging the
.pkg.tar.xz files into ~/Applications.</p>
<p class="Pp"></p>
</section>
<section class="Sh">
<h1 class="Sh" id="Updating"><a class="permalink" href="#Updating">Updating</a></h1>
<p class="Pp"><code class="Nm">Project Shards</code> uses the Recovery to
perform updates. When a user decides to update their
<code class="Nm">Project Shards</code> Installation, they get rebooted into
the Recovery which automatically starts the Update.</p>
<p class="Pp"></p>
<p class="Pp">If the Update is succesfull the Recovery either turns the computer
off or reboots it, depending on what the user chose when starting the
update.</p>
<p class="Pp">If the Update fails, then the recovery rolls back to a snapshot it
took before starting the update and warns the user next time it boots into
the main Project Shards installation.</p>
<p class="Pp"></p>
</section>
<section class="Sh">
<h1 class="Sh" id="Installing"><a class="permalink" href="#Installing">Installing</a></h1>
<p class="Pp"><code class="Nm">Project Shards</code> installs similiarly to
MacOS, the ISO offered for download is actually the recovery, when booting
into the iso the user is immediately presented with the Recovery screen and
can Install</p>
<p class="Pp"></p>
<p class="Pp">The installation process only asks the user for the disk to
install onto, any postinstall configurations usually set in the Installer,
like user creation, setting the timezone or choosing locales are done post
install in a first-setup application.</p>
<p class="Pp"></p>
</section>
<section class="Sh">
<h1 class="Sh" id="Images"><a class="permalink" href="#Images">Images</a></h1>
<p class="Pp"><code class="Nm">Project Shards</code> like other immutable
distributions uses images to distribute updates unlike other immutable
distributions however, <code class="Nm">Project Shards</code> does not
directly use OCI-Images, it uses flatpak packages as a type of ostree
frontend. This means that optimally the update process only consists of a
simple flatpak update to upgrade the system.</p>
<p class="Pp">Realistically this is not the case, since extra things such as
managing /etc will have to be done after the update</p>
<p class="Pp"></p>
</section>
<section class="Sh">
<h1 class="Sh" id="See_Also"><a class="permalink" href="#See_Also">See
Also</a></h1>
<div class="Pp">
<a class="Lk" href="index.html"><b>axtlos</b>(7)</a>
<a class="Lk" href="specs.7.html"><b>Specs</b>(7)</a>
<a class="Lk" href="crystal.1.html"><b>Crystal Linux</b>(1)</a>
<a class="Lk" href="lit.7.html"><b>Linux Immutability Tools</b>(1)</a>
</div>
</section>
</div>
<table class="foot">
<tr>
<td class="foot-date">CC BY-SA 4.0</td>
<td class="foot-os">Nixpkgs</td>
</tr>
</table>
</body>
</html>
|