Las responsabilidades del shell
Las responsabilidades del shell
Tradicionalmente en la pantalla de la terminal (o emulador de terminal) aparece la palabra login: Para cada terminal habilitada existe un programa llamado getty que activa la función de login. (En el caso de logins o accesos a través de la red, no se utiliza getty, se utiliza el proceso o demonio "inetd", el cual habilita el servicio ya sea de telnet, rlogin o ssh). El sistema o programa del sistema llamado init automáticamente ejecuta getty en cada terminal en la cual se permite que los usuarios puedan entrar. Getty determina la velocidad de transmisión, despliega el mensaje login: y entonces espera que el usuario introduzca datos, como el nombre del usuario, después de presionar Enter, getty despliega el mensaje password: en la terminal y espera que el usuario introduzca su contraseña. Una vez obtenido el nombre de usuario y su password, estos se comparan con la entrada correspondiente en el archivo /etc/password.
Cuando el shell se ejecuta, realiza las siguientes funciones:
• Si existe el archivo /etc/profile, ejecuta las instrucciones que se encuentren en él.
• Si existe el archivo .profile en el directorio de casa del usuario se ejecutan las instrucciones que se
encuentran en él.
• Despliega el prompt del shell ($) y espera que se introduzcan comandos.
Cada vez que se introduce un comando y se presiona la tecla Enter, el shell analiza la línea y procede a realizar el requerimiento solicitado. Si se le pide que ejecute un programa en particular, el shell busca el programa en ciertas partes del disco y si lo encuentra le pide al kernel que inicie la ejecución del programa, el shell entonces "duerme" hasta que el programa ha finalizado. El kernel copia el programa especificado en la memoria y comienza su ejecución. Esta copia del programa en la memoria es llamado proceso; de esta manera se puede definir que un programa es el que está almacenado en un archivo en el disco, mientras que un proceso se encuentra en la memoria ejecutándose. Cuando el programa finaliza su ejecución el control regresa nuevamente al shell.
El ciclo de login
Es importante reconocer que el shell es únicamente un programa, no tiene privilegios especiales en el sistema, lo cual significa que cualquier persona con suficiente conocimiento puede crear su propio shell. Esta es una de las razones por las cuales existen tantas variantes de shells para sistemas *nix.
Muy util!! hacer uno sobre algunos comandos de redes seria interesante!