Post on 13-Dec-2014
description
EyeOS: un sistema operativo web
Raúl Jiménez Ortega Nicolás Fernández Valverde José Luis López Pino
Cloud computing + Web desktop
¿Cómo se accede?
Arquitectura
EyeOS utiliza una estructura de µkernel estructurado en 4 capas:
● Kernel: unifica los servicios del sistema.
● Servicios: funciones de más bajo nivel.
● Bibiliotecas: funciones de más alto nivel
● Aplicaciones: pueden llamar a funciones de cualquier capa.
Servicio - MMAP
Componente vital en las comunicaciones de la aplicación.
Encamina los mensajes del cliente a la aplicación correspondiente.
Servicio automatizado.
Servicio - VFS
Es el sistema de ficheros de eyeOS.
Implementa sistemas de seguridad Concatena 32 caracteres aleatorios. Funciones virtuales y reales.
Facilita el desarrollo de aplicaciones
Servicio – VFS (implementación)
Crea internamente dos ficheros por cada archivo (funciones virtuales): Fichero de contenido. Fichero de información.
<?xml version="1.0" encoding="UTF-8"?><eyeFile>
<filename>SonicTheHedgedog.eyepackage</filename><author>root</author><created>1242666331</created><creationapp></creationapp>
</eyeFile>
Servicio - eyeX
Recibe los mensajes en XML y responde en el mismo formato al navegador.
Navegador Servidor
Navegador Crear una ventana nueva Servidor
Se ha pulsado 1 botón
Servicio - Proc
Gestión de procesos: Lanzar Finalizar Listar etc.
Para cada proceso define: myPid: equivalente al PID de Linux checksum: identifica el proceso en la
comunicación cliente servidor.
Pasos para desarrollar una app.
Descargar el código fuente. eyeOS/apps/NombreAplicacion/apps.eyecode
NombreAplicacion_run, que es llamada cuando se lanza la aplicación y que es obligatorio incluir.
ApplicationName_end, que es llamada cuando termina de ejecutarse.
El código de recepción de eventos en: eyeOS/apps/NombreAplicacion/events.eyecode NombreApp_on_NombreEvento
Ejemplo: fichero apps.eyecode
// En la función de inicialización creamos la interfazfunction eyeBasic_run($params=null) {
// Creamos un nuevo widget del tipo ventana.$myWindow1 = new Window(array(
'name' => 'eyeBasic_WND','father' => 'eyeApps','cent' => 1,'width' => 350,'height' => 200,'title' => 'Aplicación de prueba'
));// Mostramos la ventana$myWindow1‐>show();
Ejemplo: fichero apps.eyecode// Creamos un nuevo widget del tipo botón.$myButton1 = new Button(array(
'name'=>'eyeBasic_BTN','father'=>'eyeBasic_WND_Content','caption'=>'Pínchame','x'=>40,'y'=>80,'signal'=>'botonPulsado'
));// Mostramos el botón$myButton1‐>show();
}// La función de finalización elimina la interfaz.function eyeBasic_end($params=null) {
eyeWidgets('unserialize');}
Ejemplo: fichero events.eyecode
// Función que recibe el evento de pulsación del botónfunction eyeBasic_on_botonPulsado($params="") {
// Mostramos un mensajeservice('eyex','messageBox',array('content'=>'Botón
pulsado'));}
//Función que recibe el evento de cerrado de ventanafunction eyeBasic_on_Close(){
//Hacemos que la aplicación finaliceservice('proc','end');
}
Conclusiones (I)
Está diseñado para que los desarrolladores sin experiencia en aplicaciones web puedan desarrollarlas.
Comunicación con el usuario mediante eventos. Creación de la interfaz mediante widgets.
Ventajas: Portabilidad, descentralización, disponibilidad.
Desventajas: seguridad, necesidad de conexión rápida, rendimiento, aislamiento del sistema anfitrión.
CONCLUSIONES (II)
EyeOS NO es un sistema operativo: Despegado totalmente del hardware
Es un Escritorio Virtual.