Pasos de shell

Pasos de shell

Shell:

Intérprete de comando que se convierte en operaciones y luego en syscalls. Capa de abstracción a nivel usuario.

Terminal vs shell:

La terminal es lo negro que se abre cuando abrimos la app terminal, emula lo que antes era una terminal física. Shell interpreta los comandos sobre esa terminal. Podemos tener +1 shell.

Parte 1: ejecucion de comandos

Untitled

Para ejecutar comandos por detrás no hacer wait, pero hay que monitorearlo → flags a waitpid

Parte 2: Redirecciones y pipe

Untitled

Dup→ duplica un fd. Evita hacer lo del ej 2 de execvp. Vamos a usar dup2. Puedo reemplazar std* por un archivo mio o un fd (un pipe por ejemplo).

stdout ahora apunta a hola.txt xq open busca de menor a mayor qué fd asignar. Flush es escribrir.  Este codigo es inseguro pq close y open son dos operaciones no atomicas.

stdout ahora apunta a hola.txt xq open busca de menor a mayor qué fd asignar. Flush es escribrir. Este codigo es inseguro pq close y open son dos operaciones no atomicas.

Untitled

Dup toma el fd primero libre

Dup toma el fd primero libre

Podemos especificar a qué fd queremos que apunte

Podemos especificar a qué fd queremos que apunte