Linux Online Books

Intro

Mozete da izpolzvate Online books stranicata mi za tyrsene po zaglavie i/ili avtor. Turseneto e w biblioteka s pove4e ot 12000 zaglavia!

Knigi, opisani w Linux Kernel Documentation:

Tozi spisuk e HTML versia na kernel-docs.txt file ot Linux Kernel dokumentite. Prosto razdelih vi4ki zapisi za online books w otdelni files i knovertirah URL-ite.

  • The Linux Kernel by David A. Rusling.
    Description: On line, 200 pages book describing most aspects of the Linux Kernel. Probably, the first reference for beginners. Lots of illustrations explaining data structures use and relationships in the purest Richard W. Stevens’ style. Contents: "1.-Hardware Basics, 2.-Software Basics, 3.-Memory Management, 4.-Processes, 5.-Interprocess Communication Mechanisms, 6.-PCI, 7.-Interrupts and Interrupt Handling, 8.-Device Drivers, 9.-The File system, 10.-Networks, 11.-Kernel Mechanisms, 12.-Modules, 13.-The Linux Kernel Sources, A.-Linux Data Structures, B.-The Alpha AXP Processor, C.-Useful Web and FTP Sites, D.-The GNU General Public License, Glossary". In short: a must have.
    Keywords: everything!, book.

  • The Devil’s in the Details by Georg v. Zezschwitz and Alessandro Rubini.
    Description: Linux Journal Kernel Korner article. Here is it’s abstract: "This article, the third of four on writing character device drivers, introduces concepts of reading, writing, and using ioctl-calls".
    Keywords: read(), write(), select(), ioctl(), blocking/non blocking mode, interrupt handler.

  • Dissecting Interrupts and Browsing DMA by Alessandro Rubini and Georg v. Zezschwitz.
    Description: Linux Journal Kernel Korner article. Here is it’s abstract: "This is the fourth in a series of articles about writing character device drivers as loadable kernel modules. This month, we further investigate the field of interrupt handling. Though it is conceptually simple, practical limitations and constraints make this an “interesting” part of device driver writing, and several different facilities have been provided for different situations. We also investigate the complex topic of DMA".
    Keywords: interrupts, irqs, DMA, bottom halves, task queues.

  • Device Drivers Concluded by Georg v. Zezschwitz.
    Description: Finally, the above turned out into a five articles series. This latest one’s introduction reads: "This is the last of five articles about character device drivers. In this final section, Georg deals with memory mapping devices, beginning with an overall description of the Linux memory management concepts".
    Keywords: address spaces, pages, pagination, page management, demand loading, swapping, memory protection, memory mapping, mmap, virtual memory areas (VMAs), vremap, PCI.

  • Network Buffers And Memory Management by Alan Cox.
    Description: Linux Journal Kernel Korner. Here is the abstract: "Writing a network device driver for Linux is fundamentally simple—most of the complexity (other than talking to the hardware) involves managing network packets in memory".
    Keywords: sk_buffs, network devices, protocol/link layer variables, network devices flags, transmit, receive, configuration, multicast.

  • An Introduction to the Linux 1.3.x Networking Code by Vipul Gupta.
    Description: A short description of files under the net/ directory. Each file has a one or two lines paragraph description. sk_buffs explained, too, with some beautiful pictures. A little bit outdated.
    Keywords: files, sk_buffs.

  • Linux ioctl() Primer by Vipul Gupta.
    Description: Little description and examples on the use and implementation of the ioctl() system call. A little bit biased towards sockets.
    Keywords: ioctl, socket.

  • Writing Linux Device Drivers by Michael K. Johnson.
    Description: Introductory 50-minutes (sic) tutorial on writing device drivers. 12 pages written by the same author of the "Kernel Hackers’ Guide" which give a very good overview of the topic.
    Keywords: files, VFS, file operations, kernel interface, character vs block devices, I/O access, hardware interrupts, DMA, access to user memory, memory allocation, timers.

  • The Venus kernel interface by Peter J. Braam.
    Description: "This document describes the communication between Venus and kernel level file system code needed for the operation of the Coda filesystem. This version document is meant to describe the current interface (version 1.0) as well as improvements we envisage".
    Keywords: coda, filesystem, venus, cache manager.

  • Programming PCI-Devices under Linux by Claus Schroeter.
    Description: 6 pages tutorial on PCI programming under Linux. Gives the basic concepts on the architecture of the PCI subsystem, as long as basic functions and macros to read/write the devices and perform busmastering.
    Keywords: PCI, device, busmastering.

  • Writing Character Device Driver for Linux by R. Baruch and C. Schroeter.
    Description: 68 pages paper on writing character drivers. A little bit old (1.993, 1.994) although still useful.
    Keywords: character device drivers, I/O, signals, DMA, accesing ports in user space, kernel environment.

  • The Linux Kernel Hackers’ Guide by Michael K.Johnson and others.
    Description: No more Postscript book-like version. Only HTML now. Many people have contributed. The interface is similar to web available mailing lists archives. You can find some articles and then some mails asking questions about them and/or complementing previous contributions. A little bit anarchic in this aspect, but with some valuable information in some cases.
    Keywords: everything!

  • Design and Implementation of the Second Extended by R閙y Card, Theodore Ts’o, Stephen Tweedie.
    Description: Paper written by three of the top ext2 hackers. Covers Linux filesystems history, ext2 motivation, ext2 features, design, physical structure on disk, performance, benchmarks, e2fsck’s passes description… A must read! Notes: This paper was first published in the Proceedings of the First Dutch International Symposium on Linux, ISBN 90-367-0385-9.
    Keywords: ext2, linux fs history, inode, directory, link, devices, VFS, physical structure, performance, benchmarks, ext2fs library, ext2fs tools, e2fsck.

  • The Second Extended Filesystem by Matthew Wilcox.
    Description: Description of ext2’s blocks, directories, inodes… Notes: Seems to be DOWN. Anyone knows another link for it?
    Keywords: ext2, filesystem.

  • Analysis of the Ext2fs structure by Louis-Dominique Dubeau.
    Description: Description of ext2’s blocks, directories, inodes, bitmaps, invariants …
    Keywords: ext2, filesystem, ext2fs.

  • Journaling the Linux ext2fs Filesystem by Stephen C. Tweedie.
    Description: Excellent 8-pages paper explaining the journaling capabilities added to ext2 by the author, showing different problems faced and the alternatives chosen.
    Keywords: ext3, journaling.

  • Kernel API changes from 2.0 to 2.2 by Richard Gooch.
    Description: Kernel functions/structures/variables which changed from 2.0.x to 2.2.x.
    Keywords: 2.2, changes.

  • Kernel API changes from 2.2 to 2.3 by Richard Gooch.
    Description: Kernel functions/structures/variables which changed from 2.2.x to 2.3.x.
    Keywords: 2.3, changes.

  • Linux Kernel Module Programming Guide by Ori Pomerantz.
    Description: Very nice 92 pages GPL book on the topic of modules programming. Lots of examples.
    Keywords: modules, GPL book, /proc, ioctls, system calls, interrupt handlers .

  • Device File System (devfs) Overview by Richard Gooch.
    Description: Document describing Richard Gooch’s controversial devfs, which allows for dynamic devices, only shows present devices in /dev, gets rid of major/minor numbers allocation problems, and allows for hundreds of identical devices (which some USB systems might demand soon).
    Keywords: filesystem, /dev, devfs, dynamic devices, major/minor allocation, device management.

  • I/O Event Handling Under Linux by Richard Gooch.
    Description: From the Introduction: "I/O Event handling is about how your Operating System allows you to manage a large number of open files (file descriptors in UNIX/POSIX, or FDs) in your application. You want the OS to notify you when FDs become active (have data ready to be read or are ready for writing). Ideally you want a mechanism that is scalable. This means a large number of inactive FDs cost very little in memory and CPU time to manage".
    Keywords: IO, I/O, select(2), poll(2), FDs, aio_read(2), readiness event queues.

  • The Kernel Hacking HOWTO by Various Talented People, and Rusty.
    Description: From the Introduction: "Please understand that I never wanted to write this document, being grossly underqualified, but I always wanted to read it, and this was the only way. I simply explain some best practices, and give reading entry-points into the kernel sources. I avoid implementation details: that’s what the code is for, and I ignore whole tracts of useful routines. This document assumes familiarity with C, and an understanding of what the kernel is, and how it is used. It was originally written for the 2.3 kernels, but nearly all of it applies to 2.2 too; 2.0 is slightly different. ".
    Keywords: HOWTO, kernel contexts, deadlock, locking, modules, symbols, return conventions.

  • Conceptual Architecture of the Linux Kernel by Ivan T. Bowman.
    Description: Conceptual software arquitecture of the Linux kernel, automatically extracted from the source code. Very detailed. Good figures. Gives good overall kernel understanding.
    Keywords: conceptual software arquitecture, extracted design, reverse engineering, system structure.

  • ALSA 0.5.0 Developer documentation by Stephan ‘Jumpy’ Bartels .
    Description: Advanced Linux Sound Architecture for developers, both at kernel and user-level sides. Work in progress. ALSA is supposed to be Linux’s next generation sound architecture.
    Keywords: ALSA, sound, soundcard, driver, lowlevel, hardware.

  • Programming Guide for Linux USB Device Drivers by Detlef Fliegl.
    Description: A must-read. From the Preface: "This document should give detailed information about the current state of the USB subsystem and its API for USB device drivers. The first section will deal with the basics of USB devices. You will learn about different types of devices and their properties. Going into detail you will see how USB devices communicate on the bus. The second section gives an overview of the Linux USB subsystem [2] and the device driver framework. Then the API and its data structures will be explained step by step. The last section of this document contains a reference of all API calls and their return codes". Notes: Beware: the main page states: "This document may not be published, printed or used in excerpts without explicit permission of the author". Fortunately, it may still be read…
    Keywords: USB, universal serial bus.

  • Tour Of the Linux Kernel Source by Vijo Cherian.
    Description: A classic of this page! Was lost for a while and is back again. Thanks Vijo! TOLKS: the name says it all. A tour of the sources, describing directories, files, variables, data structures… It covers general stuff, device drivers, filesystems, IPC and Networking Code.
    Keywords: .

  • Linux Kernel Mailing List Glossary by John Levon.
    Description: From the introduction: "This glossary is intended as a brief description of some of the acronyms and terms you may hear during discussion of the Linux kernel".
    Keywords: glossary, terms, linux-kernel.

  • Linux Kernel Locking HOWTO by Various Talented People, and Rusty.
    Description: The title says it all: document describing the locking system in the Linux Kernel either in uniprocessor or SMP systems. Notes: "It was originally written for the later (>2.3.47) 2.3 kernels, but most of it applies to 2.2 too; 2.0 is slightly different". Freely redistributable under the conditions of the GNU General Public License.
    Keywords: locks, locking, spinlock, semaphore, atomic, race condition, bottom halves, tasklets, softirqs.

  • Porting Linux 2.0 Drivers To Linux 2.2 by Alan Cox.
    Description: Article from Linux Magazine on porting from 2.0 to 2.2 kernels.
    Keywords: ports, porting.

  • Porting Device Drivers To Linux 2.2 by Alan Cox.
    Description: Second part on porting from 2.0 to 2.2 kernels.
    Keywords: ports, porting.

  • How To Make Sure Your Driver Will Work On The Power by Paul Mackerras.
    Description: The title says it all.
    Keywords: Mac, Power Macintosh, porting, drivers, compatibility.

  • An Introduction to SCSI Drivers by Alan Cox.
    Description: The title says it all.
    Keywords: SCSI, device, driver.

  • Advanced SCSI Drivers And Other Tales by Alan Cox.
    Description: The title says it all.
    Keywords: SCSI, device, driver, advanced.

  • Concrete Architecture of the Linux Kernel by Ivan T. Bowman, Saheem Siddiqi, and Meyer C. Tanuan.
    Description: Concrete arquitecture of the Linux kernel, automatically extracted from the source code. Very detailed. Good figures. Gives good overall kernel understanding. This papers focus on lower details than its predecessor (files, variables…).
    Keywords: concrete arquitecture, extracted design, reverse engineering, system structure, dependencies.

  • Writing Linux Mouse Drivers by Alan Cox.
    Description: The title says it all.
    Keywords: mouse, driver, gpm.

  • More on Mouse Drivers by Alan Cox.
    Description: The title still says it all.
    Keywords: mouse, driver, gpm, races, asynchronous I/O.

  • Writing Video4linux Radio Driver by Alan Cox.
    Description: The title says it all.
    Keywords: video4linux, driver, radio, radio devices.

  • Video4linux Drivers, Part 1 by Alan Cox.
    Description: The title says it all.
    Keywords: video4linux, driver, video capture, capture devices, camera driver.

  • Video4linux Drivers, Part 2 by Alan Cox.
    Description: The title says it all.
    Keywords: video4linux, driver, video capture, capture devices, camera driver, control, query capabilities, capability, facility.

  • PCI Management in Linux 2.2 by Alan Cox.
    Description: The title says it all.
    Keywords: PCI, bus, bus-mastering.

  • Linux 2.4 Kernel Internals by Tigran Aivazian.
    Description: A little book used for a short training course I gave on this subject at VERITAS. Covers building the kernel image, booting (including SMP), process management, VFS and more.
    Keywords: Linux, kernel, VFS, SMP boot

  • Linux as a Case Study by Ivan T. Bowman, Richard C. Holt and Neil V. Brewster.
    Description: Paper appeared at ICSE’99, Los Angeles, May 16-22, 1999. A mixture of the previous two documents from the same author.
    Keywords: software architecture, architecture recovery, redocumentation.

  • Overview of the Virtual File System by Richard Gooch.

    Keywords: VFS, File System, mounting filesystems, opening files, dentries, dcache. Description: Brief introduction to the Linux Virtual File System. What is it, how it works, operations taken when opening a file or mounting a file system and description of important data structures explaining the purpose of each of their entries.

  • The Linux RAID-1, 4, 5 Code by Ingo Molnar, Gadi Oxman and Miguel de Icaza.
    Description: Linux Journal Kernel Korner article. Here is it’s abstract: "A description of the implementation of the RAID-1, RAID-4 and RAID-5 personalities of the MD device driver in the Linux kernel, providing users with high performance and reliable, secondary-storage capability using software".
    Keywords: RAID, MD driver.

  • Dynamic Kernels by Alessandro Rubini.
    Description: Linux Journal Kernel Korner article. Here is it’s abstract: "This is the first of a series of four articles co-authored by Alessandro Rubini and Georg Zezchwitz which present a practical approach to writing Linux device drivers as kernel loadable modules. This installment presents an introduction to the topic, preparing the reader to understand next month’s installment".
    Keywords: device driver, module, loading/unloading modules, allocating resources.

  • Dynamic Kernels by Alessandro Rubini.
    Description: Linux Journal Kernel Korner article. Here is it’s abstract: "This article, the second of four, introduces part of the actual code to create custom module implementing a character device driver. It describes the code for module initialization and cleanup, as well as the open() and close() system calls".
    Keywords: character driver, init_module, clean_up module, autodetection, mayor number, minor number, file operations, open(), close().

Polezni prepratki

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s