1import{_ as i,c as t,e as n,o as s}from"./app-CjUkjRdW.js";const l="/assets/boot-exitbootservices-Dt2Rlx1o.png",a="/assets/screenshot-graphics-DH5ICI7A.png",o="/assets/screenshot-kernel-booting-DtYqTorQ.png",r={};function h(u,e){return s(),t("div",null,e[0]||(e[0]=[n('<h1 id="fusion-os" tabindex="-1"><a class="header-anchor" href="#fusion-os"><span>Fusion OS</span></a></h1><p>This is both a documentation and a tutorial for building an operating system, Fusion OS, from scratch in Nim. You can find the source code on GitHub at <a href="https://github.com/khaledh/fusion" target="_blank" rel="noopener noreferrer">https://github.com/khaledh/fusion</a>.</p><blockquote><p>Note: The source for this documentation is on GitHub at <a href="https://github.com/khaledh/khaledh.github.io" target="_blank" rel="noopener noreferrer">https://github.com/khaledh/khaledh.github.io</a>. Comments and contributions are welcome through GitHub issues and pull requests.</p></blockquote><h2 id="screenshots" tabindex="-1"><a class="header-anchor" href="#screenshots"><span>Screenshots</span></a></h2><p><strong>UEFI Bootloader</strong></p><p><img src="'+l+'" alt="UEFI Bootloader"></p><p><strong>GUI</strong> (<em>Note: This screenshot is from the <code>graphics</code> branch, which is still a work-in-progress.</em>)</p><p><img src="'+a+'" alt="Screenshot from the graphics branch"></p><p><strong>Booting and Running the Kernel</strong></p><p><img src="'+o+'" alt="Booting and Running Fusion Kernel"></p><h2 id="features" tabindex="-1"><a class="header-anchor" href="#features"><span>Features</span></a></h2><p>The following features are currently implemented:</p><ul><li>UEFI Bootloader</li><li>Memory Management <ul><li>Single Address Space</li><li>Physical Memory Manager</li><li>Virtual Memory Manager</li><li>Higher Half Kernel</li></ul></li><li>Task Management <ul><li>Kernel Tasks</li><li>User Mode Tasks</li><li>Preemptive Multitasking</li><li>Priority-based Scheduling</li><li>ELF Loader</li></ul></li><li>System Calls <ul><li>System Call Interface</li><li>SYSCALL/SYSRET</li><li>User Mode Library</li></ul></li><li>IPC <ul><li>Synchronization Primitives</li><li>Channel-based IPC</li><li>Message Passing</li></ul></li><li>Hardware <ul><li>Timer Interrupts</li><li>PCI Device Enumeration</li><li>Bochs Graphics Adapter Driver</li></ul></li></ul><h4 id="planned" tabindex="-1"><a class="header-anchor" href="#planned"><span>Planned</span></a></h4><ul><li>Capability-based Security</li><li>Event-based Task State Machines</li><li>Demand Paging</li><li>Disk I/O</li><li>File System</li><li>Keyboard/Mouse Input</li><li>Shell</li><li>GUI</li><li>Networking</li></ul>',15)]))}const d=i(r,[["render",h],["__file","index.html.vue"]]),p=JSON.parse('{"path":"/osdev/","title":"Fusion OS","lang":"en-US","frontmatter":{"title":"Fusion OS"},"headers":[{"level":2,"title":"Screenshots","slug":"screenshots","link":"#screenshots","children":[]},{"level":2,"title":"Features","slug":"features","link":"#features","children":[]}],"git":{"updatedTime":1727022234000},"filePathRelative":"osdev/README.md","excerpt":"\\n<p>This is both a documentation and a tutorial for building an operating system, Fusion OS,\\nfrom scratch in Nim. You can find the source code on GitHub at\\n<a href=\\"https://github.com/khaledh/fusion\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">https://github.com/khaledh/fusion</a>.</p>\\n<blockquote>\\n<p>Note: The source for this documentation is on GitHub at <a href=\\"https://github.com/khaledh/khaledh.github.io\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">https://github.com/khaledh/khaledh.github.io</a>.\\nComments and contributions are welcome through GitHub issues and pull requests.</p>\\n</blockquote>"}');export{d as comp,p as data};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.