4. 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.
5. Servicio - MMAP
Componente vital en las comunicaciones de la
aplicación.
Encamina los mensajes del cliente a la
aplicación correspondiente.
Servicio automatizado.
6. 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
7. Servicio – VFS (implementación)
Crea internamente dos ficheros por cada
archivo (funciones virtuales):
Fichero de contenido.
Fichero de información.
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<eyeFile>
<filename>SonicTheHedgedog.eyepackage</filename>
<author>root</author>
<created>1242666331</created>
<creationapp></creationapp>
</eyeFile>
8. Servicio - eyeX
Recibe los mensajes en XML y responde en el
mismo formato al navegador.
Navegador Se ha pulsado 1 botón Servidor
Navegador Crear una ventana nueva Servidor
9. 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.
10. 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
11. Ejemplo: fichero apps.eyecode
// En la función de inicialización creamos la interfaz
function 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();
12. 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');
}
13. Ejemplo: fichero events.eyecode
// Función que recibe el evento de pulsación del botón
function eyeBasic_on_botonPulsado($params=quot;quot;) {
// Mostramos un mensaje
service('eyex','messageBox',array('content'=>'Botón
pulsado'));
}
//Función que recibe el evento de cerrado de ventana
function eyeBasic_on_Close(){
//Hacemos que la aplicación finalice
service('proc','end');
}
14. 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.
15. CONCLUSIONES (II)
EyeOS NO es un sistema operativo:
Despegado totalmente del hardware
Es un Escritorio Virtual.