guía para la instalación de minix e inserción de una línea de código en kernel

22
Guía para la instalación de MINIX e inserción de una línea de código en kernel 18/06/2011 Quethzelovski Esta es una pequeña guía en español que trata de explicar de manera sencilla como instalar el Sistema Operativo MINIX 3, esta guía está enfocada al usuario poco experimentado en sistemas sin interfaz gráfica, por lo que cuenta con impresiones de pantalla para facilitar la instalación del sistema y la inserción de una línea de código sobre el kernel del sistema MINIX 3. [email protected]

Upload: quethzel

Post on 05-Jul-2015

2.029 views

Category:

Documents


5 download

DESCRIPTION

Esta es una guía para instalar el Sistema Operativo MINIX 3, cuenta con impresiones de pantalla para facilitar la instalación del sistema y la inserción de una línea de código sobre el kernel del sistema.

TRANSCRIPT

Page 1: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Guía para la instalación de MINIX e inserción de una línea de código en kernel

1 8 / 0 6 / 2 0 1 1

Quethzelovski

Esta es una pequeña guía en español que trata de

explicar de manera sencilla como instalar el Sistema

Operativo MINIX 3, esta guía está enfocada al usuario

poco experimentado en sistemas sin interfaz gráfica,

por lo que cuenta con impresiones de pantalla para

facilitar la instalación del sistema y la inserción de una

línea de código sobre el kernel del sistema MINIX 3.

l i n u x _ 0 0 @ l i v e . c o m . m x

Page 2: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 1

MINIX

Introducción a MINIX…………………………………………………..2

Instalación del S.O. MINIX (modo automático)…..……….3

Listado de algunos comandos en MINIX……………………..9

Modificación del código fuente del núcleo MINIX……..12

Anexos………………………………………………………………………20

Page 3: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 2

Introducción

MINIX (mini UNIX) es un sistema operativo (variante de UNIX) que es

distribuido junto con su código fuente, fue desarrollado por el profesor

Andrew S. Tanenbaum en lenguaje de programación C; con la finalidad de

enseñar a sus alumnos el diseño de sistemas operativos de la forma más

comprensible para el estudiante, es por eso que el código fuente de MINIX

incluye miles de comentarios.

Actualmente MINIX 3 soporta sólo arquitecturas derivadas de IA-32, y está

disponible en LiveCD, y en versiones compatibles con sistemas de

virtualización como BOCHS, Qemu, VMware, VirtualPC y VirtualBox.

MINIX 3 está disponible desde la página oficial www.minix3.org, donde

también puedes encontrar un listado de todos los comandos de Minix, su

sintaxis, guías e información detallada y competa sobre este sistema.

Page 4: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 3

Instalación Del Sistema Operativo Minix (automático)

La instalación de Minix 3(versión 3.1.8) será sobre una máquina virtual de

Oracle VirtualBox (versión 4.0.8), disponible desde su página oficial

http://www.virtualbox.org/

Asumiendo que el usuario ya tiene instalado en su equipo un sistema de

virtualización (VirtualBox). Comenzamos por crear una nueva máquina

virtual con características similares a las que se muestran a continuación:

Memoria RAM: 512 MB

Disco Duro Virtual: 1.0 GB

Hay dos formas de instalar MINIX 1.- Manualmente: Donde como primer paso debes generar las particiones donde se cargara el sistema operativo Minix, para despues subparticionarla para root y usr, generar el filesystem para usr, llenarlo con los comandos básicos y dejarlo activo en lugar del filesystem de tu ISO o disquete, generar el filesystem para root, Cambiar las variables de booteo del monitor de Minix, etc.

2.- Automatico: Selecciones preconfiguradas. Por razones de tiempo y

conocimiento utlizaremos el modo automatico.

A continuación se muestra la pantalla de inicio de MINIX 3

Page 5: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 4

minix login: root /entramos como root (véase Anexo 1)

# setup /ejecutamos el comando setup para dar

inicio a la instalación

Después de ejecutar el comando setup, Minix te muestra unas notas que

te pueden ser de utilidad en el futuro, es recomendable que se lean.

Después de leerlas presionamos la tecla Enter e indicamos nuestro tipo de

teclado entre las opciones que se muestran en pantalla.

Keyboard type? [us-std] Spanish

Page 6: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 5

Para crear las particiones en modo automático presionamos la tecla Enter.

Antes de continuar con la partición te pedirá que elijas el disco donde se

instalara el sistema.

