<?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: Daniel Developer</title>
    <description>The latest articles on DEV Community by Daniel Developer (@daniel_developer_8ea65b73).</description>
    <link>https://dev.to/daniel_developer_8ea65b73</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%2F4035261%2Fbc9cab99-89f9-4d45-9f0a-a50991b57f35.png</url>
      <title>DEV Community: Daniel Developer</title>
      <link>https://dev.to/daniel_developer_8ea65b73</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/daniel_developer_8ea65b73"/>
    <language>en</language>
    <item>
      <title>Building NovaOS: A 16-bit Operating System from Scratch (in Assembly and C)</title>
      <dc:creator>Daniel Developer</dc:creator>
      <pubDate>Fri, 24 Jul 2026 14:05:23 +0000</pubDate>
      <link>https://dev.to/daniel_developer_8ea65b73/building-novaos-a-16-bit-operating-system-from-scratch-in-assembly-and-c-db3</link>
      <guid>https://dev.to/daniel_developer_8ea65b73/building-novaos-a-16-bit-operating-system-from-scratch-in-assembly-and-c-db3</guid>
      <description>&lt;h1&gt;
  
  
  Building NovaOS: A 16-bit Operating System from Scratch (in Assembly and C)
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Hi everyone! I'm Daniel, an 11-year-old developer from Iran. I've been working on a hobby project called &lt;strong&gt;NovaOS&lt;/strong&gt; – a 16-bit operating system written in Assembly and C, inspired by MikeOS.&lt;/p&gt;

&lt;p&gt;In this post, I'll share my journey, the challenges I faced, and what I've learned so far.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is NovaOS?
&lt;/h2&gt;

&lt;p&gt;NovaOS is a 16-bit real-mode operating system that boots from a floppy disk image and runs in QEMU. It currently includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;Command-Line Interface (CLI)&lt;/strong&gt; with commands like &lt;code&gt;DIR&lt;/code&gt;, &lt;code&gt;CAT&lt;/code&gt;, &lt;code&gt;COPY&lt;/code&gt;, &lt;code&gt;DEL&lt;/code&gt;, &lt;code&gt;HELP&lt;/code&gt;, and &lt;code&gt;SYSINFO&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;BASIC interpreter&lt;/strong&gt; for writing and running simple programs&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;simple text editor (NovaPad)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FAT12 filesystem support&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;basic graphical launcher&lt;/strong&gt; (still in development)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why did I build this?
&lt;/h2&gt;

&lt;p&gt;I've always been fascinated by how computers work at a low level. When I discovered MikeOS, I thought: "Why not build my own?" So I started reading the source code, learning Assembly, and slowly building my own kernel.&lt;/p&gt;

&lt;p&gt;It's been a long journey, but I've learned so much about CPU architecture, memory management, and system calls.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I've Learned So Far
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Assembly is hard, but rewarding.&lt;/strong&gt; Writing in Assembly forces you to understand exactly what the CPU is doing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Debugging without a debugger is painful.&lt;/strong&gt; Most of my debugging was done with &lt;code&gt;printf&lt;/code&gt;-style logging and a lot of patience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The OSDev community is amazing.&lt;/strong&gt; People on OSDev.org and Reddit have been incredibly helpful.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How to Run NovaOS
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Download the ISO from &lt;a href="https://github.com/danieldevir/NovaOS/releases" rel="noopener noreferrer"&gt;GitHub Releases&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Run it in QEMU:
qemu-system-x86_64 -cdrom NovaOS.iso&lt;/li&gt;
&lt;li&gt;Explore the CLI, try BASIC programs, and test the built-in tools.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;What's Next?&lt;/p&gt;

&lt;p&gt;· 32-bit Protected Mode: I want to move from 16-bit real mode to 32-bit protected mode to access more memory.&lt;br&gt;
· Better GUI: A proper graphical interface with window management.&lt;br&gt;
· More programs: A file manager, a chess game, or even a simple web browser.&lt;/p&gt;




&lt;p&gt;Contributing&lt;/p&gt;

&lt;p&gt;If you're interested in Assembly, OS development, or just want to help, I'd love your support! Even 1 hour per week can make a difference.&lt;/p&gt;

&lt;p&gt;The code is open and available on GitHub: github.com/danieldevir/NovaOS&lt;/p&gt;




&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;Building an operating system from scratch is one of the most challenging and rewarding things I've ever done. If you're thinking about starting your own OS project, my advice is: just start. You'll learn more than you can imagine.&lt;/p&gt;

&lt;p&gt;Thanks for reading! Feedback and suggestions are always welcome.&lt;/p&gt;




&lt;p&gt;Daniel Baradaran (11 years old)&lt;/p&gt;

&lt;p&gt;· GitHub: github.com/danieldevir&lt;br&gt;
· Blog: danialcodes.zya.me&lt;/p&gt;

</description>
      <category>coding</category>
      <category>programming</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
