Process

What is a process? It is something that is running. Started by an executable. There are multiple processes running at a time. They can communicate with each other. The kernal is also a process. The kernal can start other process. When we are starting a process, we are giving input to one process to start another process and this forks one. Process as code has an end. When the end is reached, the process stops. Some process keeps running for ever. It is wrong to think of process as a program window. I think the windowing system is one process. Then other processes talk to this Window system to change the position of what appers in the window. Process access IO theough the OS. There are many levels of abstraction for IO. They are allowed to some extent. There is something called system call which the process use to communicate with os. When it needs something from OS. It executed the system call which blocks the process. When the OS has what the process wants it put the relavant data in some place in the memory and runs the callback or something. Inter process communication is happenigng a lot I think. More than we notice. For a modern web browser the tabs are each a process. But there is one window. The tabs coordinate with the main browser process. The main browser process or soemthing else comminicates with the windowing system to draw things on screen. Some application can have only one instance, that is made possible by the starting process maybe. I have to look more into IPC. Now there is a new concept with linux called namespaces. That is how Docker works. There one process has no knowledge of the other process. Processes can be started from binary code only. Running a java or Python program is done by starting java or python executable that loads the interpretable program. Each process has stacks, heap and palce to store the code. Processes can lock files. Lock ports on the network. I better inspect the task manager to see what I can find about them more