JNode y su Nano-Kernel


Investigando un poco les comento lo que estuve aprendiendo sobre Jnode, lo cual lo hace muy interesante.

Primero de todo JNode consiste en diferentes partes escritas en varios Lenguajes:

  • Assembler
  • Java
  • Mezcla de Assembler /Java

Formado por un Nano-Kernel escrito en Assembler, este es compatible con multibooteo, cargando un GRUB, encargado de toda la inicializacion, configuracion y administración de memoria (GDT y otras cosas), determina que procesador esta corriendo y finalmente levanta una Maquina Virtual de Java, escrita en Java,

Hay clases escritas en (Assembler y Java utilizando JNI – Java Native Interface – org.hnode.vm.Unsafe) mientras la mayor parte del sistema Jnode esta escrito en Java.

La Maquina Virtual necesita una implementacion de Classes Java como cualquier otra JVM. Jnode utiliza GNU classpath y openJDK.

En otras palabras el Nano-Kernel es el encargado de capturar las interrupciones, luego estas son pasadas la manejador de interrupciones Java, y finalmentes este es pasado al thread de procesamiento que le corresponde.

Ademas los modulos del Kernel son solo simples plugins de Java (drivers, archivos de sistema, etc), Por esta razon es que no hay modulos en codigo nativo, ya que realidad no hacen falta.

3 comentarios to “JNode y su Nano-Kernel”

  1. asi cualquiera, agarro cualquier bootloader o sistema operativo y le meto encima el classpath gnu y algún reloj de por ahi sumado a algo tipo xclock y la demo gears, un tetris, un buscaminas y un block de notas y digo OOHHH ES UN SISTEMA OPERATIVO BASADO EN JAVA!!!

    ya te digo raul, lo único que puede correr código nativo java son algunos procesadores ARM, mirá y aprendé:

    http://es.wikipedia.org/wiki/ARM

    leé la parte de jazelle…

    PD: y con ese criterio solaris no es un sistema operativo java????

  2. raulespinola Says:

    Si trata de hacer todo esto en Java:
    Un Framework de drivers, sistema de archivos, redes, entorno grafico, shell, Framework de plugins, y además una maquina virtual escrita en Java.

    Solaris esta basado en Unix BSD, y el entorno grafico es Sun Java Desktop System, es un entorno de escritorio para Solaris desarrollado por Sun Microsystems que no tiene nada que ver con lo que es JNode.

    En ningun momento dije que ejecuta Java nativamente (eso es imposible excepto para las versiones J de ARM como mencionaste) pero para eso tiene un kernel escrito en assembler, pero si, necesito un driver, plugin, sistema de archivo o algo para el sistema operativo lo puede programar en Java y se adiciona al kernel como un plugin.

    Esta basado en Java porque el 95% es código Java y si necesito adicionar algo, es seguro que esta programado en Java.

    Ademas una de las grandes ventajas de investigar este tipo de proyectos es la seguridad

  3. veo bastante dificil manejar drivers con java (no puedo direccionar a memoria directamente) y me parece que se estan metiendo en terreno escabroso, justamente la seguridad de java es no permitir accesos a la máquina real, si tenemos un kernel en assembler y el resto de las cosas funcionan en java se nota a larga distancia que pueden existir vulnerabilidades.

    Por otra parte esto de la seguridad informática a mi me da por las pelotas…que se yo me parece que algunos son muy paranóicos (como raul aEHaWheUAHWe).

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: