> how the JVM for windows was developed since MS never let anyone know
> the kernel details of their OSs?
Much like any other windows application. All operating system vendors
publish the API to their operating system, otherwise no-one could
develop anything for it.
> (no problem for linux as it is opensource..)
If you need the source for the kernel to write an application, then
there is something seriously wrong with the operating system's layering
model. The purpose of an operating system is to provide services to
applications, without the applications requiring internal knowledge of
the OS's resource management systems.
> Or do MS distribute kernel apis???
Of course they do, in the "Windows SDK" or whatever they call it
now-a-days. The NT 3.51 kernel and its derivatives (all modern windows
OSes) is Posix compliant, so the kernel API (instead of the windows API
which covers all aspects of the OS) is governed by the same standard as
most commercial unixes.
There are rumoured 'secret apis' which it is claimed Microsoft uses
internally to give its applications an 'edge' over competitors, but the
only evidence I'm aware of the use of non-standard apis in MS products
is that Outlook 2000 blue-screens NT if your disk partitions are greater
than 12GB, which doesn't seem much of an advantage over mail/diary
programs that use the published apis for file system access.
Pete
Jon A. Cruz - 27 Feb 2004 16:40 GMT
> There are rumoured 'secret apis' which it is claimed Microsoft uses
> internally to give its applications an 'edge' over competitors, but the
> only evidence I'm aware of the use of non-standard apis in MS products
> is that Outlook 2000 blue-screens NT if your disk partitions are greater
> than 12GB, which doesn't seem much of an advantage over mail/diary
> programs that use the published apis for file system access.
IIRC, The wrapper for Unicode layer could have been considered one of these.
Chris Smith - 27 Feb 2004 16:45 GMT
> > Or do MS distribute kernel apis???
>
> Of course they do, in the "Windows SDK" or whatever they call it
> now-a-days.
To be technical, that would be the Win32 API. Many of those calls may
involve kernel traps that call into the kernel -- and anyone with a
rudimentary knowledge of operating system design can guess some of them
that certainly do -- but that's not part of the documented behavior of
the API. There's realloy no such thing as the "kernel API", because the
exact kernel entry points and the means of calling them (i.e.,
interrupts or gated calls or something else) are not specified. They
are, instead, implemented inside DLL files.
> The NT 3.51 kernel and its derivatives (all modern windows
> OSes) is Posix compliant, so the kernel API (instead of the windows API
> which covers all aspects of the OS) is governed by the same standard as
> most commercial unixes.
That's a bit misleading. Windows NT has in the past implemented a POSIX
compatibility environment so as to meet some backward requirements for
use in government projects... but I've never heard of anyone actually
using it; if someone did, I suspect they'd find it to be rather buggy.
It's always been there for legal reasons, and it has nothing to do with
the interface between user-level and kernel-level code -- or with real-
world software development, for that matter.
> There are rumoured 'secret apis' which it is claimed Microsoft uses
> internally to give its applications an 'edge' over competitors
And this rumor has nothing to do with POSIX or standards, but rather is
a claim that Microsoft has exposed proprietary API components that they
don't provide information about (in addition to the proprietary API
components that they do publish information about). (Like you, I think
it's silly and see no reason to put a lot of stock in it, or to care
whether it's true or not.)

Signature
www.designacourse.com
The Easiest Way to Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation