¿Puede un sistema operativo usar la base de datos en lugar del sistema de archivos?

¿Preguntó si SQLite podría usarse para las funciones de un sistema de archivos? ¿Se puede usar una base de datos relacional con tablas, índices y SQL para recuperar y guardar archivos? La respuesta es que podrías, pero la sobrecarga sería horrible.

Microsoft intentó durante algunos años considerar esta idea. WinFS era el nombre del proyecto. No funciono.

Declaré que los gastos generales serían horribles. Las bases de datos relacionales reales utilizadas en el mundo real dependen de estructuras de datos y optimizaciones muy específicas. Esas estructuras se definen para patrones de acceso específicos asociados con ciertas aplicaciones posteriores y procesamiento dentro de la base de datos. Salga de las situaciones específicas que una base de datos está diseñada para abordar y puede encontrar un bajo rendimiento.

Un sistema operativo a menudo tiene más accesos aleatorios que el caso de uso para su base de datos relacional típica. Claro, un RDBMS puede manejar el acceso aleatorio bien, solo que no a la escala de los sistemas de archivos de alto rendimiento que pueden devolver un manejo del sistema de archivos en el menor de los segundos.

Realmente me gustan las bases de datos relacionales. Especialmente como una solución de gestión de datos para el modo de usuario procesado. Los utilizo todo el tiempo. Sin embargo, usarlos fuera de ese escenario puede ser costoso.

SQLite es rápido. Muy rapido. Lo he usado productivamente en el pasado. La información en el sitio web de SQLite revela que SQLite es rápido y escalable. Puede manejar grandes cargas de trabajo. Sin embargo, esos son casos en los que el motor se adapta a escenarios que involucran patrones de acceso lineal en relación con consultas específicas. Si bien el rendimiento del acceso aleatorio es bueno, probablemente no sea lo suficientemente atractivo para un sistema de archivos.

Por supuesto, no significa que no debas intentarlo.

Hace algunos años, mi programa de investigación incluía la creación de un sistema de almacenamiento de objetos para un sistema operativo en tiempo real (en lugar de un sistema de archivos convencional).

Para hacer esto correctamente, el sistema operativo debe basarse en transacciones. Este no fue el primer sistema operativo de investigación basado en transacciones, pero fue el primero en tiempo real.

El rendimiento fue un problema en comparación con las arquitecturas convencionales del sistema operativo, como han señalado otros aquí.

Pero en tiempo real no significa “muy rápido”, significa que la puntualidad y la previsibilidad de la puntualidad son parte de la LÓGICA del sistema. Los plazos (plazos de tareas, etc.) pueden ser de microsegundos a megasegundos, y hay muchos sistemas en tiempo real (incluidos los “difíciles” en tiempo real) que tienen plazos en segundos y minutos, por ejemplo, los de combate militar como como defensa antimisiles, que fue y es uno de mis principales dominios de aplicación (y fuentes de financiación de investigación).

Por lo tanto, mi interés estaba en los principios y la arquitectura de los sistemas operativos transaccionales en tiempo real utilizando un almacén de objetos. Aprendimos mucho, pero para mi pesar, la financiación y los recursos humanos de nuestro grupo causaron que este tema se eliminase de investigaciones posteriores. Tal vez algún día …

Claro, un sistema de archivos es un tipo de base de datos.

Históricamente, ha habido muchos más experimentos con diferentes modelos de sistemas de archivos que los que la mayoría de los sistemas operativos han establecido hoy; que es, más o menos, un conjunto jerárquico de directorios que contienen archivos que son flujos de bytes. Cosas como los atributos de archivos extendidos y otros metadatos son compatibles con Linux ext4 (así como Windown NTFS hasta cierto punto), Resource Forks en Macintosh HFS, sistemas de versiones en VMS, archivos como segmentos de memoria en Multics, y se han presentado una gran cantidad de otras ideas implementado.

