marzo 28, 2024

BitCuco

¡Hola Mundo!

Minix – Instalación de Microkernel y ejercicio con LUA

minix

Minix es un sistema operativo desarrollado por el Profesor Andrew S. Tanenbaum en 1987, su kernel contiene instrucciones tipo Unix, pero en menor cantidad, por lo tanto es un sistema operativo tipo Mini-Unix.

El software Minix fue diseñado para ejecutarse sobre microprocesadores 8088 y similares, en modo de texto, ya que no cuenta una interfaz gráfica. Sin embargo el sistema operativo es muy útil para el desarrollo de aplicaciones ligeras, así como para hardware con propósito específico, tales como puntos de acceso, routers, controladores, terminales, etc.

Lua es un lenguaje de programación diseñado para programación procedimental general con soporte a la programación orientada a objetos.

Es un lenguaje bastante sencillo e interpretado que se implementa como un lenguaje tipo script y fue escrito en C, al no ser compilado, puede funcionar tanto en shell como en aplicaciones del lado del servidor.

En éste tutorial mostraremos cómo instalar Minix versión 3 y aprenderemos a ejecutar un pequeño script usando Lua.

Instalación de MINIX

En un tutorial anterior, mostramos como obtener una imagen del sistema operativo Minix. Una vez introducida la imagen del sistema operativo en nuestra máquina virtual o dispositivo físico, se inicializa un instalador, al cual debemos ingresar como usuario root (con todos los privilegios).

minix

La instalación de Minix ofrece una consola con comandos Unix, en donde podemos configurar nuestro sistema al escribir setup en el shell y dar enter.

minix

En el paso uno seleccionamos el idioma del teclado spanish (para español), como idioma para acceder a Minix

minix

Posteriormente debemos generar una partición en el disco duro para instalar MINIX. Para hacerlo en forma automática escribimos expert, que es el modo automático para crear la partición en éste paso.

minix

Seleccionamos la unidad para realizar la instalación de MINIX, debemos tener suficiente espacio en disco, el cual no requiere mucho. En nuestro caso y si es la única unidad, seleccionamos el disco 0.

minix

Seleccionamos la cantidad de región para uso de MINIX, en éste caso como es la primer región en el disco, también seleccionamos cero.

Una vez creada la partición, escribimos yes para proceder con la instalación de Minix.

particion

Una vez finalizada la instalación, configuramos nuestro acceso a internet, en particular vamos a acceder por red cableada a internet, por lo tanto configuramos la interfaz de red a través de ethernet (por defecto) de acuerdo la tarjeta de red que tengamos.

El modo DHCP nos permite obtener una dirección IP dinámica para nuestra red.

Una vez finalizada la configuración de Minix, y configuración de interfaz de red, damos un reboot para ingresar al sistema operativo MINIX recién instalado

minix

Creación de usuarios en Minix

Al iniciar el sistema de MINIX 3 ingresamos como usuario root, sin embargo por razones de seguridad, se recomienda crear al menos un usuario con privilegios inferiores a root. Para ello aplicamos el siguiente procedimiento para crear un usuario:

  • Vamos al directorio raíz con el comando cd
  • Creamos el usuario con el comando: useradd -m nombre_usuario, en donde -m es para crear la carpeta home y nombre_usuario el nombre del usuario usuario, en donde tendremos /home/nombre_usuario la ruta (path) para el usuario.
  • Cambiamos la contraseña por medio del comando: passwd nombre_usuario, (donde nombre_usuario es el nombre de usuario), se nos pide la contraseña y su confirmación.

Ejemplos sencillos con LUA

Lua es un lenguaje de programación interpretado, el cual tiene una sintaxis muy simple y sus códigos tienen extensión .lua. En este momento vamos a desarrollar unos ejemplos sencillos con Lua, no obstante para explotar las características que éste lenguaje de programación nos ofrece, debemos consultar su documentación oficial.

Crearemos el ejemplo numeros.lua, el cual tiene las siguientes líneas de código:

lua

t = os.time()

math.randomseed(t)

— print( t )

for i=1,15 do

x = math.random(1,100)

j = math.floor(x)

print( i, j )

end

En éste pedazo de código vamos a calcular 15 números aleatorios, cuyos valores están entre 1 y 100. Así mismo obtenemos el piso de los números aleatorios (para obtenerlos enteros) y los desplegamos en pantalla.

Para enviar la salida de numeros.lua en un archivo es suficiente escribir en consola lo siguiente:

lua numeros.lua > arch

lua

En donde almacenamos en un fichero arch la salida (o stdout) de la ejecución de numeros.lua. Este fichero consta de una lista de numeros conteniendo sus índices y los valores aleatorios.

Así mismo a modo de ejemplo podemos realizar operaciones usando comandos de Unix con la lista obtenida, por ejemplo ordenar los valores aleatorios en forma ascendente. Para ordenar la lista de números (segunda columna, ya que la primera consiste de los índices) utilizamos el comando:

sort -n -k 2 arch

Y para enviar la lista ordenada a un fichero, usamos:

sort -n -k 2 arch > ordenado

En donde -n es ordenar conforme su valor numérico, -k 2 es ordenar la columna 2, es decir los valores de la lista (índices, valores)

sort

Otro ejemplo, para contar el total de números:

wc -l arch

wc

En éste caso numeros.lua tiene 15 números (ya que los índices no los contamos)

Y por último, para contar el número de veces que aparecen los dígitos 1, 2, 3 en el archivo ordenado

grep 1 ordenado | wc -l

grep 2 ordenado | wc -l

grep 3 ordenado | wc -l

grep