Bit by Bites una columna semanal que se centra en los avances técnicos todas las semanas en varios espacios. Mi nombre es Adam Conway y he estado cubriendo temas tecnológicos y siguiendo las últimas novedades durante una década. Si hay algo que te interesa y te gustaría que se cubra, puedes contactarme en[email protected].
Todos conocemos los sistemas de archivos en distintos grados. Básicamente, son lo que gestiona la forma en que se almacenan los archivos en cualquier dispositivo que utilices, y hay diferentes formas de hacerlo. Por eso, FAT32, NTFS, exFAT, ext4 y otros son bastante diferentes entre sí. Sin embargo, con ese concepto en mente,cualquier cosase puede convertir en un sistema de archivos... y eso incluyeGoogle Calendar.
Si bien la mayoría de los sistemas de archivos son manejados por el núcleo de su computadora, en realidad no hay nada que le impida crear supropiosistema de archivos desde dentro decualquier cosa, simplemente no será realmente eficiente. Filesystem in Userspace, o FUSE, es una interfaz de software predominantemente en sistemas Unix y similares a Unix donde puede crear su propio sistema de archivos que se ejecuta dentro de otro sistema de archivos, lo que ha llevado a algunas formas muy creativas de almacenar archivos.
Cómo funciona un sistema de archivos y por qué Google Calendar también puede ser uno
En realidad no lo hagas
Cada computadora tiene un sistema de archivos de alguna manera. Es una capa de software subyacente que administra cómo se almacenan, organizan y recuperan los datos en un dispositivo de almacenamiento como el SSD de su computadora, y proporciona una forma estructurada de organizar los datos en archivos y directorios, lo que facilita que el sistema operativo y las aplicaciones localicen y manipulen esos datos. Sin un sistema de archivos, los datos existirían como un flujo caótico de bits, sin agrupación ni organización lógica. Los sistemas de archivos populares incluyen NTFS (usado por Windows), APFS (usado por macOS) y ext4 (común en Linux).
En esencia, un sistema de archivos funciona dividiendo el medio de almacenamiento físico en secciones lógicas, como bloques o clústeres. Estas secciones son donde se almacenan los datos y el sistema de archivos mantiene un registro de qué bloques pertenecen a qué archivos. También conserva metadatos sobre cada archivo, como su nombre, tamaño, tipo, fecha de creación y permisos de acceso. Cuando se abre un archivo, el sistema de archivos traduce la ruta del archivo en direcciones de bloque específicas en el dispositivo de almacenamiento, lo que permite que el sistema operativo lea o escriba los datos adecuados.
Los distintos sistemas de archivos tienen características únicas que están diseñadas para casos de uso específicos, por lo que empresas como Apple pueden crear su propio sistema de archivos como APFS. Por ejemplo, NTFS admite funciones avanzadas como el registro en diario (que ayuda a recuperar datos después de fallas), el cifrado y la compresión de archivos. Por el contrario, FAT32, si bien es más simple y más compatible con todas las plataformas, carece de muchas funciones modernas y tiene limitaciones tanto en el tamaño de las particiones como en el de los archivos. La elección de un sistema de archivos puede afectar significativamente el rendimiento, la compatibilidad e incluso la vida útil de los dispositivos de almacenamiento,especialmente con tecnologías modernas como los SSD, donde las operaciones de escritura deben optimizarse para evitar el desgaste.
FUSE es este concepto extrapolado para ejecutarse dentro del contexto de almacenamiento existente de la máquina en la que se ejecuta. Cualquier cosa puede ser un sistema de archivos, y una persona ha creado un sistema de archivos que funciona en Google Calendar, llamadoWhenFS. Básicamente, crea un sistema de archivos a partir de su calendario, dividiendo los datos en cientos de descripciones de eventos de calendario. Se pueden escribir y leer archivos y directorios desde él, y puede darle una URL de calendario a un amigo para que la "monte" y recupere datos.
Por supuesto, esta es una forma muy poco práctica de almacenar archivos, y un archivo de 3 KiB tarda siete segundos en cargarse en Google Calendar, una velocidad de transferencia de aproximadamente 400 bytes por segundo. Nadie debería usarlo seriamente y, de hecho, se podría decir que es un abuso del propio sistema de calendario de Google. Corre el riesgo de que Google restrinja o bloquee su cuenta al hacerlo, pero eso no significa que no sea educativo.
FUSE no es sólo para proyectos poco prácticos como estos
También tiene usos en el mundo real.
Proyectos como estos son posibles gracias a FUSE, pero también existen usos prácticosrealespara FUSE. Por ejemplo, ntfs-3g, una forma de montar unidades NTFS en Linux, utiliza la interfaz FUSE para montarlas. Es más lento que una solución nativa, pero el uso de FUSE lo hace portátil y fácil de ejecutar en cualquier lugar, lo que constituye una gran parte de su atractivo.
De hecho, si bien no es estrictamente un sistema de archivos FUSE,incluso convertir Discord en un reemplazo de Google Drivedonde los archivos se pueden reconstruir al recuperarlos con un script de Python era técnicamente un tipo de sistema de archivosmuy rudimentariotambién, especialmente si los archivos se rastreaban y organizaban en canales.
Los sistemas de archivos vienen en todas las formas y tamaños, y WhenFS es uno de los más divertidos que he visto, lo que demuestra el punto perfectamente.