[Reprint] My Linux bookshelf

Source: Internet
Author: User
Tags gtk

Work for several years, has been engaged in the development of Linux kernel drive. From the touch of Linux to now, read a lot of Linux books, now think very good part of the list to share with you.

Introductory class
It has been assumed that before learning to develop on a system, it is necessary to familiarize yourself with the use of this system first. In view of the country's national conditions, most people first contact with the operating system is windows, so for most people, if you want to learn Linux development, learn to use this system is a necessary part.
Now the Linux beginner is happy, as the Linux desktop environment becomes more and more easy to use, getting started with a new system is very easy. Although the command line is more efficient for productivity, it is entirely possible to place familiar commands in daily use. No matter what knowledge you learn, learning in practice is efficient and interesting. At this stage, we may not necessarily need books. Now many of the Linux distributions are written in very detailed wikis, and you can find the appropriate wiki to read the query when using one of the distributions. Moreover, the desktop environment changes too fast, about the desktop of the introduction of books almost no need to see, such books are most recently published on the outdated.
What are the more valuable books in the category? I would rather recommend a relatively stable book of technology involved. For example, Linux basic architectures and commands are generally immutable, even from the antiquity of Unix began not much change, the knowledge of this kind of books is also the basis for significantly improve our productivity later. such as "Brother's Linux private dishes", such as "Unix Power Tools" (the "UNIX Super Tool"), or for the linux+ certification exam prepared for the linux+ Study Guide. Of course, this kind of books do not have to be intensive reading, a quick View as a reference book can be.

Programming classes
UNIX-like system programming books, the most classic is the abbreviation for the Apue "advanced programming in the UNIX Environment" ("UNIX environment High-level programming"), The book was written by a vast number of UNIX programmers (including Linux) as the Bible. Borrow GE's advertising words: "It's like going to a restaurant, a street, which family more I go to." Apue the programming interface of Unix-like systems is very comprehensive and detailed, for this book, we should not only intensive reading, but also on the desk standing.
However, Apue seems a little bit deeper for Linux programmers, and many of the details are not used in Linux. In the book on Linux programming, "Advanced Linux Programming" should be more suitable for beginners. Do not be intimidated by the title "Advanced", the contents of the book is very easy to understand. It would be better to read this book and see Apue.
If you want to develop GUI programs, the above two books can do nothing. In the Linux world, the most common GUI toolkit are GTK + and QT.
GTK + books are not many, online documents are only suitable for review, not a complete learning system. Foundations of GTK + development is a great book, and developers who like GTK + can use it as an introductory book.
In contrast, QT books are very rich, this and QT has a good cross-platform ability has a great relationship, QT books are not just for Linux programmers to see, in Windows and Mac OSX can also use the QT development program. Some of the more interesting QT books are "C + + GUI programming with QT4", "Foundations of QT Development", "the Art of Building QT Applications", three of which are more suitable QT Beginner Reading. In addition, "Advanced QT Programming" will introduce some of the higher-level QT usage, suitable for the reader with a certain QT basis.

Kernel class
For Linux kernel or device-driven developers, the most comprehensive and direct learning material must be the Linux kernel code and its documentation. The Linux kernel has a short release period, and the publication of related books is completely out of step. But with the growing size of the kernel code, the learning curve is getting steeper and the beginner is very much in need of books as a guide, which is really a very contradictory thing. Fortunately, many Linux kernel technology writers are also very diligent and often update their work. Like Robert Love, Linux Kernel development, modelled on the 2.6 kernel, has been updated to the third edition. LKD is a good book for beginners of the kernel, and the evaluation of it can be quoted by Chen Li-June's translator:
Compared to Daniel p. Bovet and Marco Cesati's core masterpiece "Understand the Linux Kernel", it is five points less detailed, compared to the practice of the classic "Linux Device Drivers", it is five points more reasoning. It can be said that the book fills the gap between the theory and practice of the Linux kernel, "One bridge puts up Minjiang north and south, natural moat alternative".
Thank you, Ms. Chen, her translator helped me elicit two more classic books to talk about, "Understanding the Linux Kernel" and "Linux Device Drivers". For these two books, if you want to pick their shortcomings, I can only say that the content is a bit old, a lot of knowledge points need to be updated, in addition, I would like to say, is that they took me on the development of the kernel drive this way, of course, there are lkd.
Recently, I found a good book analyzing the Linux kernel, which is "Professional Linux Kernel Architecture". This book I am currently reading, writing very well, and because the book is relatively new (just relative, the 2.6.24 kernel seems to be very old now), have not seen ulk students can directly read the book.

Tool class
工欲善其事, its prerequisite. For Linux development, the tools still need to be used skillfully. For example, GNU tool Chain, auto build tools, editors, version control tools, and more.
Here's an all-encompassing book called Handbook of Open Source Tools, which introduces a wide variety of open source tools that can be called open source technology. The book tries to be exhaustive, so it doesn't go deep, rough time.
GNU Tool chain Reference Redhat's "The Gnupro Toolkit" is sufficient, if the makefile to carry out alone, you can also refer to the managing Projects with GNU made.
The auto-build tool can refer to the "Autotools". If you are ready to use CMake, it is recommended to Cjacker's "cmake practice". "Mastering CMake" is said to be the authoritative book of the CMake, but has never been seen AH.
When it comes to the editor, the most famous of all in Linux is vim and Emacs, the background of which is to see why Emacs and Vim are known as two great artifacts. I almost didn't use Emacs, and I used to spend 9 bucks on a "learning GNU Emacs" as an activity, and I thought it would be enough to get the book as an introduction to Emacs. Vim is one of the editors I use a lot (and the other is Kate, one of the reasons I originally liked Kate) is that it provides Vim editing mode, and two books are worth reading about: "A Byte of Vim" and "Hacking vim 7.2", but for beginners, First, the Vimtutor exercises with VIM will be better.
Linux has a lot of version control tools, there are traditional subversion, there are now very popular distributed tools such as Git. Subversion can refer to this version control with Subversion, Git can refer to "version control with Git" or "Git internals" or "Pro Git".

Other
In addition to the above categories, there are a number of books worth recommending.
For example, "The Art of Unix Programming", mainly introduces the UNIX system in the field of design and development philosophy, ideological and cultural system and community culture, etc., the coverage is very wide. Some of the content in the book is similar to the Revolution OS, and you can confirm it yourself. For this book, we can also think of it as a novel or a history book, Can lie in bed, can be seen on the couch, or like a strange sitting on the toilet to see, in short, do not have to sit in front of the desk.
"Computer Systems:a Programmer's perspective" has been recommended by many people, this is a very classic computer system of teaching materials. Csapp's content is comprehensive, concise, easy to understand, and very helpful in cleaning up the computer architecture and even the Linux kernel after careful reading. Although the Chinese name is translated as "in-depth understanding of the computer system" (the translation is very inappropriate), but in contrast, why do people feel that the domestic similar textbooks more "abstruse" it? Perhaps, this is the gap between the author's skill.




Note: Most of the books listed here can be downloaded from library.nu, and after registration there will be a search box to search by the title.

[Reprint] My Linux bookshelf

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.