Well the title says it all. Is a main() function absolutely essential for a C program?
main()
I am asking this because I was looking at the Linux kernel code,
The main() function is called by an object file included with the libc. Since the kernel doesn't link against the libc it has its own entry point, written in assembler.