¿Cómo funciona el Ctrl+z de los ordenadores?

Quería saber como funciona de verdad el Ctrl+z. Es decir, cada programa guarda sus estados anteriores, ¿y cuándo pulso Ctrl+z se restablecen? No se si me explico, quiero decir: ejemplo:

Escribo este texto, y ahora cuando voy por la mitad me paro. El programa guarda el estado donde el texto es solo la mitad ( ¿en la RAM o en el disco duro?). Yo sigo escribiendo, y al final del texto pulso Ctrl+z y el programa cambia el texto actual por el texto que guardó anteriormente.

Esa es mi teoría. ¿Es así que funciona o como? Si es así, ¿Dónde se guardan los "datos del Ctrl+z"? ¿Y se puede acceder a ellos desde otro programa?

6

6 respuestas

Respuesta
5

·

Ctrl+Z es una pulsación convenida para unificar el uso de programas, pero lo que sucede al pulsar Ctrl+Z ya depende del que ha hecho el programa, o incluso puede que no suceda nada si no lo ha programado. Y no es lo mismo porque la información que se necesita para volvel al estado anterior o anteriores cambia mucho de programa a programa. En un editor sencillo de texto se necesita guardar poca información pero uno complicado com Photoshop se necesitará más. En general esa información se guardara en la RAM en espacios de memoria que ha reservado para ello el programador, si no se está usando mucha memoria puede estar en las memorias Cache L1 o L2 de acceso más rápido que la RAM. O si el programador quiere que eso se guarde en un fichero temporal también puede ser que lo guarde ahí, como te dije es el programador el que decide todo lo se hace cuando pulsas Ctrl+Z. Y de lo de acceder a esa información mejor que te olvides, la única forma es a través del propio programa pues solo él sabe cómo llegar a ella y cómo está distribuida. Habría que ser un experto hacker para acceder a ella.

·

Y eso es todo.

Respuesta
1

No soy experto ni ingeniero pero según se se almacena en una memoria de acceso rápido como la ram (aunque no estoy seguro que sea la ram misma o una virtual) y algunos programa usan un espacio propia para esta funciones, es decir que cada programa puede que realice cambios de deshacer pero tal vez no en todos te funcione y esa memoria se limpie cuando usas otro, de que lo puedas ver con algún programa es super difícil ya que en esa memoria se borra cuando apagas, reinicias, etc. en alguno programas más especiales como photoshop puedes guardar un registro de lo que fuiste haciendo aunque no le he utilizado y no te se decir si puedes regresar todo lo que guardaste, ¿y por ultimo como para que quieres saber o ver esta info?

Respuesta
1

Depende del programa. Por regla general se guarda una pila de acciones en la RAM (a veces puede ser en disco, pero es más raro).
Es imposible acceder a los datos de esta pila de acciones desde otro programa sin usar técnicas de ingeniería inversa.
Lo que hace el programa al pulsar ctrl+z es tomar la posición superior de la pila y realizar la acción inversa. Conforme vas sacando acciones de la pila estas se eliminan o se van a la pila de rehacer (ctrl+y), lo mismo, dependiendo del programa.

Respuesta
1

Te voy a responder con un ejemplo: imagina que te han encargado realizar un programa en el que el usuario debe contar con la capacidad de proporcionar información en un campo de texto y debe también poder realizar modificaciones a placer, pero te piden que exista una forma de "deshacer" los cambios en caso de que cambie de parecer. En este caso sabes que tu programa deberá "recordar" cómo estaba la información justo antes de cada cambio, lo que te obliga a "detectar" las modificaciones y guardarlas de alguna manera, como por ejemplo en una variable de memoria, en un archivo temporal o en una base de datos. Tu propio juicio te dirá cual es la mejor alternativa para ti. Ahora bien, hay una convención no escrita y que aplica en general para todos los usuarios: la combinación de teclas Ctrl+Z es utilizada para regresar al "estado" anterior, por lo que si la utilizas en tu programa será muy natural para cualquier usuario. Podrías utilizar cualquier combinación de teclas, pero esa es el "top of the main" en todos los usuarios. Lo mismo sucede con Ctrl+C y Ctrl+P por ejemplo, pero siempre como desarrollador la decisión es tuya.

Respuesta

CTRL+Z es una convención que se utiliza en varios programas, no creo que se pueda acceder a los datos a no ser que se escanee toda la memoria RAM ... Cada programa tiene su forma de guardar estos datos, por ejemplo el Corel Draw, te permite configurar el CTRL+Z hasta 99 pasos anteriores de los que estas trabajando.

Respuesta

Tengo entendido, que se usa la memoria en este caso, el patrón de diseño memento.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas