Está en la página 1de 84

Seminario descubriendo a Gnu/Linux Primera Edicin

Mario Ramos I+D Mundo Linux

17/11/2006

1 Se concede el permiso de copia, destribucin de este documento en los trminos de la GNU Free Documentation licence, Versin 1.2 siempre y cuando se adjunte una copia del copyleft de este documento. La informacin contenida en este documento y los derivados de este se proporcionan tal cual son y los autores no asumirn responsabilidad alguna si el usuario o lector hace mal uso de estos.

ndice general
I Caractersticas generales de Gnu/Linux
0.1. Filosofa de desarrollo Gnu . . . . . . . . . . . . . . . . . . . . . 0.2. Software mas comn que acompaa a Gnu/Linux . . . . . . . . . 0.3. Caractersticas tcnicas de Gnu/Linux . . . . . . . . . . . . . . . 5 6 11

II

Instalacin de Gnu/Linux
1.0.1. Identicacin de unidades en Gnu/Linux . . . . . . . . . . 1.0.2. Estructura logica de un disco duro . . . . . . . . . . . . . 1.1. Sistemas de archivos . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1. Tipos de fragmentacin de un sistema de archivos . . . . 1.1.2. Caractersticas de los sistemas de archivos mas comunes en Gnu/Linux . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Estructura de directorios en Gnu/Linux . . . . . . . . . . . . . . 1.2.1. Particionamiento y montaje de sistemas de archivos . . . 2.1. Preparacin pre-instalacin . . . . . . . . . . . . . . . . . . . . .

14
15
15 16 18 18 19 21 23

1. Manipulacin de discos duros bajo Gnu/Linux

2. Instalacin de Gnu/Linux junto a MS-Windows

30

30

III

2.2. 2.3. 2.4. 2.5.

Gestin del Hardware en Gnu/Linux

Proceso de arranque . . . . . . . . . . . . . . . . . . . . . Reconocimiento del hardware y mdulos del kernel . . . . Compilar y agregar nuevos mdulos al kernel . . . . . . . Ejemplos de instalacin de nuevo hardware en Gnu/Linux

. . . .

. . . .

. . . .

. . . .

34

35 36 40 41

IV Administracion bsica de Gnu/Linux


3. Usuarios grupos y otros (UGO) del sistema
3.0.1. Tipos de archivos y permisos . . . . . . . . . . . . . . . .

49
50
54

NDICE GENERAL

4. Uso de caracteres especiales redireccionamiento y tuberias 5. Manipulacion de archivos

4.1. Caracteres especiales . . . . . . . . . . . . . . . . . . . . . . . . . 5.1. Agregar un sistema de archivos . . . . . . . . . . . . . . . . . . . 5.2. Comandos para la manipulacin de archivos y apagado de la misma 5.3. Redireccion y canalizacin de la entrada y salidas estndar . . . 5.3.1. Redireccion de la salida estndar . . . . . . . . . . . . . . 5.3.2. Redireccion de la entrada estndar . . . . . . . . . . . . . 5.3.3. Redireccion de la salida estndar de error . . . . . . . . . 5.3.4. Canalizacin . . . . . . . . . . . . . . . . . . . . . . . . .

61

61

63

63 64 66 66 66 67 67

6. Niveles de ejecucin (RUNLEVELS) 7. Gestion de programas en Gnu/Linux


7.1. sistema de gestion de paquetes . . . 7.1.1. Paquetes en tar , tar.gz , tgz 7.1.2. Paquetes en rpm . . . . . . . 7.1.3. Paquetes en deb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70 71
71 72 73 74

8. Servidores gracos Xfree86 / Xorg 9. servidores de impresion lprng / Cups 10.Conguracion simple de Samba
9.0.4. Gestionando colas de impresin . . . . . . . . . . . . . . .

76 79
79

82

Parte I

Caractersticas generales de Gnu/Linux

0.1. Filosofa de desarrollo Gnu


La idea del desarrollo de software libre se a dado desde los principios de la computacin, al inventar el hardware se vio la necesidad de tener software, siendo as que los creadores iniciales fueron cientcos que buscaban conocimiento y avance. por esta razn desde los principios de la era de la computacin como la conocemos se a compartido el software de forma que asegure el crecimiento del mismo. Pero su historia no a sido tan color de rosa puesto que tenemos de por medio grandes empresas que no miran de la misma forma la ciencia del software. Todo inicio en 1971 cuando Richard M. Stallman inicio sus labores en el laboratorio de inteligencia articial del MIT, entro a trabajar con una comunidad que comparta el software, algo que suceda desde hace muchos aos. Para esos aos el laboratorio de Inteligencia articial trabajaba con un sistema operativo llamado ITS (Incompatible Timesharing System) sistema incompatible de tiempo compartido , escrito en lenguaje ensamblador para la computadora PDP-10 marca Digital. En los aos ochentas la PDP-10 fue descontentada y su software quedo obsoleto, de igual forma la comunidad hacker con la que trabajaba Richard M. Stallman ya haba sufrido su desmembracin a raz de que muchos fueron contratados por la empresa Simbolices en el ao 1981, en 1982 el laboratorio de inteligencia articial haba adquirido la nueva PDP-10 los administradores empezaron a trabajar con el sistema operativo propietario de Digital y no con el ITS creado por los hackers, siendo asi Richard M. stallman empieza a pensar mucho sobre la libertad y los principios de una sociedad real donde se hace para ayudar a la comunidad mas no para explotarla. La idea de desarrollar software libre naci a raz de estos impases y otros mas , Richard Stallman cuando pens en el software libre tambin pens que seria una gran oportunidad para crear esa gran comunidad hacker a la cual perteneci y fue destruida a raz de los acontecimientos, siendo asi lo primero seria mirar bajo que reglas se dara el software libre y estas son las principales: Usted tiene libertad para ejecutar el programa, con cualquier propsito. Usted tiene la libertad para modicar el programa para adaptarlo a sus necesidades. (Para que esta libertad sea efectiva en la prctica, usted debe tener acceso al cdigo fuente, porque modicar un programa sin disponer del cdigo fuente es extraordinariamente dicultoso.) Usted tiene la libertad para redistribuir copias, tanto gratis como por un canon. Usted tiene la libertad para distribuir versiones modicadas del programa, de tal manera que la comunidad pueda beneciarse con sus mejoras.

6 El inicio ocial del proyecto GNU se dio en enero de 1984 y para poder arrancar sin problemas Richard stallman decidi dimitir de su puesto en el MIT (Masachut's Institute Tecnologic ) puesto que al formar parte del sta el MIT podra haber impuesto algn tipo de presin y de esta forma cambiar las intenciones para las cuales se creo el GNU sin embargo le ofrecieron seguir trabajando en el MIT sin ningn problema. El inicio se dio con el compilador GCC luego con GNU EMACS quien dio inicio a el modelo econmico con el que se mueven muchas de las distribuciones de GNU , al empezar a crecer el desarrollo del proyecto gnu se decidi crear la fundacin para el software libre exenta de impuestos y encargada de recolectar fondos para el desarrollo de GNU , benecindose de la venta de software GNU y no-GNU pero tampoco propietario. En la actualidad la licencia Gnu/GPL es una de las mas extendidas y usadas en el mundo del Open Source a da de la creacin de esta gua la Free Software Foundation esta creando la nueva licencia GPL V.3 bajo bastantes presiones pues actualmente el mundo del desarrollo de software esta siendo atacado por una plaga conocida como patentes de software.

0.2. Software mas comn que acompaa a Gnu/Linux


X-window
El X window(1984 en el mit(proyecto athena) luego en 1986 la primera versin de x window X10 quienes apoyaron ibm,sun,at & t, y dec fundaron el X consorcium. El sistema de ventanas X fue desarrollado a mediados de los aos 1980 en el MIT para dotar de una interfaz grca a los sistemas Unix. Este protocolo permite la interaccin grca en red entre un usuario y una o ms computadoras haciendo transparente la red para ste. Generalmente se reere a la versin 11 de este protocolo, X11, el que est en uso actualmente. http://es.wikipedia.org/wiki/XWindow

Sendmail (BSD)
Las races de Sendmail se remontan al nacimiento del correo electrnico, una dcada antes de que naciese ARPANET, el precursor de Internet. Por entonces, cada buzn de usuario era un chero con derechos de slo lectura y las aplicaciones de correo eran simplemente texto incorporado en ese chero. Cada usuario tena que abrir y meterse de lleno en el chero de correo para buscar correos antiguos y leer el correo nuevo era toda una faena. La primera transferencia real de un chero de mensaje de correo entre dos hosts no tuvo lugar hasta 1972, ao en el que el correo

7 electrnico empez a transferirse por FTP a travs de un protocolo de red NCP. Este mtodo de comunicacin ms sencillo muy pronto se hizo popular, incluso hasta el punto de representar la mayor parte del trco de ARPANET en menos de un ao. Sin embargo, la falta de estndares entre los protocolos existentes convirti al correo electrnico en ms difcil de enviar desde algunos sistemas y as continu hasta que ARPANET cre el estndar TCP/IP en 1982. Un nuevo protocolo, SMTP, que se materializaba en el transporte de mensajes. Estos avances, en combinacin con la sustitucin de los cheros HOSTS por DNS, permitieron que se materializasen los agentes MTA con funciones completas. Sendmail, que creci a partir de un precedente sistema de entrega de correo electrnico denominado Delivermail, muy pronto se convirti en estndar a medida que Internet comenzaba a expandirse y a utilizarse ms ampliamente.

Apache
El nacimiento del proyecto apache (nacimiento del web 1989) pensada para enlazar a cientcos se creo el primer navegador (Viola segundo Mosaica) y servidor apache (ncsa inicialmente )

Qmail
est desarrollado por Dan Bernstein (DJB), http://pobox.com/ djb/djb.html, un profesor de matemticas ahora en la University of Illinois en Chicago. El Dr. Bernstein es asimismo bien conocido por su trabajo en el campo de la criptografa y por su juicio contra el gobierno de EE.UU. con respecto a la publicacin de cdigo fuente relativo a encriptacin. http://www.news.com/News/Item/0,4,36217,00.html para ms informacin sobre el proceso judicial. El primer lanzamiento pblico de qmail , versin beta 0.70, tuvo lugar el 24 de enero de 1996. La primera versin gamma, 0.90, se lanz el 1 de agosto de 1996. La versin 1.0, el primer lanzamiento general, se anunci el 20 de febrero de 1997. La versin 1.03, se lanz el 15 de Junio de 1998.

Squid
Squid puede hacer Proxy y cache con los protocolos HTTP, FTP, GOPHER y WAIS, Proxy de SSL, cache transparente, WWCP, aceleracin HTTP, cache de consultas DNS y ms.

Postgresql
El Sistema Gestor de Bases de Datos Relacionales Orientadas a Objetos conocido como PostgreSQL (y brevemente llamado Postgres95) est derivado del paquete Postgres escrito en Berkeley (1984). Con cerca de una dcada de desarrollo tras l, PostgreSQL (1994) es el gestor de bases de datos de cdigo abierto ms avanzado hoy en da, ofreciendo control de concurrencia multi-versin, soportando casi toda la sintaxis SQL (incluyendo subconsultas, transacciones, y tipos y funciones denidas por el

8 usuario), contando tambin con un amplio conjunto de enlaces con lenguajes de programacin (incluyendo C, C++, Java, perl, tcl y python). actualmente soporta integridad referencial

Mysql
MySQL es un sistema de gestin de base de datos, multihilo y multiusuario con ms de seis millones de instalaciones[1]. MySQL AB desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado lo ofrece bajo la GNU GPL, pero, empresas que quieran incorporarlo en productos privativos pueden comprar a la empresa una licencia que les permita ese uso. Est desarrollado en su mayor parte en ANSI C. Al contrario de proyectos como el Apache, donde el software es desarrollado por una comunidad pblica, y el copyright del cdigo est en poder del autor individual, MySQL est posedo y patrocinado por una empresa privada, que posee el copyright de la mayor parte del cdigo. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Adems de la venta de licencias privativas, la compaa ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran va Internet. MySQL AB fue fundado por David Axmark, Allan Larsson, y Michael Widenius. http://es.wikipedia.org

Sap database
SAP AG (Systeme, Anwendungen und Produkte) (Sistemas, Aplicaciones y Productos), con sede en Walldorf, es el primer proveedor de aplicaciones de software empresarial en el mundo. Como empresa, comercializa un conjunto de aplicaciones de software para soluciones integradas de negocios, entre ellas mySAP Business Suite, que provee soluciones escalables que permiten mejorar continuamente, con ms de 1.000 procesos de negocio consideradas las mejores prcticas empresariales. SAP es considerada como el tercer proveedor independiente de software del mundo y el mayor fabricante europeo de software. Con 12 millones de usuarios, 96.400 instalaciones, y ms de 1.500 socios, es la compaa ms grande de software Inter-empresa. A nales de 2005, SAP empleaba a 35.873 personas (fuente empleados) en ms de 50 pases y sus ingresos anuales fueron de 8.513 millones de euros (fuente ingresos) http://es.wikipedia.org

MaxDB

The Professional DBMS Global SAP Technology Partner

9 MaxDB is a heavy-duty, SAP-certied open source database for OLTP and OLAP usage which oers high reliability, availability, scalability and a very comprehensive feature set. It is targetted for large mySAP Business Suite environments and other applications that require maximum enterprise-level database functionality and complements the MySQL database server. Today, about 6,000 customer installations are using MaxDB technology globally, including Toyota, Intel, DaimlerChrysler, Braun-Gillette, Bayer, Colgate, Yamaha, and Deutsche Post (the German Post Oce). http://www.mysql.com/products/maxdb/

Samba
Samba es soportado por la mayora de las variantes UNIX, por LINUX y por algunos sistemas no UNIX, es gratuito, est ampliamente documentado y por sus caractersticas facilita la administracin de los servidores de archivos. Es todo eso lo que lo hace muy popular. Aunque naci como tal en 1995, su historia arranca realmente en 1992, cuando Andrew Tridgell se vio en la necesidad de acceder a archivos en una mquina Unix desde un PC. El cliente NFS (Network File System Sistema de Archivos de Red es el protocolo nativo de comparticin de archivos Unix-Linux) que utilizaba trabajaba perfectamente, pero necesitaba tambin una aplicacin que usaba la API de NetBIOS. Dada la problemtica de usar protocolos mltiples bajo DOS, decidi adoptar un enfoque alternativo y utilizar la ingeniera inversa.

Netatalk
Netatalk en el servidor Linux para que haga interfase con estaciones de trabajo Macintosh usando el protocolo natal AppleShare. Todo esto est disponible libremente con Linux. Nunca antes se han integrado diversos sistemas tan tranquilamente.

NFS
en 1985 Sun implementa NFS (Networf File System/Shearing) sobre TCP/IP para compartir archivos en Red.

Mozilla-Netscape / Firefox
1998: Netscape inicia el proyecto Mozilla Mozilla Firefox es un navegador de cdigo abierto, multiplataforma, con interfaz grca de usuario desarrollado por la Mozilla Corporation y cientos de voluntarios[1]. Se basa en el motor XULRunner, desarrollado en su mayor parte utilizando el lenguaje XUL. Comenz como un fork del

10 navegador de la Mozilla Application Suite, y se ha convertido en el principal foco de desarrollo para la Fundacin Mozilla junto con el cliente de correo electrnico y lector de noticias, Thunderbird), reemplazando a Mozilla Suite como producto estrella de la fundacin. Otros proyectos que surgieron de este esfuerzo son Nvu (editor web) y Mozilla Sunbird (agenda electrnica). http://es.wikipedia.org/wiki/Mozilla_Firefox

Gimp
La historia de GIMP se remonta a un proyecto de una asignatura de un par de alumnos de la universidad de Berkley. Quisieron hacer algo diferente a las prcticas habituales y, aunque no tenan experiencia en el mundo del diseo grco basado en computador, se decidieron a intentar hacer un programa de manipulacin de imgenes al que llamaron GIMP. Eras las siglas de "General Image Manipulation Program"que ms tarde pasaran a ser "GNU Image Manipulation Program", el Programa GNU para la Manipulacin de Imgenes. Tuvieron la suerte de tener un profesor que les anim e incluso les dio buenas ideas para su desarrollo y el proyecto cogi fuerza en los nimos de estos dos desarrolladores. Los nombres de estos desarrolladores eran Spencer Kimball y Peter Mattis (an son ;-)) y an por aquel entonces, 1995, no eran conscientes de que haba creado una de las "killer applications"del software libre. Durante casi un ao se dedicaron ellos dos en solitario al desarrollo de la aplicacin y en Enero de 1996 publicaron una primera versin, la 0.54, que ya inclua el sistema de ampliacin de GIMP por plug-ins, uno de sus grandes xitos al permitir que desde el principio, la comunidad de desarrolladores pudiera ampliar de forma sencilla la funcionalidad. La aparicin de plug-ins de todo tipo (ltros, efectos especiales, creacin de imgenes, nuevas herramientas ...) no se hizo esperar y, gracias a la lista de distribucin que se creo para la comunidad interesada en GIMP, est tuvo una excelente va de comunicacin con lo que se aceler an ms el crecimiento de GIMP. El impuls denitivo dentro de la comunidad de GNU/Linux se lo dio a GIMP Larry Ewing con la creacin de la famosa mascota Tux utilizando GIMP. Fue un trabajo que gusto mucho a la gente y era una clara muestra de lo que se poda obtener con GIMP.

Film-Gimp
Film Gimp es un programa basado en The Gimp, que sirve para pintar y retocar pelculas, segn dicen en la web este programa fue usado en pelculas como Scooby-Doo, Harry Potter, y Stuart Little. Este proyecto comenz en 1998, esponsorizado por Silicon Grail (una empresa dedicada a desarrollar software para pelculas que fue adquirida por Apple) y el estudio de post-produccin Rhythm & amp; Hues. La explicacin que dieron para justicar que Film Gimp fuese Open Source es la siguiente "We had done some other open source projects, such as lm recorder

11 drivers, and saw enhancing Gimp as an opportunity to do something with the open source community"

Blender
Blender es un programa multiplataforma (Linux incluido) para diseo y animacin 3D con el que se pueden obtener unos resultados espectaculares. Blender es software libre multiplataforma, dedicado especialmente al modelado y creacin de grcos tridimensionales. El programa fue inicialmente distribuido de forma gratuita pero sin el cdigo fuente, con un manual disponible para la venta. Actualmente es compatible con todas las versiones de Microsoft Windows, Linux, Solaris, FreeBSD, IRIX y MacOS X. Tiene una muy peculiar interfaz grca de usuario, se critica como poco intuitiva, pues no se basa en el sistema clsico de ventanas, teniendo a su vez ventajas importantes sobre stas, como la conguracin personalizada de la distribucin de los mens y vistas de cmara. http://es.wikipedia.org/wiki/Blender

Mplayer
Player multimedia que acepta formatos: MPEG, VOB, AVI, VIVO, ASF/WMV, QT/MOV, FLI, NuppelVideo, yuv4mpeg, FILM, RoQ, OGG and some RealMedia les, supported by many native, XAnim, and Win32 DLL codecs. You can watch VideoCD, SVCD, DVD, 3ivx, FLI, DivX

OpenOce
Es un proyecto de cdigo fuente abierto con la siguiente misin: rear, en el entorno de una comunidad, el suite de ocina internacional lder que trabajar en todas las plataformas principales y permitir un acceso a toda la funcionalidad y datos por medio de APIs abiertos basados en componentes y el formato de archivos XML". Cdigo proveniente staroce donado por Sun Microsystems

0.3. Caractersticas tcnicas de Gnu/Linux


Sistema de licencia GNU/GPL

Multiusuario

12 el sistema multiusuario nos permite el uso de la maquina por varios usuarios al mismo tiempo a travs de una red o de consolas virtuales

Multitarea
La multitarea no consiste en hacer que el procesador realice ms de un trabajo al mismo tiempo (un solo procesador no tiene esa capacidad), lo nico que realiza es presentar las tareas de forma intercalada para que se ejecuten varias simultneamente. Por lo tanto en GNU/Linux es posible ejecutar varios programas a la vez sin necesidad de tener que parar la ejecucin de cada aplicacin.

Multilenguajes
el sistema en su instalacin permite escoger varios lenguajes y luego de instalado permite escoger por medio de sus entornos grcos lenguajes diferentes para sus usuarios

kernel modular
permite la adicin de utilidades al kernel por medio de mdulos que se adicionan al kernel y el usuario puede montar la cantidad de kernel's que desee puesto que el sistema podr arrancar con diferentes kernel's sin necesidad de reinstalar el sistema

Estabilidad
GNU/Linux es un sistema operativo diseado para trabajo de misin critica el cual necesita ser muy estricto y preciso en el manejo de sus recursos ocasionando de esta forma la estabilidad necesaria

Escalar
permite su fcil actualizacin y de esta forma poder modicar y mejorar en parte o totalmente el sistema

Seguro
El concepto de seguridad en redes de ordenadores es siempre relativo. Un sistema puede ser seguro para un determinado tipo de actividades e inseguro para otras. Por ejemplo, no sera recomendable guardar secretos de estado en un sistema GNU/Linux al que pudiera acceder mucha gente y careciese de un administrador dedicado absolutamente a la tarea, ya que segn todos los hackers, no hay sistema cuya seguridad sea perfecta. El sistema de contraseas que protege el acceso al sistema se basa en el algoritmo DES, el ms probado de los algoritmos de seguridad. Pero claro, por muy bueno que sea el algoritmo, si despus permitimos a sus usuarios poner como contrasea su nombre de usuario, de nada servir la contrasea y todos sus esfuerzos. Si se quiere que el sistema sea seguro, se debe administrar de tal forma que se tengan controlados a los usuarios en todo momento, para poder aconsejarles e incluso regaarles, en caso de que cometan alguna imprudencia, todo ello con el n de mantener la propia

13 seguridad de sus datos y de los nuestros. Para ayudarse a mantener la seguridad surgen nuevas herramientas constantemente, tanto para detectar intrusos como para encontrar fallos en el sistema y evitar as ataques desde el exterior.

Portable
GNU/Linux al ser diseado en lenguaje C y bajo GNU/GPL a permitido que muchos grupos de desarrolladores migren fcilmente su versin de GNU/Linux a diferentes maquinas como lo son Sparc, Alpha, Silicon, Atari, Amiga, PowerPc, Macintosh y otros

Fuente abierta
Esta es una de las mejores ventajas de GNU/Linux, ser de fuente abierta a permitido crear grupos de desarrollo a nivel mundial, que se encargan de crear y mantener actualizado el sistema con gran rapidez mantenindolo tecnolgicamente al da . En la actualidad la mayora de universidades del mundo cuentan con grupos de desarrollo que trabajan arduamente en favor del software libre.

Parte II

Instalacin de Gnu/Linux

14

Captulo 1

Manipulacin de discos duros bajo Gnu/Linux


el sistema tiene la funcin de reconocimiento de hardware en su ncleo el cual detecta que tipo de maquina tiene y que dispositivos estn conectados a ella.

1.0.1. Identicacin de unidades en Gnu/Linux


Gnu/Linux identica las unidades de tecnologa ide con el nombre de hd y las unidades scsi como sd , el siguiente cuadro nos muestra con mas detalle esta asignacin.

15

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX16 Cuadro 1.1: identicacin de los dispositivos segn tecnologa de transferencia

Tecnologa de transferencia ide


Primary master Primary slave Secundary master Secundary slave Primary disc Secundary disc Terceary disc

disco duro o cdrom


Tecnologa de transferencia scsi

disco duro

dispositivo hda hdb hdc hdd sda sdb sdc scda scdb fd0 fd1

Unidad de cdrom scsi


Primary cdrom Secundary disc Floppy drive A Floppy drive B

Unidades de disquette

1.0.2. Estructura logica de un disco duro


La estructura logica de un disco es la parte que permitir al la maquina reconocer y acceder a los recursos del mismo, esta estructura esta compuesta por:

Master Boot Record (MBR)


Es el primer sector de un disco duro, el cual consta de una longitud de 512bytes distribuido de la siguiente manera: 512bytes 446 bytes 64bytes 2bytes Gestor de arranque Tabla de particiones marca de arranque

Este sector es donde se grabara el cargador de Gnu/Linux, ya sea linux loader (lilo) o grub, encargndose este de escoger el sistema operativo a iniciar. Mas adelante miraremos como congurar estos cargadores.

NOTA: es aqu donde algunos sistemas operativos limpian y ponen su


propio cargador, eliminando el cargador de Gnu/Linux, de aqu la importancia de tener una copia de este sector, con Gnu/Linux es fcil obtener esta copia. Ejm:

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX17 dd if=/dev/hda of=/dev/fd0 bs=512 count=1 Linea para copia el mbr de el disco duro Primary master .

Tabla de particiones
Esta se encuentra alojada desde el byte 446 del MBR, tiene la capacidad de administrar cuatro particiones de 16 bytes cada una para un total de 64 bytes, siendo este su tamao asignado, en este registro se almacenan todos los datos relacionados a la particin. Estas particiones se llaman primarias , pero usualmente se necesitan mas particiones que estas cuatro, por lo cual se se toma una de estas particiones primarias se subdivide en particiones lgicas, crendose como particion extendida, es por esta razn que las herramientas de particionamiento enumeran estas particiones despues del valor cinco.

Figura 1.1: Particiones de un disco duro

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX18

1.1. Sistemas de archivos


Todo sistema operativo cuenta con un sistema de archivos para organizar los datos que maneja, por esta razn estudiaremos lo que es un sistema de archivos los conceptos principales y las caractersticas que nos podran ayudar a escoger la mejor opcin segn la ocasin.

Que es un sistema de archivos Deniciones de diccionario.


Porcin de un sistema operativo que traduce peticiones para las operaciones de archivos de un programa de aplicacin en tareas de bajo nivel orientadas a sectores que pueden ser entendidas por los controladores que gestionan las unidades de disco. Estructura global en la que se nombra, guarda y organiza los archivos. Para nuestra suerte Gnu/Linux es un sistema operativo que cuenta con un gran soporte para sistemas de archivos nativos y de otros fabricantes, en la Tabla 1.2 esta relacionado los principales sistemas de archivos actualmente soportados. Por otra parte uno de los males que atormenta a muchos de los sistemas de archivos es la fragmentacin de sus cheros , para entender este tema miremos con mas detalle lo que es la fragmentacin de archivos. Un sistema de archivos se divide normalmente en bloques de tamao especico, estos se utilizan para almacenar los cheros lo que signica que la menor unidad es un bloque y un chero por pequeo que sea sera de un bloque de tamao. El tamao de bloque tambin tiene relacin con el rendimiento de un sistema de archivos igual que otras condiciones que no estn al alcance de este seminario.

1.1.1. Tipos de fragmentacin de un sistema de archivos


Fragmentacin externa
Es cuando los archivos no tienen sus bloques de forma continua. Este tipo de fragmentacin genera un nivel alto de espacios perdidos y lentitud en la lectura de archivos, por tal razn se recomienda utilizar algn tipo de herramienta o mtodo que desfragmente el sistema de archivos.

Fragmentacin interna
Es cuando los archivos no logran llenar todos los bloques asignados, cuestin que deja espacios en blanco que no pueden ser utilizados hasta que se elimine el archivo origen. Este tipo de fragmentacin genera un nivel bajo de espacios perdidos siendo este nivel soportable, es por tal razn que no existe desfragmentador

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX19 de cheros para los sistemas de archivos que trabajan bajo este esquema.

Figura 1.2: Tipos de fragmentacin

1.1.2. Caractersticas de los sistemas de archivos mas comunes en Gnu/Linux


Ahora que ya conocemos algunos aspectos generales de los sistemas de archivos, iniciemos una mirada rpida a las caractersticas mas relevantes de los sistemas de archivos mas comunes soportados por Gnu/Linux. En el cuadro 1.2 se relaciona el nombre y tipo de algunos de los sistemas de archivos soportados en Gnu/Linux.

NATIVOS

Minix Ext2 Ext3 Ext4(testing) XFS JFS

NO NATIVOS
SYSV BSD ISO9660 RaiserFS FAT FAT32 VFAT NTFS

DE RED
NFS SMB CODA MSDOS

ESPECIALES
ramFS procFS devFS

Cuadro 1.2: Sistemas de archivos mas comunes soportados en Gnu/Linux

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX20 Caractersticas relevantes de los sistemas de archivos mas comunes.

Ext2
Nombres de archivos hasta 256 caracteres Soporte de sistemas de archivos de hasta 2 terabytes Soporte de archivos individuales de hasta 2 gigabytes (este limitante se sobrepasa con parches en el kernel y en versiones de 64 bits) Evita la fragmentacin de archivos externa Fragmentacin interna baja (no necesita defragmentador)

Ext3
Sistema de archivos transaccional (Journaling) Soportado ocialmente desde el kernel 2.4.16 Compatibilidad total con ext2 Nombres de archivos hasta 256 caracteres Soporte de sistemas de archivos de hasta 2 terabytes Soporte de archivos individuales de hasta 2 gigabytes (este limitante se sobrepasa con parches en el kernel y en sus versiones de 64 bits) Evita la fragmentacin de archivos externa Fragmentacin interna baja (no necesita defragmentador)

ReiserFS
Sistema de archivos transaccional (Journaling) Nombres de archivos hasta 256 caracteres Soporte de sistemas de archivos de hasta 17 terabytes Soporte de archivos individuales de hasta 4 gigabytes Evita la fragmentacin de archivos externa Asignacin dinmica del tamao de los bloques (evita fragmentacin en el sistema de archivos interna)

XFS
Sistema de archivos transaccional (Journaling) Nombres de archivos hasta 256 caracteres Soporte de sistemas de archivos de hasta 18 petabytes Soporte de archivos individuales de hasta 9 petabytes Evita la fragmentacin de archivos Asignacin dinmica del tamao de los bloques (evita fragmentacin en el sistema de archivos)

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX21

1.2. Estructura de directorios en Gnu/Linux


Para instalar, administrar y mantener cualquier sistema operativo, debemos conocer la razn de ser de sus directorios y donde almacena los archivos necesarios para su funcionamiento, esto nos permitir realizar un esquema de particionamiento que nos ayudara a asegurar el buen funcionamiento de nuestro sistema operativo Gnu/Linux. / /home /usr /boot /tmp /var /proc /bin /sbin /dev /etc /lib

