Extra One Book Recommendation Performance Optimization and Linux System Principles

Extra One Book Recommendation Performance Optimization and Linux System Principles #

Hello, I’m Ni Pengfei. Welcome to the bonus time of the Linux Performance Optimization column.

Previously, many students left messages asking me to recommend some books on performance optimization and Linux system principles. Today, I will share with you some books that I think are good.

Linux system principles and performance optimization cover a wide range of topics, and naturally, there are many related books. To study our column, you first need to understand the working principles of the Linux system. Based on this understanding, you can analyze and comprehend various performance bottlenecks and ultimately find methods to optimize performance. With these aspects in mind, I will recommend some corresponding books.

Introduction to Linux Basics: “Bird Brother’s Linux Cookbook” #

The goal of our column is to optimize Linux systems and the performance of software running on Linux. Therefore, the first step is to familiarize yourself with Linux itself. So, the first book I recommend is the well-known introductory book on Linux systems - “Bird Brother’s Linux Cookbook”.

This book uses CentOS 7 as an example and introduces the basic usage and management methods of Linux systems. The main content includes system installation, file and directory operations, disk and file system management, editors, Bash, and maintenance of Linux systems. These contents are the basic knowledge that Linux beginners need to master and are very suitable for newcomers who are just starting to learn Linux systems.

Of course, mastering this basic knowledge is also the basic threshold for learning in our column. For example, the installation of software packages mentioned in many cases, running Bash commands, using basic commands like grep and awk, and document query methods are all covered in this book.

In addition, most of the content of this book can also be learned online on its official website in Traditional Chinese at http://linux.vbird.org/linux_basic/.

Computer Principles Book: “Computer Systems: A Programmer’s Perspective” #

After mastering the basics of Linux, the next step is to further understand how computer systems work. Therefore, the second book that I recommend is the classic black book on computer system principles, “Computer Systems: A Programmer’s Perspective”.

This is also a classic introductory textbook in computer science. Its English title, “Computer Systems: A Programmer’s Perspective”, actually better reflects the core idea of this book, which is to understand computer systems from a developer’s perspective.

This book introduces the most basic principles of computer systems, covering a wide range of topics. It mainly includes topics such as computer representation of information, program compilation, linking and execution, processor architecture, virtual memory, storage system I/O, networking, and concurrency.

The book itself is quite thick and has a lot of content, but as an excellent introductory book, it does not delve too deeply into programming and system-level concepts. It is very suitable for beginners.

In addition, the official website of this book provides rich resources to help you further understand and delve into the content of the book. It also provides multiple lab exercises to help you deepen your understanding.

Linux Programming Books: “Linux Programming” and “Advanced Programming in the UNIX Environment” #

After introducing books on computer system principles, next, I would like to recommend two programming-related books: “Linux Programming” and “Advanced Programming in the UNIX Environment”.

The reason for recommending programming books is that understanding the execution logic of an application is crucial when optimizing performance. And to achieve this, a solid programming foundation is a must.

Among the two books I recommend, “Linux Programming” focuses on application development in the Linux system. It serves as an introductory book and covers topics such as shell, standard library, database, multiprocessing, interprocess communication, sockets, and graphical interfaces.

“On the other hand, “Advanced Programming in the UNIX Environment” is hailed as the UNIX programming bible and is a must-read book for in-depth UNIX environment programming, including Linux. Its main content covers the standard library, file I/O, process control, multiprocessing and interprocess communication, multithreading, and advanced I/O. These topics are essential foundations for developing high-performance and highly reliable applications.

These two books can provide you with a clearer understanding of the execution process of Linux systems and applications, and even help you better understand the source code of applications and the kernel when necessary.

Linux Kernel Book: “Understanding Linux Kernel Architecture” #

In order to facilitate your learning and application, the content of our column is based on the principles of the Linux system. By using various built-in or externally installed tools, we identify bottlenecks. Therefore, understanding the principles of the Linux system is also our focus. Additionally, understanding the kernel architecture can help you analyze why bottlenecks occur.

Therefore, the fifth book I recommend is a book on the principles of the Linux kernel - “Understanding Linux Kernel Architecture”. This is a hefty book that covers a lot of knowledge about process management, memory management, file systems, disks, networks, device drivers, clocks, and more in the Linux kernel. The book also includes a large amount of Linux kernel source code (for kernel version 2.6.24, although it is old, it does not affect your understanding of the principles), helping you thoroughly grasp the related knowledge points.

If you are reading this book for the first time, do not give up because of the thick page numbers or because you may not understand some content. Come back to it at a different time, and you will have different discoveries.

Book Recommendation: “Systems Performance: Enterprise and the Cloud” #

The last book I want to recommend is “Systems Performance: Enterprise and the Cloud”. I mentioned this book in my previous article Linux Performance Optimization FAQ (Part 2).

This book can be considered the most authoritative book on Linux performance optimization, and the author, Brendan Gregg, is also the creator of many well-known performance optimization tools and methods.

The book primarily provides the basic ideas for analyzing and tuning Linux performance, and explains in detail how to use dynamic tracing and other performance tools to analyze and optimize various performance issues. Additionally, this book also introduces the usage methods of many performance tools, making it a useful reference book for your performance optimization process.

Lastly, I want to emphasize that it’s not about how many books you read, but about how thoroughly you understand them.

You may have read some parts of the books I recommended today, but that’s not enough. To truly master the core content, you need not only to understand the explanations in the book, but also to integrate them through extensive practice.

You may find some books difficult to read and not as trendy as the constantly emerging new technologies. However, please note that this knowledge is fundamentally timeless and will not become obsolete. Spend some extra time to persistently read and understand these books, and I believe you will gain tremendous benefits.