Understand linux kernel 3rd edition

Understanding the Linux Kernel, 3rd Edition

Understanding the Linux kernel , 3rd EditionBy Daniel P. Bovet, Marco : O’ReillyPub Date: November 2005 ISBN: 0-596-00565-2 Pages: 942 Table of Contents | IndexIn order to thoroughly understand what makes Linux tick and why it works so well on a wide variety ofsystems, you need to delve deep into the heart of the kernel . The kernel handles all interactions between theCPU and the external world, and determines which programs will share processor time, in what order. Itmanages limited memory so well that hundreds of processes can share the system efficiently, and expertlyorganizes data transfers so that the CPU isn’t kept waiting any longer than necessary for the relatively third Edition of Understanding the Linux kernel takes you on a guided tour of the most significant datastructures, algorithms, and programming tricks used in the kernel .

Understanding the Linux Kernel at the end of 2000, which covered Linux 2.2 with a few anticipations on Linux 2.4. The success encountered by this book encouraged us to continue along this line. At the end of 2002, we came out with a second edition covering Linux 2.4. You are now looking at the third edition, which covers Linux 2.6.

Tags:

Information

Link to this page:

Please notify us if you found a problem with this document:

Thank you for your participation!

Thank you for your participation!

Transcription of Understanding the Linux Kernel, 3rd Edition

1 Understanding the Linux kernel , 3rd EditionBy Daniel P. Bovet, Marco : O’ReillyPub Date: November 2005 ISBN: 0-596-00565-2 Pages: 942 Table of Contents | IndexIn order to thoroughly understand what makes Linux tick and why it works so well on a wide variety ofsystems, you need to delve deep into the heart of the kernel . The kernel handles all interactions between theCPU and the external world, and determines which programs will share processor time, in what order. Itmanages limited memory so well that hundreds of processes can share the system efficiently, and expertlyorganizes data transfers so that the CPU isn’t kept waiting any longer than necessary for the relatively third Edition of Understanding the Linux kernel takes you on a guided tour of the most significant datastructures, algorithms, and programming tricks used in the kernel .

2 Probing beyond superficial features, theauthors offer valuable insights to people who want to know how things really work inside their Intel-specific features are discussed. Relevant segments of code are dissected line by line. But thebook covers more than just the functioning of the code; it explains the theoretical underpinnings of whyLinux does things the way it Edition of the book covers Version , which has seen significant changes to nearly every kernelsubsystem, particularly in the areas of memory management and block devices. The book focuses on thefollowing topics:Memory management, including file buffering, process swapping, and Direct memory Access(DMA) The Virtual Filesystem layer and the Second and Third Extended Filesystems Process creation and scheduling Signals, interrupts, and the essential interfaces to device drivers Timing Synchronization within the kernel Interprocess Communication (IPC) Program execution Understanding the Linux kernel will acquaint you with all the inner workings of Linux , but it’s more thanjust an academic exercise.

Читайте также:  Общий доступ файлам сети linux

3 You’ll learn what conditions bring out Linux ‘s best performance, and you’ll seehow it meets the challenge of providing good system response during process scheduling, file access, andmemory management in a wide variety of environments. This book will help you make the most of yourLinux the Linux kernel , 3rd EditionBy Daniel P. Bovet, Marco : O’ReillyPub Date: November 2005 ISBN: 0-596-00565-2 Pages: 942 Table of Contents | IndexCopyrightPrefaceThe Audience for This BookOrganization of the MaterialLevel of DescriptionOverview of the BookBackground InformationConventions in This BookHow to Contact UsSafari EnabledAcknowledgments Chapter 1.

4 IntroductionSection Linux Versus Other Unix-Like KernelsSection Hardware DependencySection Linux VersionsSection Basic Operating System ConceptsSection An Overview of the Unix FilesystemSection An Overview of Unix Kernels Chapter 2. Memory AddressingSection Memory AddressesSection Segmentation in HardwareSection Segmentation in LinuxSection Paging in HardwareSection Paging in Linux Chapter 3. ProcessesSection Processes, Lightweight Processes, and ThreadsSection Process DescriptorSection Process SwitchSection Creating ProcessesSection Destroying Processes Chapter 4.

5 Interrupts and ExceptionsSection The Role of Interrupt SignalsSection Interrupts and ExceptionsSection Nested Execution of Exception and Interrupt HandlersSection Initializing the Interrupt Descriptor TableSection Exception HandlingSection Interrupt HandlingSection Softirqs and TaskletsSection Work QueuesSection Returning from Interrupts and Exceptions Chapter 5. kernel SynchronizationSection How the kernel Services Requests11 Section Synchronization PrimitivesSection Synchronizing Accesses to kernel Data StructuresSection Examples of Race Condition Prevention Chapter 6.

6 Timing MeasurementsSection Clock and Timer CircuitsSection The Linux Timekeeping ArchitectureSection Updating the Time and DateSection Updating System StatisticsSection Software Timers and Delay FunctionsSection System Calls Related to Timing Measurements Chapter 7. Process SchedulingSection Scheduling PolicySection The Scheduling AlgorithmSection Data Structures Used by the SchedulerSection Functions Used by the SchedulerSection Runqueue Balancing in Multiprocessor SystemsSection System Calls Related to Scheduling Chapter 8. Memory ManagementSection Page Frame ManagementSection Memory Area ManagementSection Noncontiguous Memory Area Management Chapter 9.

