Sign up ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

When I do a cat in /proc/cpuinfo it shows a line with clflushsize : 64

Does this mean my kernel is running in 64 bits?

share|improve this question

5 Answers 5

up vote 15 down vote accepted
uname -a

will tell you the kernel - the end bit tells you the architecture.

Two examples:

My mac:

Darwin Mac.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386

My Dreamhost hosting:

Linux ecco #1 SMP Tue Oct 7 06:18:04 PDT 2008 x86_64 GNU/Linux

i386 = 32 bit

x86_64 = 64 bit

share|improve this answer
This answer is wrong. The end bit tells you the architecture exposed to the process, not the kernel architecture. See this link. – David Schwartz Aug 19 at 8:46

uname -m will give you the architecture you kernel is compiled for. If it prints i686 then your kernel is 32 bit, if x86_64 then it's 64 bit, assuming you have an Intel/AMD chip.

share|improve this answer
Could also be i386 on older 32-bit platforms (and I have even seen some packages compiled for i586 - not sure if that would ever be output by uname, though) – a_m0d Aug 26 '09 at 11:55
This answer is wrong. uname -m gives you the architecture the kernel chooses to expose to this particular process, not the kernel's native architecture. See this link. – David Schwartz Aug 19 at 8:43

I think the most precise way is

getconf LONG_BIT

here it exactly shows 64

found on this tip

getconf is from package libc-bin (on ubuntu)

share|improve this answer

If you want to see only the platform that you are running on, you can use

uname -i

The full list of supported options for uname is

$ uname --help
Usage: uname [OPTION]...
Print certain system information.  With no OPTION, same as -s.

  -a, --all                print all information, in the following order,
                             except omit -p and -i if unknown:
  -s, --kernel-name        print the kernel name
  -n, --nodename           print the network node hostname
  -r, --kernel-release     print the kernel release
  -v, --kernel-version     print the kernel version
  -m, --machine            print the machine hardware name
  -p, --processor          print the processor type or "unknown"
  -i, --hardware-platform  print the hardware platform or "unknown"
  -o, --operating-system   print the operating system
      --help     display this help and exit
      --version  output version information and exit
share|improve this answer
uname -i prints GenuineIntel, which isn't really what he's looking for. – spatz Aug 26 '09 at 11:58
and Unknown on a Mac. – Rich Bradshaw Aug 26 '09 at 12:07
prints i386 on my machine! – a_m0d Aug 27 '09 at 1:46

CLFLUSHSIZE doesn't tell you anything about the processor's operating mode. According to this answer, it refers to the smallest flushable unit of cache. In your case, cache lines are read/written in units of 64 bytes.

uname output varies too much to be useful, as a glance at Wikipedia's table of examples shows. The most reliable method is getconf LONG_BIT as show in Aquarius Power's answer. This works regardless of processor architecture, so is just at home on ARM, Power, or MIPS as on x86.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.