2013-05-23 4 views
1

Я читаю несколько устаревшую (хотя и довольно неплохую) «среду программирования Unix» Кернигана и Пайка. На странице 46, в описании программы «файл», которая догадывается о типе файла файла, авторы утверждают, что исполняемые файлы отмечены восьмеричным битом «410» в их начале, то есть вызов od в программе даст, который восьмеричное значение обозначает начало программы в ubuntu/why?

000000 000410 .....etc 
.... etc 

.

Однако, когда я вызываю od в исполняемых файлах в моей современной установке, они не начинаются с 000410. Они все же, похоже, начинаются со следующей строки байтов (I od'd две программы C и программа haskell)

0000000 042577 043114 000402 000001 000000 000000 000000 000000 
0000020 000002 000076 000001 .... 

после этого файлы отличаются.

Мне было интересно, действительно ли я нашел последовательность байтов, которая действует как «это исполняемый» байт в ubuntu, и почему сегодняшние соглашения о байт-старт-thingie отличаются.

Спасибо

ответ

1

Ваша книга описывает COFF исполняемые файлы. В настоящее время большинство дистрибутивов Linux используют файлы ELF.

Смежные вопросы