Estructura jerrquica de directorios GNU/Linux

Esta estructura es bsica, por lo cual usted puede encontrar directorios adicionales pero siempre estarn como mnimo los directorios nombrados aqu. Ahora miremos para que usa Gnu/Linux estos directorios.

/
Se le llama directorio raz , Es el inicio de la estructura de directorios, es la raz principal de toda la jerarquia de directorios, cuando un sistema de archivos se monta sobre el este lo asumir como un directorio mas de la jerarquia principal, en la seccin 1.2.1 se habla del tema con mayor detalle.

/home
este directorio se encarga de alojar los archivos de los usuarios, cuando creamos un usuario en Gnu/Linux el por defecto creara un directorio con el mismo nombre de usuario dentro de /home, este directorio cuenta con permisos de tal manera que solo el usuario propietario pueda acceder a el, as que el nico que puede revisar y modicar lo que en el se encuentra es el propietario y/o el superusuario (root)

/usr
Este directorio se encarga de almacenar el comn de los programas y libreras que el usuario utilizara incluyendo una subestructura para programas que no vienen en el repositorio de paquetes de la distribucin en uso.

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX22 Dentro de este directorio encontrara directorios como:

/usr/bin mantiene archivos de utilizacin general para usuarios /usr/sbin contiene archivos para la administracin del sistema o de los programas de /usr /usr/lib encontrara libreras compartidas para ejecucin de programas /usr/share/man en el encontrara las paginas man /usr/src en el encontrara las fuentes del kernel y otros programas /usr/local En este directorio se utiliza usualmente para almacenar programas que no son software propiamente de licencia GPL o programas que no estn en el repositorio del sistema base.

/boot
contiene las imgenes del kernel y otros archivos necesarios para el arranque del mismo.

/tmp Se usa con el n de alojar archivos que se crean temporalmente y /var

luego se eliminan, lo utiliza el mismo sistema como programas o scripts para una mejor ejecucin Dentro de el se ubican archivos que varan de tamao constantemente como son archivos de tipo log (cambian de tamao segn el uso del sistema) tales como : colas de impresin registros del sistema tambin bases de datos, contenidos web, correo ...

/proc
Este realmente es un sistema de archivos virtual el cual se ubica en memoria para monitorear los procesos en ejecucin.

/bin
En el se encuentra los programas que se encargan de ejecutar los comandos de uso general para los usuarios

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX23

/sbin
Se encuentran archivos de tipo binario los cuales usualmente son utilizados para la administracin del sistema

/dev
Este directorio contiene los archivos especiales que se enlazan con el hardware de forma directa, tambin se los conoce como archivos de dispositivos.

/etc En este directorio encontrara los archivos de conguracin sobre el


sistema operativo y sobre la mayora de servicios del mismo, la mayora en texto plano con el n de que pueda congurar de forma manual o a base de scripts su sistema GNU/Linux.

/lib En el encontrara las libreras compartidas las cuales son utilizadas

por muchos programas ocasionando que estos sean mas pequeos en su ejecucin.

1.2.1. Particionamiento y montaje de sistemas de archivos


la versatilidad de Gnu/Linux nos permite trabajar con una mezcla de sistemas de archivos de forma transparente para el usuario, de tal manera que al escoger un correcto esquema de particionamiento nos lleve a un fcil mantenimiento o ampliacin de nuestro sistema eliminando dolores de cabeza futuros, incluso nos permitir anarlo para obtener un rendimiento ptimo. Para algunos puede ser confuso hablar de montaje de sistemas de archivos cuando se quiere hablar sobre particionamiento, pero recordemos que esta es una gua de un seminario donde se debe tener en cuenta que las personas que leen este manual estn relativamente empezando en el mundo de Gnu/Linux as que se debern entender como es que los datos se almacenan y se mueven durante el tiempo de trabajo para as entender por que sucede lo que sucede con los esquemas de particionamiento. Tener un esquema de particionamiento mas estructurado es algo un poco misterioso para algunos, especialmente si vienen de sistemas operativos de los cuales no conocen su estructura de directorios. En la seccin 1.2 estudiamos la jerarqua de directorios y con esta informacin podemos hacernos una idea de como particionar nuestro sistema operativo Gnu/Linux segn nuestras necesidades. Durante esta tarea surgen algunas dudas como:

Que pasa si hago muchas particiones? Si las hago estar en una sopa de letras como en otros sistemas operativos ?

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX24

Por que no dejar todo en una sola particion? Si despues necesito incrementar el espacio de almacenamiento por alguna razn, tendr que instalar todo de nuevo por no haberlo previsto?
para dilucidar estas dudas tendremos que entender un poco de como el sistema operativo maneja y administra los sistemas de archivos . Iniciaremos con cosas simples, que vemos constantemente, esto puede ser algo como los medios de almacenamiento externo tales como los disquetes, cdrom, memorias ash etc... entonces como estn los datos almacenados en un medio de estos? miremoslo como un sistema de cheros que puede almacenar archivos en diferentes lugares llamados directorios, sin animo de confundir o adentrarnos en cosas complicadas, tenga en cuenta que los directorios son tambin archivos que ayudan a almacenar la informacin de manera ordenada, bueno continuando con nuestra descripcin miremos de una manera mas visual un ejemplo de como pueden ser almacenados estos archivos.

Figura 1.3: Ejemplo de directorios de un medio de almacenamiento entonces tenemos una estructura de directorios tipo rbol, cada dispositivo de almacenamiento tendr su propia estructura de archivos tipo rbol y se sumara como un rompecabezas, cuando los juntemos en nuestro sistema de archivos nico ya sea de manera temporal o de manera continua en las guras 1.4 1.5 1.6 podemos mirar el contenido de un cdrom, el directorio raz y por ultimo vemos como se enlazan el uno al otro en un solo sistema de archivos Gnu/Linux.

Figura 1.4: directorios de un sistema de cheros en un cdrom

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX25

Figura 1.5: directorios de un sistema de cheros raz Gnu/Linux

Figura 1.6: sistema de cheros de un cdrom montado en el directorio /cdrom de un sistema de cheros raz Gnu/Linux Ahora que este concepto esta mas claro podemos crear y entender nuestro rompecabezas de particiones para la instalacin de Gnu/Linux, iniciemos con un modelo de una sola pieza y vamos aumentando gradualmente a ver que pasa. Al lado izquierdo estarn las particiones del sistema y al lado derecho lo que pasara con la estructura de directorios Gnu/Linux a medida que las aumentamos, aunque las comparaciones no son del agrado de muchos, tendremos que hacer una con Microsoft Windows pues muchas personas estn familiarizadas con este sistema y podrn detectar mas fcilmente el comportamiento del sistema.

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX26

NOTA: la particion swap es para memoria virtual y no tiene punto de montaje , por esta razn se inicia con 2 particiones .
Particion 1 2 directorios Gnu/Linux swap / /home /usr /boot /tmp /var /proc /bin /sbin /dev /etc /lib Microsoft Windows no la reconoce C:

bueno, tenemos 2 particiones una para swap y otra para todo el sistema de archivos, ahora tenemos en Gnu/Linux la estructura de directorios completa de manera transparente para el usuario, todo lo que se almacene en los diferentes directorios estar en la particion numero 2.

Aumentemos el numero de particiones.


Particion 1 2 3 directorios Gnu/Linux swap /boot / /home /usr /tmp /var /proc /bin /sbin /dev /etc /lib Microsoft Windows no la reconoce C: D:

Ahora tenemos 3 particiones, si miramos detenidamente el global de la estructura de directorios no ha cambiado en Gnu/Linux, para el usuario seguir existiendo la misma estructura pero el sistema operativo almacenara la informacin del directorio boot en la particion numero 2 y la del resto de directorios

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX27 en la particion 3. Sigamos aumentando nuestras particiones, pero creemos 7 particiones lo que en asignacin lgica del disco duro sern 8 particiones, ya que por favor recuerde que el sistema asigna solo 4 particiones primarias y si necesitamos mas tendremos que convertir la ultima particion primaria en una extendida partida en varias lgicas, lo que generaria una particion adicional. entonces: Particion 1 2 3 4 5 6 7 directorios Gnu/Linux swap /boot / /home /usr /tmp /var /proc /bin /sbin /dev /etc /lib Microsoft Windows no la reconoce C: D: E: F: G: H:

Bueno, empezamos a ver algo interesante en la estructura de directorios de Gnu/Linux, que esta sigue apareciendo transparente para el usuario, pero a nivel interno esta almacenando los archivos en diferentes particiones, diferentes lugares que permitirn un mejor desempeo del sistema, lo que miramos en el otro sistema operativo no lo podemos evitar, eso empieza a parecer una sopa de letras. Ahora retomemos nuestras preguntas y miremos que respuestas tenemos a ellas:

Bueno, esto es transparente para el usuario y el sistema almacenara los datos en las particiones asignadas.

Que pasa si hago muchas particiones?

Si hago varias particiones estare en una sopa de letras como en otros sistemas operativos ?
Listo, creo que la tabla nos aclara la duda.

Por que no dejar todo en una sola particion?

Es posible hacerlo, pero por mi experiencia no lo recomiendo a menos que sean casos especiales, no es bueno funcionara pero podran surgir ciertos

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX28 problemas o necesidades de anacin del sistema que al tener una sola particion en su disco duro no podr hacer y la nica forma sera reestructurar particiones o incrementar discos duros.

Si despues necesito incrementar mi espacio por alguna razn tendr que instalar todo de nuevo por no haberlo previsto?

De entrada esta es una de las ventajas que uno empieza a mirar en Gnu/Linux, pues incluso si no asigno una estructura amplia de particiones se puede agregar nuevos discos duros que almacenaran la informacin de los directorios que necesitamos en las particiones de los nuevos discos duros y seguir siendo transparente para nuestros usuarios. En mi experiencia personal y empresarial este tipo de tareas es algo constante, nos toca cambiar o agregar nuevos discos duros a un sistema en el que no podemos estar instalando todo de nuevo. Como podemos percatarnos es muy importante tener claro el esquema de particionamiento a aplicar pues esto ayudara al rendimiento del sistema. para realizar estas particiones existen muchas herramientas que facilitan la creacin de las particiones que deseamos, La mas comn es fdisk de Gnu/Linux, esta herramienta es base en todos los sistemas Gnu/Linux completos del mercado, as que hechemosle un vistazo para entender su funcionamiento.

Figura 1.7: particiones de un disco duro mostradas con fdisk

CAPTULO 1. MANIPULACIN DE DISCOS DUROS BAJO GNU/LINUX29 comando m p n t l w q descripcin ayuda lista la tabla de particiones aadir una nueva particin cambia el tipo de particion creada obtiene el listado de tipos de particiones que fdisk maneja graba los cambios cierra fdisk sin grabar los cambios Cuadro 1.3: comandos bsicos en fdisk fdisk crea particiones del tipo Linux native por defecto. Cuando crea una particin de intercambio [swap], no olvide cambiarla al tipo Linux swap utilizando el comando t. El valor para el tipo Linux swap es 82. todos los cambios sern almacenados solo cuando de la orden de grabado en fdisk. Si el disco duro se encuentre en uso, los cambios en las particiones surtiran efecto solo cuando reinicie el sistema.

Atencin:

Captulo 2

Instalacin de Gnu/Linux junto a MS-Windows


En la actualidad es comn la necesidad de tener un PC (computador personal) con mas de un sistema operativo, en esta seccin miraremos como instalar Gnu/Linux en un PC con sistema operativo MS-Windows y como mantener la convivencia entre ellos. El tocar cambiar examinar redimencionar las particiones de un disco duro pueden desembocar en la perdida de las mismas y en consecuencia la perdida de informacin contenida en ellas, es altamente recomendable que tenga copia de seguridad de la informacin almacenada en el PC antes de realizar maniobras de este tipo en un disco duro.

ADVERTENCIA

2.1. Preparacin pre-instalacin


Tomaremos un caso donde queremos instalar los 2 sistemas en un mismo disco duro, lo que nos obligara a tener varias particiones en el mismo. As que nuestra primera duda es: cuanto espacio de disco duro necesito para instalar Gnu/Linux? Un sistema operativo linux para PC puede ser instalado en 50MB hasta 5GB o mas segn las utilidades que se le vallan a dar, es por esta razn que debemos tener en cuenta lo que un sistema operativo Gnu/Linux moderno necesita para que pueda suplir las necesidades de un usuario convencional, eso quiere decir que el sistema debe contar con herramientas de omtica, conectividad para internet y dispositivos mviles, software para manipular quemadores de cd-dvd y dems herramientas de uso comn, bajo estas condiciones necesitamos mnimo de 5GB para el sistema operativo y herramientas, dejando por aparte el espacio necesitado por el usuario para almacenar su informacin.

30

CAPTULO 2. INSTALACIN DE GNU/LINUX JUNTO A MS-WINDOWS31 como primer paso deberemos asegurarnos de contar con el espacio mnimo necesario para la instalacin del sistema operativo, ahora si nuestro disco duro tiene una sola particion para MS-Windows tendremos que reasignar el tamao de esa particion lo cual podemos hacerlo con herramientas como parted o partition Magic esta ultima de tipo comercial. para los usuarios que quieran usar parted: Lastimosamente hasta el momento de creacin de esta gua parted no cuenta con soporte ntfs.

mmmm.... como uso una herramienta de Gnu/Linux para instalar Gnu/Linux si todava no tengo Gnu/Linux instalado?????

como notaran este comentario es un poco irnico pues resalta un problema aparentemente paradjico, pero no nos preocupemos mucho, pues la verdad podemos tener fcilmente un Gnu/Linux sin necesidad de instalarlo en disco duro, para eso usamos knoppix el cual con el tiempo sera la herramienta numero uno para muchas personas que trabajan en el mundo informtico pues no tan solo servira para mostrar las bondades de Gnu/Linux sino que tambin servira como navaja suiza informtica. As que manos a la obra: primero se deber defragmentar la particion a reajustar, as luego podremos modicarla sin problemas. ahora iniciamos knoppix ... luego cuando el sistema ya este funcionando en nuestro pc entramos en una consola como root o escogemos alguna ya iniciada presionando las teclas <CTRL><ALT><F1>o <CTRL><ALT><F2>y ejecutamos la orden "parted /dev/??? print "(la orden se escribe sin comillas ) nos mostrara la informacin de el esquema de particiones del disco duro en cuestin, (los signos de interrogacin representan el dispositivo de disco que queremos modicar, recuerde que en el cuadro 1.1 esta la relacin entre discos duros y dispositivos lgicos en Gnu/Linux.) luego para modicar el tamao usamos la orden: parted /dev/??? resize el nos pedir el numero de la particion a modicar, el punto inicial y el nal de la particion en megabytes, en este ultimo ingresamos el valor en megas que queremos segn el nuevo tamao, el sistema se demorara un poco trabajando en la modicacin y luego regresa al prompt del sistema, por favor no se desespere ni tampoco reinicie la maquina pues puede afectar su tabla de particiones y perder su informacin, claro esta y de nuevo recuerdo que se recomienda altamente el hacer copia de seguridad antes de cualquier maniobra sobre los dispositivos de almacenamiento.

Particionamiento
Ya contamos con 5GB mnimos libres de espacio en disco, as que procedemos ha realizar el esquema de particiones para instalar nuestro sistema operativo Gnu/Linux.

CAPTULO 2. INSTALACIN DE GNU/LINUX JUNTO A MS-WINDOWS32 Echamos mano de la estructura de directorios y decimos: Una particion para /boot otra para /var otra para /tmp otra para /usr otra para /home otra para swap y por ultimo / , entonces la pregunta del milln es... de que tamao sern estas particiones si solo cuento con 5GB de capacidad?, bueno aqu es donde la experiencia ayuda un poco y de eso se trata este documento de compartir un poco de experiencia esto, realmente hacer un esquema complejo de particionamiento en un espacio tan reducido es como tratar de ponerle bar, televisin telfono techo corrediso y dems accesorios a un automvil minimorris ( si! ese auto miniatura ) tenemos que ser mas exibles en la creacin de nuestro sistema de archivos , pues si solo contamos con un espacio reducido para el sistema base pues tendremos que practicamente crear una particin de 100mb para /boot otra para swap y otra para / pues sino en poco tiempo o incluso durante el proceso de instalacin nos encontraremos con la falta de espacio en algunas particiones y otras estarn practicamente libres. Por suerte actualmente los discos duros tienen una gran capacidad de almacenamiento lo cual nos permite disfrutar de mayor capacidad de almacenamiento que 5GB pues los discos duros actuales estn en el promedio de los 80GB en adelante, de lo cual usualmente un usuario de MS-Windows que quiera Gnu/Linux podr dejar 40GB para su sistema as que dispondremos de 40GB para nuestras particiones as que va de nuevo pero esta ves midamos con valores como podra ser nuestro esquema de particiones, aclaro que estos valores no son el resultado de ningn calculo ni tampoco signican una regla, solamente se asignan segn las necesidades especicas que para el caso es uso personal omatico mas que de servidor empresarial. punto de montaje /boot /var /tmp /home swap / Tamao (MB) 100 5GB 5GB 20 doble de ram ejm: 1GB restante de espacio aprox. 9GB

Cuadro 2.1: tentativa de particiones para instalar un sistema Gnu/Linux casero u omatico Bueno ahora que ya tenemos denido un esquema de particiones entremos en materia y hagamos las particiones con nuestra herramienta dorada fdisk o la que tenga la distribucin Gnu/Linux de nuestro agrado. Por favor cuando se esta creando particiones se debe tener muy encuenta cual o cuales son las particiones del otro sistema operativo para el caso MS-Windows pues una mala identicacin puede ocasionar la perdida de nuestra informacin.

CAPTULO 2. INSTALACIN DE GNU/LINUX JUNTO A MS-WINDOWS33 La mayora de distribuciones de Gnu/Linux permiten la seleccin de paquetes a instalar, estos generalmente se encuentran divididos en grupos tales como servidores, herramientas de escritorio, sistema base , de los cuales mnimo debe escoger sistema base y herramientas de escritorio, en la seccin 7 se explica con mayor detalle el proceso de consecucin e instalacin de software en Gnu/Linux. pero le adelanto que la mayora de distribuciones Gnu/Linux cuentan con un repositorio de paquetes que suplir la mayor cantidad de necesidades de un usuario convencional. En adelante durante el proceso de instalacin pueden surgir preguntas que dependern de cada distribucin o del mtodo de instalacin que usted halla escogido, al nalizar el proceso usted tendr un linux instalado y listo para funcionar. En la siguiente seccin trataremos el tema de que metodos son validos para poner en marcha el hardware disponible de nuestro pc.

Parte III

Gestin del Hardware en Gnu/Linux

34

35 Un sistema operativo es como un intermediario entre la maquina (hardware) y las herramientas que corren sobre el, es por esto que es de suma importancia conocer de forma general como es que el sistema operativo reconoce el ambiente fsico que se encuentra a su alrededor osea el hardware disponible, Esto nos permitir entender claramenta por que, como y que hacer cuando un dispositivo no funciona o no sabemos como hacerlo funcionar. pues muchas veces nos encontramos con que conectamos algo a nuestro computador con la esperanza de que esto funcione pero nos llevamos la desagradable sorpresa de que no es as, o algunas veces seguimos los pasos del manual de instalacin pero no funciona y no sabemos por donde proseguir para llegar a encontrar el problema y su posterior solucin o en denitiva retirar el hardware incompatible o daado. La administracin de hardware en un sistema operativo es bastante compleja por esta razn solamente nos limitaremos a mirar como se reconoce el hardware desde un punto supercial sin ahondar en los detalles, ya que no es la idea de este seminario llegar a esos alcances, creame eso es un curso de un semestre completo.

NOTA Cuando hablamos de kernel nos referimos al ncleo del sistema , a lo que realmente es Linux, al software que interacta directamente con el hardware. 2.2. Proceso de arranque
Que pasa cuando un computador se enciende hasta llegar al login de nuestro amante Gnu/Linux? Miremos rpidamente en sus marcas ....listos ... ... encendido!! la fuente de poder da energa a la main board en la cual se encuentra la bios encargada de iniciar el sistema, luego esta busca pasarle el booteo a algn medio de almacenamiento de memoria secundario como puede ser un cdrom, diskette o un disco duro, aqu es donde se inicia el programa que se encuentre en el MBR (en la seccin 1.0.2 se explica en mas detalle la estructura de este) y en este se encuentra el cargador de arranque (reconocido por algunas main boards como virus :S ), depende de la distribucin en uso si esta usa GRUB o lilo como gestor de arranque, el cargador escoge los datos de arranque e inicia el kernel seleccionado, es en este momento donde Gnu/Linux empieza su interaccin con el hardware , as que el kernel reconoce todo el hardware del pc comunicndose con el de forma directa, carga el initrd donde se encuentran los mdulos del kernel que usara durante el proceso de arranque y reconocimiento de hardware, el debe detectar el medio que utilizara para montar el sistema de cheros e iniciar la carga de las herramientas del sistema operativo, es aqu donde detecta los discos duros, las particiones de estos y los sistemas de cheros con los que se ha creado estas particiones, luego inicia todo un proceso de arranque con la herramienta init la cual congura el entorno para usuario , usa el script /etc/inittab la cual se encarga de cargar el nivel de ejecucin por defecto y este a su ves de los servicios a activar, hasta este punto nos podemos percatar de que el sistema ya necesita tener un correcto reconocimiento del hardware principal,

36 distribucin Deban RedHat SuSe ruta script o directorio de inicio /etc/rcS.d /etc/rc.d/rc.sysinit /etc/init.d/boot.d

Cuadro 2.2: script o directorios de inicio de aqu en adelante empieza la ejecucin de una serie de scripts del sistema y carga de mdulos adicionales. Cuando el kernel de Gnu/Linux inicia el programa /sbin/init este se convierte en el proceso padre o abuelo de todos los procesos que se formen de hay en adelante e inicia primero los script's que se encuentren en un directorio de inicio este directorio cambia segn la distribucin en uso, en el cuadro 2.2 se detalla los directorios o scripts de inicio de Deban y Redhat. Luego ejecuta los scripts que se encuentren en el directorio asignado para el runlevel a ejecutar por defecto, si los scripts que se encuentran en aquel directorio inician por S entonces sern ejecutados pero si inician por K no sern ejecutados o realmente sern detenidos por init, estos a su ves tienen un valor numrico que dar el orden a ejecutarse. Lo cual hace que en los scripts de arranque se encuentren los parametros que los controladores necesitan para accesar al hardware, los servicios a activar y todo lo que se necesita para iniciar el sistema, tenga cuidado cuando crea un script para que se inicie en esta parte pues puede dejar sin acceso a su sistema, en la seccin IV hablaremos en detalle de este proceso y los scripts que lo acompaan. Tenemos nuestro sistema iniciado y el kernel a detectado el hardware disponible pero esto no quiere decir que este funcionando, por ejemplo el kernel sabe que existe z hardware pero si no tiene los controladores correctos para su administracin entonces simplemente no podr usarlo.

2.3. Reconocimiento del hardware y mdulos del kernel


El kernel de Gnu/Linux es un kernel (ncleo) monoltico hbrido que permite el manejo de mdulos para controlar el hardware permitiendo la carga y descarga de estos sin necesidad de reiniciar la maquina, el tema de los kernel monolticos microkernel y dems temas de arquitectura se ve en un curso de sistemas operativos y quien desee ampliar sobre este tema, que adems lo recomiendo ampliamente para todos, pueden iniciarse en http://es.wikipedia.org/wiki/GNU/Linux de hay saltan a los links que los llevaran a entender mucho mejor este tema que ocasiona discusiones acaloradas entre los grandes de este mundo informticocientco, nosotros como seres terrenales tocaremos solo la parte que mas nos interesa para llevar al xito nuestra implementacin pues recordemos que esta gua trata de ser para un publico no tan adentrado en los oscuros mundos de la

37 ciencia de la computacin. Bueno algunas veces es complicado saber por donde empezar as que en todos los cursos que he dictado trato siempre de iniciar por el esquema estndar de funcionamiento de las cosas para luego llegar al modelo especico de funcionamiento en el sistema en cuestin, lo que en esta gua tratamos con el hardware del PC es hacer un esquema lo mas sencillo posible para as entender que es lo que debemos conocer del hardware y del software para lograr hacer que este funcione correctamente. Iniciemos con estas recomendaciones que sern muy tiles a la hora de congurar el hardware en nuestro sistema. Debemos conocer como el hardware se comunica entre si Como funciona de forma genrica Buscar los controladores necesario para que el kernel de linux pueda gestionar el hardware en cuestin Aplicaciones que puedan usar el hardware instalado. entonces, como es esto de los drivers en Gnu/Linux? Cuando llegamos con un nuevo hardware simplemente lo instalamos fsicamente y luego prendemos el pc, con los cd's en mano estamos listos para instalar los drivers atravez de un click y rogamos durante todo el proceso de instalacin para que estos drivers no entren en conicto con el software actualmente instalado. Ahora contamos con un sistema que no es tan de ese modelo, debemos conocer un poco mas, pues normalmente los drivers ya estn en el kernel listos para usarse o bien estn por aparte para ser compilados y agregados, pero no se preocupe esto es de lo mas interesante pues el sistema se deja examinar muy fcilmente sin mucho riesgo. bueno primero podemos mirar el hardware de nuestro pc a travez de Gnu/Linux en la seccin 1.2 se habla del directorio /proc , Este directorio y una que otra herramienta sern los que nos ayuden a ver todo el hardware disponible de nuestro pc, insisto y les recuerdo el hecho de que el hardware este listado en este directorio o herramientas no quiere decir que este soportado bajo Gnu/Linux pues el kernel lo que esta haciendo es mostrarnos la maquina al desnudo, tambin es importante tener en cuenta que si un dispositivo de hardware no tiene el controlador correcto y este a su ves tiene mas dispositivos conectados no los veremos pues estn detrs del dispositivo que no podemos controlar. entonces como funciona este directorio? listo primero entendamos que /proc biene de procfs que es el sistema de cheros para los procesos del sistema, este sistema de cheros es virtual realmente no ocupa espacio fsico pues todos los archivos que se encuentran en el estn en la memoria ram , ahora este directorio contiene toda la informacin de los procesos en ejecucin y adicionalmente toda la informacin del hardware detectado en el sistema incluso su comportamiento actual, creame cuando le digo que con esta informacin podemos hacer

38

Figura 2.1: contenido del directorio /proc !! maravillas !! bueno en la gura 2.1 hay un ejemplo de este directorio. en esta instantnea existen archivos y directorios, los numricos son directorios que representan los procesos del sistema y dentro de estos directorios encontramos informacin supremamente importante sobre los procesos, los otros directorios y archivos creo que sus nombres son bastante dicientes, as que podemos mirar todo lo que contiene el pc, claro en algunos casos no podremos entender los cdigos que nos muestra pero con algunas herramientas podremos mirar hasta algunos detalles que por otras vas seria bastante difcil, por ejemplo queremos mirar los dispositivos conectados al puerto ide de el computador en uso, entonces entramos al directorio /proc/ide y encontraremos archivos y directorios dentro de ellos encontraremos todo lo refente al hardware disco duro o cdrom conectado a ese puerto por ejemplo la capacidad en bloques, el modelo, el tipo. Por ejemplo digamos que tenemos una unidad de dvd-rw maestro conectado al segundo puerto ide del computador entonces tendr la identicacin hdc y veremos un directorio con ese nombre al entrar encontraremos archivos que nos daran toda la informacin disponible sobre ese dispositivo, estos archivos son de texto plano y podemos tratarlos como tal as que con el tiempo le aseguro que le encontrara mucha utilidad a estos archivos. Si necesitamos listar el contenido del bus pci sera catico hacerlo por este medio as que podemos usar una herramienta que nos da esta informacin igualmente detallada, esta herramienta es lspci, en la gura 2.2 podemos ver un ejemplo de este comando, la informacin que nos muestra lspci nos permite detectar en detalle que dispositivos pci estn insertados en la main board, con esta informacin podremos buscar los controladores correctos para el funcionamiento del hardware en cuestin. Ahora necesitamos saber si tenemos los controladores para los diferentes dispositivos de hardware con los que contamos, as que todo se direcciona a los mdulos del kernel, estos son los drivers que se encargan de hacer que el sistema pueda administrar el hardware, as que conociendo como se puede mirar el hardware conectado a nuestro pc entramos a ver que controlador es el que necesitamos para ponerlo a funcionar, pero donde estn ubicados los drivers en linux y como los cargo?, los controladores en Gnu/Linux se encuentran en el directorio /lib/modules/(kernel-versin)/ hay estn todos los mdulos del kernel y es hay donde se instalaran en caso de ser necesario algn nuevo modulo,

39

Figura 2.2: Contenido del bus pci

40 el mtodo de instalacin de nuevos mdulos lo miramos en la seccin 2.4 la cantidad de controladores actualmente existentes en el kernel de Gnu/Linux es bastante amplia, as que direccionarse a este directorio servira para tener algn tipo de relacin entre el hardware y el modulo en cuestin luego con la orden modprobe se agregara al ncleo el modulo en cuestin, claro que esto sera durante el tiempo que la maquina este encendida pues cuando se apague, los mdulos que hallamos insertado de esta manera estarn fuera, as que para que sean agregados de manera constante debemos agregarlo en alguna lista, esto dependera de la distribucin en uso, en deban se encuentra un listado de los mdulos en /etc/modules , pero incluso uno puede crear un script que cargue los mdulos que necesitamos. Como constantemente se esta creando hardware nuevo nos podemos dirigir a www.linuxhardware.org en esta web encontraremos una amplia relacin sobre hardware su nivel de compatibilidad y estabilidad con Gnu/Linux.

2.4. Compilar y agregar nuevos mdulos al kernel


En algunas ocasiones los controladores para ciertos dispositivos de hardware no se encuentran en los mdulos que vienen ocialmente en el kernel, as que tenemos que conseguirlos por aparte e instalarlos, en esta seccin tratare de explicar de la forma mas sencilla posible este tema, un modulo forma parte del kernel cuando se inserta as que este debe estar compilado estrictamente con la misma versin de fuentes con la que fue compilado el kernel que se encuentra en funcionamiento, eso se traduce en que si trabajamos con un kernel precompilado los nuevos drivers deben venir exactamente para esa versin de kernel, por ejemplo un controlador que viene para el kernel por defecto de RedHat enterprise 4 no podemos aplicrselo a un kernel de OpenSuSe aun que estos fueran versin 2.6.xx pues al ser precompilado el modulo tiene que ser estrictamente para la misma versin, pero como existen muchas formas de llegar a roma, generalmente contamos con las fuentes del controlador del hardware as que la podemos compilar para la versin que tengamos del kernel, claro siempre y cuando este cumpla con los requerimientos mnimos del controlador, pero existe otra cosa mas y es que para compilar el modulo necesitamos las fuentes del kernel con el que estamos trabajando , y si tenemos un kernel precompilado por defecto no poseemos esas fuentes, pero resulta que casi todas las distribuciones nos entregan en algn paquete adicional las cabeceras de las fuentes de ese kernel precompilado con esto tendremos todo para compilar e instalar este nuevo modulo, bueno como se compila e instala un modulo depende de la documentacin del mismo, pues el proceso de compilacin depende mucho del modelo impuesto durante su desarrollo, as que deberemos estar siempre dispuestos a leer la documentacin que venga con ellos. En la documentacin tambin encontraremos el nivel de estabilidad del modulo pues esto es importante ya que si instalamos un modulo inestable este puede ocasionar fallos e incluso cuelgues del sistema operativo en general, personal-

41 mente en muchas ocasiones he tenido que usar controladores en fase inestable pero mas sin embargo en algunos casos son lo sucientemente estables para trabajar, pero en en otros casos donde a sido practicamente imposible la instalacin de estos mdulos.

2.5. Ejemplos de instalacin de nuevo hardware en Gnu/Linux


Bueno como diran mis profesores de fsica, aun haciendo miles de ejercicios siempre nos encontraremos con nuevas cosas que pondrn a prueba nuestros conocimientos, pero la nica forma de tomar cierta maestra en esto es haciendo bastantes ejercicios, como en esta gua sera difcil dejar ejercicios para hacer tendremos que mirar ejemplos que nos ayudaran a entender de manera un poco mas practica estos conceptos. para realizar los ejemplos tenemos que recordemos las recomendaciones nombradas en la seccin 2.3 Debemos conocer como el hardware se comunica entre si Como funciona de forma genrica Buscar los controladores necesario para que el kernel de linux pueda gestionar el hardware en cuestin Aplicaciones que puedan usar el hardware instalado. 1. Quemador de cd o dvd tecnologa ide

como se comunica el hardware entre si


Este tipo de dispositivos se enlazan a la main board por el bus de datos ide, conectndose a uno de los puertos disponibles congurndose como unidades maestras o esclavas.

Como funciona de forma genrica


Un quemador de cd-dvd es una unidad que cuenta con un dispositivo lser con la potencia suciente para quemar la pelcula fotosensible que se encuentra en los cd-dvd escribibles o reescribibles, utilizando diferentes formatos entre ellos el estndar iso9660.

Cuales son los controladores necesarios para que el kernel de Gnu/Linux pueda gestionar el hardware en cuestin El

kernel reconoce de manera automtica los dispositivos conectados en el bus ide y agrega los controladores necesarios para su gestin, para el caso en concreto de las unidades quemadoras de cd o dvd en el kernel 2.4.xx y anteriores se debe hacer una emulacin de ide

42 a scsi agregando un argumento en el cargador de arranque si es lilo se usa la orden append="hd?=ide-scsi en el grub deber editarlo y agregar hd?=ide-scsi en la linea donde se menciona el kernel, en el signo sted debe escribir la letra que identica la unidad ide, para mas informacin reerase al cuadro 1.1 de la subseccion 1.0.1, al tener la unidad emulada scsi se trabajara con ella como cualquier dispositivo scsi, en los kernel versin 2.6.xx el modulo ide servira para usarlo como quemador as que se trabajara la unidad directamente sin necesidad de emuladores scsi.

Aplicaciones que puedan usar el hardware instalado En Gnu/Linux


es muy comn encontrar herramientas que trabajan directamente por consola con los dispositivos y tambin interfaces grcas que nos harn mas fcil la vida, la ventaja de tener acceso por consola es que cuando desarrollamos software o scripts para automatizar tareas estas herramientas sern de gran ayuda, para los quemadores de cd contamos con cdrecord la cual es una herramienta muy completa, como interfase grca de este existen muchos programas, actualmente k3b es una herramienta muy intuitiva que lleva la vida fcil al usuario, para quemar dvd existe growisofs y las dvd+rw-tools que son utilizadas por k3b . 2. Memorias usb

como se comunica el hardware entre si Las memorias usb utilizan el bus de datos usb.

Como funciona de forma genrica son medios de almacena-

miento, ha la fecha el promedio de velocidad de estas unidades es de 6 a 20 Mbytes por segundo, lo que las hace un medio lento pero su facilidad de transporte y economa las convierte en una buena opcin, como todo medio de almacenamiento extrable debe montarse para trabajar con el y una ves se quiera extraerlo debe desmontarse, sino se hace el proceso de desmontaje se corre el riesgo de daar la informacin contenida en el dispositivo o daar la tabla de particiones, en algunos casos puede quemarla. Estos dispositivos funcionan bajo el estndar USB mass storage.

Cuales son los controladores necesarios para que el kernel de Gnu/Linux pueda gestionar el hardware en cuestin Para
soportar este tipo de dispositivos nicamente el kernel debe tener soporte completo para el hub usb de la main board y soporte para USB mass storage, practicamente desde los kernel 2.4.xx se tiene soporte a estos dispositivos, el sistema al detectar la insercin de estos dispositivos agrega los mdulos automticamente. y los trabaja como unidades de disco duro scsi, as que debemos montarlas bajo los criterios del cuadro 1.1.

43

Aplicaciones que puedan usar el hardware instalado como se

menciona anteriormente es un dispositivo de almacenamiento masivo, lo que si vale la pena destacar es que las ultimas distribuciones de Gnu/Linux estn usando una herramienta conocida como usbmount para administrar estas memorias usb de forma automtica para usuarios nales. 3. Camaras fotogrcas por puerto usb

como se comunica el hardware entre si


Las camaras digitales modernas utilizan el puerto usb para transferir su informacin.

Como funciona de forma genrica


Las camaras digitales son dispositivos que pueden usar protocolos de comunicacin propios o derivados del protocolo Picture Transfer Protocol otras camaras se convierten en medios de almacenamiento masivo como si fueran memorias usb, personalmente siempre busco que las camaras digitales tengan esta funcin pues con esto ya no se tiene el problema de compatibilidad.

Cuales son los controladores necesarios para que el kernel de Gnu/Linux pueda gestionar el hardware en cuestin
si la cmara cuenta con soporte USB mass storage entonces la cmara funcionara igual que una memoria usb convencional. Si utiliza un protocolo derivado del Picture Transfer Protocol es muy probable que tenga soporte en Gnu/Linux ya que se cuenta con la librera libphoto para un amplio soporte de camaras de este estilo, o si tiene protocolo propietario deber buscar en internet que soporte existe en Gnu/Linux para el dispositivo en si, ya sea ocial de la empresa que lo provee o de algn grupo de la comunidad opensource que esta trabajando para hacer funcionar el dispositivo.

Aplicaciones que puedan usar el hardware instalado


Si el dispositivo esta en modo sistema de archivos se trabaja como una memoria usb convencional, pero si el sistema se comunica por protocolo PTP se utiliza software como gtkam que es una interfase grca de libgphoto 4. Impresoras por puerto paralelo/serial y usb

como se comunica el hardware entre si Como vas de conexin

entre impresora y pc tenemos los puertos serial, paralelo y usb ( Las impresoras de red son otra historia )

Como funciona de forma genrica Las impresoras reciben la in-

formacin por el puerto de conexin y la procesan segn su lenguaje, las impresoras son generalmente de comunicacin bidireccional cuestin que retornan comandos de estado al pc y el pc le enva comandos

44 de impresin. Para el envi de informacin del pc a la impresora se suele usar un ltro para que este enve las lineas bajo un lenguaje que la impresora logre entender, normalmente una impresora recibir un grupo de ordenes y las interpretara para luego imprimirlas en el medio fsico, si esta en un lenguaje distinto al soportado por ella simplemente pasara los caracteres de forma directa al medio fsico, ocasionando que salgan caracteres extraos , existen impresoras que reciben caracteres de forma plana y los imprimen como es el caso de las impresoras de punto y algunas de burbuja o lser, pero existen otras impresoras que no soportan este modelo y simplemente desechan o imprimen basura al recibir estas lineas de texto.

Cuales son los controladores necesarios para que el kernel de Gnu/Linux pueda gestionar el hardware en cuestin

Primero debemos asegurarnos de que el soporte al puerto de conexin existe, por ejemplo si es de puerto paralelo debemos contar con los mdulos parport y lp, para acceder al puerto tenemos el archivo especial /dev/lp0 o si es un puerto usb, el kernel tendr su respectivo soporte usb activo y creara el enlace al puerto /dev/usblp0 o /dev/usb/lp0, todos los kernel modernos tienen este soporte por defecto, y si es serial igual el soporte para comunicaciones por puerto serial debe estar activo y enlaza al archivo /dev/ttyS0 si es al puerto serial 1. Ahora que ya contamos con el soporte del puerto de comunicaciones en la gura 2.3 observamos como es un proceso de impresin.

Figura 2.3: Proceso de impresin La aplicacin debe enviar la orden de impresin junto con los datos,

45 este sera tomado por el servidor de impresin y procesado bajo sus directivas, ( en la seccin 9 encontraremos los detalles mas relevantes sobre los servidores de impresin predilectos en Gnu/Linux) luego sera enviado por el puerto seleccionado ( es aqu donde interviene directamente el kernel para el control de hardware ) y la impresora lo procesara .

Aplicaciones que puedan usar el hardware instalado


Para el uso de impresoras debemos contar con un servidor de impresin que gestione las colas de impresin y dems opciones, los mas comunes en Gnu/Linux son lprng y cups. 5. Tarjetas de red pci

como se comunica el hardware entre si Las tarjetas de red

se comunican por el bus pci de la main board, existen diferentes tipos de bus pci segn la tecnologa de la main board. en el cuadro 5 encontramos una relacin sobre los bus pci y sus velocidades de transferencia.

Como funciona de forma genrica


Una tarjeta de red se utiliza para intercomunicar diferentes computadores o host de una red que serviran algn tipo de recurso a otras maquinas , la tecnologa de comunicacin de estas depende del esquema de red utilizado, , el mas extendido en las redes de rea local es el Ethernet y en proceso de expansin el wi.

Cuales son los controladores necesarios para que el kernel de Gnu/Linux pueda gestionar el hardware en cuestin
Existe una gran variedad de tarjetas de red disponibles en el mercado, si no existe un modulo especico para la tarjeta de red se podr probar con controladores tipo estndar como tulip y 8139too que pueden poner a funcionar los dispositivos, todos los mdulos de tarjetas de red estn en el directorio /lib/modules/(numero versin kernel)/kernel/drivers/net es importante tener en cuenta que toda tarjeta de red sera reconocida por defecto como eth y el numero de tarjeta de red empezando desde 0, cuestin que si tenemos 1 tarjeta de red sera eth0 , si tenemos 2 tarjetas de red sera eth0 y eth1, as en adelante

Aplicaciones que puedan usar el hardware instalado


Como este tipo de dispositivos enlazan el pc a red realmente se deber congurar el sistema operativo con los parametros de red para que pueda interconectarse con los dems computadores de la red, la ubicacin de los archivos de conguracin o las herramientas para dicha conguracin varan de distribucin a distribucin, por ejemplo en deban se debe modicar el archivo /etc/network/interfaces

46

PCI 2.2 PCI 2.3 PCI 3.0 PCI-X PCI-X 2.0

Mini PCI Cardbus Compact PCI PC/104-Plus

funciona a 66 MHz (requiere 3.3 voltios en las seales) (ndice de transferencia mximo de 503 MB/s) permite el uso de 3.3 voltios y sealizador universal, pero no soporta los 5 voltios en las tarjetas. es el estndar nal ocial del bus, con el soporte de 5 voltios completamete removido cambia el protocolo levemente y aumenta la transferencia de datos a 133 MHz (ndice de transferencia mximo de 1014 MB/s) especica un ratio de 266 MHz (ndice de transferencia mximo de 2035 MB/s) y tambin de 533 MHz, expande el espacio de conguracin a 4096 bytes, aade una variante de bus de 16 bits y utiliza seales de 1.5 voltios es un nuevo formato de PCI 2.2 para utilizarlo internamente en los porttiles es un formato PCMCIA de 32 bits, 33 MHz PCI utiliza mdulos de tamao Eurocard conectado en una placa hija PCI. es un bus industrial que utiliza las seales PCI con diferentes conectores.

Cuadro 2.3: Cuadro obtenido de http://es.wikipedia.org/wiki/Peripheral_Component_Interconnect

47 o en SuSe se utiliza yast para realizar las conguraciones del caso, tambin existen las herramientas ifcong y route que nos ayudara a utilizar nuestros dispositivos de red. 6. Tarjetas de sonido

como se comunica el hardware entre si El comn denominador de las tarjetas de sonido modernas es que bienes incorporadas en la main board o como tarjeta, en los 2 casos se comunican por el bus pci. Como funciona de forma genrica
Las tarjetas de sonido son dispositivos que se encargan de convertir seales digitales en ondas analgicas que salen por un conector de audio, o tambin puede convertir seales anlogas en digitales.

Cuales son los controladores necesarios para que el kernel de Gnu/Linux pueda gestionar el hardware en cuestin Aplicaciones que puedan usar el hardware instalado

Existe una gran variaedad de tarjetas de sonido, el kernel debe contar con los controladores de la tarjeta de sonido conectada al sistema. Existe el paquete alsa-sound que se encarga de crear los scripts y dejar practicamente todo funcionando para utilizar la o las tarjetas de sonido que disponga nuestra maquina, tambin existe oss pero esta catalogado como obsoleto. Para congurar el sonido simplemente tenemos que instalar el paquete alsa que el se encargara de la autodeteccion de la tarjeta, en caso de no ser as contamos con la herramienta alsaconf la cual podemos ejecutarla desde consola, para controlar el volumen de los diferentes componentes de la tarjeta de sonido usamos alsamixer o aumix 7. Scanners de imagenes

como se comunica el hardware entre si


Los scanners modernos bienes por puerto usb o algunos por interfase scsi

Como funciona de forma genrica Un scanner rastrea la imagen

enviando los datos detectados por el puerto de conexin al computador que tiene un software ejecutndose el cual controla y almacena los datos del scanner.

Cuales son los controladores necesarios para que el kernel de Gnu/Linux pueda gestionar el hardware en cuestin
Para controlar un scanner, mas que mdulos para controlar el scanner debe existir el soporte convencional para el puerto de comunicacin y una herramienta de scanneo.

48 puerto Paralelo 1 Paralelo 2 Serial 1 Serial 2 Serial 3 Serial 4 usb psaux enlace a Gnu/Linux /dev/lp0 /dev/lp1 /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS4 /dev/usb/ /dev/psaux

Cuadro 2.4: Algunos puertos de E/S en Gnu/Linux

Aplicaciones que puedan usar el hardware instalado La apli-

cacin por preferencia en Gnu/Linux para uso de scanners de imagenes es sane el cual cuenta con su interfase grca Xsane, este se congura segn el tipo de scanner que se tenga, para mayor informacin sobre esta herramienta http://www.sane-project.org por ultimo relacionamos una tabla sobre puertos de entrada salida.

Parte IV

Administracion bsica de Gnu/Linux

49

Captulo 3

Usuarios grupos y otros (UGO) del sistema


GNU/Linux como todo sistema operativo moderno esta listo para trabajar en red, de hecho Gnu/Linux nacio en la red, es multiusuario osea que tiene la capacidad de administrar diferentes usuarios concurrentes en el sistema, la naturaleza de Gnu/Linux hace que este sistema sea muy eciente en esta tarea, la experiencia que llevamos nos ha permitido rearmar esto personalmente, ya que montamos sistemas que da a da trabajan constantemente y con diferente cantidad de usuarios concurrentes y la respuesta del sistema operativo es ptima dandonos la tranquilidad de que estamos trabajando con un sistema operativo fuerte y estable. Cuando se trabaja con Gnu/Linux debemos tener en cuenta que existen un administrador del sistema y varios usuarios, el administrador del sistema conocido como root tiene la capacidad de moverse libremente sobre la totalidad del sistema, mientras que los usuarios estarn restringidos. Cuando el sistema ejecuta cualquier tipo de proceso este deber depender de un usuario, sea root o un usuario convencional, para el caso de los procesos del sistema en Gnu/Linux se han creado usuarios en el sistema, que estn dedicados a ejecutar estas tareas. estos no cuentan con un shell, tampoco se les asigna clave, ni se les deja sin clave, simplemente no se puede acceder a ellos por medio de un login, pero igual que otros usuarios tienen permisos para ejecutar tareas o cambiar archivos segn las necesidades, por ejemplo cuando estamos entrando a una pagina web por medio de un navegador estamos recibiendo datos de otra maquina, pero con que usuario esta accediendo el sistema remoto para leer esas paginas en su directorio y enviarla a nosotros?, si pudiramos mirar la conguracin del servidor web de esa maquina remota, nos daramos cuenta de que es un usuario del sistema es el que tiene los permisos correspondientes para ejecutar esa tarea. 50

CAPTULO 3. USUARIOS GRUPOS Y OTROS (UGO) DEL SISTEMA 51

Tambin existen los grupos, estos permiten reunir de diferentes maneras a los usuarios logrando as asignar o restringir de manera grupal el acceso a ciertos recursos o espacios. Antes de adentrarnos en el tema de administracion de usuarios deberemos comprender algunos aspectos bsicos como son: shell es un interprete de comandos que permite iniciar una secion interactiva en el sistema. password o clave de acceso se utiliza para restringir el acceso como ese usuario, en algunos casos es necesario deshabilitar esta propiedad para que se acceda al sistema como ese usuario sin contrasea o no tener contrasea y tampoco permitir el acceso al sistema como ese usuario. directorio home o casa Cada usuario del sistema tiene un directorio asignado como home este puede ser comunitario o personal, eso dependera de los permisos de acceso asignados a ese directorio, por defecto todo usuario que se crea en el sistema tendr su home en el directorio /home/(nombre de usuario ) grupo principal Cada usuario del sistema pertenece a un grupo principal, como se menciono anteriormente esto permitir dar o restringir el acceso a ciertos recursos. grupos secundarios Los usuarios podrn pertenecer a n grupos secundarios Ahora ya podemos entrar en materia, iniciemos con una relacin de los comandos para la administracion de usuarios y grupos.

comandos para administracion de usuarios en Gnu/Linux


useradd
sintaxis useradd opciones (nombre usuario) Permite la creacin de usuarios, algunas de las opciones mas comunes son: -d -g -s -m directorio home grupo principal al cual pertenecer shell a usar crea el directorio home si este no existe

CAPTULO 3. USUARIOS GRUPOS Y OTROS (UGO) DEL SISTEMA 52 ejemplos de uso: para crear el usuario prueba usamos la orden: useradd prueba para crear el usuario prueba con diferentes datos: useradd -d /opt/otrohome -s /usr/bin/otroshell -g todos prueba entonces nuestro nuevo usuario prueba tiene el directorio home en /opt/otrohome , el interprete de comandos es /usr/bin/otroshell y el grupo principal es todos. existe una interfase mas amigable para esta orden es adduser la cual es tambin por consola pero automatiza mas la creacin de usuarios en el sistema, el archivo de conguracin de adduser esta en /etc/adduser.conf userdel sintaxis userdel -f -r (nombre usuario) elimina usuarios del sistema -f fuerza la eliminacin del usuario -r elimina el directorio home del usuario ( todos los datos que se encuentren en ese directorio se borraran) ejemplos de uso: Elimina el usuario prueba pero no su directorio home userdel prueba elimina el usuario prueba incluyendo su directorio home y fuerza la eliminacin as este logeado en el sistema. userdel -f -r prueba groupadd sintaxis groupadd opciones (nombre grupo ) Crea nuevos grupos en el sistema ejemplo de uso: crear el grupo todos groupadd todos

CAPTULO 3. USUARIOS GRUPOS Y OTROS (UGO) DEL SISTEMA 53 groupdel sintaxis groupdel opciones ( nombre grupo) elimina grupos del sistema ejemplo de uso: Elimina el grupo todos groupdel todos passwd Sintaxis passwd opciones (nombre usuario) Cambia la contrasea de un usuario, este cambio puede ser efectuado desde root a cualquier usuario, o desde el mismo usuario , si es root quien cambia la contrasea este no le pedirla la anterior clave para cambiarla, solo pedirla la nueva clave y la conrmacin de la misma, si se ejecuta la orden desde el mismo usuario este pedirla la contrasea actual, luego pedirla la nueva contrasea y pedirla que la digite de nuevo para conrmarla. ejemplo: cambiar la contrasea del usuario prueba passwd prueba cuando creamos un usuario, el sistema grabara dentro del home que le corresponda los siguientes archivos: .bash_history .bash_prole .bash_logout almacena el historial de comandos digitados por el usuario script de inicio del usuario, las ordenes y comandos que se encuentren en el seran ejecutadas script para la nalizacin de la secion del usuario, este sera ejecutado cuando el usuario salga de la secion. este script se ejecuta con el shell bash cuando se inicia una sesion. en este script podemos ubicar las variables de entorno a exportar y otras cosas que necesitemos que se ejecuten cuando iniciamos un shell bash.

.bashrc

CAPTULO 3. USUARIOS GRUPOS Y OTROS (UGO) DEL SISTEMA 54 Por ultimo un consejo muy comn en el mundo de Gnu/Linux , por favor utilice la cuenta root solo para administrar, para el trabajo diario tipo ocina, desarrollo y dems cosas adece los usuarios del sistema para que puedan cumplir con sus deberes.

3.0.1. Tipos de archivos y permisos


En el transcurso de la gua hemos venido mencionando que el sistema operativo Gnu/Linux tiene una serie de ventajas entre ellas el ser multiusuario, en la seccin anterior miramos como crear usuarios en el sistema, esto es parte de la administracin pero ahora nos enfrentamos a como vamos a administrar los recursos para que los usuarios tengan privacidad y a su ves puedan trabajar en grupo. Es aqu donde los permisos de los archivos son una herramienta ecaz para solucionar esta situacin, son un mtodo de trabajo que permite administrar grandes cantidades de usuarios en sistemas complejos donde se desarrollan proyectos que exigen orden y versatilidad en la administracin, o tambin son fciles de usar en sistemas pequeos como los sistemas caseros. NODOS-I Los nodos-i (inodos) es una estructura que se usa con el n de dar unas caractersticas a los archivos , esta estructura se conforma de la siguiente manera: Nombre de usuario propietario del archivo tipo de archivo tamao de archivo donde se encuentran los datos almacenados permisos de archivo la ultima vez que fue modicado el archivo la ultima vez que se accedi al archivo la ultima vez que se modico el nodo-i numero de enlances al archivo Los nodos-i son nicos para cada archivo, de igual forma los nodos-i son identicados en la tabla de nodos-i por un numero llamado el numero-i el cual tambin es nico para cada nodo-i. De esta forma podemos comprender mejor el funcionamiento de los directorios puesto que los directorios realmente son archivos que contienen los nombres de los archivos que pertenecen a el con su numero-i, de esta forma el sistema consulta esta informacin y se direcciona a el lugar donde realmente se encuentran los archivos, de esta forma se reduce el espacio necesitado para los directorios. De esta forma cuando Linux quiere acceder a un archivo que se encuentra en un directorio , primero mira la entrada del directorio identica su numero-i, para luego encontrar el nodo-i el cual le da la informacin necesaria del archivo

CAPTULO 3. USUARIOS GRUPOS Y OTROS (UGO) DEL SISTEMA 55 para poder utilizarlo

Tipos de archivos en Linux


Para la correcta administracin del sistema se debe tener muy claro los tipos de archivos existentes en Gnu/Linux, pues esto sera lo que realmente le ayudara a encontrar la salida a muchas de las situaciones en las que se encuentra normalmente un administrador de un sistema.

Archivos ordinarios
Estos archivos son de formato simple son los que se utilizan para guardar datos de tipo general.

Directorios
Son archivos encargados de agrupar a otros archivos (enlaces duros simblicos, etc) o mismos subdirectorios

Archivos especiales
Estos son los archivos dedicados a enlazar el hardware con el sistema operativo, en pocas palabras por medio de estos archivos tenemos acceso directo a los dispositivos conectados a nuestro computador por ejemplo si tenemos una impresora conectada al puerto paralelo del computador podremos direccionar un salidas de un programa directo al puerto el cual seria el archivo /dev/lp0 que traduce seal directa al puerto esto nos da la opcin de poder crear una interaccin al hardware muchos mas fuerte y simple. Tambin se manejan permisos como cualquier archivo

Enlaces
Los enlaces se dividen en dos Enlaces duros Enlaces simblicos

Enlaces duros
los enlaces son una manera de duplicar el nombre de los archivos sin cambiar su contenido , me explico estos se utilizan cuando usted quiere posicionar el mismo archivo en diferentes lugares y poder modicarlo desde cualquier lugar de estos sin necesidad estar copindolo en todos los lugares donde desea que exista. Con los enlaces duros usted puede tener un archivo en un solo lugar y crear otros enlaces necesarios para que usted pueda mantener su archivo en otros lugares de formas gemelas y actualizadas de su archivo o archivos.

Enlaces simblicos
Estos son realmente un archivo que contiene dentro de el el nombre del archivo original del cual se enlaza y cuando uno accede a el realmente lo redirige al archivo original.

CAPTULO 3. USUARIOS GRUPOS Y OTROS (UGO) DEL SISTEMA 56 Ejem: /usr/programas/archivo_enlazado = /usr/bin/archivo_original las ventajas reales de los enlaces simblicos es que permiten trabajar de forma transparente. Otra de las caractersticas es que el enlace simblico depende del archivo original, si este es eliminado y se accede al enlace, inmediatamente enviara un mensaje de error. en conclusin los enlaces se denen as: El enlace duro es un archivo con 2 o mas nombres y el enlace simblico son 2 o mas archivos que dependen de un solo archivo principal.

Permisos y cambio de usuario y/o grupo dueos


Siempre he credo que en muchas cosas la simplicidad de algo hace ver su fortaleza, los permisos tienen esa simplicidad, bsicamente nos tenemos que defender con un esquema de 3 permisos que son utilizados por 3 clases de usuarios, los permisos que son lectura , escritura y ejecucin, son aplicados al usuario y grupo dueos de un archivo y a los otros usuarios del sistema. entonces obtenemos la siguiente tabla: U = usuario r = lectura w = escritura x = ejecucin G = grupo r = lectura w = escritura x = ejecucin O = otros r = lectura w = escritura x = ejecucin

Cuadro 3.1: Permisos para UGO Los archivos tienen unas propiedades que permiten realizar las tareas tanto del sistema como de los usuarios, en el cuadro 3.0.1 podemos ver algunas de estas.
Permisos UGO -rwxr-xr-x enlaces 4 usuario dueo usuario grupo dueo alpha tamao 4096 fecha creacin 2006-08-31 Nombre carta1

Cuadro 3.2: Propiedades mostradas por el comando: ls -l

Permisos UGO
Este apartado nos muestra el estado actual de los permisos en el archivo indicado, como lo vimos anteriormente, el sistema se conforma por usuarios

CAPTULO 3. USUARIOS GRUPOS Y OTROS (UGO) DEL SISTEMA 57 y grupos , en el caso de los archivos estos tienen un usuario y grupo dueos, y los dems usuarios del sistema conforman un todo llamado .otros", de este apartado obtenemos tambin el tipo de archivo, esto lo examinaremos en el proximo tem, en el siguiente cuadro podemos ver como se organizan estos datos cuando son listados por el comando ls -l .
carcter identicador segn el tipo de archivo
b c d l

permisos usuario dueo


r w x no hay permiso lectura escritura ejecucin

permisos grupo dueo


r w x no hay permiso lectura escritura ejecucin

permisos otros usuarios


r w x no hay permiso lectura escritura ejecucin

archivo normal archivo especial por bloques archivo especial por caracteres directorio enlace simblico

Cuadro 3.3: Organizacin de los permisos en un archivo

Enlaces
En esta columna nos muestra el numero de enlaces realizados a este archivo y en el caso de que el archivo sea un directorio este siempre empezara con el valor 2 y luego incrementara segn el numero de directorios que contenga.

Usuario dueo
Todo archivo en el sistema deber pertenecer a un usuario, si en un dado caso se copiaran archivos con un UID de usuario que no exista en el sistema, este sera trabajado con ese UID.

Grupo dueo
Es el mismo caso del usuario dueo, lo nico importante es que el grupo dueo no necesariamente debe ser un grupo al que pertenece el usuario dueo.

Tamao
Este nos indica el espacio que ocupa el archivo en el sistema de cheros, este valor esta expresado en bytes.

Fecha de creacin
Nos indica la fecha en que fue creado o copiado el archivo.

Nombre
Nos indica el nombre del archivo que estamos examinando.

CAPTULO 3. USUARIOS GRUPOS Y OTROS (UGO) DEL SISTEMA 58 Ya conociendo como identicar los permisos a un archivo, veamos como cambiar estos permisos, para ello podemos usar dos metodos que son el valor numrico o por combinacin de caracteres.

Mtodo por valores numricos


demosle valores a cada permiso y armemos una pequea tabla. permisos r w x U 4 2 1 G 4 2 1 O 4 2 1

Con esta tabla podemos deducir los permisos a aplicar en un archivo, por ejemplo si queremos que este tenga permisos de lectura escritura pero no ejecucin para el usuario dueo , solo lectura para el grupo dueo y nada para los otros hacemos la siguiente suma en la columna U tenemos en la columna G tenemos en la columna O tenemos r=4 + w=2 = r=4 = ningn permiso = 6 4 0

