On 22/06/13 20:08, rickman wrote:
> On 6/22/2013 12:26 PM, Eric Wallin wrote:
>> I find it exceeding odd that the PC industry is still using x86
>> _anything_ at this point. Apple showed us you can just dump your
>> processor and switch horses in midstream pretty much whenever you feel
>> like it (68k => PowerPC => x86) and not torch your product line /
>> lose your customer base. I suppose having Intel and MS go belly up
>> overnight is beyond the pale and at the root of why we can't have nice
>> things. I remember buying my first 286, imagining of all the
>> wonderful projects it would enable, and then finding out what complete
>> dogs the processor and OS were - it was quite disillusioning for the
>> big boys to sell me a lump of shit like that (and for a lot more than
>> 3 farthings).
>
> You know why the x86 is still in use. It is not really that bad in
> relation to the other architectures when measured objectively. It may
> not be the best, but there is a large investment, mostly by Intel.
The x86 was already considered an old-fashioned architecture the day it
was first released. It was picked for the IBM PC (against the opinion
of all the technical people, who wanted the 68000) because some PHB
decided that the PC was a marketing experiment of no more than a 1000 or
so units, so the processor didn't matter and they could pick the cheaper
x86 chip.
Modern x86 chips are fantastic pieces of engineering - but they are
fantastic implementations of a terrible original design. They are the
world's best example that given enough money and clever people, you
/can/ polish a turd.
> if
> Intel doesn't change why would anyone else? But that is being eroded by
> the ARM processors in the handheld market. We'll see if Intel can
> continue to adapt the x86 to low power and maintain a low cost.
>
> I don't think MS is propping up the x86. They offer a version of
> Windows for the ARM don't they? As you say, there is a bit of processor
> specific code but the vast bulk of it is just a matter of saying ARMxyz
> rather than X86xyz. Developers are another matter. Not many want to
> support yet another target, period. If the market opens up for Windows
> on ARM devices then that can change. In the mean time it will be
> business as usual for desktop computing.
>
MS props up the x86 - of that there is no doubt. MS doesn't really care
if the chips are made by Intel, AMD, or any of the other x86
manufacturers that have come and gone.
MS tried to make Windows independent of the processor architecture when
they first made Windows NT. That original ran on x86, MIPS, PPC and
Alpha. But they charged MIPS, PPC and Alpha for the privilege - and
when they couldn't afford the high costs to MS, they stopped paying and
MS stopped making these Windows ports. MS did virtually nothing to
promote these ports of Windows, and almost nothing to encourage any
other developers to target them. They just took the cash from the
processor manufacturers, and used it to split the workstation market
(which was dominated by Unix on non-x86 processors) and discourage Unix.
I don't think MS particularly cares about x86 in any way - they just
care that you run /their/ software. Pushing x86 above ever other
architecture just makes things easier and cheaper for them.
Part of the problem is that there is a non-negligible proportion of
Windows (and many third-party programs) design and code that /is/
x86-specific, and it is not separated into portability layers because it
was never designed for portability - so porting is a lot more work than
just a re-compile. It is even more work if you want to make the code
run fast - there is a lot of "manual optimisation" in key windows code
that is fine-tuned to the x86. For example, sometimes 8-bit variables
will be used because they are the fastest choice on old x86 processors
and modern x86 cpus handle them fine - but 32-bit RISC processors will
need extra masking and extending instructions to use them. To be fair
on MS, such code was written long before int_fast8_t and friends came
into use.
However, it is a lot better these days than it used to be - the
processor-specific code is much less as more code is in higher level
languages, and in particular, little of the old assembly code remained.
It is also easier on the third-party side, as steadily more developers
are making cross-platform code for Windows, MacOS and Linux - such code
is far easier to port to other processors.
As for Windows on the ARM, it is widely considered to be a bad joke. It
exists to try and take some of the ARM tablet market, but is basically a
con - it is a poor substitute for Android or iOS as a pad system, and
like other pads, it is a poor substitute for a "real" PC for content
creation rather than just viewing. People buy it thinking they can run
Windows programs on their new pad (they can't), or that they can use it
for MS Office applications (they can't - it's a cut-down version that
has less features than Polaris office on Android, and you can't do
sensible work on a pad anyway).
If ARM takes off as a replacement for x86, it will not be due to MS - it
will be due to Linux. The first "target" is the server world - software
running on Linux servers is already highly portable across processors.
For most of the software, you have the source code and you just
re-compile (by "you", I mean usually Red Hat, Suse, or other distro).
Proprietary Linux server apps are also usually equally portable - if
Oracle sees a market for their software on ARM Linux servers, they'll do
the re-compile quickly and easily.
/Real/ Windows for ARM, if we ever see it, will therefore come first to
servers.