Was bedeutet "LSB", wenn in der Ausgabe von / bin / file auf ausführbare Dateien verwiesen wird?

23

Ich habe in der Ausgabe des Befehls unter Linux den Begriff " LSB- ausführbar" oder " LSB- gemeinsam genutztes Objekt" gefundenfile . Beispielsweise:

$ 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

Was bedeutet "LSB" in diesem Zusammenhang?

yoyo_fun
quelle

Antworten:

43

"LSB" steht hier für "niederwertigstes Byte" (first) im Gegensatz zu "MSB", "höchstwertiges Byte". Dies bedeutet, dass die Binärdatei Little-Endian ist.

file ermittelt dies aus dem sechsten Byte des ELF-Headers .

Stephen Kitt
quelle
Die andere Antwort ergab etwas völlig anderes ... Linux Standard Base .... Warum gibt es Verwirrung in Bezug auf dieses Thema? Ich denke du hast wahrscheinlich recht. Es klingt nach einer vernünftigeren Erklärung.
yoyo_fun
7
Es gibt Verwirrung, weil „LSB“ ein Akronym ist, das verschiedene Bedeutungen abdeckt. In anderen Kontexten kann dies „Linux Standard Base“ bedeuten. In fileder Ausgabe bedeutet dies jedoch "niederwertiges Byte" (wie aus dem Quellcode hervorgeht, mit dem ich verknüpft bin).
Stephen Kitt
Viele Akronyme bedeuten viele verschiedene Dinge. Meine Frage war jedoch nicht: "Was bedeutet LSB?" , aber genauer gesagt, was streng ausführbare Dateien im ELF-Format betrifft.
yoyo_fun
4
Ja genau; Ich glaube nicht, dass deine Frage unklar ist. Viele Leute hören jedoch einfach bei „LSB“ auf und antworten auf „Linux Standard Base“.
Stephen Kitt
1
Ich erwarte, dass die Verwirrung von ein paar Dingen herrührt. 1. "LSB" alleine zu schreiben, um anzuzeigen, dass Little Endian ziemlich ungewöhnlich ist. 2. Die Linux-Standards basieren auf modernen Linux-Systemen. 3. Die meisten Linux-Benutzer haben wahrscheinlich noch nie ein Big-Endian-Linux-System verwendet.
Plugwash