Кроссплатформенный минимум!

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: Кроссплатформенный минимум!

Сообщение Kemper » 25.03.2012 12:37:56

vitaly_l писал(а):PS^ В смысле у любого художника чёрная кошка всегда с собой. Просто программисты не умеют готовить чёрных кошек. Абсолютно ясно что, если бинарник будет единовременоо содержать код: и для windows, и для *nux, то можно сделать, чтобы исполняемый файл работал в обеих системах.
но fpc - судя по всему, такой возможности не предоставляет.

Мдааа.... Из всего это следует вывод, что вы ни чего не поняли. Перечитайте все и начните думать.

Добавлено спустя 21 минуту 13 секунд:
vitaly_l писал(а):Вы плохо изучали квантовую механику, она там есть...

А вы хорошо значит изучали квантовую механику? Вы вообще знаете что это такое?
Kemper
новенький
 
Сообщения: 61
Зарегистрирован: 18.05.2010 00:29:44

Re: Кроссплатформенный минимум!

Сообщение vitaly_l » 25.03.2012 13:12:27

Kemper писал(а):А вы хорошо значит изучали квантовую механику? Вы вообще знаете что это такое?

1) Возьмите два бинарника,
........а) первый откомпилированный в windows/
........б) второй откомпилированный в *nix/
2) Возьмите TFileStream и соедините оба бинарника в один, получится один бинарник с кодом: windows и *nix...
3) Если Вам повезёт, то исполняемый файл - будет работать в обеих системах единовременно, если не повезёт, то Вы будете точно знать что исходный код для: windows и *nix - находятся в одном файле. Значит они могут работать попеременно, если...

О квантовой механике читайте здесь: http://ru.wikipedia.org/wiki/%CA%E2%E0% ... D%E8%EA%E0
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Кроссплатформенный минимум!

Сообщение Kemper » 25.03.2012 13:34:17

vitaly_l писал(а):1) Возьмите два бинарника,
........а) первый откомпилированный в windows/
........б) второй откомпилированный в *nix/
2) Возьмите TFileStream и соедините оба бинарника в один, получится один бинарник с кодом: windows и *nix...
3) Если Вам повезёт, то исполняемый файл - будет работать в обеих системах единовременно, если не повезёт, то Вы будете точно знать что исходный код для: windows и *nix - находятся в одном файле. Значит они могут работать попеременно, если...

Забудьте про это. Это костыль который ни кому не нужен.

vitaly_l писал(а):О квантовой механике читайте здесь: http://ru.wikipedia.org/wiki/%CA%E2%E0% ... D%E8%EA%E0

Мдааа.... Весело давать ссылку на статью, причем ерундовую, физику теоретику. Еще раз убеждаюсь в вашей поверхностности. Не бросайтесь словами. Старайтесь докопаться до истины путем изучения проблемы досконально и читайте книги.
Kemper
новенький
 
Сообщения: 61
Зарегистрирован: 18.05.2010 00:29:44

Re: Кроссплатформенный минимум!

Сообщение Сквозняк » 25.03.2012 14:36:03

2) Возьмите TFileStream и соедините оба бинарника в один, получится один бинарник с кодом: windows и *nix...

Если ты не пишешь универсальный вирус, то это нафиг не нужно. Для других программ есть схема получше. Делаешь столько бинарников, сколько тебе нужно: linux_x86_64, linux_i386, win32, win64, для армов/андроидов и прочей планшетноконсольной бижутерии. Все бинарники складываешь в каталог_программы/bin а в корень только пусковые скрипты и реадме - никакого лишнего мусора. При запуске в память грузится только 1 бинарник а не 1+10 ненужных. Кроме того, если ты пожал линуксовый бинарник через upx, то у него возникают проблемы с нахождение собственного пути и имени файла. Но если есго запускать через скрипт, то эту информацию можно передавать в коммандной строке.
Сквозняк
энтузиаст
 
Сообщения: 1110
Зарегистрирован: 29.06.2006 22:08:32

Re: Кроссплатформенный минимум!

Сообщение sign » 25.03.2012 15:18:46

vitaly_l, вы даже не представляете, сколько жирнющих тараканов у вас в голове.
Хотя вам простительно - художник.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Кроссплатформенный минимум!

Сообщение vitaly_l » 25.03.2012 17:01:33

sign писал(а):вы даже не представляете, сколько жирнющих тараканов у вас в голове

Вы намекаете на то что..., мне пора принять дихлофос?, или на то что, Вы прочитали все поризведения Франца Кафки или Бехтеревых???
Kemper писал(а):Старайтесь докопаться до истины путем изучения проблемы досконально и читайте книги.

