Book Review: How Linux Works

Disclaimer: I received a free a copy of “How Linux Works 2nd Edition” to review from NoStarch Press.

How Linux Works Cover
How Linux Works 2n Edition book cover.

I enjoy doing these occasional reviews: it’s a good excuse to read a new book, learn something new (there’s always something to learn, every day) and to move my eyes aways from a light emitting digital device (yeah, apart from when I actually write the review…). And since I fully read the books, that’s why usually it takes some time to review them all.

I have to admit I love NoStarch books: lovely cover arts, a nice book form factor, well written and edited content, multiple formats to choose from (paper, digital DRM-free versions). And “How Linux Works” is no less.

The Review: How Linux Works by Brian Ward

17 chapters strong, the book opens with a general overview of a Linux system providing the reader with a really clean explanation of the differences between the kernel space and the user space, moving to a quick overview of the shell system.

From Chapter 3, the pace changes, and it’s here where the author starts diving into into the real Linux system. Devices, device types, sysfs and how they are implemented at the kernel level are an introduction to concepts that will be taken further in Chapter 4, where file systems, a generic overview on how they fit into the kernel, and the most used and common commands to work with partitions, are introduced.

I consider Chapter 5 and Chapter 6 to be the strength of the book: how the Linux boot process works, what GRUB is, does and how to configure it, all clearly explained with detailed steps of the overall boot process. And then, as a natural consequence after the boot phase, the init systems are introduced and the reader is taken further into the user space land.

Chapter 6 covers basically everything that is needed nowadays to understand the init process: systemd, upstart and sys-v are all explained in their glory details (although the latter is the less detailed): how they are configured, where their configurations are located and the different terminologies each adopts are easy to understand.

From here on, the book covers all that is necessary: logging, users, /etc and login methods with a focus on PAM (Chapter 7); processes, resources, CPU & I/O and all the commands to help you in performance diagnosis (Chapter 8); network, network configuration, a concise but exhaustive introduction to the network layers, the kernel routing table and internet/network user space applications (Chapter 9, 10).

Chapter 11 takes us back to the shell with an extensive coverage of its most useful and used commands, that will lead as to know all the file sharing programs available at our fingertips (Chapter 12).

The remaining chapters cover the user space environment: startup files, desktop environment and window manager, D-Bus, CUPS; development tools (compilers, debuggers) and how to compile software.

Of all the book, I found these last chapters (counting also Chapter 12) to be the less interesting: probably because most of the concepts described were already known, or they were covering not (that) much interesting subjects to me.

In the End…

The book is really well organized, technically accurate and up-to-date with the recent modern Linux technologies. A really great Linux power-user book that doesn’t spend too much time in a graphical environment, but concentrates on command line tools and the depths of how a Linux system is glued together. Read it if you want to expand and deepen your Linux knowledge.

Book Review: Think Like a Programmer

This is my first attempt at writing a book review, so bare with me if it is not the best around. And here the “usual” disclaimer: I received a free copy of “Think Like a Programmer” from NoStarch Press.

The book: Think Like a Programmer an Itroduction to Creative Problem Solving

Think Like a Programmer Book Cover
Think Like a Programmer book cover.

As the titles goes, this is not only a book about programming or development, it is an exercise on problem solving and thinking. The book has one of the best starts I could imagine: puzzles. Funny puzzles, those that nowadays scare candidates during the hiring processes at big companies.

The puzzle-pace is kept for the first two chapters, and the author guides you into well detailed examples of problem solving: how to break a problem into smaller parts, how to apply your knowledge to unknown problems, where and how to recognize patterns.

After these two introductory chapters, things start to get serious. Complex concepts are introduced: arrays, pointers, classes, dynamic memory… and the problems accompanying them resemble real-life ones. To fully grok these sections, a good knowledge of C++ is needed. The author introduces each new topic with the basic needed coding knowledges, but if you do not have any previous C or C++ skills at all, the examples and the exercises might be daunting.

The book is broken into 8 chapters and you can perceive the complexity increasing up to a peak in the middle ones. The last two chapters are less demanding and the concepts introduced are not tied to any particular programming language: they step into the realm of software engineering, code reuse and something I would refer to as task management.

In the End…

It is not meant to be a cookbook, nor something you can use as a reference manual. You have to embark yourself , and let the author sail you through a journey of discoveries, learning and problem solving, being patient and going through the proposed exercises. It is a training for your brain, for your code writing-fu, and mostly for how to approach problems and how to tackle them.

Think Like a Programmer

Another quick post for a small promotion, always from the lovely No Starch Press. This time is the turn of the book “Think Like a Programmer“, by V. Anton Spraul.

As for the previous promotion, you can get 40% off on the paper version, plus the DRM-free ebook versions. The promotion lasts one week, and here is your chance to have it:

I’m reading the book now, No Starch asked me to write a review, and I have to say it is an enjoyable and challenging reading.

Go get it, for new programmers and also for seasoned ones, it is always interesting to challenge your mind and your knowledge.

Ubuntu Made Easy Promo Code

For the English speaking audience (but not only). If you are interested in a new book on the latest LTS version of Ubuntu, No Starch Press is promoting “Ubuntu Made Easy” for one week, 40% off on the paper version, and you get DRM-free ebooks format (PDF, mobi, epub) with it.

The link to the promotional code is here:

Spread the voice, and grab it as fast as you can!

The book is really worth it if you are getting closer to Linux for the first time, but still an interesting reading for all.

PS: I technically reviewed the book.