Linux multi process programming and network programming related knowledge you really master???

Time:2021-2-27

If you are very interested in the following questions and really lack the following questions, then I think you can look down. I also think you need to improve your core knowledge. If not, then this article is of little value to you. There’s no need to waste time reading.

https://segmentfault.com/a/11…
What is ELF file
What is a process
Where can I view the process memory data
Which function to run first when the program starts
When the program starts, what parameters will be passed to the process
6. What is the process of starting a process under Linux terminal
7 Why is the process terminated by pressing Ctrl + Z, Ctrl + \, Ctrl + C on the Linux terminal? What does it have to do with softinterrupt system? How does a process mask interrupt signals?
What is the implementation principle of 8 daemons? What is control process? What is a control terminal? What is the relationship between a daemon and a terminal?
How did the orphan process come into being? Who took over the company? How does zombie process come into being? How to solve it?
What is the relationship between session process and daemons?
What is the memory layout of 11 processes? Why are processes isolated after multiple processes? What is the result of isolation?
What’s the difference between different programming languages in creating process? What do they have in common? How do you know what’s in common? Which function does the system call when creating a new process?
If there are two or more processes in the same process, what is the way to communicate with each other?
What are the features of UNIX socket and system V IPC interprocess communication, especially the differences between UNIX socket and IPv4, IPv6 socket?
When I start my code with go, python, Java, go, nodejs, which low-level function will it run first? Why? Where do these functions come from? How can I check it?
What is a 16 process pool? What are the benefits? What does the process do when it starts and ends?
The service I started takes up a lot of memory. How do you check which function is running in the current process? What is the state of the current process? What is the current process doing? You know what? How to check it? Print debugging in code?
I use PHP, Python and nodejs. When I write a network program, they call the same system API except for different languages?
Do you really master TCP / IP network programming? Stick to the bag, less bag what all know? Do you know what to do?….. Balabala, a bunch of…
Do I really know that when I write network programs, different languages have different ways of writing, and the internal system functions are the same? If it’s the same, where can I check the system function manuals?
When my network program wants to receive data or send data, do I need to set my own application layer transceiver buffer besides the internal transceiver buffer? When do I know that socket is readable and writable?
When I write a network program in multi process, will I have a socket shock? How to solve it? Why?
Have I implemented the HTTP protocol myself? Or PPT recite the concept to deal with the interview?
I use the third-party network library or framework, such as network, tornado, go, spool, workman, libevent… After writing chat program or regular HTTP API, do I really master the network programming? Have you mastered the theory of implementation principle or handwritten code? If I want to upgrade or add protocol function, can I handle it?
What do I know about the development of Internet of things? Will mqtt be used for communication between sensors or can we implement the protocol by ourselves?
As a coder with many years of experience, crud is still able to use tools, docker, mysql, redis, ES, LVS, MYCAT… All kinds of tools, I can check the context of low-level data transmission when they run? Can we study its implementation? Did they use socket API internally? Now that I have used it, have I mastered socket API programming?
27 crud every day, you have to operate the database, print SQL statements to move the code? A bunch of tools to watch? Do you want to configure a bunch of logs? What can I do?
If I want to design a set of communication protocol, which requires less data transmission and higher concurrency performance than HTTP protocol, what would you do? Is the amount of data transferred by HTTP too much? Why? Have you done it yourself? 、
29 network programming involves blocking, non blocking, IO multiplexing, timing, signal, asynchronous, synchronous, multi process, service process, event processing mode, concurrent mode and other knowledge. Do you master it? Is it theory or practice?
30 others……….
No matter what language you use, you need to roll up the API interface or call the API interface every day, and put the code on the Linux server to run. If you are not satisfied with the crud of the framework and want to further master and deepen your ability, you should learn about multi process programming and network programming. After all, you use mysql, redis, docker and es, Framework, all kinds of project applications, including cluster, distributed, load balancing, database services, etc., are inseparable from socket programming. When you can master and implement them by yourself, you will have a deeper understanding and problem-solving ability by looking at their encapsulated framework, library and application.

After all, you talk about clustering, distributed, database master-slave, clustering and load balancing every day,… But the low level of these things still depends on network programming, without socket API, all kinds of databases, all kinds of network frameworks, all kinds of applications can not be completed, if you are not satisfied with just using, will blow water, but also put the above knowledge into your own hands. You’re really getting started with programming.

Let’s leave a link here for those who want to improve themselveshttps://edu.51cto.com/sd/75a3d