Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un...

32
ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20 PRÁCTICA 1 Toma de contacto con MINIX 2 de Agosto de 2019

Transcript of Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un...

Page 1: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

PRÁCTICA 1

Toma de contacto con MINIX

2 de Agosto de 2019

Page 2: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

ÍNDICE

1 OBJETIVOS......................................................................................................................................................2

2 BREVE DESCRIPCIÓN DEL EMULADOR QEMU ARRANCANDO MINIX3.........................................22.1 Descripción del entorno de prácticas........................................................................................................22.2 Arranque de la máquina virtual QEMU con MINIX3..............................................................................32.3 Intercambio de archivos con fichero imagen de disquete.......................................................................14

3 MODIFICACIÓN DEL CÓDIGO FUENTE DEL NÚCLEO DE MINIX....................................................16

4 RESUMEN DE CONOCIMIENTOS.............................................................................................................19

5 PARA SABER MÁS.......................................................................................................................................19

6 ANEXOS.........................................................................................................................................................206.1 Manual del editor “elvis”........................................................................................................................206.2 Manual del editor “mined”......................................................................................................................21

Página - 1

Page 3: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

1 OBJETIVOS

Los principales objetivos de esta práctica son:

Familiarizarse con el equipamiento de prácticas: 19 PC’s más un servidor

Familiarizarse con los aspectos básicos del emulador QEMU

Recompilar MINIX introduciendo un cambio muy simple en el código fuente del núcleo

2 BREVE DESCRIPCIÓN DEL EMULADOR QEMU ARRANCANDO MINIX3

El emulador QEMU permite simular una máquina virtual tipo PC con arquitectura IA32 (x86) y ejecutar código 8086 directamente sobre la CPU del computador. Sobre esta máquina virtual se pueden arrancar diversos sistemas operativos como: Linux, MINIX, Microsoft Windows, etc. En este sentido, es similar a otros entornos como VMware Workstations.

Una forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de disco –un fichero preparado especialmente como si de un disco de arranque se tratase- de tal forma que si algo va mal, los errores quedan circunscritos al contenido de dicho fichero sin afectar al resto del sistema.

2.1 Descripción del entorno de prácticas

El laboratorio de prácticas cuenta con 19 equipos con procesador Intel Core i5-4460 a 3,20 GHz con cuatro núcleos, 8GB de memoria principal y 146GB de disco duro. Los nombres de estos equipos son lab4401-1 a lab4401-19 y sus direcciones de red van, respectivamente, desde 138.100.155.158 a 138.100.155.176.

Cada grupo de alumnos tendrá un login y una password con la que podrán entrar en cualquiera de los equipos si bien, para un mejor desarrollo de las prácticas, a cada grupo se le asignará un puesto fijo donde realizará todas las prácticas previstas.

Lo primero de todo, preguntar al profesor los datos de su cuenta y anotarlos a continuación:

Nombre de usuario: ________________

Contraseña: ________________

Puesto de prácticas: ________________

Como cada usuario tendrá su directorio personal ($HOME) en la máquina en la que entre, podría guardar ahí toda la información de las prácticas. Sin embargo, estas máquinas se utilizan por otras asignaturas y podrían reinstalarse las imágenes de todo el sistema con lo que se perdería toda la información nueva que se hubiese escrito en el disco. Por lo tanto, NO SE GARANTIZA LA DURABILIDAD DE LA INFORMACIÓN.

Ocasionalmente, si el puesto de prácticas asignado a un grupo fallase y hubiese otro disponible, no habría problema ninguno en que el grupo se mudase de puesto. Sin embargo, al ser PC’s que no tienen un sistema de archivos compartido, no se tendría acceso a la información que hubiese en el PC que estuviese dando problemas.

Página - 2

Page 4: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Si se desea tener garantía de no perder información, se ofrecen dos alternativas:

Guardarse la información en un pendrive personal u otros servicios de alojamiento personal en la nube

Guardarse la información en un servidor del departamento de nombre lógico “servidor” y dirección de red 138.100.155.7

