Можно создать промежуточный объект, который будет выполняться на различных платформах с помощью специально созданного интерпретатора. Самый известный пример - Java and Jav virtual machine.
да, если в линуксе откомпилировать ядро со включенным модулем binfmtmisc и соответствующим образом его настроить, так чтобы он при обнаружении PE сигнатуры запускал файл при помощи эмулятора windows типа wine. При этом все будет довольно прозрачно: устанавливается право на запуск для интересующего .exe-файла, и запускается как обычный линуксовый исполняемый файл.
Насколько мне известно, технически возможно собрать файл, который будет удовлетворять требованиям запуска в нескольких операционных системах. Конечно, это нетривиальная задача, и штатными средствами решить ее не получится.
Я не программист конечно, но в принципе я знаю, что в PE-Executable можно спрятать разные исполняемые коды в одном файле. Вот например если win32-программу запустить в DOS, то она напишет "Is not DOS executable program" или что-то в этом роде. Так вот этот текст выводит как раз кусок кода PE Win32, который запускается, выяснив, что exe запускается в среде DOS. Но в принципе туда можно затолкать вполне полноценную программу исполняемую под DOS. Таким образом в одном filename.exe будет выполняться и программа под DOS и программа под win32.
Дело в том, что "экзешник" - чисто мелкософтовский формат файла. Который содержит в себе не только код, но и ресурсы (иконки, формы и т.д.), и, думается мне, массу прочей дряни (если честно, в MSDN лезть лень). Это не относится к COM-файлам, которые представляют собой чистый код без каких-то стандартных полей. Под них - много выпендривались те же демосценеры :) Например, существуют старые intro, которые работали и под *nix, и под DOS, и под OS/2.
Как было упомянуто выше, вполне возможно совместить DOS и Windows-программы, на демосцене, опять же, была парочка таких примеров. Но это - исключительно из-за того, что формат исполняемого файла - Portable Executable. То есть он, конечно, различается значительно, но всё равно ограниченно похож и ограниченно совместим.
У *nix-подобных ОС свои форматы исполняемых файлов. Поэтому - нет, не получится, если не использовать интерпретаторы.
no subject
no subject
no subject
no subject
(no subject)
(no subject)
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(no subject)
(no subject)
no subject
Сделать программу, которая при помощи третей будет работать под обеими платформами - можно. Скрипт на Perl, PHP или код жабы будет так работать.
Сделать исполняемый файл, который, один и тот же, будет выполняться на обеих платформах как родной бинарник - нельзя.
(no subject)
(no subject)
(no subject)
no subject
При этом все будет довольно прозрачно: устанавливается право на запуск для интересующего .exe-файла, и запускается как обычный линуксовый исполняемый файл.
no subject
no subject
no subject
Дело в том, что "экзешник" - чисто мелкософтовский формат файла. Который содержит в себе не только код, но и ресурсы (иконки, формы и т.д.), и, думается мне, массу прочей дряни (если честно, в MSDN лезть лень). Это не относится к COM-файлам, которые представляют собой чистый код без каких-то стандартных полей. Под них - много выпендривались те же демосценеры :) Например, существуют старые intro, которые работали и под *nix, и под DOS, и под OS/2.
Как было упомянуто выше, вполне возможно совместить DOS и Windows-программы, на демосцене, опять же, была парочка таких примеров. Но это - исключительно из-за того, что формат исполняемого файла - Portable Executable. То есть он, конечно, различается значительно, но всё равно ограниченно похож и ограниченно совместим.
У *nix-подобных ОС свои форматы исполняемых файлов. Поэтому - нет, не получится, если не использовать интерпретаторы.
no subject
(no subject)