Solaris internals: Solaris 10 and OpenSolaris kernel architecture
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Upper Saddle River, NJ [u.a.]
Prentice Hall
2006
|
Ausgabe: | 2. ed. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XLVI, 1020 S. graph. Darst. |
ISBN: | 0131482092 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV021541044 | ||
003 | DE-604 | ||
005 | 20070222 | ||
007 | t | ||
008 | 060405s2006 d||| |||| 00||| eng d | ||
020 | |a 0131482092 |9 0-13-148209-2 | ||
035 | |a (OCoLC)255145637 | ||
035 | |a (DE-599)BVBBV021541044 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
049 | |a DE-473 |a DE-29T |a DE-526 |a DE-11 | ||
050 | 0 | |a QA76.76.O63 | |
082 | 0 | |a 005.4465 | |
084 | |a ST 261 |0 (DE-625)143633: |2 rvk | ||
100 | 1 | |a MacDougall, Richard |e Verfasser |4 aut | |
245 | 1 | 0 | |a Solaris internals |b Solaris 10 and OpenSolaris kernel architecture |c Richard McDougall ; Jim Mauro |
250 | |a 2. ed. | ||
264 | 1 | |a Upper Saddle River, NJ [u.a.] |b Prentice Hall |c 2006 | |
300 | |a XLVI, 1020 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
630 | 0 | 4 | |a Solaris (Computer file) |
650 | 4 | |a Operating systems (Computers) | |
650 | 0 | 7 | |a Kernel |g Informatik |0 (DE-588)4338679-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a SunOs |0 (DE-588)4294874-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a SOLARIS 10 |0 (DE-588)7514451-7 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a SOLARIS 10 |0 (DE-588)7514451-7 |D s |
689 | 0 | 1 | |a SunOs |0 (DE-588)4294874-5 |D s |
689 | 0 | 2 | |a Kernel |g Informatik |0 (DE-588)4338679-9 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Mauro, Jim |e Verfasser |4 aut | |
856 | 4 | 2 | |m GBV Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014757253&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-014757253 |
Datensatz im Suchindex
_version_ | 1806775679882100736 |
---|---|
adam_text |
SOLARIS* INTERNALS SECOND EDITION SOLARIS 10 AND OPENSOLARIS KERNEL
ARCHITECTURE RICHARD MCDOUGALL JIM MAURO SUN MICROSYSTEMS PRESS PRENTICE
HALL UPPER SADDLE RIVER, NJ * BOSTON * INDIANAPOLIS * SAN FRANCISCO NEW
YORK * TORONTO * MONTREAL * LONDON * MUNICH * PARIS * MADRID CAPETOWN *
SYDNEY * TOKYO * SINGAPORE * MEXICO CITY CONTENTS FOREWORD XXVII PREFACE
XXIX ABOUT THE AUTHORS XXXVII ACKNOWLEDGMENTS XXXIX PART ONE
INTRODUCTION TO SOLARIS INTERNALS 1 CHAPTER 1 INTRODUCTION 3 1.1 KEY
FEATURES OF SOLARIS 10, SOLARIS 9, AND SOLARIS 8 4 1.1.1 SOLARIS 10 5
1.1.2 SOLARIS 9 8 1.1.3 SOLARIS 8 10 1.2 KEY DIFFERENTIATORS 12 1.3
KERNEL OVERVIEW 15 1.3.1 SOLARIS KERNEL ARCHITECTURE 16 1.3.2 MODULAR
IMPLEMENTATION 17 VII VIII CONTENTS 1.4 PROCESSES, THREADS, AND
SCHEDULING 1.4.1 A NEW THREADS MODEL 1.4.2 GLOBAL PROCESS PRIORITIES AND
SCHEDULING 1.5 INTERPROCESS COMMUNICATION 1.5.1 TRADITIONAL UNIX IPC
1.5.2 SYSTEM V IPC 1.5.3 POSIX IPC 1.5.4 SOLARIS DOORS: ADVANCED SOLARIS
IPC 1.6 SIGNALS 1.7 MEMORY MANAGEMENT 1.7.1 GLOBAL MEMORY ALLOCATION
1.7.2 THE CYCLIC PAGE CACHE 1.7.3 KERNEL MEMORY MANAGEMENT 1.8 FILES AND
FILE SYSTEMS 1.9 RESOURCE MANAGEMENT 1.9.1 PROCESSOR CONTROLS AND
DOMAINS 1.9.2 SOLARIS RESOURCE MANAGEMENT 1.9.3 INTERNET PROTOCOL
QUALITY OF SERVICE 1.9.4 RESOURCE MANAGEMENT AND OBSERVABILITY PART TWO
THE PROCESS MODEL CHAPTER 2 THE SOLARIS PROCESS MODEL 2.1 COMPONENTS OF
A PROCESS 2.1.1 THREAD OBJECTS 2.1.2 CORE PROCESS COMPONENTS 2.2 PROCESS
MODEL EVOLUTION 2.2.1 THREAD MODEL EVOLUTION 2.2.2 UNIFIED PROCESS MODEL
2.3 EXECUTABLE OBJECTS 2.4 PROCESS STRUCTURES 2.4.1 THE PROC STRUCTURE
2.4.2 USER AREA 2.4.3 LIGHTWEIGHT PROCESSES (LWPS) 2.4.4 KERNEL THREADS
18 20 22 23 24 24 25 25 25 26 27 28 28 29 30 33 35 38 38 41 43 44 44 47
48 49 50 52 55 56 66 69 73 CONTENTS IX CHAPTER 3 2.5 KERNEL PROCESS
TABLE 2.5.1 PROCESS LIMITS 2.5.2 THREAD LIMITS 2.6 PROCESS RESOURCE
ATTRIBUTES 2.7 PROCESS CREATION 2.8 SYSTEM CALLS 2.8.1 SYSTEM CALLS ON
SPARC ARCHITECTURES 2.8.2 A TOUR THROUGH A SYSTEM CALL 2.9 PROCESS
TERMINATION 2.9.1 LWP AND KERNEL THREAD EXIT 2.9.2 DEATHROW LIST 2.10
THE PROCESS FILE SYSTEM 2.10.1 PROCFS IMPLEMENTATION 2.10.2 PROCESS
RESOURCE USAGE 2.10.3 MICROSTATE ACCOUNTING 2.11 SIGNALS 2.11.1 SIGNALS
IMPLEMENTATION 2.11.2 OBSERVING SIGNAL ACTIVITY 2.11.3 SUMMARY 2.12
SESSIONS AND PROCESS GROUPS 2.13 MDB REFERENCE SCHEDULING CLASSES AND
THE DISPATCHER 3.1 FUNDAMENTALS 3.2 PROCESSOR ABSTRACTIONS 3.2.1
PROCESSOR OBSERVABILITY 3.3 DISPATCHER QUEUES, STRUCTURES, AND VARIABLES
3.3.1 DISPATCHER STRUCTURES 3.3.2 DISPATCHER STRUCTURE LINKAGE 3.3.3
EXAMINING DISPATCHER STRUCTURES 3.4 DISPATCHER LOCKS 3.4.1 DISPATCHER
LOCK FUNCTIONS 3.4.2 THREAD LOCKS 3.4.3 THREAD LOCK FUNCTIONS 3.4.4 LOCK
STATISTICS 3.5 DISPATCHER INITIALIZATION 79 80 83 84 89 98 99 101 106
108 109 110 113 123 125 129 135 148 149 150 156 157 157 162 168 171 172
175 177 183 186 187 188 189 190 CONTENTS CHAPTER 4 3.6 SCHEDULING
CLASSES 3.6.1 SCHEDULING CLASS DATA 3.6.2 SCHEDULING CLASS FUNCTIONS
3.6.3 SCHEDULING CLASS DISPATCHER TABLES 3.7 THREAD PRIORITIES 3.7.1
GLOBAL PRIORITIES 3.7.2 USER PRIORITIES 3.7.3 SETTING THREAD PRIORITIES
3.8 DISPATCHER FUNCTIONS 3.8.1 DISPATCHER QUEUE MANAGEMENT 3.8.2 THE
HEART OF THE DISPATCHER: SWTCH () 3.9 PREEMPTION 3.10 THE KERNEL
SLEEP/WAKEUP FACILITY 3.10.1 CONDITION VARIABLES 3.10.2 SLEEP QUEUES
3.10.3 THE SLEEP PROCESS 3.10.4 THE WAKEUP MECHANISM 3.11 INTERRUPTS
3.11.1 INTERRUPT PRIORITIES 3.11.2 INTERRUPTS AS THREADS 3.11.3
INTERRUPT THREAD PRIORITIES 3.11.4 HIGH-PRIORITY INTERRUPTS 3.11.5
INTERRUPT MANAGEMENT 3.11.6 INTERRUPT MONITORING 3.11.7 INTERPROCESSOR
INTERRUPTS AND CROSS-CALLS 3.12 SUMMARY 3.13 MDB REFERENCE INTERPROCESS
COMMUNICATION 4.1 THE SYSTEM V IPC FRAMEWORK 4.1.1 IPC OBJECTS 4.1.2 IPC
FRAMEWORK DESIGN 4.1.3 LOCKING 4.1.4 MODULE CREATION 4.2 SYSTEM V IPC
RESOURCE CONTROLS 4.2.1 THE SOLUTION 192 193 198 202 207 208 209 211 234
234 242 246 253 253 255 257 261 262 264 264 266 266 267 267 268 270 271
273 274 274 275 277 280 282 283 CONTENTS XI CHAPTER 5 4.3 CONFIGURING
IPC TUNEABLES ON SOLARIS 10 285 4.4 SYSTEM V SHARED MEMORY 286 4.4.1
SHARED MEMORY KERNEL IMPLEMENTATION 288 4.4.2 INTIMATE SHARED MEMORY
(ISM) 291 4.4.3 DYNAMIC ISM SHARED MEMORY 294 4.5 SYSTEM V SEMAPHORES
295 4.5.1 SEMAPHORE KERNEL RESOURCES 296 4.5.2 KERNEL IMPLEMENTATION OF
SYSTEM V SEMAPHORES 297 4.5.3 SEMAPHORE OPERATIONS 297 4.6 SYSTEM V
MESSAGE QUEUES 299 4.6.1 KERNEL RESOURCES FOR MESSAGE QUEUES 299 4.6.2
KERNEL IMPLEMENTATION OF MESSAGE QUEUES 301 4.7 POSIX IPC 303 4.7.1
POSIX SHARED MEMORY 304 4.7.2 POSIX SEMAPHORES 305 4.7.3 POSIX MESSAGE
QUEUES 309 4.8 SOLARIS DOORS 312 4.8.1 DOORS OVERVIEW 313 4.8.2 DOORS
IMPLEMENTATION 314 4.9 MDB REFERENCE 321 PROCESS RIGHTS MANAGEMENT 323
5.1 THEN AND NOW 323 5.2 LEAST PRIVILEGE IN SOLARIS 324 5.3 PROCESS
PRIVILEGE MODELS 325 5.3.1 THE TRADITIONAL SOLARIS SUPERUSER MODEL 326
5.3.2 EXTENDING SOLARIS WITH PROCESS PRIVILEGES 327 5.3.3 HOW THE
SOLARIS 10 LEAST PRIVILEGE MODEL WAS CHOSEN 328 5.3.4 OTHER UNIX
IMPLEMENTATIONS 331 5.4 PRIVILEGE AWARENESS: THE DETAILS . 334 5.4.1
PER-PROCESS STATE 334 5.4.2 PRIVILEGE AWARENESS STATE TRANSITIONS 334
5.4.3 PRIVILEGE STATE MANIPULATION 335 5.4.4 PRIVILEGE ESCALATION
PREVENTION 340 5.4.5 THE TROUBLE WITH UID 0 340 5.4.6 BASIC PRIVILEGES
342 XII CONTENTS 5.4.7 PRIVILEGES AND THE RUNTIME ENVIRONMENT 5.4.8
PRIVILEGES AND NFS 5.4.9 PRIVILEGES AND THIRD-PARTY FILE SYSTEMS 5.5
LEAST PRIVILEGE INTERFACES 5.5.1 THE CONSPIRACY OF BIT SETS AND
CONSTANTS 5.5.2 PRIVILEGE NAMES AND CONSTANTS 5.5.3 KERNEL DATA
STRUCTURES 5.5.4 KERNEL INTERFACES 5.5.5 SYSTEM CALL INTERFACES 5.5.6
LIBRARY INTERFACES 5.5.7 USING PRIVILEGES WITH ROLE-BASED ACCESS CONTROL
5.5.8 USING PRIVILEGES WITH ROLE-BASED ACCESS CONTROL 5.5.9 USING DTRACE
FOR TRACKING PRIVILEGES 5.5.10 ENHANCEMENTS TO PROC (4) AND CORE DUMPS
5.5.11 PRIVILEGE DEBUGGING 5.5.12 PRIVILEGE AUDITING 5.5.13 DEVICE
PROTECTION PART THREE RESOURCE MANAGEMENT CHAPTER 6 ZONES 6.1
INTRODUCTION 6.1.1 ZONE BASICS 6.1.2 ZONE PRINCIPLES 6.2 ZONE RUNTIME
6.2.1 ZONE STATE MODEL 6.2.2 ZONE NAMES AND NUMERIC IDS 6.2.3 ZONE
RUNTIME SUPPORT 6.2.4 LISTING ZONE INFORMATION 6.3 BOOTING ZONES 6.4 S E
C U R I T Y 6.4.1 CREDENTIAL HANDLING 6.4.2 FINE-GRAINED PRIVILEGES
6.4.3 ROLE-BASED ACCESS CONTROL 6.4.4 CHROOT INTERACTIONS 342 343 344
344 345 346 346 349 351 353 357 359 360 360 361 362 362 365 367 367 368
370 371 371 372 373 374 375 379 380 380 385 385 1 I 1 1 CONTENTS 1 6.5
PROCESS MODEL 6.5.1 SIGNALS AND PROCESS CONTROL 6.5.2 GLOBAL ZONE
VISIBILITY AND ACCESS 6.5.3 /PROC 6.5.4 CORE FILES 6.6 FILE SYSTEMS -
6.6.1 CONFIGURATION 6.6.2 SIZE RESTRICTIONS 6.6.3 FILE SYSTEM-SPECIFIC
ISSUES 6.6.4 FILE SYSTEM TRAVERSAL ISSUES 6.7 NETWORKING 6.7.1
PARTITIONING 6.7.2 INTERFACES 6.7.3 IPV6 6.7.4 IPSEC | 6.7.5 RAW IP
SOCKET ACCESS 6.7.6 DLPI ACCESS | 6.7.7 ROUTING 6.7.8 TCP CONNECTION
TEARDOWN \ 6.8 DEVICES 6.8.1 DEVICE CATEGORIES 6.8.2 /DEV AND/DEVICES
NAMESPACE 6.8.3 DEVICE MANAGEMENT: ZONE CONFIGURATION 6.8.4 DEVICE
MANAGEMENT: ZONE RUNTIME 6.8.5 ZONE CONSOLE DESIGN 6.8.6 FTPD ; 6.9
INTERPROCESS COMMUNICATION | 6.9.1 PIPES, STREAMS, AND SOCKETS 6.9.2
DOORS 6.9.3 LOOPBACK TRANSPORT PROVIDERS 6.9.4 SYSTEM V IPC 6.9.5 POSIX
IPC I I 6.10 RESOURCE MANAGEMENT AND OBSERVABILITY 6.10.1 PERFORMANCE
6.10.2 SOLARIS RESOURCE MANAGEMENT INTERACTIONS 6.10.3 KSTATS 6.11 MDB
REFERENCE XIII 386 386 387 387 389 389 389 390 390 392 393 394 395 396
397 397 398 398 398 398 399 400 401 401 402 404 405 405 405 406 406 407
407 409 410 412 414 XIV CONTENTS CHAPTER 7 PROJECTS, TASKS, AND RESOURCE
CONTROLS 415 7.1 PROJECTS AND TASKS FRAMEWORK 415 7.1.1 INTRODUCTION 415
7.1.2 PROJECTS 416 7.1.3 TASKS 416 7.1.4 WHY WE ADDED TASKS TO SOLARIS
417 7.2 THE PROJECT DATABASE 418 7.3 PROJECT AND TASK APIS 419 7.3.1
INTERFACES FOR PROJECTS AND TASKS 419 7.4 KERNEL INFRASTRUCTURE FOR
PROJECTS AND TASKS 420 7.4.1 SYSTEM CALL INTERACTION WITH PROJECTS 421
7.4.2 PROC(4) 421 7.4.3 IN-KERNEL PROJECT DATA STRUCTURES 421 7.5
RESOURCE CONTROLS 423 7.5.1 INTRODUCTION TO RESOURCE CONTROLS 424 7.5.2
WHAT IS AN RCTL? 424 7.5.3 NUMERIC VALUES OF RESOURCE CONTROLS 426 7.5.4
RESOURCE CONTROL DEFINITIONS 426 7.5.5 POLICY 428 7.5.6 CONSEQUENCES OF
EXCEEDING AN RCT 1 429 7.5.7 SIGNAL AND SIGINF O SEMANTICS FOR EXCEEDED
CONTROLS 430 7.5.8 GENERALIZING HARD AND SOFT LIMITS 431 7.5.9 RESOURCE
CONTROLS AND THE TASK 431 7.5.10 VISIBILITY THROUGH /PROC; PRIVILEGES
AND OWNERSHIP 432 7.6 INTERFACES FOR RESOURCE CONTROLS 432 7.6.1 PROJECT
NAME-SERVICE ATTRIBUTES 433 7.6.2 ATTRIBUTES ORIGINATING WITHIN SOLARIS
433 7.6.3 GRAMMAR FOR ATTRIBUTES 433 7.6.4 INTERPRETATION OF RET 1
ATTRIBUTES 433 7.6.5 AN EXAMPLE /ETC/PROJECT 435 7.6.6 SYSTEM CALLS AND
PRIVATE KERNEL INTERFACES 436 7.6.7 LIBRARY FUNCTIONS 436 7.7 KERNEL
INTERFACES FOR RESOURCE CONTROLS 7.7.1 DATA STRUCTURES 7.7.2 OPERATIONS
VECTOR 437 438 439 CONTENTS XV 7.7.3 INTERFACE OVERVIEW 7.7.4 INTERFACE
DEFINITIONS 7.7.5 AN EXAMPLE RESOURCE CONTROL PART FOUR MEMORY CHAPTER 8
INTRODUCTION TO SOLARIS MEMORY 8.1 VIRTUAL MEMORY PRIMER 8.2 TWO LEVELS
OF MEMORY 8.3 MEMORY SHARING AND PROTECTION 8.4 PAGES: BASIC UNITS OF
PHYSICAL MEMORY 8.5 VIRTUAL-TO-PHYSICAL TRANSLATION 8.6 PHYSICAL MEMORY
MANAGEMENT: PAGING AND SWAPPING 8.7 VIRTUAL MEMORY AS A FILE SYSTEM
CACHE 8.8 NEW FEATURES OF THE VIRTUAL MEMORY IMPLEMENTATION CHAPTER 9
VIRTUAL MEMORY 9.1 DESIGN OVERVIEW 9.2 VIRTUAL ADDRESS SPACES 9.2.1
SHARING EXECUTABLES AND LIBRARIES 9.2.2 ADDRESS SPACES ON SPARC SYSTEMS
9.2.3 X86 AND X64 ADDRESS SPACE LAYOUT 9.2.4 GROWING THE HEAP 9.2.5 THE
STACK 9.2.6 USING PMAP TO LOOK AT MAPPINGS 9.3 TRACING THE VM SYSTEM 9.4
VIRTUAL ADDRESS SPACE MANAGEMENT 9.4.1 ADDRESS SPACE MANAGEMENT 9.4.2 *
ADDRESS SPACE CALLBACKS 9.4.3 VIRTUAL MEMORY PROTECTION MODES 9.4.4 PAGE
FAULTS IN ADDRESS SPACES 9.5 SEGMENT DRIVERS 9.5.1 THE VNODE SEGMENT:
SEG_VN 9.5.2 COPY-ON-WRITE 9.5.3 PAGE PROTECTION AND ADVICE 440 441 442
445 447 447 448 448 448 449 450 450 451 455 455 457 458 459 461 461 462
465 466 467 467 472 473 473 476 481 484 484 XVI CONTENTS 9.6 ANONYMOUS
MEMORY 9.7 THE ANONYMOUS MEMORY LAYER 9.8 THE SWAPF S LAYER 9.8.1 SWAPF
S IMPLEMENTATION 9.9 VIRTUAL MEMORY WATCHPOINTS 9.10 CHANGES TO SUPPORT
LARGE PAGES 9.10.1 SYSTEM VIEW OF A LARGE PAGE 9.10.2 FREE LIST
ORGANIZATION 9.10.3 LARGE-PAGE FAULTING 9.10.4 LARGE-PAGE FREEING 9.10.5
OPERATIONS THAT INTERFERE WITH LARGE PAGES 9.10.6 HAT SUPPORT 9.10.7
PROCF S CHANGES 9.11 MDB REFERENCE CHAPTER 10 PHYSICAL MEMORY 10.1
PHYSICAL MEMORY ALLOCATION 10.1.1 THE ALLOCATION CYCLE OF PHYSICAL
MEMORY 10.2 PAGES: THE BASIC UNIT OF SOLARIS MEMORY 10.2.1 THE PAGE HASH
LIST 10.2.2 PAGE STRUCTURES 10.2.3 FREE LIST AND CACHE LIST 10.2.4
PHYSICAL PAGE "MEMSEG" LISTS 10.2.5 THE PAGE-LEVEL INTERFACES 10.2.6 THE
PAGE THROTTLE 10.2.7 PAGE COLORING 10.3 THE PAGE SCANNER 10.3.1 PAGE
SCANNER OPERATION 10.3.2 PAGE-OUT ALGORITHM AND PARAMETERS 10.3.3 SHARED
LIBRARY OPTIMIZATIONS 10.3.4 PARAMETERS THAT LIMIT PAGES PAGED OUT
10.3.5 PAGE SCANNER IMPLEMENTATION 10.3.6 THE MEMORY SCHEDULER 10.4 MDB
REFERENCE 485 487 489 489 492 494 494 495 495 499 499 500 501 501 503
503 503 506 507 508 509 509 510 512 512 516 517 518 520 521 522 524 525
CONTENTS XVII CHAPTER 11 KERNEL MEMORY 527 11.1 KERNEL VIRTUAL MEMORY
LAYOUT 527 11.1.1 KERNEL ADDRESS SPACE 528 11.1.2 KERNEL TEXT AND DATA
SEGMENTS 528 11.1.3 VIRTUAL MEMORY DATA STRUCTURES 530 11.1.4 ULTRASPARC
KERNEL NUCLEUS 531 11.1.5 LOADABLE KERNEL MODULE TEXT AND DATA 531
11.1.6 THE KERNEL ADDRESS SPACE AND SEGMENTS 533 11.2 KERNEL MEMORY
ALLOCATION 534 11.2.1 THE KERNEL HEAP 534 11.2.2 THE KERNEL MEMORY
SEGMENT DRIVER 535 11.2.3 THE KERNEL MEMORY SLAB ALLOCATOR 537 11.3 THE
VMEM ALLOCATOR 552 11.3.1 BACKGROUND 552 11.3.2 VMEM OBJECTIVES 553
11.3.3 INTERFACE DESCRIPTION 553 11.3.4 VMEM IMPLEMENTATION 556 11.3.5
VMEM PERFORMANCE 560 11.3.6 SUMMARY 561 11.4 KERNEL MEMORY ALLOCATOR
TRACING 562 11.4.1 ENABLING KMA DEBUG FLAGS 562 11.4.2 EXAMINING KERNEL
MEMORY ALLOCATIONS WITH MDB 563 11.4.3 DETECTING MEMORY CORRUPTION 565
11.4.4 CHECKING A FREED BUFFER: OXDEADBEEF 566 11.4.5 DEBUGGING WITH THE
REDZONE INDICATOR: OXFEEDFACE 566 11.4.6 DETECTING UNINITIALIZED DATA:
OXBADDCAFE 569 11.4.7 ASSOCIATING PANIC MESSAGES WITH FAILURES 570
11.4.8 MEMORY ALLOCATION LOGGING 570 11.4.9 ANALYZING MEMORY WITH
ADVANCED TECHNIQUES 573 11.4.10 FINDING CORRUPT BUFFERS WITH :
:KMEM_VERIFY 575 11.4.11 USING THE ALLOCATOR LOGGING FACILITY 576 11.5
MDB REFERENCE 578 XVIII CONTENTS CHAPTER 12 HARDWARE ADDRESS TRANSLATION
581 12.1 HAT OVERVIEW 581 12.2 THE ULTRASPARC HAT LAYER 583 12.2.1
INTRODUCTION , 583 12.2.2 STRUCT HAT 585 12.2.3 THE TRANSLATION TABLE
588 12.2.4 THE TRANSLATION STORAGE BUFFER (TSB) 601 12.2.5 INTIMATE
SHARED MEMORY (ISM) 613 12.2.6 SYNCHRONIZATION IN THE HAT LAYER *,.;
616 12.2.7 SPARC HAT LAYER KERNEL TUNABLES 620 12.2.8 SPARC HAT LAYER
KSTATS 621 12.3 THE X64 HAT LAYER 625 12.3.1 MMU CONFIGURATION 625
12.3.2 STRUCT MMU VARIABLE 627 12.3.3 VIRTUAL ADDRESS SPACE LAYOUT 628
12.3.4 64-BIT ADDRESS SPACE LAYOUT 629 12.3.5 32-BIT ADDRESS SPACE
LAYOUT 629 12.3.6 HAT IMPLEMENTATION 631 12.4 MDB REFERENCE 636 CHAPTER
13 WORKING WITH MULTIPLE PAGE SIZES IN SOLARIS 639 13.1 DETERMINING WHEN
TO USE LARGE PAGES 639 13.2 MEASURING APPLICATION PERFORMANCE 640 13.2.1
DETERMINATION ALLOCATED PAGE SIZES 642 13.2.2 DISCOVERY OF SUPPORTED
PAGE SIZES 644 13.3 CONFIGURING FOR MULTIPLE PAGE SIZES 645 13.3.1
ENABLING LARGE PAGES 646 13.3.2 ADVISING PAGE-SIZE PREFERENCES WITH
PPGSZ (1M) 646 13.3.3 INTERPOSING SHARED LIBRARIES WITH LIBMPSS . SO 647
13.3.4 REQUEST LARGER PAGE SIZES WITH THE COMPILER 648 13.3.5 INTERFACES
TO REQUEST LARGER PAGE SIZES 649 13.3.6 CPU SPECIFIC LARGE PAGE SUPPORT
652 CONTENTS XIX PART FIVE FILE SYSTEMS CHAPTER 14 FILE SYSTEM FRAMEWORK
14.1 FILE SYSTEM FRAMEWORK 14.2 PROCESS-LEVEL FILE ABSTRACTIONS 14.2.1
FILE DESCRIPTORS 14.2.2 THE OPEN CODE PATH 14.2.3 ALLOCATING AND
DEALLOCATING FILE DESCRIPTORS 14.2.4 FILE DESCRIPTOR LIMITS 14.2.5 FILE
STRUCTURES 14.3 SOLARIS FILE SYSTEM FRAMEWORK 14.3.1 EVOLUTION OF THE
FILE SYSTEM FRAMEWORK 14.3.2 THE SOLARIS FILE SYSTEM INTERFACE 14.4 FILE
SYSTEM MODULES 14.4.1 INTERFACES FOR MOUNT OPTIONS 14.4.2 MODULE
INITIALIZATION 14.5 THE VIRTUAL FILE SYSTEM (VFS) INTERFACE 14.5.1 VFS
METHODS 14.5.2 VFS SUPPORT FUNCTIONS 14.5.3 THE MOUNT METHOD 14.5.4 THE
UMOUNT METHOD 14.5.5 ROOT VNODE IDENTIFICATION 14.5.6 VFS INFORMATION
AVAILABLE WITH MDB 14.6 THE VNODE 14.6.1 OBJECT INTERFACE 14.6.2 VNODE
TYPES 14.6.3 VNODE METHOD REGISTRATION 14.6.4 VNODE METHODS 14.6.5
SUPPORT FUNCTIONS FOR VNODES 14.6.6 THE LIFE CYCLE OF A VNODE 14.6.7
VNODE CREATION AND DESTRUCTION 14.6.8 THE VNODE REFERENCE COUNT 14.6.9
INTERFACES FOR PAGING VNODE CACHE 14.6.10 BLOCK I/O ON VNODE PAGES 655
657 657 658 660 661 662 665 666 668 669 672 672 673 674 675 676 679 681
683 683 684 685 686 688 688 690 696 696 698 698 698 700 XX CONTENTS
CHAPTER 15 14.6.11 VNODE INFORMATION OBTAINABLE WITH MDB 14.6.12 DTRACE
PROBES IN THE VNODE LAYER 14.7 FILE SYSTEM I/O 14.7.1 MEMORY MAPPED I/O
14.7.2 READ() AND WRITE () SYSTEM CALLS 14.7.3 THE SEGKPM DRIVER 14.7.4
THE SEG_MAP DRIVER 14.7.5 INTERACTION BETWEEN SEGMAP AND SEGKPM 14.8
FILE SYSTEMS AND MEMORY ALLOCATION 14.8.1 SOLARIS 8*CYCLIC PAGE CACHE
14.8.2 THE OLD ALLOCATION ALGORITHM 14.8.3 THE NEW ALLOCATION ALGORITHM
14.8.4 PUTTING IT ALL TOGETHER: THE ALLOCATION CYCLE 14.9 PATH-NAME
MANAGEMENT 14.9.1 THE LOOKUPPN () METHOD 14.9.2 THE VOP_LOOKUP () METHOD
14.9.3 THE VOP_READDIR() METHOD 14.9.4 PATH-NAME TRAVERSAL FUNCTIONS
14.10 THE DIRECTORY NAME LOOKUP CACHE 14.10.1 DNLC OPERATION 14.10.2
PRIMARY DNLC SUPPORT FUNCTIONS 14.10.3 DNLC NEGATIVE CACHE 14.10.4 DNLC
DIRECTORY CACHE 14.10.5 DNLC HOUSEKEEPING THREAD 14.10.6 DNLC STATISTICS
14.11 THE FILE SYSTEM FLUSH DAEMON 14.12 FILE SYSTEM CONVERSION TO
SOLARIS 10 14.13 MDB REFERENCE THEUFS FILE SYSTEM 15.1 UFS DEVELOPMENT
HISTORY 15.2 UFS ON-DISK FORMAT 15.2.1 ON-DISK UFS INODES 15.2.2 UFS
DIRECTORIES 15.2.3 UFS HARD LINKS 15.2.4 SHADOW INODES 701 703 707 708
709 710 710 716 718 718 719 720 720 722 722 723 723 724 726 726 728 729
729 733 733 734 734 736 737 737 739 739 742 744 745 CONTENTS XXI 15.2.5
THE BOOT BLOCK 15.2.6 THE SUPERBLOCK 15.2.7 THE CYLINDER GROUP 15.2.8
SUMMARY OF UFS ARCHITECTURE 15.3 THEUFSINODE 15.3.1 IN-CORE UFS INODES
15.3.2 INODE CACHE 15.3.3 BLOCK ALLOCATION 15.3.4 METHODS TO READ AND
WRITE UFS FILES 15.4 ACCESS CONTROL IN UFS 15.5 EXTENDED ATTRIBUTES IN
UFS 15.6 LOCKING IN UFS 15.6.1 UFS LOCK DESCRIPTIONS 15.6.2 INODE LOCK
ORDERING 15.6.3 UFS LOCKFS PROTOCOL 15.7 LOGGING 15.7.1 ON-DISK LOG DATA
STRUCTURES 15.7.2 IN-CORE LOG DATA STRUCTURES 15.7.3 SUMMARY INFORMATION
15.7.4 TRANSACTIONS 15.7.5 ROLLING THE LOG 15.7.6 REDIRECTING READS AND
WRITES TO THE LOG 15.7.7 FAILURE RECOVERY 15.8 MDB REFERENCE PART SIX
PLATFORM SPECIFICS CHAPTER 16 SUPPORT FOR NUMA AND CMT HARDWARE 16.1
MEMORY HIERARCHY DESIGNS 16.1.1 WHAT IS NUMA? 16.1.2 WHAT IS CMT? 16.2
MEMORY PLACEMENT OPTIMIZATION FRAMEWORK 16.2.1 LATENCY MODEL 16.2.2 MORE
COMPLEX MODELS 16.3 INITIAL THREAD PLACEMENT 746 747 748 749 751 751 752
754 760 764 767 768 769 772 773 775 776 779 782 783 787 789 790 790 793
795 796 796 797 799 800 801 802 XXII CONTENTS 16.4 SCHEDULING 16.5
MEMORY ALLOCATION 16.6 LGROUP IMPLEMENTATION 16.6.1 PARAMETERS AFFECTING
MPO 16.7 MPO APIS 16.7.1 INFORMATIONAL 16.7.2 VERIFYING THE INTERFACE
VERSION 16.7.3 INITIALIZATION OF THE LOCALITY GROUP INTERFACE 16.8
LOCALITY GROUP HIERARCHY 16.8.1 LOCALITY GROUP CHARACTERISTICS 802 803
804 805 807 807 810 810 811 812 16.8.2 LOCALITY GROUPS AND THREAD AND
MEMORY PLACEMENT 812 16.9 MPO STATISTICS 813 16.10 MDB REFERENCE 814
CHAPTER 17 LOCKING AND SYNCHRONIZATION 815 17.1 SYNCHRONIZATION 815 17.2
PARALLEL SYSTEMS ARCHITECTURES 816 17.3 HARDWARE CONSIDERATIONS FOR
LOCKS AND SYNCHRONIZATION 819 17.4 INTRODUCTION TO SYNCHRONIZATION
OBJECTS 824 17.4.1 SYNCHRONIZATION PROCESS 825 17.4.2 SYNCHRONIZATION
OBJECT OPERATIONS VECTOR 826 17.5 MUTEX LOCKS 827 17.5.1 OVERVIEW 828
17.5.2 SOLARIS MUTEX LOCK IMPLEMENTATION 830 17.6 READER/WRITER LOCKS
835 17.6.1 SOLARIS READER/WRITER LOCKS 836 17.7 TURNSTILES AND PRIORITY
INHERITANCE 840 17.7.1 TURNSTILES IMPLEMENTATION 841 17.8 KERNEL
SEMAPHORES 844 17.9 DTRACE LOCKSTAT PROVIDER 846 17.9.1 OVERVIEW 846
17.9.2 ADAPTIVE LOCK PROBES 847 17.9.3 SPIN LOCK PROBES 848 17.9.4
THREAD LOCKS 849 17.9.5 READERS/WRITER LOCK PROBES 849 CONTENTS XXIII
PART SEVEN NETWORKING 853 CHAPTER 18 THE SOLARIS NETWORK STACK 855 18.1
STREAMS AND THE NETWORK STACK 855 18.1.1 THE STREAMS MODEL 856 18.1.2
NETWORK STACK AS STREAMS MODULE 859 18.1.3 ISSUES WITH STREAMS-BASED
STACKS 862 18.2 SOLARIS 10 STACK: DESIGN GOALS 862 18.3 SOLARIS 10
NETWORK STACK FRAMEWORK 863 18.3.1 VERTICAL PERIMETER 864 18.3.2 IP
CLASSIFIER 868 18.3.3 SYNCHRONIZATION MECHANISM 870 18.4 TCP AS AN
IMPLEMENTATION OF THE NEW FRAMEWORK 870 18.4.1 THE INTERFACE BETWEEN TCP
AND IP 872 18.4.2 TCPLOOPBACK 874 18.5 UDP 875 18.5.1 UDP PACKET DROP
WITHIN THE STACK 876 18.5.2 UDP MODULE 876 18.5.3 UDP AND SOCKET
INTERACTION 878 18.6 SYNCHRONOUS STREAMS 878 18.6.1 TCP SYNCHRONOUS
STREAMS 878 18.6.2 STREAMS FALLBACK 879 18.7 IP 880 18.7.1 PLUMBING NICS
880 18.7.2 IP NETWORK MULTIPATHING 881 18.7.3 MULTICAST 881 18.8 SOLARIS
DEVICE DRIVER FRAMEWORK 882 18.8.1 GLDV2 AND DLPI DRIVERS (SOLARIS 9 AND
PRIOR) 882 18.8.2 A NEW ARCHITECTURE: GLDV3 883 18.8.3 GLDV3 LINK
AGGREGATION ARCHITECTURE 888 18.8.4 CHECKSUM OFFLOAD 890 18.9 INTERRUPT
MODEL AND NIC SPEEDS 891 18.9.1 SOLARIS 9 AND EARLIER RELEASES 891
18.9.2 DYNAMIC SWITCH BETWEEN INTERRUPT VS. POLLING MODE 892 18.9.3
INTERRUPT LOAD SPREADING 894 XXIV CONTENTS 18.10 SUMMARY 18.11 MDB
REFERENCE PART EIGHT KERNEL SERVICES CHAPTER 19 CLOCKS AND TIMERS 19.1
THE SYSTEM CLOCK THREAD 19.1.1 THREAD TICK PROCESSING 19.1.2 DTRACE
PROVIDERS FOR TICK PROCESSING 19.2 CALLOUTS AND CALLOUT TABLES 19.3
SYSTEM TIME FACILITIES 19.3.1 HIGH-RESOLUTION TIMER 19.3.2 TIME-OF-DAY
CLOCK 19.4 THE CYCLIC SUBSYSTEM 19.4.1 CYCLIC SUBSYSTEM INTERFACE
OVERVIEW 19.4.2 CYCLIC SUBSYSTEM IMPLEMENTATION OVERVIEW 19.4.3 CLIENTS
OF THE CYCLIC SUBSYSTEM 19.4.4 CYCLIC KERNEL AT-LARGE INTERFACES 19.4.5
CYCLIC KERNEL INTER-SUBSYSTEM INTERFACES 19.4.6 CYCLIC BACKEND
INTERFACES 19.4.7 CYCLIC SUBSYSTEM BACKEND-SUPPLIED INTERFACES CHAPTER
20 TASK QUEUES 20.1 OVERVIEW OF TASK QUEUES 20.2 DYNAMIC TASK QUEUES
20.2.1 WHY A DYNAMIC TASK QUEUE? 20.2.2 PROBLEMS ADDRESSED BY DYNAMIC
TASK QUEUES 20.2.3 TASK POOL MODEL 20.2.4 INTERFACE CHANGES TO SUPPORT
DYNAMIC TASK QUEUES 20.3 TASK QUEUES KERNEL PROGRAMMING INTERFACES 20.4
DEVICE DRIVER INTERFACE FOR TASK QUEUES 20.5 TASK QUEUE OBSERVABILITY
20.5.1 KSTAT COUNTERS 20.5.2 DTRACE SDT PROBES 895 895 899 901 901 903
904 904 910 910 910 912 912 913 922 923 924 924 924 927 927 928 928 929
930 931 932 934 935 935 936 CONTENTS XXV CHAPTER 21 20.6 TASK QUEUE
IMPLEMENTATION NOTES 20.6.1 USE OF KMEM CACHES 20.6.2 USE OF VMEM ARENAS
20.6.3 HASHED VMEM ARENAS 20.6.4 CACHED LIST OF ENTRIES 20.6.5 PROBLEMS
WITH TASK POOL IMPLEMENTATION 20.6.6 USE OF DYNAMIC TASK POOLS IN
STREAMS KMDB IMPLEMENTATION 21.1 INTRODUCTION 21.1.1 MDB COMPONENTS
21.1.2 MAJOR KMDB DESIGN DECISIONS 21.1.3 THE STRUCTURE OF KMDB 937 937
937 938 939 940 940 943 943 943 946 949 21.1.4 MDB COMPONENTS AND THEIR
IMPLEMENTATION IN KMDB 952 21.1.5 CONCLUSION 959 21.1.6 REMAINING
COMPONENTS 959 APPENDICES APPENDIX A KERNEL VIRTUAL ADDRESS MAPS
APPENDIX B ADDING A SYSTEM CALL TO SOLARIS APPENDIX C A SAMPLE PROCFS
UTILITY BIBLIOGRAPHY INDEX 963 965 971 975 979 983 |
adam_txt |
SOLARIS* INTERNALS SECOND EDITION SOLARIS 10 AND OPENSOLARIS KERNEL
ARCHITECTURE RICHARD MCDOUGALL JIM MAURO SUN MICROSYSTEMS PRESS PRENTICE
HALL UPPER SADDLE RIVER, NJ * BOSTON * INDIANAPOLIS * SAN FRANCISCO NEW
YORK * TORONTO * MONTREAL * LONDON * MUNICH * PARIS * MADRID CAPETOWN *
SYDNEY * TOKYO * SINGAPORE * MEXICO CITY CONTENTS FOREWORD XXVII PREFACE
XXIX ABOUT THE AUTHORS XXXVII ACKNOWLEDGMENTS XXXIX PART ONE
INTRODUCTION TO SOLARIS INTERNALS 1 CHAPTER 1 INTRODUCTION 3 1.1 KEY
FEATURES OF SOLARIS 10, SOLARIS 9, AND SOLARIS 8 4 1.1.1 SOLARIS 10 5
1.1.2 SOLARIS 9 8 1.1.3 SOLARIS 8 10 1.2 KEY DIFFERENTIATORS 12 1.3
KERNEL OVERVIEW 15 1.3.1 SOLARIS KERNEL ARCHITECTURE 16 1.3.2 MODULAR
IMPLEMENTATION 17 VII VIII CONTENTS 1.4 PROCESSES, THREADS, AND
SCHEDULING 1.4.1 A NEW THREADS MODEL 1.4.2 GLOBAL PROCESS PRIORITIES AND
SCHEDULING 1.5 INTERPROCESS COMMUNICATION 1.5.1 TRADITIONAL UNIX IPC
1.5.2 SYSTEM V IPC 1.5.3 POSIX IPC 1.5.4 SOLARIS DOORS: ADVANCED SOLARIS
IPC 1.6 SIGNALS 1.7 MEMORY MANAGEMENT 1.7.1 GLOBAL MEMORY ALLOCATION
1.7.2 THE CYCLIC PAGE CACHE 1.7.3 KERNEL MEMORY MANAGEMENT 1.8 FILES AND
FILE SYSTEMS 1.9 RESOURCE MANAGEMENT 1.9.1 PROCESSOR CONTROLS AND
DOMAINS 1.9.2 SOLARIS RESOURCE MANAGEMENT 1.9.3 INTERNET PROTOCOL
QUALITY OF SERVICE 1.9.4 RESOURCE MANAGEMENT AND OBSERVABILITY PART TWO
THE PROCESS MODEL CHAPTER 2 THE SOLARIS PROCESS MODEL 2.1 COMPONENTS OF
A PROCESS 2.1.1 THREAD OBJECTS 2.1.2 CORE PROCESS COMPONENTS 2.2 PROCESS
MODEL EVOLUTION 2.2.1 THREAD MODEL EVOLUTION 2.2.2 UNIFIED PROCESS MODEL
2.3 EXECUTABLE OBJECTS 2.4 PROCESS STRUCTURES 2.4.1 THE PROC STRUCTURE
2.4.2 USER AREA 2.4.3 LIGHTWEIGHT PROCESSES (LWPS) 2.4.4 KERNEL THREADS
18 20 22 23 24 24 25 25 25 26 27 28 28 29 30 33 35 38 38 41 43 44 44 47
48 49 50 52 55 56 66 69 73 CONTENTS IX CHAPTER 3 2.5 KERNEL PROCESS
TABLE 2.5.1 PROCESS LIMITS 2.5.2 THREAD LIMITS 2.6 PROCESS RESOURCE
ATTRIBUTES 2.7 PROCESS CREATION 2.8 SYSTEM CALLS 2.8.1 SYSTEM CALLS ON
SPARC ARCHITECTURES 2.8.2 A TOUR THROUGH A SYSTEM CALL 2.9 PROCESS
TERMINATION 2.9.1 LWP AND KERNEL THREAD EXIT 2.9.2 DEATHROW LIST 2.10
THE PROCESS FILE SYSTEM 2.10.1 PROCFS IMPLEMENTATION 2.10.2 PROCESS
RESOURCE USAGE 2.10.3 MICROSTATE ACCOUNTING 2.11 SIGNALS 2.11.1 SIGNALS
IMPLEMENTATION 2.11.2 OBSERVING SIGNAL ACTIVITY 2.11.3 SUMMARY 2.12
SESSIONS AND PROCESS GROUPS 2.13 MDB REFERENCE SCHEDULING CLASSES AND
THE DISPATCHER 3.1 FUNDAMENTALS 3.2 PROCESSOR ABSTRACTIONS 3.2.1
PROCESSOR OBSERVABILITY 3.3 DISPATCHER QUEUES, STRUCTURES, AND VARIABLES
3.3.1 DISPATCHER STRUCTURES 3.3.2 DISPATCHER STRUCTURE LINKAGE 3.3.3
EXAMINING DISPATCHER STRUCTURES 3.4 DISPATCHER LOCKS 3.4.1 DISPATCHER
LOCK FUNCTIONS 3.4.2 THREAD LOCKS 3.4.3 THREAD LOCK FUNCTIONS 3.4.4 LOCK
STATISTICS 3.5 DISPATCHER INITIALIZATION 79 80 83 84 89 98 99 101 106
108 109 110 113 123 125 129 135 148 149 150 156 157 157 162 168 171 172
175 177 183 186 187 188 189 190 CONTENTS CHAPTER 4 3.6 SCHEDULING
CLASSES 3.6.1 SCHEDULING CLASS DATA 3.6.2 SCHEDULING CLASS FUNCTIONS
3.6.3 SCHEDULING CLASS DISPATCHER TABLES 3.7 THREAD PRIORITIES 3.7.1
GLOBAL PRIORITIES 3.7.2 USER PRIORITIES 3.7.3 SETTING THREAD PRIORITIES
3.8 DISPATCHER FUNCTIONS 3.8.1 DISPATCHER QUEUE MANAGEMENT 3.8.2 THE
HEART OF THE DISPATCHER: SWTCH () 3.9 PREEMPTION 3.10 THE KERNEL
SLEEP/WAKEUP FACILITY 3.10.1 CONDITION VARIABLES 3.10.2 SLEEP QUEUES
3.10.3 THE SLEEP PROCESS 3.10.4 THE WAKEUP MECHANISM 3.11 INTERRUPTS
3.11.1 INTERRUPT PRIORITIES 3.11.2 INTERRUPTS AS THREADS 3.11.3
INTERRUPT THREAD PRIORITIES 3.11.4 HIGH-PRIORITY INTERRUPTS 3.11.5
INTERRUPT MANAGEMENT 3.11.6 INTERRUPT MONITORING 3.11.7 INTERPROCESSOR
INTERRUPTS AND CROSS-CALLS 3.12 SUMMARY 3.13 MDB REFERENCE INTERPROCESS
COMMUNICATION 4.1 THE SYSTEM V IPC FRAMEWORK 4.1.1 IPC OBJECTS 4.1.2 IPC
FRAMEWORK DESIGN 4.1.3 LOCKING 4.1.4 MODULE CREATION 4.2 SYSTEM V IPC
RESOURCE CONTROLS 4.2.1 THE SOLUTION 192 193 198 202 207 208 209 211 234
234 242 246 253 253 255 257 261 262 264 264 266 266 267 267 268 270 271
273 274 274 275 277 280 282 283 CONTENTS XI CHAPTER 5 4.3 CONFIGURING
IPC TUNEABLES ON SOLARIS 10 285 4.4 SYSTEM V SHARED MEMORY 286 4.4.1
SHARED MEMORY KERNEL IMPLEMENTATION 288 4.4.2 INTIMATE SHARED MEMORY
(ISM) 291 4.4.3 DYNAMIC ISM SHARED MEMORY 294 4.5 SYSTEM V SEMAPHORES
295 4.5.1 SEMAPHORE KERNEL RESOURCES 296 4.5.2 KERNEL IMPLEMENTATION OF
SYSTEM V SEMAPHORES 297 4.5.3 SEMAPHORE OPERATIONS 297 4.6 SYSTEM V
MESSAGE QUEUES 299 4.6.1 KERNEL RESOURCES FOR MESSAGE QUEUES 299 4.6.2
KERNEL IMPLEMENTATION OF MESSAGE QUEUES 301 4.7 POSIX IPC 303 4.7.1
POSIX SHARED MEMORY 304 4.7.2 POSIX SEMAPHORES 305 4.7.3 POSIX MESSAGE
QUEUES 309 4.8 SOLARIS DOORS 312 4.8.1 DOORS OVERVIEW 313 4.8.2 DOORS
IMPLEMENTATION 314 4.9 MDB REFERENCE 321 PROCESS RIGHTS MANAGEMENT 323
5.1 THEN AND NOW 323 5.2 LEAST PRIVILEGE IN SOLARIS 324 5.3 PROCESS
PRIVILEGE MODELS 325 5.3.1 THE TRADITIONAL SOLARIS SUPERUSER MODEL 326
5.3.2 EXTENDING SOLARIS WITH PROCESS PRIVILEGES 327 5.3.3 HOW THE
SOLARIS 10 LEAST PRIVILEGE MODEL WAS CHOSEN 328 5.3.4 OTHER UNIX
IMPLEMENTATIONS 331 5.4 PRIVILEGE AWARENESS: THE DETAILS . 334 5.4.1
PER-PROCESS STATE 334 5.4.2 PRIVILEGE AWARENESS STATE TRANSITIONS 334
5.4.3 PRIVILEGE STATE MANIPULATION 335 5.4.4 PRIVILEGE ESCALATION
PREVENTION 340 5.4.5 THE TROUBLE WITH UID 0 340 5.4.6 BASIC PRIVILEGES
342 XII CONTENTS 5.4.7 PRIVILEGES AND THE RUNTIME ENVIRONMENT 5.4.8
PRIVILEGES AND NFS 5.4.9 PRIVILEGES AND THIRD-PARTY FILE SYSTEMS 5.5
LEAST PRIVILEGE INTERFACES 5.5.1 THE CONSPIRACY OF BIT SETS AND
CONSTANTS 5.5.2 PRIVILEGE NAMES AND CONSTANTS 5.5.3 KERNEL DATA
STRUCTURES 5.5.4 KERNEL INTERFACES 5.5.5 SYSTEM CALL INTERFACES 5.5.6
LIBRARY INTERFACES 5.5.7 USING PRIVILEGES WITH ROLE-BASED ACCESS CONTROL
5.5.8 USING PRIVILEGES WITH ROLE-BASED ACCESS CONTROL 5.5.9 USING DTRACE
FOR TRACKING PRIVILEGES 5.5.10 ENHANCEMENTS TO PROC (4) AND CORE DUMPS
5.5.11 PRIVILEGE DEBUGGING 5.5.12 PRIVILEGE AUDITING 5.5.13 DEVICE
PROTECTION PART THREE RESOURCE MANAGEMENT CHAPTER 6 ZONES 6.1
INTRODUCTION 6.1.1 ZONE BASICS 6.1.2 ZONE PRINCIPLES 6.2 ZONE RUNTIME
6.2.1 ZONE STATE MODEL 6.2.2 ZONE NAMES AND NUMERIC IDS 6.2.3 ZONE
RUNTIME SUPPORT 6.2.4 LISTING ZONE INFORMATION 6.3 BOOTING ZONES 6.4 S E
C U R I T Y 6.4.1 CREDENTIAL HANDLING 6.4.2 FINE-GRAINED PRIVILEGES
6.4.3 ROLE-BASED ACCESS CONTROL 6.4.4 CHROOT INTERACTIONS 342 343 344
344 345 346 346 349 351 353 357 359 360 360 361 362 362 365 367 367 368
370 371 371 372 373 374 375 379 380 380 385 385 1 I 1 1 CONTENTS 1 6.5
PROCESS MODEL 6.5.1 SIGNALS AND PROCESS CONTROL 6.5.2 GLOBAL ZONE
VISIBILITY AND ACCESS 6.5.3 /PROC 6.5.4 CORE FILES 6.6 FILE SYSTEMS -
6.6.1 CONFIGURATION 6.6.2 SIZE RESTRICTIONS 6.6.3 FILE SYSTEM-SPECIFIC
ISSUES 6.6.4 FILE SYSTEM TRAVERSAL ISSUES 6.7 NETWORKING 6.7.1
PARTITIONING 6.7.2 INTERFACES 6.7.3 IPV6 6.7.4 IPSEC | 6.7.5 RAW IP
SOCKET ACCESS 6.7.6 DLPI ACCESS | 6.7.7 ROUTING 6.7.8 TCP CONNECTION
TEARDOWN \ 6.8 DEVICES 6.8.1 DEVICE CATEGORIES 6.8.2 /DEV AND/DEVICES
NAMESPACE 6.8.3 DEVICE MANAGEMENT: ZONE CONFIGURATION 6.8.4 DEVICE
MANAGEMENT: ZONE RUNTIME 6.8.5 ZONE CONSOLE DESIGN 6.8.6 FTPD ; 6.9
INTERPROCESS COMMUNICATION | 6.9.1 PIPES, STREAMS, AND SOCKETS 6.9.2
DOORS 6.9.3 LOOPBACK TRANSPORT PROVIDERS 6.9.4 SYSTEM V IPC 6.9.5 POSIX
IPC I I 6.10 RESOURCE MANAGEMENT AND OBSERVABILITY 6.10.1 PERFORMANCE
6.10.2 SOLARIS RESOURCE MANAGEMENT INTERACTIONS 6.10.3 KSTATS 6.11 MDB
REFERENCE XIII 386 386 387 387 389 389 389 390 390 392 393 394 395 396
397 397 398 398 398 398 399 400 401 401 402 404 405 405 405 406 406 407
407 409 410 412 414 XIV CONTENTS CHAPTER 7 PROJECTS, TASKS, AND RESOURCE
CONTROLS 415 7.1 PROJECTS AND TASKS FRAMEWORK 415 7.1.1 INTRODUCTION 415
7.1.2 PROJECTS 416 7.1.3 TASKS 416 7.1.4 WHY WE ADDED TASKS TO SOLARIS
417 7.2 THE PROJECT DATABASE 418 7.3 PROJECT AND TASK APIS 419 7.3.1
INTERFACES FOR PROJECTS AND TASKS 419 7.4 KERNEL INFRASTRUCTURE FOR
PROJECTS AND TASKS 420 7.4.1 SYSTEM CALL INTERACTION WITH PROJECTS 421
7.4.2 PROC(4) 421 7.4.3 IN-KERNEL PROJECT DATA STRUCTURES 421 7.5
RESOURCE CONTROLS 423 7.5.1 INTRODUCTION TO RESOURCE CONTROLS 424 7.5.2
WHAT IS AN RCTL? 424 7.5.3 NUMERIC VALUES OF RESOURCE CONTROLS 426 7.5.4
RESOURCE CONTROL DEFINITIONS 426 7.5.5 POLICY 428 7.5.6 CONSEQUENCES OF
EXCEEDING AN RCT 1 429 7.5.7 SIGNAL AND SIGINF O SEMANTICS FOR EXCEEDED
CONTROLS 430 7.5.8 GENERALIZING HARD AND SOFT LIMITS 431 7.5.9 RESOURCE
CONTROLS AND THE TASK 431 7.5.10 VISIBILITY THROUGH /PROC; PRIVILEGES
AND OWNERSHIP 432 7.6 INTERFACES FOR RESOURCE CONTROLS 432 7.6.1 PROJECT
NAME-SERVICE ATTRIBUTES 433 7.6.2 ATTRIBUTES ORIGINATING WITHIN SOLARIS
433 7.6.3 GRAMMAR FOR ATTRIBUTES 433 7.6.4 INTERPRETATION OF RET 1
ATTRIBUTES 433 7.6.5 AN EXAMPLE /ETC/PROJECT 435 7.6.6 SYSTEM CALLS AND
PRIVATE KERNEL INTERFACES 436 7.6.7 LIBRARY FUNCTIONS 436 7.7 KERNEL
INTERFACES FOR RESOURCE CONTROLS 7.7.1 DATA STRUCTURES 7.7.2 OPERATIONS
VECTOR 437 438 439 CONTENTS XV 7.7.3 INTERFACE OVERVIEW 7.7.4 INTERFACE
DEFINITIONS 7.7.5 AN EXAMPLE RESOURCE CONTROL PART FOUR MEMORY CHAPTER 8
INTRODUCTION TO SOLARIS MEMORY 8.1 VIRTUAL MEMORY PRIMER 8.2 TWO LEVELS
OF MEMORY 8.3 MEMORY SHARING AND PROTECTION 8.4 PAGES: BASIC UNITS OF
PHYSICAL MEMORY 8.5 VIRTUAL-TO-PHYSICAL TRANSLATION 8.6 PHYSICAL MEMORY
MANAGEMENT: PAGING AND SWAPPING 8.7 VIRTUAL MEMORY AS A FILE SYSTEM
CACHE 8.8 NEW FEATURES OF THE VIRTUAL MEMORY IMPLEMENTATION CHAPTER 9
VIRTUAL MEMORY 9.1 DESIGN OVERVIEW 9.2 VIRTUAL ADDRESS SPACES 9.2.1
SHARING EXECUTABLES AND LIBRARIES 9.2.2 ADDRESS SPACES ON SPARC SYSTEMS
9.2.3 X86 AND X64 ADDRESS SPACE LAYOUT 9.2.4 GROWING THE HEAP 9.2.5 THE
STACK 9.2.6 USING PMAP TO LOOK AT MAPPINGS 9.3 TRACING THE VM SYSTEM 9.4
VIRTUAL ADDRESS SPACE MANAGEMENT 9.4.1 ADDRESS SPACE MANAGEMENT 9.4.2 *
ADDRESS SPACE CALLBACKS 9.4.3 VIRTUAL MEMORY PROTECTION MODES 9.4.4 PAGE
FAULTS IN ADDRESS SPACES 9.5 SEGMENT DRIVERS 9.5.1 THE VNODE SEGMENT:
SEG_VN 9.5.2 COPY-ON-WRITE 9.5.3 PAGE PROTECTION AND ADVICE 440 441 442
445 447 447 448 448 448 449 450 450 451 455 455 457 458 459 461 461 462
465 466 467 467 472 473 473 476 481 484 484 XVI CONTENTS 9.6 ANONYMOUS
MEMORY 9.7 THE ANONYMOUS MEMORY LAYER 9.8 THE SWAPF S LAYER 9.8.1 SWAPF
S IMPLEMENTATION 9.9 VIRTUAL MEMORY WATCHPOINTS 9.10 CHANGES TO SUPPORT
LARGE PAGES 9.10.1 SYSTEM VIEW OF A LARGE PAGE 9.10.2 FREE LIST
ORGANIZATION 9.10.3 LARGE-PAGE FAULTING 9.10.4 LARGE-PAGE FREEING 9.10.5
OPERATIONS THAT INTERFERE WITH LARGE PAGES 9.10.6 HAT SUPPORT 9.10.7
PROCF S CHANGES 9.11 MDB REFERENCE CHAPTER 10 PHYSICAL MEMORY 10.1
PHYSICAL MEMORY ALLOCATION 10.1.1 THE ALLOCATION CYCLE OF PHYSICAL
MEMORY 10.2 PAGES: THE BASIC UNIT OF SOLARIS MEMORY 10.2.1 THE PAGE HASH
LIST 10.2.2 PAGE STRUCTURES 10.2.3 FREE LIST AND CACHE LIST 10.2.4
PHYSICAL PAGE "MEMSEG" LISTS 10.2.5 THE PAGE-LEVEL INTERFACES 10.2.6 THE
PAGE THROTTLE 10.2.7 PAGE COLORING 10.3 THE PAGE SCANNER 10.3.1 PAGE
SCANNER OPERATION 10.3.2 PAGE-OUT ALGORITHM AND PARAMETERS 10.3.3 SHARED
LIBRARY OPTIMIZATIONS 10.3.4 PARAMETERS THAT LIMIT PAGES PAGED OUT
10.3.5 PAGE SCANNER IMPLEMENTATION 10.3.6 THE MEMORY SCHEDULER 10.4 MDB
REFERENCE 485 487 489 489 492 494 494 495 495 499 499 500 501 501 503
503 503 506 507 508 509 509 510 512 512 516 517 518 520 521 522 524 525
CONTENTS XVII CHAPTER 11 KERNEL MEMORY 527 11.1 KERNEL VIRTUAL MEMORY
LAYOUT 527 11.1.1 KERNEL ADDRESS SPACE 528 11.1.2 KERNEL TEXT AND DATA
SEGMENTS 528 11.1.3 VIRTUAL MEMORY DATA STRUCTURES 530 11.1.4 ULTRASPARC
KERNEL NUCLEUS 531 11.1.5 LOADABLE KERNEL MODULE TEXT AND DATA 531
11.1.6 THE KERNEL ADDRESS SPACE AND SEGMENTS 533 11.2 KERNEL MEMORY
ALLOCATION 534 11.2.1 THE KERNEL HEAP 534 11.2.2 THE KERNEL MEMORY
SEGMENT DRIVER 535 11.2.3 THE KERNEL MEMORY SLAB ALLOCATOR 537 11.3 THE
VMEM ALLOCATOR 552 11.3.1 BACKGROUND 552 11.3.2 VMEM OBJECTIVES 553
11.3.3 INTERFACE DESCRIPTION 553 11.3.4 VMEM IMPLEMENTATION 556 11.3.5
VMEM PERFORMANCE 560 11.3.6 SUMMARY 561 11.4 KERNEL MEMORY ALLOCATOR
TRACING 562 11.4.1 ENABLING KMA DEBUG FLAGS 562 11.4.2 EXAMINING KERNEL
MEMORY ALLOCATIONS WITH MDB 563 11.4.3 DETECTING MEMORY CORRUPTION 565
11.4.4 CHECKING A FREED BUFFER: OXDEADBEEF 566 11.4.5 DEBUGGING WITH THE
REDZONE INDICATOR: OXFEEDFACE 566 11.4.6 DETECTING UNINITIALIZED DATA:
OXBADDCAFE 569 11.4.7 ASSOCIATING PANIC MESSAGES WITH FAILURES 570
11.4.8 MEMORY ALLOCATION LOGGING 570 11.4.9 ANALYZING MEMORY WITH
ADVANCED TECHNIQUES 573 11.4.10 FINDING CORRUPT BUFFERS WITH :
:KMEM_VERIFY 575 11.4.11 USING THE ALLOCATOR LOGGING FACILITY 576 11.5
MDB REFERENCE 578 XVIII CONTENTS CHAPTER 12 HARDWARE ADDRESS TRANSLATION
581 12.1 HAT OVERVIEW 581 12.2 THE ULTRASPARC HAT LAYER 583 12.2.1
INTRODUCTION , 583 12.2.2 STRUCT HAT 585 12.2.3 THE TRANSLATION TABLE
588 12.2.4 THE TRANSLATION STORAGE BUFFER (TSB) 601 12.2.5 INTIMATE
SHARED MEMORY (ISM) 613 12.2.6 SYNCHRONIZATION IN THE HAT LAYER *,.;
616 12.2.7 SPARC HAT LAYER KERNEL TUNABLES 620 12.2.8 SPARC HAT LAYER
KSTATS 621 12.3 THE X64 HAT LAYER 625 12.3.1 MMU CONFIGURATION 625
12.3.2 STRUCT MMU VARIABLE 627 12.3.3 VIRTUAL ADDRESS SPACE LAYOUT 628
12.3.4 64-BIT ADDRESS SPACE LAYOUT 629 12.3.5 32-BIT ADDRESS SPACE
LAYOUT 629 12.3.6 HAT IMPLEMENTATION 631 12.4 MDB REFERENCE 636 CHAPTER
13 WORKING WITH MULTIPLE PAGE SIZES IN SOLARIS 639 13.1 DETERMINING WHEN
TO USE LARGE PAGES 639 13.2 MEASURING APPLICATION PERFORMANCE 640 13.2.1
DETERMINATION ALLOCATED PAGE SIZES 642 13.2.2 DISCOVERY OF SUPPORTED
PAGE SIZES 644 13.3 CONFIGURING FOR MULTIPLE PAGE SIZES 645 13.3.1
ENABLING LARGE PAGES 646 13.3.2 ADVISING PAGE-SIZE PREFERENCES WITH
PPGSZ (1M) 646 13.3.3 INTERPOSING SHARED LIBRARIES WITH LIBMPSS . SO 647
13.3.4 REQUEST LARGER PAGE SIZES WITH THE COMPILER 648 13.3.5 INTERFACES
TO REQUEST LARGER PAGE SIZES 649 13.3.6 CPU SPECIFIC LARGE PAGE SUPPORT
652 CONTENTS XIX PART FIVE FILE SYSTEMS CHAPTER 14 FILE SYSTEM FRAMEWORK
14.1 FILE SYSTEM FRAMEWORK 14.2 PROCESS-LEVEL FILE ABSTRACTIONS 14.2.1
FILE DESCRIPTORS 14.2.2 THE OPEN CODE PATH 14.2.3 ALLOCATING AND
DEALLOCATING FILE DESCRIPTORS 14.2.4 FILE DESCRIPTOR LIMITS 14.2.5 FILE
STRUCTURES 14.3 SOLARIS FILE SYSTEM FRAMEWORK 14.3.1 EVOLUTION OF THE
FILE SYSTEM FRAMEWORK 14.3.2 THE SOLARIS FILE SYSTEM INTERFACE 14.4 FILE
SYSTEM MODULES 14.4.1 INTERFACES FOR MOUNT OPTIONS 14.4.2 MODULE
INITIALIZATION 14.5 THE VIRTUAL FILE SYSTEM (VFS) INTERFACE 14.5.1 VFS
METHODS 14.5.2 VFS SUPPORT FUNCTIONS 14.5.3 THE MOUNT METHOD 14.5.4 THE
UMOUNT METHOD 14.5.5 ROOT VNODE IDENTIFICATION 14.5.6 VFS INFORMATION
AVAILABLE WITH MDB 14.6 THE VNODE 14.6.1 OBJECT INTERFACE 14.6.2 VNODE
TYPES 14.6.3 VNODE METHOD REGISTRATION 14.6.4 VNODE METHODS 14.6.5
SUPPORT FUNCTIONS FOR VNODES 14.6.6 THE LIFE CYCLE OF A VNODE 14.6.7
VNODE CREATION AND DESTRUCTION 14.6.8 THE VNODE REFERENCE COUNT 14.6.9
INTERFACES FOR PAGING VNODE CACHE 14.6.10 BLOCK I/O ON VNODE PAGES 655
657 657 658 660 661 662 665 666 668 669 672 672 673 674 675 676 679 681
683 683 684 685 686 688 688 690 696 696 698 698 698 700 XX CONTENTS
CHAPTER 15 14.6.11 VNODE INFORMATION OBTAINABLE WITH MDB 14.6.12 DTRACE
PROBES IN THE VNODE LAYER 14.7 FILE SYSTEM I/O 14.7.1 MEMORY MAPPED I/O
14.7.2 READ() AND WRITE () SYSTEM CALLS 14.7.3 THE SEGKPM DRIVER 14.7.4
THE SEG_MAP DRIVER 14.7.5 INTERACTION BETWEEN SEGMAP AND SEGKPM 14.8
FILE SYSTEMS AND MEMORY ALLOCATION 14.8.1 SOLARIS 8*CYCLIC PAGE CACHE
14.8.2 THE OLD ALLOCATION ALGORITHM 14.8.3 THE NEW ALLOCATION ALGORITHM
14.8.4 PUTTING IT ALL TOGETHER: THE ALLOCATION CYCLE 14.9 PATH-NAME
MANAGEMENT 14.9.1 THE LOOKUPPN () METHOD 14.9.2 THE VOP_LOOKUP () METHOD
14.9.3 THE VOP_READDIR() METHOD 14.9.4 PATH-NAME TRAVERSAL FUNCTIONS
14.10 THE DIRECTORY NAME LOOKUP CACHE 14.10.1 DNLC OPERATION 14.10.2
PRIMARY DNLC SUPPORT FUNCTIONS 14.10.3 DNLC NEGATIVE CACHE 14.10.4 DNLC
DIRECTORY CACHE 14.10.5 DNLC HOUSEKEEPING THREAD 14.10.6 DNLC STATISTICS
14.11 THE FILE SYSTEM FLUSH DAEMON 14.12 FILE SYSTEM CONVERSION TO
SOLARIS 10 14.13 MDB REFERENCE THEUFS FILE SYSTEM 15.1 UFS DEVELOPMENT
HISTORY 15.2 UFS ON-DISK FORMAT 15.2.1 ON-DISK UFS INODES 15.2.2 UFS
DIRECTORIES 15.2.3 UFS HARD LINKS 15.2.4 SHADOW INODES 701 703 707 708
709 710 710 716 718 718 719 720 720 722 722 723 723 724 726 726 728 729
729 733 733 734 734 736 737 737 739 739 742 744 745 CONTENTS XXI 15.2.5
THE BOOT BLOCK 15.2.6 THE SUPERBLOCK 15.2.7 THE CYLINDER GROUP 15.2.8
SUMMARY OF UFS ARCHITECTURE 15.3 THEUFSINODE 15.3.1 IN-CORE UFS INODES
15.3.2 INODE CACHE 15.3.3 BLOCK ALLOCATION 15.3.4 METHODS TO READ AND
WRITE UFS FILES 15.4 ACCESS CONTROL IN UFS 15.5 EXTENDED ATTRIBUTES IN
UFS 15.6 LOCKING IN UFS 15.6.1 UFS LOCK DESCRIPTIONS 15.6.2 INODE LOCK
ORDERING 15.6.3 UFS LOCKFS PROTOCOL 15.7 LOGGING 15.7.1 ON-DISK LOG DATA
STRUCTURES 15.7.2 IN-CORE LOG DATA STRUCTURES 15.7.3 SUMMARY INFORMATION
15.7.4 TRANSACTIONS 15.7.5 ROLLING THE LOG 15.7.6 REDIRECTING READS AND
WRITES TO THE LOG 15.7.7 FAILURE RECOVERY 15.8 MDB REFERENCE PART SIX
PLATFORM SPECIFICS CHAPTER 16 SUPPORT FOR NUMA AND CMT HARDWARE 16.1
MEMORY HIERARCHY DESIGNS 16.1.1 WHAT IS NUMA? 16.1.2 WHAT IS CMT? 16.2
MEMORY PLACEMENT OPTIMIZATION FRAMEWORK 16.2.1 LATENCY MODEL 16.2.2 MORE
COMPLEX MODELS 16.3 INITIAL THREAD PLACEMENT 746 747 748 749 751 751 752
754 760 764 767 768 769 772 773 775 776 779 782 783 787 789 790 790 793
795 796 796 797 799 800 801 802 XXII CONTENTS 16.4 SCHEDULING 16.5
MEMORY ALLOCATION 16.6 LGROUP IMPLEMENTATION 16.6.1 PARAMETERS AFFECTING
MPO 16.7 MPO APIS 16.7.1 INFORMATIONAL 16.7.2 VERIFYING THE INTERFACE
VERSION 16.7.3 INITIALIZATION OF THE LOCALITY GROUP INTERFACE 16.8
LOCALITY GROUP HIERARCHY 16.8.1 LOCALITY GROUP CHARACTERISTICS 802 803
804 805 807 807 810 810 811 812 16.8.2 LOCALITY GROUPS AND THREAD AND
MEMORY PLACEMENT 812 16.9 MPO STATISTICS 813 16.10 MDB REFERENCE 814
CHAPTER 17 LOCKING AND SYNCHRONIZATION 815 17.1 SYNCHRONIZATION 815 17.2
PARALLEL SYSTEMS ARCHITECTURES 816 17.3 HARDWARE CONSIDERATIONS FOR
LOCKS AND SYNCHRONIZATION 819 17.4 INTRODUCTION TO SYNCHRONIZATION
OBJECTS 824 17.4.1 SYNCHRONIZATION PROCESS 825 17.4.2 SYNCHRONIZATION
OBJECT OPERATIONS VECTOR 826 17.5 MUTEX LOCKS 827 17.5.1 OVERVIEW 828
17.5.2 SOLARIS MUTEX LOCK IMPLEMENTATION 830 17.6 READER/WRITER LOCKS
835 17.6.1 SOLARIS READER/WRITER LOCKS 836 17.7 TURNSTILES AND PRIORITY
INHERITANCE 840 17.7.1 TURNSTILES IMPLEMENTATION 841 17.8 KERNEL
SEMAPHORES 844 17.9 DTRACE LOCKSTAT PROVIDER 846 17.9.1 OVERVIEW 846
17.9.2 ADAPTIVE LOCK PROBES 847 17.9.3 SPIN LOCK PROBES 848 17.9.4
THREAD LOCKS 849 17.9.5 READERS/WRITER LOCK PROBES 849 CONTENTS XXIII
PART SEVEN NETWORKING 853 CHAPTER 18 THE SOLARIS NETWORK STACK 855 18.1
STREAMS AND THE NETWORK STACK 855 18.1.1 THE STREAMS MODEL 856 18.1.2
NETWORK STACK AS STREAMS MODULE 859 18.1.3 ISSUES WITH STREAMS-BASED
STACKS 862 18.2 SOLARIS 10 STACK: DESIGN GOALS 862 18.3 SOLARIS 10
NETWORK STACK FRAMEWORK 863 18.3.1 VERTICAL PERIMETER 864 18.3.2 IP
CLASSIFIER 868 18.3.3 SYNCHRONIZATION MECHANISM 870 18.4 TCP AS AN
IMPLEMENTATION OF THE NEW FRAMEWORK 870 18.4.1 THE INTERFACE BETWEEN TCP
AND IP 872 18.4.2 TCPLOOPBACK 874 18.5 UDP 875 18.5.1 UDP PACKET DROP
WITHIN THE STACK 876 18.5.2 UDP MODULE 876 18.5.3 UDP AND SOCKET
INTERACTION 878 18.6 SYNCHRONOUS STREAMS 878 18.6.1 TCP SYNCHRONOUS
STREAMS 878 18.6.2 STREAMS FALLBACK 879 18.7 IP 880 18.7.1 PLUMBING NICS
880 18.7.2 IP NETWORK MULTIPATHING 881 18.7.3 MULTICAST 881 18.8 SOLARIS
DEVICE DRIVER FRAMEWORK 882 18.8.1 GLDV2 AND DLPI DRIVERS (SOLARIS 9 AND
PRIOR) 882 18.8.2 A NEW ARCHITECTURE: GLDV3 883 18.8.3 GLDV3 LINK
AGGREGATION ARCHITECTURE 888 18.8.4 CHECKSUM OFFLOAD 890 18.9 INTERRUPT
MODEL AND NIC SPEEDS 891 18.9.1 SOLARIS 9 AND EARLIER RELEASES 891
18.9.2 DYNAMIC SWITCH BETWEEN INTERRUPT VS. POLLING MODE 892 18.9.3
INTERRUPT LOAD SPREADING 894 XXIV CONTENTS 18.10 SUMMARY 18.11 MDB
REFERENCE PART EIGHT KERNEL SERVICES CHAPTER 19 CLOCKS AND TIMERS 19.1
THE SYSTEM CLOCK THREAD 19.1.1 THREAD TICK PROCESSING 19.1.2 DTRACE
PROVIDERS FOR TICK PROCESSING 19.2 CALLOUTS AND CALLOUT TABLES 19.3
SYSTEM TIME FACILITIES 19.3.1 HIGH-RESOLUTION TIMER 19.3.2 TIME-OF-DAY
CLOCK 19.4 THE CYCLIC SUBSYSTEM 19.4.1 CYCLIC SUBSYSTEM INTERFACE
OVERVIEW 19.4.2 CYCLIC SUBSYSTEM IMPLEMENTATION OVERVIEW 19.4.3 CLIENTS
OF THE CYCLIC SUBSYSTEM 19.4.4 CYCLIC KERNEL AT-LARGE INTERFACES 19.4.5
CYCLIC KERNEL INTER-SUBSYSTEM INTERFACES 19.4.6 CYCLIC BACKEND
INTERFACES 19.4.7 CYCLIC SUBSYSTEM BACKEND-SUPPLIED INTERFACES CHAPTER
20 TASK QUEUES 20.1 OVERVIEW OF TASK QUEUES 20.2 DYNAMIC TASK QUEUES
20.2.1 WHY A DYNAMIC TASK QUEUE? 20.2.2 PROBLEMS ADDRESSED BY DYNAMIC
TASK QUEUES 20.2.3 TASK POOL MODEL 20.2.4 INTERFACE CHANGES TO SUPPORT
DYNAMIC TASK QUEUES 20.3 TASK QUEUES KERNEL PROGRAMMING INTERFACES 20.4
DEVICE DRIVER INTERFACE FOR TASK QUEUES 20.5 TASK QUEUE OBSERVABILITY
20.5.1 KSTAT COUNTERS 20.5.2 DTRACE SDT PROBES 895 895 899 901 901 903
904 904 910 910 910 912 912 913 922 923 924 924 924 927 927 928 928 929
930 931 932 934 935 935 936 CONTENTS XXV CHAPTER 21 20.6 TASK QUEUE
IMPLEMENTATION NOTES 20.6.1 USE OF KMEM CACHES 20.6.2 USE OF VMEM ARENAS
20.6.3 HASHED VMEM ARENAS 20.6.4 CACHED LIST OF ENTRIES 20.6.5 PROBLEMS
WITH TASK POOL IMPLEMENTATION 20.6.6 USE OF DYNAMIC TASK POOLS IN
STREAMS KMDB IMPLEMENTATION 21.1 INTRODUCTION 21.1.1 MDB COMPONENTS
21.1.2 MAJOR KMDB DESIGN DECISIONS 21.1.3 THE STRUCTURE OF KMDB 937 937
937 938 939 940 940 943 943 943 946 949 21.1.4 MDB COMPONENTS AND THEIR
IMPLEMENTATION IN KMDB 952 21.1.5 CONCLUSION 959 21.1.6 REMAINING
COMPONENTS 959 APPENDICES APPENDIX A KERNEL VIRTUAL ADDRESS MAPS
APPENDIX B ADDING A SYSTEM CALL TO SOLARIS APPENDIX C A SAMPLE PROCFS
UTILITY BIBLIOGRAPHY INDEX 963 965 971 975 979 983 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | MacDougall, Richard Mauro, Jim |
author_facet | MacDougall, Richard Mauro, Jim |
author_role | aut aut |
author_sort | MacDougall, Richard |
author_variant | r m rm j m jm |
building | Verbundindex |
bvnumber | BV021541044 |
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)255145637 (DE-599)BVBBV021541044 |
dewey-full | 005.4465 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.4465 |
dewey-search | 005.4465 |
dewey-sort | 15.4465 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 2. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV021541044</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20070222</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">060405s2006 d||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0131482092</subfield><subfield code="9">0-13-148209-2</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)255145637</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV021541044</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="049" ind1=" " ind2=" "><subfield code="a">DE-473</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-526</subfield><subfield code="a">DE-11</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.76.O63</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.4465</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">MacDougall, Richard</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Solaris internals</subfield><subfield code="b">Solaris 10 and OpenSolaris kernel architecture</subfield><subfield code="c">Richard McDougall ; Jim Mauro</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Upper Saddle River, NJ [u.a.]</subfield><subfield code="b">Prentice Hall</subfield><subfield code="c">2006</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XLVI, 1020 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="630" ind1="0" ind2="4"><subfield code="a">Solaris (Computer file)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Operating systems (Computers)</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="650" ind1="0" ind2="7"><subfield code="a">SunOs</subfield><subfield code="0">(DE-588)4294874-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">SOLARIS 10</subfield><subfield code="0">(DE-588)7514451-7</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">SOLARIS 10</subfield><subfield code="0">(DE-588)7514451-7</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">SunOs</subfield><subfield code="0">(DE-588)4294874-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><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="700" ind1="1" ind2=" "><subfield code="a">Mauro, Jim</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">GBV 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=014757253&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-014757253</subfield></datafield></record></collection> |
id | DE-604.BV021541044 |
illustrated | Illustrated |
index_date | 2024-07-02T14:28:16Z |
indexdate | 2024-08-08T00:06:01Z |
institution | BVB |
isbn | 0131482092 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-014757253 |
oclc_num | 255145637 |
open_access_boolean | |
owner | DE-473 DE-BY-UBG DE-29T DE-526 DE-11 |
owner_facet | DE-473 DE-BY-UBG DE-29T DE-526 DE-11 |
physical | XLVI, 1020 S. graph. Darst. |
publishDate | 2006 |
publishDateSearch | 2006 |
publishDateSort | 2006 |
publisher | Prentice Hall |
record_format | marc |
spelling | MacDougall, Richard Verfasser aut Solaris internals Solaris 10 and OpenSolaris kernel architecture Richard McDougall ; Jim Mauro 2. ed. Upper Saddle River, NJ [u.a.] Prentice Hall 2006 XLVI, 1020 S. graph. Darst. txt rdacontent n rdamedia nc rdacarrier Solaris (Computer file) Operating systems (Computers) Kernel Informatik (DE-588)4338679-9 gnd rswk-swf SunOs (DE-588)4294874-5 gnd rswk-swf SOLARIS 10 (DE-588)7514451-7 gnd rswk-swf SOLARIS 10 (DE-588)7514451-7 s SunOs (DE-588)4294874-5 s Kernel Informatik (DE-588)4338679-9 s DE-604 Mauro, Jim Verfasser aut GBV Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014757253&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | MacDougall, Richard Mauro, Jim Solaris internals Solaris 10 and OpenSolaris kernel architecture Solaris (Computer file) Operating systems (Computers) Kernel Informatik (DE-588)4338679-9 gnd SunOs (DE-588)4294874-5 gnd SOLARIS 10 (DE-588)7514451-7 gnd |
subject_GND | (DE-588)4338679-9 (DE-588)4294874-5 (DE-588)7514451-7 |
title | Solaris internals Solaris 10 and OpenSolaris kernel architecture |
title_auth | Solaris internals Solaris 10 and OpenSolaris kernel architecture |
title_exact_search | Solaris internals Solaris 10 and OpenSolaris kernel architecture |
title_exact_search_txtP | Solaris internals Solaris 10 and OpenSolaris kernel architecture |
title_full | Solaris internals Solaris 10 and OpenSolaris kernel architecture Richard McDougall ; Jim Mauro |
title_fullStr | Solaris internals Solaris 10 and OpenSolaris kernel architecture Richard McDougall ; Jim Mauro |
title_full_unstemmed | Solaris internals Solaris 10 and OpenSolaris kernel architecture Richard McDougall ; Jim Mauro |
title_short | Solaris internals |
title_sort | solaris internals solaris 10 and opensolaris kernel architecture |
title_sub | Solaris 10 and OpenSolaris kernel architecture |
topic | Solaris (Computer file) Operating systems (Computers) Kernel Informatik (DE-588)4338679-9 gnd SunOs (DE-588)4294874-5 gnd SOLARIS 10 (DE-588)7514451-7 gnd |
topic_facet | Solaris (Computer file) Operating systems (Computers) Kernel Informatik SunOs SOLARIS 10 |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014757253&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT macdougallrichard solarisinternalssolaris10andopensolariskernelarchitecture AT maurojim solarisinternalssolaris10andopensolariskernelarchitecture |