En el servidor, como ya veremos, puede entrarse con el mismo login y password que en el resto de PC’s y aquí sí se garantiza la estabilidad de la información.

2.2 Arranque de la máquina virtual QEMU con MINIX3

Encender el puesto de trabajo y seleccionar la opción 2 “Debian 9”.

Aparecerá una pantalla como la siguiente:

Marcar en “¿No está en la lista?”, para que nos aparezca una ventana de captura de datos como la siguiente de la izquierda:

Página - 3

Page 5: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Introducir el login y password anotados anteriormente

Nos aparecerá una ventana como la siguiente:

Ahora vamos a explorar un poco el entorno. Para ello abrir el gestor de archivos haciendo click en el icono de “Archivos” que aparecerá si hacemos click sobre la esquina superior izquierda de la pantalla [desplegable de “Actividades”], tal y como se muestra en la figura siguiente:

Página - 4

Page 6: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Nos aparecerá una ventana de nuestro directorio de trabajo actual ($HOME) con un aspecto como el de la figura siguiente donde hemos entrado como si fuésemos el usuario sisope02:

Página - 5

Page 7: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Podemos comprobar que nuestro directorio de trabajo personal, en este caso, sería /home/alumnosSisope/sisope02. Para ello, vamos a explorar el sistema de archivos desde la raíz marcando “Otras ubicaciones” y “Equipo”, tal y como figura a continuación:

Navegar por “home” y “alumnosSisope” y nos aparecerá lo siguiente:

Si nos movemos por esta ventana, podremos comprobar que hay 80 usuarios denominados sisope01 a sisope80 más dos usuarios especiales: sisope00 y sisope99.

Página - 6

Page 8: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Hacer click en la carpeta sisope00 y nos aparecerá lo siguiente:

Esta carpeta tiene derechos de lectura para todos los grupos de prácticas y es donde se dejará toda la información que se considere conveniente para el desarrollo de las prácticas. Está el archivo Minix-qemu.img que es una imagen de disco con MINIX para poder arrancar sobre el emulador QEMU, así como el archivo disquete.img que es una imagen de disquete vacío y del que hablaremos más adelante. También hay otras imágenes de disquete que contienen archivos para la realización del resto de prácticas.

Vamos a seleccionar el archivo Minix-qemu.img y copiarlo en nuestro escritorio (para ello, abrir una ventana nueva del gestor de archivos y arrastrar el archivo Minix-qemu.img desde sisope00 a nuestro escritorio). Ver ejemplo en las dos figuras siguientes:

Página - 7

Page 9: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Esta misma información, siempre más actualizada, estará en el servidor. Vamos ahora a acceder al servidor y traernos desde dicho servidor el archivo disquete.img. En vez de trabajar con un entorno de ventanas, ahora vamos a movernos desde un terminal en modo línea de comando. De hecho, las prácticas se desarrollarán de este modo.

Cerrar las dos ventanas que tenemos abiertas.

Arrancar un terminal para trabajar en modo comando, para ello, hacer click en la parte superior izquierda de la pantalla donde se indica “Actividades” y teclear en la ventana de búsqueda “t”. Como podemos apreciar en la figura de la página siguiente, nos aparecen aplicaciones que empiezan por “t” y seleccionamos el “Terminal”. Opcionalmente, podemos arrastrar esta actividad al desplegable de la izquierda para acceder a la misma de forma más rápida.

Página - 8

Page 10: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Nos aparecerá una ventana para trabajar en modo línea de comando como la siguiente:

Página - 9

Page 11: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Todo lo que vamos a teclear ahora, encaminado a traernos el archivo disquete.img del servidor, podemos verlo en la figura de la página siguiente.

“cd Escritorio” para ubicarnos en el directorio donde tenemos la imagen de MINIX. Comprobarlo tecleando “ls”.

Ahora vamos a conectarnos al servidor mediante el servicio “sftp” de transferencia de archivos. Para ello teclear “sftp servidor”. Fijarse en el ejemplo de la figura de la página siguiente.

Si nos apareciese un mensaje del estilo “Are you sure you want to continue connecting (yes/no)?” indicar yes.

