The Endian of Windows
Rick's got a great post on what big and little endian are, and what the Apple switch has to do with Word for the Mac.
In the comments, Alicia asked about Windows...
I tried to make this a comment on his blog but the server wouldn't take it.
The answer is pretty simple: For Windows, there are parts of Windows that are endian-neutral (for instance, the CIFS protocol handlers and all of the DCE RPC protocol, etc), but the vast majority of Windows is little-endian.
A decision was made VERY long ago that Windows would not be ported to a big-endian processor. And as far as I can see, that's going to continue. Since almost all the new processors coming out are either little-endian, or swing both ways (this is true of all the RISC machines Windows has supported, for example), this isn't really a big deal.
Comments
Anonymous
June 07, 2005
"A decision was made VERY long ago that Windows would not be ported to a big-endian processor. And as far as I can see, that's going to continue."
What about NT (up to version 4) and the XBOX 360 OS which runs on PPC-based CPUs? Did the PPC NT supported and the one in the XBOX 360 have a little endian mode?
There's also CE's support for PPC up to version 3 IIRC, but I'm mainly interested in the desktop and XBOX 360 OSes.
Thanks.Anonymous
June 07, 2005
I can't speak for xbox 360, but the PPC is one of those "swings both ways" CPUs - you can set it to be either little endian or big endian. We just set it to be little endian.
The same was true for Alpha and MIPS.Anonymous
June 07, 2005
I can understand why DOS/Win95/98/ME wouldn't be ported to big-endian, but why wasn't NT designed to swing both ways from the beginning? I think it would be fairly manageable to design facilities to account for the differences, although maybe I'm horribly wrong. Were they already irritated at having to create an OS from scratch and didn't want to have to worry about processor endianess as well?Anonymous
June 07, 2005
"I tried to make this a comment on his blog but the server wouldn't take it."
What's up with the MS weblogs servers being so horrible after the site redesign? Sometimes your (and others) blogs are unavailable, sometimes comments are unavailable, and the "Remember me" checkbox is just plain broken.Anonymous
June 07, 2005
Dan: As best as I can figure, there were a bunch of changes that occurred when we switched sites.
Among them were switching hosting providers - the new provider doesn't have nearly the pipes of the old provider.
There have also been a bunch of bugs in community server that we exposed.
The good news is that it IS getting better, and will continue to over the next couple of weeks - Betsy promises us.Anonymous
June 07, 2005
The comment has been removedAnonymous
June 07, 2005
The comment has been removedAnonymous
June 07, 2005
Wasn't the reason Virtual PC for Mac 6 didn't run on Apple G5s because the PPC970 doesn't swing both ways like the G4s did?
http://support.microsoft.com/default.aspx?scid=kb;en-us;827904.
How about the Cell processor? If that also is fixed in that way it would be a major barrier to Microsoft adopting it and if the performanc claims are to be believed could be a major workstation platform for Linux.Anonymous
June 07, 2005
In [1] it states this about the endianity of Xbox 360:
"Xenon is a big-endian system. Both the CPU and GPU process memory in big-endian mode. Games ported from little-endian systems such as the Xbox or PC need to account for this in their game asset pipeline." (at the bottom of the article - Xenon is the codename of the CPU of the Xbox 360)
Other places you can read that the OS of Xbox 360 is based on Windows XP (or similar).
My guess is that the Xbox team has their own branch of the code and have removed all parts not important for Xbox (like MS Paint, etc) in addition to fixing the code assuming little-endian to do big-endian. Since they know the hardware configuration, and part of the software available(), too they can ensure very well that it will be stable.
Wonder if someone can confirm/deny if my guesses are true, but I don't find it hard to believe that it is so :)
() They produce the SDK used during game development, which sets a baseline at least.
[1] http://forums.xbox-scene.com/index.php?showtopic=231928Anonymous
June 08, 2005
Ryan wrote:
"but why wasn't NT designed to swing both ways from the beginning?"
Could it be because Intels i860 was (like every Intel CPU?) little-endian? :-)Anonymous
June 08, 2005
In what way is CIFS endian neutral? Everything is in LSB and since there were no MSB machines with CIFS servers there could never have been any interoperability testing.
One influence of RISC processors on CIFS was the aligning of fields on word boundaries in new additions to the protocol. Oh, and Unicode was added. As was DCE/RPC over CIFS. And backwards compatibility was retained. Except where it wasn't.
So nowadays you have somewhat of a mess, some fields in Unicode even from clients who say they don't support it, varying alignment depending on how old a particular field is. And certainly no option for endianess neutrality.
That is unless there is a story you aren't telling us :-)Anonymous
June 08, 2005
The comment has been removedAnonymous
June 08, 2005
The comment has been removedAnonymous
June 08, 2005
The comment has been removedAnonymous
June 09, 2005
The comment has been removedAnonymous
May 31, 2009
PingBack from http://hammockstandsite.info/story.php?id=970Anonymous
June 13, 2009
PingBack from http://fancyporchswing.info/story.php?id=646