LINUX.ORG.RU
ФорумTalks

POSIX


0

0

Наткнулся в википедии на статью по сабжу. Зинтересовал следующий кусок:

Полностью POSIX-совместимые

* Android OS * A/UX * BSD/OS * HP-UX * IBM AIX * INTEGRITY * IRIX * LynxOS * Mac OS X * IPhone OS * Minix * MPE/iX * OpenSolaris * OpenVMS * QNX * RTEMS * Solaris * UnixWare * velOSity * VxWorks

По большей части POSIX-совместимые

* BeOS * FreeBSD * GNU/Linux (большинство дистрибутивов — см. LSB) * NetBSD * Nucleus RTOS * OpenBSD * RTEMS * Sanos * SkyOS * Syllable * VSTa * Symbian OS

В чем преимущества и недостатки полной и почти полной совместимости? И, что удивило, дядька Торвальдс писал Линукс опираясь на Миникс. Первая - полностью совместимая, вторая - почти полностью. В чем причина?


сертификация платная

cuki ★★★★
()

>опираясь на Миникс

толсто, и вообще - вентилятор сломаешь

mikhalich ★★
()

>И, что удивило, дядька Торвальдс писал Линукс опираясь на Миникс.

не опирался он на minix, это просто была среда в которой он писал, кода mimix в linux нет.

xtron
()
Ответ на: комментарий от xtron

Хорошо, неверно выразился, признаю. И все же сть ли причина различия в совместимости или «так вышло»? Он же писал, что у него первое время не было справочника по POSIX...

sudo-s
() автор топика

> И, что удивило, дядька Торвальдс писал Линукс опираясь на Миникс

Дядька Линус распечатал POSIX и реализовал его с нуля, вообще-то.

name_no ★★
()

>В чем преимущества и недостатки полной и почти полной совместимости?

Поддержка более свежей/полной версии api, например, это плюс.

anon_666
()

> В чем преимущества и недостатки полной и почти полной совместимости?

Если ты напишеь программу или скрипт, который будет использовать только фичи, описанные в POSIX, то ты сможешь гарантированно сконпелять/запустить этот скрипт/программу на любой POSIX-совместимой системе. Это же очевидно.

name_no ★★
()

>И, что удивило, дядька Торвальдс писал Линукс опираясь на Миникс. Первая - полностью совместимая, вторая - почти полностью. В чем причина?
Странно что неудивило, что Андроид тоже полностью

eugene2k
()
Ответ на: комментарий от name_no

> Дядька Линус распечатал POSIX и реализовал его с нуля, вообще-то.

Вообще-то одним лишь ядром POSIX не ограничивается.

bbk123 ★★★★★
()
Ответ на: комментарий от bbk123

> Вообще-то одним лишь ядром POSIX не ограничивается.

Ок, он кроме распечатки POSIX взял ещё bash и gcc и сделал так, чтобы на его едре первое конпелялось вторым. После этого линукс стал «частично совместимым» — торвальдс реализовал все системные вызовы, всё остальное сделали люди Столмана. Теперь твоя педантичность довольна?

name_no ★★
()

>В чем преимущества и недостатки полной и почти полной совместимости?

Теоретическое преимущество заключается в том, что написав программу один раз для POSIX системы на языке C - ее можно будет скомпилировать и запустить на любой другой POSIX системе.

То есть POSIX обеспечивает переносимость программ на уровне языка/api операционной системы.

Кстати хочу заметить, что Windows не является POSIX системой - с этим связано основные сложности при кросс-разработке Windows-Unix (перенос с Windows на Unix или c Unix на Windows). К Windows неоднократно пытались приделать слой эмуляции POSIX но так и не смогли.

Одно из основных отличий находится в реализации многозадачности. В Windows отсутствует fork, В Windows отсутствует связь родительский процесс<>процесс ребенок. Правда недавно в Windows добавили очень мощное понятие - «родитель группы процессов» - это такой процесс, при завершении которого, все процессы порожденные этим процессом прямым или косвенным образом, также завершаются.

В свою очередь в Linx нет такого понятия «родитель группы процессов» - для того, чтобы убить куст процессов - каждый процесс придется убивать по-одиночке.

Другое отличие находится в реализации программ использующих оператор select или его вариации. В Windows более жесткие ограничения на количетсво объектов, которые может обработать select - метод WaitForMultipleObject поддерживает максимум 64 объекта. Поэтому нельзя создать систему состоящую из одного thread, обрабатывающего все объекты.

sign
()
Ответ на: комментарий от name_no

> > Вообще-то одним лишь ядром POSIX не ограничивается.

Ок, он кроме распечатки POSIX взял ещё bash и gcc и сделал так, чтобы на его едре первое конпелялось вторым. После этого линукс стал «частично совместимым» — торвальдс реализовал все системные вызовы, всё остальное сделали люди Столмана. Теперь твоя педантичность довольна?


Выдыхай

bbk123 ★★★★★
()
Ответ на: комментарий от sign

>Кстати хочу заметить, что Windows не является POSIX системой

Пофиг, зато ПО, написанное во время win2000, с большой вероятностью будет работать и в следующих версиях, чем не может похвастаться этот ваш Gnu/Linux.

firestarter ★★★☆
()
Ответ на: комментарий от firestarter

Почему он наш и при этому не твой? *игнорируя вопрос, обсуждалось миллионы раз*

vertexua ★★★★★
()
Ответ на: комментарий от sign

>>В свою очередь в Linx нет такого понятия «родитель группы процессов» - для того, чтобы убить куст процессов - каждый процесс придется убивать по-одиночке.

а груп лидер это по-твоему кто? И зачем kill(2) кушает аргументы с pid < 0 ?

deadman ★★
()
Ответ на: комментарий от sign

> В свою очередь в Linx нет такого понятия «родитель группы процессов» - для того, чтобы убить куст процессов - каждый процесс придется убивать по-одиночке.

4.2

val-amart ★★★★★
()
Ответ на: комментарий от firestarter

Оно и видно, особенно когда с выходом висты у многих приложений меню отвалились :)

Deleted
()

Афаик в линуксе нет совместимости с некоторыми последними позикс-фишками ради производительности. С posix STREAMS, например.
Есть userspace-реализации многих критичных для posix-совместимости вещей.

x3al ★★★★★
()

Robert Love - Linux Kernel Development почитай там довольно подробно описаны отличия. Если кратко, то примерно так - берем от POSIX все, но не в ущерб функционала и производительности. А, вообще учитывая нынешнее положение лучше быть даже не POSIX совместимым, а Linux совместимым.(ну это шутка такая с долей правды) Да если захочешь читать полностью, то только на англ. т.к. перевод смотрел там многие названия переведены и путаешься только.

anonymous_sama ★★★★★
()
Ответ на: комментарий от firestarter

Ага, я заметил. Особенно хороша в контексте совместимости Виста. ХХХ не является приложением вин32...

sudo-s
() автор топика
Ответ на: комментарий от anonymous_sama

>Если кратко, то примерно так - берем от POSIX все, но не в ущерб функционала и производительности.

Правильно ли я понял, что «переизбыток» совместимости не отразится на производительности ничем хорошим?

sudo-s
() автор топика

Утверждение о POSIX-совместимости - обычно мошенничество. У POSIX есть куча подмножеств, так что просто «POSIX-совместимость» ни о чем не говорит.

И да, смотреть информацию по SE и CS в русской википедии - большая глупость.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.