Forth
http://fforum.winglion.ru/

SPF Сохранить образ программы
http://fforum.winglion.ru/viewtopic.php?f=18&t=2966
Страница 1 из 1

Автор:  VoidVolker [ Вт сен 17, 2013 08:28 ]
Заголовок сообщения:  SPF Сохранить образ программы

Как сохранить образ программы для последующей его загрузки непосредственно в СПФ? Не в исполняемый файл, а только определенный код. Например: запускаем программу, меняем какие-то переменные и сохраняем образ - после загрузки все нужные переменные будут уже проинициализированы нужными значениями.

Автор:  Mihail [ Вт сен 17, 2013 10:53 ]
Заголовок сообщения:  Re: SPF Собхранить образ программы

VoidVolker писал(а):
Как сохранить образ программы для последующей его загрузки непосредственно в СПФ? Не в исполняемый файл, а только определенный код.

Типа объектного файла? Принципиальных проблем нет. Только геморрой.
Чем это лучше исходного кода?

Автор:  VoidVolker [ Вт сен 17, 2013 11:16 ]
Заголовок сообщения:  Re: SPF Собхранить образ программы

Mihail писал(а):
VoidVolker писал(а):
Как сохранить образ программы для последующей его загрузки непосредственно в СПФ? Не в исполняемый файл, а только определенный код.

Типа объектного файла? Принципиальных проблем нет. Только геморрой.
Чем это лучше исходного кода?

Да, что-то типа такого. А лучше исходного кода тем, что это не исходный код, а бинарный файл. И можно использовать такие образы например как плагины к программе. Или вот например работает программа-сервис, перезапускать нельзя, а код обновить надо - как быть? Самый простой вариант:
Код:
FORGET SomeMarker
INCLUDE source.f

Но если там будет исходник - это большая дыра в безопасности. А вот бинарный файл несколько сложнее расковырять.

Автор:  Mihail [ Вт сен 17, 2013 12:05 ]
Заголовок сообщения:  Re: SPF Сохранить образ программы

VoidVolker писал(а):
лучше исходного кода тем, что это не исходный код

Это масло масленое. Я вижу 2-е причины:
1 повысить скорость загрузки.
2 скрыть информацию от конкурентов.
По мне, обе причины не актуальны.

VoidVolker писал(а):
И можно использовать такие образы например как плагины к программе.

Встроенный линковщик не будет проще встроенной форт-системы.

VoidVolker писал(а):
это большая дыра в безопасности. А вот бинарный файл несколько сложнее расковырять.

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

Автор:  VoidVolker [ Вт сен 17, 2013 15:14 ]
Заголовок сообщения:  Re: SPF Сохранить образ программы

Mihail писал(а):
Это масло масленое. Я вижу 2-е причины:
1 повысить скорость загрузки.
2 скрыть информацию от конкурентов.
По мне, обе причины не актуальны.

2. Актуально - при наличии исходного кода изменить приложение или взломать его не составляет никакого труда, в отличии от уже скомпилированного бинарного файла.
3. Закрытый исходный код.
4. Безопасность.
5. Простой способ изменения кода программы или её обновления без перезапуска.
В общем, на эту тему можно дискутировать вечно. Но к решению задачи это не приближает.

Автор:  KPG [ Вт сен 17, 2013 15:46 ]
Заголовок сообщения:  Re: SPF Сохранить образ программы

VoidVolker писал(а):
В общем, на эту тему можно дискутировать вечно. Но к решению задачи это не приближает.

? В рамках SPF запустить симулятор (интерпритатор) кода "уникального" процессора (на Форте, на выбор) и на этом процессоре реализованный вариант Форт системы,
из под которой загружать ещё что-нибудь и "ещё" несколько таких рекурсий пока будет хватать производительности процессора для требуемого
функционала:) А инициализировать, кроме требуемых переменных, можно и кучу всякой туфты не затрагивающую логику программы явно.
А использовать оверлей разве не срастётся?

P.S. Шабронов, например, для того чтобы иметь возможность править исходные тексты программы - "самоупаковывает" вcё что нужно,
включая SPF в один исполняемый файл. А при необходимости правки исходников они "самораспаковываются".

Автор:  Mihail [ Вт сен 17, 2013 16:11 ]
Заголовок сообщения:  Re: SPF Сохранить образ программы

VoidVolker писал(а):
к решению задачи это не приближает.


1. Я бы предложил мой генератор ассемблерного представления.
https://github.com/VoidVolker/spf64/blob/master/spf64/spf/_mak/djgpp/gdis.f
преобразовать в генератор форт-представления.
Своего рода HEX файл - последовательность чисел подающихся на вход "C," .

2. Взять исходники ассемблера (умеющего генерить объектники) и линковщика
и перевести их на форт.

3. Как предлагает KPG, завести внутри приложения виртуальную
машину (можно не одну) и загружать в память этой машины специфические
программы используя виртуальное адресное пространство и каналы
связи с базовой программой.

Автор:  mgw [ Вт сен 17, 2013 16:19 ]
Заголовок сообщения:  Re: SPF Сохранить образ программы

Mihail - я попробовал твою виртуальную машину с Linux telnet. Что вообще в ней есть? Какие библиотеки и вообще какова концепция?

Автор:  VoidVolker [ Вт сен 17, 2013 17:02 ]
Заголовок сообщения:  Re: SPF Сохранить образ программы

Mihail писал(а):
1. Я бы предложил мой генератор ассемблерного представления.
https://github.com/VoidVolker/spf64/blob/master/spf64/spf/_mak/djgpp/gdis.f
преобразовать в генератор форт-представления.
Своего рода HEX файл - последовательность чисел подающихся на вход "C," .

2. Взять исходники ассемблера (умеющего генерить объектники) и линковщика
и перевести их на форт.

3. Как предлагает KPG, завести внутри приложения виртуальную
машину (можно не одну) и загружать в память этой машины специфические
программы используя виртуальное адресное пространство и каналы
связи с базовой программой.

Омг, зачем такие сложности? Есть же SAVE - я просто не копал его глубоко, но он же сохраняет систему как-то? Думаю, после некоторой доработки можно сохранить часть системы.

Автор:  Mihail [ Вт сен 17, 2013 23:57 ]
Заголовок сообщения:  Re: SPF Сохранить образ программы

VoidVolker писал(а):
Есть же SAVE - я просто не копал его глубоко, но он же сохраняет систему как-то? Думаю, после некоторой доработки можно сохранить часть системы.

Не представляю как эту задачу решить доработкой SAVE.
Могу предложить еще с помощью моего генератора ассемблерного представления и внешнего Си
сделать dll или so файл.

mgw писал(а):
я попробовал твою виртуальную машину с Linux telnet. Что вообще в ней есть? Какие библиотеки и вообще какова концепция?

Это в отдельной теме http://fforum.winglion.ru/viewtopic.php?f=22&t=2922

Автор:  mOleg [ Сб сен 21, 2013 18:32 ]
Заголовок сообщения:  Re: SPF Сохранить образ программы

VoidVolker писал(а):
Не в исполняемый файл, а только определенный код.

ну, скажем, убираем заголовок exe-файла, а бинарник отдаем, потом только склеить заголовок и бинарник, подправив в заголовке размеры блоков?

Автор:  VoidVolker [ Сб сен 21, 2013 20:09 ]
Заголовок сообщения:  Re: SPF Сохранить образ программы

mOleg писал(а):
VoidVolker писал(а):
Не в исполняемый файл, а только определенный код.

ну, скажем, убираем заголовок exe-файла, а бинарник отдаем, потом только склеить заголовок и бинарник, подправив в заголовке размеры блоков?

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

Автор:  mOleg [ Сб сен 21, 2013 20:41 ]
Заголовок сообщения:  Re: SPF Сохранить образ программы

Кстати, в SMAL32 были уже подгружаемые бинарные модули...

Автор:  Ethereal [ Пт сен 27, 2013 17:14 ]
Заголовок сообщения:  Re: SPF Сохранить образ программы

Код:
REQUIRE MARKER lib/include/core-ext.f

VARIABLE OVERLAY-ADDRESS
VARIABLE OVERLAY-LENGTH
VARIABLE OVERLAY-ENTRY
: LOAD-OVERLAY
  S" overlay.bin" R/O OPEN-FILE IF ." Overlay missed" CR BYE THEN
  >R OVERLAY-ADDRESS @ OVERLAY-LENGTH @ TUCK R@ READ-FILE
  IF ." Error loading overlay" CR BYE THEN
  <> IF ." Overlay wrong length" CR BYE THEN
  R> CLOSE-FILE DROP
  OVERLAY-ENTRY @ >R
;
HERE OVERLAY-ADDRESS ! MARKER PURGE

: MAIN
  ." Hello world !" CR \ Твоя программа
;

FALSE TO SPF-INIT? ' NOOP MAINX ! ' LOAD-OVERLAY TO <MAIN>
HERE OVERLAY-ADDRESS @ - OVERLAY-LENGTH ! ' MAIN OVERLAY-ENTRY !
S" overlay.bin" R/W CREATE-FILE DROP
DUP OVERLAY-ADDRESS @ OVERLAY-LENGTH @ ROT WRITE-FILE CLOSE-FILE DROP
PURGE S" program.exe" SAVE BYE

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/