
\begin{info}[Kernel Documentation]

   The \textbf{best} source of documentation about
   \ifEMBEDDED \textbf{Embedded Linux} \else the
      \textbf{Linux} kernel \fi is the source itself. In many
   cases it is the \textbf{only} documentation. Never trust
   what you see in books (\textit{including this one}) or
   articles without looking at the source.


   The \kernlink{Documentation} directory contains many
   useful items, and is often the first place to start.  A
   great place to browse this upstream documentation in
   easily readable form can be found at
   \url{https://www.kernel.org/doc/html/latest/index.html}.

\end{info}

\subsection*{
   Books
}
Unfortunately most books that involve
\ifEMBEDDED
   \textbf{Embedded Linux}
\else
   the \textbf{Linux} kernel
\fi
tend to be quite old and ossify rather quickly due to the rapid
pace of development.  However, some of the following are still
quite useful to be familiar with.
\begin{itemize}
   \ifEMBEDDED
      \item

      \textit{\textbf{Linux Device Driver Development Cookbook}}
      by Rodolfo Giomettim
      pub. PACKT, 2019. \newline
      ISBN: 978-1-83855-880-2

      \item

      \textit{\textbf{Linux Driver Development for Embedded Processors - Second Edition}}
      by Alberto Liberal De Los Ríos,
      pub. Independently, 2018. \newline
      ISBN: 978-1-72878-748-0

      \item

      \textit{\textbf{Embedded Linux Development Using Yocto Project Cookbook: Practical Recipes to Help You Leverage the Power of Yocto to Build Exciting Linux-based Systems, 2nd Edition}}
      by Alex Gonzalez,
      pub. PACKT, 2018. \newline
      ISBN: 978-1-78839-921-0

      \item

      \textit{\textbf{Mastering Embedded Linux Programming - Second Edition}}
      by Chris Simmonds,
      pub. PACKT, 2015, 2017. \newline
      ISBN: 978-1-78728-328-2

      \item

      \textit{\textbf{Embedded Linux Development using Yocto Projects}}
      by Otavio Salvador, Daiane Angolini,
      pub. PACKT, 2017. \newline
      ISBN: 978-1-78847-046-9

      \item

      \textit{\textbf{Embedded Linux Systems with the Yocto Project}}
      by Rudi J. Streif,
      pub. Pearson, 2016. \newline
      ISBN: 978-0-13344-328-8

      \item

      \textit{\textbf{Learning Embedded Linux Using the Yocto Project}}
      by Alexandru Vaduva,
      pub. PACKT, 2015. \newline
      ISBN: 978-1-78439-739-5

      \item

      \textit{\textbf{Embedded Linux Primer: A Practical Real-World Approach}}
      by Chrisopher Hallinan,
      pub. Prentice Hall, 2006, 2010. \newline
      ISBN: 978-0-13-701783-6

      \item

      \textit{\textbf{Pro Linux Embedded Systems}}
      by Gene Sally,
      pub. Apress, 2010. \newline
      ISBN: 978-1-4302-7227-4

      \item

      \textit{\textbf{Embedded Linux System Design and Development}}
      by P. Raghavan, Amol Lad, Sriram Neelakandan,
      pub. CRC Press, 2005. \newline
      ISBN: 978-1-420-03161-4

      \item

      \textit{\textbf{Building Embedded Linux Systems}}
      by Karim Yaghmour, Jon Masters, Gilad Ben-Yossef, Phillippe Gerum,
      pub. O'Reilly, 2003, 2008. \newline
      ISBN: 978-0-596-52968-0

      \item

      \textit{\textbf{Embedded Linux: Hardware, Software and Interfacing}}
      by Craig Hollabaugh,
      pub. Addison-Wesley, 2002. \newline
      ISBN: 978-0-672-32226-6
   \fi

   \item

   \textit{\textbf{Linux Device Drivers, Third Edition}}, by
   Jonathan Corbet, Alessandro Rubini, and Greg
   Kroah-Hartman, pub. O'Reilly, 2005.

   The full, unabridged on-line version can be viewed at
   \url{https://lwn.net/Kernel/LDD3/} and downloaded from
   \url{https://lwn.net/Kernel/LDD3/ldd3_pdf.tar.bz2}. and
   source code for the examples in the book can be retrieved
   at
   \url{https://examples.oreilly.com/linuxdrive3/examples.tar.gz}.

   \item

   \textit{\textbf{Understanding the Linux Kernel, Third
         Edition}}, by Daniel P. Bovet and Marco Cesati,
   pub. O'Reilly, 2005.

   \item

   \textit{\textbf{Understanding Linux Network Internals}}, by
   Christian Benvenuti, pub. O'Reilly, 2006.

   \item

   \textit{\textbf{Linux Kernel in a Nutshell}}, by Greg
   Kroah-Hartman, pub. O'Reilly, 2006.

   The full text of the book can be viewed or downloaded at
   \url{https://www.kroah.com/lkn/}.

   \item

   \textit{\textbf{Essential Linux Device Drivers}}, by
   Sreekrishnan Venkateswaran, pub. Prentice Hall, 2008.

   The support website is at \url{https://elinuxdd.com/}.

   \item

   \textit{\textbf{Linux Kernel Development, Third Edition}}, by
   Robert Love, pub. Addison-Wesley, 2010.

   \item

   \textit{\textbf{Linux Debugging and Performance Tuning: Tips and
         Techniques}}, by Steve Best, pub. Prentice Hall,
   2005.

   \item

   \textit{\textbf{Writing Linux Device Drivers: a guide with
         exercises}}, by Jerry Cooperstein, pub.
   CreateSpace, 2009.

   \item

   \textit{\textbf{Linux Program Development: a guide with
         exercises}}, by Jerry Cooperstein, pub.
   CreateSpace, 2009.

\end{itemize}
\subsection*{
   Kernel Development and Mailing List Sites
}
\begin{itemize}
   \ifEMBEDDED
      \item

      \url{https://elinux.org/}

      \textbf{Embedded Linux Wiki:} This wiki is used to document
      many aspects of Embedded Linux: reducing boot times, power
      management, real time, debugging, legal issues, etc.
   \fi

   \item

   \url{https://lwn.net}

   \textbf{Linux Weekly News:} Latest \textbf{Linux} news
   including a Kernel section. This very important site is
   supported by user subscriptions, so please consider
   making an individual or corporate contribution!

   \item

   \url{https://www.linux.com/publications/how-participate-linux-community}

   A complete view of the kernel development process and how
   to join it.

   \item

   \url{https://lwn.net/Kernel/Index}

   The \textbf{Linux Weekly News} kernel article index.

   \item

   \url{https://lkml.org/}

   Archive of the Kernel Mailing List, updated in real time.

   \item

   \url{https://www.youtube.com/watch?v=LLBrBBImJt4}

   Greg Kroah-Hartman's video on how to create and submit
   a \textbf{Linux} kernel patch.

   \item

   \url{https://lxr.linux.no}

   The \textbf{lxr} kernel browser: Can be run though the
   Internet or installed locally.

   \item

   \url{https://elixir.bootlin.com/linux/latest/source}

   A newer replacement for lxr is elixir from \textbf{bootlin}
   which is written in Django and somewhat faster than lxr.

   \item

   \url{https://www.kernelnewbies.org}

   \textbf{kernelnewbies:} An excellent source of
   documentation; while starting at the lowest level and
   going to advanced.

   \item

   \url{https://www.kernelnewbies.org/LinuxChanges}

   \textbf{Comprehensive kernel changelog:} A detailed list of
   changes in the kernel and its \textbf{API} from one release
   to another. .

\end{itemize}
\subsection*{
   Other Documentation
}
\begin{itemize}
   \item

   \url{https://www.ibm.com/developerworks/linux}

   \textbf{IBM'}s \textbf{Linux} developer page, with white
   papers and other documentation.


\end{itemize}
