<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Achinthya J</title>
    <description>The latest articles on DEV Community by Achinthya J (@achinthya_j_a8e7f8e62f3aa).</description>
    <link>https://dev.to/achinthya_j_a8e7f8e62f3aa</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4115878%2Fbb6c484f-857a-4125-bd81-dd437260edb3.png</url>
      <title>DEV Community: Achinthya J</title>
      <link>https://dev.to/achinthya_j_a8e7f8e62f3aa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/achinthya_j_a8e7f8e62f3aa"/>
    <language>en</language>
    <item>
      <title>How I built a Linux Distribution from scratch for my sister</title>
      <dc:creator>Achinthya J</dc:creator>
      <pubDate>Tue, 08 Sep 2026 15:47:48 +0000</pubDate>
      <link>https://dev.to/achinthya_j_a8e7f8e62f3aa/how-i-built-a-linux-distribution-from-scratch-for-my-sister-4d5d</link>
      <guid>https://dev.to/achinthya_j_a8e7f8e62f3aa/how-i-built-a-linux-distribution-from-scratch-for-my-sister-4d5d</guid>
      <description>&lt;p&gt;Before you read this I want to express that this is my first blog ever and I have no previous experience of writing blogs&lt;/p&gt;

&lt;h2&gt;
  
  
  How it was decided
&lt;/h2&gt;

&lt;p&gt;I wanted to make something truly fascinating as a gift for my sister.&lt;br&gt;
She inspired me to start coding, and so I decided that I will build an Operating System for her.&lt;/p&gt;

&lt;p&gt;This was going to be hard and something that I would prefer working on even not as a gift. And then began Project Leviathan&lt;/p&gt;

&lt;h2&gt;
  
  
  What I chose
&lt;/h2&gt;

&lt;p&gt;I first took a look at the available options, I could try archiso which was nice to try but for me it wasn't something I would want to consider as mine. On the other end, trying to build a kernel, initramfs, and other core components of an OS all by myself was beyond what I could build in a week.&lt;/p&gt;

&lt;p&gt;So it was decided,I was going to use the linux kernel, but would build the userspace, drivers, graphics stack, and others by myself basically a Linux Distribution&lt;/p&gt;

&lt;h2&gt;
  
  
  First steps
&lt;/h2&gt;

&lt;p&gt;First I began researching on what I really needed to build a Linux Distribution. For most of the research of it I used ChatGPT. Also in order to build a OS I need to learn C. I settled with the basics, pointers, and other stuff.&lt;/p&gt;

&lt;p&gt;And then it began, I started with a simple directory and grub configurations along with my linux kernel &lt;strong&gt;linux-6.8.0-138-generic&lt;/strong&gt; kernel, so that grub would find and detect it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Userspace
&lt;/h2&gt;

&lt;p&gt;Since pretty much every part of it was still from my ubuntu installation, the first userspace was just a Busybox shell provided by my installation. But of course I had to change it. I started with a simple virtual userspace using the TTY subsystem of linux with just echo and cat, according to me quite a important feature. &lt;/p&gt;

&lt;p&gt;After quite a bit I got it working, and therefore had my first ever minimal userspace. It still worked on busybox but the TTY only worked with my commands. Soon enough I removed Busybox entirely and at added other essential commands such as ls, rm, copy, mkdir, and pwd.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi42kj23tp1nzkjij9n75.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi42kj23tp1nzkjij9n75.png" alt=" " width="799" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The first graphics stack
&lt;/h2&gt;

&lt;p&gt;Since most of my TTY was done, I figured it was a good time to get started on the graphics stack. First it started with a simple graphics stack. With a simple picture of a leviathan. Then I went ahead and built an animated leviathan(2d) then I soon went ahead and built a 3d renderer of a leviathan with splines and nodes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The First UI
&lt;/h2&gt;

&lt;p&gt;It was soon time to build the UI itself. If I needed a OS I need some UI to make it actually run software. I started with a regular UI in C language. But for me it seemed to inefficient so I switched to Rust which provided more capabilities. This wasn't a thoughtful decision but it seemed right. And within a few hours I had the first UI in rust. It was simply a terminal and a settings app. &lt;/p&gt;

&lt;h2&gt;
  
  
  The Package Manager
&lt;/h2&gt;

&lt;p&gt;This was one of the most difficult part of the project for now. It took me a long time to figure out apt package manager, due to a lot of dpkg errors and dependency errors. I hadn't researched properly enough and was trying to force my own apt package manager from my host OS into Leviathan. But then I eventually found debootstrap and utilized it for apt package manager.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Window Manager
&lt;/h2&gt;

&lt;p&gt;Well I did get the package manager running to use software but without a window manager, the apps essentially wouldn't even launch. Hence, I had to build a window manager which was able to run all kinds of apps properly with the use of essential drivers. &lt;/p&gt;

&lt;h2&gt;
  
  
  The fun part
&lt;/h2&gt;

&lt;p&gt;Now it came to finally customizing it to my sister's liking. First I needed a cinematic... Yes... the kind you see in games. And because it was a birthday gift I had to make it birthday themed. I got a cute 2d cat image from the internet and generated a warm feeling room with a table using leanardo.ai and then came the birthday song I got the song randomly and got a cake image from the internet and using gemini added candles and added two states, lit candles and lit off candles. So when she blew the candles(like by clicking space button) it would change to the lit off state. &lt;/p&gt;

&lt;p&gt;Then I wanted to show my appreciation, and what would be better than prizes, so using a random image of a prize from the internet and a achievement sound I added a few prizes and using a image editor tool I added the prizes on the table with each prize when clicked will change to the next image without that prize, it is very inefficient but good enough for quite a small cinematic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi3xt4pv4p9oyukdzsena.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi3xt4pv4p9oyukdzsena.png" alt=" " width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then I added a gift box under the table of the room which when clicked shows a number of handwritten letters from a website called writebyhand.in which are heartfelt real letters written by me, my parents, and one of her friends. This was meant to feel like a real gift with the letters accompanied by some photos. It is truly a token of appreciation for her achievements and inspiration&lt;/p&gt;

&lt;p&gt;And then finally I made a custom UI for Incy OS itself which was all cat themed OS, and also a custom homepage for firefox which was themed and renamed kittyfox. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In the end my sister was very happy with the Operating System itself, even though it does need a lot of polish and currently unusable, I will try my best to work on it and maybe one day, she will prefer Incy OS over other linux distributions. But for now, for this day atleast she got a gift that made her pretty satisfied. I will continue to work on Incy OS and Leviathan OS and push code and releases to &lt;a href="https://github.com/AchinthyaJ/Leviathan-OS" rel="noopener noreferrer"&gt;https://github.com/AchinthyaJ/Leviathan-OS&lt;/a&gt; &lt;br&gt;
Hope this short blog about my journey helped you with something &lt;/p&gt;

&lt;p&gt;Thank you for reading!&lt;/p&gt;

</description>
      <category>linux</category>
      <category>c</category>
      <category>rust</category>
    </item>
  </channel>
</rss>
