I have wanted to read this book for a while as I am a self-proclaimed Linux fan boy, I started using it around 15 years ago in 2007 (Ubuntu and Mint), then started supporting Red Hat 5 and a bunch of applications on it in the oil and gas industry which included a 5 day course in London for an Introduction to Linux getting to the bare bones a bit more.
When I started getting into Ethical Hacking and Cybersecurity I played around with Kali and Parrot settling on Parrot which I have been a user and advocate of for a few years now so genuinely was unsure what I would get from this book, but it turns out quite a lot.
It turns out I know nowhere near as much about Linux as I thought I did.
Brian Ward has been working with Linux since 1993. He is also the author of The Linux Kernel-HOWTO, The Book of VMware (No Starch Press), and The Linux Problem Solver (No Starch Press).
Table of contents
- Chapter 1: The Big Picture
- Chapter 2: Basic Commands and Directory Hierarchy
- Chapter 3: Devices
- Chapter 4: Disks and Filesystems
- Chapter 5: How the Linux Kernel Boots
- Chapter 6: How User Space Starts
- Chapter 7: System Configuration: Logging, System Time, Batch Jobs, and Users
- Chapter 8: A Closer Look at Processes and Resource Utilization
- Chapter 9: Understanding Your Network and Its Configuration
- Chapter 10: Network Applications and Services
- Chapter 11: Introduction to Shell Scripts
- Chapter 12: Network File Transfer and Sharing
- Chapter 13: User Environments
- Chapter 14: A Brief Survey of the Linux Desktop and Printing
- Chapter 15: The Big Picture
- Chapter 16: Introduction to Compiling Software from C Source Code
- Chapter 17: Virtualization
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.
- 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 processes, including system calls, input and output, and filesystem maintenance. With its combination of background, theory, real-world examples, and thorough explanations, How Linux Works, 3rd Edition will teach you what you need to know to take control of your operating system.
This is the 3rd edition of the book and coming new in this edition is:-
NEW TO THIS EDITION:
- Hands-on coverage of the LVM, journald logging system, and IPv6
- Additional chapter on virtualization, featuring containers and cgroups
- Expanded discussion of systemd
Within each of these chapters is subsections for instance this is what chapter 10 look like really with the subsections and it is my favourite chapter in the book along with chapter 5 with `How the Linux kernel boots` which I found super interesting as I haven’t really read up properly on it.
From a Digital Forensic and Incident Response point of view chapter 10 as mentioned along with chapter 4 `disks and filesystems` were the two I found super interesting as they are the ones i would tend to use the information from the most.
As promised here is what the subsections look like:-
DISKS AND FILESYSTEMS 69
4.1 Partitioning Disk Devices
- 4.1.1 Viewing a Partition Table
- 4.1.2 Modifying Partition Tables
- 4.1.3 Creating a Partition Table
- 4.1.4 Navigating Disk and Partition Geometry
- 4.1.5 Reading from Solid-State Disks
- 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 Determining How Much Swap You Need
4.4 The Logical Volume Manager
- 4.4.1 Working with LVM
- 4.4.2 The LVM Implementation
4.5 Looking Forward: Disks and User Space
4.6 Inside a Traditional Filesystem
- 4.6.1 Inode Details and the Link Count
- 4.6.2 Block Allocation
- 4.6.3 Working with Filesystems in User Space
NETWORK APPLICATIONS AND SERVICES 269
10.1 The Basics of Services
10.2 A Closer Look
10.3 Network Servers
- 10.3.1 Secure Shell
- 10.3.2 The sshd Server
- 10.3.3 fail2ban
- 10.3.4 The SSH Client
10.4 Pre-systemd Network Connection Servers: inetd/xinetd
10.5 Diagnostic Tools
- 10.5.1 lsof
- 10.5.2 tcpdump
- 10.5.3 netcat
- 10.5.4 Port Scanning
10.6 Remote Procedure Calls
10.7 Network Security
- 10.7.1 Typical Vulnerabilities
- 10.7.2 Security Resources
10.8 Looking Forward
10.9 Network Sockets
10.10 Unix Domain Sockets
So, as you can see just like all No Starch books they really go deep into Linux.
I personally think this book is a phenomenal book and I really wish I read it years ago for several reasons from as little as not knowing that “wildcards” (the use of **) is called globbing to as big as learning all about rsync and being able to transfer entire directory hierarchies—complete with symbolic links, permissions, modes, and devices.
It gives good easy to follow details about Linux that anyone from a beginner to someone who has years’ experience like myself can follow along with and understand.
There is a couple of chapters I enjoyed way more than I thought I would too in chapter 13 about `User Environments` which talks you through creating and editing start-up files, the command path along with the pretty difficult to get your head around `Aliases` and also chapter 15 `Development Tools` as I work in Python and Shell scrips. Linux is very popular with programmers, not just due to the overwhelming array of tools and environments available but also because the system is exceptionally well documented and transparent.
On a Linux machine, you don’t have to be a programmer to take advantage of development tools, which is good news, because they play a larger role in managing Linux systems than in other operating systems. At the very least, you should be able to identify development utilities and have some idea of how to run them.
The book goes over the C compiler, Python Perl and others.
On the whole just a fantastic book which I highly recommend whether you are new to Linux or an old hat.