diff --git a/assets/vanilla-os/1.png b/assets/vanilla-os/1.png new file mode 100644 index 0000000..30425fd Binary files /dev/null and b/assets/vanilla-os/1.png differ diff --git a/assets/vanilla-os/2.png b/assets/vanilla-os/2.png new file mode 100644 index 0000000..339e98a Binary files /dev/null and b/assets/vanilla-os/2.png differ diff --git a/blog/blendos.html b/blog/blendos.html index e60638f..f67c36a 100644 --- a/blog/blendos.html +++ b/blog/blendos.html @@ -104,8 +104,7 @@ (as used by Fedora atomic); instead, it just completely rebuilds the system every single time. Because of this, it takes a long time to run the updater/rebuilder, even to just install one more - package.3

+ package.

Besides that, my only complaints are:

  1. The akshara's (the update/rebuild tool) major @@ -184,23 +183,13 @@ actually inherits from the gnome track.↩︎

  2. -
  3. In the meantime while I've been writing this, a - community member has implemented AUR package caching, which - can definitely cut down on the build time by a lot, depending on - how many packages you're using from the AUR. However, this - hasn't been added to the upstream version of Akshara yet, though - through no fault of the blendOS team; as far as I know, the dev - who implemented it just hasn't sent it over to be added yet.↩︎

diff --git a/blog/vanilla-os.html b/blog/vanilla-os.html new file mode 100644 index 0000000..a997788 --- /dev/null +++ b/blog/vanilla-os.html @@ -0,0 +1,121 @@ + + + + + + OCI Images as a "Filesystem": Vanilla OS + + + + +

OCI Images as a + "Filesystem": Vanilla OS

+

In looking for a layered solution to blendOS's issues, I + found that the lead maintainer and creator of blendOS was + looking into using OCI images, and has even forked a repo from + Vanilla OS. So I'm trying out Vanilla OS's usage of OCI images + (which are inherently layered) to see about implementing a + similar system in blendOS.

+

Installation

+

Installation is pretty simple, you're again dropped into a + simple GNOME session with a GTK installer:

+ A basic GNOME session with a white GTK-based installer; it's showing the date and time/time zone selector. +

The process was very similar to blendOS's, though it also + detects virtual machines and offers an option to install tools + (e.g. clipboard sharing, video drivers) to help with that.

+

Another notable bit is that it requires more space than + blendOS, with a minimum disk size of 50 GB, but given its A/B + slot architecture (which I'll get to later), this makes + sense.

+

First boot

+

On first boot, there's a very similar setup tool, surely + based off the installer. It makes you put in your language, + timezone, etc. again, which I was a bit annoyed by, but it's no + big deal. Then it has you create your login, select what you + want installed (from basic programs like a calendar, office + suite, etc.), then restarts and does all that.

+ A similar wizard to the installer; it has the Vanilla OS logo and says "Welcome", "Make your choices, this wizard will take care of everything" +

Then you just get a little slideshow detailing automatic + updates, its Apx package manager, and other basics, nothing + interesting, and nothing I care about.

+

Usage and configuration

+

I tried checking the docs (Vanilla OS Docs), which + by themselves were difficult to find. They're a bit hidden in + "Help" despite being absolutely essential to using this + distro[^1]. But what I found easily was screenshots of + Overwatch. (Vanilla OS)

+

Regardless, once I found the docs, I tried to figure out how + it worked, and I was still very confused. After looking over it + again, I decided to check Apx's docs, its package manager, and + found how to install packages, of course. (Vanilla OS + Docs) I tried to install GParted; after it not running at + first due to Vanilla OS not being configured correctly and not + showing a password prompt for it, causing GParted to exit, I ran + it in the terminal with sudo, just to get a + permission denied error. That's because all packages are + installed in containers, there is no system package manager... + kinda.

+

ABRoot

+

ABRoot is the magic behind Vanilla OS's OCI image backend. As + far as I can tell (again, I don't believe there are no relevant + for docs for this) it essentially generates a tarball of the + relevant data for the new iteration, then symlinks to either + that or the current iteration on boot, depending on what the + user selects. It provides essentially no advantages over + blendOS's approach, and is, in my opinion, massively + overcomplicated. (GitHub: Vanilla-os/abroot)

+

