<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="idp439680"></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>