Brian <lxy at cloudnet.com> wrote:
> 
> What about applications?  I'm assuming that for the most part "porting"
> a linux app to the architecture is a matter of getting a C compiler that
> compiles 64 bit code (we assume this is done, as the kernel runs on 64
> bits) and then just running 'make' to recompile the existing code into a
> 64 bit app.  Now granted, it won't be OPTIMIZED until some later date
> but at least the app will run on the new platform.  Is this correct?

I think that's basically true, but there are a lot of apps out there that
aren't 64-bit clean.  If applications are properly written, there isn't a
problem, but I don't know how many developers have been taught how to do
that (I certainly wasn't).  Some architectures allow you to run 32-bit
code (Linux on UltraSPARC, for instance), though that might get used as a
crutch sometimes.

> On the Windows side, it seems that doing the same sort of thing is just
> too much work and they need to start over every time they move to a new
> architecture.  At least this has been in the past.  Am I correct in
> assuming that because linux is designed to be portable that its kernel,
> compiler (already done), and apps will port over quickly, whereas 
> Micro$oft will see many code re-writes to get their stuff to run?

Maybe.  Windows NT also ran on several different architectures until Win2k
came around, one of them being the 64-bit Alpha.  I've heard that a very
large amount of code is surrounded with #ifdef's to differentiate between
32-bit and 64-bit code, but that might just be a rumor.  I don't know how
long Microsoft has been working on Windows XP

> Or will their current apps speak 32 bit to the kernel and the kernel
> speaks 64 to the chip?  I'm just thinking about the edge linux will have
> come Jan when linux has the whole suite of apps, old and new, running on
> the IA-64 and Micro$oft is putting out it's late and still buggy
> versions of Whi$tler/XP/whatever.

I don't know..  I'm not sure if the Itanium can execute 32-bit code or
not.  Microsoft probably should have an emulation layer for 32-bit
applications.  If you want to go back to 16-bit, port DOSEmu or something
;-)

Like Dave said, WinNT (and OS/2) basically had an emulation layer for
16-bit apps -- if I remember correctly, you could even run 16/32-bit DOS
apps on non-x86 machines (I know that was true for the (unreleased?)
PowerPC version of OS/2).

-- 
 _  _  _  _ _  ___    _ _  _  ___ _ _  __   What the fuck is a 
/ \/ \(_)| ' // ._\  / - \(_)/ ./| ' /(__   hefalump? 
\_||_/|_||_|_\\___/  \_-_/|_|\__\|_|_\ __)                             
[ Mike Hicks | http://umn.edu/~hick0088/ | mailto:hick0088 at tc.umn.edu ]