What is different about ELF kernels?
The biggest change is the new support for ELF user programs on the Intel architecture. The kernel exec code has been reorganized somewhat; we broke out support for different executable file formats into separate files, and added new common code for loading segments. The exec code was designed from the beginning to handle complex formats like ELF, so the transition was not particularly arduous; and in any event, our PowerPC port of BSD/OS 2.1 included ELF support in the kernel, which was easy to port to 3.x and the Intel architecture. We now configure both ELF and a.out support into every system. The system also generates exclusively ELF format core files. The executable file format now controls the location of the user stack; ELF, a.out and COFF programs all use different initial stack locations. Apart from the ELF support for user programs, there isn’t that much of a difference. ELF format kernels required an upgrade to the /boot standalone utility to boot them. The /boot utility supp