154 lines
6.0 KiB
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>
|