Suministrar la misma password que utilizamos en el PC del laboratorio.

Teclear “pwd” para comprobar que estamos en nuestro directorio ($HOME) del servidor.

Movernos al directorio padre tecleando “cd ..”

Movernos al directorio sisope00 tecleando “cd sisope00”.

Listar el contenido del directorio “ls” para ver que tenemos lo mismo que en nuestro PC del laboratorio.

Finalmente, para traernos el archivo disquete.img utilizaremos el comando “get” del servicio sftp. Teclear “get disquete.img”.

Nos salimos del servidor con el comando “exit” y si ahora hacemos un “ls” veremos que ya tenemos el fichero en nuestro PC.

Página - 10

Page 12: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Si quisiésemos llevar información desde nuestro PC del laboratorio al servidor, sería muy parecido a lo que acabamos de hacer pero utilizando el comando “put” en lugar de “get”.

Ahora ya podemos arrancar una máquina virtual QEMU con una imagen de disco con MINIX. Para ello, teclear “qemu –fda disquete.img Minix-qemu.img”. Al principio del arranque, durante unos pocos segundos, tendremos una ventana con un aspecto como el mostrado en la figura de la página siguiente:

Página - 11

Page 13: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Las opciones que figuran al final nos permiten seleccionar la imagen del núcleo de MINIX que deseamos arrancar. En nuestro caso, en tanto en cuanto no modifiquemos el núcleo, sólo tenemos una imagen, la original, que es la que arrancará sin necesidad de indicar nada. Finalmente, acaba quedando una ventana con el aspecto siguiente:

Entrar como el usuario root. No pedirá palabra clave. Si nos resulta más cómodo, podemos maximizar la ventana.

Página - 12

Page 14: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Una vez dentro del sistema, podrá comprobarse que estamos en un sistema tipo UNIX tecleando comandos como: pwd, para ver el directorio en el que se está; ls, para ver el contenido del directorio; who, para saber quién está en el sistema; cd, para moverse por la jerarquía de directorios; ps, para ver qué procesos están ejecutándose, etc.

