Instalación de FreeBSD, Modulo de Kernel Hola Mundo e Interfaz grafica FluxBox
Tiempo total: 2 días con 2:3:59 hrs
Antes de iniciar con los pasos, debo de aclarar algunos problemas encontrandos y el escenario en el cual desarrolle esta publicacion.
1. El medio de virtualizacion fue VirtualBox 4.2.12 r84980, creando un disco duro de 14 GB con una memoria RAM de 1GB, asignando de tarjeta de video 23MB, la configuración de red fue únicamente el adaptador uno NAT y la ISO de FreeBSD es FreeBSD-10.0-RELEASE-i386-dvd1.iso.
2. La instalación utilizando el software de vitalización Oracle VirtualBox 4.2.12 era totalmente imposible con las ISOs FreeBSD-10.0-RELEASE-ia64-disc1.iso dado que la arquitectura no era compatible con VirtualBox, la solución a este problema es descargar la ISO con arquitectura 32 Bits FreeBSD-10.0-RELEASE-i386-dvd1.iso, también está el disco, pero este ofrece únicamente las funcionalidades mínimas.
Instalación de FreeBSD
1. Al insertar el disco o usar la ISO en la maquina virtual, la opción a seleccionar es Boot Multi User presionando enter.
2. El siguiente comando es Install en la pantalla azul que ha aparecido, mostrando el siguiente menú.
3. Seleccionamos el teclado latino americano para el correcto uso del teclado con acentos.
4. El nombre de equipo en este caso será OS2.
5. Los componentes adicionales a instalar en el sistema operativo serán los Ports, que son utilizados para agregar aplicaciones mediante la compilación del código fuente y también las fuentes del Kernel para cada arquitectura. Esta opción, SRC esta disponible para la ISO FreeBSD-10.0-RELEASE-i386-disc1.iso
6. A continuación se crearan las particiones manuales para la instalación del sistema operativo Windows.
7. Se crea una tabla común de particiones MBR.
8. A continuación se crea la partición maestra llamada BSD, al presionar Crear aparecen los parámetros por defecto que serán del mismo tamaño del disco creado.
9. Las particiones son las siguientes: Una de 2GB para almacenar el directorio raíz. En este menú, con las flechas mueves el cursor a los lados, con la tecla Tab lo colocas en el área de arriba, en las opciones de tamaño, tipo y carpeta del sistema.
10. La partición de 1 GB para el área de intercambio swap.
11. Otra de 1 GB para el directorio /var
12. Otra de 1 GB para el directorio /tmp
13. Y finalmente, asignamos el resto del disco para el usuario. 3 GB para la carpeta /usr en este caso.
14. A continuación se muestra la tabla de particiones, bien – por último se presiona Finish y Commit.
15. Se observa cómo se instalan los paquetes.
16. En el siguiente paso se ingresan los detalles de inicio de sesión. En este caso la contraseña.
17. A continuación las configuraciones básicas:
- Se selecciona la tarjeta de red. La única en este caso es em0.
- Protocolo de red IPV4.
- Se acepta DHCP para obtener la IP.
- Se cancela la configuración de IPV6 dado que no la utilizaremos.
- A continuación la configuración del DNS, que es la IP del router local.
18. El siguiente parámetro son los servicios que iniciaran en el sistema, dejaremos por defecto sshd y agregamos moused para gestionar el ratón.
19. En esta instalación creamos el usuario llamado jose.
20. La siguiente pantalla sirve para modificar los datos que hemos ingresado, se presiona finalizar.
21. Se reinicia la maquina virtual.
Modulo del Kernel
1. En el directorio /usr/home/ se crea la carpeta con mkdir modulo (En mi ejemplo olvide entrar a este directorio) y creamos el archivo con vi Makefile en el cual se agrega el siguiente texto:
KMOD = hola_mundo
SRCS = hola_mundo.c
.include
Bsd.kmod.mk construye los módulos y los enlaza con el kernel, KMOD define el nombre del modulo y SRCS es el código fuente del mismo. Los comandos que utilice con vi son:
• Para agregar texto, a
• Para eliminar texto, supr
• Para guardar el documento, :w (Debes presionar esc primero)
• Para quitar vi, :q (Debes presionar esc primero)
2. El siguiente paso es construir el código fuente del modulo, con el siguiente texto:
Vi hola_mundo.c
#include <sys/param.h>
#include <sys/module.h>
#include <sys/kernel.h>
#include <sys/systm.h>
static int event_handler(struct module *module, int event, void *arg) {
int e = 0;
switch (event) {
case MOD_LOAD:
uprintf("\n\nBienvenido\n\n");
break;
case MOD_UNLOAD:
uprintf("\n\nSaliendo\n\n");
break;
default:
e = EOPNOTSUPP;
break;
}
return(e);
}
static moduledata_t hola_mundo_conf = {
"hola_mundo",
event_handler,
NULL
};
DECLARE_MODULE(hola_mundo, hola_mundo_conf, SI_SUB_DRIVERS, SI_ORDER_MIDDLE);
Al inicio se observan las librerías necesarias para crear el modulo, la función event_handler contiene sentencias para ejecutar el código cuando se inicia y cuando se finaliza, mostrando los mensajes de bienvenida y despedida.
3. Ahora se ejecuta el comando con make.
4. Una vez se crea el modulo, se carga y se finaliza con los siguientes comandos:
kldload ./hola_mundo.ko
kldunload hola_mundo
El modulo finaliza correctamente mostrando los mensajes apropiadamente.
Fluxbox
1. Para instalar la interfaz grafica, es necesario tener instalado Xorg, que es un sistema de ventanas, este se instala con el comando:
# cd /usr/ports/x11/xorg
# make install
Previo a l instalación de Xorg, se edita el documento /etc/make.conf y se agrega: X_WINDOW_SYSTEM=xorg para indicar que se utilizara este paquete. A continuación, se instala Fluxbox el cual es una solución más simple que Gnome.
2. Para instalar Fluxbox, se ejecuta el siguiente comando:
# cd /usr/ports/x11-wm/fluxbox
# make install clean
3. Se modifica el archivo con el siguiente comando:
hald_enable=”YES”
dbus_enable=”YES”
El siguiente paso es editar el archivo ~/.xinitrc, agregando Firefox y por ultimo Fluxbox.
Exec Xterm &
Exec Firefox &
Exec Fluxbox
El simbolo ~ representa la carpeta home del usuario que estas usando.
4. Para iniciar Fluxbox, únicamente se ejecuta el siguiente comando: startx
5. Para agregar opciones al menú Fluxbox, se edita el siguiente archivo: ~/.fluxbox/menú, agregando la siguiente entrada:
[submenu] (Terminals)
[exec] (Firefox) {firefox}
Esto significa, (Firefox) será el nombre en el menú y lo encerrado entre llaves es el comando de la consola.
6. Fluxbox corriendo.
Referencias
[ftp://ftp.freebsd.org/pub/FreeBSD/releases]
[http://libuntu.wordpress.com/2013/10/16/turorial-de-instalacion-de-freebsd/]
[http://www.freebsd.org/releases/10.0R/relnotes.html]
[https://www.freebsd.org/doc/handbook/svn.html]
[https://www.freebsd.org/doc/handbook/x-install.html]
[http://bsdtutorial.org/freebsd/fluxbox/]
[https://www.kernel.org/doc/htmldocs/kernel-api/]
[http://www.buenastareas.com/ensayos/Ventajas-Del-Sistema-Operativo-Unix/84778.html]
[http://piedis11.blogspot.com/2008/10/ventajas-y-desventajas-de-unix.html]
[http://xathrya.web.id/blog/2013/02/23/install-and-configure-fluxbox-as-window-manager-for-freebsd/]
[http://bsdtutorial.org/freebsd/fluxbox/]
[https://wiki.freebsd.org/VirtualBox]
[http://www.freshports.org/x11/xorg-minimal]
[http://www.freebsdmadeeasy.com/tutorials/freebsd/set-up-xorg-on-freebsd.php]
[http://www.freebsdmadeeasy.com/tutorials/freebsd/fluxbox.php]
[http://www.freesoftwaremagazine.com/articles/writing_a_kernel_module_for_freebsd]