How do you learn Linux programming?

Source: Internet
Author: User
Tags posix

First of all, to learn Linux programming, you have to use Linux, that is, in the command-line environment to survive. What does it mean to survive? Is I now give you a host, keyboard, monitor what, and then give you a server version of the Linux system CD-ROM or any other installation disk, you go to the host use up. What do you mean, use it? What do you usually do with your Windows computer, and what do you do with this computer now? New files Ah, view files, edit files, save files, copy, move, delete, package, unzip, network, download something Ah, etc. basic operations you'll have to. There are software how to install, not only to be familiar with Apt-get and Yum, but also to give you the source of the software how to install you have to be familiar with the Linux file system, each directory is what to do, the directory of the file is why, insert a U disk, how to mount this U disk, the operation of the file under the U. Recommended to see the old section take you to learn bird brother's Linux private dishes (basic article), remember to install the Linux system itself, there is a server chapter, since you are to learn the development of Linux programming, then do not have to look at the server set up the article. With this step, you can develop.

linux under development, two basic languages, C and C + + slightly, as for others to say Python,java, Ruby doesn't talk about anything, because it's about development under Linux, and what is Linux development? Is the use of Linux API development, first you have to C language or C + + language Ah, this to see Dennis's "C programming language", C + + to see "Essential C + +" or "C + + Primer", and then under the Linux program development, The Linux API is compliant with the POSIX standard, self-Google what is called POSIX. Linux under the development of a few large, file operation, this is very important, you need to know that Linux under a thought that everything is a file, visible file read and write more important. I/O model, five I/O models, blocking, non-blocking, multiplexing, signal-driven and asynchronous I/O, interlocking filaments connected, concepts and operations to be carefully pondered, the most important when it is reused, is select,poll and Epoll, interview written Test asked this thing, to know their scope of application and advantages and disadvantages. Processes and threads, including the concepts and differences of processes and threads, the establishment of processes and threads, synchronization, communication, mutual exclusion, and so on. Network programming, is the socket programming, Linux programming, this learning is not good equals nothing, this estimate also need to understand the TCP/IP protocol, the main programming aspect is that several steps, application socket,bind,listen,accept a few steps, to be familiar with the kind of common server model, The process pool thread pool way, multi-process way, reuse way, the most important is the reuse way, this part can write the server first, test directly with Telnet is good, speed up. The rest is the database, this thing does not belong to Linux, but still have to, otherwise do not do, see that this "MySQL must know will", of course, in-depth words still have to find a professional book to look at carefully. This time can be real thing to do something interesting, such as writing a terminal similar to QQ software Ah, including the server and client ah, slowly increase the number of concurrent, such as can support 5,000 people online Ah, file transfer ah and so on. Then learn to learn QT, familiar with a shape interface, you can change the terminal under the QQ completely into a graphical interface. It is estimated that by this time, you have almost done a decent development under Linux. In this process of learning, I believe you have learned to write makefile Ah, compile Ah, link ah and so on some of the details of things, but also to reflect on the scattered things strung a string, to systematize.

Next is to continue to deepen, Linux why so many people use, where the benefits, you have to go a little bit to see the kernel source Ah, the kernel of the thread scheduling ah, I tell you, a list of Linux kernel is enough for you to study several classes. Oh, this time, the data structure what has to be turned out to strengthen it is not, the computer network what also have to see, operating system principle what also have to look at it is not, put these things here is appropriate, before let you know it, know how programming how to do, now want to know its why.

In the process of learning, to constantly accumulate and understand the latest things, at least to know a concept, such as distributed, big data, cloud computing, machine learning, computer vision, JIT, and so on, to form a knowledge chain, which will not lead to you do not know what to learn at last. There is a suggestion, be sure to learn python, be sure to learn python, be sure to learn python, important things to say three times. It can greatly improve your work efficiency, but also can be combined with C + +, very nice language.

Finally, we recommend several books (included in the front): "Bird Brother's Linux private Food Foundation","Eensstial C + +","deep understanding of the Linux kernel","in-depth understanding of computer systems" and so on.

How do you learn Linux programming?

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.