How Linux Works

The subjects that I write about on Everyday Linux User really just
scrape the surface in terms of what Linux really is.

The point of Everyday Linux User is to help ordinary people decide
whether they want to make the transition to Linux and to help them
make that transition.

The idea is to let the average person find out about the best
Linux distributions and the purpose of those distributions.

Beyond the reviews I also provide how-to guides including
tutorials for creating live USB drives, testing virtual machines and
installing the Linux distributions that I review.

I also write reviews of applications such as video editors, audio

players, video players, graphics programs, office suites and games
emulators.

There are areas that I don’t touch and that is because I, in Linux
terms, am just an end user or at best a power user. I know how to
drive the thing and I have a rudimentary understanding of the engine
but if you ask me to change a gasket and I am likely to end up with a
warped head.

“How Linux Works (2nd Edition)”, authored by Brian Ward, is a book that
really shows you the inner workings of Linux.

For those of you that bought the original version of “How Linux Works” it is worth knowing that the second edition has been completely revised and expanded with new content.

You won’t find instructions for dual booting Ubuntu with Windows 8
in “How Linux Works” and nor will you find out how to install a
particular graphical environment. That is not what
“How Linux
Works” is about.

“How Linux Works” looks at the inner workings and details the
philosophy of why Linux works the way it does.

The book is over 300 pages and split into 16 chapters. It starts
with a chapter called “The Big Picture” which highlights the
various levels that encompass a Linux system. At the very lowest
level there is the physical hardware such as your hard drive and RAM.
In the middle sits the Kernel which manages the memory, process and
device drivers and at the top is the user space (which is the area
Everyday Linux User focuses on).

The 2nd chapter gives an overview of the basic commands
used within Linux such as ls, cat, awk, grep and find. This chapter
also covers the Linux folder structure.

The Linux folder structure is actually a very important concept to
understand but most consumers of GNU/Linux probably don’t venture
much further than their own home folder.

For day to day use it isn’t really an issue not knowing what all
the other folders are for because package managers deal with
installing applications and graphical tools handle settings but when
it comes to switching from one distribution to another or upgrading a
distribution that doesn’t provide an upgrade tool it is vital to know
the folders you need to back up.

Chapter 3 gives an overview of devices, how the dd command works
and provides details of udev.

The book has lots to offer on almost every aspect of the Linux
architecture but there is one chapter that should make most Linux
newbies add this book to their basket and that is the chapter on
disks and file systems.

The disks and file systems chapter gives a really good insight
into partitions and file systems. One of the most common questions I
am asked is “how do I partition my hard drive?” and that is
usually followed by “how big should my swap partition be and do I
need it?”.

How Linux Works has a good section detailing what swap space is
and the reasons it is used. By understanding how something works and
why it exists you can make a better judgement as to whether you need
it or not.

Following on from the disks and file systems chapter there is
another great chapter detailing the often hazardous and touchy
subject of bootloaders. There is a good section showing how to
install and configure Grub as well as information about UEFI.

Other chapters in the book deal with networking, resource
utilisation, system configuration and shell scripting.

Before the finale, “How Linux Works” briefly encroaches into
the world of Everyday Linux User looking at desktop environments,
window managers and applications. What sets “How Linux Works”
apart in this area though is the way it approaches the subject,
giving a great amount of detail about how X works and the tools
available. The book also touches upon potential forthcoming
technologies such as Wayland and MIR.

My day job is as a software developer, writing Windows and web
applications. I am also a qualified SQL Server database
administrator. One thing that I have barely touched upon is
developing software for Linux, although I have developed websites
using PHP and MySQL.

For the uninitiated, working out how to obtain the source, edit
the source and compile the packages is a daunting and confusing
experience. “How Linux Works” gives a great overview on this very
subject and helps to join up some of the dots.

In the past I have found books of a similar ilk as “How Linux
Works” to be quite dry and difficult to read. They are usually very
good for helping to get to sleep at night. “How Linux Works” is
different though. It is very well written and each subject is clear
and provides a good level of information without burying you in
detail.

I would be lying if I told you that I understood every word that I
read from cover to cover but on the whole I gained a lot of knowledge
by reading this book and I thoroughly recommend it, especially if you
want to get to grips with the inner workings and stray away from the
comforts of the desktop.

“How Linux Works” is available from Amazon, nostarch.com and all major booksellers.

1 Comment

  1. Thank you very much for the book recommendation. I got a copy next day through Google Play. It was actually cheaper than Amazon.
    I'm looking forward to reading the chapter on partitioning. The information I have found so far online about partitioning a hard drive for Linux often omits important information, skips steps, is incomplete or is contradictory and written for an audience that is familiar with Linux at an intermediate or advanced level.
    Anyone somehat experienced with Windows knows that it's a good idea to keep the user data on a separate partition from the OS itself. In Linux, there are additional options to keep various parts of the OS on separate partitions, although not necessary for a beginner / average user. However, keeping the user data on a separate partition is still a good idea. This would allow users to install and try out different distributions without having to backup / move the user data files to an external drive and then copy / move them back to the new home directory each time. It would obviously also allow users to have several distributions installed at the same time and share the same user data.
    Please note that I'm not saying that backing up data is unnecessary. It should always be done before installing a new OS of any kind, just in case.

Leave a Reply