Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Can i tell if my computer is 32 bits or 64 bits?
It looks like the below result says that it is 32 b, but i installed Ubuntu x86_64 version. It seems to work fine. will there be any problem for doing so?
Code:
$ uname -a
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Pentium(R) D CPU 2.80GHz
stepping : 4
cpu MHz : 2793.036
cache size : 1024 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc up pebs bts pni dtes64 monitor ds_cpl cid cx16 xtpr
bogomips : 5586.07
clflush size : 64
cache_alignment : 128
address sizes : 36 bits physical, 48 bits virtual
power management:
uname -i should tell you the hardware platform. But, first and foremost, you cannot run 64-bit stuff on a 32-bit system. Thus, you have a 64-bit system.
By the by, that doesn't look like any uname -a output I've ever seen. Looks more like cat /proc/cpuinfo
Yes. The output you quoted shows your CPU is 64 bit.
Quote:
i installed Ubuntu x86_64 version. It seems to work fine.
That is an even more certain way to know your CPU is 64 bit.
Quote:
$ uname -a
processor : 0
I think you messed up your copy/paste. You showed us the uname -a command but not its output and you showed us the contents of /proc/cpuinfo. I assume you intended to show both.
Quote:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc up pebs bts pni dtes64 monitor ds_cpl cid cx16 xtpr
That line tells you it is 64 bit. Notice the lm (meaning "long mode") that I highlighted.
Quote:
address sizes : 36 bits physical, 48 bits virtual
That line also tells you your cpu is 64 bit.
All 32 bit x86 cpu's have 32 bit virtual addressing. All current x86-64 cpus have 48 bit virtual addressing. Future 64 bit cpus are expected to have more than 48 bit addressing.
The physical address size is more varied by CPU model. A 32 bit cpu could have 36 bit physical addresses. Apparently a 64 bit cpu also can have 36 bit physical addresses (I think typical 64 bit cpus have 38 or more bits physical address).
uname -i should tell you the hardware platform. But, first and foremost, you cannot run 64-bit stuff on a 32-bit system. Thus, you have a 64-bit system.
By the by, that doesn't look like any uname -a output I've ever seen. Looks more like cat /proc/cpuinfo
Stated perfectly, if the installer and OS runs it's 64 bit. It's impossible to run 64bit code on a 32bit platform, though you can always (well 99.9%) run 32bit on 64bit due how they created the cpu's. In reality they could make the cpu 64bit only but I don't think that's going to come for a while yet.
Intel made some goofy motherboards for a while. The CPU was 64bit but the memory controller was only 32bit. Which meant that you could run a 64bit OS but you were stuck with the 32bit memory limit(roughly 3.2 GB). I am GUESSING that is what the "address sizes : 36 bits physical" may be hinting at. All of which means that you are fine unless you need to upgrade your memory beyond 3.2GB and even then I may be wrong in my interpretation of the 36bit stuff.
Intel made some goofy motherboards for a while. The CPU was 64bit but the memory controller was only 32bit. Which meant that you could run a 64bit OS but you were stuck with the 32bit memory limit(roughly 3.2 GB). I am GUESSING that is what the "address sizes : 36 bits physical" may be hinting at. All of which means that you are fine unless you need to upgrade your memory beyond 3.2GB and even then I may be wrong in my interpretation of the 36bit stuff.
No, I think the 36 bits physical is correct...
Code:
cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 12
model name : AMD Athlon(tm) 64 Processor 2800+
stepping : 0
cpu MHz : 2204.991
cache size : 512 KB
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow up rep_good
bogomips : 4409.98
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp
I think Intel does there 64bit extentions different than AMD. If you want to get technical neither are pure 64 bit as they run an emulation layer, but by 'definition' they are both 64 bit.
The address size is probably in refrence to the amount of RAM supported...
Code:
The EM64T chips from intel and the x86-64 chips from AMD are based on the same idea: 32 bit pricessing still works. But
weve hit the memory cap, so we need to increase the maximum amount of memory that it can support. now, if im not
mistaken, the amd chips support up to 1 terabyte of RAM (40 bit) even though it is marked as 64 bit. another thing,
though: windows has no support for the 64 bit mem architecture. with the x64 releases, xp has upped its upper memory limit
to 64 bits (not 40 bits) which means that this time around, windows xp supports many exabytes of memory.
I do think he can go over 3.2G of ram as that would probably be 32bit physical if I'm not mistaken.
Last edited by mushroomboy; 09-04-2009 at 11:49 AM.
"address sizes : 36 bits physical" calculates to 64GB. That probably means it's PAE compatible. But, who's to know until they install the OS?
The 36 bits refers to the address that the CPU sends to the memory controller. In an Intel design, that doesn't necessarily tell you the size of the address the memory controller receives from the CPU. The CPU might send 36 bits, but the memory controller might only listen to 32 bits (giving you the three point something GB limit of physical ram).
All the x86_64 CPUs are compatible with 32 bit PAE. A 36 bit physical address probably means they haven't change the interface between the CPU and memory controller that was used for earlier 32 bit chips. But other x86-64 chips with more physical address bits are still compatible with 32 bit PAE. You just don't get to use the extra bits (beyond 36) when the OS is 32 bit PAE.
Quote:
Originally Posted by mushroomboy
If you want to get technical neither are pure 64 bit
You can define "pure 64 bit" to make that statement true or false. Either way, it isn't a particularly meaningful statement.
Quote:
as they run an emulation layer
That is more fundamentally false (though one can always distort the meaning of words far enough to make such statements true).
Almost all the posts near the top of that thread are nonsense as clearly explained by some one the later posts.
Quote:
with the x64 releases, xp has upped its upper memory limit
to 64 bits (not 40 bits)
That is also pretty solidly false.
I'm not certain of the xp64 memory limit in x86-64 architecture. I think it is less than the limit in x86-64 architecture itself (which is less than 64 bit). But it certainly is not more than the architecture limit.
1 Lakeport chipsets lacks support for remapping memory; the size of addressable memory space may be less than 4 GB, regardless whether the processor operates in 64-bit mode.
* Larger physical address space: Current implementations of the AMD64 architecture can address up to 1 TB (2^40 or 1,099,511,627,776 bytes) of RAM; the architecture permits extending this to 4 PB (2^52 or 4,503,599,627,370,496 bytes) in the future (limited by the page table entry format). In legacy mode, Physical Address Extension (PAE) is included, as it is on most current 32-bit x86 processors, allowing access to a maximum of 64 GB (2^36 or 68,719,476,736 bytes).
I don't know if the math is correct or not, but I'm guessing that's where the 40 and 36 play into effect.
The 36-bit relates to PSE36. PSE36 is similar or PAE, but the memory pages for PSE36 assignment is 4 KiB for the first 4 GiB of RAM and using memory above 4 GiB uses 8 KiB pages. It is nothing do with the processor if it can execute 64-bit instructions.
The utility dmidecode is not good as lshw of telling what hardware you have and its capabilities. I suggest lshw because it is thoroughly when looking up data about your computer.
That seems reasonable, as PAE can probably address the same amount of RAM which then you really can't just assume it's 64bit because of how much ram it uses. =S
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.