que machine funcion aplicaciones terminology smalltalk

terminology - machine - ¿Qué es una “imagen” de Smalltalk?



smalltalk funcion (7)

Cuando se inicia el smalltalk VM, carga un estado guardado de objetos (sí: incluye flujos de archivos abiertos, ventanas, subprocesos y más) desde la "imagen" a su memoria y reanuda la ejecución donde se dejó cuando se guardó la imagen. En cualquier momento durante su trabajo, puede "guardar una imagen" (también conocida como: una instantánea del estado general actual) en un archivo de imagen. Puede mantener varias imágenes en su disco. Útil si trabajas en diferentes proyectos. Las imágenes son a menudo (pero no en todos los sistemas smalltalk) portátiles a través de arquitecturas; por ejemplo, una imagen chillona se puede cargar en un bot, una ventana y una máquina virtual (y hasta un androide) de VM. Las imágenes no son portátiles en todos los dialectos y, a veces, no en diferentes versiones dentro de un dialecto.

Las imágenes generalmente contienen todo, incluso el depurador, el compilador, los editores, los navegadores, etc. Sin embargo, para la implementación, a veces es útil "quitar" (es decir, eliminar material no utilizado) de una imagen, ya sea para ocultar secretos (;-) o para hacer Es más pequeño (para dispositivos integrados o móviles). La mayoría de los Smalltalks no pueden vivir sin una imagen, con la excepción de Smalltalk / X y (creo) S # -Taller Talk (pero estoy en hielo fino aquí ...)

Para guardar y transportar el código fuente, las imágenes no son útiles: use el archivo en formato estándar o en xml o en cualquier otro formato de transporte (hay muchos). Las imágenes tampoco son útiles para organizar / desmarcar; use xml, binarystorage, bases de datos, glorb o cualquier otro método de serialización para eso.

¿Qué es una "imagen" de Smalltalk? ¿Es como serializar un tiempo de ejecución de Smalltalk?


En pocas palabras, una imagen de Smalltalk es una imagen del entorno Smalltalk que se ha guardado en un momento determinado. Cuando esta imagen se vuelve a cargar en el sistema de tiempo de ejecución Smalltalk, todo es como estaba en el momento en que se guardó la imagen.

Las imágenes guardadas por un sistema Smalltalk no pueden, en general, ser cargadas por un sistema Smalltalk diferente.

Creo que el desarrollo basado en imágenes es increíblemente poderoso. Si me interrumpen, puedo guardar la imagen y, cuando vuelvo, vuelvo a estar donde estaba. Los depuradores que estaban abiertos todavía están abiertos, esperando continuar. Hay muy poco "tengo que descubrir cómo volver a donde estaba", es más "OK, continuemos ...".

Comparte y Disfruta.


La imagen de Smalltalk es una bestia muy interesante. Míralo como una especie de inmortalidad. Muchos sistemas actuales de Smalltalk, Pharo, Squeak, VisualWorks entre ellos, comparten un ancestro común, es decir, una imagen de Smalltalk de Xerox PARC. Este ancestro común, sin embargo, no es algo remoto, pero en realidad sigue vivo en esos sistemas modernos. Las variantes modernas se produjeron enviando mensajes a los objetos en esa imagen. Algunos de esos mensajes realmente transformaron los objetos actuales. Las clases son objetos en toda regla, y la creación de nuevas clases se realiza enviando mensajes a los objetos de clase. ¡Algunos de los objetos en una imagen de Smalltalk pueden remontarse a 1972, cuando la primera imagen de Smalltalk arrancó! Las imágenes en pequeña escala nunca mueren, simplemente se desvanecen en algo potencialmente diferente. Debería ver la creación de su aplicación como no fundamentalmente diferente a la creación de una nueva versión de Smalltalk.


Se está serializando todo en todo el sistema, incluido todo el trabajo de desarrollo y todos los datos del usuario. Todo aparte del núcleo del entorno de ejecución .

Smalltalk, como Java, se ejecuta en una máquina virtual que ejecuta un bytecode simbólico, y contiene elementos de bajo nivel como el recolector de basura. Esto hace que Smalltalk sea muy portátil, y también muy fácil de escribir una vez que se ejecuta en cualquier lugar.

Como era de esperar, esta fue la inspiración para Java. Por lo tanto, la VM Smalltalk (StVM) es el equivalente del entorno de ejecución de Java.

