“Conocimiento Sistemas>unix

¿Por qué los comandos UNIX se dividen en comandos internos y externos?

2014/3/26
Los comandos UNIX se dividen en comandos internos (incorporados) y externos por varias razones clave relacionadas con la eficiencia, la seguridad y el diseño del sistema:

* Eficiencia: Los comandos internos son parte del caparazón (por ejemplo, `Bash`,` Zsh`). Se compilan directamente en el ejecutable del shell, lo que significa que el shell no necesita pasar tiempo buscando en el sistema de archivos su ubicación. Esto hace que su ejecución sea significativamente más rápida que los comandos externos. Los comandos simples como `CD`,` pwd`, `echo` y` exit` son candidatos perfectos para esta optimización.

* Seguridad: Los comandos internos pueden ser más estrechamente controlados por la carcasa. Esto permite mejores controles de seguridad y evita ciertas actividades maliciosas. Los comandos externos, por el contrario, deben ubicarse y ejecutarse, introduciendo una vulnerabilidad potencial si un programa malicioso se disfraza de comando legítimo.

* Flexibilidad y capacidad de mantenimiento: La separación permite la modularidad. Los comandos externos son ejecutables separados que residen en directorios especificados por la variable de entorno 'ruta' del shell. Esto permite actualizaciones más fáciles, la adición de nuevos comandos y la eliminación de comandos obsoletos sin recompilar todo el shell. Puede agregar fácilmente una nueva funcionalidad simplemente instalando nuevos ejecutables.

* Gestión de recursos: Los comandos internos generalmente tienen una sobrecarga más baja porque no requieren una creación de procesos separada para la ejecución. Los comandos externos, por otro lado, crean un nuevo proceso, lo que lleva a un mayor consumo de recursos (memoria y tiempo de CPU). Esta diferencia es particularmente notable cuando se trata de una gran cantidad de comandos.

* Gestión del espacio de nombres: Los comandos internos tienen un espacio de nombres dedicado dentro del shell. Los comandos externos tienen su propio espacio de nombres y pueden necesitar una gestión cuidadosa para evitar conflictos. La división garantiza un mejor control del espacio de nombres y reduce las posibles colisiones de nombres.

En resumen, la división proporciona un equilibrio entre velocidad, seguridad, flexibilidad y gestión de recursos. Los comandos internos manejan tareas frecuentes y simples de manera eficiente, mientras que los comandos externos proporcionan una amplia funcionalidad y mantenimiento.

unix
Cómo ver los procesos en UNIX
¿Cuál es el propósito de una página de manual en Linux?
¿Cómo es tan diferente y potente en el entorno UNIX en comparación con Windows?
¿Cuál es el comando de teclado utilizado en excls?
¿Cómo se elimina un archivo del directorio que no sea el actual en UNIX?
Unix Domain Sockets Tutorial
¿Por qué los comandos UNIX son tareas simples en lugar de complejas?
¿Qué es el formato de código binario?
Conocimiento de la computadora © http://www.ordenador.online