Suggestions for learning Linux/unix programming methods

Source: Internet
Author: User

Suppose you are a computer trained, the basic courses of computer science such as data structure, operating system, architecture, compiling principle, computer network you have all repaired

I think it can be divided into 4 stages, level from low to high
From installation using =>linux common commands =>linux system programming + kernel development read Kernel source code

It is necessary to learn the common Linux commands to compile the kernel itself, optimize the system, adjust the parameters

Installation and common command book too much, find a little more detailed on the OK, in the meantime need to learn regular expression

System programming Recommendation "Advanced UNIX Environment Programming", slang called apue
and "UNIX network programming."
At this time probably also need to see the data Understanding Elf file format, connectors and loaders, CMU, a textbook Chinese name "in-depth understanding of computer systems" is better

Kernel Development Read Kernel source stage, start with writing drive and gradually deepen the development of Linux kernel
The reference books are as follows "Linux device drivers", slang called ldd
"Linux kernel development", slang called LKD
"Understading the Linux kernel", slang called utlk
"Linux Source Scenario analysis"
These four books are must-read books for the core

Finally, the third stage and the fourth stage of the most hands-on, deeds useless, light reading also do not cover, do not understand the hands of those things

Suggestions for learning Linux/unix programming methods

Suggested Learning Paths:

First of all, learn the editor, vim, Emacs and so on.
Then learn to make file files, just know a little bit, so you can prepare the program.

Then look at "C programming language" k&r, so that, basically can do general programming, by the way to find the data structure of the book to see.

If you want to learn Unix/linux programming, "Apue" absolutely classic textbook, deepen the foundation, learn the second volume of "UNP". In this way, basically the system can be mastered.

And then look at Douglus E. Comer, "Internet Interconnection with TCP/IP," the first volume, learn the knowledge of the network, and then see the first volume of "UNP", not only to learn the network programming, but also some common skills of system programming is very familiar with, if continue network programming, suggest to see "tcp/ IP in the third volume of Internet interconnection, there are a lot of application protocol Telnet, FTP and other protocols programming.
If you want to write device drivers, first of all, your system programming interface such as files, IPC, etc. must be familiar, and then learn "LDD" 2.

For the evaluation of several classic textbooks:

"The C programing Language" K&r the classic C language programming material, the author is the C language inventor, the textbook content is in layman's words. Although a bit old, but a necessary manual, and now sometimes I often turn over. The space is relatively small, but every time you look at it, there is a harvest. In addition, "C language Programming" can be replaced by rectification.

"Advanced programing in Unix envirement" W.richard Stevens: Also very classic book (Nonsense, Stevens Book which has not classic!) ), although beginners can see, but in fact it is "Unix Network programing" an auxiliary material. Domestic translation of the "UNIX Environment Advanced Programming" level is not good, now has a photocopy version, direct reading English is easier than reading Chinese.

"Unix network Programing" W.richard Stevens: The first volume of the BSD Socket network programming interface and another network programming interface, but now generally use BSD socket, so this book as long as the only look at about half more can. The second volume does not have anything designed to be networked, mainly between interprocess communication and POSIX threading. So after watching the "Apue", you can see it, basically the system of things from the "Apue" and "UNP" Vol2 summed up. After seeing "UNP", you will know most of the programming techniques of system programming, even if the volume one is about network programming. The domestic is Tsinghua Translation "UNIX Network Programming", translators have a relatively high foundation, translation is better. So the suggestion is to read the Chinese version.

"TCP/IP Xiang solution" altogether three volumes, Volume one speaks the agreement, the volume two speaks realizes, the volume three speaks the programming application. I haven't seen much of it. , but it is also said to be very classic, because I do not have time to look at volume two, so inconvenience evaluation.

"Internet interconnection with TCP/IP" Douglus.e.comer a total of three volumes, Volume One speaking principle, Volume two speak realization, Volume three speak advanced agreement. It feels better than Stevens's, even Stevens has to admit that its first volume is very classic. In fact, the first volume even if you do not have a little knowledge of the network, after reading it will be familiar with the context of the network. There are many exercises in the first volume are also designed to be classic and practical, because the author is a teacher, and volume one is foreign postgraduate textbooks. There is no answer to the problem, leave the reader to think, because the answer to the question can let you become an intermediate hacker, the answers to these questions can be like Douglus request, but only he gave teachers Volume II I do not see how, volume three can be used as a reference manual, which example is also very classic. If you have seen the source code of Qterm, you will know that most of the qterm Telnet implementation is from the source of the book. For the network principle of the book, I recommend it, rather than Stevens "TCP/IP Xiang solution."

"Operating System-design and Implement" This is a book about the operating system, using Minix examples. The author's native language is not English, so English looks rather obscure. Domestic translation is "operating system design and implementation", I did not read the Chinese version, because the translator is Yu Jinyuan, he translated the "Apue" has let me down the head. Reading this book, how to work on the bottom of the operating system will
Have a clear understanding of it.

"Linux device Driver" 2e, a few good books about Linux equipment drivers. But the content is a bit messy, if you do not have some experience in writing drivers, the first look will be some touch the North and south. Domestic translation is "Linux device Driver" Second Edition, the first edition, the second version of the translator I have very deep contact, but overall, although the second version of the translation is somewhat unsatisfactory, but compared to the first version of the more than a big cut. To read this book, at least you should find some "computer theory", "Machine architecture" books to read so carelessly, at least should have some understanding of the hardware and computer work process.

Advice on learning Linux/unix programming methods (RPM)

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.