What's on my (physical) Linux bookshelf - 01/19/2021

What's on my (physical) Linux bookshelf - 01/19/2021

My Linux reading Linux as of January 19, 2021

My Linux bookshelf on January 19, 2021

Like so many people my collection of books has mostly gone digital. When we moved to our apartment 12 years ago we condensed two apartments into one. At the time I had about 10 small boxes of mostly tech-related books. Most apartments don't have the storage space a house does. Ours in particular has one small storage unit. Merging two families into one of the first things to go was my book collection. It was an easy choice to make in order to make space for more important family items (mostly Christmas decorations). The difficult choice for me was which books to keep. If you were expecting to see my 2021 reading list here you might be disappointed to learn that all my physical books are from several years ago. For modern up-to-date information Google and ebooks just can't be beat. With that, in no particular order, here's what's on my physical Linux bookshelf and why:

The Practice of System and Network Administration, 3rd Edition

By Thomas A. Limoncelli, Christina J. Hogan, and Strata R. Chalup

This was a book Pearson Education sent to me for review. I've reviewed 1,000+ page books before. Back in 2003 I reviewed Practical Unix & Internet Security and posted the review on Slashdot, one of the most relevant tech web sites at the time. When Pearson sent me The Practice of System and Network Administration, I'd been writing for Full Circle Magazine for some time. At the time I figured I'd be able to review the book after a couple of months. It took me about a month to read through Practical Unix & Internet Security. I was particularly proud of that accomplishment at the time since the topic of Internet security wasn't one that I was well versed in. After reading the book I felt more rounded. It wasn't a book teaching the specific tasks of security systems, but a book about methods for security.

The Practice of System and Network Administration is similar to Practical Unix & Internet Security in that it doesn't get into specific details about using program x, rather it covers methods, ideas, and larger organizing principles. When I was approached about the book I thought it might help clarify things with particular system administration-related software. I was thinking about an individual server. The Practice of System and Network Administration really is about managing fleets of equipment in an efficient manner. If you need to manage a large amount of hardware and software for an organization, this is a great book to start to understand the complexities of large scale roll-outs of equipment, and keeping that equipment running efficiently. The book is divided into 10 sections: Game-changing strategies (ideas to help you become more efficient), workstation fleet management (architectures, installation strategies, fleet logistics, standardization), servers (looking at specific server-grade hardware features you might want), services (software planning, deployment & upkeep (DevOps), and recovery), infrastructure, help desks and support systems (customer support, debugging, fixing issues once, and documenting everything), change processes (dealing with change, upgrading servers, maintaining Windows and centralizing everything), service recommendations (planning for name services, email, printing, data storage, backup and restoring, software repositories and web services), management practices (ethics, organizational structure, perception, managing time, negotiating, maintaining your sanity when things are crazy, hiring and letting go administrators), getting better (evolving into an efficient, happy crew). Within these 10 sections topics are further sub-divided into a lot of different topics. For example, the section on Management/Ethics covers topics like informed consent, having a code of ethics, adhering to copyright, working with law enforcement, and dealing with being told to do something illegal/unethical.

I read through several chapters of The Practice of System and Network Administration and while it fascinated me, at the time what I really needed was help with specific problems. When Pearson Education sent me the book much of my role at work involved dealing with end-user issues. It really came down to an issue of time to read this book. The 3rd edition was published in 2017, I probably needed to read a book like this back in 2007. Now that my role has changed, now that I'm working more with infrastructure pieces, this book more than ever is a priority for me to read.

Linux Administration Handbook, 2nd Edition

By Evi Nemeth, Garth Snyder, Trent R. Hein

The Linux Administration Handbook is one of the reference books I bought to better understand specific server software. Unlike a lot of books which pick a particular Linux distribution and give examples for the distribution, the Linux Administration Handbook is handy because when there's something that differs on a particular distribution the book covers it with an icon at the side corresponding to Red Hat Enterprise, Fedora Core, SUSE Linux Enterprise, Ubuntu, or Debian. Most of the book covers commands and software that run on any of these systems, but where there are differences the addition of these distribution-specific sections is really nice.

