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.

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.

  1. Get the latest source code from the GitHub page.
  2. Install the prerequisites.
  3. 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.

Читайте также:  Отображать скрытые значки windows 10 как уменьшить

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

  • This book is specifically dedicated to the virtual memory manager of the Linux kernel, and so goes into deep details about the internals of this important but complex subsystem of the kernel. It clearly is a must read for the ones interested in memory management.
  • Porting device drivers to 2.6, by Jonathan Corbet

    available online, see Driver Porting, on LWN

  • Not really a book, but it is so complete and interesting that it can be considered as such.
  • 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

    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/

    Читайте также:  Microsoft windows free photos

    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:

    Читайте также:  Планировщик заданий windows 10 не выполняется

    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

    Источник

    Оцените статью