Archive for the ‘Proyectos’ Category

Matrix se acerca.

Friday, March 16th, 2007

Cada día tenemos más cerca un mundo virtual verosímil.

Lo curioso es que el empuje viene del campo de los videojuegos.

Mirad estas imágenes.

Las de la izquierda son fotografías, las de la derecha salen del futuro motor de Crysis.

El vídeo al final de la página también impresiona.

Piscina de archivos.

Tuesday, March 13th, 2007

Una (posible) forma de almacenar ficheros sería todos juntos sin ningún tipo de orden.

Bueno, miento, ahora lo explico.

La idea principal es guardar todos los archivos en una misma “carpeta”, pero mantener estos archivos ordenados, mediante carpetas “virtuales”. Lo interesante es tener un mismo archivo en dos clasificaciones diferentes (carpetas virtuales). Las carpetas virtuales, serían “inteligentes” y completamente configurables.

Por otro lado, creo que habría que separar los archivos del sistema operativo, bibliotecas y demás, de los archivos que guardan realmente datos del usuario (y no la birria de intento de hacerlo con “Mis Documentos” en ciertos SO actuales).

También habría que cambiar  la forma de gestionar librerías, para eliminar de forma absoluta redundancia de código e incluso cualquier algoritmo que de forma diferente haga lo mismo. De eso ya hablaremos más adelante.

No sé si habrá algo por el estilo, pero si lo hay me encantaría probarlo.

Accesibilidad

Sunday, March 11th, 2007

No creo que un sistema operativo debiera tener ventanas.

Pero muchísimo menos una linea de comandos (lo siento, Bencer), al menos para el usuario común.

Un sistema operativo (de cara al usuario) debería ser una interfaz tan intuitiva o más que el mundo que nos rodea.

Cuando miremos una zona de la pantalla, esta debería de iluminarse, si señalamos un objeto, acercarse, si le decimos a nuestro ordenador “ordenador, quiero hacer un programa que haga tal cosa”, que comience un diálogo entre nosotros y nuestro ordenador, de forma que mediante unas pocas (breves y abstractas) descripciones, en unos minutos tengamos un programa acabado, sin necesitar ningún conocimiento de programación, ni que haga falta saber que hace “en sus tripas” el computador. Que cuando movamos nuestra cabeza, lo que haya en pantalla cambie su perspectiva para acercarnos un mundo realmente tridimensional.

Un sistema sin menús ni nada que nos resulte tan intuitivo que no haya que aprender a usarlo.

Y no es que a mi no me guste saber como lo está haciendo, es que creo que lo ideal es que el usuario no lo sepa.

Un sistema operativo, y por lo tanto un ordenador, debería de ser una ventana a otro mundo.

Un mundo en el que no debería haber ni un solo fallo, porque sino los ordenadores se relegan a lo que son para la mayoría de usuarios hoy en día, poco más que un juguete y un procesador de textos.

A partir de entonces tendriamos una herramienta, LA HERRAMIENTA. Que nos facilitaría cualquier tipo de trabajo y abriría todo un mundo de posibilidades.

Pero para ello hay que desarrollar cosas que ni siquiera sé si son posibles, para empezar programas infalibles, y un lenguaje de programación natural de verdad, con algúna caracteristica muy especial. Por otro lado, creo que mucha parte del hardware que haría falta ya existe, ahí estan las webcams en casi todos los portátiles.

Y aquí acaba (por ahora) mi disertación filosófica.

P.D.: (Repito que hablo de un SO orientado únicamente al usuario, a un único usuario, que es lo que debería de haber en cada casa).

Carácteristicas generales de miSO

Thursday, March 8th, 2007

TIPO DE SO

-Por lotes, pero dando un énfasis a la interactividad. Ejecuta el mayor tiempo posible seguido un mismo proceso, pero prima el tiempo de respuesta de cara al usuario.

SEGURIDAD

-del S.O. frente a los usuarios: ninguna.
-de los procesos entre si COMPLETA, invisibles entre ellos, cada uno se ejecuta como si fuera el único.
-UN SOLO USUARIO.
-SO invisible, el usuario no puede acceder a sus mecanismos.

OPTIMALIDAD

-MÁXIMA, S.O. transparente, funcionando en la medida de lo posible por interrupciones, respondiendo en tiempo constante.

CORRECCION

-asegurar que nunca tendrán lugar comportamientos no esperados

Intentare conseguir esto mediante tres “ayudas”:

-El uso de SPARKAda, lenguaje diseñado para evitar errores.

-El uso de un lenguaje de aún mas alto nivel, lenguaje natural muy abstracto.

-Prueba y error :P .

Scheduler

Thursday, March 8th, 2007

“Cada vez que se ejecute un nuevo proceso pasará a ejecución, si había otro proceso en ejecución, este será expulsado y pasará a la cola de preparados, en último lugar.

Cada vez que un proceso necesite E/S, saldrá de ejecución y pasará a E/S, ejecutandose el primer proceso de la cola de preparados.

Cada vez un proceso no necesite mas E/S pasará a ejecución, si habia otro proceso en ejecución, este será expulsado y pasará a la cola de preparados, en último lugar.”

¿Que os parece este scheduler? Sólo le veo una pega, y es que precisamente por ser tan simple, no contempla que un proceso que salga de E/S te tire el ultimo proceso que hayas metido en ejecución.¿Sería una pega real?

De momento me quedo con esta visión simplista, y me cepillo quantums y zarandajas, que desperdician rendimiento por los cuatro costados.

ACTUALIZACIÓN:

Faltaba añadir:

“Bajo petición del usuario, despacha el proceso en ejecución y carga el siguiente de la cola, si lo hay”.

miSO

Tuesday, March 6th, 2007

Algún día será mi proyecto de sistema operativo.

Sus objetivos son simples y ambiciosos;

-Exprimir al máximo el hardware que haya debajo.

-Ser lo más simple posible.

Más tarde le añadiría miInterfaz, proyecto aún más ambicioso, con una interfaz (lógico) tán intuitiva que no seas tu quien aprenda a manejarla, sino ella a entenderte ;).