mirror of
https://github.com/cowmonk/cowmonk.github.io.git
synced 2025-10-27 14:43:26 +00:00
129 lines
9.8 KiB
HTML
129 lines
9.8 KiB
HTML
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<meta charset="utf-8" />
|
|
<title>Announcing CSFS!</title>
|
|
<link rel="stylesheet" href="template.css" />
|
|
<link rel="alternate" href="atom.xml" type="application/atom+xml" title="Atom Feed" />
|
|
<link rel="apple-touch-icon" sizes="180x180" href="../assets/images/apple-touch-icon.png" />
|
|
<link rel="icon" type="image/png" sizes="32x32" href="../assets/images/favicon-32x32.png" />
|
|
<link rel="icon" type="image/png" sizes="16x16" href="../assets/images/favicon-16x16.png" />
|
|
<link rel="manifest" href="../assets/images/site.webmanifest" />
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<h1><a href="./">cowmonk's random blogs</a></h1>
|
|
<nav class="sblg-nav">
|
|
<span class="prevnext ">
|
|
<a href="blog1.html"><-newer</a>
|
|
</span>
|
|
<span class="prevnext sblg-next-has">
|
|
<a href="blog4.html">older-></a>
|
|
</span>
|
|
</nav>
|
|
</header>
|
|
<section>
|
|
<h3 style="color:yellow">Announcing CSFS!</h3>
|
|
<p>
|
|
<q>Official announcement to a new project that I'm currently working on.</q>
|
|
</p>
|
|
<p>
|
|
Published by
|
|
<span class="name">cowmonk</span>
|
|
on
|
|
<time datetime="2025-10-07">2025-10-07</time>
|
|
</p>
|
|
<article data-sblg-article="1" data-sblg-tags="misc suckless linux">
|
|
<header>
|
|
<h2>Announcing CSFS!</h2>
|
|
<aside>Official announcement to a new project that I'm currently working on.</aside>
|
|
<address>cowmonk</address>
|
|
<time datetime="2025-10-07">2025-10-07</time>
|
|
</header>
|
|
<h2 id="what-is-csfs">What is CSFS?</h2>
|
|
<p>CSFS stands for Cowmonk’s Suckless From Scratch. It’s a guide inspired by <a href="https://www.linuxfromscratch.org/">Linux From Scratch</a>, but with a distinct philosophical goal:
|
|
to build a functional Linux system by replacing as many core components as possible with suckless-aligned alternatives.</p>
|
|
<p>This means moving away from GNU’s ubiquity and other common choices. For instance, instead of <code>sysvinit</code>, it’ll be using <code>sinit</code> instead.
|
|
Furthermore staples like glibc and the broader GNU toolchain, will be replaced with more minimal and focused replacements.</p>
|
|
<p><strong>BUT</strong>! CSFS is NOT:</p>
|
|
<ul>
|
|
<li><strong>a smaller <a href="https://github.com/oasislinux/oasis">oasis linux</a></strong>: While Oasis is an excellent example of a minimal, statically-linked Linux system, CSFS has different goals and may make different compromises.</li>
|
|
<li><strong>an unusable daily driver</strong>: The aim is to create a system that can be used for everyday tasks, not just a theoretical exercise.</li>
|
|
<li><strong>a TTY-only distro</strong>: While the simplicity of the terminal is superior, the goal is a graphical environment.</li>
|
|
<li><strong>devoid of any “bloat”</strong>: What constitutes “bloat” is subjective, and we will be making pragmatic choices.</li>
|
|
<li><strong>not “suckfull-free” in the end…</strong>: As we’ll discuss, achieving a purely “suckless” state is practically impossible.</li>
|
|
</ul>
|
|
<h2 id="sounds-cool-but">Sounds cool but…</h2>
|
|
<p>Understandably, after hearing that my suckless from scratch is NOT “fully suckless”. Then is it really suckless?</p>
|
|
<p>Let’s be honest: all software sucks. This is a sentiment echoed within the suckless community and beyond. Linux itself, while powerful, is considered by some to be bloated.
|
|
The influencial <a href="https://harmful.cat-v.org/software/operating-systems/linux/">cat-v website, is critical of Linux</a>, but they also state that all OSes ever created sucks.
|
|
Pretty pessimistic. However, despite this fact, we are not using “harm-less” software, we are using “suckless” software.</p>
|
|
<p>Compromises are always made, in the pursuit of a “perfect” suckless ecosystem, we must build everything from scratch, including the OS.
|
|
No one in their right mind wants to write a new OS from scratch to use as a daily driver. Neither does one want to give up some aspects
|
|
of their respective lives to use some stupid tty, where you can only edit txt documents. But at that point, maybe even the FS is considered
|
|
bloat unless you replace it with some 1980s implementation and write byte by byte.</p>
|
|
<p>A prime example of this necessary compromise is the Xorg display server. Many in the suckless community would agree that Xorg is <a href="http://www.art.net/~hopkins/Don/unix-haters/x-windows/disaster.html">massive and convoluted</a>,
|
|
with a codebase of around 420,000 lines. Yet, many of us who use minimalist tiling window managers like <code>dwm</code> still rely on it. Why? Because compromises are inevitable in the pursuit of a usable system.</p>
|
|
<blockquote>
|
|
<p><em>“Then do we give up in this pursuit of minimal software?”</em></p>
|
|
<p>Of course not!</p>
|
|
</blockquote>
|
|
<p>Why do we use Linux instead of Windows or MacOS (other than privacy concerns)? Why do we use tiling WMs instead of KDE or GNOME? For the
|
|
DIY distros, other than customizability, why do we enjoy the “manual” install?</p>
|
|
<p>At least for me, I found the answer lies in appreciation of minimal software. Simple, yet elegant. One of the first steps in suckless is to
|
|
reject systemd. Some people may criticize this and call you stupid or dumb. However, for people like me, we see that the Goliath known as
|
|
systemd rejects KISS and Unix philosophy, ultimately bringing us closer to what we wanted to avoid: Windows.</p>
|
|
<p>Suckless is not about removing all the “suck”, but reducing it, making it suck LESS.</p>
|
|
<blockquote>
|
|
<p><em>“Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away”</em></p>
|
|
<p>— Antoine de Saint-Exupéry</p>
|
|
</blockquote>
|
|
<h2 id="goals">Goals</h2>
|
|
<p>The primary goal of CSFS is to produce a clear, well-documented, and repeatable guide for building a minimal Linux system from source. This guide will walk through every step,
|
|
from preparing the build environment to compiling the kernel, setting up the base system, and configuring a graphical environment.</p>
|
|
<p>The final product will be:</p>
|
|
<ul>
|
|
<li><strong>A Living Document</strong>: The guide will be maintained in a public Git repository and will evolve over time.</li>
|
|
<li><strong>A Base System</strong>: A bootable, functional base that others can use as a foundation for their own suckless-inspired systems.</li>
|
|
<li><strong>An Educational Tool</strong>: A resource for learning how a Linux system is assembled from the ground up, with a focus on minimalist components.</li>
|
|
</ul>
|
|
<p>Like Linux From Scratch, there will also be a Beyond version where it expands to include the compilation of the GUI and other tad-bits such as gaming.
|
|
So the earlier comment of a TTY-only distro isn’t fully inaccurate, since the base system will obviously be very small compared to the full Beyond version.</p>
|
|
<h2 id="contributing-helping-out">Contributing & Helping out</h2>
|
|
<p>This is not a solo mission! Open-source is about collaboration, and CSFS will be much better with community involvement! Here’s how you can help:</p>
|
|
<ol>
|
|
<li><strong>Documentation and Writing</strong> - catching typos, grammatical errors, and unclear phrasing. If you are incredible with LaTeX, I appreciate any contributions in that front to make it look nicer.</li>
|
|
<li><strong>Testing and Feedback</strong> - real-world testing is crucial. You can try building it yourself using your own hardware (or in a VM), and report any bugs; opening a detailed issue is incredibly helpful. And if you know of a better, more minimal piece of software that CSFS could use, let me know!</li>
|
|
<li><strong>Development</strong> - For those who can code, you can help via writing scripts to improve the base system. Furthermore, you can submit any patches that improve or fix any software components CSFS uses.</li>
|
|
</ol>
|
|
<p>You can find the project <a href="https://github.com/cowmonk/CSFS">here</a>. There are some other notes and tad-bits if you want to hear more about what CSFS is and other decisions that
|
|
I’ve decided to make.</p>
|
|
<h2 id="closing">Closing</h2>
|
|
<p>I know that some of you are expecting LearnixOS or updates on CowOS. Don’t worry, those projects are mostly in haitus and they haven’t been abandoned. For LearnixOS, it’s mostly burn-out, it’s the same
|
|
for pretty much all developers. We will eventually get back to work, so be on the lookout! For CowOS, making an OS from scratch in C has really taken a toll on my mind.</p>
|
|
<p>So, why start a new project now?</p>
|
|
<p>The answer is simple: scope and sanity. CSFS is a fundamentally different kind of challenge, and much more bite-sized. Unilke LearnixOS, this project isn’t reliant on utilities written from scratch. Which should make it
|
|
a lot easier to compile the base system since there’s already millions of alternatives that should fit the bar.</p>
|
|
<p>Thank you for your patience. I’ve been taking some time away from the screen to touch grass, and I’m returning with renewed focus. I’m incredibly excited to dive into CSFS and hope you’ll join me on this journey.</p>
|
|
<p>See you next time! KISS.</p>
|
|
<p>– cowmonk</p>
|
|
</article>
|
|
<p class="tags">
|
|
Tags: <span class="sblg-tag">misc</span><span class="sblg-tag">suckless</span><span class="sblg-tag">linux</span>.
|
|
</p>
|
|
</section>
|
|
<nav>
|
|
<span class="prevnext ">
|
|
<a href="blog1.html"><-newer</a>
|
|
</span>
|
|
<span class="prevnext sblg-next-has">
|
|
<a href="blog4.html">older-></a>
|
|
</span>
|
|
</nav>
|
|
<footer>
|
|
<a href="https://www.vim.org/"><img src="https://cyber.dabamos.de/88x31/vim.vialle.love.anim.gif" alt="description" height="31" /></a> <img src="https://88x31.kate.pet/madeon_linux.gif" height="31" /> <img src="https://cyber.dabamos.de/88x31/javascript-zero.gif" height="31" />
|
|
</footer>
|
|
</body>
|
|
</html>
|