Introducción a los Sistemas BSD

Me puse a investigar algo sobre los sistemas BSD, espero les guste.

¿Qué es BSD?

BSD son las siglas de “Berkeley Software Distribution”. Así se llamó a las distribuciones de código fuente que se hicieron en la Universidad de Berkeley en California y que en origen eran extensiones del sistema operativo UNIX de AT&T Research. Varios proyectos de sistemas operativos de código abierto tienen su origen en una distribución de éste código conocida como 4.4BSD-Lite. Añaden además un buen número de paquetes de otros proyectos de Código Abierto, incluyendo de forma destacada al proyecto GNU. El sistema operativo completo incluye:

  • El kernel BSD, que se encarga de la programación del tiempo de ejecución de los procesos, la gestión de memoria, el multiproceso simétrico (SMP), los controladores de dispositivos, etc.A diferecia del kernel Linux existen varios kernel BSD con diversas funciones.
  • La biblioteca C, la API base del sistema.La biblioteca C de BSD está basada en código procedente de Berkeley no del proyecto GNU.
  • Aplicaciones como las distintas shells, aplicaciones de gestión de ficheros, compiladores y enlazadores.Algunas de las aplicaciones derivan del proyecto GNU, otras no.
  • El sistema X Window, que gestiona el entorno gráfico.El sistema X Window que se usa en la mayoría de versiones de BSD es producto de un proyecto aparte, el Proyecto XFree86. Se usa el mismo código que en Linux. BSD por lo general no predetermina un “gestor de ventanas” como KDE o GNOME, aunque éstos y otros muchos esten disponibles.
  • Muchos otros programas y utilidades

¿Por qué BSD no se conoce mejor?

Existen diversas razones por las que BSD es relativamente desconocido:

  1. Los desarrolladores de BSD con frecuencia están más interesados en depurar su código que en promocionarlo.
  2. La mayor parte de la popularidad de Linux se debe a factores externos a los proyectos Linux, como la prensa y las compañías que ofrecen servicios relacionados con Linux. Hasta hace poco los BSD de fuente abierta carecían de tales abogados.
  3. Los desarrolladores de BSD suelen estar más experimentados que los de Linux y ponen menos de su parte a la hora de hacer el sistema fácil de usar. Los recién llegados suelen sentirse más cómodos con Linux.
  4. En 1.992 AT&T denunció a BSDI, el distribuidor de BSD/386, alegando que el producto contenía código propiedad de AT&T. El caso fué sobreseído en 1.994 pero la huella del litigio perdura. Aún en Marzo de 2.000 en un artículo publicado en la web se aseguraba que el caso había sido “resuelto hace poco”.Un detalle que el proceso judicial aclaró fue el de la nomenclatura: en los 80 BSD era conocido como “BSD UNIX ”. Tras la eliminación del último vestigio de código de AT&T, BSD perdió el derecho a llamarse UNIX. Es por esto que es posible encontrar títulos de libros referentes a “the 4.3BSD UNIX operating system” y “the 4.4BSD operating system” y “the 4.4BSD operating system”.
  5. Existe la creencia de que los proyectos BSD están fragmentados y enfrentados entre sí. El Wall Street Journal habló de la “balcanización ” de los proyectos BSD. Como en el caso del pleito, esa creencia se fundamenta en historia antígua.

¿Quién posée BSD?

Ninguna persona o empresa posée BSD. Su creación y distribución es obra de una comunidad de voluntarios altamente cualificados y comprometidos a lo largo y ancho del mundo. Algunos de los componentes de BSD son proyectos de Código Abierto que cuentan con responsables ajenos al proyecto BSD.

¿Cuántas versiones de BSD existen?

A diferencia de las numerosas distribuciones de Linux tan sólo hay tres BSD libres. Cada proyecto BSD mantiene su propio árbol de fuentes y su propio kernel. En la práctica, sin embargo, las diferencias en el entorno de usuario (“userland”) entre los distintos BSD son menores que las que hay en Linux.

Es difícil enumerar los objetivos de cada proyecto puesto que las diferencias son muy subjetivas. En general,

  • FreeBSD tiene como meta ofrecer alto rendimiento y facilidad de uso al usuario final y es uno de los favoritos entre proveedores de contenidos web. Funciona en PC y en procesadores Alpha de Compaq. El proyecto FreeBSD cuenta con un número de usuarios significativamente mayor que los otros proyectos.

  • NetBSD tiene como meta la Portabilidad: No en vano su lema es “of course it runs NetBSD” (que podría traducirse como “claro que funciona con NetBSD”). Funciona en máquinas que abarcan desde PDAs a grandes servidores e incluso ha sido usado por la NASA en misiones espaciales. Es una excelente elección para utilizar viejo hardware no Intel.

Sigue leyendo “Introducción a los Sistemas BSD”

El Sueño de Stallman: GNU Hurd

