SISTEMAS OPERATIVOS II
Tercer curso Ingeniería Técnica de Sistemas. Curso 2003-2004
Práctica 1: Procesos en UNIX. Entorno
Comenzar la codificación de un shell en UNIX, que se irá completando en
suscesivas prácticas. El shell incluirá de momento los siguientes comandos:
- autores
- Indica los nombres y los logins de los autores de la práctica.
- newpath
- Inicializa el path del shell a vacio. El path del shell es el conjunto de directorios donde el shell busca los
ejecutables para los comandos exec y exece. NO COINCIDE NECESARIAMENTE con la variable de entorno path.
- path dir
- Añade dir al path del shell. El nombre del directorio no debe incluir el caracter / al final (Ejemplo
/usr/bin y NO /usr/bin/).
- path -dir
- Elimina dir del path del shell.
- importapath [n]
- Añade los n primeros directorios de la variable de entorno path al path del shell. Si no se
suministra n los añade todos.
- entorno1
- Muestra la lista de todas las variables de entorno accediendo mediante el tercer argumento de main. Para cada variable de entorno muestra la variable
(nombre=valor), la dirección de memoria donde se almacena la variable (el valor del puntero, e[i]) y la dirección de memoria donde se
almacena el puntero (&e[i]). Después de las variables se muestra el valor (como puntero) del tercer argumento de main y de la variable
environ.
- entorno2
- Igual que entorno1 pero accediendo mediante la variable environ en lugar de emplear el tercer argumento de main.
- set1 var=valor
- Establece el valor de la variable de entorno var. Accede mediante el tercer argumento de
main. Si la variable de entorno no existe no la crea.
- set2 var=valor
- Igual que set1 pero accediendo mediante la variable environ en lugar de emplear el tercer argumento
de main.
- putenv var=valor
- Establece el valor de la variable de entorno var. Usa la función de librería putenv. Si la variable no existe
la crea.
- get var
- Devuelve los valores de la variable var obtenidos mediante el tercer argumento de main, environ y la función de
librería getenv. Para cada caso imprime además la dirección de memoria donde está la variable.
- cambiaprompt
- Cambia el prompt del shell. El prompt lo obtiene de la variable de entorno PROMPT. Si la variable de entorno
PROMPT no existe cambiaprompt no hace nada.
- donde ejecutable
- Busca ejecutable en la lista de directorios que constituyen el path y devuelve la trayectoria completa hasta
él.
- fork
- El shell crea un hijo y se queda en espera.
- exec com
- El shell ejecuta, sin crear un nuevo proceso (reemplaza su código) el programa especificado en com. com representa un ejecutable con sus
parámetros. Para poder ser ejecutado, dicho ejecutable debe residir en uno de los directorios del path del shell o bien especificarse la
trayectoria completa hasta él (comenzando por /, . o ..). Debe usarse la llamada al sistema execv.
- exece LV com
- El shell ejecuta el programa especificado en com, en el entorno especificado por LV. com representa un ejecutable con sus
parámetros. Para poder ser ejecutado, dicho ejecutable debe residir en uno de los directorios del path del shell o bien especificarse la
trayectoria completa hasta él (comenzando por /, . o ..). LV representa una lista de nombres de variables de entorno; los valores de
dichas variables de entorno deben obtenerse mediante environ o getvar. Debe usarse la llamada al sistema execve.
Ejemplo
exece TERM HZ HOME DISPLAY xterm -e a.out
ejcuta xterm -e a.out en un entorno que sólo contiene las variables de entorno TERM, HZ, HOME y DISPLAY
- chdir [dir]
- Cambia el directorio actual a dir. Si no se le suministra argumento informa del directorio actual.
- exit
- Sale del shell.
Información detallada de las llamadas al sistema y las funciones de la librería debe obternerse con man (exec, chdir, fork,
getenv, putenv, strtok...)
FORMA DE ENTREGA
Va a ser utilizado el servicio de recogida de prácticas suministrado por el Centro de Cálculo de esta Facultad y parte del proceso de corrección
de las prácticas va a ser automtico (compilación, listado de practicas entregadas etc) por lo cual deben entregarse exactamente como se indica a continuación:
FECHA DE ENTREGA VIERNES 21 NOVIEMBRE 2003