It also acts as a package manager of sorts - it's the only + way to install packages system-wide on Vanilla OS, and it does + this by running apt when the new image is built, + similar to Akshara.

+

ABRoot's config file is at + /etc/abroot/abroot.json, but it doesn't support + declarative system-wide packages. Instead, run the + following:

+
abroot pkg add $PACKAGE_NAME
+

(Install additional drivers and libraries in Vanilla + OS)

+

Conclusion

+

Vanilla OS wasn't very helpful as to OCI-based layers, but I + don't think it was a complete waste of time. Vanilla OS gave me + some ideas, and I like its backend's ideas; it will most likely + serve as inspiration for when I add layers to blendOS. Plus, my + idea would have an advantage: compression.

+

But I'll get into it later, once it's a bit more fleshed out; + plus, that's not the point of this post anyways.

+

P.S. I can't get it across while keeping this post decent + quality and on-topic, but I need to emphasize how confusing the + docs were for Vanilla OS. It feels like they try to appeal to + users with basic tech literacy while not explaining how it + actually works or what anything does. They write how-to guides, + not documentation.

+

Footnotes

+

[^1] Below the big download button, there's a link to the + installation guide, but this provides nothing helpful, it just + guides you through the already extremely simple + installation.

+

Sources

+

“Install Additional Drivers and Libraries in Vanilla OS.” + Vanilla OS Docs, Vanilla OS, docs.vanillaos.org/handbook/en/install-additional-drivers. + Accessed 19 Sept. 2024.
+ “Vanilla OS Docs.” Vanilla OS, Vanilla OS, docs.vanillaos.org/collections/docs. + Accessed 19 Sept. 2024.
+ Vanilla OS, vanillaos.org. Accessed 19 + Sept. 2024.
+ Vanilla-OS. “GitHub: Vanilla-Os/Abroot.” GitHub, github.com/Vanilla-OS/ABRoot. + Accessed 19 Sept. 2024.