Presionando la tecla Enter indicamos que deseamos instalar minix en el

disco [0] , si tuvieramos mas de un disco entoces hay que indicar el

numero del disco en que deseamos instalar el sistema.

Ahora selecciona que porcentaje de tu disco utilizara Minix. Puedes indicar el tamaño en MB y a continuación presionar Enter o solo presionar Enter y usar el disco entero. Una vez que tengas definido el espacio para tu sistema teclea “yes” o presiona Enter.

Después te pedirá que indiques el espacio en disco que deseas tener en

/home (automáticamente te recomienda una cantidad en MB, pero la

puedes cambiar si lo deseas). Cuando tengas la cantidad de espacio que

quieres para el directorio /home. Presiona Enter, enseguida te pedirá que

confirmes la cantidad de espacio en el directorio /home, si estás de

acuerdo con la cantidad presiona Enter nuevamente.

Page 7: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 6

Nuevamente te recomineda un tamaño para los bloques del sistema de

archivos (vese Anexo 2), presionamos Enter para continuar.

Ahora solo espera a que minix carge todos los archivos nesesarios.

Una vez que termine de cargar los archivos. Muestra una lista de las

tarjetas de Ethernet soportadas por el sistema.

Page 8: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 7

Las tarjetas PCI detectadas por el sistema están marcadas con un asterisco

(*). Te pedirá que selecciones una. En este caso solo detecta una tarjeta

por lo que es la única opción a elegir, en caso de tener más de una teclea

el número de la tarjeta que deseas elegir. Seguido de esto te preguntara

como quieres configurar la red; usando el protocolo de internet DHCP

(véase Anexo 3) o si deseas hacerlo manualmente. En esta guía usaremos

el protocolo DHCP para configurar la red.

Ahora solo reiniciamos la máquina virtual y desactivamos la opción de

unidad anfitrión en el menú de nuestra máquina virtual para que cargué el

sistema desde el disco duro donde está instalado Minix, y no desde una

unidad externa (CD, DVD, Diskette, ISO, etc.)

Page 9: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 8

En este momento ya tenemos instalado el sistema operativo Minix 3

donde nuevamente te pedirá que inicies sesión (login).

Al igual que en el comienzo iniciamos sesión como root y presionamos

