
5 Unix books you must read
Last Updated on May 24, 2025 by David Both
— That also apply to Linux as well as all operating systems.
I am always learning new things. There are always new things to learn in the world of computers and technology. But there are also plenty of old things to learn, and that’s what this article is about.
I have five books that I think are the most important books about practical computing and programming that have ever been written. That’s not because they teach programming — they do not. But they teach more about programming in the Unix — and by extension, Linux — environments than all the other books I’ve ever read that are filled with code.
Together, they provide both history and context for the state of the computing world in 2025. All of them are relevant to Linux as much as they are to Unix. More than one provide some discussion of Linux and it’s place along side Unix.
Together, these books have had a powerful and lasting impact on me as a SysAdmin, a programmer, and a consumer of computing power.
The Art of UNIX Programming
Eric S. Raymond, Sep 23, 2003
This is my favorite book about Unix development despite having very little actual code.
Raymond begins this book with a historical look at the philosophies of the early developers of the Unix operating system. He explores those philosophies — and his own — throughout the remainder of the book using numerous case studies to illustrate good and the bad examples of the Art.
Each case is examined as an example of one or more of the philosophical principles, and the those principles and the realities of programming in a modern environment. One example is the idea of simplicity. More than one of the principles speak to simplicity and the elegance of simple design. But Raymond, and the Unix philosophies he’s collected here, recognize that sometimes a complex solution may be the only one — or at least the best.
Another important aspect of coding is that of data structures. More than one of the tenets covered in this book admonish the developer to design the data structures first. Elegant data structures facilitate simple, transparent, and elegant code.
The transcendent theme in this book is that of elegance and that elegance is simple and beautiful. Elegant code is easy to understand and maintain
Raymond is clear about the fact that, while this is a book about Unix, all of the principles discussed apply to any system environment. He also points out that not all environments provide the tools necessary to implement all of the principles.
I like this book because it reminds me that programming is an art. Good code looks good, is easy to understand, and has an elegance that transcends clever coding. This is my favorite book because it has an incredible amount of development wisdom embedded in its pages. It’s also one of the most readable books about Unix and development that I’ve ever read.
This book is available on Amazon and is freely available in its entirety at Linuxtopia.
Linux and the Unix Philosophy
Mike Gancarz, 2003
This is another favorite of mine. An extension of his earlier work, “The Unix Philosophy,” Gancarz has included Linux in this edition.
Gancarz starts with the overarching Unix philosophy that its developers assumed that the users know what they’re doing and shouldn’t be shielded from any aspect of the operating system. This is the antithesis of Windows which, descended directly from the DEC VMS operating system, is designed to protect and isolate users from the internal tools and full capabilities of the system.
Gancarz doesn’t mention Windows, but because of their common ancestry, both DEC VMS and Windows usually provide only a single path to a computing solution; Unix and Linux commonly provide many paths. He also introduces Linus Torvalds and his “hobby,” Linux, as a pivotal point in the history of computing by making a Unix operating system universal enough available to spread everywhere.
He outlines the deceptively simple nine primary tenets and ten minor tenets of his philosophy and then discusses them in detail in the rest of the book. Like “The Art of Unix Programming,” this book also hones in on the KISS principal, “Keep It Simple Stupid.”
This book is the one that first prompted me to begin formulating my own Philosophy as I later laid out in my book, “The Linux Philosophy for SysAdmins.”
This book is available on Amazon.
Unix – A history and a Memoir
Brian Kernighan
This is an interesting history of the creation and spread of Unix as told by one of its central figures. The book includes interesting anecdotes about how many of it’s most important features were created, like Doug McIlroy‘s overnight creation of the pipe.
Although this book is interesting, it sometimes reads as a collection of reminiscences rather than a unified story. But I’ve read other memoirs with a similar structure so it’s probably not uncommon.
The power of the stories in this book is the insight offered into the minds and activities of the original Unix developers. It describes a time in which computing resources like CPU cycles, memory, and disk or tape storage, were all in very short supply. It’s because of this that some of the tenets of the Unix philosophy were imposed on its architects. Simplicity and resource conservation were significantly more important than they are today. Fortunately, that doesn’t prevent modern programmers from following the tenets of the philosophy.
Unfortunately, the e-book is available only as a poorly copied document to a PDF file, and it’s restricted to use on devices that have the Kindle app or the Kindle itself. The hard copy is also available from Amazon, but I can’t vouch for its readability because I haven’t seen it.
The Cathedral and the Bazaar
Eric S. Raymond, 1997
Eric S. Raymond, an early proponent of open source software, wrote this book to compare and contrast the two development models — the Cathedral and the Bazaar.
The cathedral represents the companies that employ tens or hundreds of programmers who create proprietary software based on a strict set of requirements that may or may not represent the true needs of customers. The resulting programs are sold or licensed under restrictive terms that preclude copying programs or using them on more than a single computer. In extreme cases, like Sun Microsystems, certain programs were licensed to run only on a specific number of processors, even if the computer contained more than that number; you could pay more money to be able to run the software on more processors.
By contrast, the bazaar confounded the proprietary world. This much less structured culture allows thousands and literally millions of programmers and testers to contribute to projects like the Linux kernel, or the LibreOffice suite of office programs. Even more radical is that these open source programs can be downloaded and used with no restrictions. Not only are they mostly free of charge, “free as in beer” as they like to say, they are also “free as in speech,” because the license requires the source code to also be freely available for anyone to download, view, and change if they have the skills. Open source licenses also require that those changes be made available to the developers of the programs so they can be incorporated in future versions of the product — if they work as advertised and are consistent with the goals of the project.
Raymond starts this book with another history, but of operating systems and software from a business viewpoint. Of course, the proprietary software companies couldn’t — and still mostly can’t — conceive of the fact that open source software can be a viable business. Red Hat and Canonical have proven that it can.
The rest of the book concentrates on the struggle between the two models and their proponents, while providing an interesting, if somewhat self-centered view of the history of the open source movement. For example, even though he discusses the origin of the term “open source,” he doesn’t attribute it to it’s creator, thus giving the erroneous impression that he coined it.
So I think it important to acknowledge that Christine Peterson coined the term “open source.” In February of 1998, Peterson was in a series of meetings with Eric S. Raymond, Jon “maddog” Hall, and many other leaders to discuss licensing Netscape as free software. A number of people, especially Peterson, did not think that “free software” properly defined what they were trying to accomplish. She came up with the term “open source” and approached some of the other attendees with the idea. In a meeting on February 5, some of the attendees started using “open source” to describe software that was free of restrictions and for which the source code was readily available. This story is really hers to tell so please read her article at Opensource.com. In a comment at the end of the article on Opensource.com, Eric Raymond validates and supports Peterson’s account of the birth of this now ubiquitous term.
Despite the narrow viewpoint, Raymond has given us an insightful look at the early software culture wars and the impact they continue to have today.
Available from Amazon.
Understanding the Digital World: What You Need to Know about Computers, the Internet, Privacy, and Security
Brian Kernighan
The new second edition of an important book by Brian W. Kernighan, one of the leading figures in the creation of Unix, author or co-author of many influential books, and a professor of Computer Science at Princeton University. Understanding the Digital World combines computer history, technology, and personal story, along with discussions about how today’s technology impacts our privacy.
Kernighan teaches a course at Princeton each year, “Computers in Our World,” intended for computer users who are not Computer Science majors. He wrote this book to bring much of the information contained in that course to the world at large.
Kernighan starts with an exploration of the technology itself. The title of Chapter 1 is, “What is a Computer?” Covering the CPU and how it works, he describes various forms of storage, including RAM, cache, disk, and other types of secondary storage, and how they all work together. After this overview of the hardware, he describes algorithms, how they are used to solve problems, and how they get incorporated into computer programs. In later chapters, Kernighan discusses the internet, the TCP/IP protocols that drive it, and some of the tools used to communicate using the internet. He also delves into the issue of security in a totally connected world.
My first inclination after reading this book was to send it to the two of my grandkids that I helped to build gaming computers. This book is a good way for them to learn how computers work at a level they can understand. They can also learn about the pitfalls (beyond those their parents have discussed with them) about how to be safe on the internet. I also suggested to their parents that they read it, too.
It is not all gloom and doom. Far from it. Kernighan manages to scare me while simultaneously ensuring that readers understand how to mitigate the threats he discusses. In the vast majority of his scenarios, I had already implemented many of the protections he covers.
This book has made me think more closely about how I work and play on the internet, the methods I use to protect my home network, and how I use my portable devices. Kernighan’s level of paranoia is sufficient to ensure that readers pay attention while reassuring us that we can still use the internet, our computers, and other devices with a reasonable amount of safety so long as we take the appropriate precautions.
No! I am not going to tell you all of that. You’ll get no spoilers from me.
Overall this is a pretty easy read and accessible even for many non-technical readers. This was intentional on the author’s part. So even if your technology quotient is fairly low, this book is still understandable. Despite the fact that he wrote the first edition of this book only a few years ago, this second edition includes important new material that makes it even more applicable to today’s technology and the lightning-fast dissemination of data. I found the new section on artificial intelligence quite enlightening.
I highly recommend this book to anyone who wants to learn more about how computers work and impact privacy and security in the modern world.
Available from Amazon.
Although these books apply to other programming environments, the reality is that only Unix and its descendant, Linux, have the philosophy and the tools to implement them completely.