C-Programm ohne main(): So funktioniert der Linux-Start

Writing a (valid) C program without main()

C-Programm ohne main(): So funktioniert der Linux-Start

Dieses Tutorial führt Schritt für Schritt durch die C-Compilierungskette: Präprozessor, Compiler, Assembler und Linker. Es beginnt mit einem normalen Hello-World-Programm und zeigt, wie Makros expandiert und Assembly erzeugt wird. Am Ende entsteht ein lauffähiges Binary ohne main()-Funktion – der wahre Einstiegspunkt ist _start, und die C-Laufzeit ist nur ein optionaler Helfer. Mit rohen Syscalls und ohne glibc spricht das Programm direkt den Linux-Kernel an. Ein praktischer Einblick in die Funktionsweise von Linux-Executables.

main() ist eine Bequemlichkeit, keine Anforderung – der echte Einstiegspunkt ist _start, und die Standard-C-Laufzeit ist der Code, der main() aufruft.

Mehr von diesem Tag

2026-07-25