FreeBSD

Sistema Operativo FreeBSD.

The FreeBSD Forums – Al fin!!!

The FreeBSD Forums

Esta extraordinaria noticia llego hoy via RSS en la página oficial de FreeBSD, la cual anuncia la puesta en marcha de su foro oficial. Excelente trabajo y mis felicitaciones. Siguen siendo lo mejor.

SCHED_4BSD o SCHED_ULE

SCHED_ULE es un planificador experimental que proporciona una serie de características avanzadas no presentes en sched_4bsd, el planificador por defecto del sistema. Estas nuevas características incluyen:

  • Thread CPU affinity
  • CPU topology awareness, including for hyper-threading.
  • Per-CPU run queues.
  • Interactivity heuristics that detect interactive applications and schedules them preferentially under high load.

Es dificil dar traducción a estas definiciones pero para quienes estan ya mas familiarizados con el kernel de FreeBSD, es facil de entender. Cabe señalar tambien que su funcionalidad en MultiProcesadores es sumamente eficiente.

Los siguientes sysctls son pertinentes a la operación de sched_ule:

kern.sched.name

Ademas de esto para reemplazar el Planificador por defecto se debe reemplazar la linea en su configuración de kernel:

options       SCHED_4BSD # 4BSD scheduler
por
options       SCHED_ULE  # ULE scheduler

mono

Mono 2.0.1 en FreeBSD

El proyecto Mono, está basado en los estandares de la ECMA para .NET Framework de Microsoft, en donde componentes basicos de Mono son:

C# Compiler. Es un completo compilador de las versiones 1.0, 2.0 y 3.0 del Lenguaje C#.

Mono Runtime. Implementa el Common Language Infrastructure (CLI), tambien nos prove de un compilador Just in Time (JIT), un cargador de librerias, un limpiador de memoria, sistema de hilos, y funciones de interoperabiliadad.

Libreria de clases basicas. Contiene una gran cantidad de clases compatibles con el .NET Framework de Microsoft

Mono en freeBSD

Gracias a la activa participación de Phillipe Neumann existe la posibilidad de usarlo en su maxima capacidad en nuestros FreeBSD.

Como cambiar el color de letras consola en FreeBSD

Tiempo atras CdK1 me consulto si podia cambiar el color de las letras a la consola de su FreeBSD, segun el alguna vez yo se lo habia explicado, pero yo no recuerdo XD, bueno despues de mucho buscar el mismo encontro respuesta a su pregunta y aqui estan las definiciones para agregar a la compilación del Kernel

options         SC_NORM_ATTR=(FG_LIGHTGREY|BG_BLACK)
options         SC_NORM_REV_ATTR=(FG_YELLOW|BG_GREEN)
options         SC_KERNEL_CONS_ATTR=(FG_BROWN|BG_BLACK)
options         SC_KERNEL_CONS_REV_ATTR=(FG_BLACK|BG_RED)

Ademas, para quienes no les guste este conjunto de colores presentados en este ejemplo, podran ver el abanico de posibilidades entregado por el sistema aqui:

less /usr/include/machine/pc/display.h

El agradecimiento por la información a “CdK1″, por el buen aporte.

Grub – Iniciar multiples Sistemas Operativos

Eh decidido actualizar este documento gracias “Javier” quien me solicito la instalación de un Unix que detecte su Atheros, obviamente FreeBSD lo hace y nativo por lo que en proceso me encontré con nuevas problemáticas al momento de escribir en el disco.

La instalación y su configuración, en forma detallada.

Instalación:

# cd /usr/ports/sysutils/grub/
# make build install clean

Esto dejara los binarios listos para su configuración y puesta en marcha, por lo que desde ahora en adelante todo lo que se debe hacer es con mayor cuidado ya que no hay que olvidar que se está trabajando con el particionado del disco y la información completa de este.

Luego de haber instalado GRUB:

# cd /boot
# mkdir grub

Crear el directorio donde se almacenaran los archivos capaces de leer los posibles Archivos de Sistemas (File Systems) que se instalaran en la estación de trabajo, dejando en claro que maneja mucho mas que 2 booteos de sistema:

# cd /boot/grub
# cp -v /usr/local/share/grub/i386-freebsd/* /boot/grub/

Quedando el directorio algo similar a esto:

