0

I am using windows 10, I have an intel i5 processor.

I ran the following commands:

>>> import platform as p
>>> p.machine()
'AMD64'
>>> p.processor()
'Intel64 Family 6 Model 158 Stepping 10, GenuineIntel'

Now, with whatever little knowledge I have and reading the platform library docs, I think p.machine() shouldn't have returned AMD64, I am positive that I don't have an AMD CPU.

So what's going on here?

What exactly is platform.machine()? (Docs don't really provide a lot of info on this)

Thanks in advance! :)


Edit: > Updated the question to make it clearer and removed the i586 reference as per Gannon's comment

kuro
  • 5
  • 4
  • 3
    `AMD64` is an architectur also used by Intel. – Klaus D. Oct 28 '21 at 08:43
  • Also `p.machine` specifically look for the `PROCESSOR_ARCHITEW6432` and `PROCESSOR_ARCHITECTURE` [environment variables](https://github.com/python/cpython/blob/3.10/Lib/platform.py#L716) values in Windows. – Abdul Niyas P M Oct 28 '21 at 08:45
  • Ooh thanks a lot, KlausD and Abdul, that helps! – kuro Oct 28 '21 at 08:49
  • i586 is Intel Pentium that came out in 1993. I don't think you have a 32 bits architecture. I also don't think you can run Windows 10 on that, but never know :-) AMD64 (x86-64) stands for AMD 64-bits used by AMD, but some Intel 64-bits also work on that architecture – Gannon Oct 28 '21 at 08:51
  • A follow-up question would be, "architecture" is basically how data moves inside the processor right? So can I assume that inside my `Intel i5` CPU, data moves as per the design/architecture of an `AMD64` CPU? – kuro Oct 28 '21 at 08:55
  • @Gannon Not "some", basically all consumer 64-bit CPUs from Intel are AMD64 after their own 64-bit architecture wasn't a success more than a decade ago. – Klaus D. Oct 28 '21 at 09:09
  • @KlausD., to make it really basic and restricting to consumer grade products, Intel didn't really have it's own 64-bit architecture. Intel's EM64T was their own implementation of AMD64, later re-branded to Intel 64. And I will not mention discontinued Itanium :-) ... just a matter of scope. – Gannon Oct 28 '21 at 10:07
  • I'd guess that running `p.machine(); p.processor()` you get [the same info](https://superuser.com/questions/305901/) as `os.environ ['PROCESSOR_ARCHITECTURE']; os.environ ['PROCESSOR_IDENTIFIER']`, respectively… – JosefZ Oct 28 '21 at 17:24
  • Does this answer your question? [The most correct way to refer to 32-bit and 64-bit versions of programs for x86-related CPUs?](https://stackoverflow.com/questions/53364320/the-most-correct-way-to-refer-to-32-bit-and-64-bit-versions-of-programs-for-x86) – Peter Cordes Apr 24 '22 at 06:58

0 Answers0