Отличается в зависимости от операционной системы, если вы имеете в виду один файл, который является фактически работающим ядром, что, конечно, мало что делает без помощи многих, многих файлов.
Настоящая операционная система DOS была размещена в двух скрытых файлах в корне загрузочного тома или дискеты, IO.SYS и MSDOS.SYS (или IBMBIO.SYS и IBMDOS.SYS на PC-DOS). Я не думаю, что у них есть заголовок или что-то еще, то есть загрузчик загружает файлы, а затем переходит на первое место, куда он их загрузил.
ntoskrnl.exe и его друзья, такие как ntkrnlpa.exe имеют формат Windows PE, поэтому они выглядят как стандартный исполняемый файл. Существуют разные типы .exe -файлов, и я считаю, что это будет исполняемый файл в "основном режиме", который не будет работать, пока вы находитесь в сеансе Win32, как в 99% случаев, когда вы работаете в Windows. Полная ОС Windows и API, как правило, представляют собой общеизвестную коллекцию.DLL (ntdll.dll и другие), тем не менее, поэтому ntoskrnl.exe вряд ли выполняет большую часть работы по запуску системы самостоятельно.
Linux, как правило, представляет собой отдельный двоичный образ под названием vmlinuz или аналогичный. Обычно у вас также есть initrd который является файловой системой, которая есть у ядра во время загрузки, но это не обязательно. Я не уверен в его формате, но это не исполняемый файл. Загрузчик предназначен для перехода к началу этого образа непосредственно после загрузки его в память.