Mostrando entradas con la etiqueta Minix. Mostrar todas las entradas
Mostrando entradas con la etiqueta Minix. Mostrar todas las entradas

viernes, 29 de junio de 2012

Hemeroteca #1

Ya han pasado seis meses de este 2012 y seguro que muchos estamos ya pensando en coger vacaciones dentro de poco. En esta entrada recopilaré para que han dado estos seis meses en El blog de pico.dev. Si te interesan entradas como estas y aún no lo has hecho suscríbete al feed de mi blog, tengo una buena cantidad de entradas esperando a ser escritas y que iré publicando a razón de una por semana si dispongo del tiempo y el ánimo para escribirlas.

En estos seis meses he escrito estas 23 entradas agrupadas por temática:

Varios
Como mención especial integré el widget de karmacracy que puede verse al final de cada entrada mediante el cual cualquier usuario puede compartir la entradas de este blog en sus redes sociales como facebook, twitter o linkedin de una forma rápida y sencilla obteniendo a cambio un lugar en el widget para los usuarios que más clics atraigan.

Calendario Arch Linux 2012
last, como obtener los últimos inicios de sesión
Obtener la clave de una red WIFI WEP
Guía post instalación Minix
Karmacracy y como integrarlo en Blogger
Guía instalación CyanogenMod

Programación
Esta ha sido la temática de la que más entradas he escrito, principalmente alrededor de la programación en Java y del desarrollo web.

Errores de precisión, redondeo y representación con float y double
Herramienta de construcción Gradle
Usar Gradle mediante Gradle wrapper
Por qué usar enums en vez de constantes en Java
Debug de una aplicación Java
5 opciones de hosting para aplicaciones Java
Patrones de diseño en la programación orientada a objetos
Ejemplo del patrón de diseño Command y programación concurrente en Java
Librerías de logging para Java (slf4j, log4j, java.util.logging, logback, MentaLog)
GitHub, repositorio Git para proyectos
Hojas de estilo css con less

Apache Tapestry
El framework con que algún día me gustaría programar en mi trabajo ya que realmente me lo paso bien programando con él, lamentablemente no encuentro oportunidades laborales en el que poder usarlo y profundizar aún más en él. Dentro de mi experiencia de entre JSP/Servlets, Struts, Grails y JSF es lo mejor que he probado con diferencia. Posee un conjunto de características que lo hacen especialmente agradable trabajar con él, algunas únicas, su código fuente y diseño es un muy buen ejemplo de como aplicar varios patrones de forma útil. Siendo un framework basado en componentes la productividad se consigue a base de hacer el desarrollo una vez y a partir de ese momento reutilizarlo en toda la aplicación. El código queda muy limpio (sin spaguetti code que otros frameworks permiten o con el que al final se acaba) y haciendo un poco bien las cosas apenas hay duplicación de código a lo largo de la aplicación.

Recarga de clases (class reloading) en Apache Tapestry
Conversiones de datos entre el cliente y servidor en Apache Tapestry
Componente selector de fecha para Tapestry 5

Raspberry Pi
La Raspberry Pi es un ordenador completo con el tamaño de una tarjeta de crédito, sus propósitos pueden ser muchos y su consumo de vatios es muy reducido.

Raspberry Pi, desempaquetado («unboxing»)
Guía instalación Raspberry Pi con Arch Linux ARM (Parte I, instalación base)
Guía instalación Raspberry Pi con Arch Linux ARM (Parte II, programas)

Referencia:
Hemeroteca #0

viernes, 9 de marzo de 2012

Guía post instalación Minix

Minix
Hace ya un tiempo escribí un par de entradas sobre el sistema Minix porque tiene algunas características muy interesantes que ya les gustaría tener a otros sistemas operativos, El sistema operativo Minix donde daba una descripción de él y una Guía de instalación Minix donde explicaba como era su instalación en una máquina virtual con VirtualBox. Ahora con la reciente salida de la versión 3.2.0 de Minix y la adición de nuevas características escribo esta entrada para saber que hacer después de instalarlo con el objetivo de intentar hacer de Minix usable para algo y no quedarme con la sensación de que es algo experimental (aunque aún tengo la sensación de ello).

Los paquetes disponibles para Minix no son muchos y por tanto las posibilidades están limitadas pero en esta entrada voy a explicar algún uso útil que le podríamos dar a Minix.


Cambiar la contraseña al usuario root
Una de las primeras cosas que deberíamos hacer después de instalarlo es cambiar la contraseña del usuario root con:

# passwd

Cambiar la zona horaria
Modificaremos la zona horaria. Para ello añadimos al archivo /etc/rc.tomezone lo siguiente:
export TZ=Europe/Madrid

Crear un usuarios y grupos
Dado que Minix casi seguro no será nuestro sistema principal no nos preocupará mucho la seguridad pero deberíamos estar acostumbrados a no trabajar con la cuenta del superusuario root. Para ello podemos crear un grupo (wheel), un usuario (minix) para usarlo de forma normal en tareas no administrativas, le cambiamos de contraseña al usuario y el nombre completo del usuario (o algunos otros datos).

