Book description
Unlike some operating systems, Linux doesn’t try to hide the important bits from you—it gives you full control of your computer. But to truly master Linux, you need to understand its internals, like how the system boots, how networking works, and what the kernel actually does.
In this third edition of the bestselling How Linux Works, author Brian Ward peels back the layers of this well-loved operating system to make Linux internals accessible. This edition has been thoroughly updated and expanded with added coverage of Logical Volume Manager (LVM), virtualization, and containers.
You'll learn:
•How Linux boots, from boot loaders to init (systemd)
•How the kernel manages devices, device drivers, and processes
•How networking, interfaces, firewalls, and servers work
•How development tools work and relate to shared libraries
•How to write effective shell scripts
You’ll also explore the kernel and examine key system tasks inside user space, including system calls, input and output, and filesystems. With its combination of background, theory, real-world examples, and patient explanations, How Linux Works, 3rd edition will teach you what you need to know to solve pesky problems and take control of your operating system.
Table of contents
- Reviews for How Linux Works
- Title Page
- Copyright
- About the Author
- Acknowledgments
- Preface
- Chapter 1: The Big Picture
-
Chapter 2: Basic Commands and Directory Hierarchy
- 2.1 The Bourne Shell: /bin/sh
- 2.2 Using the Shell
- 2.3 Basic Commands
- 2.4 Navigating Directories
- 2.5 Intermediate Commands
- 2.6 Changing Your Password and Shell
- 2.7 Dot Files
- 2.8 Environment and Shell Variables
- 2.9 The Command Path
- 2.10 Special Characters
- 2.11 Command-Line Editing
- 2.12 Text Editors
- 2.13 Getting Online Help
- 2.14 Shell Input and Output
- 2.15 Understanding Error Messages
- 2.16 Listing and Manipulating Processes
- 2.17 File Modes and Permissions
- 2.18 Archiving and Compressing Files
- 2.19 Linux Directory Hierarchy Essentials
- 2.20 Running Commands as the Superuser
- 2.21 Looking Forward
-
Chapter 3: Devices
- 3.1 Device Files
- 3.2 The sysfs Device Path
- 3.3 dd and Devices
-
3.4 Device Name Summary
- 3.4.1 Hard Disks: /dev/sd*
- 3.4.2 Virtual Disks: /dev/xvd*, /dev/vd*
- 3.4.3 Non-Volatile Memory Devices: /dev/nvme*
- 3.4.4 Device Mapper: /dev/dm-*, /dev/mapper/*
- 3.4.5 CD and DVD Drives: /dev/sr*
- 3.4.6 PATA Hard Disks: /dev/hd*
- 3.4.7 Terminals: /dev/tty*, /dev/pts/*, and /dev/tty
- 3.4.8 Serial Ports: /dev/ttyS*, /dev/ttyUSB*, /dev/ttyACM*
- 3.4.9 Parallel Ports: /dev/lp0 and /dev/lp1
- 3.4.10 Audio Devices: /dev/snd/*, /dev/dsp, /dev/audio, and More
- 3.4.11 Device File Creation
- 3.5 udev
- 3.6 In-Depth: SCSI and the Linux Kernel
-
Chapter 4: Disks and Filesystems
- 4.1 Partitioning Disk Devices
-
4.2 Filesystems
- 4.2.1 Filesystem Types
- 4.2.2 Creating a Filesystem
- 4.2.3 Mounting a Filesystem
- 4.2.4 Filesystem UUID
- 4.2.5 Disk Buffering, Caching, and Filesystems
- 4.2.6 Filesystem Mount Options
- 4.2.7 Remounting a Filesystem
- 4.2.8 The /etc/fstab Filesystem Table
- 4.2.9 Alternatives to /etc/fstab
- 4.2.10 Filesystem Capacity
- 4.2.11 Checking and Repairing Filesystems
- 4.2.12 Special-Purpose Filesystems
- 4.3 Swap Space
- 4.4 The Logical Volume Manager
- 4.5 Looking Forward: Disks and User Space
- 4.6 Inside a Traditional Filesystem
- Chapter 5: How the Linux Kernel Boots
- Chapter 6: How User Space Starts
-
Chapter 7: System Configuration: Logging, System Time, Batch Jobs, and Users
- 7.1 System Logging
- 7.2 The Structure of /etc
- 7.3 User Management Files
- 7.4 getty and login
- 7.5 Setting the Time
- 7.6 Scheduling Recurring Tasks with cron and Timer Units
- 7.7 Scheduling One-Time Tasks with at
- 7.8 Timer Units Running as Regular Users
- 7.9 User Access Topics
- 7.10 Pluggable Authentication Modules
- 7.11 Looking Forward
-
Chapter 8: A Closer Look at Processes and Resource Utilization
- 8.1 Tracking Processes
- 8.2 Finding Open Files with lsof
- 8.3 Tracing Program Execution and System Calls
-
8.4 Threads
- 8.4.1 Single-Threaded and Multithreaded Processes
- 8.4.2 Viewing Threads
- 8.5.1 Measuring CPU Time
- 8.5.2 Adjusting Process Priorities
- 8.5.3 Measuring CPU Performance with Load Averages
- 8.5.4 Monitoring Memory Status
- 8.5.5 Monitoring CPU and Memory Performance with vmstat
- 8.5.6 I/O Monitoring
- 8.5.7 Per-Process Monitoring with pidstat
- 8.6 Control Groups (cgroups)
- 8.7 Further Topics
-
Chapter 9: Understanding Your Network and Its Configuration
- 9.1 Network Basics
- 9.2 Packets
- 9.3 Network Layers
- 9.4 The Internet Layer
- 9.5 Routes and the Kernel Routing Table
- 9.6 The Default Gateway
- 9.7 IPv6 Addresses and Networks
- 9.8 Basic ICMP and DNS Tools
- 9.9 The Physical Layer and Ethernet
- 9.10 Understanding Kernel Network Interfaces
- 9.12 Boot-Activated Network Configuration
- 9.13 Problems with Manual and Boot-Activated Network Configuration
- 9.14 Network Configuration Managers
- 9.15 Resolving Hostnames
- 9.16 Localhost
- 9.17 The Transport Layer: TCP, UDP, and Services
- 9.18 Revisiting a Simple Local Network
- 9.19 Understanding DHCP
- 9.20 Automatic IPv6 Network Configuration
- 9.21 Configuring Linux as a Router
- 9.22 Private Networks (IPv4)
- 9.23 Network Address Translation (IP Masquerading)
- 9.24 Routers and Linux
- 9.25 Firewalls
- 9.26 Ethernet, IP, ARP, and NDP
- 9.27 Wireless Ethernet
- 9.28 Summary
- Chapter 10: Network Applications and Services
-
Chapter 11: Introduction to Shell Scripts
- 11.1 Shell Script Basics
- 11.2 Quoting and Literals
- 11.3 Special Variables
- 11.4 Exit Codes
- 11.5 Conditionals
- 11.6 Loops
- 11.7 Command Substitution
- 11.8 Temporary File Management
- 11.9 Here Documents
- 11.10 Important Shell Script Utilities
- 11.11 Subshells
- 11.12 Including Other Files in Scripts
- 11.13 Reading User Input
- 11.14 When (Not) to Use Shell Scripts
-
Chapter 12: Network File Transfer and Sharing
- 12.1 Quick Copy
-
12.2 rsync
- 12.2.1 Getting Started with rsync
- 12.2.2 Making Exact Copies of a Directory Structure
- 12.2.3 Using the Trailing Slash
- 12.2.4 Excluding Files and Directories
- 12.2.5 Checking Transfers, Adding Safeguards, and Using Verbose Mode
- 12.2.6 Compressing Data
- 12.2.7 Limiting Bandwidth
- 12.2.8 Transferring Files to Your Computer
- 12.2.9 Further rsync Topics
- 12.3.1 File Sharing Usage and Performance
- 12.3.2 File Sharing Security
- 12.4 Sharing Files with Samba
- 12.5 SSHFS
- 12.6 NFS
- 12.7 Cloud Storage
- 12.8 The State of Network File Sharing
- Chapter 13: User Environments
- Chapter 14: A Brief Survey of the Linux Desktop and Printing
- Chapter 15: Development Tools
- Chapter 16: Introduction to Compiling Software from C Source Code
- Chapter 17: Virtualization
- Index
Product information
- Title: How Linux Works, 3rd Edition
- Author(s):
- Release date: April 2021
- Publisher(s): No Starch Press
- ISBN: 9781718500402
You might also like
book
Understanding the Linux Kernel, 3rd Edition
In order to thoroughly understand what makes Linux tick and why it works so well on …
book
Learning Modern Linux
If you use Linux in development or operations and need a structured approach to help you …
video
Linux Fundamentals, 2nd Edition
10+ Hours of Video Instruction More than 10 hours of video instruction to get you up …
book
The Linux Command Line, 2nd Edition
The Linux Command Line takes you from your very first terminal keystrokes to writing full programs …