Linux kernel bovet cesati

Understanding the Linux Kernel, D. P. Bovet & M. Cesati

«In the spring semester of 1997, we taught a course on operating systems based on Linux 2.0. The idea was to encourage students to read the source code. To achieve this, we assigned term projects consisting of making changes to the kernel and performing tests on the modified version. We also wrote course notes for our students about a few critical features of Linux like task switching and task scheduling.

We continued along this line in the spring semester of 1998, but we moved on to the Linux 2.1 development version. Our course notes were becoming larger and larger. In July, 1998 we contacted O’Reilly & Associates, suggesting they publish a whole book on the Linux kernel. The real work started in the fall of 1998 and lasted about a year and a half. We read thousands of lines of code, trying to make sense of them. After all this work, we can say that it was worth the effort. We learned a lot of things you don’t find in books, and we hope we have succeded in conveying some of this information in the following pages. »

D. P. Bovet, M. Cesati (from the Preface of the first edition)

«The success encountered by this book encouraged us to continue along this line, and in the fall of 2001 we started planning a second edition covering Linux 2.4. As a result, we had to rewrite from scratch two-thirds of the book, increasing its size by roughly 25 percent. »

D. P. Bovet, M. Cesati (from the Preface of the second edition)

We have collected here several bits of information about our books. The page is essentially a link container, thus don’t expect too much from it. Be aware that the second edition of ULK is not just a slightly revised version of the first edition: rather, it is a whole new book, explaining the inner details of the Linux 2.4 stable version.

ULK, 2nd edition

Title: Understanding the Linux Kernel, 2nd Edition Authors: Daniel P. Bovet and Marco Cesati (ulkauthors@bravo.ce.uniroma2.it) Publisher: O’Reilly & Associates, Inc., 101 Morris Street, Sebastopol, CA 95472. Editor: Andy Oram Production Editor: Mary Brady Cover Designer: Edie Freedman Interior Designer: David Futato Catalog data: December 2002, ISBN 0-596-00213-0, 766 pages, $49.95 Publisher’s links: Online catalog Press announce Retail site Safari on-line version Excerpt from the book

Awards

International translations

The publisher maintains a page for to the international translations of its books.

O’Reilly & Associates (original) «Understanding the Linux kernel», 2nd edition, December 2002, ISBN: 0-596-00213-0, 766 pages, 49.95 US$. Contact: Andy Oram
Читайте также:  Ручная разметка kali linux

O’Reilly Japan ([Japanese title], 2nd edition, June 2003, ISBN: 4-87311-133-1, 870 pages, 5900 ¥). Contact: Ryoko Akaike. Kudos to the Japanese translators!

Reviews

ULK, 1st edition

Title: Understanding the Linux Kernel Authors: Daniel P. Bovet and Marco Cesati (ulkauthors@bravo.ce.uniroma2.it) Publisher: O’Reilly & Associates, Inc., 101 Morris Street, Sebastopol, CA 95472. Editor: Andy Oram Production Editor: Catherine Morris Cover Designer: Edie Freedman Catalog data: January 2001, ISBN 0-596-00002-2, 702 pages, $39.95 Publisher’s links: Online catalog Press announce Retail site Safari on-line version Excerpt from the book

International translations

The publisher maintains a page for to the international translations of its books.

[18 DPI, 8KB] [72 DPI, 44KB] [150 DPI, 184KB] [300 DPI, 680KB] [600 DPI, 2336KB]
O’Reilly & Associates (original) «Understanding the Linux kernel», 1st edition, October 2000, ISBN: 0-596-00002-2, 684 pages, 39.95 US$. Contact: Andy Oram

[18 DPI, 8KB] [72 DPI, 44KB] [150 DPI, 180KB] [300 DPI, 656KB] [600 DPI, 2152KB]
O’Reilly France («Le noyau Linux», 1re édition, Juillet 2001, ISBN: 2-84177-141-5, 692 pages, 53 euros ou 347,66 F). Contact: Dominique Buraud

[18 DPI, 8KB] [72 DPI, 44KB] [150 DPI, 176KB] [300 DPI, 680KB] [600 DPI, 2396KB]
O’Reilly Japan ([Japanese title], 1st edition, July 2001, ISBN: 4-87311-048-3, 790 pages, 5800 ¥). Contact: Shinji Nakao or Ryoko Akaike

[18 DPI, 8KB] [75 DPI, 56KB] [150 DPI, 192KB] [300 DPI, 680KB] [600 DPI, 2184KB]
Wydawnictwo RM, Warszawa 2001 (Linux kernel, 1st edition, 2001, ISBN: 83-7243-176-0, 634 pages). Contact: Cindy Wetterlund