# group add wheel
# user add -m -g users minix
# passwd minix
# chfn minix

Editores, navegador web, correo electrónico, transferencia de archivos
Vim es un editor muy versátil y aunque el paquete de Minix no sea la última versión nos ayudará a trabajar de forma más cómoda. Hay otros editores como ed, nano y elvis. Los instalamos con el gestor de paquetes de minix, pkgin. Otros programas de utilidad básicos con un navegador web (links), un programa para enviar y leer los correos electrónicos (mutt) y programas para la trasnferencia de archivos (ftp y curl).

# pkgin install vim
# pkgin install links
# pkgin install mutt
# pkgin install curl


Servidor web, Python, OpenSSH
Si somos desarrolladores y queremos desarrollar algo básico tenemos a nuestra disposición algunos paquetes que nos lo permitirán. Estos son un servidor web (apache), el lenguaje de programación python, también podremos desarrollar programas en c, y una herramienta para conectarnos a la máquina minix de forma remota a través de ssh (OpenSSH).

Para iniciar el servicio de apache en minix ejecutarmos:

# /usr/pkg/sbin/apachectl start

Aquí podemos ver la página de bienvenida devuelta Apache y servida por la máquina minix y el típico hola mundo programado en Python y su ejecución en Minix.

# pkgin install apache
# pkgin install python
# pkgin install openssh

Juegos
También hay disponibles algunos juegos, en modo texto. Dungeon es una aventura donde iremos obteniendo una descripción de las habitaciones por donde vamos pasando y podremos realizar acciones introduciendolas en texto. gnugo es un juego de tablero del juego go donde deberemos controlar la mayor parte posible del mismo. En aop deberemos dirigir mediante las fechas del teclado un caracter que nos representa a otro punto de la pantalla evitando los obstáculos.

# pkgin install dungeon gnugo aop


Desde luego Minix no dispone de la cantidad de herramientas de otros sistemas y tampoco en sus últimas versiones, tiene casi la categoría de exprimental pero como vemos hay algunos usos que le podemos dar.

Referencia:
El sistema operativo Minix
Guía instalación Minix
http://wiki.minix3.org/en/UsersGuide/PostInstallation
http://wiki.minix3.org/en/UsersGuide
http://wiki.minix3.org/en/UsersGuide/ManagingUserAccounts
http://wiki.minix3.org/en/DevelopersGuide

viernes, 5 de noviembre de 2010

Guía instalación Minix


Minix
El proceso de instalación de Minix no es muy complicado, en unos pocos pasos se completa, y se realiza bastante rápido debido a que su tamaño es bastante menor que muchas de las distribuciones GNU/Linux. Lo recomendable es hacerlo en una máquina virtual ya que Minix no va a ser el sistema que usemos para cualquiera de las tareas que hagamos habitualmente, además de esta manera podremos hacer y deshacer a nuestro gusto sin peligro de romper nuestro sistema.

Lo primero que haremos será descargar la imagen de CD de la última versión de Minix (en el momento de escribir esta entrada la 3.1.8).

Una vez descargada configuraremos una nueva máquina virtual. Utilizando virtualbox al crear la máquina virtual configuraremos la opciones típicas como sistema operativo done utilizaremos «Other» y versión «Other\Unknown», le asignaremos una cantidad de memoria aceptable (128 MiB o más), el tamaño de disco duro (2 GiB será más que suficiente) y en orden de arranque pondremos primero CD/DVD-ROM y luego disco duro y en almacenamiento asignaremos a la unidad CD virtual la imagen de instalación de Minix que hemos descargado. Al final en el resumen de la maquina virtual que hemos creado veremos algo como en la siguiente imagen.


Iniciamos ahora la máquina virtual. Primeramente veremos una pantalla con un mensaje de bienvenida y al cabo de un tiempo si no hacemos nada se iniciará la carga de Minix. Al final llegaremos a una pantalla de inicio de sesión donde introduciremos «root» y sin contraseña accederemos a la linea de comandos desde donde procederemos a instalar Minix en el disco duro (de la máquina virtual). Para ello y tal como se nos indica en el mensaje de bienvenida antes de iniciar sesión tecleamos «setup» y un proceso nos guiará en el proceso de instalación. Si todo va correctamente pulsaremos la tecla Retorno (Enter).

El primer paso será seleccionar la distribución de teclado, introduciremos spanish. El segundo paso será establecer las particiones. Para no complicarnos y como estamos utilizando una máquina virtual dejaremos a Minix que realice el particionado de forma automática, pulsamos Retorno. Después de un pequeño momento en el que Minix detecta los discos duros seleccionaremos el que nos ofrece, introducimos 0 o pulsamos Return para utilizar la opción por defecto (0). Después Minix nos pedirá una confirmación antes del copiado de archivos al disco duro, introducimos «yes». A continuación nos preguntará cuanto tamaño queremos reservar para la partición home, dejaremos el valor que nos ofrece Minix, 376 MiB para un disco duro de 2 GiB. Ahora nos pregunta por el tamaño de bloque del disco duro, dejaremos el valor por defecto 4 KiB pulsando la tecla Retorno.

