^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. _kernel_docs:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) Index of Documentation for People Interested in Writing and/or Understanding the Linux Kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) =============================================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) Juan-Mariano de Goyeneche <jmseyas@dit.upm.es>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) The need for a document like this one became apparent in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) linux-kernel mailing list as the same questions, asking for pointers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) to information, appeared again and again.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Fortunately, as more and more people get to GNU/Linux, more and more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) get interested in the Kernel. But reading the sources is not always
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) enough. It is easy to understand the code, but miss the concepts, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) philosophy and design decisions behind this code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) Unfortunately, not many documents are available for beginners to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) start. And, even if they exist, there was no "well-known" place which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) kept track of them. These lines try to cover this lack. All documents
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) available on line known by the author are listed, while some reference
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) books are also mentioned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) PLEASE, if you know any paper not listed here or write a new document,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) send me an e-mail, and I'll include a reference to it here. Any
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) corrections, ideas or comments are also welcomed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) The papers that follow are listed in no particular order. All are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) cataloged with the following fields: the document's "Title", the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) "Author"/s, the "URL" where they can be found, some "Keywords" helpful
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) when searching for specific topics, and a brief "Description" of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) Document.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) Enjoy!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) The documents on each section of this document are ordered by its
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) published date, from the newest to the oldest.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) Docs at the Linux Kernel tree
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) -----------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) The Sphinx books should be built with ``make {htmldocs | pdfdocs | epubdocs}``.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) * Name: **linux/Documentation**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) :Author: Many.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) :Location: Documentation/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) :Keywords: text files, Sphinx.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) :Description: Documentation that comes with the kernel sources,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) inside the Documentation directory. Some pages from this document
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) (including this document itself) have been moved there, and might
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) be more up to date than the web version.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) On-line docs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) ------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) * Title: **Linux Kernel Mailing List Glossary**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) :Author: various
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) :URL: https://kernelnewbies.org/KernelGlossary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) :Date: rolling version
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) :Keywords: glossary, terms, linux-kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) :Description: From the introduction: "This glossary is intended as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) a brief description of some of the acronyms and terms you may hear
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) during discussion of the Linux kernel".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) * Title: **Tracing the Way of Data in a TCP Connection through the Linux Kernel**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) :Author: Richard Sailer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) :URL: https://archive.org/details/linux_kernel_data_flow_short_paper
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) :Date: 2016
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) :Keywords: Linux Kernel Networking, TCP, tracing, ftrace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) :Description: A seminar paper explaining ftrace and how to use it for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) understanding linux kernel internals,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) illustrated at tracing the way of a TCP packet through the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) :Abstract: *This short paper outlines the usage of ftrace a tracing framework
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) as a tool to understand a running Linux system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) Having obtained a trace-log a kernel hacker can read and understand
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) source code more determined and with context.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) In a detailed example this approach is demonstrated in tracing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) and the way of data in a TCP Connection through the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) Finally this trace-log is used as base for more a exact conceptual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) exploration and description of the Linux TCP/IP implementation.*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) * Title: **On submitting kernel Patches**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) :Author: Andi Kleen
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) :URL: http://halobates.de/on-submitting-kernel-patches.pdf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) :Date: 2008
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) :Keywords: patches, review process, types of submissions, basic rules, case studies
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) :Description: This paper gives several experience values on what types of patches
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) there are and how likley they get merged.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) :Abstract:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) [...]. This paper examines some common problems for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) submitting larger changes and some strategies to avoid problems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) * Title: **Linux Device Drivers, Third Edition**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) :Author: Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) :URL: https://lwn.net/Kernel/LDD3/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) :Date: 2005
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) :Description: A 600-page book covering the (2.6.10) driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) programming API and kernel hacking in general. Available under the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) Creative Commons Attribution-ShareAlike 2.0 license.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) :note: You can also :ref:`purchase a copy from O'Reilly or elsewhere <ldd3_published>`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) * Title: **Writing an ALSA Driver**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) :Author: Takashi Iwai <tiwai@suse.de>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) :URL: http://www.alsa-project.org/~iwai/writing-an-alsa-driver/index.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) :Date: 2005
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) :Keywords: ALSA, sound, soundcard, driver, lowlevel, hardware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) :Description: Advanced Linux Sound Architecture for developers,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) both at kernel and user-level sides. ALSA is the Linux kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) sound architecture in the 2.6 kernel version.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) * Title: **Linux PCMCIA Programmer's Guide**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) :Author: David Hinds.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) :URL: http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-PROG.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) :Date: 2003
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) :Keywords: PCMCIA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) :Description: "This document describes how to write kernel device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) drivers for the Linux PCMCIA Card Services interface. It also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) describes how to write user-mode utilities for communicating with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) Card Services.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) * Title: **Linux Kernel Module Programming Guide**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) :Author: Ori Pomerantz.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) :URL: https://tldp.org/LDP/lkmpg/2.6/html/index.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) :Date: 2001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) :Keywords: modules, GPL book, /proc, ioctls, system calls,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) interrupt handlers .
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) :Description: Very nice 92 pages GPL book on the topic of modules
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) programming. Lots of examples.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) * Title: **Global spinlock list and usage**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) :Author: Rick Lindsley.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) :URL: http://lse.sourceforge.net/lockhier/global-spin-lock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) :Date: 2001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) :Keywords: spinlock.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) :Description: This is an attempt to document both the existence and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) usage of the spinlocks in the Linux 2.4.5 kernel. Comprehensive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) list of spinlocks showing when they are used, which functions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) access them, how each lock is acquired, under what conditions it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) is held, whether interrupts can occur or not while it is held...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) * Title: **A Linux vm README**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) :Author: Kanoj Sarcar.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) :URL: http://kos.enix.org/pub/linux-vmm.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) :Date: 2001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) :Keywords: virtual memory, mm, pgd, vma, page, page flags, page
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) cache, swap cache, kswapd.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) :Description: Telegraphic, short descriptions and definitions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) relating the Linux virtual memory implementation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) * Title: **Video4linux Drivers, Part 1: Video-Capture Device**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) :Author: Alan Cox.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) :URL: http://www.linux-mag.com/id/406
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) :Date: 2000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) :Keywords: video4linux, driver, video capture, capture devices,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) camera driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) :Description: The title says it all.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) * Title: **Video4linux Drivers, Part 2: Video-capture Devices**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) :Author: Alan Cox.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) :URL: http://www.linux-mag.com/id/429
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) :Date: 2000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) :Keywords: video4linux, driver, video capture, capture devices,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) camera driver, control, query capabilities, capability, facility.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) :Description: The title says it all.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) * Title: **Linux IP Networking. A Guide to the Implementation and Modification of the Linux Protocol Stack.**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) :Author: Glenn Herrin.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) :URL: http://www.cs.unh.edu/cnrg/gherrin
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) :Date: 2000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) :Keywords: network, networking, protocol, IP, UDP, TCP, connection,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) socket, receiving, transmitting, forwarding, routing, packets,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) modules, /proc, sk_buff, FIB, tags.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) :Description: Excellent paper devoted to the Linux IP Networking,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) explaining anything from the kernel's to the user space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) configuration tools' code. Very good to get a general overview of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) the kernel networking implementation and understand all steps
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) packets follow from the time they are received at the network
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) device till they are delivered to applications. The studied kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) code is from 2.2.14 version. Provides code for a working packet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) dropper example.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) * Title: **How To Make Sure Your Driver Will Work On The Power Macintosh**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) :Author: Paul Mackerras.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) :URL: http://www.linux-mag.com/id/261
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) :Date: 1999
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) :Keywords: Mac, Power Macintosh, porting, drivers, compatibility.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) :Description: The title says it all.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) * Title: **An Introduction to SCSI Drivers**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) :Author: Alan Cox.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) :URL: http://www.linux-mag.com/id/284
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) :Date: 1999
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) :Keywords: SCSI, device, driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) :Description: The title says it all.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) * Title: **Advanced SCSI Drivers And Other Tales**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) :Author: Alan Cox.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) :URL: http://www.linux-mag.com/id/307
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) :Date: 1999
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) :Keywords: SCSI, device, driver, advanced.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) :Description: The title says it all.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) * Title: **Writing Linux Mouse Drivers**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) :Author: Alan Cox.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) :URL: http://www.linux-mag.com/id/330
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) :Date: 1999
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) :Keywords: mouse, driver, gpm.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) :Description: The title says it all.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) * Title: **More on Mouse Drivers**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) :Author: Alan Cox.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) :URL: http://www.linux-mag.com/id/356
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) :Date: 1999
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) :Keywords: mouse, driver, gpm, races, asynchronous I/O.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) :Description: The title still says it all.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) * Title: **Writing Video4linux Radio Driver**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) :Author: Alan Cox.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) :URL: http://www.linux-mag.com/id/381
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) :Date: 1999
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) :Keywords: video4linux, driver, radio, radio devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) :Description: The title says it all.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) * Title: **I/O Event Handling Under Linux**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) :Author: Richard Gooch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) :URL: https://web.mit.edu/~yandros/doc/io-events.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) :Date: 1999
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) :Keywords: IO, I/O, select(2), poll(2), FDs, aio_read(2), readiness
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) event queues.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) :Description: From the Introduction: "I/O Event handling is about
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) how your Operating System allows you to manage a large number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) open files (file descriptors in UNIX/POSIX, or FDs) in your
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) application. You want the OS to notify you when FDs become active
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) (have data ready to be read or are ready for writing). Ideally you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) want a mechanism that is scalable. This means a large number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) inactive FDs cost very little in memory and CPU time to manage".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) * Title: **(nearly) Complete Linux Loadable Kernel Modules. The definitive guide for hackers, virus coders and system administrators.**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) :Author: pragmatic/THC.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) :URL: http://packetstormsecurity.org/docs/hack/LKM_HACKING.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) :Date: 1999
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) :Keywords: syscalls, intercept, hide, abuse, symbol table.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) :Description: Interesting paper on how to abuse the Linux kernel in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) order to intercept and modify syscalls, make
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) files/directories/processes invisible, become root, hijack ttys,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) write kernel modules based virus... and solutions for admins to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) avoid all those abuses.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) :Notes: For 2.0.x kernels. Gives guidances to port it to 2.2.x
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) kernels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) * Name: **Linux Virtual File System**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) :Author: Peter J. Braam.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) :URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) :Date: 1998
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) :Keywords: slides, VFS, inode, superblock, dentry, dcache.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) :Description: Set of slides, presumably from a presentation on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) Linux VFS layer. Covers version 2.1.x, with dentries and the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) dcache.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) * Title: **The Venus kernel interface**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) :Author: Peter J. Braam.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) :URL: http://www.coda.cs.cmu.edu/doc/html/kernel-venus-protocol.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) :Date: 1998
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) :Keywords: coda, filesystem, venus, cache manager.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) :Description: "This document describes the communication between
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) Venus and kernel level file system code needed for the operation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) of the Coda filesystem. This version document is meant to describe
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) the current interface (version 1.0) as well as improvements we
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) envisage".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) * Title: **Design and Implementation of the Second Extended Filesystem**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) :Author: Rémy Card, Theodore Ts'o, Stephen Tweedie.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) :URL: https://web.mit.edu/tytso/www/linux/ext2intro.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) :Date: 1998
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) :Keywords: ext2, linux fs history, inode, directory, link, devices,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) VFS, physical structure, performance, benchmarks, ext2fs library,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) ext2fs tools, e2fsck.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) :Description: Paper written by three of the top ext2 hackers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) Covers Linux filesystems history, ext2 motivation, ext2 features,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) design, physical structure on disk, performance, benchmarks,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) e2fsck's passes description... A must read!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) :Notes: This paper was first published in the Proceedings of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) First Dutch International Symposium on Linux, ISBN 90-367-0385-9.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) * Title: **The Linux RAID-1, 4, 5 Code**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) :Author: Ingo Molnar, Gadi Oxman and Miguel de Icaza.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) :URL: http://www.linuxjournal.com/article.php?sid=2391
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) :Date: 1997
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) :Keywords: RAID, MD driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) :Description: Linux Journal Kernel Korner article.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) :Abstract: *A description of the implementation of the RAID-1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) RAID-4 and RAID-5 personalities of the MD device driver in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) Linux kernel, providing users with high performance and reliable,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) secondary-storage capability using software*.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) * Title: **Linux Kernel Hackers' Guide**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) :Author: Michael K. Johnson.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) :URL: https://www.tldp.org/LDP/khg/HyperNews/get/khg.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) :Date: 1997
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) :Keywords: device drivers, files, VFS, kernel interface, character vs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) block devices, hardware interrupts, scsi, DMA, access to user memory,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) memory allocation, timers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) :Description: A guide designed to help you get up to speed on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) concepts that are not intuitevly obvious, and to document the internal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) structures of Linux.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) * Title: **Dynamic Kernels: Modularized Device Drivers**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) :Author: Alessandro Rubini.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) :URL: http://www.linuxjournal.com/article.php?sid=1219
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) :Date: 1996
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) :Keywords: device driver, module, loading/unloading modules,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) allocating resources.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) :Description: Linux Journal Kernel Korner article.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) :Abstract: *This is the first of a series of four articles
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) co-authored by Alessandro Rubini and Georg Zezchwitz which present
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) a practical approach to writing Linux device drivers as kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) loadable modules. This installment presents an introduction to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) topic, preparing the reader to understand next month's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) installment*.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) * Title: **Dynamic Kernels: Discovery**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) :Author: Alessandro Rubini.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) :URL: http://www.linuxjournal.com/article.php?sid=1220
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) :Date: 1996
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) :Keywords: character driver, init_module, clean_up module,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) autodetection, mayor number, minor number, file operations,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) open(), close().
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) :Description: Linux Journal Kernel Korner article.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) :Abstract: *This article, the second of four, introduces part of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) the actual code to create custom module implementing a character
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) device driver. It describes the code for module initialization and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) cleanup, as well as the open() and close() system calls*.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) * Title: **The Devil's in the Details**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) :Author: Georg v. Zezschwitz and Alessandro Rubini.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) :URL: http://www.linuxjournal.com/article.php?sid=1221
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) :Date: 1996
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) :Keywords: read(), write(), select(), ioctl(), blocking/non
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) blocking mode, interrupt handler.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) :Description: Linux Journal Kernel Korner article.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) :Abstract: *This article, the third of four on writing character
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) device drivers, introduces concepts of reading, writing, and using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) ioctl-calls*.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) * Title: **Dissecting Interrupts and Browsing DMA**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) :Author: Alessandro Rubini and Georg v. Zezschwitz.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) :URL: https://www.linuxjournal.com/article.php?sid=1222
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) :Date: 1996
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) :Keywords: interrupts, irqs, DMA, bottom halves, task queues.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) :Description: Linux Journal Kernel Korner article.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) :Abstract: *This is the fourth in a series of articles about
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) writing character device drivers as loadable kernel modules. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) month, we further investigate the field of interrupt handling.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) Though it is conceptually simple, practical limitations and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) constraints make this an ''interesting'' part of device driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) writing, and several different facilities have been provided for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) different situations. We also investigate the complex topic of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) DMA*.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) * Title: **Device Drivers Concluded**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) :Author: Georg v. Zezschwitz.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) :URL: https://www.linuxjournal.com/article.php?sid=1287
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) :Date: 1996
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) :Keywords: address spaces, pages, pagination, page management,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) demand loading, swapping, memory protection, memory mapping, mmap,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) virtual memory areas (VMAs), vremap, PCI.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) :Description: Finally, the above turned out into a five articles
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) series. This latest one's introduction reads: "This is the last of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) five articles about character device drivers. In this final
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) section, Georg deals with memory mapping devices, beginning with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) an overall description of the Linux memory management concepts".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) * Title: **Network Buffers And Memory Management**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) :Author: Alan Cox.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) :URL: https://www.linuxjournal.com/article.php?sid=1312
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) :Date: 1996
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) :Keywords: sk_buffs, network devices, protocol/link layer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) variables, network devices flags, transmit, receive,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) configuration, multicast.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) :Description: Linux Journal Kernel Korner.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) :Abstract: *Writing a network device driver for Linux is fundamentally
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) simple---most of the complexity (other than talking to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) hardware) involves managing network packets in memory*.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) * Title: **Analysis of the Ext2fs structure**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) :Author: Louis-Dominique Dubeau.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) :URL: https://teaching.csse.uwa.edu.au/units/CITS2002/fs-ext2/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) :Date: 1994
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) :Keywords: ext2, filesystem, ext2fs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) :Description: Description of ext2's blocks, directories, inodes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) bitmaps, invariants...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) Published books
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) ---------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) * Title: **Linux Treiber entwickeln**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) :Author: Jürgen Quade, Eva-Katharina Kunst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) :Publisher: dpunkt.verlag
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) :Date: Oct 2015 (4th edition)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) :Pages: 688
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) :ISBN: 978-3-86490-288-8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) :Note: German. The third edition from 2011 is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) much cheaper and still quite up-to-date.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) * Title: **Linux Kernel Networking: Implementation and Theory**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) :Author: Rami Rosen
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) :Publisher: Apress
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) :Date: December 22, 2013
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) :Pages: 648
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) :ISBN: 978-1430261964
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) * Title: **Embedded Linux Primer: A practical Real-World Approach, 2nd Edition**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) :Author: Christopher Hallinan
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) :Publisher: Pearson
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) :Date: November, 2010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) :Pages: 656
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) :ISBN: 978-0137017836
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) * Title: **Linux Kernel Development, 3rd Edition**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) :Author: Robert Love
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) :Publisher: Addison-Wesley
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) :Date: July, 2010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) :Pages: 440
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) :ISBN: 978-0672329463
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) * Title: **Essential Linux Device Drivers**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) :Author: Sreekrishnan Venkateswaran
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) :Published: Prentice Hall
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) :Date: April, 2008
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) :Pages: 744
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) :ISBN: 978-0132396554
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) .. _ldd3_published:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) * Title: **Linux Device Drivers, 3rd Edition**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) :Authors: Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) :Publisher: O'Reilly & Associates
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) :Date: 2005
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) :Pages: 636
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) :ISBN: 0-596-00590-3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) :Notes: Further information in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) http://www.oreilly.com/catalog/linuxdrive3/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) PDF format, URL: https://lwn.net/Kernel/LDD3/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) * Title: **Linux Kernel Internals**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) :Author: Michael Beck
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) :Publisher: Addison-Wesley
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) :Date: 1997
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) :ISBN: 0-201-33143-8 (second edition)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) * Title: **Programmation Linux 2.0 API systeme et fonctionnement du noyau**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) :Author: Remy Card, Eric Dumas, Franck Mevel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) :Publisher: Eyrolles
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) :Date: 1997
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) :Pages: 520
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) :ISBN: 2-212-08932-5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) :Notes: French
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) * Title: **The Design and Implementation of the 4.4 BSD UNIX Operating System**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) :Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) John S. Quarterman
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) :Publisher: Addison-Wesley
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) :Date: 1996
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) :ISBN: 0-201-54979-4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) * Title: **Unix internals -- the new frontiers**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) :Author: Uresh Vahalia
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) :Publisher: Prentice Hall
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) :Date: 1996
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) :Pages: 600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) :ISBN: 0-13-101908-2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) * Title: **Programming for the real world - POSIX.4**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) :Author: Bill O. Gallmeister
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) :Publisher: O'Reilly & Associates, Inc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) :Date: 1995
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) :Pages: 552
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) :ISBN: I-56592-074-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) :Notes: Though not being directly about Linux, Linux aims to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) POSIX. Good reference.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) * Title: **UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) :Author: Curt Schimmel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) :Publisher: Addison Wesley
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) :Date: June, 1994
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) :Pages: 432
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) :ISBN: 0-201-63338-8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) * Title: **The Design and Implementation of the 4.3 BSD UNIX Operating System**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) :Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) Karels, John S. Quarterman
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) :Publisher: Addison-Wesley
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) :Date: 1989 (reprinted with corrections on October, 1990)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) :ISBN: 0-201-06196-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) * Title: **The Design of the UNIX Operating System**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) :Author: Maurice J. Bach
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) :Publisher: Prentice Hall
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) :Date: 1986
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) :Pages: 471
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) :ISBN: 0-13-201757-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) Miscellaneous
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) -------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) * Name: **Cross-Referencing Linux**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) :URL: https://elixir.bootlin.com/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) :Keywords: Browsing source code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) :Description: Another web-based Linux kernel source code browser.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) Lots of cross references to variables and functions. You can see
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) where they are defined and where they are used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) * Name: **Linux Weekly News**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) :URL: https://lwn.net
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) :Keywords: latest kernel news.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) :Description: The title says it all. There's a fixed kernel section
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) summarizing developers' work, bug fixes, new features and versions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) produced during the week. Published every Thursday.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) * Name: **The home page of Linux-MM**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) :Author: The Linux-MM team.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) :URL: https://linux-mm.org/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) :Keywords: memory management, Linux-MM, mm patches, TODO, docs,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) mailing list.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) :Description: Site devoted to Linux Memory Management development.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) Memory related patches, HOWTOs, links, mm developers... Don't miss
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) it if you are interested in memory management development!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) * Name: **Kernel Newbies IRC Channel and Website**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) :URL: https://www.kernelnewbies.org
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) :Keywords: IRC, newbies, channel, asking doubts.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) :Description: #kernelnewbies on irc.oftc.net.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) #kernelnewbies is an IRC network dedicated to the 'newbie'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) kernel hacker. The audience mostly consists of people who are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) learning about the kernel, working on kernel projects or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) professional kernel hackers that want to help less seasoned kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) people.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) #kernelnewbies is on the OFTC IRC Network.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) Try irc.oftc.net as your server and then /join #kernelnewbies.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) The kernelnewbies website also hosts articles, documents, FAQs...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) * Name: **linux-kernel mailing list archives and search engines**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) :URL: http://vger.kernel.org/vger-lists.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) :URL: http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) :URL: http://groups.google.com/group/mlist.linux.kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) :Keywords: linux-kernel, archives, search.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) :Description: Some of the linux-kernel mailing list archivers. If
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) you have a better/another one, please let me know.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) -------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) Document last updated on Tue 2016-Sep-20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) This document is based on:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) https://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html