Programacion gnu linux
GNU/Linux
n este texto repasaremos conceptos de multiprogramación como las definiciones de
programa, proceso e hilos, y explicaremos el mecanismo de llamadas al sistema que
empleaLinux para poder aceptar las peticiones desde el entorno de usuario.
Seguidamente veremos las posibilidades que nos ofrece el Compilador de C de GNU,
GCC, y programaremos nuestros primerosejecutables para GNU/Linux. Después de
repasar las llamadas al sistema más comunes, analizaremos las particularidades de
UNIX a la hora de manejar directorios, permisos, etc., y nos adentraremos en laComunicación Interproceso (IPC). Finalmente abordaremos de forma introductoria la
programación de sockets de red, para dotar de capacidades telemáticas a nuestros
programas.
1.1 Llamadas al sistemaGNU/Linux es un Sistema Operativo multitarea en el que van a convivir un gran
número de procesos. Es posible, bien por un fallo de programación o bien por un intento
malicioso, que alguno de esosprocesos haga cosas que atenten contra la estabilidad de
todo el sistema. Por ello, con vistas a proteger esa estabilidad, el núcleo o kernel del
sistema funciona en un entorno totalmente diferente alresto de programas. Se definen
entonces dos modos de ejecución totalmente separados: el modo kernel y el modo
usuario. Cada uno de estos modos de ejecución dispone de memoria y procedimientosdiferentes, por lo que un programa de usuario no podrá ser capaz de dañar al núcleo.
Aquí se plantea una duda: si el núcleo del sistema es el único capaz de manipular
los recursos físicos del sistema(hardware), y éste se ejecuta en un modo de ejecución
totalmente disjunto al del resto de los programas, ¿cómo es posible que un pequeño
programa hecho por mí sea capaz de leer y escribir en disco?Bien, la duda es lógica,
porque todavía no hemos hablado de las “llamadas o peticiones al sistema” (“syscalls”).
Las syscalls o llamadas al sistema son el mecanismo por el cual los procesos y...
Regístrate para leer el documento completo.