7 Process Address SpaceSection The Process’s Address SpaceSection The Memory DescriptorSection Memory RegionsSection Page Fault Exception HandlerSection Creating and Deleting a Process Address SpaceSection Managing the Heap Chapter 10. System CallsSection POSIX APIs and System CallsSection System Call Handler and Service RoutinesSection Entering and Exiting a System CallSection Parameter PassingSection kernel Wrapper Routines Chapter 11. SignalsSection The Role of SignalsSection Generating a SignalSection Delivering a SignalSection System Calls Related to Signal Handling Chapter 12.

Читайте также:  Linux masters of orion

8 The Virtual FilesystemSection The Role of the Virtual Filesystem (VFS)Section VFS Data StructuresSection Filesystem TypesSection Filesystem HandlingSection Pathname LookupSection Implementations of VFS System CallsSection File Locking Chapter 13. I/O Architecture and Device DriversSection I/O ArchitectureSection The Device Driver ModelSection Device FilesSection Device DriversSection Character Device Drivers Chapter 14. Block Device Drivers22 Section Block Devices HandlingSection The Generic Block LayerSection The I/O SchedulerSection Block Device DriversSection Opening a Block Device File Chapter 15.

9 The Page CacheSection The Page CacheSection Storing Blocks in the Page CacheSection Writing Dirty Pages to DiskSection The sync( ), fsync( ), and fdatasync( ) System Calls Chapter 16. Accessing FilesSection Reading and Writing a FileSection Memory MappingSection Direct I/O TransfersSection Asynchronous I/O Chapter 17. Page Frame ReclaimingSection The Page Frame Reclaiming AlgorithmSection Reverse MappingSection Implementing the PFRAS ection Swapping Chapter 18. The Ext2 and Ext3 FilesystemsSection General Characteristics of Ext2 Section Ext2 Disk Data StructuresSection Ext2 Memory Data StructuresSection Creating the Ext2 FilesystemSection Ext2 MethodsSection Managing Ext2 Disk SpaceSection The Ext3 Filesystem Chapter 19.

10 Process CommunicationSection PipesSection FIFOsSection System V IPCS ection POSIX Message Queues Chapter 20. Program ExZecutionSection Executable FilesSection Executable FormatsSection Execution DomainsSection The exec Functions Appendix A. System StartupSection Prehistoric Age: the BIOSS ection Ancient Age: the Boot LoaderSection Middle Ages: the setup( ) FunctionSection Renaissance: the startup_32( ) FunctionsSection Modern Age: the start_kernel( ) Function Appendix B. ModulesSection To Be (a Module) or Not to Be?Section Module ImplementationSection Linking and Unlinking ModulesSection Linking Modules on DemandBibliographyBooks on Unix KernelsBooks on the Linux KernelBooks on PC Architecture and Technical Manuals on Intel MicroprocessorsOther Online Documentation Sources33 Research Papers Related to Linux DevelopmentAbout the AuthorsColophonIndex44 Understanding the Linux kernel , Third Editionby Daniel P.

Источник

Understanding the Linux Kernel, 3rd Edition by

Get full access to Understanding the Linux Kernel, 3rd Edition and 60K+ other titles, with a free 10-day trial of O’Reilly.

There are also live events, courses curated by job role, and more.

Chapter 1. Introduction

Linux [*] is a member of the large family of Unix-like operating systems . A relative newcomer experiencing sudden spectacular popularity starting in the late 1990s, Linux joins such well-known commercial Unix operating systems as System V Release 4 (SVR4), developed by AT&T (now owned by the SCO Group); the 4.4 BSD release from the University of California at Berkeley (4.4BSD); Digital UNIX from Digital Equipment Corporation (now Hewlett-Packard); AIX from IBM; HP-UX from Hewlett-Packard; Solaris from Sun Microsystems; and Mac OS X from Apple Computer, Inc. Beside Linux, a few other opensource Unix-like kernels exist, such as FreeBSD , NetBSD , and OpenBSD .

Читайте также:  Linux setup network manager

Linux was initially developed by Linus Torvalds in 1991 as an operating system for IBM-compatible personal computers based on the Intel 80386 microprocessor. Linus remains deeply involved with improving Linux, keeping it up-to-date with various hardware developments and coordinating the activity of hundreds of Linux developers around the world. Over the years, developers have worked to make Linux available on other architectures, including Hewlett-Packard’s Alpha, Intel’s Itanium, AMD’s AMD64, PowerPC, and IBM’s zSeries.

One of the more appealing benefits to Linux is that it isn’t a commercial operating system: its source code under the GNU General Public License ( GPL ) [†] is open and available to anyone to study (as we will in this book); if you download the code (the official site is http://www.kernel.org) or check the sources on a Linux CD, you will be able to explore, from top to bottom, one of the most successful modern operating systems. This book, in fact, assumes you have the source code on hand and can apply what we say to your own explorations.

Technically speaking, Linux is a true Unix kernel, although it is not a full Unix operating system because it does not include all the Unix applications, such as filesystem utilities, windowing systems and graphical desktops, system administrator commands, text editors, compilers, and so on. However, because most of these programs are freely available under the GPL, they can be installed in every Linux-based system.

Because the Linux kernel requires so much additional software to provide a useful environment, many Linux users prefer to rely on commercial distributions, available on CD-ROM, to get the code included in a standard Unix system. Alternatively, the code may be obtained from several different sites, for instance http://www.kernel.org. Several distributions put the Linux source code in the /usr/src/linux directory. In the rest of this book, all file pathnames will refer implicitly to the Linux source code directory.

[*] LINUX® is a registered trademark of Linus Torvalds.

[†] The GNU project is coordinated by the Free Software Foundation, Inc. (http://www.gnu.org); its aim is to implement a whole operating system freely usable by everyone. The availability of a GNU C compiler has been essential for the success of the Linux project.

Get Understanding the Linux Kernel, 3rd Edition now with the O’Reilly learning platform.

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

Источник

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