diff --git a/docs/blog/posts/prealpha0-released.md b/docs/blog/posts/prealpha0-released.md new file mode 100644 index 0000000..0ecd999 --- /dev/null +++ b/docs/blog/posts/prealpha0-released.md @@ -0,0 +1,80 @@ +--- +title: "Serpent OS Prealpha0 Released" +date: 2024-08-01T01:18:07+00:00 +draft: false +type: "post" +authors: [ikey] +categories: [news] +--- + +Well, it didn't take us that long, **really** ... Our technical preview, *prealpha0*, is now available for testing! + +![wip boot code](../../static/img/blog/prealpha0-released/prealpha0.png) + + + +This is a super rough version of Serpent OS that is *capable* of being installed on baremetal hardware and VMs that +support UEFI and OpenGL acceleration. It is however not *recommended* for use daily due to the early nature and a bunch +of packages being wildly out of date. It features a minimal GNOME desktop with the Firefox web browser and a terminal. + +Right now it contains a CLI installer that can be accessed from the terminal by typing: + +```bash +sudo lichen +``` + +To detract from casual use it is necessary to manually partition the disk before running the (net) installer. You can use +`fdisk` to create a GPT disk with a (mandatory) `EFI System Partition` and an optional `XBOOTLDR` partition. This currently +also needs to be FAT32 until we integrate systemd-boot driver support. Lastly of course you will need a large enough root +partition. + +You will need a working network connection, so make sure you're connected before starting the installer! + + +## Technologies involved + +This will of course appear to be a very rough (crap) prealpha ISO. Underneath the surface it is using the [moss](https://github.com/serpent-os/moss) +package manager, our very own package management solution written in Rust. Quite simply, every single transaction in moss generates +a new filesystem tree (`/usr`) in a staging area as a full, stateless, OS transaction. + +### moss + +When the package installs succeed, any *transaction triggers* are run in a private namespace (container) before finally activating +the new `/usr` tree. Through our enforced stateless design, `usr-merge`, etc, we can atomically update the running OS with a single `renameat2` +call. + +As a neat aside, all OS content is deduplicated, meaning your last system transaction is still available on disk allowing offline rollbacks. + +Translated: Like A/B swaps? Don't like rebooting? ... Ok that explained it. + +### blsforme + +A few crates deep we find [blsforme](https://github.com/serpent-os/blsforme) - a library for automatically managing the ESP and XBOOTLDR +partitions. Whenever kernels and associated files are present in the OS filesystem, they are synchronised to the boot partitions along +with automatically generated boot entries and cmdlines. Specifically this means moss can discover and mount necessary partitions according to +the disk topology, GPT entries, and Boot Loader Specification, generating configurations by scanning your local rootfs to build the proper +`root=` parameters for you. + +Translated: Magic boot management makes way for offline rollbacks. + +## Warning + +Super **pre**-alpha. Will 100% break! We just wanted you for the journey <3 + +## Start of public iterations + +Ok you have this super rough ISO, what next? We now have an actual *startpoint* and will continue to iterate on the ISOs, +delivering new installer updates/improvements and removing the unnecessary live mode from the ISO completely. + +The next release will also feature more installer options so you can fresh-install the Cosmic Desktop (in repos now) +For the brave, go forth and `sudo moss sync -u` ! (ok you want `moss help` first.) + +## Closing word + +As a distro, it's kinda crap right now. The tooling has been our focus for years and now we can actually build something +with it. With only a handful of packages, `flatpak` is your best friend. Or you could swing a PR into our [recipes](https://github.com/serpent-os/recipes) repo! + +The project is only possible with your support. Something tells me that putting out this ISO is going to somewhat increase +our hosting costs and stress the datacenter hamsters. + +Feel free to [sponsor](https://github.com/sponsors/ikeycode) to support our work and increase our capacity! diff --git a/docs/download.md b/docs/download.md index 9162860..c1d0e17 100644 --- a/docs/download.md +++ b/docs/download.md @@ -12,6 +12,12 @@ hide: They should not yet be used in general production. +=== "Installable ISOs" + + | Filename | Issued | SHA256 | + |---------------------------------------------------------------------------------------|-----------|--------------------------------------------------------------------| + | [serpent-os-prealpha-0.iso](https://download.serpentos.com/serpent-os-prealpha-0.iso) |2024-08-01 | `a4ef4529614095cd76bd30ee73f3b00d7414a745fa96b11bc0483cee3d8f14b9` | + === "KVM ISOs" | Filename | Issued | SHA256 | diff --git a/docs/index.md b/docs/index.md index 8b65c0a..835fe12 100644 --- a/docs/index.md +++ b/docs/index.md @@ -33,12 +33,6 @@ there's something for everyone. As a project, we care deeply about **how things work** - so our primary goal is to improve the automation and tooling used by our developers and contributors to streamline delivery of features and updates to our users. -!!! danger "Serpent OS is in active, heavy development" - - We welcome all contributions at this stage of our development, as we transition from prototypes to deliverables, - especially with our transition to Rust. With the integration of system triggers nearing, we'll begin to publish - frequent desktop ISOs and OCI images for dog-fooding purposes. - ## Meet the tools We said we care deeply - and this is made a reality through our tooling. Whether it's package builds, orchestration of updates, @@ -62,7 +56,7 @@ We leverage the fastest technologies and techniques to provide *ridiculously* fa - [xxHash](https://xxhash.com) for content addressable hashes. Zip! - [Zstandard](https://github.com/facebook/zstd) for package compression, kernel modules, firmware, etc. - Upcoming: [BLAKE3](https://github.com/BLAKE3-team/BLAKE3) for verification! - + #### :lock: Safer - :crab: Core tooling is written in Rust, with support tooling in the process of being ported. Memory safe with extremely fast execution. diff --git a/docs/static/img/blog/prealpha0-released/prealpha0.png b/docs/static/img/blog/prealpha0-released/prealpha0.png new file mode 100644 index 0000000..01497c5 Binary files /dev/null and b/docs/static/img/blog/prealpha0-released/prealpha0.png differ