<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Your own OS</title><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><meta name="keywords" content="assembly, assembler, asm, inline, 32-bit, IA-32, i386, x86, nasm, gas, as, as86, yasm, fasm, shasm, osimpa, OS, Linux, Unix, kernel, system, libc, glibc, system call, interrupt, small, fast, embedded, hardware, port, macroprocessor, metaprogramming, preprocessor"><link rel="home" href="Assembly-HOWTO.html" title="Linux Assembly HOWTO"><link rel="up" href="conventions.html" title="Chapter 5. Calling conventions"><link rel="prev" href="dos.html" title="DOS and Windows"><link rel="next" href="quickstart.html" title="Chapter 6. Quick start"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Your own OS</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dos.html">Prev</a> </td><th width="60%" align="center">Chapter 5. Calling conventions</th><td width="20%" align="right"> <a accesskey="n" href="quickstart.html">Next</a></td></tr></table><hr></div><div class="section" title="Your own OS"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp434080"></a>Your own OS</h2></div></div></div>
<p>
Control is what attracts many OS developers to assembly, often is what leads to
or stems from assembly hacking. Note that any system that allows
self-development could be qualified an "OS", though it can run "on the top" of
an underlying system (much like Linux over Mach or OpenGenera over Unix).
</p>
<p>
Hence, for easier debugging purpose, you might like to develop your "OS" first
as a process running on top of Linux (despite the slowness), then use the
<a class="ulink" href="http://www.cs.utah.edu/projects/flux/oskit/" target="_top">Flux OS kit</a>
(which grants use of Linux and BSD drivers in your own OS) to make it
stand-alone. When your OS is stable, it is time to write your own hardware
drivers if you really love that.
</p>
<p>
This HOWTO will not cover topics such as bootloader code, getting into 32-bit
mode, handling Interrupts, the basics about Intel protected mode or V86/R86
braindeadness, defining your object format and calling conventions.
</p>
<p>
The main place where to find reliable information about that all, is source
code of existing OSes and bootloaders. Lots of pointers are on the following
webpage: <a class="ulink" href="http://www.tunes.org/Review/OSes.html" target="_top">
http://www.tunes.org/Review/OSes.html</a>
</p>
</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dos.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="conventions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="quickstart.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">DOS and Windows </td><td width="20%" align="center"><a accesskey="h" href="Assembly-HOWTO.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 6. Quick start</td></tr></table></div></body></html>