Bueno, realemente no es el sueño de Stallman, pero hace unos años, antes de crearse el kernel Linux, si lo era, el fue el primero en plantear la necesidad de un sistema operativo libre, en sus inicios se comenzaron a crear aplicaciones libres pero el nucleo de Stallman todavia no se podia utilizar ya que se encontraba en desarrollo, actualmente gracias a mucha gente, podemos utilizar este nucleo aunque solamente para testing o utilizar algunos aplicativos, y a pesar que han pasado mucho tiempo, este proyecto no se abandono y se continua mejorandolo, aqui una breve descripcion.

GNU Hurd es un conjunto de programas servidores que simulan un núcleo Unix que establece la base del sistema operativo GNU. El Proyecto GNU lo ha estado desarrollando desde 1990 como software libre, distribuyéndolo bajo la licencia GPL.

Hurd intenta superar los núcleos tipo Unix en cuanto a funcionalidad, seguridad y estabilidad, aun manteniéndose compatible con ellos. Esto se logra gracias a que Hurd implementa la especificación POSIX (entre otras), pero eliminando las restricciones arbitrarias a los usuarios.

A diferencia de la mayoría de núcleos tipo Unix, Hurd se erige encima de un micronúcleo (actualmente sólo está soportado Mach, aunque existió un proyecto ahora discontinuado para poder ejecutar Hurd en el micronúcleo de segunda generación L4), responsable de facilitarle los servicios de un núcleo más básicos: coordinar el acceso al hardware (a la CPU —mediante multiproceso—, a la memoria RAM —mediante gestión de memoria—, y a otros dispositivos de sonido, gráficos, almacenamiento, etc).

Arquitectura del Sistema

Hay otros sistemas tipo Unix que se ejecutan encima del micronúcleo Mach, como OSF/1, NEXTSTEP, Mac OS X, Lites y MkLinux. Todos ellos están implementados como un único servidor. Por lo tanto, sustituyen el núcleo monolítico de los sistemas Unix tradicionales con dos elementos, el micronúcleo y el servidor Unix.

Sigue leyendo “El Sueño de Stallman: GNU Hurd”

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

El Sistema Operativo mas Seguro del Mundo: OpenBSD

En estos días, me entro la curiosidad sobre cual es el sistema operativo mas seguro, y buscando en la red, encontré que es OpenBSD, un sistema operativo basado en BSD.

OpenBSD es un sistema operativo libre tipo Unix, multiplataforma, basado en 4.4BSD. Es un descendiente de NetBSD, con un foco especial en la seguridad y la criptografía.Este sistema operativo, se concentra en la portabilidad, cumplimiento de normas y regulaciones, corrección, seguridad proactiva y criptografía integrada. OpenBSD incluye emulación de binarios para la mayoría de los programas de los sistemas SVR4 (Solaris), FreeBSD, GNU/Linux, BSD/OS, SunOS y HP-UX.

Licencia BSD

OpenBSD, se distribuye bajo la licencia BSD, aprobada por la OSI.

“Cabe aclarar que la licencia BSD, es aun menos restrictiva que la GPL, permitiendo el uso del código fuente en software no libre, puede argumentarse que esta licencia asegura el “verdadero” software libre, en el sentido que el usuario tiene libertad ilimitada con respecto al software” (Que LOCO).

La META: Ser el Mas Seguro