Si tomamos estos resultados y los juntamos en un solo renglos tenemos 640 , ahora si miramos los permisos de ese archivo veremos algo como -rw-r .

Mtodo por caracteres


Para este mtodo tenemos que usar los caracteres que representan los permisos y quienes los utilizan, siendo as tenemos la siguiente relacin u=usuarios g=grupos o=otros r=lectura w=escritura x=ejecucin ugorwx entonces si deseamos incrementar permisos a algn tipo de usuario usamos el signo mas y si queremos restarle permisos usamos el signo menos, si retomamos el ejemplo expuesto en el mtodo numrico la secuencia lgica seria esta:

u+rw u-x g+r g-wx o-rwx

agregamos los permisos de escritura y lectura eliminamos el permiso de ejecucin agregamos el permiso de lectura eliminamos los permisos de ejecucin eliminamos cualquier permiso para los otros usuarios del sistema

CAPTULO 3. USUARIOS GRUPOS Y OTROS (UGO) DEL SISTEMA 59 Para realizar cambios en los permisos de un archivo se deber ser dueo de este o ser el administrador del sistema (root), otro punto muy importante a tener en cuenta es que si un usuario tiene permisos de escritura en un directorio y dentro de el se ubican archivos no importa que el usuario no tenga permisos sobre estos archivos podra eliminarlos puesto que el directorio que los contiene si tiene permisos para que el realice esta tarea. Zahore que se tiene claro el concepto sobre permisos y mtodo de uso solo necesitamos la orden y su sintaxis. chmod sintaxis chmod opciones permisos (nombre archivo) algunas opciones bsicas

Comando para manipulacin de permisos en un archivo

-R cambia las propiedades de forma recursiva -c muestra que archivos cambiaron realmente ejemplos de uso: orden chmod 777 archivo chmod 755 archivo chmod g+rwx chmod o-wx chmod u-x funcin cambia los permisos a rwx para todos los usuarios del sistema, tambin se le conoce como full permisos cambia los permisos a rwx para el usuario dueo , rx para el grupo dueo y rw para otros da los permisos de lectura escritura y ejecucin al grupo dueo quita los permisos de escritura y ejecucin a otros quita el permito de ejecucin del archivo al usuario dueo

Cambio de usuario y/o grupo dueos


En algunas ocasiones es necesario cambiar el usuario y/o grupo dueo de un archivo o grupo de archivos , la ventaja esta en lo fcil que es realizar esta tarea, pues necesitamos simplemente conocer los nuevos datos y usar la siguiente orden con su sintaxis: Comando chown sintaxis chown opciones nuevousuario:nuevogrupo (nombre archivo) algunas opciones bsicas -R cambia las propiedades de forma recursiva

CAPTULO 3. USUARIOS GRUPOS Y OTROS (UGO) DEL SISTEMA 60 -c muestra que archivos cambiaron realmente

Captulo 4

Uso de caracteres especiales redireccionamiento y tuberias


4.1. Caracteres especiales
Cuando estamos administrando un sistema muchas veces nos encontramos con la necesidad de listar, copiar, mover, eliminar y un sinnumero de tareas mas las cuales se convierten en una locura si tratamos de realizarlas con solo los nombre de archivos, es por esta razn que existe los caracteres especiales, estos nos ayudan a realizar nuestras tareas de manera mas fcil y amigable.

61

CAPTULO 4. USO DE CARACTERES ESPECIALESREDIRECCIONAMIENTO Y TUBERIAS62 Carcter * Ejm: * c* c*g c*g*s ? Ejm: carta?.sdw carta??.sdw carta??.* Funcin este carcter le indica al sistema que puede remplazarlo por cualquier carcter o cantidad de caracteres. todos los archivos sin distincin todos los archivos que inician con la letra c todos los archivos que inician con la letra c y nalizan con la letra g todos los archivos que inician con la letra c naliza con la letra s y en alguna parte entre la c y la s existe la letra g La interrogacin es una carcter que se utiliza para indicar al shell que este puede ser remplazado por cualquier otro carcter. todos los archivos carta(un carcter cualquiera).sdw todos los archivos carta(dos caracteres cualquiera).sdw todos los archivos carta(dos caracteres cualquiera).(cualquier carcter y cualquier cantidad) los corchetes le indican al shell que debe remplazar uno a uno los caracteres que tiene en el rango especicado. Todos los archivos que (su primer carcter entre la a hasta la z)(cualquier caracter cualquier cantidad) Todos los archivos que (su primer caracter este entre 0 y 9)(cualquier caracter cualquier cantidad) Todos los archivos que (cualquier caracter cualquier cantidad)(su ultimo caracter sea un numero de 0 a 9) Todos los archivos que (su primer caracter sea a o A)(cualquier caracter cualquier cantidad) Las llaves son utilizadas para crear un conjunto de archivos de esta forma si necesitamos especicar unos cuantos archivos en una sola linea lo podemos hacer con estos smbolos. Conjunto archivo1 y archivo2 las comillas nos permiten incluir caracteres especiales sin que estos tengan efecto nombre de un archivo con espacios en blanco Anula el efecto del caracter especial dejandolo como un caracter mas cualquiera

[]
Ejm: [a z]*

[0 9]*
*[0 9]

[aA]

Ejm: archivo1,archivo2 Ejm: .archivo de prueba"

Cuadro 4.1: Caracteres especiales

Captulo 5

Manipulacion de archivos
5.1. Agregar un sistema de archivos
Para poder ver el contenido de otro sistema de archivos como podria ser otro disco duro,particiones,unidades de red, cd rom, oppy, zip drive etc ... debemos montarlo sobre un directorio el cual sera el enlace para entrar al nuevo sistema de archivos, la orden y la sintaxis son: mount /dev/dispositivo /punto_de_montaje donde punto de montaje es el directorio que servira como entrada al sistema de archivos que adicionamos, si deseamos que este sea constante deberemos agregarlo al archivo /etc/fstab bajo la siguiente estructura: dispositivo especica el dispositivo especial a montar , como referencia puede usar el cuadro 1.1 punto de anclaje directorio que servira como punto de anclaje al sistema de archivos a montar tipo de fs especica los sistemas de archivos que tiene el dispositivo a montar, como referencia puede usar el cuadro 1.2 opciones

63

CAPTULO 5. MANIPULACION DE ARCHIVOS

64

describe las opciones de montaje asociadas con el sistema de cheros. Es una lista de opciones separadas por comas. Contiene como mnimo el tipo de montaje y otras opciones apropiadas para el tipo del sistema de cheros. Las distintas opciones para sistemas de cheros locales estn documentadas en mount(8). Las opciones especcas para nfs estn documentadas en nfs(5). Las siguientes opciones son comunes para cualquier tipo de sistema de cheros: noauto (no monta el sistema cuando se ejecuta "mount -a", p.ej., cuando arranca el sistema), y user (permite que un usuario monte el sistema de cheros). Para mayor informacin, vase mount(8). (segmento tomado de la pagina del manual de mount ) freq Lo utiliza el comando dump(8) para determinar que sistemas de cheros necesitan ser volcados (dumped). Si el quinto campo esta vaco, dump asume que el sistema de cheros no necesita ser volcado. fs_passno Lo usa el programa fsck(8) para determinar el orden en el cual se van a chequear los sistemas de cheros cuando el sistema arranca. El sistema de cheros raz debera llevar fs_passno igual a 1, y otros sistemas de cheros deberan llevar fs_passno igual a 2. Sistemas de cheros en un mismo disco sern chequeados secuencialmente, pero sistemas de cheros en diferentes discos sern chequeados al mismo tiempo para utilizar el paralelismo disponible en el equipo. Si el sexto campo no est presente o tiene un valor de 0, fsck asumir que los sistemas de cheros no necesitan ser chequeados. (segmento tomado de la pagina del manual de mount )

5.2. Comandos para la manipulacin de archivos y apagado de la misma


Para la manipulacin de archivos en Gnu/Linux se cuenta con una gama amplia de herramientas que facilitan la vida del administrador y usuarios del sistema. En el siguiente cuadro encontrara una relacin de los comandos bsicos para la manipulacin de archivos en Gnu/Linux. Con estos comandos y combinandolos con todo lo que hemos hasta este punto en la gua usted debe poder manipular archivos de su sistema sin mayor dicultad, siempre he recomendado a todo el que puedo que ensaye, pero que lo haga en sistemas de prueba, monte un sistema Gnu/Linux y pruebe todo lo que hemos visto sin dejar lagunas de conocimiento.

CAPTULO 5. MANIPULACION DE ARCHIVOS

65

Comando ls mv rm touch mkdir rmdir cp ln cd pwd du

sintaxis ls opciones chero mv opciones origen destino rm opciones chero touch archivo mkdir opciones directorio rmdir opciones directorio cp opciones archivo ln opciones origen destino cd directorio pwd du opciones archivo

df

df opciones archivo

halt shutdown

COMANDOS PARA APAGAR EL SISTEMA


halt

Utilidad Listar archivos Mover archivos Borrar archivos Crea archivos en blanco Crea directorios Borra directorios Copia archivos Crea enlaces Cambia de directorio Nos indica el directorio actual Nos da con exactitud la cantidad de bytes ocupados por uno o un grupo de directorios, si se ejecuta sin opciones el dara el espacio que ocupan los archivos de su ruta actual Indica el punto de anclaje, la cantidad de bytes utilizados y libres de los sistemas de archivos que se encuentran montados en nuestro sistema principal, si se usa sin argumentos mostrara todo el sistema de archivos actual. El n de esta orden es de apagar el sistema de manera correcta pero inmediata la orden shutdown sirve para apagar el equipo con las opciones seleccionadas

shutdown opciones

Cuadro 5.1: Comandos bsicos para la manipulacin de archivos en Gnu/Linux

CAPTULO 5. MANIPULACION DE ARCHIVOS standard input = standard output = standar error = stdin = stdout = stderr = dispositivo de entrada (Teclado) dispositivo de salida (Pantalla) dispositivo de salida (Pantalla)

66

5.3. Redireccion y canalizacin de la entrada y salidas estndar


Para comprender la redireccin y la canalizacin debemos comprender como trabaja esto el sistema operativo para ello tenemos el siguiente esquema:

5.3.1. Redireccion de la salida estndar


La redireccin se utiliza para enviar la salida de un programa a donde queramos, el carcter a usar en este tipo de operaciones es el  .este carcter debe ir al nal de un comando, con esto le estamos indicando al shell que la salida generada no la enve por la salida estndar sino que la enve donde le estamos indicando. Orden: comando >salida Ejm: ls >listado En el ejemplo estamos direccionando la salida estndar del comando ls a un archivo llamado listado el cual contendr lo que debido salir por pantalla, que para el caso seria un listado de archivos. Si queremos sumar datos a un archivo usando este mtodo deberemos usar los caracteres >> si usamos uno solo el archivo sera remplazado. orden: ls >> listado no remplaza el contenido del archivo sino que suma la salida estndar del comando ls al nal del contenido del archivo listado.

5.3.2. Redireccion de la entrada estndar


Usted tambin puede tomar la entrada estndar y redirigirla para algn uso especico , para lograr esto utilizaremos el carcter  " orden: comando <entrada estndar

CAPTULO 5. MANIPULACION DE ARCHIVOS Ejem:

67

Tenemos un archivo que contiene un listado en desorden y usted desea ordenarlo para que salga en pantalla, para esto necesitara hacer uso del comando sort y la redireccion de la entrada estndar. sort <listado si queremos que el listado ordenada se grabe en otro archivo usaremos la redireccion de la salida estndar sort <nombres >nombresordenados

5.3.3. Redireccion de la salida estndar de error


El shell del sistema esta predeterminado a enviar los mensajes de error a la salida estndar, cuestin que por medio del los caracteres "2>sted podr redireccionar la salida de error a un archivo cualquiera. orden: comando 2>archivo Supongamos que queremos listar un directorio que no existe, inmediatamente el sistema enviara un mensaje de error y este lo enviaremos a un archivo llamado errores. ls /noexiste 2>errores De esta forma enviara el error al archivo errores y si queremos incrementar el archivo y no remplazarlo usamos los caracteres >> Ejm: ls /no existe 2>> errores de esta forma alimentaremos el archivo llamado errores

5.3.4. Canalizacin
Es un proceso de enviar la salida de un comando a la entrada de otro. Ejem: cat /etc/smb.conf.sample | more la salida del comando cat es un archivo de conguracin bastante extenso el cual por el uso de la canalizacin se convierte en la entrada de otro comando

CAPTULO 5. MANIPULACION DE ARCHIVOS que es more.

68

Filtros
Los ltros son programas utilizados para tomar datos procesarlos y enviarlos por la salida estndar.

grep
Este comando se utiliza con el n de encontrar una cadena de caracteres dentro de un texto de esta forma usted podr buscar de una forma fcil algn dato interesante en un archivo de registro sin tener que estar entrando en ningn editor de texto orden: grep cadena archivo

more
Es un comando utilizado para la lectura de textos en linea de esta forma el texto que tiene una longitud mayor que el de la consola podr ser visto por paginas as no se perder la informacin del mismo orden: more archivo

cat
Se usa para concatenar archivos Ejm: tenemos en la salida estndar el contenido de archivo1 y archivo2 cat archivo1 archivo2 Enviamos el contenido de archivo1 y archivo2 a un archivo llamado total cat archivo1 archivo2 >total si queremos crear un archivo de texto cat >nuevo texto luego escribimos y terminamos presionando las teclas <CTRL><Z>

less
Herramienta con opciones avanzadas para mirar archivos.

tee
Sirve para tomar datos por la entrada estndar y sacarlos por la salida estndar pero mantiene una copia de los datos en un archivo.

CAPTULO 5. MANIPULACION DE ARCHIVOS Ejm: cat total | tee total2

69

El siguiente cuadro lista una serie de ltros bsicos para el tratamiento de archivos disponibles practicamente en cualquier Unix. cat cut fmt grep head less more nl paste sort tail uniq wc concatenar archivos selecciona columnas de una tabla da formato a un texto, fajando el ancho de cada linea a un mximo busca patrones de texto muestra las primeras lineas de texto visualizador de texto visualizador de texto pagina a pagina numera las lineas de texto combina columnas de texto ordena lineas de datos visualiza las ultimas lineas de un texto elimina lineas consecutivas idnticas cuenta lineas, palabras y caracteres de un texto Cuadro 5.2: Filtros bsicos para el tratamiento de archivos

Captulo 6

Niveles de ejecucin (RUNLEVELS)


En Gnu/Linux contamos con los runlevels que nos permiten desidir que scripts se inician en el sistema cuando este arranca , En los directorios asignados para cada runlevel usted encontrara los enlaces simbolicos a los scripts que ejecutan los servicios(daemons). en el siguiente cuadro encontramos una relacion de los directorios de los runlevels del sistema:

Nivel de ejecucin 0 1 2 3 4 5 6

RedHat /etc/rc.d/rc0.d /etc/rc.d/rc1.d /etc/rc.d/rc2.d /etc/rc.d/rc3.d /etc/rc.d/rc4.d /etc/rc.d/rc5.d /etc/rc.d/rc6.d

utilidad apaga el computador Monousuario multiusuario sin capacidad de red full multiusuario sin uso Activa servidor graco Reinicia la mauina

