-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathfurther_reading.html
More file actions
56 lines (56 loc) · 5.56 KB
/
further_reading.html
File metadata and controls
56 lines (56 loc) · 5.56 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<html>
<font face="helvetica">
<title>More stuff to read</title>
<body>
<p align=center><font size=+5>More stuff to look at</font>
<p align=center>(in no particular order)
<hr>
<a href="contents.html">Contents</a>
<font size=+3>
<ul>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/HOWTO;h=81bc1a9ab9d8fa1357fcbb56268156786f741287;hb=HEAD">Documentation/HOWTO</a>
<li><a href="http://book.opensourceproject.org.cn/kernel/kernel3rd/">Understanding
the Linux Kernel (3rd edition)</a>
<li><a href="http://lwn.net/Kernel/LDD3/">Linux Device Drivers (3rd Edition)</a>
<li><a href="http://free-electrons.com/docs/">free-electrons.com/docs</a>
<li><a href="http://ontwik.com/linux/write-and-submit-your-first-linux-kernel-patch/">Greg Kroah-Hartman talking about making linux kernel patches</a> (video)
<li><a href="http://kernelnewbies.org">Kernel Newbies</a>
<li><a href="http://www.freesoftwaremagazine.com/articles/drivers_linux?page=0%2C0">
Writing device drivers in Linux: A brief tutorial</a> (From Free Software Magazine)
<li><a href="http://www.amazon.com/Linux-Kernel-Development-Robert-Love/dp/0672329468/ref=dp_ob_title_bk">Linux Kernel Development</a> by Robert Love (amazon link)
<li>drivers/watchdog/softdog.c (small driver using timers)
<li>drivers/char/mem.c (this is the driver for /dev/null, /dev/zero, /dev/mem,
/dev/kmem, /dev/port, /dev/full, /dev/random, /dev/urandom, /dev/kmsg, and
/dev/oldmem -- which all have the same major number, but different minor
numbers)
<li><a href="http://lwn.net/Articles/444910/">Object Oriented Design
patterns in the kernel</a>.
<li><a href="http://lwn.net/images/pdf/google-class/00-introduction.pdf">Participating
in the kernel development process</a> (PDF slides from Jonathan Corbet)
<li>A few selections from the Documentation directory of the lk source:
<ul>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/DMA-API-HOWTO.txt;h=d568bc235bc008a215b981bcf303352c54bbda3a;hb=HEAD">Documentation/DMA-API-HOWTO.txt</a>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/DMA-API.txt;h=fe2326906610d15c25b928000d343b7917046bce;hb=HEAD">Documentation/DMA-API.txt</a>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/CodingStyle;h=58b0bf9178349c435fd53674d96c29d7ecea0414;hb=HEAD">Documentation/CodingStyle</a>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/SubmitChecklist;h=da0382daa39556939dcc94717b658b5917e4009f;hb=HEAD">Documentation/SubmitChecklist</a>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/SubmittingPatches;h=569f3532e1383cb3e67dcba7b77990b5f18a1411;hb=HEAD">Documentation/SubmittingPatches</a>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/SubmittingDrivers;h=319baa8b60dd727d82c5e8fa062c13e3bb3126d5;hb=HEAD">Documentation/SubmittingDrivers</a>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=Documentation/development-process;h=a92143dcbc4e9c5f63bdf5aa72a9726d184db26d;hb=HEAD">Documentation/development-process</a>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=Documentation/driver-model;h=708aa1f6fc9bb05be3d1e3e2b5793a59a23069a8;hb=HEAD">Documentation/driver-model</a>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/oops-tracing.txt;h=6fe9001b92634ec306a745d5842883640db79597;hb=HEAD">Documentation/oops-tracing.txt</a>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/serial-console.txt;h=9a7bc8b3f479b2b82dbfa1056df060366dbafdec;hb=HEAD">Documentation/serial-console.txt</a> (shows how to set up a
serial console which is sometimes required for debugging.)
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/spinlocks.txt;h=2e3c64b1a6a5a64ede63c9e76377f79514e95088;hb=HEAD">Documentation/spinlocks.txt</a>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/sysrq.txt;h=312e3754e8c5599b00c644d64be5b9907bb64ada;hb=HEAD">sysrq.txt</a> (explains the sysrq interface, sysrq magic keys, sometimes
useful while debugging.)
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=Documentation/timers;h=79cddc1313936714aa113272fd07974f9c470868;hb=HEAD">Documentation/timers</a>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/unaligned-memory-access.txt;h=f866c72291bf4ce2e29a9a6ffd1c40ac740d4bb7;hb=HEAD">Documentation/unaligned-memory-access.txt</a> (just some information about unaligned accesses, what they are, why to avoid them, and how to
write the code so that it does what you want without unaligned accesses.)
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=include/linux/byteorder/generic.h;h=0846e6b931cefc9ea9baedfe9bfc93300e4c474b;hb=HEAD">include/linux/byteorder/generic.h</a> (just so you know that things like le32_to_cpu() exist.)
</uL>
<li><a href="http://search.intel.com/default.aspx?q=ia32+software+development+manual&c=en_US&method=text&input-submit=Search">Intel's ia32 software development manuals</a>
<li><a href="http://www.amazon.com/Express-System-Architecture-Mindshare-Inc/dp/0321156307/ref=sr_1_2?ie=UTF8&qid=1308238697&sr=1-2-spell">PCI Express System Architecture</a> (amazon book link)
</ul>
</font>
</body>
</html>