Mientras que OpenBSD es un sistema operativo Unix muy tradicional y resulta muy familiar a aquellos que hayan utilizado otros sistemas operativos de la familia Unix, existen diferencias importantes. Si el único conocimiento de los sistemas Unix se limita a una experiencia con una variante de Linux, seguramente OpenBSD resultará "extraño". Del mismo modo en que Linux resulta extraño a cualquier usuario proveniente de OpenBSD. Si en cambio uno conoce la filosofía Unix y ha extendido su conocimiento más allá de una plataforma en particular, encontrará a OpenBSD muy familiar y un auténtico Unix. Por el contrario, si uno ha aprendido Unix usando la metodología "tipea ésto para hacer aquello" o a través de libros como "Aprende Ubuntu 16.04 en 31.4 horas", y cree que así "sabe" Unix, encontrará a OpenBSD muy diferente.



Una diferencia importante entre OpenBSD y otros sistemas operativos es la documentación. Los desarrolladores de OpenBSD son muy orgullosos por sus man pages. Estas son la fuente autorizada de la documentación de OpenBSD (no así la FAQ de OpenBSD, linuxito.com, ni cualquier otra guía, "howto" o manual de sitios de terceros). Cuando un desarrollador aplica un cambio en el sistema, se espera que actualice la página de manual junto con el cambio al código fuente del sistema, no luego, "cuando pueda" o "cuando alguien reclame". Existe una página de manual para cada programa, utilidad, driver, archivo de configuración, y demás en el sistema base. Por esto se espera que un usuario revise las páginas de manual antes de pedir ayuda en las listas de correo de OpenBSD (donde rige estrictamente el RTFM).

OpenBSD es un sistema Unix de estilo BSD casi puro, siguiendo estrechamente el diseño 4.4BSD. Linux y Solaris son (eran, Solaris fue comprado por Oracle y ahora es Oracle Solaris, de código cerrado, y Linux ha degenerado con la llegada de systemd) sistemas estilo "System V". Algunos sistemas Unix (incluyendo algunas distribuciones Linux como Slackware) mezclan conceptos de SysV y BSD. Un lugar común donde esto genera confusión es en los scripts de inicio. OpenBSD utiliza el sistema de inicio rc tradicional de 4.4BSD.

OpenBSD es un sistema completo, pensado para mantenerse sincronizado. No es un "kernel más utilidades" (GNU/Linux) que puede ser actualizado por separado uno de otro. Si no se mantiene el sistema en correcta sincronía (kernel, utilidades y aplicaciones) cosas malas sucederán.

Como muchas aplicaciones no son desarrolladas para compilar y correr directamente en OpenBSD, existe un árbol de ports (derivado originalmente de FreeBSD), un sistema a través del cual los usuarios pueden fácilmente obtener código, parcharlo para OpenBSD, instalar dependencias, compilarlo, instalarlo y eliminarlo de manera estandarizada y mantenible. Los paquetes precompilados son creados y distribuidos por el equipo de desarrollo de OpenBSD. Se recomienda a los usuarios utilizar éstos antes que compilarlos por sí mismos.

OpenBSD utiliza CVS como sistema de control de versiones para llevar el curso de los cambios en el código fuente. Esto permite a cualquier usuario obtener el código fuente completo para cualquier cualquier versión de OpenBSD (desde la 2.0 hasta la actual) en cualquier momento, y acceder a los cambios más recientes dentro del lapso de unas horas desde su commit.

OpenBSD produce una versión estable disponible en CD y HTTP cada seis meses en un esquema predefinido.

OpenBSD está sometido a un exhaustivo y continuo proceso de auditoría de seguridad para garantizar la calidad (y por ende seguridad) del código.

El kernel de OpenBSD es el archivo /bsd.

Los nombres para los discos rígidos suelen ser /dev/wd (SATA/IDE) y /dev/sd (SCSI o aquellos que emulan discos SCSI, tales como dispositivos USB).

