Re: NT POSIX Was: libpthreads,libmpeg3 -> windows
- From
- Igor Sysoev ()
- To
- Boris Rudakov ()
- Date
- 2003-06-09T15:12:24Z
- Area
- CARBON.COPY
* Forwarded from area 'RU.UNIX.PROG'
From: Igor Sysoev <is@rambler-co.ru>
Boris Rudakov <Boris.Rudakov@p4.f9.n5054.z2.fidonet.org> wrote:
> Хотя... В теории этого набора может хватить чтобы дописать остальное, только
> нахек ? У меня такое чувство что на NT POSIX подсистему все забили всерьез и
> давно всвязи с полной ненужностью.
Насколько я понимаю, POSIX в NT был нужен Майкрософту ровно для одной цели.
Для того, чтобы ОС можно было использовать в правительственных учреждениях
США, она должна проходить тесты POSIX.1. Это лакомый кусок рынка и MS не
мог его упустить, поэтому и сделал posix подсистему, которая эти тесты
успешно проходит.
> А зря. Была бы она "в соотвествии" - глядишь и этого уродца, цигвина, не
> появилось бы :(
Можно ли posix подсистему применять в реальной жизни - MS это не волновало.
Так же как и не волнует возможность безгеморройной сборки многоплатформенного
софта. У MS один интерес (и я его понимаю) - чтобы писали только под винды.
> DS>> И fork() там *есть*.
>
> Действительно. Я этого не знал и был уверен что в НТе он в принципе невозможен.
> Впрочем, средствами Win32 его на самом деле реализовать нельзя в принципе, а
> вот Native API... Мнда, POSIX подсистема знает что-то очень интересное :):):)
Есть такая книжка - "Windows NT/2000 Native API Reference", там в частноти
описан ZwCreateProcess(), который умеет делать fork().
> Причем, приколись: форк есть, а pthreads нету !!! А вот их-то сделать поверх
> родных нитей - просто как два пальца обоссать !!!!!!! Блин, да я за день-два
> (наверное) смогу весь pthreads собрать поверх Win32 ! А знать бы Native API
> (который мелкософт, сволочи, никогда полностью не опубликуют и не опишут) может
> вообще бы "почтиюникс" получился бы... Забавно :)
pthreads - это POSIX.1c, про него US goverment ничего не говорило, поэтому
MS даже и не дёргался его делать.
> Кстати, еще одна вещь вспомнилась: в НТе в комплекте идет crtdll.dll, которая
> реализует весьма и весьма полный вариант CLib и вкупе с psxdll может дать
> вполне полноценную среду какогон'ть старенького юникса. Забавно, да ? Причем,
> из-за неисповедимости путей драного Мелкософта есть еще и msvcrt.dll, которая
> опять-таки эмулирует чать UNIX-API и CLib, частично пересекаясь, а частично
> перекрывая по возможностям crddll.dll.
Что-то я сомневаюсь. crtdll.dll - это dll подсистемы win32 и программа из
посиксной подсистемы с ней слинковаться не сможет.
> Эт' чего получается, эт' получается что аналогично тому, как некоторые здесь
> присутствующие пытаются портировать свой софт в НТю цигвином под вайном, я могу
> портировать свой софт под юниксы в родной для меня НТе в ее Позиксе ?!?!?!
Что-то я сильно сомневаюсь в успехе такого портирования.
> По-ходу открытым остается вопрос с select - его тут нет.
А его нету в POSIX.
> Есть вероятность что
> будет работать винсокетовский, бо сокеты - обычные файлы, но... Завтра узнаем
> :)
С какой dll ты намерен линковать это дело ?
> Касаемого НТевого кастрата имеет положительный ответ. Там обработка хардверных
> исключений должна работать совершенно полноценно, в точности как в Win32
> subsystem.
>
> А вот что насчет настоящих юниксов на i386 ?
Настоящие юниксы для этого используют SIGSEGV. И не только на i386.
Мне, правда, непонятно, зачем ловить такие вещи. То есть, я знаю область
такого применения, но она достаточна узка.
--
Игорь Сысоев
http://sysoev.ru
--- ifmail v.2.15dev5
* Origin: Rambler Office news site (2:5020/400)