+ + + + + diff --git a/blog/vanilla-os.md b/blog/vanilla-os.md new file mode 100644 index 0000000..256fce0 --- /dev/null +++ b/blog/vanilla-os.md @@ -0,0 +1,60 @@ +# OCI Images as a "Filesystem": Vanilla OS + +In looking for a layered solution to blendOS's issues, I found that the lead maintainer and creator of blendOS was looking into using OCI images, and has even forked a repo from Vanilla OS. So I'm trying out Vanilla OS's usage of OCI images (which are inherently layered) to see about implementing a similar system in blendOS. + +## Installation + +Installation is pretty simple, you're again dropped into a simple GNOME session with a GTK installer: + +![A basic GNOME session with a white GTK-based installer; it's showing the date and time/time zone selector.](/assets/vanilla-os/1.png) + +The process was very similar to blendOS's, though it also detects virtual machines and offers an option to install tools (e.g. clipboard sharing, video drivers) to help with that. + +Another notable bit is that it requires more space than blendOS, with a minimum disk size of 50 GB, but given its A/B slot architecture (which I'll get to later), this makes sense. + +## First boot + +On first boot, there's a very similar setup tool, surely based off the installer. It makes you put in your language, timezone, etc. again, which I was a bit annoyed by, but it's no big deal. Then it has you create your login, select what you want installed (from basic programs like a calendar, office suite, etc.), then restarts and does all that. + +![A similar wizard to the installer; it has the Vanilla OS logo and says "Welcome", "Make your choices, this wizard will take care of everything"](/assets/vanilla-os/2.png) + +Then you just get a little slideshow detailing automatic updates, its Apx package manager, and other basics, nothing interesting, and nothing I care about. + +## Usage and configuration + +I tried checking the docs (*Vanilla OS Docs*), which by themselves were difficult to find. They're a bit hidden in "Help" despite being *absolutely essential* to using this distro[^1]. But what I found easily was screenshots of Overwatch. (*Vanilla OS*) + +Regardless, once I found the docs, I tried to figure out how it worked, and I was still very confused. After looking over it again, I decided to check Apx's docs, its package manager, and found how to install packages, of course. (*Vanilla OS Docs*) I tried to install GParted; after it not running at first due to Vanilla OS not being configured correctly and not showing a password prompt for it, causing GParted to exit, I ran it in the terminal with `sudo`, just to get a permission denied error. That's because all packages are installed in containers, there is no system package manager... kinda. + +### ABRoot + +ABRoot is the magic behind Vanilla OS's OCI image backend. As far as I can tell (again, I don't believe there are no relevant for docs for this) it essentially generates a tarball of the relevant data for the new iteration, then symlinks to either that or the current iteration on boot, depending on what the user selects. It provides essentially no advantages over blendOS's approach, and is, in my opinion, massively overcomplicated. (*GitHub: Vanilla-os/abroot*) + +It also acts as a package manager of sorts - it's the only way to install packages system-wide on Vanilla OS, and it does this by running `apt` when the new image is built, similar to Akshara. + +ABRoot's config file is at `/etc/abroot/abroot.json`, but it doesn't support declarative system-wide packages. Instead, run the following: + +```bash +abroot pkg add $PACKAGE_NAME +``` + +(*Install additional drivers and libraries in Vanilla OS*) + +## Conclusion + +Vanilla OS wasn't very helpful as to OCI-based layers, but I don't think it was a complete waste of time. Vanilla OS gave me some ideas, and I like its backend's ideas; it will most likely serve as inspiration for when I add layers to blendOS. Plus, my idea would have an advantage: compression. + +But I'll get into it later, once it's a bit more fleshed out; plus, that's not the point of this post anyways. + +P.S. I can't get it across while keeping this post decent quality and on-topic, but I need to emphasize how confusing the docs were for Vanilla OS. It feels like they try to appeal to users with basic tech literacy while not explaining how it actually works or what anything does. They write how-to guides, not documentation. + +## Footnotes + +[^1] Below the big download button, there's a link to the installation guide, but this provides nothing helpful, it just guides you through the already extremely simple installation. + +## Sources + +“Install Additional Drivers and Libraries in Vanilla OS.” *Vanilla OS Docs*, Vanilla OS, [docs.vanillaos.org/handbook/en/install-additional-drivers](https://docs.vanillaos.org/handbook/en/install-additional-drivers). Accessed 19 Sept. 2024.\ +“Vanilla OS Docs.” *Vanilla OS*, Vanilla OS, [docs.vanillaos.org/collections/docs](https://docs.vanillaos.org/collections/docs). Accessed 19 Sept. 2024.\ +*Vanilla OS*, [vanillaos.org](https://vanillaos.org). Accessed 19 Sept. 2024.\ +Vanilla-OS. “GitHub: Vanilla-Os/Abroot.” *GitHub*, [github.com/Vanilla-OS/ABRoot](github.com/Vanilla-OS/ABRoot). Accessed 19 Sept. 2024. diff --git a/feed.xml b/feed.xml index 3798c00..9322e12 100644 --- a/feed.xml +++ b/feed.xml @@ -5,7 +5,15 @@ eng.askiiart.net This is the feed for engl.askiiart.net, I guess https://askiiart.net - Mon, 02 Sep 2024 04:10:52 +0000 + Thu, 19 Sep 2024 15:42:25 +0000 + + Glossary + https://engl.askiiart.net/glossary.html + + + OCI Images as a "Filesystem": Vanilla OS + https://engl.askiiart.net/blog/vanilla-os.html + Checking out blendOS https://engl.askiiart.net/blog/blendos.html diff --git a/generate-sitemap.sh b/generate-sitemap.sh index c77d30f..fee6bc6 100755 --- a/generate-sitemap.sh +++ b/generate-sitemap.sh @@ -1,30 +1,20 @@ #!/usr/bin/env bash -### Stolen from TCCD-CompSci-and-Coding-Club/website on Codeberg (also written by me) - -# Taken from here and modified: https://www.lostsaloon.com/technology/how-to-create-an-xml-sitemap-using-wget-and-shell-script/ +# Based on this: https://www.lostsaloon.com/technology/how-to-create-an-xml-sitemap-using-wget-and-shell-script/ # (https://web.archive.org/web/20231202193251/https://www.lostsaloon.com/technology/how-to-create-an-xml-sitemap-using-wget-and-shell-script/) (https://archive.ph/qtdMP) -sitedomain=https://engl.askiiart.net/ +sitedomain=https://engl.askiiart.net dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) -wget --spider --recursive --level=inf --output-file=$dir/linklist.txt $sitedomain -# greps for the relevant lines, gets the URLs, gets only the lines for $sitedomain, and sorts them -# wget's output changed, so this line had to be updated -# also, not sure why it ends up working, since there's a leading space in the lines after `awk` runs, but it works soooo i'mnot gonna mess with it -grep "Adding URL:" $dir/linklist.txt | awk -F 'Adding URL:' '{print $2}' | grep "$sitedomain" | sort -u >$dir/sortedurls.txt header='' echo $header >sitemap.xml -while read p; do - case "$p" in - */ | *.html | *.htm) - echo ''$p'' >>sitemap.xml - ;; - *) ;; - esac -done <$dir/sortedurls.txt -echo "" >>sitemap.xml -rm $dir/linklist.txt -rm $dir/sortedurls.txt + +find . -name "*.md" | while read -r item; do + item="${item:2}" + item="${item%.*}" + echo ''${sitedomain}/${item}.html'' >>sitemap.xml +done + +echo "" >> sitemap.xml \ No newline at end of file diff --git a/glossary.html b/glossary.html new file mode 100644 index 0000000..20f96e2 --- /dev/null +++ b/glossary.html @@ -0,0 +1,92 @@ + + + + + + Glossary + + + + +

