SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Technology Stocks : All About Sun Microsystems -- Ignore unavailable to you. Want to Upgrade?


To: Kashish King who wrote (8304)3/12/1998 4:55:00 PM
From: LKO  Read Replies (1) | Respond to of 64865
 
I am afraid we are headed into the Nerd-zone here.
Others can tune off and skip to next :-)

> LKO, it's a lot simpler than that. You write an OS in a language
> and you expose the services provided by the OS in that language.

I do not agree with that. You can write an OS in any language (C
and assembly being common choices).

What you call "expose the services" is the ABI that ships with
the OS. What you do with is invoke the service (atleast in any
modern OS) by doing a runtime linking to it at application
startup and then the application calls them using the procedure
call format that is also part of the ABI.

The ABI definition and linking formats are what determine it.
These are traditionally not defined as part of C environment.
They are probably defined as part of Java Environment as the
Java runtime (along with byte code etc). Defining all that stuff
in a common manner ensures greater possibility of shrink wrap
exchange of software in Java ..but not in C.

(caveat Microsoft's interpretation :-))

> Most of the time that's C in which case all languages must be built
> on top of C

I get the gist of what you are saying but the statement is
strictly not accurate. Traditionally, the standard C library (and
even compiler ... though not any more in Sun's OS) had shipped
with the Unix OS. The Fortran math libraries do not but can be.
The binaries have to follow the ABI, and not be "built on top of C".

Some rambling...
Comparing to Java, the definition of what passes as C library
is defined by a standard and can be shipped by a different
vendor than the compiler but both have to agree what the
parameter are etc. Would any C program work if people
interpreted parameters to "printf" differently ? Would
any Fortran program work if people interpreted the FORMAT
command differently ? Microsoft seems to think so. They are
doing the equivalent of that by messing with the language
classes. But when creating incompatibility is the goal,
their actions make perfect sense.