Другие языки программирования и технологии

Как возможно перевести программу работающую в Linux для работы в Windows? Как вкратце происходит этот процесс?

полная перекомпиляция исходников программы. То есть берем компилятор, берем программу в исходных кодах и компилируем. Приэтом исходные коды должны быть одоптированы как кроссс платформенные
Farrux Imamaliev
Farrux Imamaliev
35 594
Все зависит от того, как написана программа, на каком языке она написана и как плотно она использует сосбенности ОС.
Часть программ портировать практически невозможно из-за того, что в Windows просто нет тех возможностей, котрые есть в Linux.
Другую часть портировать можно, но для этого прийдется сильно попотеть, меняя значительные фрагменты программы. Например в *nix системах есть замечательная функция fork(), которая из процесса родителя создает точную копию процесса потомка (там различие только в возвращаемом значении из этой функции) , а в Windows для порождения процесса надо по хорошему написать две страницы кода и точной копии там просто так не получишь. Допустим, что некая программа для линукс работает на многопроцессорной машине и что-то вычисляет. Программист мог бы сделать множественный форк для порождния числа процессов по числу процессоров, чтобы они равномерно по ним размазались. Все, что для этого нужно в *nix - это несколько вызовов fork(). Если вы примерно представляетет себе, как работает функция CreateProcess в windows, то должны понимать, что легко вы аткой код не портируете.
Третья часть программ - это программы изначально ориентированные на мультиплатформенность. В таком ПО делают слои, специфичные для программы и для аппаратуры. В результате портирование такого ПО больших проблем не представляет и зачастую может быть выполнено простой перекомпиляцией.
см cygwin.
Антон Гараев
Антон Гараев
4 934