Linux kernel development: [a thorough guide to the design and implementation of the Linux kernel]
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Upper Saddle River, NJ [u.a.]
Addison-Wesley
2010
|
Ausgabe: | 3. ed. |
Schriftenreihe: | Developer's library
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XX, 440 S. graph. Darst. |
ISBN: | 9780672329463 0672329468 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV036568363 | ||
003 | DE-604 | ||
005 | 20230125 | ||
007 | t | ||
008 | 100716s2010 d||| |||| 00||| eng d | ||
020 | |a 9780672329463 |9 978-0-672-32946-3 | ||
020 | |a 0672329468 |9 0-672-32946-8 | ||
035 | |a (OCoLC)700637871 | ||
035 | |a (DE-599)BVBBV036568363 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-898 |a DE-1050 |a DE-29T |a DE-Aug4 |a DE-355 |a DE-83 |a DE-862 |a DE-739 | ||
084 | |a ST 261 |0 (DE-625)143633: |2 rvk | ||
100 | 1 | |a Love, Robert |e Verfasser |4 aut | |
245 | 1 | 0 | |a Linux kernel development |b [a thorough guide to the design and implementation of the Linux kernel] |c Robert Love |
250 | |a 3. ed. | ||
264 | 1 | |a Upper Saddle River, NJ [u.a.] |b Addison-Wesley |c 2010 | |
300 | |a XX, 440 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Developer's library | |
650 | 0 | 7 | |a LINUX 2.6 |0 (DE-588)4760328-8 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Kernel |g Informatik |0 (DE-588)4338679-9 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a LINUX 2.6 |0 (DE-588)4760328-8 |D s |
689 | 0 | 1 | |a Kernel |g Informatik |0 (DE-588)4338679-9 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020489531&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-020489531 |
Datensatz im Suchindex
DE-BY-862_location | 2000 |
---|---|
DE-BY-FWS_call_number | 2000/ST 261 L33 L897(3) |
DE-BY-FWS_katkey | 403802 |
DE-BY-FWS_media_number | 083000510673 |
_version_ | 1806175902109794304 |
adam_text | Titel: Linux kernel development
Autor: Love, Robert
Jahr: 2010
Contents at a Glance 1 Introduction to the Linux Kernel 1 2 Getting Started with the Kernel 11 3 Process Management 23 4 Process Scheduling 41 5 System Calls 69 6 Kernel Data Structures 85 7 Interrupts and Interrupt Handlers 113 8 Bottom Halves and Deferring Work 133 9 An Introduction to Kernel Synchronization 161 10 Kernel Synchronization Methods . 175 11 Timers and Time Management 207 12 Memory Management 231 13 The Virtual Filesystem 261 14 The Block I/O Layer 289 15 The Process Address Space 305 16 The Page Cache and Page Writeback 323 17 Devices and Modules 337 18 Debugging 363 19 Portability 379 20 Patches, Hacking, and the Community 395 Bibliography 407 Index 4ll
Table of Contents 1 Introduction to the Linux Kernel 1 History of Unix 1 Along Came Linus: Introduction to Linux 3 Overview of Operating Systems and Kernels 4 Linux Versus Classic Unix Kernels 6 Linux Kernel Versions 8 The Linux Kernel Development Community 10 Before We Begin 10 2 Getting Started with the Kernel 11 Obtaining the Kernel Source 11 Using Git 11 Installing the Kernel Source 12 Using Patches 12 The Kernel Source Tree 12 Building the Kernel 13 Configuring the Kernel 14 Minimizing Build Noise 15 Spawning Multiple Build Jobs 16 Installing the New Kernel 16 A Beast of a Different Nature 16 No libc or Standard Headers 17 GNU C 18 Inline Functions 18 Inline Assembly 19 Branch Annotation 19 No Memory Protection 20 No (Easy) Use of Floating Point 20 Small, Fixed-Size Stack 20 Synchronization and Concurrency 21 Importance of Portability 21 Conclusion 21
viii Contents 3 Process Management 23 The Process 23 Process Descriptor and the Task Structure 24 Allocating the Process Descriptor 25 Storing the Process Descriptor 26 Process State 27 Manipulating the Current Process State 29 Process Context 29 The Process Family Tree 29 Process Creation 31 Copy-on-Write 31 Forking 32 vfork() 33 The Linux Implementation of Threads 33 Creating Threads 34 Kernel Threads 35 Process Termination 36 Removing the Process Descriptor 37 The Dilemma of the Parentless Task 38 Conclusion 40 4 Process Scheduling 41 Multitasking 41 Linux’s Process Scheduler 42 Policy 43 I/O-Bound Versus Processor-Bound Processes 43 Process Priority 44 Timeslice 45 The Scheduling Policy in Action 45 The Linux Scheduling Algorithm 46 Scheduler Classes 46 Process Scheduling in Unix Systems 47 Fair Scheduling 48 The Linux Scheduling Implementation 50 Time Accounting 50 The Scheduler Entity Structure 50 The Virtual Runtime 51
Contents IX Process Selection 52 Picking the Next Task 53 Adding Processes to the Tree 54 Removing Processes from the Tree 56 The Scheduler Entry Point 57 â– Sleeping and Waking Up 58 Wait Queues 58 Waking Up 61 Preemption and Context Switching 62 User Preemption 62 Kernel Preemption 63 Real-Time Scheduling Policies 64 Scheduler-Related System Calls 65 Scheduling Policy and Priority-Related System Calls 66 Processor Affinity System Calls 66 Yielding Processor Time 66 Conclusion 67 5 System Calls 69 Communicating with the Kernel 69 APIs, POSIX, and the C Library 70 Syscalls 71 System Call Numbers 72 System Call Performance 72 System Call Handler 73 Denoting the Correct System Call 73 Parameter Passing 74 System Call Implementation 74 Implementing System Calls 74 Verifying the Parameters 75 System Call Context 78 Final Steps in Binding a System Call 79 Accessing the System Call from User-Space 81 Why Not to Implement a System Call 82 Conclusion 83
X Contents 6 Kernel Data Structures 85 Linked Lists 85 Singly and Doubly Linked Lists 85 Circular Linked Lists 86 Moving Through a Linked List 87 The Linux Kernel’s Implementation 88 The Linked List Structure 88 Defining a Linked List 89 List Heads 90 Manipulating Linked Lists 90 Adding a Node to a Linked List 90 Deleting a Node from a Linked List 91 Moving and Splicing Linked List Nodes 92 Traversing Linked Lists 93 The Basic Approach 93 The Usable Approach 93 Iterating Through a List Backward 94 Iterating While Removing 95 Other Linked List Methods 96 Queues 96 kfifo 97 Creating a Queue 97 Enqueuing Data 98 Dequeuing Data 98 Obtaining the Size of a Queue 98 Resetting and Destroying the Queue 99 Example Queue Usage 99 Maps 100 Initializing an idr 101 Allocating a New UID 101 Looking Up a UID 102 Removing a UID 103 Destroying an idr 103 Binary Trees 103 Binary Search Trees 104 Self-Balancing Binary Search Trees 105 Red-Black Trees 105 rbtrees 106
108 What Data Structure to Use, When Algorithmic Complexity 109 Algorithms 109 Big-0 Notation 109 Big Theta Notation 109 Time Complexity 110 Conclusion 111 7 Interrupts and Interrupt Handlers 113 Interrupts 113 Interrupt Handlers 114 Top Halves Versus Bottom Halves 115 Registering an Interrupt Handler 116 Interrupt Handler Flags 116 An Interrupt Example 117 Freeing an Interrupt Handler 118 Writing an Interrupt Handler 118 Shared Handlers 119 A Real-Life Interrupt Handler 120 Interrupt Context 122 Implementing Interrupt Handlers 123 /proc/interrupts 126 Interrupt Control 127 Disabling and Enabling Interrupts 127 Disabling a Specific Interrupt Line 129 Status of the Interrupt System 130 Conclusion 131 8 Bottom Halves and Deferring Work 133 Bottom Halves 134 Why Bottom Halves? 134 A World of Bottom Halves 135 The Original “Bottom Halfâ€
|
any_adam_object | 1 |
author | Love, Robert |
author_facet | Love, Robert |
author_role | aut |
author_sort | Love, Robert |
author_variant | r l rl |
building | Verbundindex |
bvnumber | BV036568363 |
classification_rvk | ST 261 |
ctrlnum | (OCoLC)700637871 (DE-599)BVBBV036568363 |
discipline | Informatik |
edition | 3. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01495nam a2200373 c 4500</leader><controlfield tag="001">BV036568363</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20230125 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">100716s2010 d||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780672329463</subfield><subfield code="9">978-0-672-32946-3</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0672329468</subfield><subfield code="9">0-672-32946-8</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)700637871</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV036568363</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-898</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-862</subfield><subfield code="a">DE-739</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 261</subfield><subfield code="0">(DE-625)143633:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Love, Robert</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Linux kernel development</subfield><subfield code="b">[a thorough guide to the design and implementation of the Linux kernel]</subfield><subfield code="c">Robert Love</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">3. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Upper Saddle River, NJ [u.a.]</subfield><subfield code="b">Addison-Wesley</subfield><subfield code="c">2010</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XX, 440 S.</subfield><subfield code="b">graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Developer's library</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">LINUX 2.6</subfield><subfield code="0">(DE-588)4760328-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Kernel</subfield><subfield code="g">Informatik</subfield><subfield code="0">(DE-588)4338679-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">LINUX 2.6</subfield><subfield code="0">(DE-588)4760328-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Kernel</subfield><subfield code="g">Informatik</subfield><subfield code="0">(DE-588)4338679-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020489531&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-020489531</subfield></datafield></record></collection> |
id | DE-604.BV036568363 |
illustrated | Illustrated |
indexdate | 2024-08-01T11:12:47Z |
institution | BVB |
isbn | 9780672329463 0672329468 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-020489531 |
oclc_num | 700637871 |
open_access_boolean | |
owner | DE-898 DE-BY-UBR DE-1050 DE-29T DE-Aug4 DE-355 DE-BY-UBR DE-83 DE-862 DE-BY-FWS DE-739 |
owner_facet | DE-898 DE-BY-UBR DE-1050 DE-29T DE-Aug4 DE-355 DE-BY-UBR DE-83 DE-862 DE-BY-FWS DE-739 |
physical | XX, 440 S. graph. Darst. |
publishDate | 2010 |
publishDateSearch | 2010 |
publishDateSort | 2010 |
publisher | Addison-Wesley |
record_format | marc |
series2 | Developer's library |
spellingShingle | Love, Robert Linux kernel development [a thorough guide to the design and implementation of the Linux kernel] LINUX 2.6 (DE-588)4760328-8 gnd Kernel Informatik (DE-588)4338679-9 gnd |
subject_GND | (DE-588)4760328-8 (DE-588)4338679-9 |
title | Linux kernel development [a thorough guide to the design and implementation of the Linux kernel] |
title_auth | Linux kernel development [a thorough guide to the design and implementation of the Linux kernel] |
title_exact_search | Linux kernel development [a thorough guide to the design and implementation of the Linux kernel] |
title_full | Linux kernel development [a thorough guide to the design and implementation of the Linux kernel] Robert Love |
title_fullStr | Linux kernel development [a thorough guide to the design and implementation of the Linux kernel] Robert Love |
title_full_unstemmed | Linux kernel development [a thorough guide to the design and implementation of the Linux kernel] Robert Love |
title_short | Linux kernel development |
title_sort | linux kernel development a thorough guide to the design and implementation of the linux kernel |
title_sub | [a thorough guide to the design and implementation of the Linux kernel] |
topic | LINUX 2.6 (DE-588)4760328-8 gnd Kernel Informatik (DE-588)4338679-9 gnd |
topic_facet | LINUX 2.6 Kernel Informatik |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020489531&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT loverobert linuxkerneldevelopmentathoroughguidetothedesignandimplementationofthelinuxkernel |
Inhaltsverzeichnis
THWS Schweinfurt Zentralbibliothek Lesesaal
Signatur: |
2000 ST 261 L33 L897(3) |
---|---|
Exemplar 1 | ausleihbar Verfügbar Bestellen |