Book description
The "hows" and "whys" of How Linux Works: for administrators, programmers, and enthusiasts who want to understand the inner workings of the best operating system.
Table of contents
- How Linux Works: What Every Superuser Should Know
- Praise for the First Edition of How Linux Works
- Preface
- Acknowledgments
- 1. The Big Picture
-
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
-
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 CD and DVD Drives: /dev/sr*
- 3.4.3 PATA Hard Disks: /dev/hd*
- 3.4.4 Terminals: /dev/tty*, /dev/pts/*, and /dev/tty
- 3.4.5 Serial Ports: /dev/ttyS*
- 3.4.6 Parallel Ports: /dev/lp0 and /dev/lp1
- 3.4.7 Audio Devices: /dev/snd/*, /dev/dsp, /dev/audio, and More
- 3.4.8 Creating Device Files
- 3.5 udev
- 3.6 In-Depth: SCSI and the Linux Kernel
-
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 Looking Forward: Disks and User Space
- 4.5 Inside a Traditional Filesystem
-
5. How the Linux Kernel Boots
- 5.1 Startup Messages
- 5.2 Kernel Initialization and Boot Options
- 5.3 Kernel Parameters
- 5.4 Boot Loaders
- 5.5 GRUB Introduction
- 5.6 UEFI Secure Boot Problems
- 5.7 Chainloading Other Operating Systems
- 5.8 Boot Loader Details
-
6. How User Space Starts
- 6.1 Introduction to init
- 6.2 System V Runlevels
- 6.3 Identifying Your init
-
6.4 systemd
- 6.4.1 Units and Unit Types
- 6.4.2 systemd Dependencies
- 6.4.3 systemd Configuration
- 6.4.4 systemd Operation
- 6.4.5 Adding Units to systemd
- 6.4.6 systemd Process Tracking and Synchronization
- 6.4.7 systemd On-Demand and Resource-Parallelized Startup
- 6.4.8 systemd System V Compatibility
- 6.4.9 systemd Auxiliary Programs
- 6.5 Upstart
- 6.6 System V init
- 6.7 Shutting Down Your System
- 6.8 The Initial RAM Filesystem
- 6.9 Emergency Booting and Single-User Mode
-
7. System Configuration: Logging, System Time, Batch Jobs, and Users
- 7.1 The Structure of /etc
- 7.2 System Logging
- 7.3 User Management Files
- 7.4 getty and login
- 7.5 Setting the Time
- 7.6 Scheduling Recurring Tasks with cron
- 7.7 Scheduling One-Time Tasks with at
- 7.8 Understanding User IDs and User Switching
- 7.9 User Identification and Authentication
- 7.10 PAM
- 7.11 Looking Forward
-
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.5 Introduction to Resource Monitoring
- 8.6 Measuring CPU Time
- 8.7 Adjusting Process Priorities
- 8.8 Load Averages
- 8.9 Memory
- 8.10 Monitoring CPU and Memory Performance with vmstat
- 8.11 I/O Monitoring
- 8.12 Per-Process Monitoring with pidstat
- 8.13 Further Topics
-
9. Understanding your Network and its Configuration
- 9.1 Network Basics
- 9.2 Network Layers
- 9.3 The Internet Layer
- 9.4 Routes and the Kernel Routing Table
- 9.5 Basic ICMP and DNS Tools
- 9.6 The Physical Layer and Ethernet
- 9.7 Understanding Kernel Network Interfaces
- 9.8 Introduction to Network Interface Configuration
- 9.9 Boot-Activated Network Configuration
- 9.10 Problems with Manual and Boot-Activated Network Configuration
- 9.11 Network Configuration Managers
- 9.12 Resolving Hostnames
- 9.13 Localhost
- 9.14 The Transport Layer: TCP, UDP, and Services
- 9.15 Revisiting a Simple Local Network
- 9.16 Understanding DHCP
- 9.17 Configuring Linux as a Router
- 9.18 Private Networks
- 9.19 Network Address Translation (IP Masquerading)
- 9.20 Routers and Linux
- 9.21 Firewalls
- 9.22 Ethernet, IP, and ARP
- 9.23 Wireless Ethernet
- 9.24 Summary
- 10. Network Applications and Services
-
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
-
12. Moving Files Across the Network
- 12.1 Quick Copy
-
12.2 rsync
- 12.2.1 rsync Basics
- 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 Transfer Integrity, Safeguards, and Verbose Modes
- 12.2.6 Compression
- 12.2.7 Limiting Bandwidth
- 12.2.8 Transferring Files to Your Computer
- 12.2.9 Further rsync Topics
- 12.3 Introduction to File Sharing
- 12.4 Sharing Files with Samba
- 12.5 NFS Clients
- 12.6 Further Network File Service Options and Limitations
- 13. User Environments
- 14. A Brief Survey of the Linux Desktop
- 15. Development Tools
-
16. Introduction to Compiling Software From C Source Code
- 16.1 Software Build Systems
- 16.2 Unpacking C Source Packages
- 16.3 GNU Autoconf
- 16.4 Installation Practice
- 16.5 Applying a Patch
- 16.6 Troubleshooting Compiles and Installations
- 16.7 Looking Forward
- 17. Building on the Basics
- A. Bibliography
- B. Updates
- Index
- About the Author
- Copyright
Product information
- Title: How Linux Works, 2nd Edition
- Author(s):
- Release date: November 2014
- Publisher(s): No Starch Press
- ISBN: 9781593275679
You might also like
book
How Linux Works, 3rd Edition
Unlike some operating systems, Linux doesn’t try to hide the important bits from you—it gives you …
book
Linux Cookbook, 2nd Edition
This handy cookbook teaches new-to-intermediate Linux users the essential skills necessary to manage a Linux system, …
book
Hands-On System Programming with Linux
Get up and running with system programming concepts in Linux Key Features Acquire insight on Linux …
book
Linux Kernel Development, Third Edition
Linux Kernel Development details the design and implementation of the Linux kernel, presenting the content in …