El objetivo de esta práctica es crear un pequeño Shell con algunas de las
capacidades más usuales: creación de procesos, ejecución de programas,
redirección de salida/entrada, pipes, etc.
Se dejará a disposición de los grupos de prácticas una versión compilada de
un programa que cumple los requisitos de esta práctica para que puedan
comprobar cuál es el prototipo básico de funcionamiento que se pide.
2.- Especificación
MYSH (1)
NOMBRE
MYSH (1)
arqsh - Shell para las Prácticas de Arquitectura de
Computadores
SYNOPSIS
arqsh
DESCRIPCIÓN
Esta Shell cubre las características básicas de gestión de procesos y redirección
de salida de las Shells. Se enumeran a continuación los requisitos que cumple
mediante apartados que se deben intentar resolver:
1) Ejecución de programas simples
Debe ser capaz de leer de la entrada de teclado el nombre de comandos sin
opciones y ejecutarlos, continuando después el progreso del Shell. Los
comandos que debe ser capaz de ejecutar son aquellos que se encuentren en
alguno de los directorios señalados en la variable PATH o de los que se
especifique el camino completo.
Ej:
arqsh%> ls
fichero1
arqsh%>
fichero2
fichero3
2) Cambio de directorio de trabajo
Se debe poder cambiar el directorio de trabajo del proceso Shell mediante un
comando interno del mismo que se invocará de la siguiente forma:
arqsh%> cd directorionuevo
3) Ejecución de programas con un número indeterminado de argumentos.
Debe ampliarse para aceptar que los comandos tengan un número
desconocido a priori de argumentos y opciones que se deberán emplear en la
ejecución del programa.
Ej:
arqsh%> ls -a directorio_practicas
.
..
arqsh%>
ej1.c
ej2.c
ej3.c
4) Redirección de salida estándar
El Shell debe aceptar que se especifique un fichero al que redireccionar la
salida estándar de un comando. El carácter que especifica la redirección será >
que irá seguido del nombre del fichero. Si el fichero existe se perderá su anterior
contenido. La redirección debe ir después de todas las opciones y argumentos del
comando.
Ej:
arqsh%> ls -a directorio_practicas > listado
arqsh%> cat listado
.
..
ej1.c
ej2.c
ej3.c
arqsh%>
5) Redirección de la entrada estándar
El Shell debe aceptar que se especifique un fichero del cual obtendrá el
contenido de la entrada estándar el comando. El carácter que especifica esta
redirección será < que irá seguido del nombre del fichero. Si el fichero no existe
se señalará con un mensaje de error conveniente. La redirección debe ir después
de todas las opciones y argumentos del comando. El orden entre si de las
redirecciones (entrada y salida) no debe importar.
El Shell debe ser capaz de encadenar dos comandos mediante una pipe,
conectando la salida estándar de uno con la entrada estándar del siguiente. El
carácter para simbolizar esta conexión será | colocado al final del comando del
que se quiere redireccional la salida; a continuación se colocará el comando que
tomará como entrada esa salida. Ambos comandos deben soportar un número
indeterminado de opciones.
Ej:
arqsh%> cat listado | wc -l
5
arqsh%>
7) Generalización
El Shell debe soportar un número de pipes indeterminado encadenadas,
donde cada comando puede tener redireccionada su entrada y/o su salida. Se
considera incompatible que un comando redireccione su salida a un fichero y a
una pipe de forma simultánea, por lo que de requerirse este comportamiento al
Shell por parte de un usuario se debe indicar el error.
Ej:
arqsh%> cat listado | tail -2 | wc -c
12
arqsh%>
Nota: Para facilitar el procesado todos los argumentos han de estar separados
por espacios. Es decir, no se soportan comandos como:
arqsh%> cat fichero|wc -l
sino que debe ser:
arqsh%> cat fichero | wc -l
3.- Presentación
En el directorio HOME de cada grupo debe existir un directorio llamado
solucion, dentro del cual se dejarán todos los ficheros necesarios para compilar
el programa así como un fichero para la utilidad make. A la hora de la
corrección se borrarán todos los ficheros compilados o ejecutables de ese
directorio, en él sólo deben estar las fuentes, y se hará make en él. Como
resultado debe aparecer en ese directorio un ejecutable de nombre arqsh que será
el que se empleará para evaluar la práctica.
Links de descarga
http://lwp-l.com/pdf871
Comentarios de: PRÁCTICA DE LLAMADAS AL SISTEMA OPERATIVO UNIX (0)
Comentarios de: PRÁCTICA DE LLAMADAS AL SISTEMA OPERATIVO UNIX (0)
No hay comentarios