Ubicados en el directorio de entrada, /root, vamos a crear un fichero de texto que denominaremos nombres y cuyo contenido serán dos líneas, cada una de ellas con el nombre y apellidos de uno de los miembros del grupo (si se trata de una única persona, repetir el nombre en la segunda línea). Para crear el fichero, puede utilizarse un editor tipo “vi” llamado “elvis” [teclear “elvis nombres”] o un editor tipo Windows denominado “mined” [teclear “mined nombres”. Consultar los anexos para ver una breve descripción de ambos editores.

Comprobar que se ha creado el fichero correctamente. Para ello, mostrarlo por pantalla con el comando: cat nombres.

Ahora vamos a salir del sistema y comprobar que no hemos perdido los cambios que hemos realizado. Para ello, teclear el comando halt. Nos aparecerá un “prompt” nuevo indicando “d0p0s0>” que hace referencia al monitor sobre el que se ejecuta MINIX. Teclear el comando off para dar por terminada la sesión QEMU.

Si nos fijamos en el escritorio, seguimos teniendo el fichero Minix-qemu.img que contendrá la imagen de disco original con la que habíamos arrancado, pero modificada por las acciones que acabamos de realizar. En concreto, esta imagen tendrá el fichero nombres que acabamos de crear. Cuando estemos trabajando en las prácticas, si queremos llevarnos el trabajo realizado, debemos copiarnos esta imagen en una memoria USB, ya que cuando nos salgamos del puesto de trabajo esta imagen podría borrarse. Desde luego, otra opción es guardarlo en nuestro directorio del servidor. Si en otra sesión posterior queremos seguir trabajando a partir de donde lo habíamos dejado y se hubiese borrado la imagen, antes de arrancar QEMU, debemos copiar la imagen de la sesión anterior en el escritorio.

Este proceso queda reflejado gráficamente en la figura siguiente:

Página - 13

Page 15: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

2.3 Intercambio de archivos con fichero imagen de disquete

Si queremos trabajar en casa con un PC y no tenemos QEMU instalado, la imagen Minix-qemu.img que nos hemos podido traer del laboratorio no nos es de gran utilidad. Para permitir, al menos, poder editar los ficheros sobre los que estemos trabajando, lo ideal es podérselos llevar y traer en un formato compatible con Windows dado que la gran mayoría de los alumnos que tiene ordenador dispone de dicho sistema operativo.

Lamentablemente, la versión de MINIX que utilizamos reconoce la disquetera como medio para el intercambio de archivos con el exterior, pero no el USB. Como hoy en día la mayoría de los portátiles ya no llevan disquetera, vamos a utilizar un fichero configurado como una imagen de disquete vacío. Esta imagen puede manipularse en Windows con una utilidad de drive virtual de disquete como la que puede obtenerse en la página web de la asignatura, aunque, en general, ni siquiera necesitaremos esta utilidad.

El archivo disquete.img es, precisamente, una imagen de disquete vacío que nos permitirá llevarnos ficheros específicos a casa en vez de toda la imagen de disco MINIX.

Para poder manipular esta imagen de disquete desde MINIX, utilizaremos el comando mtools –como veremos más adelante- que permitirá leer ficheros Windows desde el disquete así como grabar ficheros de MINIX al disquete en formato Windows.

Al salir de MINIX-QEMU, como veremos más adelante, podremos montar el fichero disquete.img y copiar los ficheros que queramos en una memoria USB para podérnoslos llevar con nosotros, tal y como se muestra en la figura siguiente:

Posteriormente, podremos traer los ficheros modificados en la memoria USB y transferirlos a la imagen de disquete para tenerlos accesibles cuando arranquemos MINIX-QEMU.

Si nuestro PC tiene Linux, basta con llevarse el fichero con la imagen de disquete “disquete.img” y montarla, para poder editar los ficheros que contenga.

Ahora vamos a probar todo esto que acabamos de contar.

Página - 14

Page 16: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Comprobar que tenemos en el escritorio los ficheros Minix-qemu.img y disquete.img.

Abrir un terminal y situarse en el escritorio tecleando: cd Escritorio.

Arrancar QEMU con el comando:

qemu -fda disquete.img Minix-qemu.img

Entrar al sistema MINIX.

El comando mtools permite realizar operaciones sobre un disquete formateado con DOS o Windows en formato FAT. Para ver los comandos disponibles, teclear: mtools.

Para comprobar que el disquete está vacío, teclear: mtools dir a:

Para grabar en el disquete el fichero nombres, teclear: mtools copy nombres a:

Para comprobar que ahora tenemos el fichero en el disquete, teclear: mtools dir a:

Para comprobar que el contenido del fichero grabado en el disquete es el correcto, teclear: mtools type a:nombres

Salir del sistema (halt + off)

Ahora, desde Linux, podremos ver el contenido de la imagen de disquete “disquete.img” montándolo previamente con el comando:

sudo mount disquete.img /mnt -t msdos -o loop,umask=000

Vamos a comprobar que efectivamente tenemos montado el disquete.img en el directorio /mnt. Para ello teclear: “mount”. Este comando muestra todos los dispositivos montados, al final nos debe aparecer el que acabamos de montar.

Desde el terminal podemos situarnos en /mnt y ver que tenemos el fichero nombres con el contenido correcto. También podemos abrir la carpeta /mnt desde el entorno gráfico si nos es más cómodo.

Editar el fichero /mnt/nombres (usando el “vi” o un editor gráfico como “kwrite”) y escribir una tercera línea con el nombre la asignatura.

Igual que modificamos un fichero existente en el disquete.img (nombres), podemos incorporar otro archivo. Teclear “cp /etc/hosts /mnt/hosts”.

Ahora intentaremos ver que accedemos a los cambios realizados en el disquete.img desde MINIX. Para ello, antes de arrancar MINIX debemos desmontar el fichero imagen de disquete tecleando:

sudo umount /mnt

Volver a teclear mount para comprobar que tenemos el dispositivo desmontado.

Arrancar MINIX y comprobar (comando mtools) que tenemos accesibles los cambios hechos en LINUX en el entorno MINIX sobre QEMU.

El fichero disquete.img o cualquiera de los ficheros que contenga el mismo, podremos copiárnoslo a una memoria USB si queremos llevárnoslo a nuestro PC de casa.

Página - 15

Page 17: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Para desmontar una memoria USB, acceder al “Gestor de archivos” y marcar el indicador de expulsión que aparece a la derecha del nombre del dispositivo tal y como se muestra a continuación:

Si nos llevamos el fichero disquete.img y lo modificamos, recordar que luego podremos incorporarlo a nuestro entorno MINIX con el comando: mtools copy a:nombres nombres

3 MODIFICACIÓN DEL CÓDIGO FUENTE DEL NÚCLEO DE MINIX

Lo primero que necesitamos para recompilar MINIX son los ficheros fuente del sistema. Dichos ficheros fuente se encuentran bajo el directorio /usr/src. En particular, los ficheros correspondientes al núcleo (kernel), se encuentran en el directorio /usr/src/kernel.

El cambio que queremos introducir en el proceso de recompilación es añadir un mensaje que aparecerá en el arranque del sistema MINIX. El mensaje incluirá el nombre de los alumnos en mayúsculas para que sea fácil de identificar en el arranque. El mensaje a escribir será: “KERNEL DE NMAT1-NOMBRE1, NMAT2-NOMBRE2”.

Para realizar esta parte de la práctica, hacer lo siguiente:

Arrancar QEMU con la imagen MINIX, da igual que sea la original o la modificada en la parte anterior. Fijarse bien en algún mensaje que se muestre antes de pedir al usuario su “login” de entrada al sistema, ya que este mensaje puede servir para localizar el punto del código donde hay que escribir el nuevo mensaje.

Página - 16

Page 18: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

Entrar al sistema como “root” y situarse en el directorio que contiene el código fuente del kernel “/usr/src/kernel”.

Ejecutar el comando “ls” para ver el contenido del directorio y anotar las extensiones de todos los ficheros que se vean y explicar qué tipo de ficheros son (basta con indicar los que se reconozcan).

Editar el fichero main.c para incluir el nuevo mensaje. La sentencia que se utiliza para mostrar los mensajes del kernel es kprintf.

Indicar en qué función se ha localizado la sentencia kprintf que escribe el mensaje identificado en el arranque y que nos ha servido de guía:

Escribir a continuación la sentencia incluida en el código para mostrar el nuevo mensaje que debe aparecer durante el arranque del sistema:

Una vez modificado el fichero fuente, tenemos que dar la orden de compilación. Para ello, situarse en el directorio /usr/src/tools. En este directorio existe un fichero llamado Makefile que contiene las reglas para compilar, construir nuevas imágenes del sistema, etc. Gracias al contenido de este fichero, no hay que preocuparse de qué ficheros hay que recompilar y en qué orden, ni de dónde deben quedar los ficheros generados, ya que toda esta información está previamente especificada en forma de reglas. Teclear: make install [Nota: La primera vez tarda bastante]

Indicar qué saludo (prompt) muestra MINIX tras la recompilación:

Si la compilación ha ido bien, el prompt del sistema será “#”, en caso contrario será “*”.

Las imágenes del núcleo, tanto la original como la que acabamos de generar, se guardan en el directorio /boot/image. Listar “ls -l /boot/image” el contenido de

Página - 17

Page 19: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

dicho directorio para comprobar que tenemos dos imágenes. Recordar que cuando arrancamos MINIX, la opción 1 del menú de arranque coge la imagen original y la opción 3 la última imagen generada.

Si la recompilación ha ido bien, salir del sistema y reiniciar con la nueva imagen tecleando los comandos:

o halt // Para detener el sistema MINIX

o main // Para arrancar el sistema MINIX desde el monitor

En principio no hace falta teclear ninguna opción en el menú de arranque ya que por defecto se toma la opción 3 que es la que arranca la imagen recién modificada, pero es mejor indicar la opción deseada. Si todo se ha hecho bien, deberá verse el mensaje introducido antes de la petición de login. En caso contrario, arrancar con la imagen original –opción 1 del menú de arranque del monitor- y repetir todo el proceso.

Página - 18

Page 20: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

4 RESUMEN DE CONOCIMIENTOS

Cuestiones relativas a QEMU

Para arrancar una sesión QEMU: qemu -fda disquete.img Minix-qemu.img.

En el menú de arranque: la opción 1 carga la imagen original y la opción 3 carga la última imagen generada.

Comandos útiles del monitor de máquina virtual (prompt “d0p0s0>”):

o main // Para arrancar MINIXo off // Para terminar la sesión QEMU

Si nos desaparece el cursor, probar a teclear <Ctrl><Alt>

Algunos comandos básicos de MINIX

cat Muestra el contenido de un fichero

cd Cambio de directorio

elvis Editor tipo vi para realizar cambios en los ficheros fuente

halt Para detener el sistema MINIX

ls Listado de ficheros existentes en un directorio

make Para construir una imagen nueva del sistema según las reglas de un fichero Makefile

mined Editor tipo Windows para realizar cambios en los ficheros fuente

ps Para ver qué procesos están ejecutándose

pwd Directorio actual

sftp Servicio de transferencia de archivos

who Para saber quién está en el sistema

Algunas opciones del comando mtools para trabajar con el disquete

mtools // Comandos mtools disponibles

mtools dir a: // Contenido del disquete

mtools type a:<fichero> // Muestra contenido fichero de disquete

mtools copy <fichero> a: // Copiar de MINIX a disquete

mtools copy a:<fichero> <fichero> // Copiar de disquete a MINIX

5 PARA SABER MÁS

http://www.minix3.org/ Página oficial de MINIX 3

http://wiki.qemu.org/Index.html Página oficial de QEMU

Página oficial de la asignatura para instalar QEMU y MINIX 3 sobre Windows

Página - 19

Page 21: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

6 ANEXOS

6.1 Manual del editor “elvis”

Para crear un archivo nuevo (sea nombres) con elvis teclear:

elvis nombres

Posteriormente podremos modificarle abriéndole de la misma forma:

elvis nombres

Algunos comandos útiles:

i Pasar a modo insercióno Pasa a modo inserción abriendo una línea nueva debajo de la actuala Pasa a modo inserción añadiendo a la derecha de la letra actual<Esc> Salir del modo inserciónk Mover cursor hacia arribaj Mover cursor hacia abajol Mover cursor hacia la derechah Mover cursor hacia la izquierdar Reemplaza un caracterR Reemplaza caracteres hasta pulsar <Esc>d< > Borra un caracter. < > significa espaciodw Borra una palabradd Borra una línea3dd Borra tres líneas. Repite la acción anterioru Deshace la acción anterior/cadena Buscar la cadena de caracteres indicadan Repetir la búsqueda anteriorY Copia una línea al buffer3Y Copia tres líneas al bufferp Pega el contenido del buffer:numero Situarse en la línea indicada por numero:q! Salir sin salvar:w Guardar los cambios realizados hasta el momentoZZ Salir salvando

Página - 20

Page 22: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

6.2 Manual del editor “mined”

Command: mined - MINIX editorSyntax: mined [file]Flags: (none)Examples: mined /user/ast/book.3 # Edit an existing file mined # Call editor to create a new file ls -l | mined # Use mined as a pager to inspect listing

Mined is a simple screen editor. At any instant, a window of 24lines is visible on the screen. The current position in the file isshown by the cursor. Ordinary characters typed in are inserted at thecursor. Control characters and keys on the numeric keypad (at theright-hand side of the keyboard) are used to move the cursor and performother functions.

Commands exist to move forward and backward a word, and deletewords either in front of the cursor or behind it. A word in thiscontext is a sequence of characters delimited on both ends by whitespace (space, tab, line feed, start of file, or end of file). Thecommands for deleting characters and words also work on line feeds,making it possible to join two consecutive lines by deleting the linefeed between them.

The editor maintains one save buffer (not displayed). Commands arepresent to move text from the file to the buffer, from the buffer to thefile, and to write the buffer onto a new file. If the edited textcannot be written out due to a full disk, it may still be possible tocopy the whole text to the save buffer and then write it to a differentfile on a different disk with CTRL-Q. It may also be possible to escapefrom the editor with CTRL-S and remove some files.

Some of the commands prompt for arguments (file names, searchpatterns, etc.). All commands that might result in loss of the filebeing edited prompt to ask for confirmation.

A key (command or ordinary character) can be repeated n times bytyping ESC n key where ESC is the 'escape' key.

Forward and backward searching requires a regular expression as thesearch pattern. Regular expressions follow the same rules as in theUNIX editor, ed. These rules can be stated as:

Any displayable character matches itself.

. (period) matches any character except line feed.

^ (circumflex) matches the start of the line.

$ (dollar sign) matches the end of the line.

\c matches the character c (including period, circumflex, etc).

[string] matches any of the characters in the string.

[^string] matches any of the characters except those in the string.

Página - 21

Page 23: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

[x-y] matches any characters between x and y (e.g., [a-z]).

Pattern* matches any number of occurrences of pattern.

Some examples of regular expressions are:

The boy matches the string 'The boy' ^$ matches any empty line. ^.$ matches any line containing exactly 1 character ^A.*\.$ matches any line starting with an A, ending with a period. ^[A-Z]*$ matches any line containing only capital letters (or empty). [A-Z0-9] matches any line containing either a capital letter or a digit. .*X$ matches any line ending in 'X' A.*B matches any line containing an 'A' and then a 'B'

Control characters cannot be entered into a file simply by typingthem because all of them are editor commands. To enter a controlcharacter, depress the ALT key, and then while holding it down, hit theESC key. Release both ALT and ESC and type the control character.Control characters are displayed in reverse video.

The mined commands are as follows.

CURSOR MOTION arrows Move the cursor in the indicated direction CTRL-A Move cursor to start of current line CTRL-Z Move cursor to end of current line CTRL-^ Move cursor to top of screen CTRL-_ Move cursor to end of screen CTRL-F Move cursor forward to start of next word CTRL-B Move cursor backward to start of previous word

SCREEN MOTION Home key Move to first character of the file End key Move to last character of the file PgUp key Scroll window up 23 lines (closer to start of the file) PgDn key Scroll window down 23 lines (closer to end of the file) CTRL-U Scroll window up 1 line CTRL-D Scroll window down 1 line

MODIFYING TEXT Del key Delete the character under the cursor Backspace Delete the character to left of the cursor CTRL-N Delete the next word CTRL-P Delete the previous word CTRL-T Delete tail of line (all characters from cursor to end of line) CTRL-O Open up the line (insert line feed and back up) CTRL-G Get and insert a file at the cursor position

Página - 22

Page 24: Escuela Técnica Superior de Ingeniería de Sistemas ... · Web viewUna forma de arrancar un sistema operativo, sea MINIX, sobre una máquina virtual QEMU es utilizar una imagen de

ETSISI-UPM Sistemas Operativos [lab4401] Curso 19/20

BUFFER OPERATIONS CTRL-@ Set mark at current position for use with CTRL-C and CTRL-K CTRL-C Copy the text between the mark and the cursor into the buffer CTRL-K Delete text between mark and cursor; also copy it to the buffer CTRL-Y Yank contents of the buffer out and insert it at the cursor CTRL-Q Write the contents of the buffer onto a file

MISCELLANEOUS numeric + Search forward (prompts for regular expression) numeric - Search backward (prompts for regular expression) numeric 5 Display the file status CTRL-] Go to specific line CTRL-R Global replace pattern with string (from cursor to end) CTRL-L Line replace pattern with string CTRL-W Write the edited file back to the disk CTRL-X Exit the editor CTRL-S Fork off a shell (use CTRL-D to get back to the editor) CTRL-\ Abort whatever the editor was doing and wait for command CTRL-E Erase screen and redraw it CTRL-V Visit (edit) a new file

Author

Mined was designed by Andy Tanenbaum and written by MichielHuisjes.

Página - 23