2

I know this question has been asked a number of times, but my system seems to contradict itself…

Following the answer to this question, I have run the following:

$ uname -a
Linux manaha 3.13.7-x86_64-linode38 #1 SMP Tue Mar 25 12:59:48 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
$ file /sbin/init
/sbin/init: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xc0d86a25a7abb14cad4a65a1f7d03605bcbd41f6, stripped

So, while uname seems to suggest 64-bit, /sbin/init suggests 32-bit. What's happening here?

forquare
  • 123

2 Answers2

2

In computing, the Executable and Linkable Format (ELF) is a common standard file format for executables, object code, shared libraries, and core dumps. In your question /sbin/init: ELF 32-bit LSB shared object identifies ELF as the format for a 32-bit shared object from a shared library. Your operating system is a 64-bit OS that has a 32-bit shared object somewhere in it. There is no contradiction in this.

karel
  • 122,292
  • 133
  • 301
  • 332
0

While the uname command tells you something about your system, the file command tells you something about a file. So the file command says "init" is a 32-bit file and the uname command says you have a 64-bit computer. I hope this helps.
Please point out any mistakes I made as fast as possible, just in case it causes any harm.
PS did you read the other answers to the post you're linking to? This answer seems a really easy way to find out your architecture: https://askubuntu.com/a/65731/271517