En Smalltalk, todo lo demás se almacena en la memoria RAM. La base de código, que se compila dinámicamente sobre la marcha para el StVM. Todos los datos de objetos que ha creado ejecutando sus aplicaciones de usuario final verticales y horizontales. Toda la personalización que has hecho al entorno de ventanas y su apariencia. Todo el nuevo código que has escrito. Una canción que ha cargado en la máquina virtual para reproducir en un reproductor de música. Cualquier otro dato, código u objeto que esté utilizando o haya cargado.

Todo está vivo en la memoria de la PC.

Periódicamente, es posible que desee guardar la reproducción de estado actual en el disco. Cuando haces eso, congelas la VM Smalltalk momentáneamente, y copia todo en un solo archivo de disco. Ese archivo de disco se denomina archivo de imagen y, de manera predeterminada, tendrá un sufijo .image en la mayoría de las distribuciones en PC (ya sea que ejecuten Linux, MacOS, Windows o RiscOS).

Es como la forma en que guarda su trabajo en curso cuando está en un procesador de textos o en una hoja de cálculo en una PC típica. Excepto que este guardado incluye la última versión del código de la hoja de cálculo con la que está hecha la aplicación de la misma.

El sistema Smalltalk tiene otras formas de proteger sus datos. Si desarrolla algún software, o altera cualquiera de las bases de código en las que está escrito el sistema Smalltalk, registra todos los cambios en el disco en tiempo real.

Tiene la opción de escribir código, o cargar una aplicación, que puede guardar su código fuente y sus estructuras de datos asociadas, en repositorios de código fuente distribuidos, o en repositorios en su disco local. O a bases de datos relacionales. O para objetar bases de datos o las nuevas bases de datos NoSQL.

La mayoría de las aplicaciones preescritas hacen una copia de seguridad de los datos en disco (s) o base (s) de datos sobre la marcha.

La imagen es un guardado de todo el sistema Smalltalk (aparte de la Máquina Virtual. La Máquina Virtual es equivalente al Entorno de Tiempo de Ejecución de Java. Todo lo demás se almacena en la imagen.

¿Escribir un nuevo sistema de archivos para acceder a los discos del sistema operativo subyacente? Eso está en la imagen. (y todos los cambios también se han registrado en el disco automáticamente por el sistema Smalltalk).

¿Introduzca una gran cantidad de datos en su base de datos de objetos basada en imágenes Smalltalk? Eso está en la imagen.

¿Quieres hacer un restablecimiento de fábrica a tu sistema Smalltalk? Simplemente vuelva a usar el archivo de imagen que recibió cuando instaló Smalltalk por primera vez. ¿Desea guardar la imagen cada hora a la hora y luego restaurarla hace 4 horas? Solo carga el archivo de imagen de hace cuatro horas.

La imagen es una copia de todo lo que el sistema Smalltalk tiene en la memoria. Excepto por la proporción pequeña, inmutable y vital del sistema que es la Máquina Virtual.


Te recomiendo leer http://pharobyexample.org/ primer capítulo dice:

"La imagen del sistema actual es una instantánea de un sistema Pharo en ejecución, congelada en el tiempo. Consta de dos archivos: un archivo .image, que contiene el estado de todos los objetos en el sistema (incluidas las clases y los métodos, ya que son también) y un archivo .changes, que contiene un registro de todos los cambios en el código fuente del sistema. En la Figura 1.1, estos archivos se denominan pharo.image y pharo.changes ".

HTH



Los sistemas de programación más populares separan el código de programa (en forma de definiciones de clase, funciones o procedimientos) del estado del programa (como objetos u otras formas de datos de aplicación). Cargan el código del programa cuando se inicia una aplicación, y cualquier estado de la aplicación anterior debe recrearse explícitamente a partir de archivos de configuración u otras fuentes de datos. Cualquier configuración que el programador de aplicaciones no guarde explícitamente, debe configurar una copia de seguridad cada vez que reinicie.

Sin embargo, muchos sistemas Smalltalk no diferencian entre datos de aplicación (objetos) y código (clases). De hecho, las clases son objetos en sí mismas. Por lo tanto, la mayoría de los sistemas Smalltalk almacenan el estado completo de la aplicación (incluidos los objetos de Clase y los que no son de Clase) en un archivo de imagen. Luego, la máquina virtual Smalltalk puede cargar la imagen para restaurar un sistema similar a Smalltalk a un estado anterior.

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