Sin embargo, los sistemas de archivos de directorios jerárquicos típicos basados ​​en POSIX de hoy en día tienden a diferir solo en pequeñas formas. La mayoría del software espera un cierto grado de coherencia con POSIX, y eso limita la cantidad de experimentación que las personas están dispuestas a hacer.

Sin embargo, existen contraejemplos que ya existen. Para Linux, por ejemplo, hay Libsqlfs que utiliza un back-end de base de datos SQLite, o un sistema de archivos FUSE para examinar etiquetas id3 que extraen los metadatos ID3 de una colección de archivos de música y los presentan como un sistema de archivos, o el sistema de archivos virtual libferris que hace el Lo mismo con las etiquetas EXIF ​​que se encuentran en las fotografías.

El sistema Linux FUSE permite que el usuario inicie procesos del sistema de archivos, por lo que abre la capacidad de mezclar y combinar sistemas de archivos únicos como este para muchos más desarrolladores (en comparación con parchar un núcleo del sistema operativo) y algunos experimentos bastante inteligentes como estos han surgido como resultado.

Estas son cosas diferentes. ‘Sistema de archivos’ es solo un nombre que usamos para definir cómo se estructuran los datos del sistema operativo (archivos, carpetas, formato de partición …) y cómo se ocupan de varias cosas, como componentes de hardware, otros softwares, etc. Entonces, es parte del sistema operativo. Por otro lado, una base de datos tiene su propia estructura y un sistema de archivos admite sus datos, almacenando sus archivos dentro.

Como dijo Bruce-Robert Fenn Pocock, un sistema de archivos es un tipo particular de base de datos, generalmente un árbol jerárquico de blobs.

Sí, ha habido sistemas operativos que han utilizado bases de datos “verdaderas” y no sistemas de archivos.

Uno se llamaba Pick: Pick sistema operativo

Microsoft tenía un proyecto para usar una base de datos en lugar de un sistema de archivos: WinFS

Absolutamente. Se podría argumentar que esto es precisamente lo que hace un sistema de almacenamiento de objetos como OpenStack Swift.

La magia viene a asegurarse de que la sobrecarga de la base de datos del sistema de archivos no supere sus beneficios.

Un sistema de archivos es una base de datos, justo en un nivel más bajo que un RDBMS normal, por lo que, aunque es posible, generalmente es redundante.

More Interesting

¿Cuáles son algunas tecnologías portátiles que se han adoptado ampliamente en la industria de la moda?

Dado lo obvio que es la idea de los lapsos de tiempo de Realidad Virtual 24/7/365, ¿por qué la gente no sugirió ese concepto hace muchos años?

¿Qué se puede hacer para avanzar tecnológicamente en Nigeria?

¿Qué es mejor para teléfonos: IPS, LCD o TFT?

¿Es posible, con la web y las redes sociales actuales, restablecer la voz de la gente en las elecciones estadounidenses y en el proceso político?

¿Cuál es el mejor seguro de gadgets para iPhone?

¿Cómo puede Fitbit dar el siguiente paso en su avance para convertirse en una empresa dominante en wearables?

Según la tecnología de la época, ¿cuál habría sido el arma de fuego más avanzada que el Ejército Continental podría haber producido si tuvieran todos los planos (es decir, diseños para Stens, AK, Lee-Enfields)?

¿Puede Dubai convertirse en la próxima ciudad de Nueva York dentro de 20 años?

¿Qué es FASTag y cuáles son los beneficios de usar FASTag?

Si eventualmente desarrollamos tecnología de fusión, ¿podríamos crear una nueva bomba atómica basada en la fusión?

¿Cuáles son algunos hechos sorprendentes sobre la tecnología?

Si podemos ir al espacio y ser más avanzados en tecnología en el aspecto cinematográfico del mundo, ¿por qué no podemos hacerlo en la vida real?

¿Cuál es la tecnología de impresión 3D más barata disponible en India?

¿Cómo funcionaría el Nuevo Subaru WRX STI contra el Nuevo Ford GT 350?