¿Cómo funciona guardar y abrir archivos de computadora?

Tomemos un ejemplo más simple: un archivo de texto plano (.txt) creado en el Bloc de notas.

Abre el Bloc de notas y comienza a escribir. Dado que el sistema operativo de la computadora (Microsoft Windows, en este caso, pero solo me referiré a él como el SO) sabe que Notepad es el programa actualmente activo, envía sus pulsaciones de teclas allí.

El Bloc de notas convierte las pulsaciones de teclas en códigos ASCII, que son números que representan caracteres específicos, y los almacena en la RAM. Si mueve el cursor a una posición anterior y elimina algunos caracteres, el Bloc de notas salta de nuevo a la dirección RAM correspondiente y elimina los códigos ASCII desde allí, moviendo los caracteres posteriores hacia atrás para cerrar la brecha. Si inserta nuevos caracteres, el texto posterior se mueve hacia adelante en la RAM para hacer espacio.

Ahora digamos que ha terminado de escribir. En ese momento, su archivo es solo una secuencia de números en cualquier sección de RAM que el sistema operativo haya reservado para el Bloc de notas cuando inició el programa. En cierto sentido, en realidad es un número realmente largo. Cuando le dice a Notepad que guarde el archivo en su disco duro, el sistema operativo abre una ventana especial que le permite elegir una carpeta y un nombre de archivo. Digamos que eligió C: \ myfolder \ textfile.txt y hizo clic en el botón Guardar.

En ese punto, suceden varias cosas. El sistema operativo selecciona algo de espacio libre en la unidad y escribe ese número realmente largo allí, seguido de un código especial que marca el final del archivo. Anota la dirección de inicio de ese espacio, así como otra información como la fecha y la hora, y los registra junto con el nombre del archivo en un área especial del disco duro conocido como el sistema de archivos.

Luego cierra el Bloc de notas y el sistema operativo recupera la RAM. Sus datos aún pueden estar en esa dirección por un tiempo, pero tarde o temprano el sistema operativo asignará esa área a algún otro programa y sus datos se sobrescribirán.

Ahora di que quieres abrir el archivo nuevamente. Cuando hace doble clic en el icono de C: \ myfolder, el sistema operativo mira el sistema de archivos en el disco duro para encontrar la lista de archivos que están en esa carpeta. Ordena y muestra esa lista según las opciones que haya configurado. Como textfile.txt termina con “.txt”, se mostrará con el icono del Bloc de notas.

Cuando hace doble clic en el icono de su archivo, el sistema operativo inicia el Bloc de notas y le asigna una sección de RAM. Luego busca en el sistema de archivos para encontrar la dirección real del disco duro donde comienzan los datos del archivo. Va allí y comienza a copiar bytes en la RAM asignada del Bloc de notas, hasta que ve ese código de fin de archivo (EOF). Ahora tiene ese mismo número realmente largo en RAM que tenía antes de guardar el archivo.

El Bloc de notas espera códigos ASCII, por lo que divide ese número en bytes individuales y muestra el carácter correspondiente al valor numérico de cada byte.

Este es el punto clave: todos los datos del archivo son solo bytes con valores numéricos. Los programas interpretan esos valores de acuerdo con el formato de datos que esperan.

Por ejemplo, si agregó “.doc” al final de su nombre de archivo antes de hacer doble clic en él, Word se iniciará en lugar de Notepad, y leerá exactamente los mismos datos, pero se confundirá porque espera ver un montón de encabezado y códigos de formato antes de que comience el texto real.

Del mismo modo, si tomó un archivo de imagen con formato JPEG y agregó “.txt” al final de su nombre, cuando hace doble clic en él, el Bloc de notas se iniciará, dividirá los datos en bytes y mostrará los caracteres ASCII correspondientes, que sería un montón de letras, números, signos de puntuación y caracteres especiales, todos mezclados, pero el Bloc de notas no lo sabe mejor. Solo está interpretando los bytes de la manera en que está programado.

Descargo de responsabilidad: he omitido muchas de las complejidades que se han agregado en los últimos años, pero esto sigue siendo esencialmente lo que sucede en Windows.

¡Es un proceso bastante complicado!

Depende del diseño del programa, y ​​nadie fuera de Microsoft sabe exactamente cómo MS Word hace las cosas, porque no es un programa de código abierto (lo que significa que el diseño del programa no está abierto al público).

Sin embargo, la forma en que lo hacen la mayoría de los programas similares es esto:

Primero, cuando hace doble clic en un archivo, el sistema operativo sabe abrir MS Word porque mantiene una lista de mapeo entre las extensiones de archivo y las aplicaciones, y ve que .docx corresponde a MS Word (para los inclinados técnicamente, así es como Windows lo hace, y muchos otros sistemas operativos lo hacen de manera diferente).

Entonces abre MS Word, con una instrucción adjunta de que abre el archivo solicitado. Y ese es el final de la participación del sistema operativo.

MS Word se inicia, asigna (deja espacio) un poco de memoria para un documento, luego lee el documento desde el disco duro y lo copia en ese espacio.

Entonces, en este punto, su documento existe completamente en RAM.

Luego entra en algo llamado “bucle de eventos”. Básicamente, se queda esperando que sucedan cosas interesantes (por ejemplo, presionas una tecla) y procesas cada cosa interesante a medida que suceden. Una vez que sucede algo interesante y se maneja, vuelve al ciclo. Sigue haciendo esto hasta que salgas del programa.

Cuando presiona una tecla, por ejemplo, realiza algunas comprobaciones para decidir qué hacer. Por ejemplo, si está en algunos menús en este momento, presionar una tecla no significa necesariamente que se agregará un carácter a su documento. Si decide que se debe agregar un carácter al documento, agrega el carácter al documento en el lugar correcto (por lo que modifica el documento en la memoria).

Cuando finalmente decide guardar, simplemente escribe la copia del documento en la memoria en el archivo, sobrescribiendo todo lo que ya estaba allí, si lo hubiera.

Esta forma de hacer las cosas tiene algunas desventajas: por ejemplo, es imposible abrir documentos más grandes que la cantidad de RAM que tiene. Afortunadamente, la mayoría de las personas no necesitan abrir documentos de más de unos pocos GB.

Los programas que están diseñados para manejar archivos muy grandes a menudo solo leen porciones de un archivo en la memoria al mismo tiempo, y los mueven hacia adentro y hacia afuera según sea necesario. La mayoría de los programas no hacen eso porque hace que el programa sea mucho más complicado de diseñar.

El sistema operativo conoce un archivo por su extensión. Cuando lo guarda, se guarda en el disco duro de su computadora.