https://levelup.gitconnected.com/unix-internal-concepts-that-every-developer-should-know-374c3fb78b2e