Informática: ¿Qué sucede realmente tanto en hardware como en software cuando se elimina?

Suponga que tiene un montón de pizarras pequeñas en las que guarda información y que así es como las usa:

  • Cuando ya no necesita la información en una de las pizarras, la arroja sobre una pila de pizarras sucias;
  • Cuando necesita escribir algo, toma una pizarra sucia de la pila, la borra y comienza a escribir en ella.

Esto es eficiente en el sentido de que, si no le preocupa que alguien lea su información anterior, no hay razón para borrar una pizarra sucia a menos que necesite escribir algo nuevo.

Para estirar un poco esta analogía, su mano a menudo borrará cualquier información vieja del tablero en el proceso de escribir algo nuevo, por lo que es posible que nunca necesite borrar explícitamente.


Ahora, términos menos simples; Esto puede tomar algunos antecedentes CS para entender. En general, un sistema de archivos tiene estos elementos:

  • Mapa de asignación Indica qué partes de la memoria se usan y cuáles no, pero no mucho sobre para qué se usan; a menudo un “bit” en el mapa de asignación representa una cantidad fija de memoria, como 1K de memoria (que podría denominarse un “sector” de memoria)
  • Directorio. Describe los archivos almacenados en el sistema de archivos, generalmente como, para cada uno, un nombre de archivo, algunos atributos (¿es un archivo de texto o binario, o una carpeta?), Y una lista ordenada de las partes de la memoria que contienen los datos del archivo ; la información para cada archivo se llama su entrada de directorio
  • Almacén de datos. Toda la memoria que se puede usar para almacenar archivos; En el Mapa de asignación, puede saber qué partes de esta memoria están en uso, y puede indicar desde el Directorio qué partes pertenecen a qué archivos.

Por lo general, cuando elimina un archivo de un sistema de archivos (no la papelera, una eliminación real), se producen las siguientes acciones; digamos, por simplicidad, todo ocurre en un solo paso indivisible:

  1. OS encuentra la entrada de directorio del archivo en el directorio
  2. El SO usa esa información para identificar qué partes de la memoria / Data Store usa el archivo
  3. El SO actualiza el Mapa de asignación para indicar que esas partes de la memoria ya no están en uso, escribe el Mapa de asignación actualizado en el hardware, pero no borra la memoria
  4. OS marca la entrada del directorio como ya no está en uso, a menudo de manera trivial, por ejemplo, al establecer el primer byte del nombre del archivo en un carácter NUL, escribe la entrada actualizada del directorio en el hardware, pero no borra la entrada del directorio

Debido a esto, puede “recuperar” un archivo fácilmente si no ha habido mucha actividad en el disco: busque su entrada de directorio anterior, que aún describirá todas las partes del almacén de datos que utilizó el archivo, ninguna de las cuales ha sido borrado porque no borramos al eliminar; restablecer el nombre en la entrada del directorio; actualice el Mapa de asignación para mostrar las partes del Almacén de datos en uso, ¡y el archivo está de vuelta!

Sin embargo, si ha habido demasiada actividad de disco, alguna otra operación de archivo podría haber reutilizado la entrada de directorio, o reutilizado uno o más de los “sectores” de la memoria; en este caso, solo parte del archivo, o una cadena sin nombre de “sectores” podría ser recuperable.

Piénselo así: está sujetando los extremos de cientos de trozos de cuerda. Cada cadena está atada a un trozo de papel con información, y si alguien pregunta dónde está, usted dice: “siga este trozo de cuerda hasta el papel”.

A veces alguien dice: “ya no necesitamos este pedazo de papel”, por lo que se deja caer la cuerda al suelo. De vez en cuando aparece un conserje que barre todas las cadenas que se han caído para que puedan volver a usarse y recicla los papeles que se cayeron. Hasta que sean barridos, cualquiera podría tomar una cuerda y seguirla hasta su papel, pero en general nadie lo hace, es solo basura.

Sin embargo, a veces una persona dirá, “ya no necesitamos este papel, pero tiene cosas que nadie debería ver nunca más”. Luego, jala la cuerda y garabatea todo el papel hasta que sea completamente ilegible. Luego sueltas la cuerda y garabateas en papel, y eventualmente el conserje la limpia.

Así es como funciona la administración de la memoria: los datos (los documentos) persisten en el disco incluso después de que los punteros (las cadenas) se hayan ido. En teoría, aún podría encontrar los datos, pero en su mayoría nadie se molestará. Sin embargo, si tiene que eliminar algo de forma segura, sobrescribe (garabatea) los datos y luego suelta el puntero. Incluso si alguien lo encuentra antes de que se recolecte o se reutilice la basura (el conserje), todo lo que verían son fragmentos aleatorios.

Claramente, ese es un nivel loco de simplificación que no toca (por ejemplo) diferentes modelos de memoria, pero si recuerda “cadenas, papeles, conserjes, garabatos”, probablemente recordará cómo funciona la memoria conceptualmente.

Mira esta respuesta: ¿A dónde van los archivos eliminados en una computadora? ¿Realmente desaparecen del disco o se almacenan temporalmente en algún lugar? El autor entra en grandes detalles y tiene mucho más conocimiento que yo.


Básicamente, tienes razón en que el puntero se acaba de eliminar. Cuando eliminas un archivo, los datos siguen ahí.

Y sí, es para optimización. ¿Realmente desea pasar la misma cantidad de tiempo que tomó para guardar ese archivo sobrescribiéndolo con 0? Existen otras opciones de seguridad, pero simplemente no es práctico para el usuario promedio.

¡Buena pregunta!

El hardware no hace nada. Los datos todavía están allí, físicamente presentes en el disco duro. Solo se libera el espacio asignado para ese archivo (el SO lo hace). Cuando se necesita ese espacio para asignar memoria a nuevos archivos, los nuevos datos se sobrescriben en los datos eliminados antiguos, después de lo cual no es posible recuperarlos. Este proceso es más rápido que el borrado real de archivos del disco duro. Supongo que este proceso se adopta simplemente por su conveniencia. Definitivamente no es una limitación de hardware, ya que es posible borrar los datos en un disco duro; esto se puede hacer formateando o usando el proceso CIPHER de Windows en el símbolo del sistema.

Si consideramos que funciona, es una interfaz entre el usuario y el hardware.
Solo toma la entrada (eliminar)
Y usa la Llamada del sistema (usando hilos) para comunicarse con el hardware para realizar la tarea en el hardware …
Donde como mecanismo de hardware es complicado, pero como sé cuando eliminamos cualquier archivo, aún conserva su información de registro, sus punteros y sus archivos temporales que ayudan a restaurar.