What is a Smalltalk “image”?

What is a Smalltalk "image"? Is it like serializing a Smalltalk run-time?

27
задан skaffman 24 August 2010 в 21:27
поделиться

4 ответа

Когда запускается виртуальная машина smalltalk, она загружает сохраненное состояние объектов (да: включая открытые файловые потоки, окна, потоки и т. Д.) Из «образа» в свою память и возобновляет выполнение там, где это необходимо. осталось, когда изображение было сохранено. В любой момент во время работы вы можете «сохранить изображение» (также известное как снимок текущего общего состояния) в файл изображения. Вы можете хранить несколько образов на вашем диске. Полезно, если вы работаете над разными проектами. Образы часто (но не во всех системах smalltalk) переносимы между архитектурами; например, писк-образ может быть загружен в бот Windows и Mac (и даже андроид) писк VM.Изображения не переносятся между диалектами, а иногда и между версиями в пределах диалекта.

Образы обычно содержат все - даже отладчик, компилятор, редакторы, браузеры и т. Д. Однако при развертывании иногда полезно «вырезать» (т.е. удалить неиспользуемый материал) из образа - либо чтобы скрыть секреты (;-) или сделать его меньше (для встроенных или мобильных устройств). Большинство Smalltalks не могут существовать без изображений, за исключением Smalltalk / X и (я думаю) S # -Smalltalk (но я здесь на тонком льду ...)

Для сохранения и переноса исходного кода изображения бесполезны - используйте либо fileout в стандартном формате, либо в xml, либо в любом другом транспортном формате (их много). Изображения также бесполезны для маршалинга / демаршаллинга; используйте для этого xml, binarystorage, databases, glorb или любой другой метод сериализации.

8
ответ дан 28 November 2019 в 04:59
поделиться

http://book.seaside.st/book/getting-started/pharo -squeak/what-is-image

Все объекты Smalltalk живут в нечто, называемое образом. Изображение снимок памяти, содержащий все объектов в определенный момент времени.

Второй поиск в Google.

2
ответ дан 28 November 2019 в 04:59
поделиться

Большинство популярных систем программирования отделяют программный код (в виде определений классов, функций или процедур) от состояния программы (например, объектов или других форм данных приложения). Они загружают программный код при запуске приложения, и любое предыдущее состояние приложения должно быть воссоздано явно из файлов конфигурации или других источников данных. Любые настройки, которые программист приложения не сохраняет явным образом, вам придется устанавливать резервную копию при каждом перезапуске.

Однако многие системы Smalltalk не различают данные приложения (объекты) и код (классы). На самом деле классы сами по себе являются объектами. Поэтому большинство систем Smalltalk сохраняют все состояние приложения (включая классовые и неклассовые объекты) в файле изображения. Затем образ может быть загружен виртуальной машиной Smalltalk, чтобы восстановить систему, подобную Smalltalk, в предыдущее состояние.

http://en.wikipedia.org/wiki/Smalltalk#Image-based_persistence

23
ответ дан 28 November 2019 в 04:59
поделиться

Рекомендую прочитать Pharo By Example. Цитируя его первую главу,

«Текущий образ системы представляет собой моментальный снимок работающей системы Pharo, застывшие во времени. Он состоит из двух файлов: файл .image, содержащий состояние всех объектов в системе (включая классы и методы, поскольку они тоже являются объектами), и файл .changes, который содержит журнал всех внесения изменений в исходный код системы. На рис. 1.1 эти файлы называются pharo.image и pharo.changes."

HTH

2
ответ дан 28 November 2019 в 04:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: