SOLUCIONES LINUX Introducción a la Arquitectura Whitepaper Noviembre 2004 Historia El mundo de los SO: Legacys: IBM mainframes Unisys y otros DEC VAX (OpenVMS) (*) UNIX - X/Open (*) BSD de AT&T (ahora SCO) SYS V de UCLA Win32 Mac OS (*) Novell Netware OS2 Warp (*) (*) Compatible POSIX Mas info en: http://www.osdata.com/ LINUX Primer Kernel Open source: Linus Torvalds 1991 Plataformas: Intel/Cyrix/AMD Pentium, Intel 80x86, Motorola/IBM PowerPC, Motorola 680x0, Sun SPARC, SGI MIPS, DEC Alpha, HP PA-RISC, DEC VAX, ARM, API 1000+ y CL-PS7110. Distribuciones: Redhat (Fedora), SUSE, Slackware, Mandrake, Debian, Caldera, … GUI Xwindows, GNOME, KDE, … Shells bash, tcsh, zsh, sh, … Arquitectura Hay dos niveles de ejecución: Kernel (establecido en boot time) Usuario Un programa (proceso) de usuario solo puede saltar al modo kernel (privilegiado) a través de una system call La system call comprueba los derechos del usuario y filtra la seguridad Gestión de procesos Los procesos trabajan con máquinas virtuales (FS, memoria, procesador, etc.) El kernel establece los recursos del proceso La comunicación entre procesos se filtra siempre por el kernel La memoria del proceso está mapeada en el FS Gestión de procesos Gestión del hardware Todo driver es código de kernel Todo driver corresponde a un archivo en el FS (bin o char) El kernel es modular Sistema de Ficheros Por defecto / (root dir) y sobre el se montan los dispositivos físicos y lógicos Linux soporta múltiples tipos de FS Sistema de ficheros /bin Contiene los ejecutables mas comunes que podrían considerarse comandos estándar: Shells (bash, sh, …), Manipulación de ficheros (ls, cp, mv, tar, grep, vi, …), Gestión de procesos (ps, kill, …), etc. /boot Ficheros de arranque (entre ellos el kernel) /dev Drivers Char: keyboard, mouse (psaux para PS/2), puerto serie (ttyS0), consola (tty0) … Bin (Block): floppy, CD-ROM, disco duro, … /etc Contiene la configuración del software de la máquina. En Linux TODO es software excepto el kernel (red, usuarios, correo, …). Sistema de Ficheros /home Contiene los directorios de los usuarios de la máquina. Excepciones: root: el administrador está en /root Usuarios sin login: bin, daemon, mail, lp, … /lib Librerías comunes del sistema (DLL -> SO) /mnt Punto de montaje para SF temporales. (Debian monta el CD-ROM en /cdrom) /lost+found inodos que el sistema encuentra sin referencia en la tabla. Todo SF físico tiene uno en su raíz. /opt Sin especificar. Algunos fabricantes lo usan para instalar su soft. Establecen sim links para poner los comandos donde toca. Sistema de Ficheros /proc Mapa de memoria de los procesos y otras utils: $ cat /proc/cpuinfo – (CPU info) $ cat /proc/meminfo – (RAM y swap) … /sbin Como el bin pero solo para root. Normalmente tiene los programas de mantenimiento del sistema (ifconfig, mkfs, lilo, …) /tmp temporal que el sistema se encarga de limpiar por un deamon (Debian solo al arranque). Todos pueden escribir y leer. /usr Para instalar el soft. Dentro encontraremos: /usr/doc - Documentación. /usr/bin – Ejecutables estándar. /usr/local/bin – Ejecutables no estándar /usr/local/src - fuente. /var Aquí van los ficheros de tamaño variable (logs en /var/log, colas de impresión en /var/spool, entorno de ejecución en /var/run, …). Se hace así para poder montarlo en un SF dirente del / (si el / se queda sin espacio el sistema podría colapsar) Software de base (opensource) Desktop: GNOME y KDE Ofimática: OpenOffice, funciona también en windows y es el que mejor se integra con office Mail: Evolution, muy similar a Outlook MTA: sendmail y postfix Goupware: phpGroupware Navegador: Mozilla, funciona en Windows WebServer: Apache, Tomcat, JBOSS Bases de Datos Relacionales: MySQL y postgreSQL Desarrollo: Eclipse, Kylix http://europa.eu.int/ida/ tiene un estudio de 146 páginas de migración a Linux Conclusiones Linux es una versión mejorada de Unix Linux es un SO maduro con 13 años de historia Su arquitectura de kernel y VM garantiza la seguridad y la robustez desde el núcleo Linux es estándar (soft y hard) Linux es abierto, multiplataforma y permite adaptarlo a múltiples escenarios (RT, embedded, …) El kernel es gratuito • • ! " # $% 14# & '()* (+),- +