Enter enseguida se mostrara el símbolo gato (#). Con lo que indica que ya

puedes comenzar a usar el sistema.

Antes de comenzar con la modificaicon del codigo fuente de Minix, es

recomendable que revise la siguiente lista de comando para familiarisarce

con algunos de los comandos que utilizaremos durante la modificacion del

codigo fuente.

Page 10: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 9

Listado De Algunos Comandos En MINIX

USUARIOS

man <comando> muestra el manual de ayuda para el comando

escrito.

clear permite limpiar la pantalla. pwd muestra el directorio donde el usuario está posicionado actualmente.

who muestra una lista de los usuarios logueados actualmente. Para cada usuario se muestra el nombre, terminal y la cantidad de tiempo transcurrido desde que se logueó. Por defecto la información se extrae desde el archivo /etc/utmp.

who am i indica el usuario, la consola y la fecha en que se logueó el usuario que lanza este comando. su permite loguearse temporalmente como superusuario (root).

adduser agrega un nuevo usuario.

passwd cambia la password del usuario. id muestra datos de identificación del usuario.

finger muestra información de usuario.

write manda un mensaje a la pantalla de un usuario.

mail programa de correo.

talk establecer una charla con otro usuario.

banner saca letrero en la pantalla.

set da información sobre el entorno del usuario.

chown cambia el propietario de un fichero.

Page 11: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 10

PROCESOS

ps muestra la lista de procesos del usuario.

kill <PID> Mata el proceso especificado por PID.

DISCOS

mount monta un disco.

umount desmonta un disco.

df muestra el espacio libre de los discos.

du muestra el espacio usado por el disco o un directorio.

mkfs formateo un disco.

fsck estado del disco.

fdisk gestión de particiones.

SISTEMA

rlogin se conecta a otra máquina de forma remota (remote login).

rsh se conecta a otra máquina de forma remota (remote shell).

ftp se conecta a otra máquina por el protocolo ftp.

host muestra la dirección IP del servidor en una red local.

reboot reinicia la máquina.

halt para el sistema.

shutdown apaga el sistema.

exit cierre de sesión actual.

uptime muestra el tiempo transcurrido de encendida la máquina.

df muestra la cantidad de espacio en disco.

date muestra fecha y hora actual.

Page 12: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 11

cal muestra calendario.

lspci muestra los periféricos conectados al puente pci.

RED

netstat muestra estado de la red

ifconfig muestra la configuración del dispositivo de red

iwconfig muestra la configuración del dispositivo de red inalámbrico

netconf configuración de la red.

GESTION DE ARCHIVOS

cd cambia de directorio.

ls lista el contenido del directorio actual.

more permite visualizar archivos.

cp copia un archivo a otro, o copia uno o más archivos a un directorio.

mv mueve o renombra un archivo.

mkdir permite crear directorios. rm remueve uno o más archivos. rmdir permite eliminar directorios.

OTROS

ctrl+d final de archivo EOF – cancela.

ctrl+c termina proceso en ejecución – cancela.

Alt+F1 F2 cambio de consola.

Page 13: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 12

Modificación Del Código Fuente Del Núcleo MINIX

El cambio que vamos a realizar en el código fuente será simplemente

añadir un mensaje que aparecerá cuando arranquemos el sistema Minix.

El mensaje a introducir deberá aparecer antes de iniciar sesión (login).

La pantalla de inicio deberá ser como la que se muestra a continuación.

Iniciamos sesion como root. (para poder tener todos los derechos)

comenzamos por introducir el siguiente comando:

cd /usr/src/kernel

Con este comando indicamos que cambie al directorio /usr/src/kernel.

Ahora comprobamos que estemos en el directorio deseado con el

comando:

pwd

Nos muestra el directorio donde nos encotramos actualmete en este caso

debe mostrar la siguiente linea.

/usr/src/kernel

#

Page 14: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 13

No es necesaria esta comprobacion ya que si introducimos un directorio

que no existe nos aparecera el mensaje “not found”, en este caso solo

lo hicimos para serciorarnos de que nos encontramos en el direcorio

correcto y que podemos continuar con el siguiente paso.

Tecleamos el siguiente comando.

ls

Nos muestra el contenido del directorio actual.

Si has seguido correctamente estos pasos deberas estar visualizando una

terminal como la siguiente.

Una ves que nos muestre en pantalla la lisa de los ficheros que contiene el

directorio en el que nos encontramos. Editamos el fichero llamado main.c

que es donde insertaremos nuestro mensaje de bienvenida. Para esto

escribimos el comando mined (vease Anexo 4) seguido del fichero a editar

como se muestra a continuacion.

mined main.c

Una vez tecleado el comando anterior sera desplegado en terminal el contenido del fichero.

Page 15: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 14

Ya estando dentro del fichero main.c, nos moveremos dentro de el

mediante las flechas de direccion. Lo que vamos ha hacer es desplazarnos

por el fichero hacia la parte de abajo hasta llegar al encavezado

announce.

El mensaje lo introduciremos debajo del último printf. Nuestro mensaje de bienvenida devera ser escrito de la siguiente forma: printf(“Escribe tu Mensaje\n”);

El mensaje que escribí fue el siguiente:

“Esta linea de código fue escrita por Quethzel”

Page 16: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 15

El mensaje que visualizaremos en la terminal al arrancar el sistema, antes

de iniciar sesión será el hayamos escrito en: “Escribe tu

Mensaje”. Las comillas si son necesarias en esta ocasión.

Ya escrito nuestro mensaje de bienvenida, salimos del editor presionando

la siguiente combinación de teclas. Ctrl-x (mantén presionada la tecla

Ctrl luego presiona la tecla guion (–) y después presiona la tecla x).

Después de esta combinación de teclas se desplegara en la terminal la

siguiente línea:

main.c has been modified. Save? (y/n)

Presionamos la teclea y para guardar los cambios realizados en el fichero

y se desplegara otra línea de código que menciona los cambios en nuestro

fichero, que será como la siguiente.

Page 17: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 16

Wrote main.c 332 lines 12009 chars. Line 298

Una vez modificado el fichero hay que compilarlo. Existen varias maneras

de hacer la compilación, si queremos hacer una compilación completa

podemos utilizar el comando make programs en el directorio tools, si

se quiere compilar por modulos podemos utilizar el comando

make<modulo> donde modulo puede ser boot, kernel, fs, etc.

Como podemos observar hay varias formas de compilación, en esta guía

usaremos el comando make install, antes de compilar debemos

dirigirnos al directorio /usr/src/tools usando el comando cd, como

se muestra en la siguiente línea.

cd /usr/src/tools

Ahora procedemos a realizar la compilación tecleando el siguiente

comando:

make install (véase Anexo 5)

Después de teclear el comando anterior comenzara la compilación, esto puede tardar unos minutos. (La siguiente imagen muestra el inicio de la compilación y los comandos tecleados anteriormente, los que tienen # son los tecleados por el usuario, todos los demás son las respuestas obtenidas a los comandos)

Page 18: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 17

Cuando termine este proceso de compilación, puede ocurrir alguna de estas opciones: 1.- Si la compilación es correcta el sistema mostrara en terminal el siguiente símbolo #

2.- Si al momento de compilar ocurrió un error causado por alguna línea de código que hayamos insertado incorrectamente obtendremos un * o un mensaje de error.

Page 19: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 18

Si el resultado de la compilación fue exitoso, deberás estar visualizando

una terminal como la mostrada en la imagen anterior.

La imagen de nuestro nuevo kernel generado se guardara

automáticamente en el directorio /boot/image.

Ahora solo paramos el sistema y lo reiniciamos con los siguientes comandos.

halt /detiene el sistema reboot /reinicia el sistema

Si al introducir el comando reboot te muestra la siguiente línea de código.

unknow function

Teclea este comando.

Boot /arranca el sistema

A partir de ahora cuando inicies Minix se mostraran dos imágenes de

kernel. La original y la modificada. Por default cargara con la 2da. (La que

fue modificada), si queremos iniciar con la imagen del kernel original, al

iniciar Minix presiona 1.

Page 20: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 19

Al cargar el sistema tu terminal deberá ser parecida a esta, en donde ya se

encuentra el mensaje de bienvenida que introducimos.

Page 21: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 20

Anexos

Anexo 1.- En sistemas operativos del tipo Unix, root es el nombre convencional de la

cuenta de usuario que posee todos los derechos en todos los modos (mono o multi

usuario). root es también llamado superusuario. Normalmente esta es la cuenta de

administrador. El usuario root puede hacer muchas cosas que un usuario común no

puede, tales como cambiar el dueño o permisos de archivos y enlazar a puertos de

numeración pequeña. No es recomendable utilizar el usuario root para una simple

sesión de uso habitual, ya que pone en riesgo el sistema al garantizar acceso

privilegiado a cada programa en ejecución. Es preferible utilizar una cuenta de usuario

normal y utilizar el comando su para acceder a los privilegios de root de ser necesario.

Anexo 2.- En el file system es habitual utilizar dispositivos de almacenamiento de datos

que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño,

a veces llamados sectores, usualmente de 512 bytes de longitud. El software del

sistema de archivos es responsable de la organización de estos sectores en archivos y

directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles

no han sido utilizados

Anexo 3.- DHCP (Dynamic Host Configuration Protocol - Protocolo de Configuración

Dinámica de Host) es un protocolo de red que permite a los clientes de una red IP

obtener sus parámetros de configuración automáticamente. Se trata de un protocolo

de tipo cliente/servidor en el que generalmente un servidor posee una lista de

direcciones IP dinámicas y las va asignando a los clientes conforme éstas van estando

libres, sabiendo en todo momento quién ha estado en posesión de esa IP, cuánto

tiempo la ha tenido y a quién se la ha asignado después.

Anexo 4.- mined es un editor para terminales basado en texto. Tiene soporte para

Unicode y CJK y está publicado bajo licencia GPL. Fue diseñado por Andy Tanenbaum y escrito por Michiel Huisjes, siendo originalmente un simple editor de texto plano para minix en los años 80. Ahora está disponible para otras plataformas, Unix, Linux, Windows y MS-DOS. Suele estar incluido en varios sistemas unix-like. Fue el primer editor de texto para terminales que tuvo soporte para Unicode.

Mined dispone de menús y posee soporte para mouse. Las combinaciones de teclas están pensadas para un uso rápido e intuitivo. Tiene algunas características que solo están presentes en procesadores de texto.

Page 22: Guía para la instalación de MINIX e inserción de una línea de código en kernel

Página | 21

Anexo 5.- El comando make install

make Este comando cuenta con un fichero llamado makefiles, dentro de este se

encuentran un conjunto de reglas de compilación, y es capaz de saber que hay compilar, que hay que recompilar y en qué orden debe realizarlo. Después de esto genera todas las diferentes partes del kernel y las une en un archivo llamado image.

install Este comando funciona después que make ha hecho su trabajo sin

errores. Lo que hace es copiar los archivos del programa ya compilados a las

localizaciones predeterminadas.