Recientemente estuve experimentando instalar NetBSD en modo UEFI; y he logrado el experimento, gracias a este enlace del wiki de NetBSD, mas crear manualmente el arranque grub, ademas que el UEFI logre encontrar el grub mediante el bootx64.efi.
La instalacion debe efectuarse de manera manual (por consola) en lugar del instalador, ya que este solo soporta el modo BIOS y puede corromper la tabla de particiones.
En la version 8.0 de NetBSD, se espera el soporte UEFI nativamente, tanto en el instalador como en el metodo de arranque.
En estos dias, he estado experimentando mi entorno de servidor/workstation con TrueOS.Sorpresivamente, al bootear en modo normal (con el kernel GENERIC) la instalacion, esta se detiene en la fase de mensajes del kernel.
Estuve toda esta semana en proceso de investigacion de la causa, ya que esto no pasa en una instalacion de FreeBSD 11. Despues de efectuar la instalacion en ‘Safe Mode’, donde solo trabaja con un solo ‘core’ del procesador, Compile el kernel GENERIC_DRM, el cual tiene menos opciones en los drivers, por lo que es destinado a controladores de video.
Recientemente, se me ocurrio comparar las dos configuraciones de GENERIC en FreeBSD 11 y el GENERIC que trae el source de TrueOS.
FreeBSD es un sistema operativo derivado de la versión 4.4 de BSD-Lite, que a su vez es una versión de UNIX desarrollada por la Universidad de California. Es un sistema operativo libre y gratuito, cuyo código fuente está disponible de manera gratuita para cualquier usuario y fabricante.
Nintendo Switch: dos de las tres grandes consolas están basadas en FreeBSD
La principal ventaja que ofrece FreeBSD a un fabricante como puede ser Nintendo o Sony es que, al contrario de lo que ocurre con Linux, si se modifica el código del sistema operativo, no están obligados a compartirlo o publicarlo, pudiendo mantener en secreto las modificaciones que le hagan, y así se evite que los usuarios encuentren posibles vulnerabilidades para instalar homebrew en sus dispositivos. Además de no tener que publicar el código, BSD ofrece otra serie de ventajas, como su gran estabilidad, su pequeño kernel ideal para sistemas operativos móviles o dispositivos con recursos limitados, además de tener una gran cantidad de funcionalidades de red.
Todo esto es lo que ha llevado que Nintendo Switch o PlayStation 4 utilicen BSD, o al menos un fork de ellos. En el caso de Nintendo, sabemos que su kernel está basado en FreeBSD, mientras que PlayStation 4 está basada en Orbis OS, un sistema operativo derivado directamente de FreeBSD (Xbox One está basada en Windows NT)
También encontramos que sistemas operativos como macOS o iOS están basados en Darwin, que es a su vez también un fork de BSD. Tanto es así, que, si se publica una imagen de un juego desde la Nintendo Switch a Twitter, en el tweet aparecerá que el tweet ha sido publicado vía Safari, mostrando la gran similitud con la que cuentan ambas plataformas.
Sistema operativo libre no implica facilidad de hackeo
Utilizar FreeBSD para basar el sistema operativo de la consola en él permite que Nintendo Switch sea la primera consola de Nintendo en soportar multitarea real (con el permiso de la NES Mini, que utiliza Linux para ejecutar juegos de la NES original mediante emulación). Además, hacer un kernel personalizado con FreeBSD es más barato, es más difícil que se encuentren vulnerabilidades (como las que tenía por ejemplo la 3DS), además de la gran optimización que comentábamos.
Que Nintendo Switch utilice un sistema operativo ampliamente conocido por los usuarios no quiere decir que sea fácil de hackear, e incluso puede significar lo contrario. La única esperanza es que las modificaciones que Nintendo haya introducido en el sistema operativo algunos fallos, o que incluso se abra la puerta a poder emular la consola en PC. La 3DS, Wii y la Wii U utilizaban un sistema operativo personalizado y totalmente cerrado, y a pesar de ello fueron crackeadas, además de emuladas con emuladores.
Por último, aunque para portar juegos no habrá mucha diferencia, a la hora de portar aplicaciones como Netflix el proceso será más sencillo, abriendo también una nueva ventana a mejorar fácilmente la consola a través de drivers y mejoras en el kernel. En definitiva, Switch es una consola más abierta a nivel de software, además de a nivel de hardware, utilizando conectores como el USB Tipo C o ser fácilmente reparable, tal y como han comprobado en iFixit.
Recientemente estoy experimentando con TrueOS, que no es mas que una variante de FreeBSD en version -CURRENT (12), aunque esta vez estabilizada por la comunidad de desarrolladores, entre ellos Kris Moore, que es el fundador de este proyecto, anteriormente llamado PC-BSD.
TrueOS es un FreeBSD pensado para los usuarios que se inician en este mundo BSD, ademas de ser para uso de escritorio o de servidor. Las dos versiones son instalables desde la imagen ISO o IMG.
TrueOS trae las mejoras del futuro FreeBSD 12. Aunque se mantiene rolling release. Este posee OpenZFS como principal sistema de archivos, ademas de poder cifrarlo.
Personalmente instale la version server; que no instala todos los paquetes destinado para escritorio; aun asi manteniendo las funcionalidades que posee.
El manejo de componentes graficos y de «video cards» son en base a Linux DRM 4.9, por lo que es soportado en los ultimos modelos en este sistema.
Para la fecha de 2038, existe un problema que pasara con los relojes de Unix y se basa en el descontrol del tiempo, puesto en una fecha inapropiada.
Personalmente hice una prueba, en Slackware 64 bits (1ra foto), FreeBSD 64 bits (2da foto) y Tiny Core 32 bits.
Es evidente el descontrol de reloj en sistemas de 32 bits (i386); no siendo asi en sistemas de 64 bits en el cual no se evidencia el problema. Afortunadamente la arquitectura de 32 bits ha sido descartada en la actualidad en el mercado, mediante el surgimiento de sistemas operativos de solo 64 bits.
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.
Gentoo es una distribucion Linux, la cual su paqueteria es manejada por portage, en donde esta distribucion tomo idea desde el ports de FreeBSD. Hay que aclarar que los comandos para manejar entre uno y otro no son iguales. Existe tambien la diferencia de que en Gentoo no dispone de creacion de binarios de por si, principalmente compila e instala los paquetes.