summaryrefslogtreecommitdiff
path: root/shards.1.html
blob: 84f4d2b062f6d345a07c967600f35a1c14de5d8a (plain) (blame)
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>