forked from dmoisset/os-implementation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathintro.html
40 lines (38 loc) · 4.97 KB
/
intro.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 1. Introduction</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.1"><link rel="home" href="index.html" title="Hacking GeekOS"><link rel="up" href="index.html" title="Hacking GeekOS"><link rel="previous" href="index.html" title="Hacking GeekOS"><link rel="next" href="hacking101.html" title="Chapter 2. Kernel Hacking 101"></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">Chapter 1. Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="hacking101.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="intro"></a>Chapter 1. Introduction</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="intro.html#audience">1. Intended Audience</a></span></dt><dt><span class="sect1"><a href="intro.html#background">2. Required background</a></span></dt></dl></div><p>
GeekOS is an educational operating system kernel.
GeekOS tries to combine realism and simplicity. It is a realistic
system because it targets a real hardware platform - the x86 PC.
It strives for simplicitly in that it contains the bare minimum functionality
necessary to provide the services of a modern operating system,
such as virtual memory, a filesystem, and interprocess communication.
</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="figures/important.png"></td><th align="left">Important</th></tr><tr><td colspan="2" align="left" valign="top"><p>
This document and the GeekOS distribution are works in progress.
At the time of writing (March 3, 2004) this document is about 80% complete,
and the GeekOS code is about 95% complete. We will be filling in
the remaining text and code in the near future. In the meantime,
if you have any questions about this manual or about GeekOS itself,
please send email to <tt class="email"><<a href="mailto:[email protected]">[email protected]</a>></tt>.
</p></td></tr></table></div><p>
</p><p>
This document has two purposes. The first purpose is to give an overview of
the GeekOS kernel, and to cover the topics needed to read, understand,
and modify the kernel source code. The second purpose is to present a
series of projects in which you can build important new functionality on
top of the GeekOS kernel. These projects are suitable for use in a
senior level undergraduate course, or for self-study.
</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="audience"></a>1. Intended Audience</h2></div></div><div></div></div><p>
This document is for anyone interested in gaining hands-on experience
in operating system kernel programming. Most operating system textbooks
focus on high level theory and concepts. This document is intended to
bridge the gap between those concepts and actual, working kernel code.
We will try to give you all of the information and background you need
to start hacking. In this way, this document complements your operating
system textbook.
</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="background"></a>2. Required background</h2></div></div><div></div></div><p>
Before you start hacking on GeekOS, we assume that you have the
following skills and knowledge:
</p><div class="itemizedlist"><ul type="disc"><li><p>Basic understanding of what an operating system kernel does</p></li><li><p>A strong understanding of the C programming language</p></li><li><p>Experience programming at the system call level in
an operating system such as Linux or Windows</p></li><li><p>Experience programming using threads, such as pthreads or
Java threads</p></li><li><p>Some knowledge of computer architecture and organization</p></li><li><p>Familiarity with assembly language for some CPU architecture,
and a willingness to learn x86 (a.k.a. Intel IA32) assembly language</p></li></ul></div><p>
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="hacking101.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Hacking GeekOS </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Kernel Hacking 101</td></tr></table></div></body></html>