Вот я её досконально и изучаю. Я не физик, однако должен заметить что, в голове у меня нейроны, и касаемо квантовой механики, та самая чёрная кошка в тёмной комнате, с пугающей лёгкостью, делает бифуркацию корпускулярно-волнового дуализма, что вызывает интерференцию сознания, а последующие флюктуации вызывают явную энтропию разума, что и приводит к мышлению об относительности местоположения кошки... Однако: эксперимент Дэвиссона — Джермера подтвердил неразрывное «сосуществование» с частицей её волны... В смысле: Я лишь доказывал что, можно сделать исполняемый файл, который будет работать в нескольких системах; и всё... Вы согласились, что такое возможно... То что объединять эти файлы в один — не нужно и причины этого мне уже многократно объясняли... далее ещё один пример который любезно предложил, Сквозняк:

Сквозняк писал(а):Делаешь столько бинарников, сколько тебе нужно: linux_x86_64, linux_i386, win32, win64, для армов/андроидов и прочей планшетноконсольной бижутерии. Все бинарники складываешь в каталог_программы/bin а в корень только пусковые скрипты... При запуске в память грузится только 1 бинарник
Да, согласен - это безапелляционное решение(спасибо) и оно объясняет(ввиду ссылки на память) нерациональность создания единого файла и заставляет сделать разделение на: setup и исполняемые файлы... (а у меня setup и программа в одном, но под разные системы - это увы не проходит, т.к. РЕПОЗИТОРИИ и прочие правила — «этикета»... Но раньше, об упомянутом «этикете» я к сожалению не знал... Вытащить информацию об «этикете» в книгах — много сложнее.

Поэтому я благодарен всем кто раздавал мне, столь полезные «тумаки»... (теперь пойду читать книги.....)
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Кроссплатформенный минимум!

Сообщение sign » 25.03.2012 17:44:13

vitaly_l писал(а):Вы намекаете на то что..., мне пора принять дихлофос?,

Нет, я намекаю на то, что вы берётесь выносить глобальные суждения о предмете, о котором знаете весьма и весьма поверхностно.
Поверхностное знание - всегда неправильное.

vitaly_l писал(а):или на то что, Вы прочитали все поризведения Франца Кафки или Бехтеревых???

Тараканы в голове, они не вносятся или выносятся Кафкой, Бехтеревым и иными подобными средствами.
Это свойство самого человека их иметь или не иметь.

Хотите писать тотально кроссплатформенные программы?
Пишите их на Форте.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Кроссплатформенный минимум!

Сообщение daesher » 25.03.2012 17:45:58

vitaly_l писал(а):Абсолютно ясно что, если бинарник будет единовременоо содержать код: и для windows, и для *nux, то можно сделать, чтобы исполняемый файл работал в обеих системах.

Нет, он не будет работать в двух системах. В начале исполняемого файла есть такая вещь, как заголовок, который объясняет ОС, как его грузить. Если ОС не видит своего заголовка, то даже не попытается загрузить этот файл. Заголовки под Windows (MZ/PE) и Linux (сейчас - ELF, раньше был и a.out) совершенно разные. Если одна ОС "увидит" заголовок другой, то воспримет его как неверный, и ничего не загрузит (есть исключение - в Linux на заголовок Windows при большом желании можно подцепить эмулятор wine). А дальше - вопрос, какой заголовок будет первым в таком объединённом файле.
Вот программы Windows и DOS можно было объединять в одном файле, т.к. файл Windows имеет два заголовка - заголовок совместимости с DOS (который подскажет, как DOS загрузить специальный код; в обычной программе этот код только выводит на экран "This program requires Microsoft Windows" и завершается, в необычной он может делать всё, что угодно) и собственно заголовок приложения Windows (PE), который грузит уже другой код.
С заголовком Linux так не получится. Впрочем, была такая среда программирования - Virtual Pascal, так он генерировал только PE-файлы (заголовок Windows), но поддерживал (с горем пополам) компиляцию для Linux. При этом в итоге получался бинарник стандарта Windows, но с начинкой Linux. Понятно, что под Windows его не запустишь (он вылетит с ошибкой при первом же обращении к системным функциям Linux), а под Linux он имел неверный заголовок. Самое смешное, что эмулятор wine его запускал, и вполне нормально. Но далее этот бинарник "скармливался" программе, которая меняла у него заголовок - и у нас бинарник для Linux.
daesher
постоялец
 
Сообщения: 221
Зарегистрирован: 09.03.2010 22:17:14

Re: Кроссплатформенный минимум!

Сообщение alexey38 » 25.03.2012 18:01:21

Немного еще про байт-код. Байт-код - это бинарник, и он часто как раз кроссплатформенный. Создают его компиляторы в байт-код, например, для программ написанных на Java и т.п.
Java - это не только JavaScript, отличия можете поискать в яндексе или гугле.

НО! Для запуска байт-кода на исполнение на конкретной машине под конкретную ОС должен стоять специальный интерпретатор, например, JRE. Наличие JRE - это дополнительный гемор для пользователя. Он должен стоять, должен быть актуальным и т.п.

По сути интерпретация байт-кода не принципиально отличается от компиляции текста программы в бинарник на стороне пользователя. А раз Вы уже написали программу на Паскале, то все эти рассуждения про JRE Вам будут лишними.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Кроссплатформенный минимум!

Сообщение vitaly_l » 25.03.2012 18:40:29

alexey38 писал(а):А раз Вы уже написали программу на Паскале, то все эти рассуждения про JRE Вам будут лишними.

Почему лишними? Они в тему, топика. Лишние знания не мешают, решеню задачи, а наоборот помогают.
daesher писал(а):Нет, он не будет работать в двух системах. В начале исполняемого файла есть такая вещь, как заголовок

И что ?? Система, запустит ту программу, которая записана первой, а вторую просто не увидит... Или нет???
То как поведёт себя *nix - предугадать невозможно(если я правильно понимаю)...
Однако разработчики fcp - могут сделать так, что бы система запускала нужную часть бинарника. Или что?
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Кроссплатформенный минимум!

Сообщение alexs » 25.03.2012 18:55:59

vitaly_l писал(а):JRE - это единственный кроссплатформенный язык

Это один из многих интерпретаторов (отнюдь не самый лучший), который хорошо пропиарен.
А возможность запуска интерпретатора ограничивает только наличие самой программы-интерпретатора для этого интерпретатора на конкретной платформе.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Кроссплатформенный минимум!

Сообщение v-t-l » 25.03.2012 20:37:00

v-t-l
энтузиаст
 
Сообщения: 728
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Кроссплатформенный минимум!

Сообщение daesher » 25.03.2012 20:45:44

vitaly_l писал(а):И что ?? Система, запустит ту программу, которая записана первой, а вторую просто не увидит... Или нет???

Да, конечно. Но вторая программа (под другую система) будет висеть "мёртвым грузом" - её не увидит и нужная система, которая воспримет программу, как чужеродную, т.к. увидит только первую её часть.
daesher
постоялец
 
Сообщения: 221
Зарегистрирован: 09.03.2010 22:17:14

Re: Кроссплатформенный минимум!

Сообщение vitaly_l » 25.03.2012 22:07:00

daesher писал(а):Да, конечно. Но вторая программа (под другую система) будет висеть "мёртвым грузом" - её не увидит и нужная система, которая воспримет программу, как чужеродную, т.к. увидит только первую её часть.

Заголовки: (MZ/PE) и (ELF) создаёт fpc (если я правильно понимаю), наверняка в заголовке можно прописать что-то типа
if windows then goto (MZ/PE) else goto (ELF); Или в заголовке нельзя прописать команду???
это не решение задачи, это чисто познавательный вопрос, для общего развития...

Добавлено спустя 6 минут 22 секунды:
v-t-l писал(а):Покормлю тролля http://www.opennet.ru/opennews/art.shtml?num=23948

там про тоже самое, некий Ryan C. Gordon представил FatELF, универсальный формат компоновки исполняемых файлов, позволяющий выполнять один и тот же бинарный файл на разных платформах и архитектурах. Только - это было ещё аж в 2009 году...

Вывод прост: так сделать можно, но не нужно... :) Далее, довольные Художники танцуют АДЖИГУ или ПЛЯСКУ "СВЯТОГО" ВИТА :)))))
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Кроссплатформенный минимум!

Сообщение Padre_Mortius » 25.03.2012 22:34:01

там про тоже самое, некий Ryan C. Gordon представил FatELF, универсальный формат компоновки исполняемых файлов, позволяющий выполнять один и тот же бинарный файл на разных платформах и архитектурах. Только - это было ещё аж в 2009 году...

Ну тогда почитайте хотя бы вот это. Там как раз написано почему это плохо.
Я прямо таки представляю запуск на ARM с частотой 600 MHz с 256 метрами RAM (из которой доступно мегабайт 80) файлика метров так на 40. Боюсь, что пользователи не оценят такой бонус и разработчика за такое могут закидать гнилыми продуктами или чем-нить похуже.

Далее, довольные Художники танцуют АДЖИГУ или ПЛЯСКУ "СВЯТОГО" ВИТА :)))))

Танец все-таки называется "джига", а "пляска Святого Вита" - нервное заболевание
P.S. боюсь, что все-таки придется брать книги и продолжать учиться
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Пред.След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 32

Рейтинг@Mail.ru