Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
X64 Deep Dive (codemachine.com)
81 points by ingve on April 17, 2016 | hide | past | favorite | 16 comments


Note that this is Windows and visual studio specific. Things are a bit different on Linux.


Yeah, that becomes apparent pretty early on. Annoyingly, the author refers to "the" compiler and sort of assumes the entire world is on Windows. This turns what would otherwise be a useful but incomplete reference into something more or less useless outside of people who never leave a Microsoft platform.


Well I disagree that it's useless!

If you start from their home page it does make it a bit clearer that this is going to be Windows-specific.


I have to say I run into the OS assumption quite a lot. I'm on OS X, so I tend to notice it when it's assumed Linux or assumed Windows. For me they happen roughly equally, but that is skewed by the kinds of apps I look for.


This site needs some css: http://bettermotherfuckingwebsite.com

The x in x64 is a small one, also x86-64 is preferable.


I've noticed that windows and microsoft developers tend to call it x64, while unix-like developers (linux, OS X, BSDs, etc) call it x86_64.

Does anyone have any idea why this is?

My personal theory is that mainstream Windows only runs on x86 (not counting early NT kernels, or Windows RT), so when they ported their OS to work on Intel and AMD's 64-bit cpu, that was the only 64-bit cpu that their OS could run on, so they called it x64. Unix like systems supported many other 64-bit architectures, so it was necessary for them to distinguish between the 64-bit extension to the x86 architecture (x86_64) and other 64-bit architectures they supported.

This is just a theory though, so if anyone has any concrete reasons for this difference in terminology, I'd love to hear it.


Microsoft first ported NT to IA-64 (Intel Itanium) and called it IA64. Next 64-bit port was AMD's x86-64 which they called x64. At the time AMD called it AMD64 and Intel started to call it Intel64. The terminology really didn't stabilized at the time to "x86_64".


Actually EM64T was used by Intel in the early days.


That's what I thought it was called when I looked it up to see if x64 was same thing. Typed in EM64T to get three or so more haha.


The PROCESSOR_ARCHITECTURE environment variable on x64 builds of Windows has always been "AMD64", however.


This is the most likely reason but I see them labelled as amd64 most of the time. x64 is just s shorthand because people were so used to saying x86 for so long.


https://en.wikipedia.org/wiki/X86-64

    The BSD family of OSs and several Linux distributions use AMD64,
    and so does Microsoft Windows internally.


Windows ran on DEC Alpha, which was 64-bit (even though Windows wasn't).

x64 is just shorter and it's unambiguous, so it should be preferred.


The site has some CSS:

http://www.codemachine.com/style.css

The styling may not be to your liking but saying "the site needs some CSS" is not constructive.


Preferable to whom? And why? x64 is more succinct. And there's only one version of it, unlike x86-64 vs. x86_64.


This is the NSA. They don't do CSS




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: