Unix/Linux - MUY TOP
![]() |
![]() |
![]() |
Título del Test:![]() Unix/Linux - MUY TOP Descripción: Unix/Linux - MUY TOP |




Comentarios |
---|
NO HAY REGISTROS |
Objetivo: Analizar cómo el mecanismo de tuberías (pipes) materializa la filosofía de diseño de Unix. La filosofía de Unix de 'hacer una cosa y hacerla bien' se combina con el principio de 'trabajar juntos'. ¿Qué mecanismo del shell es la manifestación más directa de esta combinación, permitiendo que herramientas simples y especializadas colaboren para realizar tareas complejas?. Las tuberías (pipes), que encadenan la salida de un programa con la entrada de otro. El sistema de permisos de ficheros, que define cómo los programas pueden interactuar. Las variables de entorno, que permiten a los programas compartir configuraciones. Los scripts de shell, que permiten escribir secuencias de comandos. Objetivo: Comprender las implicaciones del principio 'todo es un fichero' en Unix. El principio de diseño de Unix 'todo es un fichero' es una poderosa abstracción. ¿Qué significa en la práctica para la interacción con el sistema?. Que el sistema operativo no distingue entre ficheros binarios y ficheros de texto. Que todos los datos del sistema, incluyendo la memoria RAM, se almacenan físicamente en un único fichero gigante en el disco. Que se puede interactuar con dispositivos de hardware, sockets de red y procesos usando las mismas llamadas al sistema que se usan para ficheros (open, read, write, close). Que todos los ficheros del sistema deben ser ficheros de texto plano para facilitar su procesamiento con herramientas de shell. Objetivo: Analizar la razón de la separación entre los directorios /bin y /usr/bin. Según la Jerarquía del Sistema de Ficheros (FHS), ¿cuál es la razón conceptual fundamental para la existencia de dos directorios separados para binarios, \`/bin\` y \`/usr/bin\`?. Para separar los binarios de 32 bits (\`/bin\`) de los de 64 bits (\`/usr/bin\`). Para separar los binarios que pertenecen al sistema operativo base (\`/bin\`) de los instalados por el administrador (\`/usr/bin\`). Para separar los binarios esenciales para el arranque y la recuperación del sistema (\`/bin\`) de los binarios de aplicaciones de usuario no esenciales (\`/usr/bin\`). Es una distinción histórica obsoleta y en los sistemas modernos ambos directorios son funcionalmente idénticos. Objetivo: Diferenciar entre un proceso zombi y un proceso huérfano. ¿Cuál es la diferencia fundamental entre un proceso zombi y un proceso huérfano?. Ambos términos describen lo mismo: un proceso que ha terminado de forma anormal. Un zombi es un proceso sin padre (PPID 1), mientras que un huérfano es un proceso que ha sido terminado por el kernel. Un zombi es un proceso que ha terminado pero su padre no ha recogido su estado, mientras que un huérfano es un proceso en ejecución cuyo padre ha terminado. Un zombi es un proceso que no responde, mientras que un huérfano es un proceso que ha perdido su conexión de red. Objetivo: Aplicar el conocimiento del bit SUID para predecir el comportamiento de un proceso. Un fichero ejecutable pertenece al usuario \`root\` y tiene activado el bit de permiso especial SUID (Set User ID). Si un usuario normal llamado \`juan\` ejecuta este fichero, ¿con los permisos de qué usuario se ejecutará el proceso resultante?. Con los permisos del usuario \`root\`. Con los permisos del usuario \`juan\`. Con los permisos del grupo propietario del fichero. El sistema operativo impedirá la ejecución por razones de seguridad. Objetivo: Analizar la relación entre el espacio de usuario, el espacio de kernel y las llamadas al sistema. En la arquitectura de un sistema operativo como Linux, ¿cuál es el rol de las llamadas al sistema (system calls) en la interacción entre el espacio de usuario (user space) y el espacio de kernel (kernel space)?. Son funciones de librería que se ejecutan completamente en el espacio de usuario para mejorar el rendimiento. Son la única interfaz controlada y segura a través de la cual los programas de espacio de usuario pueden solicitar servicios al kernel. Son un mecanismo para que el kernel pueda ejecutar programas en el espacio de usuario con privilegios elevados. Son un tipo de interrupción de hardware generada por los programas de usuario para comunicarse con los dispositivos. Objetivo: Diferenciar entre los flujos de salida estándar (stdout) y de error estándar (stderr). Un programa de línea de comandos en Linux produce tanto salida de datos normal como mensajes de error. ¿Cuál es la razón principal para que el sistema proporcione dos flujos de salida separados: la salida estándar (stdout) y el error estándar (stderr)?. Para que los mensajes de error puedan ser enviados a un servidor de registro remoto mientras la salida normal se queda en local. Porque stdout solo puede manejar texto, mientras que stderr puede manejar datos binarios. Para permitir la redirección de la salida de datos a un fichero mientras los mensajes de error siguen siendo visibles en la terminal. Para mejorar el rendimiento, ya que el sistema operativo procesa el flujo de error con mayor prioridad. El directorio \`/proc\` en Linux es un sistema de ficheros virtual. ¿Qué significa esto y cuál es su propósito?. Es un directorio real en el disco que contiene los ficheros de configuración de todos los procesos del sistema. Es un sistema de ficheros cifrado para proteger la información sensible de los procesos en ejecución. Es un enlace simbólico al directorio \`/var/run\`, donde se almacenan los ficheros de PID de los procesos. No existe en el disco; es una interfaz generada por el kernel en tiempo real para exponer información sobre los procesos y el sistema. Un directorio como \`/tmp\` a menudo tiene activado el permiso especial 'sticky bit'. ¿Cuál es el efecto de este bit en un directorio?. Impide que un usuario pueda borrar o renombrar un fichero dentro de ese directorio a menos que sea el propietario del fichero o del directorio. Impide que cualquier usuario, incluido root, pueda borrar el directorio. Hace que todos los ficheros nuevos creados en el directorio hereden el grupo propietario del directorio. Mantiene los ficheros ejecutables del directorio en memoria (RAM) para un acceso más rápido. Objetivo: Analizar la razón de seguridad para separar /etc/passwd y /etc/shadow. ¿Cuál fue la principal motivación de seguridad para separar la información de las contraseñas del fichero \`/etc/passwd\` al fichero \`/etc/shadow\` en los sistemas Unix/Linux?. Para permitir que \`/etc/passwd\` sea legible por todos los usuarios sin exponer los hashes de las contraseñas, que se mueven a \`/etc/shadow\` que solo es legible por root. Para mejorar el rendimiento, ya que \`/etc/passwd\` es un fichero más pequeño y rápido de leer. Para separar la configuración de los usuarios locales (\`/etc/passwd\`) de la de los usuarios de red (\`/etc/shadow\`). Para permitir el uso de contraseñas más largas y algoritmos de hash más complejos que no cabían en el formato de \`/etc/passwd\`. Objetivo: Diferenciar entre una arquitectura de kernel monolítico y un microkernel. El kernel de Linux es un ejemplo de una arquitectura de kernel monolítico. ¿Qué caracteriza a este tipo de arquitectura?. La mayoría de los servicios del sistema operativo (gestión de memoria, planificador, drivers) se ejecutan en un único espacio de direcciones privilegiado (espacio de kernel). El kernel está dividido en múltiples capas de abstracción que solo pueden comunicarse con las capas adyacentes. El kernel solo proporciona los mecanismos más básicos (comunicación entre procesos, gestión de memoria) y el resto de los servicios se ejecutan como procesos de usuario. El kernel no puede ser modificado después de la compilación y requiere un reinicio para cualquier cambio. Objetivo: Analizar la relación entre el shell y el kernel. ¿Cuál es la relación entre el shell y el kernel en un sistema Unix/Linux?. El shell es un programa de espacio de usuario que actúa como intérprete de comandos, traduciendo las órdenes del usuario en llamadas al sistema que el kernel puede ejecutar. El shell y el kernel son dos nombres para el mismo componente del sistema operativo. El kernel es un tipo de shell avanzado con privilegios de superusuario. El shell es una parte integral del kernel que gestiona directamente la entrada y salida de la terminal. Un administrador necesita terminar un proceso de forma ordenada, dándole la oportunidad de limpiar sus recursos (cerrar ficheros, etc.) antes de salir. ¿Qué tipo de mecanismo de comunicación entre procesos (IPC) se utiliza comúnmente para esta tarea?. Memoria compartida (shared memory). Un socket de dominio Unix. Una señal (signal), como SIGTERM. Una tubería (pipe) anónima. Objetivo: Analizar el significado del permiso de ejecución en un directorio. En el sistema de permisos de Unix, el permiso de ejecución (\`x\`) tiene un significado diferente para un fichero que para un directorio. ¿Qué permite el permiso de ejecución en un directorio?. Permite al usuario listar el contenido del directorio (ver los nombres de los ficheros). Permite al usuario ejecutar todos los ficheros que se encuentran dentro de ese directorio. Permite al usuario 'atravesar' el directorio para acceder a sus subdirectorios y ficheros. Permite al usuario crear o eliminar ficheros dentro del directorio. Objetivo: Comprender el propósito y el funcionamiento de la variable de entorno PATH. Cuando escribes el nombre de un comando en el shell (por ejemplo, \`ls\`) sin especificar su ruta completa, ¿cómo sabe el shell dónde encontrar el fichero ejecutable correspondiente?. Consulta una base de datos interna del kernel que mapea nombres de comandos a sus rutas. Busca el ejecutable en cada uno de los directorios listados en la variable de entorno \`PATH\`. Realiza una búsqueda en todo el sistema de ficheros hasta que encuentra un fichero con ese nombre. Solo puede ejecutar comandos que se encuentren en el directorio de trabajo actual. En la gestión de paquetes, ¿qué es una 'dependencia'?. Otro paquete o librería de software que es requerido para que el paquete principal funcione correctamente. Un paquete opcional que añade funcionalidades extra pero no es necesario para la operación básica. Una versión anterior del mismo paquete que debe ser desinstalada primero. Un fichero de configuración que debe ser editado antes de que el paquete pueda ser instalado. Objetivo: Comprender el propósito del directorio /dev y su relación con el principio 'todo es un fichero'. El directorio \`/dev\` contiene ficheros especiales como \`/dev/sda\` o \`/dev/null\`. ¿Qué representan estos ficheros?. Son enlaces simbólicos a los programas ejecutables que controlan los dispositivos. Son ficheros de registro (logs) que almacenan los eventos de los dispositivos de hardware. Representan dispositivos de hardware y dispositivos virtuales, permitiendo que los programas interactúen con ellos como si fueran ficheros. Son los ficheros de configuración de los drivers de los dispositivos. Objetivo: Analizar el modelo de creación de procesos en Unix mediante fork() y exec(). En Unix, la creación de un nuevo proceso para ejecutar un programa diferente se realiza típicamente en dos pasos mediante las llamadas al sistema \`fork()\` y \`exec()\`. ¿Cuál es la función de cada una?. \`fork()\` inicia un nuevo proceso vacío, y \`exec()\` lo vincula al proceso padre para la comunicación. \`fork()\` asigna memoria para un nuevo proceso, y \`exec()\` copia el código del programa en esa memoria. \`fork()\` crea una copia exacta del proceso actual (un proceso hijo), y \`exec()\` reemplaza el programa del proceso hijo con un nuevo programa. \`fork()\` y \`exec()\` son dos nombres para la misma llamada al sistema que crea y ejecuta un nuevo proceso en un solo paso. Objetivo: Comprender qué información se almacena en un inodo. En un sistema de ficheros de tipo Unix (como ext4), ¿qué es un inodo (inode) y qué información contiene?. Un tipo especial de fichero utilizado para la comunicación entre procesos. Una estructura de datos que almacena los metadatos de un fichero, como sus permisos, propietario, tamaño y punteros a sus bloques de datos. El primer bloque de datos de un fichero, que contiene una cabecera con sus metadatos. Una entrada en el directorio que contiene el nombre del fichero y su contenido completo. Objetivo: Analizar la diferencia fundamental entre un enlace duro y un enlace simbólico. ¿Cuál es la diferencia fundamental entre un enlace duro (hard link) y un enlace simbólico (symbolic link o soft link)?. Un enlace duro solo puede crearse para directorios, mientras que un enlace simbólico es para ficheros. Un enlace duro es una referencia directa al mismo inodo que el fichero original, mientras que un enlace simbólico es un fichero separado que contiene la ruta al fichero original. Un enlace duro puede apuntar a ficheros en diferentes sistemas de ficheros (particiones), mientras que un enlace simbólico no. Un enlace duro ocupa el mismo espacio en disco que el fichero original, mientras que un enlace simbólico no ocupa espacio. Objetivo: Comprender el rol del proceso con PID 1. En un sistema Unix/Linux, ¿cuál es el rol especial del proceso con el ID de Proceso (PID) 1?. Es el proceso del shell del usuario, desde el cual se lanzan todos los comandos. Es el primer proceso iniciado por el kernel en el arranque y actúa como el ancestro de todos los demás procesos de usuario. Es un proceso especial del kernel que no puede ser visto por los usuarios. Es el proceso que se encarga de la gestión de la memoria virtual. Objetivo: Diferenciar entre el 'globbing' del shell y las expresiones regulares. El shell de Linux utiliza patrones como \`*.txt\` o \`foto?.jpg\` para hacer coincidir nombres de ficheros. ¿Cómo se llama esta funcionalidad y en qué se diferencia de las expresiones regulares?. Se llama 'wildcarding' y es funcionalmente idéntico a las expresiones regulares. Se llama 'expresión regular del shell' y es un subconjunto de las expresiones regulares estándar. Se llama 'globbing' o expansión de nombres de fichero, y es una sintaxis más simple que las expresiones regulares, interpretada por el propio shell. Se llama 'expansión de ruta' y es manejada por el kernel antes de que el comando se ejecute. Objetivo: Comprender el propósito de los módulos de kernel cargables (LKMs). ¿Cuál es el propósito principal de los Módulos de Kernel Cargables (Loadable Kernel Modules - LKMs) en Linux?. Permitir que se añada o elimine funcionalidad del kernel (como drivers de dispositivos) en tiempo de ejecución, sin necesidad de reiniciar el sistema. Proporcionar una forma de ejecutar scripts de shell con privilegios de kernel. Permitir que los programas de usuario carguen librerías compartidas en su espacio de memoria. Crear un entorno de 'sandbox' para que los procesos se ejecuten de forma aislada. Objetivo: Analizar el mecanismo de seguridad utilizado en los repositorios de paquetes. Cuando un gestor de paquetes como \`apt\` o \`yum\` descarga un paquete de un repositorio, ¿qué mecanismo criptográfico utiliza para verificar que el paquete es auténtico y no ha sido modificado?. Firmas digitales, generalmente utilizando claves GPG (GNU Privacy Guard). Una suma de verificación (checksum) como MD5 o SHA-256. Cifrado de extremo a extremo utilizando TLS/SSL durante la descarga. Autenticación mediante nombre de usuario y contraseña para acceder al repositorio. Objetivo: Comprender el propósito del directorio /usr/local. Según la Jerarquía del Sistema de Ficheros (FHS), ¿cuál es el propósito del directorio \`/usr/local\` y su subdirectorio \`/usr/local/bin\`?. Para almacenar los ficheros de configuración locales de los programas instalados en \`/usr\`. Para instalar software compilado manualmente desde el código fuente por el administrador del sistema, manteniéndolo separado del software gestionado por el sistema de paquetes. Es un directorio obsoleto que solo se mantiene por compatibilidad con sistemas Unix antiguos. Para almacenar versiones antiguas de programas que han sido actualizados por el gestor de paquetes. Objetivo: Analizar la diferencia entre un proceso en primer plano y uno en segundo plano. ¿Cuál es la principal diferencia, desde la perspectiva del shell interactivo, entre un proceso en primer plano (foreground) y uno en segundo plano (background)?. Los procesos en primer plano pueden escribir en la pantalla (stdout), mientras que los de segundo plano no pueden. Un proceso en primer plano tiene el control de la terminal y bloquea el prompt, mientras que uno en segundo plano se ejecuta de forma independiente y devuelve el prompt inmediatamente. Los procesos en segundo plano siempre tienen una prioridad de CPU más baja que los de primer plano. Solo los procesos en segundo plano pueden ser terminados con el comando \`kill\`. En la notación octal de permisos de Unix, el número 7 (que es 4+2+1) representa un conjunto completo de permisos. ¿Qué permisos específicos representa?. Control total, incluyendo cambiar el propietario. Solo lectura y ejecución. Solo lectura y escritura. Lectura, escritura y ejecución. ¿Cuál es la diferencia conceptual clave entre la redirección de salida (\`>\`) y una tubería (\`|\`) en el shell?. La redirección es una característica del kernel, mientras que la tubería es una característica del shell. La redirección ejecuta los comandos de forma secuencial, mientras que una tubería los ejecuta en paralelo. La redirección conecta un proceso con un fichero, mientras que una tubería conecta un proceso con otro proceso. La redirección solo funciona con ficheros de texto, mientras que una tubería puede manejar datos binarios. Objetivo: Comprender el propósito del directorio /var/log. Un administrador de sistemas necesita investigar un problema con el servidor web. ¿En qué directorio es más probable que encuentre los ficheros de registro (logs) del sistema y de los servicios?. /home/log. /tmp. /var/log. /etc/log. Objetivo: Analizar el significado especial del UID 0. En el modelo de seguridad de Unix, ¿qué tiene de especial el ID de Usuario (UID) 0?. Es el UID asignado al primer usuario normal creado en el sistema. Es un UID inválido que se utiliza para indicar un error de autenticación. Está reservado para el superusuario (root) y le otorga privilegios ilimitados para anular todas las comprobaciones de permisos. Identifica a los procesos que no pertenecen a ningún usuario (procesos del sistema). Objetivo: Comprender la naturaleza interpretada de los scripts de shell. Los scripts de shell (como los de Bash) son 'interpretados', no 'compilados'. ¿Qué significa esto?. El script debe ser traducido a código máquina antes de que pueda ser ejecutado por primera vez. Los errores en el script solo pueden ser detectados después de que el script haya terminado de ejecutarse. Un programa (el intérprete, ej. Bash) lee el script línea por línea y ejecuta los comandos en tiempo real. Los scripts de shell se ejecutan más rápido que los programas compilados. A nivel del sistema de ficheros de Unix, ¿cuál es la diferencia fundamental entre un fichero y un directorio?. Un directorio es un tipo especial de fichero cuyo contenido es una lista de nombres de fichero y sus correspondientes números de inodo. Un fichero tiene permisos de lectura/escritura/ejecución, mientras que un directorio solo tiene permisos de listado. Un fichero se almacena en un solo bloque de disco, mientras que un directorio puede ocupar múltiples bloques. Un fichero tiene un inodo, mientras que un directorio no lo tiene. Objetivo: Comprender el concepto de PPID. Además del PID (Process ID), cada proceso tiene un PPID. ¿Qué representa el PPID?. El ID del Proceso Padre (Parent Process ID). El ID del Proceso Previo (Previous Process ID). El ID del Puerto del Proceso (Process Port ID). La Prioridad del Proceso (Process Priority ID). Un equipo de desarrolladores necesita colaborar en un conjunto de ficheros de un proyecto. Todos los desarrolladores pertenecen al grupo \`devs\`. ¿Cuál es la forma más apropiada de configurar los permisos para permitir esta colaboración?. Hacer que un solo usuario sea el propietario y que los demás usen \`sudo\` para editar los ficheros. Dar permisos de lectura y escritura a 'otros' (others) para que todos los usuarios del sistema puedan acceder. Activar el bit SUID en los ficheros para que todos los puedan editar como si fueran el propietario. Establecer el grupo propietario de los ficheros a \`devs\` y dar permisos de lectura y escritura al grupo. Objetivo: Comprender el propósito del directorio /boot. ¿Cuál es el propósito del directorio \`/boot\` en la jerarquía de ficheros de Linux?. Contener los drivers o módulos de kernel para los dispositivos de arranque. Contener los scripts que se ejecutan automáticamente al iniciar el sistema. Es un directorio temporal utilizado por el sistema solo durante el proceso de arranque. Contener los ficheros estáticos necesarios para el gestor de arranque y el kernel del sistema operativo. Objetivo: Analizar la diferencia entre instalar desde un paquete y compilar desde el código fuente. ¿Cuál es la principal ventaja de instalar software utilizando un gestor de paquetes en lugar de compilarlo desde el código fuente?. La instalación desde un paquete no requiere privilegios de superusuario, mientras que la compilación sí. Compilar desde el código fuente siempre produce un programa más lento que el paquete precompilado. Los paquetes de los repositorios siempre contienen la versión más reciente del software, mientras que el código fuente puede estar desactualizado. El gestor de paquetes maneja automáticamente la resolución de dependencias, la integración con el sistema y facilita las actualizaciones y desinstalaciones. Objetivo: Comprender el rol del shell en relación con la interfaz gráfica de usuario (GUI). En un sistema Linux con un entorno de escritorio gráfico (GUI), ¿cuál es la relación entre la GUI y el shell?. Son dos interfaces de usuario diferentes que se ejecutan sobre el mismo kernel subyacente; la GUI es visual, mientras que el shell es textual. El shell es el componente principal, y la GUI es un módulo del kernel que se carga para proporcionar gráficos. El shell es un programa que se ejecuta dentro de la GUI y depende completamente de ella para funcionar. La GUI es una capa de abstracción sobre el shell; cada clic en un icono se traduce a un comando de shell. Un fichero tiene los permisos \`r-xr-x---\`. ¿Qué significa esto?. El propietario puede leer, escribir y ejecutar; el grupo solo puede leer; otros no tienen permisos. El propietario puede leer y ejecutar; el grupo puede leer y ejecutar; otros no tienen ningún permiso. Todos los usuarios pueden leer y ejecutar el fichero. El propietario puede leer y escribir; el grupo puede leer y escribir; otros solo pueden ejecutar. Objetivo: Comprender la diferencia entre los directorios /bin y /sbin. ¿Cuál es la diferencia principal entre los comandos que se encuentran en \`/bin\` y los que se encuentran en \`/sbin\`?. \`/bin\` contiene los binarios principales y \`/sbin\` contiene los secundarios o menos importantes. \`/bin\` contiene comandos para todos los usuarios, mientras que \`/sbin\` contiene comandos de administración del sistema, generalmente para ser usados por root. \`/bin\` contiene scripts de shell, mientras que \`/sbin\` contiene binarios compilados. \`/bin\` es para comandos estáticos, mientras que \`/sbin\` es para comandos que se actualizan con frecuencia. En la planificación de procesos de Linux, ¿qué efecto tiene un valor 'nice' alto (por ejemplo, 19) en un proceso?. Impide que el proceso pueda ser terminado por otros usuarios. Reduce la prioridad de planificación del proceso, haciéndolo 'más amable' con otros procesos y cediéndoles tiempo de CPU. Aumenta la prioridad de planificación del proceso, haciendo que reciba más tiempo de CPU. Asigna una cantidad fija de memoria RAM al proceso. Un usuario quiere definir un alias que esté disponible en todas sus sesiones de terminal interactivas. ¿En qué fichero de configuración de su directorio personal debería colocar la definición del alias?. ~/.bash_profile. ~/.bash_history. ~/.bashrc. /etc/profile. ¿Cuál es la diferencia principal entre un proceso y un hilo (thread) en Linux?. Un proceso puede ejecutar código, mientras que un hilo solo puede almacenar datos. Solo puede haber un proceso por programa, pero puede haber múltiples hilos. Los procesos tienen espacios de memoria separados e independientes, mientras que los hilos de un mismo proceso comparten el mismo espacio de memoria. Los procesos son gestionados por el kernel, mientras que los hilos son gestionados por el shell. ¿Cuál es el propósito del directorio \`/lib\` en la jerarquía de ficheros de Linux?. Contener los directorios personales de los usuarios del sistema. Contener las librerías compartidas esenciales necesarias para los binarios en \`/bin\` y \`/sbin\`. Contener los ficheros de licencia de todo el software instalado. Contener las librerías para el software instalado manualmente por el administrador. Un administrador establece el bit SGID (Set Group ID) en un directorio que pertenece al grupo \`proyecto\`. ¿Qué efecto tendrá esto sobre los nuevos ficheros y directorios creados dentro de él?. Cualquier programa ejecutado desde ese directorio se ejecutará con los privilegios del grupo \`proyecto\`. Solo los miembros del grupo \`proyecto\` podrán entrar en el directorio. Heredarán automáticamente la propiedad del grupo \`proyecto\`, en lugar del grupo primario del usuario que los crea. Los ficheros creados en el directorio serán de solo lectura para todos excepto para el propietario. Objetivo: Diferenciar entre las señales SIGTERM y SIGKILL. ¿Cuál es la diferencia principal entre enviar una señal SIGTERM (15) y una señal SIGKILL (9) a un proceso?. SIGTERM crea un volcado de memoria (core dump) antes de terminar, mientras que SIGKILL no lo hace. SIGTERM solo puede ser enviada por el propietario del proceso, mientras que SIGKILL solo puede ser enviada por root. SIGTERM es una solicitud de terminación que el proceso puede ignorar o manejar, mientras que SIGKILL es una terminación forzada e incondicional que el proceso no puede interceptar. SIGTERM termina el proceso y todos sus hijos, mientras que SIGKILL solo termina el proceso especificado. Cuando escribes \`echo "Mi directorio es $(pwd)"\` en el shell, ocurren varias expansiones. ¿En qué orden se realizan?. Primero se realiza la sustitución de comando (\`$(pwd)\`), y luego el resultado se inserta en la cadena antes de que \`echo\` se ejecute. Las comillas dobles impiden cualquier tipo de expansión, por lo que se imprimiría literalmente \`Mi directorio es $(pwd)\`. La expansión de \`$(pwd)\` y la ejecución de \`echo\` ocurren en paralelo para mayor eficiencia. El comando \`echo\` se ejecuta primero y luego llama a \`pwd\` para obtener el directorio. En la FHS, el directorio \`/usr\` contiene una gran cantidad de datos y programas. ¿Qué significa el acrónimo \`usr\`?. User (Usuario). Unsorted (Sin ordenar). Universal Software Repository (Repositorio de Software Universal). Unix System Resources (Recursos del Sistema Unix). Una característica que define a un proceso demonio (daemon) es que no está asociado a una terminal de control. ¿Cuál es la implicación de esto?. El demonio se ejecuta en el espacio de kernel en lugar del espacio de usuario. El demonio no puede escribir en ningún fichero de registro, ya que no tiene salida estándar. El demonio no puede ser gestionado por comandos como \`kill\`, ya que no es visible. El demonio no será terminado si el usuario cierra su sesión de terminal. Objetivo: Diferenciar entre un shell de inicio de sesión y un shell que no es de inicio de sesión. ¿Cuál es la diferencia principal entre un 'shell de inicio de sesión' (login shell) y un 'shell que no es de inicio de sesión' (non-login shell)?. Un shell de inicio de sesión no permite la ejecución de scripts, solo comandos interactivos. Un shell de inicio de sesión es el primer shell que se inicia después de autenticarse y lee ficheros de configuración como \`.bash_profile\`, mientras que un shell que no es de inicio de sesión se inicia después y lee \`.bashrc\`. Un shell de inicio de sesión es gráfico, mientras que un shell que no es de inicio de sesión es de solo texto. Un shell de inicio de sesión siempre se ejecuta como root, mientras que un shell que no es de inicio de sesión se ejecuta como un usuario normal. Objetivo: Analizar la relación entre el kernel de Linux y las distribuciones de Linux. ¿Cuál es la relación entre el 'kernel de Linux' y una 'distribución de Linux' (como Ubuntu, Fedora o Arch)?. El kernel es el núcleo central del sistema operativo, mientras que una distribución es un sistema operativo completo que empaqueta el kernel de Linux con un conjunto de software de sistema y aplicaciones. Una distribución es una versión específica del kernel de Linux con una interfaz gráfica diferente. El kernel de Linux es la versión comercial, mientras que las distribuciones son las versiones gratuitas y de código abierto. El kernel es el gestor de paquetes, mientras que la distribución es el conjunto de paquetes que gestiona. |