This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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.

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]