Have you ever wondered how linux program starts

I found this article to be quite comprehensive, There is a lot that goes behind the scene before it hits the main(), its like calm duck on lake but there is lot of wading happening under the water. I personally learned it hard way, since I was working on compiler and C libraries, so I had no other choice. This is very glibc specific, so if you are using android or musl based systems things might not match one to one but you get the idea.