Glossary

+ + + + + + diff --git a/glossary.md b/glossary.md new file mode 100644 index 0000000..9fa807d --- /dev/null +++ b/glossary.md @@ -0,0 +1,27 @@ +# Glossary + +- Linux: An open-source family of operating systems + - Linux distro (distribution): One of the operating systems in the Linux family (i.e. using the Linux kernel) +- OCI: Open Container Initiative; a project for open-source standardization of containers +- Containers: An isolated environment to run programs, great for avoiding conflicting dependencies and for ease-of-use +- Container image: The base filesystem of a container + - OCI image: The OCI's standard for container images, used by essentially all Linux container platforms +- AUR: Arch User Repository, a repository for Arch Linux packages which are maintained by users. AUR only hosts computer-readable instructions and related files (via `PKGBUILD` files) for creating the packages, not the packages or programs themselves +- Filesystem: The system which keeps track of how data is written to disk, like NTFS, FAT32, or ext4. Some filesystems, like ZFS or btrfs, have extra features like redundancy or compression.![alt text](image.png) +- Git: The most common version control system by far - keeps track of different versions of files, can be used to resolve conflicting changes, etc. + - Forking: Copying a Git repository and adding your own stuff to it. Can be simply to contribute the changes back to the upstream project later, or to use something as a base for your own project. +- Repository: Usually refers to either a Git repository (i.e. a Git project), or a server hosting packages to be installed by a package manager. +- GUI toolkit: A set of programs used for making graphical interfaces + - Qt: A GUI toolkit with an appearance similar to normal Windows interfaces; pronounced "cute" + - GTK: A more (literally) rounded GUI toolkit, hated by some for its programs usually having highly excessive whitespace and poor design (though there are some exceptions) +- Window manager: The program which keeps track of and determines where each program's window(s) go. +- Desktop Environment: A window manager, programs, and configurations, all wrapped up into a bundle, providing a comprehensive desktop. + - GNOME: A popular GTK-based extensible desktop environment. +- Virtual machine: A virtual computer. +- Partition: A part of a disk. For example, modern computers have a small boot partition and a big partition holding all the actual data. +- GParted: GNOME's partition manager - and my favorite partition manager. +- `sudo`: Super user do; runs a command as `root`, Linux's admin account. +- Tarball: An archive of data, preserving its file and directory structure. Not compressed, though its tools come with options to compress it after generation. +- `apt`: The package manager for Debian-based Linux distros. +- blendOS: "Arch Linux, made declarative, immutable and atomic." + - Akshara: blendOS's system rebuilder \ No newline at end of file diff --git a/index.html b/index.html index 476aeff..cdab9b9 100644 --- a/index.html +++ b/index.html @@ -19,7 +19,7 @@ diff --git a/sitemap.xml b/sitemap.xml index 57abda1..e2dc273 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,3 +1,6 @@ +https://engl.askiiart.net/index.html +https://engl.askiiart.net/glossary.html +https://engl.askiiart.net/blog/vanilla-os.html https://engl.askiiart.net/blog/blendos.html diff --git a/template.html b/template.html index 23a1652..3887436 100644 --- a/template.html +++ b/template.html @@ -2,7 +2,6 @@ - $title$ @@ -13,7 +12,7 @@