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.

Jnode, un Sistema Operativo basado en Java para los Incredulos

En esta semana llegue a la facultad con la noticia de un Sistema Operativo basado en Java, todos se burlaban y nadie creía que podía ser posible, (fue como cuando todos se reían de mi porque creía en Papa Noel) y charlando con compañeros y profesores les prometí investigar un poco mas y comentarles sobre este descubrimiento y gran trabajo, aunque este en sus principios y sea muy experimental, los objetivos y planes son buenos y loables (Seguridad y Integración con JINI, entre otras cosas), recopile algo de material para poner a su alcance.

Además es un proyecto GNU, es decir libre, en otras palabras podemos tener acceso al código y aprender sin limites, espero les guste y sigan investigando y adentrándose en el mundo de Java, que cada día me sigue sorprendiendo y parece no tener limites.

JNode es un sistema operativo libre y de código abierto implementado en lenguaje Java, basado en un pequeño nano-kernel escrito en lenguaje ensamblador.

La ultima version ofrece la integración de OpenJDK para aplicaciónes de AWT y Swing, y mejoras significativas la GUI de JNode de pinturas y renderización de fuentes, con el soporte de drivers VESA genericos y la consola gráfica. Ademas incluye comandos para una shell, una herramienta para configurar el entorno de JNode, Sistemas de Archivos Samba con soporte de lectura / escritura.

JNode 0.2.7 es una versión de desarrollo dirigidos a desarrolladores de Java y los especialistas de software a quienes les gusta la idea de una Java basada en un sistema operativo. Se tiene la intención de alentar a la gente a participar en la creación de este realmente único e innovador sistema operativo libre.

Algo de Historia

Al principio de la historia de Java, alrededor de JDK 1.0.2, Ewout Prangsma (el fundador de JNode) soñaba con la construcción de una Maquina Virtual Java hecha en Java.
Debía ser un sistema y no sólo era una máquina virtual, sino un completo entorno de tiempo de ejecución que no necesite ningún otro tipo de sistema operativo. Por lo tanto, debía ser liviano y lo más importante ser un sistema flexible.

Ewout hizo varios intentos en la persecución de estos objetivos, comenzando con JBS, un sistema Java Booteable. Se convirtió en un sistema funcional, pero había demasiado código nativo (C y ensamblador) en el mismo. Así que comenzó a trabajar en un nuevo sistema JBS, llamado JBS2 y, por último, JNode. Cuyo simple objetivo, fue no utilizar código C y sólo un poco de código ensamblador.

En mayo de 2003 Ewout público JNode y el desarrollo se acelero desde ese momento.
Varias versiones han sido liberadas y en la actualidad hay planes concretos para la primera gran versión.

Donde podes correrlo:

(No, no hace falta un ARM, ni un Procesador Java)


Pentium processor
256Mb RAM

O mejor:

Pentium 3 processor
512Mb RAM
32-bit graphics card

Mas Info:

Capturas de pantalla están disponibles aquí: http://www.jnode.org/node/132

JNode se puede descargar desde aquí: http://www.jnode.org/node/2705

Cambios: http://www.jnode.org/node/2696

Más información sobre el proyecto JNode se puede encontrar en la http://www.jnode.org y http://sourceforge.net/projects/jnode

Les dejo ademas unas Diapositivas de una Presentación muy buena de Ewout Prangsma el creador de JNode

Si la quieren descargar esta en el sitio http://www.jnode.org/node/681

Java, ¡Nunca Cambies!

Java es uno de los lenguajes mas populares del momento, pero una de las razones por la cual lo aprecio mas que .Net, es que no es tan cambiante como este ultimo, ya que me sucedió que cuando termine de aprender todo sobre ADO.NET, y manejo de bases de datos para el Visual Studio 2003, pasaron dos años y me entere que para la versión del VS 2005, tiraron a la basura ADO.NET y crearon todo de nuevo. En el mundo de la Informática no hay nada mas cambiante que Microsoft y sus “Tecnologías”.

Por esa razón, si queres especializarte en un lenguaje y no queres volver a aprender todo de 0 cada dos o tres años, simplemente para volver a VENDERTE una licencia del ultimo VS. Mejor aprende Java, Php, Python o C++ (que este nunca muere).

Les dejo una Guía de Java que yo la considero muy útil, además que es cortita y muy buena para el que recién empieza, y eso que es antigua. En la misma van a encontrar desde: como se define una variable hasta creaciones de clases, todo en unas miseras hojitas.

Gracias a la UTN Facultad Santa Fe.

Guia para Descargar de Rapidshare

Guia Java
Guia Java

Java el Poder de la Portabilidad

Como tal vez muchos de ustedes saben o no, Java es un lenguaje de programación muy potente por la portabilidad que ofrece los programas que uno puede crear con el.

Este año uno de mis objetivos fue aprender Java y Php, por suerte los pude cumplir, y realice un curso de Java Fundamentals en la Academia Cisco que esta en el Anexo de la UTN en Resistencia. Por cierto esta bueno, les traigo el trabajo final que tuve que realizar para el Curso.

Si esta empezando con Java, este material te puede servir, ya que podrás encontrar   código sobre:

  • Creación de Clases
  • Herencia
  • Casting y Clases Wrappers
  • Interfaces Graficas
  • Excepciones

Espero les sirva.

clases

Otra cosa importante, es que les recomiendo que programen con BlueJ, ya que como decia mi Profesor Cesar Pizi: “Para Aprender a Programar hay que hacerlo con el Bloc de Notas, nada de Wizards, ni Asistentes”.

Una vez que esten dominando Java, recien pasen a Eclipse u otra Plataforma (Mejor si es Libre).


Trabajo Final

Acuérdense todo bajo licencia CC y si van a cursar en Cisco Java no copien que el papelito no sirve de mucho si no sabes hacer le que él mismo te avala.

Educación Libre.

En esta ocasión les traigo la presentación que realice para las Conferencias de Software Libre en San Luis (que por cierto estuvieron muy buenas) como verán la charla se centro en dos aspectos muy importantes para mí:

La Educación Tecnológica con Software Libre y el Desarrollo de Aplicación Educativas Libres, (todo esto se esta realizando por medio de Robocode, Squeak y otras aplicaciones).

Espero les guste, y si no allá ustedes ;-).

Aguante Robocode

Robocode es un programa educativo cuyo objetivo es enseñar Java a personas que recién comienzan a programar o inclusive a personas que lo hacen pero no conocen Java. Aqui les presento este magnifico programa realizado por Mathew Nelson.

Ah, me olvidaba mi sitio www.robocode-argentina.com.ar; aqui van a encontrar tutoriales, guias, videos y otras cosas interesantes para empezar en el mundo de la programación y Java.

Y les dejo un video de lo que fue el Torneo de Robocode realizado en Chaco, Argentina.

Subir ↑