How Linux Works : What Every Superuser Should Know.
Material type:
- text
- computer
- online resource
- 9781593276454
- 005.4/32
- QA76.76.O63 -- W37 2015eb
Intro -- Brief Contents -- Contents in Detail -- Preface -- Who Should Read This Book -- Prerequisites -- How to Read This Book -- A Hands-On Approach -- How This Book is Organized -- What's New in the Second Edition? -- A Note on Terminology -- Acknowledgements -- Chapter 1: The Big Picture -- 1.1 Levels and Layers of Abstraction in a Linux System -- 1.2 Hardware: Understanding Main Memory -- 1.3 The Kernel -- 1.3.1 Process Management -- 1.3.2 Memory Management -- 1.3.3 Device Drivers and Management -- 1.3.4 System Calls and Support -- 1.4 User Space -- 1.5 Users -- 1.6 Moving Forward -- Chapter 2: Basic Commands and Directory Hierarchy -- 2.1 The Bourne Shell: /bin/sh -- 2.2 Using the Shell -- 2.2.1 The Shell Window -- 2.2.2 cat -- 2.2.3 Standard Input and Standard Output -- 2.3 Basic Commands -- 2.3.1 ls -- 2.3.2 cp -- 2.3.3 mv -- 2.3.4 touch -- 2.3.5 rm -- 2.3.6 echo -- 2.4 Navigating Directories -- 2.4.1 cd -- 2.4.2 mkdir -- 2.4.3 rmdir -- 2.4.4 Shell Globbing (Wildcards) -- 2.5 Intermediate Commands -- 2.5.1 grep -- 2.5.2 less -- 2.5.3 pwd -- 2.5.4 diff -- 2.5.5 file -- 2.5.6 find and locate -- 2.5.7 head and tail -- 2.5.8 sort -- 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.14.1 Standard Error -- 2.14.2 Standard Input Redirection -- 2.15 Understanding Error Messages -- 2.15.1 Anatomy of a UNIX Error Message -- 2.15.2 Common Errors -- 2.16 Listing and Manipulating Processes -- 2.16.1 Command Options -- 2.16.2 Killing Processes -- 2.16.3 Job Control -- 2.16.4 Background Processes -- 2.17 File Modes and Permissions -- 2.17.1 Modifying Permissions -- 2.17.2 Symbolic Links -- 2.17.3 Creating Symbolic Links.
2.18 Archiving and Compressing Files -- 2.18.1 gzip -- 2.18.2 tar -- 2.18.3 Compressed Archives (.tar.gz) -- 2.18.4 zcat -- 2.18.5 Other Compression Utilities -- 2.19 Linux Directory Hierarchy Essentials -- 2.19.1 Other Root Subdirectories -- 2.19.2 The /usr Directory -- 2.19.3 Kernel Location -- 2.20 Running Commands as the Superuser -- 2.20.1 sudo -- 2.20.2 /etc/sudoers -- 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 CD and DVD Drives: /dev/sr* -- 3.4.3 PATA Hard Disks: /dev/hd* -- 3.4.4 Terminals: /dev/tty*, /dev/pts/*, /dev/tty -- 3.4.5 Serial Ports: /dev/ttyS* -- 3.4.6 Parallel Ports: /dev/lp0, /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.5.1 devtmpfs -- 3.5.2 udevd Operation and Configuration -- 3.5.3 udevadm -- 3.5.4 Monitoring Devices -- 3.6 In-Depth: SCSI and the Linux Kernel -- 3.6.1 USB Storage and SCSI -- 3.6.2 SCSI and ATA -- 3.6.3 Generic SCSI Devices -- 3.6.4 Multiple Access Methods for a Single Device -- Chapter 4: Disks and Filesystems -- 4.1 Partitioning Disk Devices -- 4.1.1 Viewing a Partition Table -- 4.1.2 Changing Partition Tables -- 4.1.3 Disk and Partition Geometry -- 4.1.4 Solid-State Disks (SSDs) -- 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.3.1 Using a Disk Partition as Swap Space.
4.3.2 Using a File as Swap Space -- 4.3.3 How Much Swap Do You Need? -- 4.4 Moving Forward: Disks and User Space -- 4.5 Inside a Traditional Filesystem -- 4.5.1 Viewing Inode Details -- 4.5.2 Working With Filesystems in User Space -- 4.5.3 The Evolution of Filesystems -- Chapter 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.4.1 Boot Loader Tasks -- 5.4.2 Boot Loader Overview -- 5.5 GRUB Introduction -- 5.5.1 Exploring Devices and Partitions with the GRUB Command Line -- 5.5.2 GRUB Configuration -- 5.5.3 GRUB Installation -- 5.6 UEFI Secure Boot Problems -- 5.7 Chainloading Other Operating Systems -- 5.8 Boot Loader Details -- 5.8.1 MBR Boot -- 5.8.2 UEFI Boot -- 5.8.3 How GRUB Works -- Chapter 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 Support -- 6.5 Upstart -- 6.5.1 Upstart Startup Sequence -- 6.5.2 Upstart Jobs -- 6.5.3 Upstart Configuration -- 6.5.4 Upstart Operation -- 6.5.5 Upstart Logs -- 6.5.6 Upstart Runlevels and System V Compatibility -- 6.6 System V init -- 6.6.1 System V init: Startup Command Sequence -- 6.6.2 The System V init Link Farm -- 6.6.3 run-parts -- 6.6.4 Controlling System V init -- 6.7 Shutting Down Your System -- 6.8 The Initial RAM Filesystem -- 6.9 Emergency Booting and Single-User Mode -- Chapter 7: System Configuration: Logging, System Time, Batch Jobs, and Users -- 7.1 The Structure of /etc -- 7.2 System Logging.
7.2.1 The System Logger -- 7.2.2 Configuration Files -- 7.3 User Management Files -- 7.3.1 The /etc/passwd File -- 7.3.2 Special Users -- 7.3.3 The /etc/shadow File -- 7.3.4 Manipulating Users and Passwords -- 7.3.5 Working with Groups -- 7.4 getty and login -- 7.5 Setting the Time -- 7.5.1 Kernel Time Representation and Time Zones -- 7.5.2 Network Time -- 7.6 Scheduling Recurring Tasks with cron -- 7.6.1 Installing Crontab Files -- 7.6.2 System Crontab Files -- 7.6.3 The Future of cron -- 7.7 Scheduling One-Time Tasks with at -- 7.8 Understanding User IDs and User Switching -- 7.8.1 Process Ownership, Effective UID, Real UID, and Saved UID -- 7.9 User Identification and Authentication -- 7.9.1 Using Libraries for User Information -- 7.10 PAM -- 7.10.1 PAM Configuration -- 7.10.2 Notes on PAM -- 7.10.3 PAM and Passwords -- 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.2.1 Reading the lsof Output -- 8.2.2 Using lsof -- 8.3 Tracing Program Execution and System Calls -- 8.3.1 strace -- 8.3.2 ltrace -- 8.4 Threads -- 8.4.1 Single-Threaded and Multithreaded Processes -- 8.4.2 Viewing Threads -- 8.5 Introduction to Resource Monitoring -- 8.6 Measuring CPU Time -- 8.7 Adjusting Process Priorities -- 8.8 Load Averages -- 8.8.1 Using uptime -- 8.8.2 High Loads -- 8.9 Memory -- 8.9.1 How Memory Works -- 8.9.2 Page Faults -- 8.10 Monitoring CPU and Memory Performance with vmstat -- 8.11 I/O Monitoring -- 8.11.1 Using iostat -- 8.11.2 Per-Process I/O Utilization and Monitoring: iotop -- 8.12 Per-Process Monitoring with pidstat -- 8.13 Further Topics -- Chapter 9: Understanding Your Network and Its Configuration -- 9.1 Network Basics -- 9.1.1 Packets -- 9.2 Network Layers -- 9.3 The Internet Layer -- 9.3.1 Viewing Your Computer's IP Addresses.
9.3.2 Subnets -- 9.3.3 Common Subnet Masks and CIDR Notation -- 9.4 Routes and the Kernel Routing Table -- 9.4.1 The Default Gateway -- 9.5 Basic ICMP and DNS Tools -- 9.5.1 ping -- 9.5.2 traceroute -- 9.5.3 DNS and host -- 9.6 The Physical Layer and Ethernet -- 9.7 Understanding Kernel Network Interfaces -- 9.8 Introduction to Network Interface Configuration -- 9.8.1 Manually Adding and Deleting Routes -- 9.9 Boot-Activated Network Configuration -- 9.10 Problems with Manual and Boot-Activated Network Configuration -- 9.11 Network Configuration Managers -- 9.11.1 NetworkManager Operation -- 9.11.2 Interacting with NetworkManager -- 9.11.3 NetworkManager Configuration -- 9.12 Resolving Hostnames -- 9.12.1 /etc/hosts -- 9.12.2 resolv.conf -- 9.12.3 Caching and Zero-Configuration DNS -- 9.12.4 /etc/nsswitch.conf -- 9.13 Localhost -- 9.14 The Transport Layer: TCP, UDP, and Services -- 9.14.1 TCP Ports and Connections -- 9.14.2 Establishing TCP Connections -- 9.14.3 Port Numbers and /etc/services -- 9.14.4 Characteristics of TCP -- 9.14.5 UDP -- 9.15 Revisiting a Simple Local Network -- 9.16 Understanding DHCP -- 9.16.1 The Linux DHCP Client -- 9.16.2 Linux DHCP Servers -- 9.17 Configuring Linux as a Router -- 9.17.1 Internet Uplinks -- 9.18 Private Networks -- 9.19 Network Address Translation (IP Masquerading) -- 9.20 Routers and Linux -- 9.21 Firewalls -- 9.21.1 Linux Firewall Basics -- 9.21.2 Setting Firewall Rules -- 9.21.3 Firewall Strategies -- 9.22 Ethernet, IP, and ARP -- 9.23 Wireless Ethernet -- 9.23.1 iw -- 9.23.2 Wireless Security -- 9.24 Summary -- Chapter 10: Network Applications and Services -- 10.1 The Basics of Services -- 10.1.1 A Closer Look -- 10.2 Network Servers -- 10.3 Secure Shell (SSH) -- 10.3.1 The SSHD Server -- 10.3.2 The SSH Client -- 10.4 The inetd and xinetd Daemons.
10.4.1 TCP Wrappers: tcpd, /etc/hosts.allow, /etc/hosts.deny.
Unlike some operating systems, Linux doesnt try to hide the important bits from youit 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 completely revised second edition of the perennial best seller How Linux Works, author Brian Ward makes the concepts behind Linux internals accessible to anyone curious about the inner workings of the operating system. Inside, youll find the kind of knowledge that normally comes from years of experience doing things the hard way. Youll learn:How Linux boots, from boot loaders to init implementations (systemd, Upstart, and System V)How the kernel manages devices, device drivers, and processesHow networking, interfaces, firewalls, and servers workHow development tools work and relate to shared librariesHow to write effective shell scriptsYoull 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 will teach you what you need to know to solve pesky problems and take control of your operating system.
Description based on publisher supplied metadata and other sources.
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2024. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
There are no comments on this title.