Capitulo I Introducción a la administración de Sistemas Linux Un poco de Historia Linux fue creado por Linuz Tolvalds en 1991, en ese entonces estudiante de la Universidad de Helsinki, Finlandia. La primera versión del sistema fue Linux 0.02, la misma fue liberada con el código fuente disponible gratuitamente. Desde ese entonces miles de usuarios de todo el mundo contribuyeron en su desarrollo. Linux deriva de Minix, una versión de código abierto del sistema operativo Unix. Este sistema libre había sido creado por Andrew Tanembaum, con el fin de brindar a estudiantes universitarios una herramienta para el estudio y diseño de sistemas operativos. La peculiaridad más resaltante de Linux es que el sistema no se ha desarrollado con fines comerciales. De hecho el sistema se distribuye de forma gratuita, incluido el código fuente. Kernel – Distribuciones Linux, es un kernel, es decir, el núcleo de un Sistema Operativo, mientras que GNU/Linux, el Sistema Operativo que utiliza el Kernel Linux como núcleo, creado, difundido y promovido a través del Proyecto GNU, por la Free Software Foundation, organización sin fines de lucro, fundada por Richard Stallman, principal precursor del Software Libre. “Distribuciones diferentes para el mismo núcleo”. Las Distribuciones de Linux son un conjunto de software que trabajan al rededor del Kernel. La mayoría de las distribuciones cuentan con un sistema de administración de paquetes, que permite la instalación de aplicaciones de forma automática por medio de la administración de dependencias. Las diferencias entre las diversas distribuciones radica, en que algunas Lic. Nelson D. Bordón A. Centro de Investigación en Tecnologías Informáticas Libres - CITIL – 200.3.248.106/citil son más adecuadas para principiantes, con entornos gráficos amigables, las cuales están orientadas al uso empresarial y personal, mientras que otras ponen mas énfasis en cuestiones de seguridad como el caso de los servidores. Algunas de las distribuciones más conocidas son: Más información al respecto, puede encontrarse en: • Sitio Web de la Free Software Foundation • Sitio Web del Proyecto GNU • Sitio Web del Kernel Linux • Sitio Web de la Linux Foundation • Introduccion al software libre (PDF) (Universitat Oberta de Catalunya) • Sistema operativo gnu linux basico (PDF) (Universitat Oberta de Catalunya) Otras características con que cuenta Linux son: • Sistema Multitarea: Puede soportar la ejecución de varias tareas a la vez, sin la necesidad de detener los procesos de las aplicaciones. • Sistema Multiusuario: Varios usuarios pueden acceder a aplicaciones o recursos del sistema al mismo tiempo y los mismos pueden ejecutar diferentes tareas al mismo tiempo. • Multiplataforma: El Sistema corre en diversas arquitecturas de Lic. Nelson D. Bordón A. Centro de Investigación en Tecnologías Informáticas Libres - CITIL – 200.3.248.106/citil procesadores actuales. • Estaciones de trabajo Multiple: Cuenta con varias sesiones utilizables a través de consolas virtuales, accesibles mediante la combinación adecuada de teclas. Esto significa que se podrían ejecutar tareas diferentes en las consolas disponibles. • Shell Programables: El shell de linux es un interprete de comandos, que generalmente se utilizan para la ejecución de programas en segundo plano. Linux está estructurado en capas como se muestra en la figura: El hardware se encuentra en el centro. El sistema operativo, es la interfaz entre los procesos del usuario y el hardware El kernel es el programa de control central que provee los servicios básicos del sistema. Es un archivo ejecutable, se compila desde los archivos fuente, archivos objetos y parámetros configurables. Se carga en memoria cuando el sistema inicia y ejecuta programas y administra los recursos del computador. El kernel espera solicitudes de los procesos del usuario para acceder a los recursos del sistema, como memoria, CPU y dispositivos. Los programas Lic. Nelson D. Bordón A. Centro de Investigación en Tecnologías Informáticas Libres - CITIL – 200.3.248.106/citil del usuario solicitan servicios al kernel por medio de llamadas del sistema o system calls. Los dispositivos de hardware se comunican con el kernel por medio de interrupciones. El shell rodea al kernel y actúa como una interfaz del usuario. El shell es conocido como intérprete de comandos. Administra la ejecución de procesos en primer y segundo plano, posee un entorno configurable, un lenguaje flexible y proporciona redirección de la entrada y la salida. Organización de la estructura de archivos Linux utiliza la norma FHS (del inglés Filesystem Hierarchy Standard) ver mas en (http://www.pathname.com/fhs/), que es una norma que define los directorios principales y sus contenidos • / - Jerarquía primaria, o directorio raíz contenedor de todo el sistema • /bin/ - Archivos binarios esenciales del sistema. Este directorio contiene los comandos básicos utilizados por los usuarios para la operación del Lic. Nelson D. Bordón A. Centro de Investigación en Tecnologías Informáticas Libres - CITIL – 200.3.248.106/citil sistema. Ejemplo: ls, cp, mv, rm, mkdir, etc. • /boot/ - Archivos cargadores de arranque (Ejemplo los módulos del nuceo, el initrd) • /dev/ - Archivos de los dispositivos del sistemas • /etc/ - Este directorio contiene todos los archivos de configuración específicos del host de todo el sistema. ◦ /etc/opt – Archivos de configuración para los programas alojados dentro del fichero /opt ◦ /etc/X11/ Archivos de configuración para el X Windows System. Sistema encargado del entorno grafico del sistema operativo. • /home/ - Contiene todos los archivos personales del usuario a excepción de root, cada usuario creado en el sistema tiene su propio directorio personal dentro de esta carpetas. • /lib/ - Contiene todas las bibliotes o librerias de software utilizadas por el kernel y por las aplicaciones /bin/ y /sbin/ • /media/ - Aquí se alojan los puntos de montaje de las unidades extraíbles de almacenamiento. Ejemplos: CD-ROM, Memorias USB, Discos Duros y también las diferentes particiones contenidas por las unidades de HDD. • /opt/ - Contiene paquetes de programas opcionales de aplicaciones estáticas compartidas por los usuarios. • /root/ - Es el directorio del usuario root. Solo puede acceder el usuario root. • /sbin/ - Contiene los binarios esenciales del sistema para el arranque del mismo, solo utilizable por root, o por usuarios que poseen la contraseña del superusuario • /sys/ - El directorio /sys/ utiliza el nuevo sistema de archivos virtual sysfs específico al kernel 2.6. Ahora con el soporte más extendido para los dispositivos de conexión en caliente (hot plug) en el kernel 2.6, el directorio /sys/ contiene información similar a la que se encuentra en Lic. Nelson D. Bordón A. Centro de Investigación en Tecnologías Informáticas Libres - CITIL – 200.3.248.106/citil /proc/, pero muestra una vista • /tmp/ - Directorio destinado a contener archivos temporales que pueden crear ciertos programas. • /usr/ - Gerarquía secundaria de los datos de usuario, contiene la mayoría de las utilidades y aplicaciones multiusuario. ◦ /usr/bin - Comandos binarios no esenciales (no necesarios en el modo de usuario único); para todos los usuarios. ◦ /usr/sbin - Sistema de binarios no esencial (por ejemplo demonios para varios servicios de red) utilizables únicamente por el usuario root. • /var/ - Ubicación para los datos que los programas pueden modificar en tiempo real (ej: el servidor de correo electrónico, los programas de auditoría, el servidor de impresión, etc.) Lic. Nelson D. Bordón A. Centro de Investigación en Tecnologías Informáticas Libres - CITIL – 200.3.248.106/citil