En Linux, route sin argumentos retorna el estado de todas las rutas activas. En OpenBSD (y otros) es necesario agregar el parámetro "show", o utilizar netstat con el flag -r.

OpenBSD no soporta sistemas de archivos que utilizan journal tales como ReiserFS, JFS o XFS. En lugar de eso utiliza la característica soft updates (al igual que FreeBSD con UFS) del robusto FFS (Unix Fast File System) para lograr las metas de rendimiento y estabilidad.

OpenBSD incluye PF (Packet Filter), no ipfw, ipchains, netfilter, iptables o ipf. Esto significa que NAT (IP masquerading en Linux), encolado y filtrado son manejados a través de pfctl, pf y pf.conf.

Las direcciones de las interfaces de red son almacenadas en archivos /etc/hostname.if. El nombre del sistema se guarda en el archivo /etc/myname y la puerta de enlace predeterminada (default gateway) en /etc/mygate.

La shell por defecto de OpenBSD es ksh, implementada por pdksh (Public Domain Korn Shell). Además incluye csh y sh.

El manejo de contraseñas en OpenBSD es diferente a otros sistemas Unix. Las claves se guardan en el archivo master.passwd que tiene acceso de lectura sólo para root. Este archivo se modifica sólo a través de la utilidad vipw.

Los dispositivos son nombrados por driver, no por tipo. Esto significa que no hay eth0, eth1, etc. En lugar de eso se nombran em0 para una interfaz Intel PRO/1000, bge0 para una interfaz Broadcom BCM57xx o BCM590x, ral0 para un dispositivo wireless RaLink, etc. Todos estos drivers tienen páginas de manual en la sección 4 (por ejemplo man 4 em).

OpenBSD para i386, amd64 y otras plataformas utiliza un esquema de particionado de dos capas, donde la primera capa es la partición fdisk visible por el BIOS (familiar a la mayoría de los usuarios de sistemas IBM compatibles). Y la segunda capa es disklabel, el sistema de particionado tradicional de los sistemas FreeBSD. OpenBSD soporta hasta 15 particiones disklabel por disco, todas residentes dentro de una misma partición fdisk. Esto permite que OpenBSD coexista con otros sistemas operativos. OpenBSD debe ser instalado en una de las cuatro particiones primarias. Si no se respeta este requisito, por ejemplo al utilizar una tabla GPT, el sistema no bootea.

Algunos sistemas operativos alientan a sus usuarios a compilar su propio kernel personalizado. Los usuarios de OpenBSD en cambio son alentados a utilizar el kernel genérico provisto y testeado por los desarrolladores. Los usuarios que intentan compilar u optimizar su propio kernel generalmente provocan más problemas de los que solucionan, y no tienen soporte por parte de los desarrolladores.

OpenBSD trabaja duro para mantener la política de licencias y seguridad del proyecto. Por esta razón, algunas nuevas versiones de ciertas piezas de software que no logran cumplir las metas de licencia y robustez requeridas no son (y puede que tal vez nunca lo sean) integradas al proyecto OpenBSD. La seguridad y las licencias libres nunca ocuparán el asiento trasero para dejar el mayor número de versión al mando.

OpenBSD soporta sistemas de archivos ext2 en modo lectura/escritura y sistemas de archivos ext4 en modo sólo lectura.

A simple vista, y luego de resumir estas principales diferencias con GNU/Linux y otros sistemas operativos, OpenBSD luce como el sueño de un Sysadmin: filosofía Unix, respeto por las licencias libres y la calidad del código fuente, la seguridad como objetivo principal, la documentación como metodología de trabajo, y como cereza del postre, una comunidad que alienta a nuevos usuarios a leer las páginas de manual... RTFM ;)

Fuente

OpenBSD FAQ - Migrating to OpenBSD


Tal vez pueda interesarte


Compartí este artículo