[18 DPI, 8KB] [72 DPI, 48KB] [150 DPI, 192KB] [300 DPI, 696KB] [600 DPI, 2204KB]
Beijing China ([Chinese title], 1st edition, 2001, ISBN: 7-5083-0719-4, 719 pages, 79.00 ?; Contact: Douglas Wan

Reviews

  • Rory Beaton (FirstMonday)
  • Steve Coe (Canada Computes)
  • A.P. Lawrence
  • David L. Nicol (Linux-Kernel mailing list)
  • John Regehr (Slashdot)
  • Kevin Taylor (Northants LUG)
  • (Netsurfer digest) [Registration required]
  • (Kuro5hin)
  • Richard Ibbotson (Sheffield LUG)
  • kernelnewbies
  • Juan Julián Merelo Guervós
  • Regan Russell (Dr.Dobb’s Electronic Review of Computer Books)

Academic courses

Warning: some of the following links could be broken. Sorry.

The book was used (either as a textbook or as a suggested reading) in these academic courses:

  1. CS 3210 2-3-3 Design of Operating Systems (Phillip W. Hutto), Fall 2000, Georgia Tech College of Computing
  2. CS 3210 2-3-3 Design of Operating Systems (Phillip W. Hutto), Spring 2001, Georgia Tech College of Computing
  3. CS 550 Operating Systems (George Blankenship), Spring 2001, Marymount University
  4. COMS W4118 Operating Systems I (Jason Nieh), Fall 2001, Columbia University
  5. COMS E6118 Operating Systems II (Jason Nieh), Spring 2001, Columbia UniversityAlso see here
  6. CS162 Operating Systems and System Programming (Matt Welsh), Spring 2001, UC Berkeley
  7. CIS332 Operating Systems () .
  8. cs99q — Stanford Introductory Seminar: Open Source Project
  9. CS571 ?? (??) G. Mason University
  10. Arquitectura de Clusters (Diego R. Llanos), Departamento de Informática Universidad de Valladolid, España
  11. COSC 614.191: Operating Systems (John M. Cavallo), Spring 2001, BOWIE STATE UNIVERSITY — DEPARTMENT OF COMPUTER SCIENCE
  12. CS 238/590 Introduction to Operating Systems (John Sterling), Polytechnic University, Dep of Computer and Information Sciences («This may do for Linux what Bach’s book did for System V»)
  13. Corso di Sistemi di Elaborazione:Sicurezza (Luigi V. Mancini), Università di Roma «La Sapienza», Dip. di Scienze dell’Informazione
  14. CS325 Principles of Operating Systems (Willie Chang), New Mexico Institute of Mining and Technology, Department of Computer Science
  15. 02.531-3 — Laboratório de Sistemas Operacionais (Hélio Crestana Guardia), Universidade Federal de São Carlos Departamento de Computaçã
  16. CS 600.318/418 Operating Systems (Jonathan S. Saphiro), .
  17. CPTR352 Operating Systems — 4 (Anthony Aaby), Computer Science Department Walla Walla College
  18. Sistemi Operativi I (Luigi V. Mancini), Dip. di Scienze dell’Informazione, Univ. di Roma «La Sapienza»
  19. Sistemas Operacionais II (Marinho Barcellos), Curso de Informática Universidade do Vale do Rio dos Sinos
  20. CSE 506 Operating Systems, Spring 2001 (Erez Zadok), Computer Science Department of SUNY at Stony Brook
  21. Sistemas de Operação (Pedro Medeiros,João Lourenço), Departamento de Informática da Faculdade de Ciências e Tecnologia da Universidades Nova de Lisboa
  22. Experimental Operating Systems (R. West), Computer Science Dep., Boston University
  23. CPSC 355: Operating Systems (M. Benard), Fall 2001, Electrical Engineering and Computer Science Dept., Tulane University, New Orleans
  24. CSCI 340: Operating Systems (Anthony P. Leclerc), Spring 2001, College of Charleston, South Carolian
Читайте также:  Linux mint настройки принтеров

Источник

Understanding the Linux Kernel

Understanding the Linux Kernel

Read it now on the O’Reilly learning platform with a 10-day free trial.

O’Reilly members get unlimited access to books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.

Book description

Why is Linux so efficient? Is it the right operating system for a particular application? What can be learned from looking at the kernel source code? These are the kinds of questions that Understanding the Linux Kernel takes in stride in this guided tour of the code that forms the core of all Linux operating systems. Linux is presented too often as a casual hacker experiment. It has increasingly become not only a mission-critical part of many organizations, but a sophisticated display of programming skill. It incorporates many advanced operating system concepts and has proven itself extremely robust and efficient for a wide range of uses. Understanding the Linux Kernel helps readers understand how Linux performs best and how it meets the challenge of different environments. The authors introduce each topic by explaining its importance, and show how kernel operations relate to the utilities that are familiar to Unix programmers and users. Major topics include:

  • Memory management, including file buffering, process swapping, and Direct Memory Access (DMA)
  • The Virtual File System and the Second Extended File System
  • Process creation and scheduling
  • Signals, interrupts, and the essential interfaces to device drivers
  • Timing
  • Synchronization in the kernel
  • Inter-Process Communication (IPC)
  • Program execution

Table of contents

  1. Copyright
  2. Preface
    1. The Audience for This Book
    2. Organization of the Material
    3. Overview of the Book
    4. Background Information
    5. Conventions in This Book
    6. How to Contact Us
    7. Acknowledgments
    1. Linux Versus Other Unix-Like Kernels
    2. Hardware Dependency
    3. Linux Versions
    4. Basic Operating System Concepts
    5. An Overview of the Unix Filesystem
    6. An Overview of Unix Kernels
    1. Memory Addresses
    2. Segmentation in Hardware
    3. Segmentation in Linux
    4. Paging in Hardware
    5. Paging in Linux
    6. Anticipating Linux 2.4
    1. Process Descriptor
    2. Process Switching
    3. Creating Processes
    4. Destroying Processes
    5. Anticipating Linux 2.4
    1. The Role of Interrupt Signals
    2. Interrupts and Exceptions
    3. Nested Execution of Exception and Interrupt Handlers
    4. Initializing the Interrupt Descriptor Table
    5. Exception Handling
    6. Interrupt Handling
    7. Returning from Interrupts and Exceptions
    8. Anticipating Linux 2.4
    1. Hardware Clocks
    2. The Timer Interrupt Handler
    3. PIT’s Interrupt Service Routine
    4. The TIMER_BH Bottom Half Functions
    5. System Calls Related to Timing Measurements
    6. Anticipating Linux 2.4
    1. Page Frame Management
    2. Memory Area Management
    3. Noncontiguous Memory Area Management
    4. Anticipating Linux 2.4
    1. The Process’s Address Space
    2. The Memory Descriptor
    3. Memory Regions
    4. Page Fault Exception Handler
    5. Creating and Deleting a Process Address Space
    6. Managing the Heap
    7. Anticipating Linux 2.4
    1. POSIX APIs and System Calls
    2. System Call Handler and Service Routines
    3. Wrapper Routines
    4. Anticipating Linux 2.4
    1. The Role of Signals
    2. Sending a Signal
    3. Receiving a Signal
    4. Real-Time Signals
    5. System Calls Related to Signal Handling
    6. Anticipating Linux 2.4
    1. Scheduling Policy
    2. The Scheduling Algorithm
    3. System Calls Related to Scheduling
    4. Anticipating Linux 2.4
    1. Kernel Control Paths
    2. Synchronization Techniques
    3. The SMP Architecture
    4. The Linux/SMP Kernel
    5. Anticipating Linux 2.4
    1. The Role of the VFS
    2. VFS Data Structures
    3. Filesystem Mounting
    4. Pathname Lookup
    5. Implementations of VFS System Calls
    6. File Locking
    7. Anticipating Linux 2.4
    1. I/O Architecture
    2. Associating Files with I/O Devices
    3. Device Drivers
    4. Character Device Handling
    5. Block Device Handling
    6. Page I/O Operations
    7. Anticipating Linux 2.4
    1. The Buffer Cache
    2. The Page Cache
    3. Anticipating Linux 2.4
    1. Reading and Writing a Regular File
    2. Memory Mapping
    3. Anticipating Linux 2.4
    1. What Is Swapping?
    2. Swap Area
    3. The Swap Cache
    4. Transferring Swap Pages
    5. Page Swap-Out
    6. Page Swap-In
    7. Freeing Page Frames
    8. Anticipating Linux 2.4
    1. General Characteristics
    2. Disk Data Structures
    3. Memory Data Structures
    4. Creating the Filesystem
    5. Ext2 Methods
    6. Managing Disk Space
    7. Reading and Writing an Ext2 Regular File
    8. Anticipating Linux 2.4
    1. Pipes
    2. FIFOs
    3. System V IPC
    4. Anticipating Linux 2.4
    1. Executable Files
    2. Executable Formats
    3. Execution Domains
    4. The exec-like Functions
    5. Anticipating Linux 2.4
    1. Prehistoric Age: The BIOS
    2. Ancient Age: The Boot Loader
    3. Middle Ages: The setup( ) Function
    4. Renaissance: The startup_32( ) Functions
    5. Modern Age: The start_kernel( ) Function
    1. To Be (a Module) or Not to Be?
    2. Module Implementation
    3. Linking and Unlinking Modules
    4. Linking Modules on Demand
    1. Books on Unix Kernels
    2. Books on the Linux Kernel
    3. Books on PC Architecture and Technical Manuals on Intel 80×86
    4. Other Online Documentation Sources

    Product information

    • Title: Understanding the Linux Kernel
    • Author(s): Daniel P. Bovet, Marco Cesati
    • Release date: October 2000
    • Publisher(s): O’Reilly Media, Inc.
    • ISBN: 9780596000028

    Источник

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