public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* Native Windows NT POSIX capabilities
@ 2001-03-30 16:44 Hyperion
  2001-03-30 16:59 ` Robert Collins
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Hyperion @ 2001-03-30 16:44 UTC (permalink / raw)
  To: cygwin

As some of you already know (well, I guess), Windows NT has native
(incomplete) POSIX support. This is true since the obsolete Windows NT
3, but only in Windows NT 5, with the improvements to the file system,
the POSIX support makes sense (still incomplete, but functional). They
even released a package named Interix, it's the equivalent of Cygwin
(shells, complilers, perl, even a X server) but runs directly on the
POSIX API, instead of emulating it with the Win32 API. Obviously it
doesn't support any Windows NT below 5.

My question is: has anyone tried to build a GNU util linking against
crtdll (Microsoft C Runtime) and psxdll (POSIX API)? is it difficult or
just a trivial joke? Is it possible, at the present time, to build a
cross-compiler that works with the native POSIX API implementation of
Windows NT? I'd love to handle this myself, but I know zip about
compilers and I'm no C programmer (hint: my programs always begin with
"program" and end with "end." ;), and I'm afraid the porting wouldn't be
that easy. If this had been discussed before, I'll just quit asking.

Anyway the advatages would be a better file system support
(case-sensitive filenames, filenames not supported by Win32, native path
remapping, etc) and really improved performance. It would have a limited
target (Windows 2000 or better), but it would piss off Microsoft too ;)
And it would be a great way to push Cygwin as a commercial product. The
only thing that pisses me off is the moronic implementation of Berkeley
sockets :( (darn WSAStartup()!)

FYI, here are the functions exported by psxdll.dll:
(is something missing?)

access
alarm
cfgetispeed
cfgetospeed
cfsetispeed
cfsetospeed
chdir
chmod
chown
close
closedir
creat
ctermid
cuserid
dup
dup2
execl
execle
execlp
execv
execve
execvp
_exit
fcntl
fileno
fork
fpathconf
fstat
ftruncate
getcwd
getegid
getenv
geteuid
getgid
getgrgid
getgrnam
getgroups
getlogin
getpgrp
getpid
getppid
GetProcessHeap
getpwnam
getpwuid
getreg
getuid
HeapAlloc
HeapFree
HeapReAlloc
HeapSize
isatty
isatty2
kill
link
lseek
mkdir
mkfifo
open
opendir
pathconf
pause
__PdxGetCmdLine
__PdxInitializeData
pipe
raise
read
readdir
remove
rename
rewinddir
rmdir
RtlAnsiCharToUnicodeChar
RtlFillMemory
RtlMoveMemory
RtlMultiByteToUnicodeN
RtlUnicodeToMultiByteN
RtlUnicodeToMultiByteSize
RtlUnwind
RtlUpcaseUnicodeChar
RtlUpcaseUnicodeToMultiByteN
RtlZeroMemory
setgid
setpgid
setsid
setuid
sigaction
sigaddset
sigdelset
sigemptyset
sigfillset
sigismember
_sigjmp_store_mask
siglongjmp
signal
sigpending
sigprocmask
sigsuspend
sleep
stat
sysconf
system
tcdrain
tcflow
tcflush
tcgetattr
tcgetpgrp
tcsendbreak
tcsetattr
tcsetpgrp
time
times
ttyname
umask
uname
unlink
utime
wait
waitpid
write



--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Native Windows NT POSIX capabilities
  2001-03-30 16:44 Native Windows NT POSIX capabilities Hyperion
@ 2001-03-30 16:59 ` Robert Collins
  2001-03-30 23:36 ` Vladimir G Ivanovic
  2001-03-31  9:11 ` Mumit Khan
  2 siblings, 0 replies; 6+ messages in thread
From: Robert Collins @ 2001-03-30 16:59 UTC (permalink / raw)
  To: Hyperion, cygwin

----- Original Message -----
From: "Hyperion" <noog@libero.it>
To: <cygwin@sources.redhat.com>
Sent: Saturday, March 31, 2001 10:36 AM
Subject: Native Windows NT POSIX capabilities


> As some of you already know (well, I guess), Windows NT has native
> (incomplete) POSIX support. This is true since the obsolete Windows NT
> 3, but only in Windows NT 5, with the improvements to the file system,
> the POSIX support makes sense (still incomplete, but functional). They
> even released a package named Interix, it's the equivalent of Cygwin
> (shells, complilers, perl, even a X server) but runs directly on the
> POSIX API, instead of emulating it with the Win32 API. Obviously it
> doesn't support any Windows NT below 5.

