Why is ELF so complicated? The Linux kernel only uses a very small part of the ELF header to read a file into memory. ld.so only uses a little bit more.
I guess this raises an even bigger question: why are modern executable formats so complicated? MacOS' Mach-O is at least as complicated as ELF. I haven't really looked at PE headers, but I did look at COFF headers back in the day, and they kind of made sense.
The famous ELF spec really doesn't do much to clear up sheaders vs pheaders and all the fields of a pheader.
I guess this raises an even bigger question: why are modern executable formats so complicated? MacOS' Mach-O is at least as complicated as ELF. I haven't really looked at PE headers, but I did look at COFF headers back in the day, and they kind of made sense.
The famous ELF spec really doesn't do much to clear up sheaders vs pheaders and all the fields of a pheader.