I have read from the Modern Operating systems book that when a command is run, the shell creates a child process, waits for it until the child has finished execution and then waits for another command from the user. This is indeed the case for many programs like
gedit. The terminal doesn't take commands until I have closed
gedit. However when I open atom code editor, the shell returns immediately, ready to accept the next command even with the editor running. Closing the terminal does not close atom. Does this mean that the editor opened not as a child process? What is the underlying mechanism that makes this possible?
ps au | grep atom gives
<username> 8042 0.0 0.0 15944 2264 pts/1 S+ 00:55 0:00 grep --color=auto atom