130 likes | 246 Views
JavaOS is a secure, robust, and highly portable operating system developed by Sun and IBM, designed exclusively for executing Java applications directly on hardware. It features a microkernel architecture, object-oriented design, and distributed file system. Key components include Micronucleus, JavaOS Boot Interface, and Runtime Environment for managing processes and device drivers.
E N D
Daniel Bautista Batllori (e6962120) Alberto de Grado Andres (e3454919) El sistema operatiu JavaOS
Motivació • Crear un SO centrat exclusivament en Java • Capaç d’executar aplicacions Java directament sobre el hardware • Crear una plataforma oberta per tal que les màquines clients puguin treballar amb qualsevol sistema hardware i software • Posibilitat de ser gestionat desde diferents servidors
Característiques • Desenvolupat per Sun i IBM • Basat en microkernel • Altament portable i estandaritzat • Orientat a objectes • Segur i robust • Sistema de fitxers distribuït • Petit i comptacte • Sense crides a sistema (nomes API’s) • Disponible per Sun Sparc, Intel x86, i Strong Arm CPU’s
Components principals • Entorn d’execució (runtime environment) • JavaOS Platform Interface (JPI) • Micronucli • JavaOS Boot Interface (JBI) • Cargador (Booter)
Cargador • Escrit totalment en codi natiu ( C i ensamblador) • Interactua amb el nucli a traves del JBI (JavaOS Booting Interface) • Es l’encarregat de carregar el JavaOS a memoria i d’activar el micronucli • En acabar, es treu ell mateix de memoria • En cas de sistemes multiprocessador, el cargador arranca una sola CPU i després el micronucli s’encarrega d’arrancar les altres CPU’s
Micronucli • Situat entre el cargador y l’entorn d’execució • Petita part de codi natiu que dóna servei a l’entorn d’execució a través del JavaOS Platform Interface • Part bàsica més primitiva del sistema implementada totalment en C i ensamblador per qüestions d’eficiència • S’encarrega del tractament de: • Paginació, Memoria i DMA • Threads i llibreries natives • Interrupcións, excepcions i rellotge
Característiques del micronucli • Executa tot el codi en mode privilegiat: • Aixó es posible ja que el codi escrit en Java es totalment segur i no provocarà cap fallada del sistema. D’aquesta manera s’aconsegueix un nucli més ràpid, ja que no hem de passar mai de mode sistema a mode privilegiat • Executa tot el codi amb un únic espai virtual d’adreçes: • Novament, degut a la filosofia Java, no cal crear un espai d’adreçes per a cadascun del processos. Aixó redueix el tamany del codi i n’augmenta l’eficiència • No hi ha comunicació entre processos (IPC): • En un sistema sense més d’un espai d’adreçes no es necessita. Així augmentem l’eficiencia del sistema
JavaOS Platform Interface • Conjunt de classes i interfaces que aïllen el microkernel de la resta de l’entorn d’execució • Permet que l’entorn d’execucio (runtime environment) pugui ser portat a diversos micronuclis
Runtime Environment • Es la part del SO on s’executen les aplicacions Java • Compost principalment per: • System database: guarda informació sobre la configuració de components software Java. Esta organitzat com un arbre, on cada node descriu la configuració d’una component del client • Event system: mecanisme mitjançant el qual els objectes poden intercanviar els events (objecte que conte informació que s’envia d’un objecte a un altre). Al JDK els events s’envien punt-a-punt, però al JavaOS s’envien a través d’un “agent”, un controlador d’events que envia els events del emissor als receptors
Runtime Environment (II) • Service loader: Encarregat de carregar i descarregar els serveis del JavaOS, com per exemple els protocols de xarxa i el sistema de fitxer. Son serveis tot alló que no ha d’estar present necessariament, com el system database i el service loader mateix. Els serveis es carreguen i descarreguen sota demanda • Device drivers: s’encarreguen de donar suport a diferents dispositius (ratolí, teclat, tarjeta de red, etc...). Poden ser estatics (nomes es poden carregar rearrancant la màquina) o dinàmics (carregats o modificats en qualsevol moment)
Runtime Environment (III) JVM • La JVM (Java Virtual Machine) es l’entorn en que s’executen els programes Java • Els archius class contenen les instruccions JVM (bytecodes) i una taula de símbols • La JVM no es només un intérpret (tradueix bytecode en codi natiu) sino que es tracta d’un emulador ja que permet una arquitectura de màquina intermitja. • Les funcions principals de la JVM son: • Reservar espai per els objectes creats • Alliberar la memoria no usada (garbage collector) • Asignar variables a registres i piles • Comprobació de la seguretat en les aplicacions Java • Interpretació i verificació del bytecode • control de threads
Runtime Environment (IV) JVM(II) • Els components de la JVM son el següents: • Garbage Collector • Native Method Interface • JIT (Just-in-time compiler) • Interpretador • JVM System Function Library • La JVM especifica un conjunt d’instruccions propies per al sistema i utilitza diferents arees de memoria. • Pot estar implementada en microcodi o en hardware (degut a la seva estructura) • Les classes base que requereixen els programes resideixen al Runtime Environment i son carregades a la JVM cuan es necessiten
Bibliografia • T. Saulpaugh , C. Mirho: Inside the JavaOS operating system. Addison-Wesley, 1999 • Sun Microsystems • www.java.sun.com • IBM • www-5.ibm.com/es