CS631 -- Advanced Programming in the UNIX Environment

Program Startup Exercise: Track down how programs are started on Linux

In Week 06, we discussed how a program is started up, and we looked at the details of this process on NetBSD by inspecting the source code for the C Start Up and C Runtime libraries.

Now find the corresponding source files and snippets for Linux:

  • look for the _start routine in the glibc sources under glibc/sysdeps/x86_64/
  • find the C startup routine __libc_start_main under glibc/csu/

How similar / different is this setup compared to the one you've seen on NetBSD? Can you compare it to other open source operating systems?

[Course Website]