kernel-docs.txt 26 KB

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