Copinya custom Unix Shell
Copinya shell is a custom unix shell made for the Operative System subject. Copinya means Shell in catalan.
Someday I will translate the whole readme.
^C
, ^Z
, etc… Sin embargo, a los hijos les debe afectar estas señales. <defunct>
añadiendo cada comando en una lista de tareas, y al recibir la señal SIGCHLD
, ejecutar un manejador que impida que acaben en el estado <defunct>
.^Z
, añadirlos a la lista de tareas con el estado STOPPED
, soporte para comandos internos fg args
para ejecutar el proceso argumento args
de la lista de tareas en foreground; y bg args
para ejecutar el proceso args
de la lista de tareas en background. Para probar el correcto funcionamiento de la shell, teniendo la copinya
ejecutándose, compila el fichero groupsignal.c
con gcc -o groupsignal groupsignal.c
y luego, dentro de copinya shell
, usa ./groupsignal
. Prueba a suspender el proceso con ^Z
, si sigue imprimiendo el carácter A, entonces funciona bien.
Otra prueba a realizar es usar el comando cat
que hace un echo del input stream. Si suspendes el proceso, debería dejar de hacer el echo y atender al proceso padre.
Y por último, otro tipo de pruebas a realizar es ejecutar comandos en bash
y copinya
simultáneamente para comprobar el correcto funcionamiento de tu shell customizada.
Para usuarios que utilicen mac, una solución para poder utilizar la shell es usar docker con el siguiente comando…
docker container run --rm --init -it -v "$PWD:/opt/shell" ubuntu bash
luego dentro del contenedor, ejecutar apt update
y luego apt install gcc
y podrás compilar copinya
sin problemas y con el comportamiento esperado.
Spoiler zone:
Copinya
means shell in catalan.
The commit e5469f7 was made with the Copinya Shell.
En mac el comportamiento no es el adecuado con todo el tema de los procesos en bg y en fg, por eso se usa un contenedor de docker y ubuntu.