UNIVERSIDAD MICHOACANA DE SAN NICOLÁS DE HIDALGO FACULTAD DE INGENIERIA ELECTRICA Introducción al Sistema Operativo Linux Laboratorio de Herramientas Computacionales R.M.J. Lab.Juárez Herramientas Computacionales M.I. Rosalía Mora 1 FEBRERO DE 2010 OBJETIVOS Descubrir las peculiaridades de un proceso de arranque dual y el inicio y cierre de una sesión Linux. Reconocer los elementos del escritorio de Gnome. Gestionar con soltura las aplicaciones y las ventanas. Organizar los archivos personales en la estructura de directorios de LINUX. Utilizar la terminal en modo texto. • Buscar aplicaciones elementales. R.M.J. Lab. Herramientas Computacionales 2 LINUX es un núcleo de sistema operativo basado en UNIX y bajo licencia GNU, y es el producto de la cooperación de numerosos desarrolladores de diferentes partes del mundo. LINUX es una implementación de libre distribución para computadoras personales (PC), servidores, y estaciones de trabajo. Fue desarrollado para el procesador Intel 386. Actualmente soporta los procesador Intel, así como AMD y Cyrix. También soporta máquinas basadas en SPARC, DEC Alpha, PowerPC/PowerMac, Mac y Motorola 680x0. R.M.J. Lab. Herramientas Computacionales 3 DEFINICIONES kernel Se llama al núcleo del sistema operativo de UNIX. El núcleo contiene el código que se encarga de las interrupciones, los manejadores de dispositivos de bajo nivel y parte del manejo de la memoria. El shell constituye el intérprete de órdenes del sistema operativo UNIX. Aunque no es más que un programa de utilidad, es la interfaz de UNIX para comunicación con el usuario. LINUX utiliza el mismo shell como interprete. R.M.J. Lab. Herramientas Computacionales 4 UN POCO DE HISTORIA Richard Stallman Linus B. Torvalds Andrew Tanenbaum R.M.J. Lab. Herramientas Computacionales 5 Free Software Fundation Richard Stallman fundó la Free Software Fundation con el objetivo de crear y difundir el uso de programas libres, basados en la siguiente filosofía: En 1985 “el software es una parte de la ciencia y como tal, debe ser compartido libremente por toda la humanidad; los programas se pueden copiar, usar y modificar sin más restricción que respetar su autoría”. Para ello, los programas se distribuyen con el código fuente, y se sustiyuye el copyright por el copyleft. R.M.J. Lab. Herramientas Computacionales 6 GNU El proyecto principal de la Free Software Fundation es la creación de un sistema operativo compatible con UNIX, pero totalmente libre. Este proyecto se llama GNU3, acrónimo de “GNU’s not UNIX”. GNU consta de multitud de programas, en constante desarrollo y expansión, pero adolece de un núcleo bien depurado y operativo, ya que su núcleo ha pasado por muchos problemas en su desarrollo. La unión del núcleo de LINUX con GNU fue un éxito inmediato, y pronto se distribuyeron juntos, formando lo que se conoce como GNU/LINUX. R.M.J. Lab. Herramientas Computacionales 7 Linus Benedict Torvalds Nació en Helsinki, Finlandia, en 1969 y empezó a "trabajar" con computadoras desde los 10 años. En 1988 entró a la Universidad y conoció a Andrew Tanenbaum, quien había desarrollado un sistema operativo didáctico basado en UNIX al que llamó MINIX. Linus entró a formar parte de la comunidad de usuarios de MINIX, pero éste era un sistema operativo demasiado limitado, además de que los derechos de MINIX fueron cedidos a Prentice Hall y para usar MINIX se cobraba 150 dólares por licencia. En enero de 1991 compró su primer PC, una Intel 386 y aquí empieza la historia de LINUX. R.M.J. Lab. Herramientas Computacionales 8 Nacimiento de LINUX como sistema operativo En el verano de 1991; Linus tuvo la necesidad de bajar algunos archivos, por lo que se vio en la necesidad de desarrollar un sistema de archivos que leyera y escribiera en las unidades de disco. Se encontró que necesitaba los drivers, (códigos que comunican al kernel con los periféricos), así que se puso en contacto con otros usuarios a través del Newsgroup de su universidad. Linus utilizó el sistema operativo MINIX para realizar procesos muy simples: escribió un programa que emulara una terminal con dos procesos simultáneos para el Newsgroup y sin proponérselo, ya tenía para entonces el kernel, que es la parte del sistema operativo que administra los recursos. R.M.J. Lab. Herramientas Computacionales 9 Con el tiempo, Linus fue modificando periódicamente su kernel, de manera que pudiera ser capaz de ejecutar aplicaciones GNU. Así fue que nació el nuevo sistema operativo. Inicialmente, Linus solicitó que su sistema operativo se llamara FREAX: FRee (gratis) + frEAk (fenómeno anormal) + X (UNIX) Sin embargo, al administrador del servidor FTP de la Universidad de Tecnología de Helsinki no le gustó el nombre, y decidió ponerle el nombre de trabajo de Torvalds: Linus + X (UNIX) = LINUX LINUX no habría pasado de ser un experimento interesante si su creador no lo hubiera mencionado en el Newsgroup y si tampoco hubiera seguido la sugerencia de compartirlo con otros usuarios. R.M.J. Lab. Herramientas Computacionales 10 Hasta enero de 1992 existían escasamente 100 usuarios de la versión 0.02 de LINUX. Estos primeros usuarios proporcionaron valiosa información y observaciones al sistema operativo, desarrollando incluso los parches de los errores encontrados. La colaboración de todos dio como resultado que en marzo de 1994 se liberara la versión 1.0, en cuyos créditos se cuentan a más de 100 personas. Actualmente LINUX se usa en mas de 120 países y en la mayoría de las universidades del mundo, ya que por tratarse de un software libre, su crecimiento y potencial es prácticamente ilimitado. R.M.J. Lab. Herramientas Computacionales 11 LINUX es software Libre Software Libre no se refiere al precio o costo, se refiere a la libertad de acceso al código fuente y su posibilidad de mejorarlo. LINUX es software libre porque su codificación está a la disposición de cualquiera que desee aprenderlo, modificarlo, mejorarlo e incluso incluir nuevas herramientas. El software que es colocado en el dominio público puede ser atrapado y puesto en programas no libres. Cualquier mejora hecha después se pierde para la sociedad. Para mantenerse libre, el software no debe presentar derechos de autor o estar licenciado. El software con licencia y sin costo es comúnmente una campaña de mercado para promover un producto o para conducir a la quiebra a una compañía más pequeña. No hay garantía de que seguirá siendo libre. Consultar http://www.debian.org/intro/free.es.html para más información. También http://www.gnu.org/ para conocer sobre las licencias GNU. R.M.J. Lab. Herramientas Computacionales 12 Distribuciones de LINUX Una distribución es el trabajo de un conjunto de programadores que engloban programas y aplicaciones, de modo que nos facilitan el trabajo de la instalación, la configuración y el mantenimiento de un sistema GNU/LINUX. Inicialmente, las distribuciones se limitaban a recopilar software libre, empaquetarlo en disquetes o CD-ROM y redistribuirlo o venderlo. Actualmente las distribuciones son empresas que compiten entre sí por incluir lo último en software, con instalaciones gráficas capaces de autodetectar el hardware y que instalan un sistema entero en unos cuantos minutos. Además del núcleo Linux, las distribuciones incluyen bibliotecas y herramientas del proyecto GNU, y el sistema de ventanas X Window. Dependiendo del tipo de usuarios a los que la distribución esté dirigida se incluye también otro tipo de software como procesadores de texto, hoja de cálculo, reproductores multimedia, herramientas administrativas, etc. Más información: http://es.wikipedia.org/wiki/Distribuci%C3%B3n_Linux R.M.J. Lab. Herramientas Computacionales 13 Las tres tareas básicas de una distribución, y que además diferencian unas de otras, son: Recopilar todos los programas que consideren interesantes, normalmente cientos o miles. Crear un programa de instalación, que deje el ordenador listo para trabajar. Disponer de un sistema de control de software que lleve a buen término la tarea de añadir, actualizar o borrar programas del sistema. Algunas distribuciones cobran una modesta cantidad a cambio del costo de los materiales (CD y manuales), el transporte y la asistencia técnica. Todas las distribuciones permiten la descarga en Internet y la copia de versiones de prueba, que son perfectamente operativas. R.M.J. Lab. Herramientas Computacionales 14 Debian Esta distribución está auspiciada por la Free Software Fundation y por tanto no es comercial. La mantienen unos mas de mil voluntarios de todo el mundo. Red Hat Esta compañía estadounidense fue la primera distribución que cotizó en bolsa. Tiene contactos comerciales con muchos grandes fabricantes de hardware y software. Distribuye a FEDORA. Slackware Esta distribución es una de las más antiguas. SuSE La distribución de esta compañía alemana tiene un gran éxito en Europa. Sólo es libre la versión de evaluación, de un único CD-ROM. R.M.J. Lab. Herramientas Computacionales 15 Ubuntu es una antigua palabra africana que significa "humanidad hacia los demás". Ubuntu también significa "soy lo que soy debido a lo que todos somos". La distribución Ubuntu LINUX trae el espíritu del concepto Ubuntu al mundo del sofware. Ubuntu es perfecto para personas que nunca han utilizado Linux, por su facilidad de instalación, amplio reconocimiento de dispositivos, robustez y facilidad de manejo. Incorpora todas las aplicaciones fundamentales que cualquier usuario básico necesita para trabajar con una computadora. Se puede bajar de Internet y distribuir libremente. R.M.J. Lab. Herramientas Computacionales 16 ¿Qué programas incluye Ubuntu? Ubuntu incluye más de 1.000 paquetes entre los cuales se incluyen: El kernel 2.6 de linux y Gnome 2.10 (gestor de ventanas). Aplicaciones: procesador de texto, hoja de cálculo y navegador para Internet. Un servidor web. Clientes de correo electrónico. Varios lenguajes y herramientas de programación. Juegos. Todo ello incluído en el CD de instalación. Además, a través de Internet, tenemos acceso a más de 1.300 paquetes con soporte completo por parte de Ubuntu, y más de 16.000 paquetes de terceros. R.M.J. Lab. Herramientas Computacionales 17 Ventajas de LINUX Precio. Debido a que su licencia es GNU, podemos descargarlo gratuitamente desde Internet o comprarlo a un precio muy accesible. Requerimientos. Actualmente los sistemas operativos necesitan mucha máquina y recursos del sistema para ejecutarse con fluidez, LINUX, al poder funcionar exclusivamente en modo texto sin la necesidad de cargar un entorno gráfico puede ejecutarse en cualquier máquina a partir de un procesador Intel 386. Estabilidad. Al tener su núcleo basado en UNIX, hereda la estabilidad caracteristica de los sistemas UNIX. Seguridad. A nivel de servidor podemos encontrar que la seguridad de LINUX frente a otros servidores del mercado es mucho mayor. Compatibilidad. Reconoce la mayoría de otros sistemas operativos en una red. R.M.J. Lab. Herramientas Computacionales 18 Multitarea real. Es posible ejecutar varias aplicaciones y procesos simultáneamente. Velocidad. Debido a la multitarea real que incorpora, y que no es necesario cargar su entorno gráfico para ejecutar servicios o aplicaciones, hacen que su velocidad sea muy superior a los actuales sistemas operativos. Código Fuente. El paquete incluye el código fuente, por lo que es posible modificarlo y adaptarlo a nuestras necesidades libremente. Entorno de Programación. Es ideal para la programación, inclusive se puede programar para otros sistemas operativos. Crecimiento. Su crecimiento, gracias a la licencia GNU, el código abierto, y la gran comunidad de miles de programadores, es de los más rápidos que existen en la actualidad. R.M.J. Lab. Herramientas Computacionales 19 Desventajas de LINUX Soporte. Si se baja en forma gratuita, no se tiene soporte de la compañía que lo distribuye. Sin embargo, algunas distribuciones dan soporte por teléfono, email, foros, etc. Simplicidad. No es tan fácil de usar como otros sistemas operativos. No obstante, algunas distribuciones están mejorando su facilidad de uso, gracias al entorno de ventanas, sus escritorios y las aplicaciones diseñadas específicamente para él, cada día resulta más sencillo su integración y uso. Software. No todas las aplicaciones Windows se pueden ejecutar bajo LINUX. A veces es difícil encontrar una aplicación equivalente a alguna de Windows y que tenga soporte para el español. Hardware. No todo el hardware funciona en LINUX. Los dispositivos propietarios, donde el fabricante no pone disponibles las especificaciones de operación, no tienen drivers en LINUX. Tampoco funcionan todos los dispositivos nuevos, pues se requiere tiempo para que algún programador escriba los drivers. R.M.J. Lab. Herramientas Computacionales 20 Diferencias entre Windows y LINUX LINUX, a diferencia de Windows, tiene multitarea real y es multiusuario. Posee un esquema de seguridad basado en usuarios y permisos de lectura, escritura y ejecución establecidos a los archivos y directorios. Esto significa que cada usuario es propietario de sus archivos, y otro usuario no puede acceder a estos archivos. Esta propiedad no permite el contagio de virus entre archivos de diferentes usuarios. GNU/LINUX es ideal para su utilización en un ambiente de trabajo porque: Al ser software libre, no existe el costo de las licencias, y una copia del sistema GNU/LINUX puede instalarse en tantas computadoras como se necesite. Existen utilidades para el trabajo en oficina, que son compatibles con las herramientas de la serie MS-Office. R.M.J. Lab. Herramientas Computacionales 21 Iniciar sesión en LINUX MODO GRÁFICO MODO TEXTO Permite trabajar con hasta 7 consolas, accesando con F1... F7 Red Hat Linux release 9 Emplea el X Window System, o XWindows. GNOME y KDE son los dos tipos GUI (interfase gráfica de usuario). Kernel 2.4.18-14 on an i686 [Localhost]$ startx Localhost login: R.M.J. Lab. Herramientas Computacionales 22 El escritorio de LINUX • Inicio • Panel de control • Personalizar el escritorio gráfico • Preferencias de pantalla. • Atajos del teclado • Configurar fecha y hora • Montar y desmontar unidades de disco • Navegador para Internet • Nueva Terminal • Aplicaciones Entre muchas otras... R.M.J. Lab. Herramientas Computacionales 23 Aplicaciones Categoría Aplicación recomendada Equivalentes Procesadores de texto OpenOffice.org Word KWord Hojas de cálculo OpenOffice.org SpreadSheet Gnumeric, KSpread Presentaciones OpenOffice.org Presentation KPresenter, MagicPoint Diagramas Dia Kchart, Kivio, XFig Diseño gráfico GIMP, (KPaint) Icon Editor (K Icon Editor) Visualizadores de imágenes GThumb Visualizador de imágenes (Kuickshow) Editores de texto Gedit vi, Emacs Clientes de correo electrónico Evolution Kmail, Mozilla Mail, mutt Navegadores FireFox Mozilla, Galeon, Konquerer, links, lynx Chat/Mensajes Instant Messenger (GAIM) X-Chat, Chatzilla Visualizadores de PDF/PostScript xpdf Ghostview R.M.J. Lab. Herramientas Computacionales 24 Cámaras digitales/Escaners Herramienta para la cámara digital (gtKam), para escanear (XSane) Programa para escanear y OCR (Kooka), GIMP PDAs Jpilot KPilot, Evolution Grabación de CDs CD Creator, cdrecord, X-CD-Roast KOnCD Finanzas personales Gnucash Fax Fax Viewer (KFax) Sonido y vídeo Audio Player (XMMS), Reproductor de CD (GNOME CD), Grabador de Sonido (GNOME Sound),Control de volumen (VUMeter) R.M.J. Lab. Herramientas Computacionales Reproductor de CD de KDE, aumix, Mezclador de sonidos KDE, KMid 25 Finalizar sesión de LINUX MODO GRÁFICO MODO TEXTO Finalizar sesión: Para finalizar la sesión, seleccionar “Terminar sesión” [Localhost]$ exit [Localhost]$ Ctrl D Para apagar la computadora, seleccionar “Apagar” Apagar la computadora: [Localhost]$ R.M.J. halt Lab. Herramientas Computacionales 26 Sistema de archivos en LINUX El sistema de archivos de LINUX se basa en el sistema operativo UNIX. Su organización es de forma jerárquica o de árbol invertido, que comienza por la raíz. A diferencia de Windows, en LINUX debemos olvidarnos de la estructura de unidades identificadas por letras. En LINUX no existen unidades sino un sistema de archivos único. Todas las unidades, locales y remotas (compartidas en una red local), se sitúan en la misma estructura de directorios. El directorio principal se denomina root o raíz, y se simboliza mediante una barra /. R.M.J. Lab. Herramientas Computacionales 27 Diagrama del Sistema de archivos en LINUX /root /etc /home /lib /bin /sbin /dev /mnt /tmp /usr /var /proc /boot /tmp /local R.M.J. Lab. Herramientas Computacionales 28 Descripción de algunos archivos de LINUX /boot contiene los archivos de arranque del sistema. /home es el directorio que alberga las cuentas de usuario. Normalmente, aparece un directorio para cada usuario autorizado del sistema. Los usuarios pueden estar organizados por grupos. Tampoco es necesario que todas las cuentas estén en la máquina local. Es muy frecuente que este directorio enlace con la computadora y el directorio real que contienen las cuentas de usuarios. /usr es un archivo para los datos estáticos, usualmente donde se instalan todos los programas. /dev contiene los accesos a los dispositivos de entrada y salida. Para LINUX, cada dispositivo tiene un archivo asociado a través del cual se maneja. /etc contiene archivos de configuración, administrativos y bases de datos del sistema R.M.J. Lab. Herramientas Computacionales 29 Descripción de algunos archivos de LINUX /mnt es el punto de montaje en el que se unen los dispositivos de almacenamiento para acceder a su contenido. Habitualmente, en los entornos actuales, los dispositivos se montan automáticamente y el usuario no tiene que estar pendiente de que estén accesibles en los directorios correspondientes. /lib, /usr/lib contienen librerías de programas. /bin, /usr/bin, /sbin contienen aplicaciones o ejecutables empleados para la administración del sistema. /tmp, /var/tmp contienen archivos temporales. /var contiene archivos y directorios variables en contenido. /proc tiene el sistema de archivos virtual en memoria. Este directorio contiene una referencia por cada proceso activo en el sistema. R.M.J. Lab. Herramientas Computacionales 30 Protección de archivos La protección de archivos en LINUX se maneja por medio de una cadena de permisos de nueve caracteres. Los nueve caracteres se dividen en tres grupos de tres caracteres cada uno. RWX 1 RWX 2 RWX 3 1. Especifica los permisos del dueño del archivo. 2. Especifica los permisos para aquellos usuarios que pertenecen al mismo grupo de trabajo que el dueño. 3. Indica los permisos para el resto del mundo. En cada grupo de tres caracteres pueden aparecer las letras RWX en el orden indicando: R W X R.M.J. Permiso de leer (READ). Permiso escribir (WRITE) Permiso para ejecutar (EXECUTE). Lab. Herramientas Computacionales 31