I mentioned that this list of books wasn't in order, and when coming up for the idea for this article I didn't have a specific order in mind, but this really feels like the book I should read completely after reading The Practice of System and Network Administration. With my recent role shift there are many topics I want to get a handle on: logging/syslog, backups on Linux, configuration management, revision control (though in this book the really touch on cvs/svn, and we're using git), TCP/IP, DNS, and email on Linux. These are some of the topics that Linux System Administration covers with specific software examples. While Sendmail has had several enormous books written about it, Linus System Administration covers Sendmail in about 75 pages of detail. The other thing I really like about Linux System Administration is the fact that at the end of each chapter there are exercises that refer back to material covered. One of the exercises for the chapter on email (which includes coverage of both Sendmail and Procmail) is to describe what smrsh is, discuss why it's preferential to use it over /bin/sh, and the dangers of programs that can access smrsh.

At home our network consists of 3 Linux desktops, a Linux laptop, and a couple of Windows workstations. While the 2nd edition of the Linux Administration Handbook is a bit old now (published in 2007), it still feels like one of the authoritative books that I can run to for setting up things like email, print services, and backups at home. Like The Practice of System and Network Administration this handbook is a bit dense, there are few pictures, pictorial examples, or diagrams, but there are lots of examples. I find examples particularly important when trying to learn a topic, and there are enough examples in the Linux Administration Handbook to make me want to keep it on my shelves despite its age.

The Official Ubuntu Server Book, 2nd Edition

By Kyle Rankin and Benjamin Mako Hill

A third version of The Official Ubuntu Server Book came out in 2013. My 2nd edition was published in 2010. At the time I picked up this book I also picked up The Official Ubuntu Book. I read through most of The Official Ubuntu Book and then passed it on to one of the volunteers at work who also runs Ubuntu. More than any book in my collection I feel this book is most in need for an overhaul in 2021. So much has changed in Ubuntu Linux since 2021 that a new book would be really helpful. Still, I can't bring myself to toss this book because of the Ubuntu-specific examples. The Official Ubuntu Server Book covers installation, essential system administration, package management, automated Ubuntu installs (one of the areas that needs updating since Canonical switched away from the Debian installer), common Ubuntu servers, security, backups, monitoring, virtualization, fault tolerance, troubleshooting, rescue and recovery, resources, and basic Linux administration.

The Official Ubuntu Server Book
The Official Ubuntu Server Book, 2nd edition

The Official Ubuntu Server Book isn't filled with pictures, but they are scattered throughout the book, along with lots of examples. The great thing about this book is that it doesn't just cover commands to do tasks, but explains how the commands fit into the ecosystem. For example: the chapter on package management has lots of examples of how to use dpkg, apt-get, apt-cache, and aptitude, but it also covers the parts of a software package, the differences between the different repositories, source versus binary packages and touches, very briefly, on creating your own packages.

While I probably won't read The Official Ubuntu Server Book cover to cover there are still a few things I want to pull from this book before I pass it on (to the same volunteer). Hopefully the book will get an update soon, but I'm guessing it probably won't be worth if for Prentice Hall to publish another Ubuntu book. Sadly the 3rd edition of this book might be the last. Some of the things covered in this book I didn't see in the previous mentioned books are: LTSP, KVM, VMWare Server, Nagios, Ganglia, Ubuntu recovery mode, Dovecot, and Tripwire.

The Official Ubuntu Server Book feels for me like a lighter version of the Linus System Administration book with more of a focus on Ubuntu-specific examples. It's unfortunately pretty out of date, so I'm not sure I'd recommend buying one new, but if someone updated this book for 2021 it would be one of the books I would buy.

Hacking Electronics

By Simon Monk

Hacking Electronics isn't a book about Linux, but Chapter 6 on hacking the Arduino briefly mentions Linux and open source. One of the reasons many people are attracted to Linux is because they like to tinker, whether it's setting up a home web server with Apache, or just customizing a window manager to the n'th degree, Linux is very flexible. Hacking Electronics is a good start for those curious about digging beyond just using electronics. This book isn't one of those "heavy on theory" books, but a practical book with practical examples. Of all the books I mentioned here Hacking Electronics is the smallest at 274 pages. Hacking Electronics is also full of pictures and illustrations.

Many books on electronics begin with a lot of theory. Hacking Electronics begins by teaching the reader how to solder two wires together. There is a place for books that begin with theory, but I believe it's simpler to get people interested in electronics by starting with hands on examples and following with theory. Many years ago I picked up a book on MySQL. I read about 4 chapters of the book before getting stuck and putting the book down. Eight months later I picked up the book again and what was difficult was now easy. Books like Hacking Electronics help to fill that gap where you might not understand the practicality of something.

Chapter 2 of Hacking Electronics touches on theory, briefly covering current, resistance, voltage, Ohm's law, the mathematics behind power, and reading a schematic diagram. The entire chapter is only 13 pages, several of which consist of images and diagrams. Theory is there, but it's not overwhelming for those new to electronics.

The "hacks" start with the third chapter. A commonality throughout the chapters is that almost every one has several "how to" sections that cover hacks from choosing a bipolar transistor to making an FM bug. Every how-to section covers things needed for each project and at the end of every chapter is a very short summary. Where some books have a page or more of summary, Hacking Electronics sums up each chapter in a few sentences with a few key ideas to remember.

The chapter on hacking the Arduino acknowledges Linux and mentions the software used to connect and hack the Arduino runs on Windows, Mac OS, and Linux. It also mentions the differences between how Windows versus Mac OS/Linux deal with comm ports. What I think really makes this book shine is that it doesn't just introduce you to electronic parts, but guides you on how the parts can be used in a project. Information isn't presented in an overwhelming fashion. Hacking Electronics doesn't expect knowledge of every component, but builds knowledge of components and theory by hacking together electronics projects.

I bought an Arduino Uno to start hacking electronics, but life happened and so far I haven't had a chance to go through this book in its entirety. This book won't make someone the next Dave Jones (EEVblog), but it probably will spark interest in electronics.

Ubuntu Unleashed, 2015 edition

By Matthew Helmke

Ubuntu Unleashed author Matthew Helmke is also one of the authors of The Official Ubuntu Book. Unlike previous Linux books on this list, Ubuntu Unleashed covers desktop Ubuntu Linux. The Official Ubuntu Book is still the book I'd recommend to beginners wanting to learn more about Ubuntu Linux as a desktop operating system. Ubuntu Unleashed is the next book I'd recommend. The first half of Ubuntu Unleashed covers installing and configuring Ubuntu, working with Unity (which has since been replaced by GNOME 3), using Internet-related software, LibreOffice, music and video software, other desktop interfaces and games.

The desktop portion of Ubuntu Unleashed isn't huge, it's roughly 120 pages of this 800+ page book, but I would argue that parts of the third, fourth and fifth section could also apply to desktop users. Sections like the command-line quickstart, securing your machines, sharing files and printers, virtualization, and the entirety of section 5 on Linux programming could be of interest to desktop users. It's unlikely I'll ever submit a kernel patch, but I did take a course in C programming in 1987, and I wrote a handful of command-line tools many years ago without any real guidance on how to use gcc, makefiles, or debugging tools. While Ubuntu Unleashed doesn't cover programming languages in depth there's enough material in this last section and references to further material to start someone in better direction to learn programming. Besides C, Perl, Python, and PHP are covered in some depth. Other languages like Ruby, Ada, COBOL, Clojure, Go and Javascript are referenced, but you won't learn them from this book (at least not the 2015 edition).

Unlike all the previous books I mentioned, Ubuntu Unleashed has a 2021 edition (published August 2020), so it's possible to buy this book with more up-to-date information. The newest version appears to have more desktop software coverage, container coverage, and more virtualization material. I probably won't buy the latest version of this book because it's missing the important information about the new Subiquity installer, and a lot of the book is in this old version. I use Xubuntu, so topics like Unity and GNOME are of less interest to me. Would I recommend the 2021 edition of Ubuntu Unleashed to a new Linux user over the older The Official Ubuntu Book??? I'm not sure I would. As the author hints in the introduction Ubuntu Unleashed is really for those who want to become intermediate or advanced users of Linux.

Ubuntu Unleashed has stayed on my shelf because there are differences between it and the other Linux administration books. All three books cover backups, but they all cover different backup software. Yes, there are sections that cover the same, or similar software, but there are also sections covering other software. Deja Dup and Backup In Time, both visual backup tools, are mentioned in Ubuntu Unleashed. Using tar and gzip is mentioned in all 3 books. When it comes to foundational (included software) the three share similarities, but I really like Ubuntu Unleashed and think it's one of those next best books to read after getting a basic grasp of Ubuntu.