And INTERIX was licenced under the GPL at one pointin time - if you look
around the source is available.

> My question is: has anyone tried to build a GNU util linking against
> crtdll (Microsoft C Runtime) and psxdll (POSIX API)? is it difficult
or
> just a trivial joke? Is it possible, at the present time, to build a
> cross-compiler that works with the native POSIX API implementation of
> Windows NT? I'd love to handle this myself, but I know zip about
> compilers and I'm no C programmer (hint: my programs always begin with
> "program" and end with "end." ;), and I'm afraid the porting wouldn't
be
> that easy. If this had been discussed before, I'll just quit asking.

I don't think this particular case has been discussed, but the posix
subsystem vs cygwin has been. I couldn't find anything in a quick look
at the user guide or FAQ..

The core reason is that a) the NT POSIX subsystem is woefully
incomplete. And b) not everyone has or desires Windows NT (in any
incarnation) and c) interoperating the posix subsystem with the Win32
subsytem isn't as transparent as "simply" running POSIX applications
within the win32 subsystem.

> Anyway the advatages would be a better file system support
> (case-sensitive filenames
cygwin has that.
> , filenames not supported by Win32,
There's only a half dozen that cause problems: aux, lpt1 and the like.
>native path remapping, etc) and really improved performance. It would
have a limited
> target (Windows 2000 or better), but it would piss off Microsoft too
;)
> And it would be a great way to push Cygwin as a commercial product.
The
> only thing that pisses me off is the moronic implementation of
Berkeley
> sockets :( (darn WSAStartup()!)
>
> FYI, here are the functions exported by psxdll.dll:
> (is something missing?)
>

In a word yes. compare the list with
http://www.cygwin.com/faq/faq.html#SEC20

From the top of my head, pthread (_POSIX_THREADS) functions are
completely absent, as are semaphore, and memory management.

Rob
>
>
>
> --
> Want to unsubscribe from this list?
> Check out: http://cygwin.com/ml/#unsubscribe-simple
>
>


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Native Windows NT POSIX capabilities
  2001-03-30 16:44 Native Windows NT POSIX capabilities Hyperion
  2001-03-30 16:59 ` Robert Collins
@ 2001-03-30 23:36 ` Vladimir G Ivanovic
  2001-03-31  9:02   ` Mumit Khan
  2001-04-02 22:21   ` Vladimir G Ivanovic
  2001-03-31  9:11 ` Mumit Khan
  2 siblings, 2 replies; 6+ messages in thread
From: Vladimir G Ivanovic @ 2001-03-30 23:36 UTC (permalink / raw)
  To: Hyperion; +Cc: cygwin

Just to clear up some misconceptions. Microsoft entered into an
agreement with Softway Systems for them to build a Real POSIX (tm) layer
on top of the NT kernel. It worked with WinNT 4, and I know that because
I still have a copy (although it's not installed; cygwin is.)

The goal for Interix's POSIX layer was to run Linux applications, so it
was to be a complete POSIX implementation. Modulo bugs, I believe they
achieved their goal. I don't know what the relationship is between
Win2K's POSIX layer and Interix's.

AFAIK, the full source for Interix was never available, but since they
used lots of Open Source products in their product, the sources for
those were available. I could be mistaken about the Interix (not GNU,
etc.) sources, and if someone posts a URL, then we can all download it.

Softway Systems didn't appear to be doing so well, and then Microsoft
bought them out. See http://www.microsoft.com/windows2000/interix for
more info. (BTW, Interix 2.2 is the same release that Softway put out
several years ago. Microsoft hasn't made much progress since.) It seems
that the IRS is an Interix customer...

--- Vladimir

Vladimir G. Ivanovic                    http://www.leonora.org/~vladimir
2770 Cowper St.                                         vladimir@acm.org
Palo Alto, CA 94306-2447                                 +1 650 678 8014

"H" == Hyperion  <noog@libero.it> writes:

  H> As some of you already know (well, I guess), Windows NT has native
  H> (incomplete) POSIX support. This is true since the obsolete Windows
  H> NT 3, but only in Windows NT 5, with the improvements to the file
  H> system, the POSIX support makes sense (still incomplete, but
  H> functional). They even released a package named Interix, it's the
  H> equivalent of Cygwin (shells, complilers, perl, even a X server)
  H> but runs directly on the POSIX API, instead of emulating it with
  H> the Win32 API. Obviously it doesn't support any Windows NT below 5.

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Native Windows NT POSIX capabilities
  2001-03-30 23:36 ` Vladimir G Ivanovic
@ 2001-03-31  9:02   ` Mumit Khan
  2001-04-02 22:21   ` Vladimir G Ivanovic
  1 sibling, 0 replies; 6+ messages in thread
From: Mumit Khan @ 2001-03-31  9:02 UTC (permalink / raw)
  To: cygwin

On Fri, 30 Mar 2001, Vladimir G Ivanovic wrote:

> Just to clear up some misconceptions. Microsoft entered into an
> agreement with Softway Systems for them to build a Real POSIX (tm) layer
> on top of the NT kernel. It worked with WinNT 4, and I know that because
> I still have a copy (although it's not installed; cygwin is.)

Correct. Microsoft published a crippled POSIX subsystem for certification 
purposes only, and it was never meant to be used for any real work. 

> The goal for Interix's POSIX layer was to run Linux applications, so it
> was to be a complete POSIX implementation. Modulo bugs, I believe they
> achieved their goal. I don't know what the relationship is between
> Win2K's POSIX layer and Interix's.

The goal of Softway, then renamed Interix, was to provide a usable
POSIX subsystem, not to run linux applications per se. Marketing blurb
confuses the issue as usual. As you point out, Microsoft has acquired
Interix, and now you can buy the subsystem directly from Microsoft.

> AFAIK, the full source for Interix was never available, but since they
> used lots of Open Source products in their product, the sources for
> those were available. I could be mistaken about the Interix (not GNU,
> etc.) sources, and if someone posts a URL, then we can all download it.

You're correct. It is a closed-source proprietary implementation, and 
always has been. Interix had provided modified GNU development tools,
as well as many other GNU packages, for which the sources are available
of course.

This is of course rather off-topic for Cygwin list, but hopefully these
messages will provide something to point to in the archives next time 
the question comes up, and come up it will.

Regards,
Mumit



--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Native Windows NT POSIX capabilities
  2001-03-30 16:44 Native Windows NT POSIX capabilities Hyperion
  2001-03-30 16:59 ` Robert Collins
  2001-03-30 23:36 ` Vladimir G Ivanovic
@ 2001-03-31  9:11 ` Mumit Khan
  2 siblings, 0 replies; 6+ messages in thread
From: Mumit Khan @ 2001-03-31  9:11 UTC (permalink / raw)
  To: Hyperion; +Cc: cygwin

Fyi, you cannot mix and match Win32 subsystem with POSIX subsystem under
Windows operating system, and that means that you cannot link to both
say crtdll (win32 subsystem) and psxdll (POSIX subsystem). There are a 
few exceptions (kernel32 I believe), but that's for low level and not
mean to be user accessible.

Regards,
Mumit



--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Native Windows NT POSIX capabilities
  2001-03-30 23:36 ` Vladimir G Ivanovic
  2001-03-31  9:02   ` Mumit Khan
@ 2001-04-02 22:21   ` Vladimir G Ivanovic
  1 sibling, 0 replies; 6+ messages in thread
From: Vladimir G Ivanovic @ 2001-04-02 22:21 UTC (permalink / raw)
  To: egcs; +Cc: cygwin

Philip Tsao was kind enough to point me to ftp://ftp.microsoft.com/interix 
where Microsoft has posted what appears to be patches to a few programs.

--- Vladimir

Vladimir G. Ivanovic                    http://www.leonora.org/~vladimir
2770 Cowper St.                                         vladimir@acm.org
Palo Alto, CA 94306-2447                                 +1 650 678 8014

"VGI" == Vladimir G Ivanovic <vladimir@acm.org> writes:

  VGI> AFAIK, the full source for Interix was never available, but since
  VGI> they used lots of Open Source products in their product, the
  VGI> sources for those were available. I could be mistaken about the
  VGI> Interix (not GNU, etc.) sources, and if someone posts a URL, then
  VGI> we can all download it.


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2001-04-02 22:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-03-30 16:44 Native Windows NT POSIX capabilities Hyperion
2001-03-30 16:59 ` Robert Collins
2001-03-30 23:36 ` Vladimir G Ivanovic
2001-03-31  9:02   ` Mumit Khan
2001-04-02 22:21   ` Vladimir G Ivanovic
2001-03-31  9:11 ` Mumit Khan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).