Debian /etc/rc0.d /etc/rc1.d /etc/rc2.d /etc/rc3.d Multiusuario /etc/rc4.d /etc/rc5.d /etc/rc6.d

util apa Mo Mu

Mu Mu Rei

Normalmente por defecto en un sistema los usuarios se ejecutan en los runlevel 2,3,4,5

70

Captulo 7

Gestion de programas en Gnu/Linux


En un punto de la instalacin el sistema inicia un proceso llamado "instalacion de paquetes.este proceso toma todas las herramientas que seleccionamos y procede a instalarlas, el problema para nosotros esta cuando ya esta el sistema instalado y necesitamos agregar o eliminar paquetes de software, es aqui donde existen herramientas que nos ayudaran a realizar esta tarea muy comun para un administrador de sistemas.

7.1. sistema de gestion de paquetes


muchas veces pensamos que instalar una aplicacion es tomar un programa ejecutable correrlo y esperar a que llege al 100 % luego no dice que reiniciemos el computador, lo hacemos y por arte de magia empiezan a salir errores extraos que antes no salian, algunas veces la causa de este tipo de problemas son cierta incompatibilidad o falta de librerias y/o paquetes lo cual hace fallar el sistema, En Gnu/Linux el esquema para instalacion de nuevas aplicaciones no es tan simple pero eso nos permite tener el control de lo que sucede e incluso sabremos cuando algun tipo de programa instalara o necesitara de otros paquetes que pueden afectar el normal funcionamiento del sistema. Los gestores de paquetes son los encargados de sobrellevar esta tarea, ellos se encargan de revisar las dependencias de los paquetes a instalar y los conictos que estas pueden crear con las ya instaladas, en el mercado actual existen muchas distribuciones de Gnu/Linux y tecnicamente cada una podria manejar su propio esquema de paquetes, pero por suerte este nicho se ha repartido en tres grandes grupos los paquetes rpm, deb y tgz, estando estos disponibles para ser manejados por distintas herramientas que facilitaran mucho el trabajo de administracion.

71

CAPTULO 7. GESTION DE PROGRAMAS EN GNU/LINUX

72

Debido a que existe una innidad de herramientas para administrar paquetes, trataremos de examinar el funcionamiento de los tipos de paquetes desde un aspecto general, eso nos ayudara a comprender que hacen y como funcionan las herramientas de gestion de paquetes.

7.1.1. Paquetes en tar , tar.gz , tgz


Propiamente es una herramienta para empaquetar y comprimir archivos, pero es comunmente utilizada por algunas distribuciones para la gestion de sus paquetes, esta herramienta es usada desde los principios de unix para tareas comunes como copiado de archivo o realizacion de backups. Orden: tar sintaxis tar opciones archivo.(tar , tar.gz , tgz ) (ruta archivos a copiar) como opciones basicas tenemos: c crea nuevo archivo x desempaqueta el archivo especicado v mirar lo que la herramienta esta haciendo f dene el nombre que llevara el nuevo archivo Ejemplos de uso: z crea el nuevo archivo en formato comprimido gzip j crea el nuevo archivo en formato comprimido bzip2 -C dir descomprime los archivos en el directorio indicado tar cfz archivo nuevo.tgz /ruta-archivos/archivos_a_empaquetar En este ejercicio puede usar los caracteres especiales si quiere especicar un grupo de archivos completo, si especica solo la ruta de archivos el archivo nuevo.tgz almacenara todo el contenido de esa ruta. tar cvf /dev/fd0 /ruta-archivos/archivos_a_empaquetar -M con esta opcin usted podr enviar los archivos sin comprimir a diskettes y si se necesita mas de uno el le pedir los diskettes consecutivamente hasta nalizar tar -xvf nombrearchivo.tar Desempaqueta el contenido de nombrearchivo.tar en el directorio donde se encuentre el usuario en ese momento tar tvf nombrearchivo.tar Si quiere mirar el contenido sin desempaquetar tar xfzM /dev/fd0 Desempaqueta el contenido de un grupo de disquettes que fueron grabados por tar. el programa tar utiliza los formatos gzip y bzip2 para comprimir los archivos, asi que miremos lo basico de las herramientas gzip y bzip2.

CAPTULO 7. GESTION DE PROGRAMAS EN GNU/LINUX

73

gzip
Realmente este es un pequeo pero muy poderoso programa de compresin de archivos y su ejecucin es simple nicamente se especica el archivo a comprimir y listo :-) orden: gzip archivo

gunzip
Este programa es la complementaron de gzip y es el comando utilizado para la descompresin de archivos su ejecucin bsica es simple se utiliza la orden y el archivo compreso. orden: gunzip archivo.gz bzip2 Esta herramienta tiene un algoritmo de compresion mas fuerte que gzip. sintaxis: bzip2 opciones archivo para descomprimir un archivo en formato bzip2: bzip2 -d archivo.bz2

7.1.2. Paquetes en rpm


Este formato de paquetes conocido tambien como RedHat Package Manager es utilizado por bastantes distribuciones en el mercado por la gran mayoria de software empaquetado en este formato, rpm fue creado por RedHat una de las distribuciones de Gnu/Linux mas popular en el mundo. sintaxis rpm opciones paquete.rpm Ejemplos de uso:

CAPTULO 7. GESTION DE PROGRAMAS EN GNU/LINUX rpm rpm rpm rpm -ivh paquete.rpm -Uvh paquete.rpm -qip paquete.rpm -qlp paquete.rpm

74

rpm nodeps paquete.rpm rpm replaceles paquete.rpm

instala un paquete.rpm actualiza un paquete.rpm muestra la descripcin de un paquete.rpm muestra el contenido de archivos de un paquete.rpm instalala sin mirar dependencias si existen archivos en el paquete rpm que existan en el sistema, esta orden hara que se sobreescriban .

7.1.3. Paquetes en deb


Este formato de paquetes es el usado por Debian y las distribuciones derivadas de el, este gestor tiene una gran facilidad para actualizarse por internet, automatiza la tarea de cumplimiento de dependencias, o gestionar la actualizacin del las aplicaciones por servidores instalados en diferentes lugares de internet. debian se distribuye en tres categoras principales: estable testing inestable

se actualiza nicamente cuando los paquetes han pasado por una serie de pruebas que lo lleva usa los paquetes que han sido aceptados en debian estable pero que son de versiones mas act versin de desarrollo, es el lugar donde todo desarrollo para debian debe iniciar su proceso.

para gestionar los paquetes deb existen diferentes herramientas, usaremos apt para gestionar los paquetes que estan en el repositorio que poseamos ( cdrom dvd internet) y usamos dpkg para instalar un paquete que descargamos de algun medio, el cual no esta en el repositorio sintaxis: apt-get opciones paquetes apt-cache search (cadena a buscar ) dpkg opciones paquetes Ejemplos de uso: apt-get install openoce.org el sistema instala de los medios que estan asignados en el repositorio los paquetes correspondientas a openoce.org y todas las dependencias necesarias para su funcionamiento. apt-get remove openoce.org remueve todos los paquetes correspondientes a openoce.org. dpkg -i amsn.deb instala el paquete amsn.deb , si este necesita cumplir algunas dependencias el sistema dara aviso. dpkg contents amsn.deb nos muestra el contenido del paquete amsn.deb. dpkg purge amsn.deb elimina el paquete amsn.deb. NOTA: es importante tener en cuenta que si tiene una distribucion debian actualizada por internet, usted debera actualizar el repositorio de paquetes antes de instalar nuevas cosas, ya que pueden salir mensajes de que no existen los

CAPTULO 7. GESTION DE PROGRAMAS EN GNU/LINUX paquetes seleccionados.

75

Captulo 8

Servidores gracos Xfree86 / Xorg


En los sistemas actuales es muy necesario el entorno graco para realizar tareas cotidianas, pero tambien es muy importante la interconectividad y el hecho de poder correr nuestras aplicaciones en la red, logrando sacar el mayor probecho a la computacion, lo interesante es que para muchos esto es nuevo, pero resulta que el protocolo X que es el encargado de la comunicacion entre el cliente y servidor X nacio en 1984 con esa idea y en la actualidad contamos no con un entorno graco sino con un servidor graco con todas las prestaciones que ello implica. El proyecto Xfree86 es una implementacion de X window basada en la version 11 del protocolo X y el 22 de mayo del 2006 nace Xorg como una bifurcacion de XFree86 Version 4.4 RC2 por diferencias entre los desarrolladores y la nueva licencia de XFree86, actualmente la mayoria de distribuciones estan soportando Xorg por sus novedades y esquema de licencia. La independencia del sistema operativo hace que X pueda implementarse en diferentes sistemas y trabajar en conjunto, lo unico que se necesita es una implementacion para el sistema operativo que se quiera unir, eso nos da un esquema asi: La graca 8.1 hace referencia a un modelo de X convensional donde el sistema operativo es para soportar la aplicacion y X se comunica directamente con el hardware, pero en la actualidad por las ventajas del 3d se creo el proyecto DRI que se implementa en el kernel para que este se comunique directo con el hardware y pueda aprobechar la aceleracion de las tarjetas de video actuales. Otra situacion interesante es cuando hablamos del modelo cliente servidor de X pues normalmente asumimos que el servidor es la maquina remota que corre las aplicaciones y nuestra maquina es una terminal, en el protocolo X generalmente es alreves, pues el servidor X es neceariamente el que esta congurando 76

CAPTULO 8. SERVIDORES GRAFICOS XFREE86 / XORG

77

Figura 8.1: Esquema funcionamiento X window

Figura 8.2: El protocolo X en red el hardware para aprobecharlo, pues el servidor X es el que se encarga de congurar el video , mouse, teclado y levantar el modo graco y dejarlo listo para recibir a los clientes, asi que tecnicamente tenemos un servidor X en nuestra maquina y cuando cargamos una aplicacion graca de una maquina remota usando el protocolo X, estamos llamando un cliente asi que la maquina que gestiona las aplicaciones y que conocemos como servidor resulta siendo el cliente y nuestra red puede verse asi: Para congurar un servidor X window usted debe conocer de su equipo la siguiente informacin: Tipo de tarjeta de video (referencia y cantidad de videoram) capacidad de la pantalla resolucin en pixel a trabajar (640x480 / 800x600 / 1024x768 ) resolucin en colores (8 bits / 16 bits / 24 bits / 32 bits) tipo de mouse puerto mouse (puede encontrar una relacion de puertos E/S en el cuadro 2.4 en la seccion 2.5 teclado Los archivos de conguracin principales son

CAPTULO 8. SERVIDORES GRAFICOS XFREE86 / XORG /etc/X11/XF86Cong /etc/X11/xorg.conf /etc/X11

78

archivo de conguracin para Xfree86 archivo de conguracion para Xorg directorio principal de conguracin para Xfree86 y Xorg

Cada distribucion tiene sus propias herramientas para la conguracion del servidor X, pero asi mismo esta parte esta practicamente automatizada, pues las distribuciones detectan desde la tarjeta de video hasta el tipo de monitor que esta conectado a ella, de tal forma que congura los parametros de manera automatica, de todas formas vale la pena nombrar que si existe alguna dicultad en la deteccion del video con la herramienta de la distribucion en uso, trate de congurarla en tarjeta de video vesa si la herramienta lo permite.

Captulo 9

servidores de impresion lprng / Cups


Comandos para la manipulacin de impresoras Cuando se enva una impresin bajo linux el sistema realmente lo que esta haciendo es generando otro archivo el cual estar en un lugar temporalmente hasta ser impreso, de esta forma se crean las colas de impresin. Si deseamos imprimir un archivo de tipo ascii lo podemos hacer de forma directa al redireccionar la salida estndar al archivo especial de enlace al puerto Ejem: ls >/dev/lp0

9.0.4. Gestionando colas de impresin


para gestionar el sistema de impresin bajo Gnu/Linux el se vale del servidor de impresion instalado, en la actualidad los servidores de impresion preferidos son lprng y cups.

CUPS
Para congurar o agregar impresoras en este sistema de impresion debe usar un navegador de internet e iniciar la pagina web http://localhost:631 aqui le aparecera una herramienta para la conguracion y administracion de las impresoras. para enviar impresiones a cups puede usar la orden lpr -Pimpresora archivo ( este debe estar en ascii o en formato ps ) Para detener e iniciar el servidor de impresion debe usar la orden: 79

CAPTULO 9. SERVIDORES DE IMPRESION LPRNG / CUPS /etc/init.d/cupsys stop /etc/init.d/cupsys start o podemos usar: /etc/init.d/cupsys restart LPRNG

80

es un poco mas complejo, pues no tiene una herramienta de conguracion general para todas las distribuciones como la tiene cups, asi que examinemos los parametros a seguir para usar genericamente este servidor de impresion.

Archivo de conguracin Lprng basara su conguracion en el archivo /etc/printcap para denir que impresoras se encuentran en el sistema con sus respectivas caractersticas.
Nombre-impresora: :sd=/var/spool/lpd/nombrecola: :sh: :lp=/dev/lp0: si desea puede usar la variable :if=/var/spool/lpd/nombrecola/nombreltro: y con esto usted podr enviar por un ltro de impresin todas las impresiones destinadas a esa impresora.

Administracin del sistema de impresin


Para crear eliminar o consultar las colas de impresion en el sistema debera usar los siguientes comandos:

lpr opciones -Pimpresora archivo lpq -Pimpresora opciones lprm -Pimpresora opciones Ejemplos de uso:

envia el archivo seleccionado a la cola de impresion selecci consula la cola de impresion de la impresora seleccionada elimina la cola de impresion de la impresora seleccionada

CAPTULO 9. SERVIDORES DE IMPRESION LPRNG / CUPS lpr -Pcaja /etc/hosts envia el archivo /etc/hosts a la cola de impresion de caja. lpq -Pcaja consulta la cola de impresion de caja.

81

lprm -Pcaja 567 Elimina la impresion No. 567 de la cola de impresion de caja. El numero de la impresion se obtiene cuando se consulta la cola de impresion. lprm -Pcaja all Elimina el total de impresiones de la cola caja lprm -a all Elimina el total de impresiones de todas las colas de impresion del sistema.

Reinicio del servicio de impresion Para detener e iniciar el servidor de impresion debe usar la orden:
/etc/init.d/lprng stop /etc/init.d/lprng start o podemos usar: /etc/init.d/lprng restart

Captulo 10

Conguracion simple de Samba


El servidor samba permite compartir impresoras y archivos en red, entre maquinas Windows Linux. Ejemplo de conguracion del servidor samba: workgroup = nombregrupo server string = servidor samba interfaces = 192.168.1.1/24 127.0.0.1/24 bind interfaces only = yes security = share guest account = general log le = /var/log/samba/log. %m max log size = 50 time server = yes os level = 65 preferred master = yes printing = bsd printcap name = /etc/printcap print command = lpr -h -r -s -P %p %s load printers = yes [publico] comment = CARPETA PUBLICO path = /home/publico read only = no guest ok = yes create mask = 0664 directory mask = 0775 82

CAPTULO 10. CONFIGURACION SIMPLE DE SAMBA

83

[servidor] comment = impresora del servidor path = /tmp guest ok = yes browseable = yes printable = yes public = yes printer = lp