31

I have found the term "LSB executable" or "LSB shared object" in the output of the file command in Linux. For example:

$ 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

What does "LSB" mean in this context?

0

1 Answer 1

53

“LSB” here stands for “least-significant byte” (first), as opposed to “MSB”, “most-significant byte”. It means that the binary is little-endian.

file determines this from the sixth byte of the ELF header.

6
  • 1
    The other answer stated something completely different... Linux Standard Base.... Why is there confusion regarding this subject? I think you are probably right. It sounds like a more reasonable explanation.
    – yoyo_fun
    Sep 20, 2017 at 11:28
  • 7
    There is confusion because “LSB” is an acronym covering different meanings. It can mean “Linux Standard Base” in other contexts; however in file’s output it means “least-significant byte” (as evidenced by the source code I linked to). Sep 20, 2017 at 11:29
  • Many acronyms mean many different things. However my question was not: "What does LSB mean?" , but a more specific one regarding strictly executable files in ELF format.
    – yoyo_fun
    Sep 20, 2017 at 11:31
  • 4
    Yes, exactly; I don’t think your question is unclear. However many people will just stop at “LSB” and reply “Linux Standard Base”. Sep 20, 2017 at 11:32
  • 1
    I expect the confusion stems from a few things. 1. Writing "LSB" on it's own to indicate little endian is pretty unusual. 2. The Linux standards base standardised quite a bit about modern linux systems. 3. Most Linux users have probabblly never used a big-endian Linux system.
    – plugwash
    Sep 20, 2017 at 17:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .