# NetBSD

NetBSD es un sistema operativo de la familia Unix de código abierto y libre, y, a marzo de 2019, disponible para 58 plataformas de hardware. Su diseño y sus características avanzadas lo hacen ideal para multitud de aplicaciones.
NetBSD ha surgido como resultado del esfuerzo de un gran número de personas que tienen como meta producir un sistema operativo tipo Unix accesible y libremente distribuible.

## Historia

La primera versión de NetBSD (0.8) data de 1993 y surge del sistema operativo BSDLite 4.3, una versión de UNIX desarrollada en la Universidad de California Berkeley, y del sistema 386BSD, el primer BSD portado al CPU Intel 386.
NetBSD toma su nombre de la versión 4BSD/Tahoe-Net/1 de los BSD, pues sobre ellos se desarrolló el protocolo TCP/IP, el protocolo más importante en Internet. NetBSD, al igual que FreeBSD, se deriva de la última versión de los BSD, la 386BSD 0.1. El primer release de NetBSD (la versión 0.8) vio el mundo el 20 de abril de 1993.

## Características

NetBSD está basado en una gran variedad de software de libre distribución que incluye entre otros, a 4.4BSD Lite de la Universidad de California-Berkeley, a Net/2 (Berkeley Networking Release 2) el sistema de ventanas X del MIT y software de GNU.
Actualmente NetBSD se centra en ofrecer un sistema operativo estable, multiplataforma, seguro.Está diseñado teniendo como prioridad escribir código de calidad y bien organizado, y teniendo muy en cuenta también el cumplimiento de estándares (POSIX, X/Open y otros más relevantes): prueba de este buen diseño es su amplia portabilidad.
Se trata de un sistema operativo maduro, producto de años de desarrollo (los orígenes de BSD están sobre el año 1977), y partiendo del sistema UNIX sexta edición.

### Ventajas

Algunas ventajas sobre otros sistemas operativos:
* Foco especial en la calidad y portabilidad de código. Portado a 56 arquitecturas.
* Suele ser el pionero en implementar nuevas tecnologías (por ejemplo IPv6).
* Alta seguridad y estabilidad. Fue usado en la NASA.
* Sistema de ficheros BSD FFS (Fast File System), rápido y fiable.
* Seguridad: soporte de IPsec.
* XEN Dom0: soporte nativo de máquinas virtuales XEN desde la versión 3.0.

## Portabilidad

NetBSD ha sido portado a un gran número de arquitecturas de computadores, desde minicomputadores VAX a PDAs Pocket PC; el lema de NetBSD es «Of course it runs NetBSD» (por supuesto que corre NetBSD). El núcleo y el espacio de usuario para todas las plataformas soportadas (que comprenden alrededor de una veintena de diferentes procesadores) se compilan desde un árbol de código central y unificado gestionado con CVS.
Debido a la gestión de código fuente centralizada y a un diseño altamente portable, las adiciones de funcionalidad general (no específicas de un hardware en concreto) benefician a todas las plataformas inmediatamente sin necesidad de «portarlas».

### Controladores de dispositivos

El desarrollo de controladores de dispositivos es también con frecuencia independiente del hardware. Es decir, el controlador para un dispositivo PCI funcionará independientemente de que tal dispositivo esté instalado en un i386, Alpha, PowerPC, SPARC o cualquier otra plataforma con buses PCI. Muchos controladores de NetBSD también tienen el código específico de un cierto bus dividido en subcontroladores de bus, permitiendo a un mismo controlador para un dispositivo específico operar vía diferentes buses (por ejemplo ISA, PCI, PCMCIA...).
Esta independencia de plataforma ayuda gratamente al desarrollo de sistemas embebidos, especialmente desde la aparición en NetBSD 1.6 de la compilación cruzada:

#### Compilación cruzada

Empezando en NetBSD 1.6, el juego de herramientas completo de compiladores, ensambladores, enlazadores y otras soportan completamente la compilación cruzada, permitiendo compilar un sistema NetBSD completo para una arquitectura desde otro sistema de diferente arquitectura (usualmente más potente), incluso de diferente sistema operativo (el framework de compilación cruzada soporta cualquier sistema POSIX).

### Capa modular de portabilidad

La portabilidad de NetBSD es debida a su única capa modular de portabilidad (MPL por sus siglas en inglés, Modular Portability Layer). Con la MPL el controlador de dispositivo se aísla completamente de la plataforma hardware, instrucciones E/S, interbloqueo, recuperación de errores, incluso periféricos que usan una pseudo-DMA para escribir un buffer RAM con copy-in y copy-out de la CPU local son transparentemente manejados en la capa de controladores. Por otra parte, varios dispositivos empotrados usando NetBSD no han requerido de software de desarrollo adicional otro que el juego de herramientas.
En otros sistemas como GNU/Linux, en contraste, el código del controlador debe ser readaptado para cada nueva arquitectura. Como consecuencia, en esfuerzos recientes por parte de desarrolladores de NetBSD y Linux para portar el sistema, NetBSD ha tomado un 10% del tiempo del de Linux para ser portado al nuevo hardware. Los ingenieros que portaron NetBSD al procesador SuperH tardaron solo seis semanas; para portar Linux se tardó tres meses. NetBSD fue portado a la plataforma AMD64 en aproximadamente un mes, mientras Linux se tomó unos seis meses.
En 2005, como demostración de la portabilidad y conveniencia de NetBSD para aplicaciones empotradas, Technologic Systems, un vendedor de sistemas hardware empotrados, diseñó y demostró un tostador de cocina funcionando con NetBSD.

## Logo

El logotipo de NetBSD, una gran bandera ondeante, fue diseñado por Grant Bisset luego de que varios miembros del equipo de desarrollo de NetBSD, señalaron al viejo logo de 1994 como inadecuado para un proyecto internacional pues estaba inspirado en el levantamiento de la bandera estadounidense en Iwo Jima.

## Licencia

Todo el código fuente de NetBSD está liberado bajo la licencia BSD y sus cláusulas 1,2,3 y 4. Esto hace posible que cualquiera pueda usar, modificar e incluso vender NetBSD siempre y cuando mantenga los reconocimientos.
El 20 de junio de 2008, la Fundación de NetBSD anunció una transición a la licencia BSD de dos cláusulas, citando algunas preocupaciones con el soporte de UCB de la cláusula 3 y aplicabilidad industrial de la cláusula 4.
NetBSD también incluye las herramientas de desarrollo de GNU y otros paquetes que están cubiertos por la licencia GPL y otras licencias de código abierto.

## pkgsrc

Uno de los proyectos más interesantes de NetBSD es su sencillo y poderoso sistema de paquetes, pkgsrc. Dado que el kernel de NetBSD es portable a muchas arquitecturas, pkgsrc es un meta sistema, esto es, descarga código fuente y compila para producir los binarios. Este sistema de paquetes funciona de manera similar a emerge, de la distribución Gentoo Linux. Pkgsrc es una manera sencilla de tener las últimas versiones de software como Openoffice.org, KDE o Gnome, entre otros muchos programas.
Recientemente Sun Microsystems ha financiado parte del desarrollo de pkgsrc. Actualmente pkgsrc está disponible para diferentes sabores de Unix como Irix, Solaris, FreeBSD, OpenBSD, en la lista, además, se incluye a Slackware Linux, aunque en principio es posible instalarlo en cualquiera de las distribuciones de GNU/Linux. DragonFlyBSD, otra distribución de BSD, también ha adoptado a pkgsrc como su sistema de paquetes. Este sistema creó su última actualización de un sistema el 25 de septiembre de 2005, el cual correspondería a la versión 5.1.