چه کسانی این کتاب را می‌خوانند

دانشجوعلاقه‌مند یادگیری
کتابخوان حرفه‌ایلذت مطالعه
نویسندهالهام‌گیری

Understanding the LINUX Kernel: From I/O Ports to Process Management

Daniel Pierre Bovet, Marco Cesati, Daniel P. Bovet

قیمت نهایی

۴۴٬۰۰۰ تومان۴۹٬۰۰۰ تومان۱۰٪ تخفیف
  • تخفیف زمان‌دار−۵٬۰۰۰ تومان

۵٬۰۰۰ تومان صرفه‌جویی نسبت به قیمت اصلی

نسخه اصلی و اورجینال

بلافاصله پس از خرید، فایل کتاب روی دستگاه شما آمادهٔ دانلود است.

تحویل فوری
پرداخت امن
ضمانت فایل
پشتیبانی

مشخصات کتاب

سال انتشار
۲۰۰۰
فرمت
PDF
زبان
انگلیسی
تعداد صفحات
۲۰ صفحه
حجم فایل
۲٫۹ مگابایت

دربارهٔ کتاب

Understanding the Linux Kernel is intended to be read by those who are happy to check points off against the source code. The first thing you learn is how Linux, released from commercial constraints, is able to take advantage of the best ideas from other systems, implemented in wonderfully flexible ways. A good example is the Virtual File System (VFS), which has made it easy to add support for file systems from almost every other OS. It's fascinating to find out how such features are implemented. Then, there are loadable modules, I/O, scheduling, multitasking, multiprocessing, interrupts, spin locks, semaphores, and all of the other goodies that are involved in making a kernel work.The authors are concerned primarily with the Linux 2.2 kernel. They discuss how Linus Torvald's decisions on kernel issues translate into architecture; for example, how the Linux memory management uses a slab allocator on top of a buddy system for greater efficiency. Similarly, at the cost of a little complexity, the decision to use three-level memory paging, when two work fine on 32-bit systems, makes it possible to port to 64-bit processors without changes. The tradeoffs between complexity and efficiency are discussed for most kernel features, and each chapter finishes with related new features in kernel 2.4.Despite the lucid and knowledgeable writing, you'll come up against some brain-stretching complexity. Nevertheless, this book is an important addition to the Linux canon. Cover......Page 1 Table of Contents......Page 3 Organization of the Material......Page 7 Overview of the Book......Page 9 How to Contact Us......Page 10 Acknowledgments......Page 11 1.1 Linux Versus Other Unix-Like Kernels......Page 12 1.2 Hardware Dependency......Page 16 1.3 Linux Versions......Page 17 1.4 Basic Operating System Concepts......Page 18 1.5 An Overview of the Unix Filesystem......Page 22 1.6 An Overview of Unix Kernels......Page 28 2.1 Memory Addresses......Page 42 2.2 Segmentation in Hardware......Page 43 2.3 Segmentation in Linux......Page 47 2.4 Paging in Hardware......Page 50 2.5 Paging in Linux......Page 58 2.6 Anticipating Linux 2.4......Page 69 3.1 Process Descriptor......Page 70 3.2 Process Switching......Page 84 3.3 Creating Processes......Page 92 3.4 Destroying Processes......Page 99 3.5 Anticipating Linux 2.4......Page 100 4.1 The Role of Interrupt Signals......Page 102 4.2 Interrupts and Exceptions......Page 103 4.3 Nested Execution of Exception and Interrupt Handlers......Page 112 4.4 Initializing the Interrupt Descriptor Table......Page 113 4.5 Exception Handling......Page 115 4.6 Interrupt Handling......Page 118 4.7 Returning from Interrupts and Exceptions......Page 132 4.8 Anticipating Linux 2.4......Page 135 5.1 Hardware Clocks......Page 137 5.2 The Timer Interrupt Handler......Page 139 5.3 PIT's Interrupt Service Routine......Page 140 5.4 The TIMER_BH Bottom Half Functions......Page 142 5.5 System Calls Related to Timing Measurements......Page 151 5.6 Anticipating Linux 2.4......Page 154 6.1 Page Frame Management......Page 155 6.2 Memory Area Management......Page 166 6.3 Noncontiguous Memory Area Management......Page 182 6.4 Anticipating Linux 2.4......Page 187 7.1 The Process's Address Space......Page 189 7.2 The Memory Descriptor......Page 191 7.3 Memory Regions......Page 192 7.4 Page Fault Exception Handler......Page 207 7.5 Creating and Deleting a Process Address Space......Page 218 7.6 Managing the Heap......Page 220 7.7 Anticipating Linux 2.4......Page 222 8.1 POSIX APIs and System Calls......Page 223 8.2 System Call Handler and Service Routines......Page 224 8.3 Wrapper Routines......Page 235 8.4 Anticipating Linux 2.4......Page 236 9.1 The Role of Signals......Page 237 9.2 Sending a Signal......Page 245 9.3 Receiving a Signal......Page 248 9.4 Real-Time Signals......Page 257 9.5 System Calls Related to Signal Handling......Page 258 9.6 Anticipating Linux 2.4......Page 263 10.1 Scheduling Policy......Page 264 10.2 The Scheduling Algorithm......Page 267 10.3 System Calls Related to Scheduling......Page 278 10.4 Anticipating Linux 2.4......Page 282 11.1 Kernel Control Paths......Page 283 11.2 Synchronization Techniques......Page 284 11.3 The SMP Architecture......Page 292 11.4 The Linux/SMP Kernel......Page 296 11.5 Anticipating Linux 2.4......Page 308 12.1 The Role of the VFS......Page 309 12.2 VFS Data Structures......Page 314 12.3 Filesystem Mounting......Page 330 12.4 Pathname Lookup......Page 335 12.5 Implementations of VFS System Calls......Page 339 12.6 File Locking......Page 343 12.7 Anticipating Linux 2.4......Page 348 13.1 I/O Architecture......Page 349 13.2 Associating Files with I/O Devices......Page 354 13.3 Device Drivers......Page 359 13.4 Character Device Handling......Page 366 13.5 Block Device Handling......Page 367 13.6 Page I/O Operations......Page 383 13.7 Anticipating Linux 2.4......Page 386 14. Disk Caches......Page 388 14.1 The Buffer Cache......Page 389 14.2 The Page Cache......Page 402 14.3 Anticipating Linux 2.4......Page 404 15.1 Reading and Writing a Regular File......Page 406 15.2 Memory Mapping......Page 414 15.3 Anticipating Linux 2.4......Page 422 16.1 What Is Swapping?......Page 423 16.2 Swap Area......Page 426 16.3 The Swap Cache......Page 435 16.4 Transferring Swap Pages......Page 439 16.5 Page Swap-Out......Page 443 16.6 Page Swap-In......Page 448 16.7 Freeing Page Frames......Page 450 16.8 Anticipating Linux 2.4......Page 456 17.1 General Characteristics......Page 457 17.2 Disk Data Structures......Page 459 17.3 Memory Data Structures......Page 465 17.4 Creating the Filesystem......Page 469 17.5 Ext2 Methods......Page 470 17.6 Managing Disk Space......Page 472 17.7 Reading and Writing an Ext2 Regular File......Page 479 17.8 Anticipating Linux 2.4......Page 481 18. Process Communication......Page 482 18.1 Pipes......Page 483 18.2 FIFOs......Page 489 18.3 System V IPC......Page 492 18.4 Anticipating Linux 2.4......Page 505 19.1 Executable Files......Page 506 19.2 Executable Formats......Page 518 19.3 Execution Domains......Page 520 19.4 The exec-like Functions......Page 521 19.5 Anticipating Linux 2.4......Page 525 A.1 Prehistoric Age: The BIOS......Page 526 A.2 Ancient Age: The Boot Loader......Page 527 A.4 Renaissance: The startup_32( ) Functions......Page 529 A.5 Modern Age: The start_kernel( ) Function......Page 530 B.1 To Be (a Module) or Not to Be?......Page 532 B.2 Module Implementation......Page 533 B.3 Linking and Unlinking Modules......Page 535 B.4 Linking Modules on Demand......Page 537 C. Source Code Structure......Page 539 Colophon......Page 542 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. An introduction to the Linux kernel explains how Linux performs in different environments and how kernel operations relate to various utilities, discussing such key functions as task management, file systems, and memory management for LInux, UNIX, and C programmers. Original. (Advanced) Explains the operating system's hidden processes, covering memory management, the Virtual File System, process creation and scheduling, signals, essential interfaces, timing, and synchronization in the kernel

قیمت نهایی

۴۴٬۰۰۰ تومان