2010-02-16 25 views
10

Aquí donde trabajo, asisto a una serie de conferencias sobre optimizadores de consultas de base de datos. Mientras el orador estaba introduciendo bases de datos, hizo un comentario muy perspicaz sobre un kernel que básicamente tiene que administrar tablas de procesos, punteros para abrir archivos, inodos, etc., y por lo tanto, básicamente es un motor de base de datos compatible con POSIX. Claramente, habiendo leído el Bach hace mucho tiempo, cuando era joven y con menos experiencia, nunca llegué a analizar la cosa desde este punto de vista, pero es fundamentalmente cierto.Un sistema operativo respaldado por una base de datos

Como se puede imaginar, no es fácil de Google ... por lo que pido: Me preguntaba si un loco por ahí diseñado un kernel (con suerte, sólo por diversión, verdadera divertido) de espacio de usuario compatible con POSIX en parte superior de MySQL ...

Editar: tenga en cuenta. No estoy hablando de un kernel que tenga un sistema de archivos de base de datos. Estoy hablando de un kernel que tiene todo el estado ring-0 manejado por MySQL.

Editar 2: aclaración, ya que parece que me han entendido mal. No lo busqué para usarlo en producción. Me preguntaba si alguien lo hizo porque quería divertirse. La real diversión era una referencia al hecho de que Linux se hizo "solo por diversión" como escribí, pero terminó como un producto serio, de ahí mi adición de real para implicar total falta de seriedad. Hay un montón de proyectos inútiles que se hacen solo porque son inusuales o lo suficientemente locos como para ser graciosos solo por la idea de hacerlo. Mi pregunta estaba buscando algo desarrollado bajo este punto de vista.

+0

He oído hablar de planes (desearía tener los enlaces, tiene que buscarlo ahora en google) para sistemas de archivos respaldados por bases de datos, lo que en teoría le permitiría buscar archivos en todo su sistema para todo tipo de metadatos. Me imagino que los SO modernos y los sistemas de archivos hacen esto hasta cierto punto, pero no sé cuánto. – FrustratedWithFormsDesigner

+0

ese es el famoso sistema de archivos orientado a objetos Windows supermegaultranew que está en proceso en microsoft desde windows 1.0 :) –

+0

ya existe una tecnología que busca FileSystem, en OSX se llama SpotLight y funciona maravillosamente, de forma transparente y en el fondo –

Respuesta

1

Me gustaría que el objetivo de cualquier curso de sistema operativo sea enseñar a los estudiantes sobre interfaces de software/hardware, concurrencia inherente en el manejo de hardware, diversas técnicas de sincronización, gestión de memoria física y virtual, etc. estructuras de datos. También hay una gran cantidad de historia y código fuente abierto para repasar.

Lo que está describiendo es un juguete. Puede ser divertido dibujar en un tablero y discutir, pero te lleva mucho más lejos de la máquina de hardware real mediante la introducción de una gran abstracción. Dado que la mayoría de los estudiantes de CS hoy en día tienen una idea muy vaga sobre el hardware y el funcionamiento interno del sistema operativo, no quisiera contratar a nadie que tenga esto para un curso de SO :)

4

No sé si ya está hecho, pero si es así, no me gustaría usarlo. Independientemente de lo rápido que fue, no puedo creer que sea tan rápido como un conjunto de estructuras de datos altamente afinado y específico para el kernel. Creo que comenzarías a tirar las características lo más rápido posible de un DB de propósito general para obtener rendimiento y probablemente termines con algo más lento que una estructura de datos especialmente diseñada.

+0

claramente sería lento, pero tendría muchas propiedades agradables: 1) puedes tener confirmaciones atómicas, redundancia, aislamiento, bloqueo de forma gratuita. 2) puede ejecutar el kernel para usar un espacio de datos ubicado en una máquina remota. Claramente, no es relevante para la producción, pero como una ayuda para la enseñanza, sería genial. –

+0

Pude ver como un ejercicio interesante escribir una máquina virtual basada en procesos que se ejecuta sobre un sistema operativo real que utiliza una base de datos para sus estructuras de datos del kernel. Probablemente sea ligeramente más fácil para alguien que ya esté familiarizado con SQL que diseñar estructuras de datos, mecanismos de bloqueo, etc. a un nivel muy bajo; por otro lado, no es muy realista ni como una asignación de curso del sistema operativo. – tvanfosson

+0

¿Por qué no es realista? bien, claramente no es un "kernel real", pero si sabe cómo funciona una base de datos, debería ser más fácil explicar cómo funciona un kernel en términos de terminología y acciones de bases de datos relacionales. –

0

BeOS estaba basado en la base de datos ¿no?

En la otra dirección, Plan 9 hace que todo sea parte del sistema de archivos.

0

Eso no funcionaría - por definición MySql depende del Kernel para funcionar (es un proceso, y para funcionar necesita acceso al sistema de archivos), por lo que nos quedamos en lo imposible "que viene primero "situación".

+0

se podría decir lo mismo para user-mode-linux :) –

+0

No veo por qué esta respuesta fue rechazada.Si tiene la intención de almacenar todos los datos del sistema operativo en una base de datos relacional, el motor de base de datos tendría que ser implementado y contendría la mayor parte de lo que necesita un sistema operativo así que acaba de mover ese código del lugar A al lugar B. el motor no puede existir en el vacío –

Cuestiones relacionadas