old-www/HOWTO/KernelAnalysis-HOWTO.html

154 lines
6.0 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE>KernelAnalysis-HOWTO</TITLE>
<LINK HREF="KernelAnalysis-HOWTO-1.html" REL=next>
</HEAD>
<BODY>
<A HREF="KernelAnalysis-HOWTO-1.html">Next</A>
Previous
Contents
<HR>
<H1>KernelAnalysis-HOWTO</H1>
<H2>Roberto Arcomano berto@bertolinux.com</H2>v0.7, March 26, 2003
<P><HR>
<EM>This document tries to explain some things about the Linux Kernel,
such as the most important components, how they work, and so on.
This HOWTO should help prevent the reader from needing to browse
all the kernel source files searching for the"right function," declaration,
and definition, and then linking each to the other. You can find
the latest version of this document at
<A HREF="http://www.bertolinux.com">http://www.bertolinux.com</A> If you have suggestions to
help make this document better, please submit your ideas to me at
the following address:
<A HREF="mailto:berto@bertolinux.com">berto@bertolinux.com</A></EM>
<HR>
<P>
<H2><A NAME="toc1">1.</A> <A HREF="KernelAnalysis-HOWTO-1.html">Introduction</A></H2>
<UL>
<LI><A HREF="KernelAnalysis-HOWTO-1.html#ss1.1">1.1 Introduction</A>
<LI><A HREF="KernelAnalysis-HOWTO-1.html#ss1.2">1.2 Copyright</A>
<LI><A HREF="KernelAnalysis-HOWTO-1.html#ss1.3">1.3 Translations</A>
<LI><A HREF="KernelAnalysis-HOWTO-1.html#ss1.4">1.4 Credits</A>
</UL>
<P>
<H2><A NAME="toc2">2.</A> <A HREF="KernelAnalysis-HOWTO-2.html">Syntax used</A></H2>
<UL>
<LI><A HREF="KernelAnalysis-HOWTO-2.html#ss2.1">2.1 Function Syntax</A>
<LI><A HREF="KernelAnalysis-HOWTO-2.html#ss2.2">2.2 Indentation</A>
<LI><A HREF="KernelAnalysis-HOWTO-2.html#ss2.3">2.3 InterCallings Analysis</A>
</UL>
<P>
<H2><A NAME="toc3">3.</A> <A HREF="KernelAnalysis-HOWTO-3.html">Fundamentals</A></H2>
<UL>
<LI><A HREF="KernelAnalysis-HOWTO-3.html#ss3.1">3.1 What is the kernel?</A>
<LI><A HREF="KernelAnalysis-HOWTO-3.html#ss3.2">3.2 What is the difference between User Mode and Kernel Mode?</A>
<LI><A HREF="KernelAnalysis-HOWTO-3.html#ss3.3">3.3 Switching from User Mode to Kernel Mode</A>
<LI><A HREF="KernelAnalysis-HOWTO-3.html#ss3.4">3.4 Multitasking</A>
<LI><A HREF="KernelAnalysis-HOWTO-3.html#ss3.5">3.5 Microkernel vs Monolithic OS</A>
<LI><A HREF="KernelAnalysis-HOWTO-3.html#ss3.6">3.6 Networking</A>
<LI><A HREF="KernelAnalysis-HOWTO-3.html#ss3.7">3.7 Virtual Memory</A>
</UL>
<P>
<H2><A NAME="toc4">4.</A> <A HREF="KernelAnalysis-HOWTO-4.html">Linux Startup</A></H2>
<P>
<H2><A NAME="toc5">5.</A> <A HREF="KernelAnalysis-HOWTO-5.html">Linux Peculiarities</A></H2>
<UL>
<LI><A HREF="KernelAnalysis-HOWTO-5.html#ss5.1">5.1 Overview</A>
<LI><A HREF="KernelAnalysis-HOWTO-5.html#ss5.2">5.2 Pagination only</A>
<LI><A HREF="KernelAnalysis-HOWTO-5.html#ss5.3">5.3 Softirq</A>
<LI><A HREF="KernelAnalysis-HOWTO-5.html#ss5.4">5.4 Kernel Threads</A>
<LI><A HREF="KernelAnalysis-HOWTO-5.html#ss5.5">5.5 Kernel Modules</A>
<LI><A HREF="KernelAnalysis-HOWTO-5.html#ss5.6">5.6 Proc directory</A>
</UL>
<P>
<H2><A NAME="toc6">6.</A> <A HREF="KernelAnalysis-HOWTO-6.html">Linux Multitasking</A></H2>
<UL>
<LI><A HREF="KernelAnalysis-HOWTO-6.html#ss6.1">6.1 Overview</A>
<LI><A HREF="KernelAnalysis-HOWTO-6.html#ss6.2">6.2 Timeslice</A>
<LI><A HREF="KernelAnalysis-HOWTO-6.html#ss6.3">6.3 Scheduler</A>
<LI><A HREF="KernelAnalysis-HOWTO-6.html#ss6.4">6.4 Bottom Half, Task Queues. and Tasklets</A>
<LI><A HREF="KernelAnalysis-HOWTO-6.html#ss6.5">6.5 Very low level routines</A>
<LI><A HREF="KernelAnalysis-HOWTO-6.html#ss6.6">6.6 Task Switching</A>
<LI><A HREF="KernelAnalysis-HOWTO-6.html#ss6.7">6.7 Fork</A>
</UL>
<P>
<H2><A NAME="toc7">7.</A> <A HREF="KernelAnalysis-HOWTO-7.html">Linux Memory Management</A></H2>
<UL>
<LI><A HREF="KernelAnalysis-HOWTO-7.html#ss7.1">7.1 Overview</A>
<LI><A HREF="KernelAnalysis-HOWTO-7.html#ss7.2">7.2 Specific i386 implementation</A>
<LI><A HREF="KernelAnalysis-HOWTO-7.html#ss7.3">7.3 Memory Mapping</A>
<LI><A HREF="KernelAnalysis-HOWTO-7.html#ss7.4">7.4 Low level memory allocation</A>
<LI><A HREF="KernelAnalysis-HOWTO-7.html#ss7.5">7.5 Swap</A>
</UL>
<P>
<H2><A NAME="toc8">8.</A> <A HREF="KernelAnalysis-HOWTO-8.html">Linux Networking</A></H2>
<UL>
<LI><A HREF="KernelAnalysis-HOWTO-8.html#ss8.1">8.1 How Linux networking is managed?</A>
<LI><A HREF="KernelAnalysis-HOWTO-8.html#ss8.2">8.2 TCP example</A>
</UL>
<P>
<H2><A NAME="toc9">9.</A> <A HREF="KernelAnalysis-HOWTO-9.html">Linux File System</A></H2>
<P>
<H2><A NAME="toc10">10.</A> <A HREF="KernelAnalysis-HOWTO-10.html">Useful Tips</A></H2>
<UL>
<LI><A HREF="KernelAnalysis-HOWTO-10.html#ss10.1">10.1 Stack and Heap</A>
<LI><A HREF="KernelAnalysis-HOWTO-10.html#ss10.2">10.2 Application vs Process</A>
<LI><A HREF="KernelAnalysis-HOWTO-10.html#ss10.3">10.3 Locks</A>
<LI><A HREF="KernelAnalysis-HOWTO-10.html#ss10.4">10.4 Copy_on_write</A>
</UL>
<P>
<H2><A NAME="toc11">11.</A> <A HREF="KernelAnalysis-HOWTO-11.html">80386 specific details</A></H2>
<UL>
<LI><A HREF="KernelAnalysis-HOWTO-11.html#ss11.1">11.1 Boot procedure</A>
<LI><A HREF="KernelAnalysis-HOWTO-11.html#ss11.2">11.2 80386 (and more) Descriptors</A>
</UL>
<P>
<H2><A NAME="toc12">12.</A> <A HREF="KernelAnalysis-HOWTO-12.html">IRQ </A></H2>
<UL>
<LI><A HREF="KernelAnalysis-HOWTO-12.html#ss12.1">12.1 Overview</A>
<LI><A HREF="KernelAnalysis-HOWTO-12.html#ss12.2">12.2 Interaction schema</A>
</UL>
<P>
<H2><A NAME="toc13">13.</A> <A HREF="KernelAnalysis-HOWTO-13.html">Utility functions</A></H2>
<UL>
<LI><A HREF="KernelAnalysis-HOWTO-13.html#ss13.1">13.1 list_entry [include/linux/list.h]</A>
<LI><A HREF="KernelAnalysis-HOWTO-13.html#ss13.2">13.2 Sleep </A>
</UL>
<P>
<H2><A NAME="toc14">14.</A> <A HREF="KernelAnalysis-HOWTO-14.html">Static variables</A></H2>
<UL>
<LI><A HREF="KernelAnalysis-HOWTO-14.html#ss14.1">14.1 Overview</A>
<LI><A HREF="KernelAnalysis-HOWTO-14.html#ss14.2">14.2 Main variables</A>
</UL>
<P>
<H2><A NAME="toc15">15.</A> <A HREF="KernelAnalysis-HOWTO-15.html">Glossary</A></H2>
<P>
<H2><A NAME="toc16">16.</A> <A HREF="KernelAnalysis-HOWTO-16.html">Links</A></H2>
<HR>
<A HREF="KernelAnalysis-HOWTO-1.html">Next</A>
Previous
Contents
</BODY>
</HTML>