Что означает «LSB» при обращении к исполняемым файлам в выводе / bin / file?

23

Я нашел термин « исполняемый файл LSB » или « общий объект LSB » в выводе fileкоманды в Linux. Например:

$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=4637713da6cd9aa30d1528471c930f88a39045ff, stripped

Что означает «LSB» в этом контексте?

yoyo_fun
источник

Ответы:

43

«LSB» здесь означает «младший байт» (первый), в отличие от «MSB», «старший значащий байт». Это означает, что двоичный файл имеет порядок байтов.

file определяет это по шестому байту заголовка ELF .

Стивен Китт
источник
В другом ответе говорилось что-то совершенно другое ... Стандартная база Linux .... Почему возникает путаница в этом вопросе? Я думаю, что вы, вероятно, правы. Это звучит как более разумное объяснение.
yoyo_fun
7
Существует путаница, потому что «LSB» является аббревиатурой, охватывающей разные значения. Это может означать «Стандартная база Linux» в других контекстах; однако в fileвыходных данных это означает «младший байт» (о чем свидетельствует исходный код, с которым я связан).
Стивен Китт,
Многие аббревиатуры означают много разных вещей. Однако мой вопрос не был: «Что означает LSB?» , но более конкретный в отношении строго исполняемых файлов в формате ELF.
yoyo_fun
4
Да, точно; Я не думаю, что ваш вопрос неясен. Однако многие люди просто остановятся на «LSB» и ответят «Linux Standard Base».
Стивен Китт,
1
Я ожидаю, что путаница проистекает из нескольких вещей. 1. Написание "LSB" само по себе, чтобы указать, что little endian довольно необычно. 2. База стандартов Linux довольно много стандартизирована в отношении современных систем Linux. 3. Большинство пользователей Linux, вероятно, никогда не использовали систему Linux с прямым порядком байтов.
plugwash