This involves the specific platform-GNU/Linux. Development in Linux is significantly different from that in windows. There is a big gap between development tools and project organization.
First, declare that before developing a Linux platform, you must first be familiar with the Linux system and have a perceptual knowledge of the system. List the books for learning Linux development in sequence.
1. Development Tools
(1) Use of the VI editor. Books are everywhere, and there are a lot of free materials on the Internet.
(2) The use of the GCC compiler, GCC compiler full manual, you don't have to read it all, just look at it.
2. system learning
(3) laruence's Linux private dish (basic), learn how to use basic applications and shell commands.
(4) Linux system API. Linux applicationsProgramDesign, fully covering the use of Linux APIs.
3. project management tools
(5) Write makefile for me, which describes the Getting Started book of Linux project management tool make.
(6) Advanced bash guide, which often uses scripts to describe bash programming.
4. Advanced Programming
(7) expert programming for Linux assembly language, which is easy to use and requires deep understanding of C language. It is not an expert-level book.
(8) linker and Loader: Describes links and loading processes in C, C ++, Java, and other languages. It is definitely a good book for deep understanding of language implementation.
5. Gui Programming
(9) x system guide, learn the essence of XWindow and understand the basis of window system.
(10) x system programming, QT, and GTK. Learn more if you can learn more.
6. Advanced
(11) UNIX network programming.
(12) have a deep understanding of Linux kernel and Linux device drivers. Essential books for understanding the principles of Linux OS.
(13) Linux drivers are essential for Embedded Linux.