Summary
In this chapter, the author tried to provide a not-so-comprehensive overview of the application startup processes on both Linux and Windows. The insights that were provided into the initial stages of execution, including the critical steps before reaching the main()
function, weren’t as complete as the platforms themselves require, but then this book would have been called something else since this is a huge and very niche topic that doesn’t attract a broad range of programmers.
By exploring ELF on Linux, understanding the execve()
system call, and examining the _start()
function, you gained valuable knowledge about the underlying architecture and initialization routines. Similarly, the discussion on Windows highlighted the startup sequence for both console-based and GUI applications, emphasizing the role of the various sections and how they come together to start that pesky program of yours, especially if it’s not working.
By leaving a window of...