Y ahora empieza el copiado de archivos al disco duro donde veremos los archivos restantes y el progeso de la operación. Una vez finalizado Minix nos pregunta por el modelo de tarjeta de red que poseemos (en la máquina virtual), selecionaremos la opción por defecto AMD LANCE. Ahora seleccionamos que Minix use DHCP para configurar la tarjeta de red. Y ya hemos terminado de instalar Minix. En las siguientes imágenes podéis ver el proceso de instalación de forma gráfica.






Finalmente, tecleamos shutdown y desmontamos la imagen del medio de instalación de Minix. Se nos mostrará la linea de comandos del monitor de Minix y ya podremos cerrar la ventana para volver iniciar Minix ahora desde el disco duro.


Ahora instalaremos algunos paquetes para poder hacer algo con Minix. Los paquetes que instalaremos serán nano, la colección de compiladores GNU (gcc) y el entorno gŕafico básico X. Para ello utilizamos la siguiente linea de comandos.

$ pkgin install nano gcc x11

Otros comandos útiles de pkgin son:
$ pkgin help
(para obtener las opciones disponibles)

$ pkgin update
(para actualizar la lista de paquetes)

$ pgkin available | more
(para ver los paquetes disponibles, que no son muchos)

Una vez se hayan descargado e instalado los paquetes podremos hacer algo dentro de Minix pero eso será cuestión para otra entrada.

Referencia:
El sistema operativo Minix
Guía post instalación Minix
Installation guide

domingo, 31 de octubre de 2010

El sistema operativo Minix

Minix
Si eres lector habitual de blogs sobre GNU/Linux o software libre seguramente habrás leído alguna vez que GNU/Linux es más que Ubuntu. Sin embargo, también se puede decir que Unix es más que solo GNU/Linux. Hay varios sistemas operativos con la filosofía Unix además de GNU/Linux, si bien es cierto no tan extendidos como este último, por mencionar algunos los de la familia BSD (NetBSD, FreeBSD, OpenBSD, ...), el en continuo estado de desarrollo GNU/Hurd (del que Arch tiene una versión con este núcleo, Arch Hurd), Illumos y Solaris, otros menos conocidos como DragonFly y sobre el que trata esta entrada, Minix.

Como muy posiblemente ya conocerás Minix es el sistema desarrollado por Andrew Tanenbaum (y colaboradores) con el objetivo inicialmente de ser un sistema operativo con el que sus alumnos pudiesen aprender de forma práctica los principios teóricos sobre los que se basan los sistemas operativos. Con la versión 3 también tiene como objetivo ser un sistema usable según la propia página del proyecto.

Las diferencias entre los sistemas operativos Unix son varias que van desde la licencia que usan hasta la arquitectura interna. GNU/Linux utiliza una arquitectura monolítica en la que el kernel se compila como un único programa ejecutable y en el que los drivers se ejecutan en modo kernel. Esta arquitectura tiene la ventaja de que el kernel es más rápido pero a costa de que un fallo en un driver pueda tumbar el sistema. Para evitar este último problema surgen los sistemas operativos basados en un microkernel en el que el kernel propiamente es muy pequeño, de tan solo unas 6000 líneas de código, proporcionando las funciones básicas como un entorno en el que se puedan ejecutar varios programas concurrentemente sin que se interfieran entre ellos. El resto de funcionalidades son proporcionadas por los controladores de dispositivos (p. e. el controlador del disco duro) y unas entidades llamadas servidores usadas por los procesos (p. ej. los servidores de sistemas de archivos) que se ejecutan en modo usuario sin que puedan afectar al kernel.

Los debates entre si es mejor una arquitectura monolítica o una basada en microkernel ha originado alguna que otra discusión entre el propio Linus Torvalds y Andrew Tanenbaum (I, II y III) cada uno defendiendo las ventajas de cada implementación según los objetivos de cada sistema operativo.

Si has llegado hasta esta linea quizá te interese conocer un poco más como funcionan los sistemas operativos y Minix es un buen sistema operativo para ello. Un buen libro publicado por Tanenbaum es «Sistemas operativos. Diseño e implementación». La versión 2 de este libro está disponible en castellano y la versión 3 esta disponible en Amazon y otras tiendas en inglés.

Referencia:
Minix
Guía instalación Minix
Guía post instalación Minix
Lista de discusión de Minix
Código fuente Minix (Git)
http://www.osnews.com/story/15960/Introduction-to-MINIX-3
http://eprints.ucm.es/9519/1/Minix@ARM.pdf
http://wiki.minix3.org/en/MinixResources
http://www.freesoftwaremagazine.com/articles/minix
http://wiki.minix3.org/en/MinixFaq
http://wiki.minix3.org/en/Publications
http://sopa.dis.ulpgc.es/ii-dso/lecminix/lecminix.htm