LINUX.ORG.RU
ФорумTalks

unix платформы


0

1

расскажите мне про то, насколько совместимы между собой разные юниксы - Linux, *BSD, OS X, hurd, и как под каждую компилять. Больше всего интересует, имеют ли двоичную совместимость bsd, os x и hurd.

FreeBSD может запускать некоторые бинарники для Linux.
Все остальные ОС из указанного списка бинарно не совместимы никак, но написанные для них программы должны одинаково удачно компилироваться, если при написании держаться в рамках некоторых стандартов.

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

вот только это я и знал. ЕМНИП, где-то было написано, что отличие апи линукса от бсд в формате системных вызовов и все

hunter-12
() автор топика

Если ты имеешь в виду юзерспейс апи ядра, то тут всё достаточно хорошо, оно более чем стабильно. А если на общуюю бинарную совместимость - то многие библиотеки очень часто меняют своё api/abi, и совместимость рушиться даже между разными релизами перечисленых тобой систем.

stels ★★★
()
Ответ на: комментарий от hunter-12

ну дак бинарно то они совместимы? хотя бы разные бсд

нет, а зачем, смысл unix не в бинарной совместимости.

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

Совместимы в рамках posix
posix

Отвечай проще - нет.

mopsene ★★★
()
Ответ на: комментарий от hunter-12

ну а в опенке можно запустить хеллоуворлд скомпиленный для фри? а на осХ?

нет нет и нет.

Ygor ★★★★★
()

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

dikiy ★★☆☆☆
()

1. Линукс и бсд по разному передают параметры, лин - в регистрах, фряха - в стеке.
2. Под фряху есть эмулятор (?) ( в народе именуется линуксулятор), но чтобы запускать программы нужно иметь копию линукса где-нибудь.

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

Все это забавно, особенно то что некоторые программы для win95 можно запустить в восьмерочке и обратно, хотя отличий в ядре там больше в сто раз чем между ветками бзд.

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

Некоторые программы для win95 можно запустить и в linux. Костыть такой есть - wine называется. В win8 я думаю нечто похожее должно быть.

grondek
()
Ответ на: комментарий от druganddrop-2

программы для win95 можно запустить в восьмерочке

Ага, во встроенной виртуалочке.

и обратно

А это просто 4.2

redgremlin ★★★★★
()
Ответ на: комментарий от hunter-12

hunter-12> ну дак бинарно то они совместимы?

Нет. Только POSIX API и кроссплатформенные библиотеки.

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

а через что вообще ELF -ы запускаются?

те - что_для_этого_нужно ?

uin ★★★
()

Тогда вот такой вопрос - получится ли lfs под дарвин арм скомпилять?

hunter-12
() автор топика
Ответ на: комментарий от druganddrop-2

програму написанную 10 лет назад под чистые иксы и ядро, без стороних библ можно и сейчас запустить.

stels ★★★
()

Совместимы на уровне POSIX/SUS + некоторые расширения (т.е., можно считать, что для прикладного софта совместимы на уровне сорцов).

Бинарной совместимости почти ни у кого нет. FreeBSD умеет запускать линуксовые бинарники. Solaris умеет запускать бинарники линукса. Других случаев вроде не знаю.

С OS X точно никто не совместим, т.к. у нее свой формат бинарников, а не ELF.

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

у OS X - 0xCA 0xFE 0xBA 0xBE (как у Java бинариев)..

а вот есть ли возможность (пусть даже чисто гипотетическая) научить OS X исполнять ELF ? (сторонними костылями втч..)

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

Возможность есть, конечно. По крайней мере, есть сторонний костыль, который учит макось (а также большинство других популярных никсов) исполнять PE :)

Deleted
()
Ответ на: комментарий от hunter-12

А какая совместимость может быть между вариациями на тему POSIX в системах которые не ставят это своей задчей ???? Вопрос риторический, ответ очевиден.

robot12 ★★★★★
()
Ответ на: комментарий от druganddrop-2

Все это забавно, особенно то что некоторые программы для win95 можно запустить в восьмерочке и обратно, хотя отличий в ядре там больше в сто раз чем между ветками бзд.

Ключевое слово «некоторые». Довольно большое количество программ для 95 не взлетит под семеркой, а семерка начнет орать про ошибки совместимости. Хотя, иногда помогает «режим совместимости», который ЕМНИП представляет собой обычную песочницу. Ну а в 95 запустить программы под семерку вообще не выйдет. Ну разве что хэлловорды.

Zhbert ★★★★★
()

расскажите мне про то, насколько совместимы между собой разные юниксы - Linux, *BSD, OS X, hurd

Совместимы на уровне одной версии JVM. :))

, и как под каждую компилять.

javac -help

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