3. Los procesos

Un proceso define una instancia de un programa en ejecución y su entorno. Al igual que con los archivos, aquí sólo mencionamos las diferencias más importantes entre GNU/Linux y Windows® (por favor, consulte Capítulo 10, Control de procesos para más información).

La diferencia más importante está directamente relacionada al concepto de usuario: cada proceso se ejecuta con los derechos del usuario que lo inició. Internamente, el sistema identifica a los procesos con un número único, que se denomina el PID (Process ID, ID del Proceso). A partir de este PID, el sistema sabe quien (es decir, que usuario) ha lanzado el proceso y cierta otra información, y el sistema sólo debe verificar la validez del proceso. Tomemos nuestro ejemplo del archivo un_archivo. El usuario peter sólo podrá abrir este archivo en modo de sólo lectura, pero no en el modo de lectura-escritura, ya que los permisos asociados al archivo lo prohiben. Una vez más, root es la excepción a esta regla.

Gracias a esto, GNU/Linux es virtualmente inmune a los virus. Un virus necesita infectar archivos ejecutables para poder operar. Como usuario regular, Usted no tiene derecho de escritura sobre los archivos vulnerables del sistema, razón por la cual el riesgo se reduce notablemente. En general, los virus son muy raros en el mundo de UNIX®. Solo hay unos pocos virus conocidos para Linux, y son completamente inofensivos cuando los ejecuta un usuario no privilegiado. Sólo un usuario puede dañar un sistema activando estos virus: root.

Sin embargo, y curiosamente, existe software antivirus para GNU/Linux, pero ¡mayormente para los archivos de DOS/Windows®! ¿Por qué hay programas antivirus corriendo en GNU/Linux, los cuales se enfocan en DOS/Windows®? Cada vez más seguido, Usted verá sistemas GNU/Linux actuando como servidores de archivos para las máquinas Windows® con la ayuda del paquete de software Samba (consulte Compartiendo archivos e impresoras en la Guía de Administración del Servidor).

Linux hace que sea fácil controlar a los procesos. Una forma de controlarlos es por medio de “señales”, las cuales permiten que Usted suspenda o termine un proceso enviando la señal correspondiente al mismo. Sin embargo, está limitado a enviar señales a sus propios procesos. A excepción de root, Linux y los sistemas basados en UNIX® no permiten que Usted envíe señales a procesos que inició otro usuario. En Capítulo 10, Control de procesos aprenderá como obtener el PID de un proceso y enviarle señales.