Amazon cover image
Image from Amazon.com
Image from Coce

The design and implementation of the FreeBSD® operating system /

By: Contributor(s): Material type: TextTextPublisher: Upper Saddle River, New Jersey : Pearson Education, Inc., Addison-Wesley, [2015]Copyright date: ©2015Edition: Second editionDescription: xxx, 886 pages : illustrations ; 25 cmContent type:
  • text
Media type:
  • unmediated
Carrier type:
  • volume
ISBN:
  • 9780321968975
  • 0321968972
Other title:
  • The design and implementation of the FreeBSD operating system
Subject(s): DDC classification:
  • 005.432 MCD 23
Contents:
Star ratings
    Average rating: 0.0 (0 votes)
Holdings
Item type Current library Collection Call number Status Date due Barcode Item holds
Book Non-borrowing Book Non-borrowing Library D Information Technology 005.432 MCD (Browse shelf(Opens below)) Not For Loan 1004224
Book Book Library D Information Technology 005.432 MCD (Browse shelf(Opens below)) Available 1004225
Book Book Library D Information Technology 005.432 MCD (Browse shelf(Opens below)) Available 1004226
Total holds: 0

Includes bibliographical references and index.

Part I: Overview -- Chapter 1: History and Goals -- History of the UNIX System -- Origins -- Research UNIX -- AT&T UNIX System III and System V -- Berkeley Software Distributions -- UNIX in the World -- BSD and Other Systems -- The Influence of the User Community -- The Transition of BSD to Open Source -- Networking Release -- The Lawsuit -- BSD -- BSD-Lite Release -- The FreeBSD Development Model -- References -- Chapter 2: Design Overview of FreeBSD -- FreeBSD Facilities and the Kernel -- The Kernel -- Kernel Organization -- Kemel Services -- Process Management -- Signals Process Groups and Sessions -- Security Process Credentials -- Privilege Model -- Discretionary Access Control -- Capability Model -- Jail Lightweight Virtualization -- Mandatory Access Control -- Event Auditing -- Cryptography and Random-Number Generators -- Memory Management BSD Memory-Management Design Decisions Memory Management Inside the Kernel -- I/O System Overview Descriptors and I/O Descriptor Management -- Devices Socket IPC -- Scatter-Gather I/O Multiple Filesystem Support -- Devices -- The Fast Filesystem Filestores -- The Zettabyte Filesystem -- The Network Filesystem -- Interprocess Communication -- Network-Layer Protocols -- Transport-Layer Protocols -- System Startup and Shutdown -- Exercises -- References -- Chapter 3: Kernel Services -- Kernel Organization -- System Processes -- System Entry -- Run-Time Organization -- Entry to the Kernel -- Return from the Kernel -- System Calls Result Handling -- Returning from a System C -- Traps and Interrupts -- I/O Device Interrupts -- Software Interrupts -- Clock Interrupts Statistics and Process Scheduling -- Timeouts -- Memory-Management Services -- Timing Services -- Real Time -- External Representation -- Adjustment of the Time -- Interval Time -- Resource Services Process Priorities -- Resource Utilization -- Resource Limits -- Filesystem Quotas -- Kernel Tracing Facilities -- System-Call Tracing -- DTrace -- Kernel Tracing -- Exercises -- References -- Part II Processes: Chapter 4: Process Management -- Introduction to Process Management -- Multiprogramming -- Scheduling -- Process State -- The Process Structure -- The Thread Structure -- Context Switching -- Thread State -- Low-Level Context Switching -- Voluntary Context Switching -- Synchronization -- Mutex Synchronization -- Mutex Interface -- Lock Synchronization -- Deadlock Prevention -- Thread Scheduling -- The Low-Level Scheduler -- Thread Run Queues and Context Switching -- Timeshare Thread Scheduling -- Multiprocessor Scheduling -- Adaptive Idle -- Traditional Timeshare Thread Scheduling -- Process Creation -- Process Termination -- Signals -- Posting of a Signal -- Delivering a Signal -- Process Groups and Sessions -- Process Groups -- Sessions -- Job Control -- Process Debugging -- Exercises -- References -- Chapter 5: Security -- Operating-System Security -- Security Model -- Process Model -- Discretionary and Mandatory Access Control -- Trusted Computing Base (TCB) -- Other Kernel-Security Features -- Process Credentials -- The Credential Structure -- Credential Memory Model -- Access-Control Checks -- Users and Groups -- Setuid and Setgid Binaries -- Privilege Model -- Implicit Privilege -- Explicit Privilege -- Interprocess Access Control -- Visibility -- Signals -- Scheduling Control -- Waiting on Process Termination -- Debugging -- Discretionary Access Control -- The Virtual-Filesystem Interface and DAC -- Object Owners and Groups -- UNIX Permissions -- Access Control Lists (ACLS) -- POSIX.1e Access Control Lists -- NFSv4 Access Control Lists -- Capsicum Capability Model -- Capsicum Application Structure -- Capability Systems -- Capabilities -- Capability Mode -- Jails -- Mandatory Access-Control Framework -- Mandatory Policies -- Guiding Design Principles -- Architecture of the MAC Framework -- Framework Startup -- Policy Registration -- Framework Entry-Point Design Considerations -- Policy Entry-Point Considerations -- Kernel Service Entry-Point Invocation -- Policy Composition -- Object Labelling -- Label Life Cycle and Memory Management -- Label Synchronization -- Policy-Agnostic Label Management from Userspace -- Security Event Auditing -- Audit Events and Records -- BSM Audit Records and Audit Trails -- Kernel-Audit Implementation -- Cryptographic Services -- Cryptographic Framework -- Random-Number Generator -- GELI Full-Disk Encryption -- Confidentiality and Integrity Protection -- Key Management -- Starting GELI -- Cryptographic Block Protection -- I/O Model -- Limitations -- Exercises -- References -- Chapter 6: Memory Management -- Terminology -- Processes and Memory -- Paging -- Replacement Algorithms -- Working-Set Model -- Swapping -- Advantages of Virtual Memory -- Hardware Requirements for Virtual Memory -- Overview of the FreeBSD Virtual-Memory System -- User Address-Space Management -- Kernel Memory Management -- Kernel Maps and Submaps -- Kernel Address-Space Allocation -- The Slab Allocator -- The Keg Allocator -- The Zone Allocator -- Kernel Malloc -- Kernel Zone Allocator -- Per-Process Resources -- FreeBSD Process Virtual-Address Space -- Page-Fault Dispatch Mapping to Vm objects -- Vm objects -- Vm objects to Pages -- Shared Memory -- Mmap Model -- Shared Mapping -- Private Mapping -- Collapsing of Shadow Chains -- Private Snapshots -- Creation of a New Process -- Reserving Kernel Resources -- Duplication of the User Address Space -- Creation of a New Process Without Copying -- Execution of a File -- Process Manipulation of Its Address Space -- Change of Process File Mapping Size -- Change of Protection -- Termination of a Process -- The Pager Interface -- Vnode Pager -- Device Pager -- Physical-Memory Pager -- Swap Pager -- Paging -- Hardware-Cache Design -- Hardware Memory Management -- Superpages -- Page Replacement -- Paging Parameters -- The Pageout Daemon -- Swapping -- The Swap-In Process -- Portability -- The Role of the pmap Module -- Initialization and Startup -- Mapping Allocation and Deallocation -- Change of Access and Wiring Attributes for Mappings -- Maintenance of Physical Page-Usage Information -- Initialization of Physical Pages -- Management of Internal Data Structures -- Exercises -- References -- Part III: I/O System: Chapter 7: I/O System Overview -- Descriptor Management and Services -- Open File Entries -- Management of Descriptors -- Asynchronous I/O -- File-Descriptor Locking -- Multiplexing I/O on Descriptors -- Implementation of Select -- Kqueues and Kevents -- Movement of Data Inside the Kernel -- Local Interprocess Communication -- Semaphores -- Message Queues -- Shared Memory -- The Virtual-Filesystem Interface -- Contents of a Vnode -- Vnode Operations -- Pathname Translation -- Exported Filesystem Services -- Filesystem-Independent Services -- The Name Cache -- Buffer Management -- Implementation of Buffer Management -- Stackable Filesystems -- Simple Filesystem Layers -- The Union Filesystem -- Other Filesystems -- Exercises -- References -- Chapter 8: Devices -- Device Overview -- The PC I/O Architecture -- The Structure of the FreeBSD Mass Storage I/O Subsystem -- Device Naming and Access -- I/O Mapping from User to Device -- Device Drivers -- I/O Queueing -- Interrupt Handling -- Character Devices -- Raw Devices and Physical I/O -- Character Oriented Devices -- Entry Points for Character Device Drivers -- Disk Devices -- Entry Points for Disk Device Drivers -- Sorting of Disk I/O Requests -- Disk Labels -- Network Devices -- Entry Points for Network Drivers -- Configuration and Control -- Packet Reception -- Packet Transmission -- Terminal Handling -- Terminal-Processing Modes -- User Interface -- Process Groups, Sessions, and Terminal Control -- Terminal Operations -- Terminal Output (Upper Half) -- Terminal Output (Lower Half) -- Terminal Input -- Closing of Terminal Devices -- The GEOM Layer -- Terminology and Topology Rules -- Changing Topology -- Operation -- Topological Flexibility -- The CAM Layer -- The Path of a SCSI I/O Request Through the CAM Subsystem -- ATA Disks -- Device Configuration -- Device Identification -- Autoconfiguration Data Structures -- Resource Management -- Device Virtualization -- Interaction with the Hypervisor -- Virtio -- Xen -- Device Pass-Through -- Exercises -- References -- Chapter 9: The Fast Filesystem -- Hierarchical Filesystem Management -- Structure of an Inode -- Changes to the Inode Format -- Extended Attributes -- New Filesystem Capabilities -- File Flags -- Dynamic Inodes -- Inode Management -- Naming -- Directories -- Finding of Names in Directories -- Pathname Translation -- Links -- Quotas -- File Locking -- Soft Updates -- Update Dependencies in the Filesystem -- Dependency Structures -- Bitmap Dependency Tracking -- Inode Dependency Tracking -- Direct-Block Dependency Tracking -- Indirect-Block Dependency Tracking -- Dependency Tracking for New Indirect Blocks -- New Directory-Entry Dependency Tracking -- New Directory Dependency Tracking -- Directory-Entry Removal-Dependency Tracking -- File Truncation -- File and Directory Inode Reclamation -- Directory-Entry Renaming Dependency Tracking -- Fsync Requirements for Soft Updates -- File-Removal Requirements for Soft Updates -- Soft-Updates Requirements for fsck -- Filesystem Snapshots -- Creating a Filesystem Snapshot -- Maintaining a Filesystem Snapshot -- Large Filesystem Snapshots -- Background fsck -- User-Visible Snapshots -- Live Dumps -- Journaled Soft Updates -- Background and Introduction with Other Implementations -- Compatibility Journal Format -- Modifications That Require Journaling -- Additional Requirements of Journaling -- The Recovery Performance Process -- Future Work -- Tracking File-Removal Dependencies -- The Local Filestore -- Overview of the Filestore -- User I/O to a File -- The Berkeley Fast Filesystem -- Organization of the Berkeley Fast Filesystem -- Boot Blocks -- Optimization of Storage Utilization -- Reading and Writing to a File -- Layout Policies -- Allocation Mechanisms -- Block Clustering -- Extent-Based Allocation -- Exercises -- References -- Chapter 10: The Zettabyte Filesystem -- Introduction -- ZFS Organization -- ZFS Dnode -- ZFS Block Pointers -- ZFS objset Structure -- ZFS Structure -- The MOS Layer -- The Object-Set Layer -- ZFS Operation -- Writing New Data to Disk -- Logging -- RAIDZ -- Snapshots -- ZFS Block Allocation -- Freeing Blocks -- Deduplication -- Remote Replication -- ZFS Design Tradeoffs -- Exercises -- References -- Chapter 11: The Network Filesystem -- Overview -- Structure and Operation -- The FreeBSD NFS Implementation -- Client-Server Interactions -- Security Issues -- Techniques for Improving Performance -- NFS Evolution -- Namespace -- Attributes -- Access Control Lists -- Caching, Delegation, and Callbacks -- Locking -- Security -- Crash Recovery -- Exercises -- References -- Part IV: Interprocess Communication: Chapter 12: Interprocess Communication -- Interprocess-Communication Model -- Use of Sockets -- Implementation Structure and Overview -- Memory Management -- Mbufs -- Storage-Management Algorithms -- Mbuf Utility Routines -- IPC Data Structures -- Socket Addresses -- Locks -- Connection Setup -- Data Transfer -- Transmitting Data -- Receiving Data -- Socket Shutdown -- Network-Communication Protocol Internal Structure -- Data Flow -- Communication Protocols -- Socket-to-Protocol Interface -- Protocol User-Request Routines -- Protocol Control-Output Routine -- Protocol-to-Protocol Interface -- pr_output -- pr_input -- pr_ctlinput -- Protocol-to-Network Interface -- Network Interfaces and Link-Layer Protocols -- Packet Transmission -- Packet Reception -- Buffering and Flow Control -- Protocol Buffering Policies -- Queue Limiting -- Network Virtualization -- Exercises -- References -- Chapter 13: Network-Layer Protocols -- Internet Protocol Version 4 -- IPv4 Addresses -- Broadcast Addresses -- Internet Multicast -- Link-Layer Address Resolution -- Internet Control Message Protocols (ICMP) -- Internet Protocol Version 6 -- IPv6 Addresses -- IPv6 Packet Formats -- Changes to the Socket API -- Autoconfiguration -- Internet Protocols Code Structure -- Output Input -- Forwarding -- Routing Kernel Routing Tables -- Routing Lookup -- Routing Redirects -- Routing-Table Interface -- User-Level Routing Policies -- User-Level Routing Interface: Routing Socket -- Raw Sockets -- Control Blocks Input Processing -- Output Processing -- Security -- IPSec Overview -- Security Protocols Key Management -- IPSec Implementation -- Packet-Processing Frameworks -- Berkeley Packet Filter -- IP Firewalls -- IPFW and Dummynet -- Packet Filter (PF) -- Netgraph -- Netmap -- Exercises -- References -- Chapter 14: Transport-Layer Protocols -- Internet Ports and Associations -- Protocol Control Blocks -- User Datagram Protocol (UDP) -- Initialization -- Output -- Input -- Control Operations -- Transmission Control Protocol (TCP) -- TCP Connection States -- Sequence Variables -- TCP Algorithms Timers -- Estimation of Round-Trip Time -- Connection Establishment -- SYN Cache -- SYN Cookies -- Connection Shutdown -- TCP Input Processing -- TCP Output Processing -- Sending Data -- Avoidance of the Silly-Window Syndrome -- Avoidance of Small Packets -- Delayed Acknowledgments and Window Updates -- Selective Acknowledgment Retransmit State -- Slow Start -- Buffer and Window Sizing -- Avoidance of Congestion with Slow Start -- Fast Retransmission -- Modular Congestion Control -- The Vegas Algorithm -- The Cubic Algorithm -- Stream Control Transmission Protocol (SCTP) -- Chunks -- Association Setup Data Transfer -- Association Shutdown -- Multihoming and Heartbeats -- Exercises -- References -- Chapter 15: System Startup and Shutdown -- Firmware and BIOSes -- Boot Loaders -- Master Boot Record and Globally Unique Identifier Partition Table -- The Second-Stage Boot Loader: gptboot -- The Final-Stage Boot Loader: /boot/loader -- Boot Loading on Embedded Platforms -- Kernel Boot -- Assembly-Language Startup -- Platform-Specific C-Language Startup -- Modular Kernel Design -- Module Initialization -- Basic Kernel Services -- Kernel-Thread Initialization -- Loadable Kernel Modules -- User-Level Initialization -- /sbin/init -- System Startup Scripts -- /usr/libexec/getty -- /usr/bin/login -- System Operation -- Kernel Configuration -- System Shutdown and Autoreboot -- System Debugging -- Passage of Information To and From the Kernel -- Exercises -- References -- Glossary -- Index.

There are no comments on this title.

to post a comment.