- The Linux Kernel documentation¶
- Licensing documentation¶
- User-oriented documentation¶
- Firmware-related documentation¶
- Application-developer documentation¶
- Introduction to kernel development¶
- Kernel API documentation¶
- Linux kernel program pdf
- About
- Up-to-date books
- Older books
- External links
- Linux kernel program pdf
- Linux kernel program pdf
The Linux Kernel documentation¶
This is the top level of the kernel’s documentation tree. Kernel documentation, like the kernel itself, is very much a work in progress; that is especially true as we work to integrate our many scattered documents into a coherent whole. Please note that improvements to the documentation are welcome; join the linux-doc list at vger.kernel.org if you want to help out.
Licensing documentation¶
The following describes the license of the Linux kernel source code (GPLv2), how to properly mark the license of individual files in the source tree, as well as links to the full license text.
User-oriented documentation¶
The following manuals are written for users of the kernel — those who are trying to get it to work optimally on a given system.
Firmware-related documentation¶
The following holds information on the kernel’s expectations regarding the platform firmwares.
Application-developer documentation¶
The user-space API manual gathers together documents describing aspects of the kernel interface as seen by application developers.
Introduction to kernel development¶
These manuals contain overall information about how to develop the kernel. The kernel community is quite large, with thousands of developers contributing over the course of a year. As with any large community, knowing how things are done will make the process of getting your changes merged much easier.
Kernel API documentation¶
These books get into the details of how specific kernel subsystems work from the point of view of a kernel developer. Much of the information here is taken directly from the kernel source, with supplemental material added as needed (or at least as we managed to add it — probably not all that is needed).
Источник
Linux kernel program pdf
The Linux Kernel Module Programming Guide
This project keeps the Linux Kernel Module Programming Guide up to date, with working examples for recent 5.x kernel versions. The guide has been around since 2001 and most copies of it on the web only describe old 2.6.x kernels.
- Get the latest source code from the GitHub page.
- Install the prerequisites.
- Generate PDF and/or HTML documents.
Step 1: Get the latest source code
Make sure you can run git with an Internet connection.
Step 2: Install the prerequisites
To gernate the book from source, TeXLive (MacTeX) is required.
For Ubuntu Linux, macOS, and other Unix-like systems, run the following command(s):
Alternatively, using Docker is recommended, as it guarantees the same dependencies with our GitHub Actions wokrflow. After install docker engine on your machine, pull the docker image twtug/lkmpg and run in isolated containers.
nerdctl is a Docker-compatible command line tool for containerd, and you can replace the above docker commands with nerdctl counterparts.
Step 3: Generate PDF and/or HTML documents
Now we could build document with following commands:
The Linux Kernel Module Programming Guide is a free book; you may reproduce and/or modify it under the terms of the Open Software License. Use of this work is governed by a copyleft license that can be found in the LICENSE file.
The complementary sample code is licensed under GNU GPL version 2, as same as Linux kernel.
About
The Linux Kernel Module Programming Guide (updated for 5.x kernels)
Источник
Up-to-date books
Linux Kernel in a Nutshell by Greg Kroah-Hartman, http://www.kroah.com/lkn/, online: html
- about configuring, building, installing, upgrading the kernel
Linux Device Drivers 3rd Edition, 2005, by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, O’Reilly Reference, online: pdf ,html
This book is a must read for device driver writing, and more generally, a good understanding of the Linux kernel subsystems involved with device driver writing. Topics such as building modules, debugging techniques, character device drivers, block device drivers, network device drivers, PCI subsystem, USB subsystem, concurrency and race conditions, time and memory management are covered by this book.
Linux Kernel Development 3rd Edition, by Robert Love (Addison-Wesley Professional, 2010, ISBN-13 : 9780672329463) see Pearson
This book is more general than Linux Device Drivers, and covers more parts of the kernel: scheduling, virtual memory management, etc.
Understanding The Linux Kernel 3rd Edition (O’Reilly and associates. ISBN: 0-596-00565-2)
This book is more general than Linux Device Drivers, and covers more parts of the kernel: scheduling, virtual memory management, etc.
Understanding The Linux Virtual Memory Manager, by Mel Gorman (Prentice Hall, ISBN 0131453483)
available online, see Understanding The Linux Virtual Memory Manager, online
Porting device drivers to 2.6, by Jonathan Corbet
available online, see Driver Porting, on LWN
Understanding Linux Network Internals 1st Edition, 2005 (O’Reilly, ISBN 0-596-00255-6)
- covers linux kernel 2.6
The Linux Kernel Primer: A Top-Down Approach for x86 and PowerPC Architectures, by Claudia Salzberg Rodriguez, Gordon Fischer, Steven Smolski (Prentice Hall PTR, 2005/7/19)
- Covers 2.6 with a focus on i386 and PPC architectures
- Code walkthrough
Older books
LinuxDeviceDrivers 2nd Edition (O\’Reilly and associates. ISBN: 0-596-00008-1)
- covers linux kernel 2.4
also available in electronic form, see Linux Device Drivers 2 online
UnderstandingTheLinuxKernel 2nd Edition (O\’Reilly and associates. ISBN: 0-596-00213-0) see O\’Reilly Reference
- covers linux kernel 2.4
External links
Anatomy of the Linux kernel — short and valuable introduction to internals of the kernel
Interactive Linux Kernel Map and poster — Have a look at Linux kernel source from a bird’s eye view.
Linux Cross Reference — browse the source online
explore more documentation at Linux Technology Reference
Compiling the Linux kernel: OS News Article
the linux-kernel mailing list archives: https://lore.kernel.org/lkml/
other Linux-related mailing list archives: https://lore.kernel.org/
From basic to advanced Linux Kernel articles (outdated) http://whatisthekernel.blogspot.com/
KernelNewbies: Documents (последним исправлял пользователь RandyDunlap 2021-01-09 02:55:16)
Источник
Linux kernel program pdf
For the book «Linux Kernel Programming», Kaiwan N Billimoria, Packt (Mar 2021).
Here, we present, in a chapter-wise format, additional online as well as book references. We feel that these will help you, the reader, in digging deeper into topics, or gaining additional views/information, or both. We definitely recommend you browse through the provided references. Also, you will find that some resources are repeated across chapters; we leave it this way so that you can gain all required resources in one place (and chapter-wise). (Obviously, these reference articles/blogs/etc are provided «as-is»; we cannot vouch for their correctness or validity).
For your convenience, below are chapter-wise links to the Further Reading notes:
Don’t forget: The companion book ‘Linux Kernel Programming (Part 2): Writing character device drivers: Learn to work with user-kernel interfaces, handle peripheral I/O & hardware interrupts’ is available as well! — It’s opensource GitHub repo is here.
Besides the Further Reading resource specified chapter-wise, be sure to refer to the «special» section below entitled Generic online and book resources : miscellaneous, very useful! These links and books are considered to be useful throughout your journey through this book and after.
Generic online and book resources : miscellaneous, very useful
- The Linux kernel documentation
- Very useful! LWN (Linux weekly news) Kernel index
- Deprecated things: DON’T use ’em! Just say No; Deprecated Interfaces, Language Features, Attributes, and Conventions
A few excellent books that come to mind (specific books on the Linux kernel and writing Linux device drivers are mentioned in the appropriate chapter’s Further reading section):
The Mythical Man Month, Frederick P Brooks
The Art of Unix Programming, Eric S Raymond (AW)
Programming Pearls, Jon Bentley
The Practice of Programming, Brian Kernighan and Rob Pike
The Pragmatic Programmer: From Journeyman to Master, Hunt and Thomas
The Joy of Linux, Hall and Proffitt
Hands-On System Programming with Linux, Kaiwan N Billimoria
Unix Network Programming, W. Richard Stevens
Unix Systems Programming: Communication, Concurrency and Threads, Robbins and Robbins
In general an excellent in-depth technical article: SO YOU WANT TO BUILD AN EMBEDDED LINUX SYSTEM?, Jay Carlson, Oct 2020 ; it covers an introduction to the whys and why-nots of using Linux on an embedded system, hardware and software design workflow, as well as a pretty detailed rundown on 10 CPUs/boards that run embedded Linux (with benchmarks)
Julia Evans’ blog and zines:
Tip (reprodcued from Chapter 5):
«Is there a really practical hands-on tip, an almost guaranteed way to become a kernel hacker? Of course, keep reading this book! Ha ha, yes, besides, do partake in the simply awesome Eudyptula Challenge. Hang on, it’s — very unfortuantely, and as of this writing — closed down. Fear not, here’s a site with all the challenges posted (and the solutions, don’t cheat!); do check it out and try the challenges.»
Chapter 1, Kernel Development Workspace Setup — Further Reading
Resources on setting up a Linux guest using VirtualBox on a Windows host:
An alternate, similarly excellent resource: Install Ubuntu on Oracle VirtualBox
Источник
Linux kernel program pdf
For the book «Linux Kernel Programming», Kaiwan N Billimoria, Packt (Mar 2021).
Here, we present, in a chapter-wise format, additional online as well as book references. We feel that these will help you, the reader, in digging deeper into topics, or gaining additional views/information, or both. We definitely recommend you browse through the provided references. Also, you will find that some resources are repeated across chapters; we leave it this way so that you can gain all required resources in one place (and chapter-wise). (Obviously, these reference articles/blogs/etc are provided «as-is»; we cannot vouch for their correctness or validity).
For your convenience, below are chapter-wise links to the Further Reading notes:
Don’t forget: The companion book ‘Linux Kernel Programming (Part 2): Writing character device drivers: Learn to work with user-kernel interfaces, handle peripheral I/O & hardware interrupts’ is available as well! — It’s opensource GitHub repo is here.
Besides the Further Reading resource specified chapter-wise, be sure to refer to the «special» section below entitled Generic online and book resources : miscellaneous, very useful! These links and books are considered to be useful throughout your journey through this book and after.
Generic online and book resources : miscellaneous, very useful
- The Linux kernel documentation
- Very useful! LWN (Linux weekly news) Kernel index
- Deprecated things: DON’T use ’em! Just say No; Deprecated Interfaces, Language Features, Attributes, and Conventions
A few excellent books that come to mind (specific books on the Linux kernel and writing Linux device drivers are mentioned in the appropriate chapter’s Further reading section):
The Mythical Man Month, Frederick P Brooks
The Art of Unix Programming, Eric S Raymond (AW)
Programming Pearls, Jon Bentley
The Practice of Programming, Brian Kernighan and Rob Pike
The Pragmatic Programmer: From Journeyman to Master, Hunt and Thomas
The Joy of Linux, Hall and Proffitt
Hands-On System Programming with Linux, Kaiwan N Billimoria
Unix Network Programming, W. Richard Stevens
Unix Systems Programming: Communication, Concurrency and Threads, Robbins and Robbins
In general an excellent in-depth technical article: SO YOU WANT TO BUILD AN EMBEDDED LINUX SYSTEM?, Jay Carlson, Oct 2020 ; it covers an introduction to the whys and why-nots of using Linux on an embedded system, hardware and software design workflow, as well as a pretty detailed rundown on 10 CPUs/boards that run embedded Linux (with benchmarks)
Julia Evans’ blog and zines:
Tip (reprodcued from Chapter 5):
«Is there a really practical hands-on tip, an almost guaranteed way to become a kernel hacker? Of course, keep reading this book! Ha ha, yes, besides, do partake in the simply awesome Eudyptula Challenge. Hang on, it’s — very unfortuantely, and as of this writing — closed down. Fear not, here’s a site with all the challenges posted (and the solutions, don’t cheat!); do check it out and try the challenges.»
Chapter 1, Kernel Development Workspace Setup — Further Reading
Resources on setting up a Linux guest using VirtualBox on a Windows host:
An alternate, similarly excellent resource: Install Ubuntu on Oracle VirtualBox
Источник