# ls -l
-r–r–r–  1 root  wheel    9236 Dec 12 23:34 e2fs_stage1_5
-r–r–r–  1 root  wheel    9028 Dec 12 23:34 fat_stage1_5
-r–r–r–  1 root  wheel    8180 Dec 12 23:34 ffs_stage1_5
-r–r–r–  1 root  wheel    8276 Dec 12 23:34 iso9660_stage1_5
-r–r–r–  1 root  wheel    9888 Dec 12 23:34 jfs_stage1_5
-r–r–r–  1 root  wheel    8372 Dec 12 23:34 minix_stage1_5
-r–r–r–  1 root  wheel   11060 Dec 12 23:34 reiserfs_stage1_5
-r–r–r–  1 root  wheel     512 Dec 12 23:34 stage1
-r–r–r–  1 root  wheel  121768 Dec 12 23:34 stage2
-r–r–r–  1 root  wheel  121768 Dec 12 23:34 stage2_eltorito
-r–r–r–  1 root  wheel    8520 Dec 12 23:34 ufs2_stage1_5
-r–r–r–  1 root  wheel    7860 Dec 12 23:34 vstafs_stage1_5
-r–r–r–  1 root  wheel   10652 Dec 12 23:34 xfs_stage1_5

Pudiendo así con estos archivos leer varios sistemas en tiempo de booteo, bueno ahora con solo esto no basta es necesario para esto su archivo de configuración el cual sale un poco de los esquemas de lo normalmente acostumbrado, ya que este archivo no es “grub.conf” como por defecto alguien pensaría que se pudiese llamar si no que “menu.lst”.

Este archivo contiene toda la configuración de particionamiento, de cómo y en donde debe ir a obtener el o los Sistemas Operativos con los que va a presentar una lista de selección de booteo, en este caso en particular les comento que solo veremos FreeBSD y Microsoft por lo que voy a presentarles la configuración y posteriormente la explicaremos:

# cat menu.lst
default 1
timeout 10
title Microsoft Windows
       root (hd0,0)
       savedefault
       makeactive
       chainloader +1
title FreeBSD
       root (hd0,a)
       kernel /boot/loader
       boot

Así se ve la configuración más básica de el archivo menu.lst.

Hasta aquí todo aun es en cierto modo es simple. Lo que a partir de ahora se les enseñara es a tomar toda esta recopilación de archivos y de configuraciones y activarlos al sistema en su MBR (Lease Master Boot Record) para que de esta forma GRUB tome el control de la selección de MultiBooteo de el o los Sistemas Operativos residentes en la maquina.

NOTA: Es muy importante recalcar que para poder ejecutar lo que a continuación se les va a explicar, y que es el instalar GRUB en el MBR que este proceso en FreeBSD no se va a llevar a cabo mientras no se le diga al sistema que esto se esta haciendo y la forma de hacerlo es:

# sysctl kern.geom.debugflags=16

Permitiendo con esto a GRUB poder almacenar su información de ejecución en el MBR.

Luego a partir de consola se debe ejecutar su instalación de la siguiente forma:

# grub

NOTA: Debo recalcar que este paso es distinto a los pasos que van a encontrar en la red o googleando, ya que lo que se está ejecutando es la escritura del MBR en forma directa y no como los demás tutórales dicen que se debe hacer; y que es creando un diskette de booteo previo a la instalación que aquí se está haciendo.

Continuando, esto nos mostrara una ventana como la siguiente en la cual se mostraran los pasos a seguir que después se explicaran con detalle:

GNU GRUB  version 0.97  (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported.  For the first word, TAB
lists possible command completions.  Anywhere else TAB lists the possible
completions of a device/filename. ]
grub> root (hd0,a)
Filesystem type is ufs2, partition type 0xa5

grub> setup (hd0)
Checking if “/boot/grub/stage1″ exists… yes
Checking if “/boot/grub/stage2″ exists… yes
Checking if “/boot/grub/ufs2_stage1_5″ exists… yes
Running “embed /boot/grub/ufs2_stage1_5 (hd0)”…  17 sectors are embedded.
succeeded
Running “install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,1,a)/boot/grub/stage2 /boot/grub/menu.lst”… succeeded
Done.
grub> quit

Ahora explicaremos paso a paso lo realizado en este proceso.
En el prompt de GRUB se escribieron 3 comandos para su instalación, de los cuales 2 son extremadamente importantes, el primero de ellos root (hd0,1,a) le dice a GRUB que el su configuración y binarios de Sistemas de Archivos se encuentra en esa partición. El segundo comando es setup (hd0) le esta ordenando a GRUB que en base a su configuración de el archivo menu.lst se instale en el HD0 que es el disco en donde se encuentran el o los Sistemas Operativos yendo a buscar a su ruta por defecto y que es /boot/grub/, encontrando así todo lo necesario para que esta condición de instalación se cumpla.
Solo nos queda aprender como personalizar aun mas nuestro grub para mejor presentación del mismo por lo que voy a darles una muestra de los que se puede lograr con él, ya que la interface que todos conocemos de Grub en las versiones de Linux es grafica, aquí explicaremos el cómo se logra que esto sea así

Esta es la línea que se debe agregar al archivo de configuración de Grub para que puedan ver la imagen que aquí se muestra pero como fondo de nuestro menú de selección de sistema:

splashimage=(hd0,a)/boot/grub/zion.xpm.gz