The design and implementation of the FreeBSD operating system: [FreeBSD version 5.2]
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Boston [u.a.]
Addison-Wesley
2004
|
Ausgabe: | 3. print. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XXVIII, 683 S. Ill., graph. Darst. |
ISBN: | 0201702452 9780201702453 |
Internformat
MARC
LEADER | 00000nam a2200000zc 4500 | ||
---|---|---|---|
001 | BV023406606 | ||
003 | DE-604 | ||
005 | 00000000000000.0 | ||
007 | t | ||
008 | 080721s2004 xxuad|| |||| 00||| eng d | ||
020 | |a 0201702452 |c hc : alk. paper |9 0-201-70245-2 | ||
020 | |a 9780201702453 |9 978-0-201-70245-3 | ||
035 | |a (OCoLC)834871168 | ||
035 | |a (DE-599)BVBBV023406606 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
044 | |a xxu |c US | ||
049 | |a DE-29T |a DE-739 | ||
050 | 0 | |a QA76.76.O63 | |
084 | |a ST 261 |0 (DE-625)143633: |2 rvk | ||
100 | 1 | |a McKusick, Marshall Kirk |d 1954- |e Verfasser |0 (DE-588)1130183769 |4 aut | |
245 | 1 | 0 | |a The design and implementation of the FreeBSD operating system |b [FreeBSD version 5.2] |c Marshall Kirk McKusick ; George V. Neville-Neil |
246 | 1 | 3 | |a FreeBSD operating system |
250 | |a 3. print. | ||
264 | 1 | |a Boston [u.a.] |b Addison-Wesley |c 2004 | |
300 | |a XXVIII, 683 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
630 | 0 | 4 | |a aFreeBSD |
650 | 4 | |a aFree computer software | |
650 | 4 | |a aOperating systems (Computers) | |
650 | 0 | 7 | |a BSD UNIX |0 (DE-588)4229982-2 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a BSD UNIX |0 (DE-588)4229982-2 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Neville-Neil, George V. |e Verfasser |4 aut | |
856 | 4 | 2 | |m Digitalisierung UB Passau |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016589290&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-016589290 |
Datensatz im Suchindex
_version_ | 1804137792016482304 |
---|---|
adam_text | Contents
Preface
xix
About the Authors
xxvii
Part I Overview
1
Chapter
1
History and Goals
3
1.1
History of the UNIX System
3
Origins
3
Research UNIX
4
AT&T UNIX System III and System V
5
Berkeley Software Distributions
6
UNIX in the World
7
1.2
BSD and Other Systems
7
The Influence of the User Community
8
1.3
The Transition of BSD to Open Source
9
Networking Release
2 10
The Lawsuit
11
4.4BSD
13
4.4680-1.116
Release
2 13
1.4
The FreeBSD Development Model
14
References
17
Chapter
2
Design Overview of FreeBSD
21
2.1
FreeBSD Facilities and the Kernel
21
The Kernel
22
2.2
Kernel Organization
23
2.3 Kernel Services 25
2.4
Process
Management 26
Signals 28
Process Groups and Sessions
29
2.5
Memory Management
29
BSD Memory-Management Design Decisions
30
Memory Management Inside the Kernel
32
2.6
I/O System
33
Descriptors and I/O
33
Descriptor Management
34
Devices
35
Socket IPC
36
Scatter/Gather I/O
36
Multiple
Filesystem
Support
37
2.7
Devices
37
2.8
Filesystems
38
Filestores
41
2.9
Network
Filesystem
42
2.10
Terminals
43
2.11
Interprocess Communication
44
2.12
Network Communication
45
2.13
Network Implementation
45
2.14
System Operation
46
Exercises
46
References
47
Chapter
3
Kernel Services
49
3.1
Kernel Organization
49
System Processes
49
System Entry
50
Run-Time Organization
51
Entry to the Kernel
52
Return from the Kernel
54
3.2
System Calls
54
Result Handling
54
Returning from a System Call
55
3.3
Traps and Interrupts
56
Traps
56
I/O Device Interrupts
56
Software Interrupts
57
3.4
Clock Interrupts
57
Statistics and Process Scheduling
58
Timeouts
59
3.5
Memory-Management Services
61
3.6
Timing Services
65
Real Time
65
External Representation
65
Adjustment of the Time
65
Interval Time
66
3.7
User, Group, and Other Identifiers
66
Host Identifiers
69
Process Groups and Sessions
69
3.8
Resource Services
70
Process Priorities
70
Resource Utilization
71
Resource Limits
72
Filesystem
Quotas
72
3.9
System-Operation Services
73
Accounting
73
Exercises
74
References
75
Part II Processes
77
Chapter
4
Process Management
79
4.1
Introduction to Process Management
79
Multiprogramming
80
Scheduling
81
4.2
Process State
82
The Process Structure
84
The Thread Structure
87
4.3
Context Switching
88
Thread State
89
Low-Level Context Switching
90
Voluntary Context Switching
90
Synchronization
93
Mutex Synchronization
96
Lock-Manager Locks
98
Other Synchronization
99
4.4
Thread Scheduling
99
The 4.4BSD Scheduler
100
Time-Share Thread Scheduling
100
Calculations of Thread Priority
101
Thread-Priority Routines
102
Thread Run Queues and Context Switching
103
The
ULE
Scheduler
105
4.5
Process Creation
108
4.6
Process Termination
110
4.7
Signals 111
History of Signals
114
Posting of a Signal
114
Delivering a Signal
117
4.8
Process Groups and Sessions
119
Sessions
120
Job Control
122
4.9
Jails
123
Jail Semantics
125
Jail Implementation
127
Jail Limitations
128
4.10
Process Debugging
129
Exercises
132
References
133
Chapter
5
Memory Management
135
5.1
Terminology
135
Processes and Memory
136
Paging
137
Replacement Algorithms
138
Working-Set Model
139
Swapping
139
Advantages of Virtual Memory
140
Hardware Requirements for Virtual Memory
140
5.2
Overview of the FreeBSD Virtual-Memory System
141
5.3
Kernel Memory Management
144
Kernel Maps and Submaps
145
Kernel Address-Space Allocation
146
Kernel Malloc
147
Kernel Zone Allocator
149
5.4
Per-Process Resources
151
FreeBSD Process Virtual-Address Space
151
Page-Fault Dispatch
152
Mapping to Objects
153
Objects
154
Objects to Pages
155
5.5
Shared Memory
156
Mmap Model
157
Shared Mapping
159
Private Mapping
160
Collapsing of Shadow Chains
161
Private Snapshots
163
5.6
Creation of a New Process
164
Reserving Kernel Resources
165
Duplication of the User Address Space
166
Creation of a New Process Without Copying
167
5.7
Execution of a File
168
5.8
Process Manipulation of Its Address Space
169
Change of Process Size
169
File Mapping
170
Change
of
Protection
171
5.9
Termination of a Process
172
5.10
The Pager Interface
173
Vnode Pager
174
Device Pager
175
Physical-Memory Pager
176
Swap Pager
177
5.11
Paging
180
Hardware-Cache Design
184
Page Coloring
186
5.12
Page Replacement
187
Paging Parameters
189
The Pageout Daemon
190
Swapping
194
The Swap-In Process
195
5.13
Portability
196
The Role of the pmap Module
199
Initialization and Startup
201
Mapping Allocation and Deallocation
204
Change of Access and Wiring Attributes for Mappings
206
Management of Page-Usage Information
207
Initialization of Physical Pages
208
Management of Internal Data Structures
209
Exercises
209
References
210
Partili
I/O System
213
Chapter
6
I/O System Overview
215
6.1
I/O Mapping from User to Device
215
Device Drivers
217
I/O Queueing
217
Interrupt Handling
218
6.2
Character Devices
219
Raw Devices and Physical I/O
220
Character-oriented Devices
221
Entry Points for Character Device Drivers
222
6.3
Disk Devices
223
Entry Points for Disk Device Drivers
223
Sorting of Disk I/O Requests
224
Disk Labels
225
6.4
Descriptor Management and Services
226
Open File Entries
227
Management of Descriptors
228
Asynchronous I/O
230
File-Descriptor Locking
231
Multiplexing I/O on Descriptors
233
Implementation of Select
236
Movement of Data Inside the Kernel
239
6.5
The Virtual-Filesystem Interface
240
Contents of a Vnode
241
Vnode Operations
242
Pathname Translation
244
Exported
Filesystem
Services
245
6.6
Filesystem-Independent Services
246
The Name Cache
247
Buffer Management
248
Implementation of Buffer Management
251
6.7
Stackable
Filesystems
253
Simple
Filesystem
Layers
255
The Union
Filesystem
256
Other
Filesystems
259
Exercises
260
References
261
Chapter
7
Devices
263
7.1
Device Overview
263
The PC I/O Architecture
264
The Structure of the FreeBSD Mass Storage I/O Subsystem
266
Device Naming and Access
268
7.2
The GEOM Layer
270
Terminology and Topology Rules
270
Changing Topology
272
Operation
274
Topological Flexibility
275
7.3
The CAM Layer
276
SCSI Subsystem
277
The Path of an I/O Request Through the CAM Subsystem
277
7.4
The ATA Layer
279
The Path of an I/O Request Through the ATA Subsystem
280
7.5
Device Configuration
281
Device Identification
284
Autoconfiguration Data
Structures
286
Resource Management
289
Exercises
292
References
293
Chapter
8
Local
Filesystems
295
8.1
Hierarchical
Filesystem
Management
295
8.2
Structure of an Inode
297
Changes to the Inode Format
299
Extended Attributes
300
New Filesystem
Capabilities
302
File Flags
303
Dynamic Inodes
305
Inode Management
306
8.3
Naming
307
Directories
308
Finding of Names in Directories
310
Pathname Translation
313
Links
313
8.4
Quotas
315
8.5
File Locking
319
8.6
Soft Updates
324
Update Dependencies in the
Filesystem
325
Dependency Structures
329
Bitmap Dependency Tracking
332
Inode Dependency Tracking
332
Direct Block Dependency Tracking
334
Indirect Block Dependency Tracking
336
Dependency Tracking for New Indirect Blocks
337
New Directory Entry Dependency Tracking
338
New Directory Dependency Tracking
339
Directory Entry Removal Dependency Tracking
341
File Truncation
341
File and Directory Inode Reclamation
342
Directory Entry Renaming Dependency Tracking
342
Tracking File Removal Dependencies
343
Fsync Requirements for Soft Updates
344
File Removal Requirements for Soft Updates
345
Soft Updates Requirements for fsck
347
Performance of Soft Updates
347
8.7
Filesystem
Snapshots
349
Creating
a Filesystem
Snapshot
349
Maintaining
a Filesystem
Snapshot
352
Large
Filesystem
Snapshots
353
Snapshot Performance
355
Background fsck
356
User Visible Snapshots
357
Live Dumps
358
8.8
The Local Filestore
358
Overview of the Filestore
358
User I/O to a File
360
8.9
The Berkeley Fast
Filesystem
362
Organization of the Berkeley Fast
Filesystem
363
Boot Blocks
365
Optimization of Storage Utilization
366
Reading and Writing to a File
367
Layout Policies
370
Allocation Mechanisms
372
Block Clustering
375
Extent-based Allocation
378
Exercises
379
References
381
Chapter
9
The Network
Filesystem
385
9.1
History and Overview
385
9.2
NFS Structure and Operation
388
The NFS Protocol
391
The FreeBSD NFS Implementation
393
Client-Server Interactions
397
RPC Transport Issues
398
Security Issues
400
9.3
Techniques for Improving Performance
401
Leases
404
Crash Recovery
408
Exercises
409
References
410
Chapter
10
Terminal Handling
413
10.1
Terminal-Processing Modes
414
10.2
Line Disciplines
415
10.3
User Interface
416
10.4
The tty Structure
418
10.5
Process Groups, Sessions, and Terminal Control
420
10.6
C-lists
421
10.7
RS-232 and Modem Control
422
10.8
Terminal Operations
423
Open
423
Output Line Discipline
424
Terminal Output
426
Terminal Input
426
The ioctl Routine
428
Modem Transitions
429
Closing of Terminal Devices
429
10.9
Other Line Disciplines
430
Exercises
430
References
431
Part IV Interprocess Communication
433
Chapter
11
Interprocess Communication
435
11.1
Interprocess-Communication Model
435
Use of Sockets
438
11.2 Implementation
Structure
and Overview
441
11.3
Memory Management
443
Mbufs
443
Storage-Management Algorithms
447
Mbuf Utility Routines
448
11.4
Data Structures
449
Communication Domains
450
Sockets
451
Socket Addresses
453
Locks
455
11.5
Connection Setup
455
11.6
Data Transfer
457
Transmitting Data
458
Receiving Data
460
11.7
Socket Shutdown
463
11.8
Local Interprocess-Communication
464
Semaphores
465
Message Queues
467
Shared Memory
468
Exercises
469
References
470
Chapter
12
Network Communication
473
12.1
Internal Structure
474
Data Flow
475
Communication Protocols
476
Network Interfaces
479
12.2
Socket-to-Protocol Interface
484
Protocol User-Request Routines
484
Protocol Control-Output Routine
488
12.3
Protocol-Protocol Interface
488
pr_putput
489
pr_input
489
pr_ctlinput
491
12.4
Interface Between Protocol and Network Interface
491
Packet Transmission
491
Packet Reception
493
12.5
Routing
494
Kernel Routing Tables
496
Routing Lookup
499
Routing Redirects
502
Routing-Table Interface
502
User-Level Routing Policies
503
User-Level Routing Interface: Routing Socket
504
12.6
Buffering and Congestion Control
505
Protocol Buffering Policies
505
Queue Limiting
506
Raw Sockets
506
Control Blocks
506
Input Processing
507
Output Processing
508
12.7
12.8
Additional Network-Subsystem Topics
508
Out-of-Band Data
508
Address Resolution Protocol
509
Exercises
510
References
512
Chapter
13
Network Protocols
513
13.1 IPv4
Network Protocols
514
IPv4
Addresses
515
Broadcast Addresses
516
Internet Multicast
517
Internet Ports and Associations
517
Protocol Control Blocks
518
13.2
User Datagram Protocol
(UDP)
519
Initialization
519
Output
520
Input
521
Control Operations
521
13.3
Internet Protocol (IP)
522
Output
523
Input
524
Forwarding
525
13.4
Transmission Control Protocol (TCP)
526
TCP Connection States
529
S equence
Variables
531
13.5
TCP Algorithms
534
Timers
535
Estimation of Round-Trip Time
537
Connection Establishment
538
SYN
Cache
540
Connection Shutdown
541
13.6
TCP Input Processing
542
13.7
TCP Output Processing
546
Sending of Data
546
Avoidance of the Silly-Window Syndrome
547
Avoidance of Small Packets
548
Delayed Acknowledgments and Window Updates
549
Retransmit State
550
Slow Start
550
Source-Quench Processing
552
Buffer and Window Sizing
553
Avoidance of Congestion with Slow Start
553
Fast Retransmission
554
13.8
Internet Control Message Protocol (ICMP)
556
13.9 IPv6 558
IPv6
Addresses
560
IPv6
Packet Formats
562
Changes to the Socket API
563
Autoconfiguration
565
13.10
Security
569
IPSec
Overview
570
Security Protocols
572
Key Management
574
IPSec
Implementation
579
Cryptography Subsystem
581
Exercises
584
References
586
Part V System Operation
591
Chapter
14
Startup and Shutdown
593
14.1
Overview
593
14.2
Bootstrapping
595
The boot Program
595
14.3
Kernel Initialization
596
Assembly-Language Startup
597
14.4
Kernel Module Initialization
598
Basic Services
598
Kernel Thread Initialization
600
Device Module Initialization
601
Kernel Loadable Modules
603
Interprocess Communication Startup
604
Start Kernel Threads
606
14.5
User-Level Initialization
607
/sbin/init
607
System Startup Scripts
607
/usr/libexec/getty
608
/usr/bii^ogin
609
14.6
System Operation
609
Kernel Configuration
609
System Shutdown and Autoreboot
610
System Debugging
611
Passage of Information To and From the Kernel
612
Exercises
614
References
614
Glossary
615
Index
653
|
adam_txt |
Contents
Preface
xix
About the Authors
xxvii
Part I Overview
1
Chapter
1
History and Goals
3
1.1
History of the UNIX System
3
Origins
3
Research UNIX
4
AT&T UNIX System III and System V
5
Berkeley Software Distributions
6
UNIX in the World
7
1.2
BSD and Other Systems
7
The Influence of the User Community
8
1.3
The Transition of BSD to Open Source
9
Networking Release
2 10
The Lawsuit
11
4.4BSD
13
4.4680-1.116
Release
2 13
1.4
The FreeBSD Development Model
14
References
17
Chapter
2
Design Overview of FreeBSD
21
2.1
FreeBSD Facilities and the Kernel
21
The Kernel
22
2.2
Kernel Organization
23
2.3 Kernel Services 25
2.4
Process
Management 26
Signals 28
Process Groups and Sessions
29
2.5
Memory Management
29
BSD Memory-Management Design Decisions
30
Memory Management Inside the Kernel
32
2.6
I/O System
33
Descriptors and I/O
33
Descriptor Management
34
Devices
35
Socket IPC
36
Scatter/Gather I/O
36
Multiple
Filesystem
Support
37
2.7
Devices
37
2.8
Filesystems
38
Filestores
41
2.9
Network
Filesystem
42
2.10
Terminals
43
2.11
Interprocess Communication
44
2.12
Network Communication
45
2.13
Network Implementation
45
2.14
System Operation
46
Exercises
46
References
47
Chapter
3
Kernel Services
49
3.1
Kernel Organization
49
System Processes
49
System Entry
50
Run-Time Organization
51
Entry to the Kernel
52
Return from the Kernel
54
3.2
System Calls
54
Result Handling
54
Returning from a System Call
55
3.3
Traps and Interrupts
56
Traps
56
I/O Device Interrupts
56
Software Interrupts
57
3.4
Clock Interrupts
57
Statistics and Process Scheduling
58
Timeouts
59
3.5
Memory-Management Services
61
3.6
Timing Services
65
Real Time
65
External Representation
65
Adjustment of the Time
65
Interval Time
66
3.7
User, Group, and Other Identifiers
66
Host Identifiers
69
Process Groups and Sessions
69
3.8
Resource Services
70
Process Priorities
70
Resource Utilization
71
Resource Limits
72
Filesystem
Quotas
72
3.9
System-Operation Services
73
Accounting
73
Exercises
74
References
75
Part II Processes
77
Chapter
4
Process Management
79
4.1
Introduction to Process Management
79
Multiprogramming
80
Scheduling
81
4.2
Process State
82
The Process Structure
84
The Thread Structure
87
4.3
Context Switching
88
Thread State
89
Low-Level Context Switching
90
Voluntary Context Switching
90
Synchronization
93
Mutex Synchronization
96
Lock-Manager Locks
98
Other Synchronization
99
4.4
Thread Scheduling
99
The 4.4BSD Scheduler
100
Time-Share Thread Scheduling
100
Calculations of Thread Priority
101
Thread-Priority Routines
102
Thread Run Queues and Context Switching
103
The
ULE
Scheduler
105
4.5
Process Creation
108
4.6
Process Termination
110
4.7
Signals 111
History of Signals
114
Posting of a Signal
114
Delivering a Signal
117
4.8
Process Groups and Sessions
119
Sessions
120
Job Control
122
4.9
Jails
123
Jail Semantics
125
Jail Implementation
127
Jail Limitations
128
4.10
Process Debugging
129
Exercises
132
References
133
Chapter
5
Memory Management
135
5.1
Terminology
135
Processes and Memory
136
Paging
137
Replacement Algorithms
138
Working-Set Model
139
Swapping
139
Advantages of Virtual Memory
140
Hardware Requirements for Virtual Memory
140
5.2
Overview of the FreeBSD Virtual-Memory System
141
5.3
Kernel Memory Management
144
Kernel Maps and Submaps
145
Kernel Address-Space Allocation
146
Kernel Malloc
147
Kernel Zone Allocator
149
5.4
Per-Process Resources
151
FreeBSD Process Virtual-Address Space
151
Page-Fault Dispatch
152
Mapping to Objects
153
Objects
154
Objects to Pages
155
5.5
Shared Memory
156
Mmap Model
157
Shared Mapping
159
Private Mapping
160
Collapsing of Shadow Chains
161
Private Snapshots
163
5.6
Creation of a New Process
164
Reserving Kernel Resources
165
Duplication of the User Address Space
166
Creation of a New Process Without Copying
167
5.7
Execution of a File
168
5.8
Process Manipulation of Its Address Space
169
Change of Process Size
169
File Mapping
170
Change
of
Protection
171
5.9
Termination of a Process
172
5.10
The Pager Interface
173
Vnode Pager
174
Device Pager
175
Physical-Memory Pager
176
Swap Pager
177
5.11
Paging
180
Hardware-Cache Design
184
Page Coloring
186
5.12
Page Replacement
187
Paging Parameters
189
The Pageout Daemon
190
Swapping
194
The Swap-In Process
195
5.13
Portability
196
The Role of the pmap Module
199
Initialization and Startup
201
Mapping Allocation and Deallocation
204
Change of Access and Wiring Attributes for Mappings
206
Management of Page-Usage Information
207
Initialization of Physical Pages
208
Management of Internal Data Structures
209
Exercises
209
References
210
Partili
I/O System
213
Chapter
6
I/O System Overview
215
6.1
I/O Mapping from User to Device
215
Device Drivers
217
I/O Queueing
217
Interrupt Handling
218
6.2
Character Devices
219
Raw Devices and Physical I/O
220
Character-oriented Devices
221
Entry Points for Character Device Drivers
222
6.3
Disk Devices
223
Entry Points for Disk Device Drivers
223
Sorting of Disk I/O Requests
224
Disk Labels
225
6.4
Descriptor Management and Services
226
Open File Entries
227
Management of Descriptors
228
Asynchronous I/O
230
File-Descriptor Locking
231
Multiplexing I/O on Descriptors
233
Implementation of Select
236
Movement of Data Inside the Kernel
239
6.5
The Virtual-Filesystem Interface
240
Contents of a Vnode
241
Vnode Operations
242
Pathname Translation
244
Exported
Filesystem
Services
245
6.6
Filesystem-Independent Services
246
The Name Cache
247
Buffer Management
248
Implementation of Buffer Management
251
6.7
Stackable
Filesystems
253
Simple
Filesystem
Layers
255
The Union
Filesystem
256
Other
Filesystems
259
Exercises
260
References
261
Chapter
7
Devices
263
7.1
Device Overview
263
The PC I/O Architecture
264
The Structure of the FreeBSD Mass Storage I/O Subsystem
266
Device Naming and Access
268
7.2
The GEOM Layer
270
Terminology and Topology Rules
270
Changing Topology
272
Operation
274
Topological Flexibility
275
7.3
The CAM Layer
276
SCSI Subsystem
277
The Path of an I/O Request Through the CAM Subsystem
277
7.4
The ATA Layer
279
The Path of an I/O Request Through the ATA Subsystem
280
7.5
Device Configuration
281
Device Identification
284
Autoconfiguration Data
Structures
286
Resource Management
289
Exercises
292
References
293
Chapter
8
Local
Filesystems
295
8.1
Hierarchical
Filesystem
Management
295
8.2
Structure of an Inode
297
Changes to the Inode Format
299
Extended Attributes
300
New Filesystem
Capabilities
302
File Flags
303
Dynamic Inodes
305
Inode Management
306
8.3
Naming
307
Directories
308
Finding of Names in Directories
310
Pathname Translation
313
Links
313
8.4
Quotas
315
8.5
File Locking
319
8.6
Soft Updates
324
Update Dependencies in the
Filesystem
325
Dependency Structures
329
Bitmap Dependency Tracking
332
Inode Dependency Tracking
332
Direct Block Dependency Tracking
334
Indirect Block Dependency Tracking
336
Dependency Tracking for New Indirect Blocks
337
New Directory Entry Dependency Tracking
338
New Directory Dependency Tracking
339
Directory Entry Removal Dependency Tracking
341
File Truncation
341
File and Directory Inode Reclamation
342
Directory Entry Renaming Dependency Tracking
342
Tracking File Removal Dependencies
343
Fsync Requirements for Soft Updates
344
File Removal Requirements for Soft Updates
345
Soft Updates Requirements for fsck
347
Performance of Soft Updates
347
8.7
Filesystem
Snapshots
349
Creating
a Filesystem
Snapshot
349
Maintaining
a Filesystem
Snapshot
352
Large
Filesystem
Snapshots
353
Snapshot Performance
355
Background fsck
356
User Visible Snapshots
357
Live Dumps
358
8.8
The Local Filestore
358
Overview of the Filestore
358
User I/O to a File
360
8.9
The Berkeley Fast
Filesystem
362
Organization of the Berkeley Fast
Filesystem
363
Boot Blocks
365
Optimization of Storage Utilization
366
Reading and Writing to a File
367
Layout Policies
370
Allocation Mechanisms
372
Block Clustering
375
Extent-based Allocation
378
Exercises
379
References
381
Chapter
9
The Network
Filesystem
385
9.1
History and Overview
385
9.2
NFS Structure and Operation
388
The NFS Protocol
391
The FreeBSD NFS Implementation
393
Client-Server Interactions
397
RPC Transport Issues
398
Security Issues
400
9.3
Techniques for Improving Performance
401
Leases
404
Crash Recovery
408
Exercises
409
References
410
Chapter
10
Terminal Handling
413
10.1
Terminal-Processing Modes
414
10.2
Line Disciplines
415
10.3
User Interface
416
10.4
The tty Structure
418
10.5
Process Groups, Sessions, and Terminal Control
420
10.6
C-lists
421
10.7
RS-232 and Modem Control
422
10.8
Terminal Operations
423
Open
423
Output Line Discipline
424
Terminal Output
426
Terminal Input
426
The ioctl Routine
428
Modem Transitions
429
Closing of Terminal Devices
429
10.9
Other Line Disciplines
430
Exercises
430
References
431
Part IV Interprocess Communication
433
Chapter
11
Interprocess Communication
435
11.1
Interprocess-Communication Model
435
Use of Sockets
438
11.2 Implementation
Structure
and Overview
441
11.3
Memory Management
443
Mbufs
443
Storage-Management Algorithms
447
Mbuf Utility Routines
448
11.4
Data Structures
449
Communication Domains
450
Sockets
451
Socket Addresses
453
Locks
455
11.5
Connection Setup
455
11.6
Data Transfer
457
Transmitting Data
458
Receiving Data
460
11.7
Socket Shutdown
463
11.8
Local Interprocess-Communication
464
Semaphores
465
Message Queues
467
Shared Memory
468
Exercises
469
References
470
Chapter
12
Network Communication
473
12.1
Internal Structure
474
Data Flow
475
Communication Protocols
476
Network Interfaces
479
12.2
Socket-to-Protocol Interface
484
Protocol User-Request Routines
484
Protocol Control-Output Routine
488
12.3
Protocol-Protocol Interface
488
pr_putput
489
pr_input
489
pr_ctlinput
491
12.4
Interface Between Protocol and Network Interface
491
Packet Transmission
491
Packet Reception
493
12.5
Routing
494
Kernel Routing Tables
496
Routing Lookup
499
Routing Redirects
502
Routing-Table Interface
502
User-Level Routing Policies
503
User-Level Routing Interface: Routing Socket
504
12.6
Buffering and Congestion Control
505
Protocol Buffering Policies
505
Queue Limiting
506
Raw Sockets
506
Control Blocks
506
Input Processing
507
Output Processing
508
12.7
12.8
Additional Network-Subsystem Topics
508
Out-of-Band Data
508
Address Resolution Protocol
509
Exercises
510
References
512
Chapter
13
Network Protocols
513
13.1 IPv4
Network Protocols
514
IPv4
Addresses
515
Broadcast Addresses
516
Internet Multicast
517
Internet Ports and Associations
517
Protocol Control Blocks
518
13.2
User Datagram Protocol
(UDP)
519
Initialization
519
Output
520
Input
521
Control Operations
521
13.3
Internet Protocol (IP)
522
Output
523
Input
524
Forwarding
525
13.4
Transmission Control Protocol (TCP)
526
TCP Connection States
529
S equence
Variables
531
13.5
TCP Algorithms
534
Timers
535
Estimation of Round-Trip Time
537
Connection Establishment
538
SYN
Cache
540
Connection Shutdown
541
13.6
TCP Input Processing
542
13.7
TCP Output Processing
546
Sending of Data
546
Avoidance of the Silly-Window Syndrome
547
Avoidance of Small Packets
548
Delayed Acknowledgments and Window Updates
549
Retransmit State
550
Slow Start
550
Source-Quench Processing
552
Buffer and Window Sizing
553
Avoidance of Congestion with Slow Start
553
Fast Retransmission
554
13.8
Internet Control Message Protocol (ICMP)
556
13.9 IPv6 558
IPv6
Addresses
560
IPv6
Packet Formats
562
Changes to the Socket API
563
Autoconfiguration
565
13.10
Security
569
IPSec
Overview
570
Security Protocols
572
Key Management
574
IPSec
Implementation
579
Cryptography Subsystem
581
Exercises
584
References
586
Part V System Operation
591
Chapter
14
Startup and Shutdown
593
14.1
Overview
593
14.2
Bootstrapping
595
The boot Program
595
14.3
Kernel Initialization
596
Assembly-Language Startup
597
14.4
Kernel Module Initialization
598
Basic Services
598
Kernel Thread Initialization
600
Device Module Initialization
601
Kernel Loadable Modules
603
Interprocess Communication Startup
604
Start Kernel Threads
606
14.5
User-Level Initialization
607
/sbin/init
607
System Startup Scripts
607
/usr/libexec/getty
608
/usr/bii^ogin
609
14.6
System Operation
609
Kernel Configuration
609
System Shutdown and Autoreboot
610
System Debugging
611
Passage of Information To and From the Kernel
612
Exercises
614
References
614
Glossary
615
Index
653 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | McKusick, Marshall Kirk 1954- Neville-Neil, George V. |
author_GND | (DE-588)1130183769 |
author_facet | McKusick, Marshall Kirk 1954- Neville-Neil, George V. |
author_role | aut aut |
author_sort | McKusick, Marshall Kirk 1954- |
author_variant | m k m mk mkm g v n n gvn gvnn |
building | Verbundindex |
bvnumber | BV023406606 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.76.O63 |
callnumber-search | QA76.76.O63 |
callnumber-sort | QA 276.76 O63 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 261 |
ctrlnum | (OCoLC)834871168 (DE-599)BVBBV023406606 |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 3. print. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01628nam a2200421zc 4500</leader><controlfield tag="001">BV023406606</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">00000000000000.0</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">080721s2004 xxuad|| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0201702452</subfield><subfield code="c">hc : alk. paper</subfield><subfield code="9">0-201-70245-2</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780201702453</subfield><subfield code="9">978-0-201-70245-3</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)834871168</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV023406606</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">xxu</subfield><subfield code="c">US</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-29T</subfield><subfield code="a">DE-739</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.76.O63</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">McKusick, Marshall Kirk</subfield><subfield code="d">1954-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1130183769</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">The design and implementation of the FreeBSD operating system</subfield><subfield code="b">[FreeBSD version 5.2]</subfield><subfield code="c">Marshall Kirk McKusick ; George V. Neville-Neil</subfield></datafield><datafield tag="246" ind1="1" ind2="3"><subfield code="a">FreeBSD operating system</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">3. print.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Boston [u.a.]</subfield><subfield code="b">Addison-Wesley</subfield><subfield code="c">2004</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXVIII, 683 S.</subfield><subfield code="b">Ill., 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="630" ind1="0" ind2="4"><subfield code="a">aFreeBSD</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">aFree computer software</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">aOperating systems (Computers)</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">BSD UNIX</subfield><subfield code="0">(DE-588)4229982-2</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">BSD UNIX</subfield><subfield code="0">(DE-588)4229982-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Neville-Neil, George V.</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau</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=016589290&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-016589290</subfield></datafield></record></collection> |
id | DE-604.BV023406606 |
illustrated | Illustrated |
index_date | 2024-07-02T21:25:49Z |
indexdate | 2024-07-09T21:17:55Z |
institution | BVB |
isbn | 0201702452 9780201702453 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-016589290 |
oclc_num | 834871168 |
open_access_boolean | |
owner | DE-29T DE-739 |
owner_facet | DE-29T DE-739 |
physical | XXVIII, 683 S. Ill., graph. Darst. |
publishDate | 2004 |
publishDateSearch | 2004 |
publishDateSort | 2004 |
publisher | Addison-Wesley |
record_format | marc |
spelling | McKusick, Marshall Kirk 1954- Verfasser (DE-588)1130183769 aut The design and implementation of the FreeBSD operating system [FreeBSD version 5.2] Marshall Kirk McKusick ; George V. Neville-Neil FreeBSD operating system 3. print. Boston [u.a.] Addison-Wesley 2004 XXVIII, 683 S. Ill., graph. Darst. txt rdacontent n rdamedia nc rdacarrier aFreeBSD aFree computer software aOperating systems (Computers) BSD UNIX (DE-588)4229982-2 gnd rswk-swf BSD UNIX (DE-588)4229982-2 s DE-604 Neville-Neil, George V. Verfasser aut Digitalisierung UB Passau application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016589290&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | McKusick, Marshall Kirk 1954- Neville-Neil, George V. The design and implementation of the FreeBSD operating system [FreeBSD version 5.2] aFreeBSD aFree computer software aOperating systems (Computers) BSD UNIX (DE-588)4229982-2 gnd |
subject_GND | (DE-588)4229982-2 |
title | The design and implementation of the FreeBSD operating system [FreeBSD version 5.2] |
title_alt | FreeBSD operating system |
title_auth | The design and implementation of the FreeBSD operating system [FreeBSD version 5.2] |
title_exact_search | The design and implementation of the FreeBSD operating system [FreeBSD version 5.2] |
title_exact_search_txtP | The design and implementation of the FreeBSD operating system [FreeBSD version 5.2] |
title_full | The design and implementation of the FreeBSD operating system [FreeBSD version 5.2] Marshall Kirk McKusick ; George V. Neville-Neil |
title_fullStr | The design and implementation of the FreeBSD operating system [FreeBSD version 5.2] Marshall Kirk McKusick ; George V. Neville-Neil |
title_full_unstemmed | The design and implementation of the FreeBSD operating system [FreeBSD version 5.2] Marshall Kirk McKusick ; George V. Neville-Neil |
title_short | The design and implementation of the FreeBSD operating system |
title_sort | the design and implementation of the freebsd operating system freebsd version 5 2 |
title_sub | [FreeBSD version 5.2] |
topic | aFreeBSD aFree computer software aOperating systems (Computers) BSD UNIX (DE-588)4229982-2 gnd |
topic_facet | aFreeBSD aFree computer software aOperating systems (Computers) BSD UNIX |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016589290&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT mckusickmarshallkirk thedesignandimplementationofthefreebsdoperatingsystemfreebsdversion52 AT nevilleneilgeorgev thedesignandimplementationofthefreebsdoperatingsystemfreebsdversion52 AT mckusickmarshallkirk freebsdoperatingsystem AT nevilleneilgeorgev freebsdoperatingsystem |