Re: Beep Code on 433au workstation
From: Jaap Weel (MYLASTNAME_at_caltech.edu)
Date: 05/05/03
- Next message: Mark E. Levy: "Re: FREE: LA36 printing terminal - Must pick up"
- Previous message: Bill/Carolyn Pechter: "Re: FREE: LA36 printing terminal - Must pick up"
- In reply to: gl: "Re: Beep Code on 433au workstation"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Date: Sun, 04 May 2003 16:54:58 -0700
> I think you can try to run your program on linux using compatibility libs.
> It may work, at least Netscape does.
> You can find the step-by-step procedure on www.alphalinux.org
> I hope it works but never tried... :)
I sure hope that will be all that's necessary. The program is a huge
system written almost entirely in DEC Alpha assembly. Basically what
they had was an operating system (Genera) written in Lisp that was very
closely tied to their Symbolics machines and processors. The Symbolics
processor had a microde-layer to extend its instruction set so as to
optimally accomodate running Lisp.
Basically they made a processor that had all the right instructions to
do consing, garbage collection and all that. When the company ran short
of cash, they wanted to port their system to commodity hardware.
However, one of the specific features they'd always been relying on was
a tagged memory architecture, in which it was encoded on a low-level
(a.o.) what the type of a certain word of data was (think of it as
having flag-bits to every byte of memory that say whether you're storing
a float or an int there). To do that, they had always used wide words
(36 bits originally, and I think the last models went up to 56-bits), so
that there would be bits left over in the word for all these tags and
all. (I'm grossly oversimplifying this, there is more to it than just
flags that tell the type, but it's kinda like that).
The two factors that made it possible to port Genera to alpha seem to
have been (a) the 64-bit registers, which -- with some redundancy --
could emulate the Symbolics ones, and (b) the fact that, if you loaded
all of the emulator into on-chip cache, it would basically behave like
microcode and be almost as fast as what you would get with a processor
that truly had all these extravagant instructions built in.
More info is in http://pt.withington.org/publications/VLM.html
At any rate, this may give an idea of why Genera is not Netscape. The
alpha is a little like the Symbolics processor in that different OS's on
the alpha use different "firmware", which is basically the equivalent of
microcode (grossly oversimplifying again, I guess). This makes it very
likely to me that, when programming goes on on such a basic,
assembly-language level, it may well be very OS-dependent as well as
CPU-dependent.
To write a similar emulator for a different processor, or even for a
different OS, would probably require a very in-depth knowledge of the
instruction sets and capabilities of that processor, and in the case of
Alpha/Linux, of the difference between the Alpha/Linux firmware and the
OSF/1 firmware.
- Next message: Mark E. Levy: "Re: FREE: LA36 printing terminal - Must pick up"
- Previous message: Bill/Carolyn Pechter: "Re: FREE: LA36 printing terminal - Must pick up"
- In reply to: gl: "Re: Beep Code on 433au workstation"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Relevant Pages
|