EL objetivo Principal de OpenBSD es ser el Sistema Operativo mas seguro del mundo, y para conseguirlo, el proyecto fue ubicado en Canada, donde no tienen leyes de exportación contra tecnología criptográfica como en EE.UU., por lo tanto OpenBSD se exporta con criptografía integrada, esto les ha permitido ser el primer sistema operativo en incluir IPsec. (+ info sobre IPSec en http://vig.pearsoned.com/samplechapter/0130118982.pdf)

Otro componente fundamental es OpenSSH, que es una implementación libre del protocolo SSH (secure shell) y que ha sido adoptado por el resto de Unix tanto libres como comerciales, OpenSSH soporta tanto SSH1 y SSH2. (+ info. http://www.snailbook.com/)

MI2G

Según un estudio de la Unidad de Inteligencia  del mi2g revela que los sistemas operativos de servidores online mas seguros del mundo son los sistemas de la familia Open Source de BSD y el sistema Darwin (Apple Computers), además este estudio revela que los servidores Linux fueron los mas hackeados por primera vez, tanto en esferas gubernamentales como no, y los hackeos de sistemas basados en Windows, ha decrecido significativamente.

Aunque en este estudio, no se tuvieron en cuenta muchas otras brechas de seguridad como, virus, troyanos y gusanos.

Transparencia absoluta

En todo lo relativo a los problemas de seguridad, de forma que cuando se descubre algún exploits/problema/bugs, lo que se hace no es ocultarlo sino todo lo contrario, se da a conocer, de esta forma se solucionara lo antes posible.
“La información sobre seguridad se mueve a gran velocidad en los círculos de “crackers”. Por otra parte, nuestra experiencia nos dice que programar y hacer públicas soluciones correctas a problemas de seguridad requiere promedios de una hora de trabajo; la rapidez en las reparaciones es posible. En consecuencia, pensamos que una total transparencia ayuda a aquellos usuarios a quienes de verdad les preocupe la seguridad.”

Auditoria Extrema
El sistema de auditoría de OpenBSD, es uno de los factores claves de su enorme éxito, se trata de auditorías de seguridad «proactividad», es decir intentan detectar los problemas/bug/errores antes de que ocurran y no ha posteriori como hace el resto de sistemas.
“El proceso que seguimos para incrementar la seguridad se basa simplemente en un exhaustivo análisis, fichero por fichero, de todo componente crítico de software. En nuestras auditorías no buscamos agujeros de seguridad, sino errores de programación; si años más tarde alguien descubre que el error solucionado por nosotros constituía un problema de seguridad, bueno… más a nuestro favor. Se han descubierto defectos en casi todas las áreas del sistema. Durante nuestras auditorías han sido encontradas clases de seguridad totalmente nuevas, y a menudo ha sido necesario volver a auditar código fuente que había sido auditado previamente, con estos nuevos defectos como objetivo. Con frecuencia el código se audita múltiples veces y por distintas personas con conocimientos y experiencia en auditorías diferente.”


Ningún Fallo de Seguridad en 6 años

Hasta Junio de 2002, la página web de OpenBSD ostentaba el eslogan: «Ningún fallo de seguridad remoto en la instalación por defecto en los últimos 6 años». Esto debió ser cambiado por: «Un solo agujero de seguridad en la instalación por defecto, en más de 8 años», después de que se encontrara un agujero en OpenSSH y posteriormente por: «Sólo dos agujeros de seguridad en la instalación por defecto, en más de 10 años», al encontrase un fallo en el módulo de IPv6. Alguna gente ha criticado este lema, ya que casi nada está activado en la instalación por defecto de OpenBSD, y las versiones estables han incluido software en el que posteriormente se encontraron agujeros de seguridad. El equipo de programadores de OpenBSD mantiene que el eslogan se refiere una instalación por defecto del sistema operativo, y que es correcto ajustándose a su definición. Uno de las innovaciones fundamentales del proyecto OpenBSD es introducir el concepto del sistema operativo “Seguro por Defecto”. Según la ciencia de la seguridad informática, es estándar, y además fundamental, activar la menor cantidad posible de servicios en máquinas que se encuentren en producción. Aun con todo, incluso sin tener en cuenta esta práctica, OpenBSD es un sistema extremadamente seguro y estable.

Además de todo esto OpenBSD fue el primer sistema operativo libre que se distribuyó con un sistema de filtrado de paquetes incorporado.

Fuentes:

MI2G
http://www.mi2g.net/cgi/mi2g/press/021104.php
http://www.mi2g.net/cgi/mi2g/press/190204_2.php
Wiki
http://es.wikipedia.org/wiki/OpenBSD
Bulma
http://www.bulma.net/body.phtml?nIdNoticia=871
OpenBSD
http://www.openbsd.org/faq/es/faq1.html
www.openbsd.org/es/
ZDNet
http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2822483,00.html
Si quieren instalar OpenBSD:
www.whyfloss.com/pages/conference/static/editions/bsas07/charla14.pdf
The Most secure Unix
http://librenix.com/?inode=9290
Secure Architecture
https://www.journeyed.com/itemDetail.asp?ItmNo=100653095

MinuetOS: El Sistema Operativo Diminuto

minu

Siguiendo con el tema de lenguajes de Programación locos, conocían Assembler, bueno este lenguaje se utiliza para programar PICs, PLC entre otros circuitos lógicos microprogramables para electrónica digital.

Les cuento que navegando en la red encontré el sistema operativo MinuetOS, que es un SO que no tiene sus bases en Unix o Posix, sino que esta enteramente programado en este FASM (es un emsamblador libre), lo que significa que es una locura TOTAL.

El mismo entra en un disco flexible de 1’44MB, y posee:

  • una espectacular Interfaz Grafica
  • resoluciones de hasta 1280×1024
  • soporte de Red con posibilidad de montar servidores http, ftp, y otros
  • posibilidad de instalar juegos como DOOM, QUAKE y Mario Bros.
  • Además de permitir la creación de aplicaciones con FASM (Assembler Libre).

La versión para 32 bits se encuentra bajo la licencia GPL/GNU, mientra que la versión de 64bits lamentablemente esta bajo licencia no libre.

Les dejo unas imágenes espectaculares de la versión de 32 y 64 bits. Les comento que los probe en una maquina virtual y las dos versiones andan de lujo

PD: Si cursas Arquitecturas de Computadoras, este sistema operativo te va a gustar. J

Subir ↑