Introduccion al sitema operativo linux\nDocumento del Máster Software Libre de la UOC\nIntroducción alsistema operativoGNU/LinuxJosep Jorba EstevePID_00167539\nGNUFDL • PID_00167539 Introducción al sistema operativo GNU/Linux© 2010, FUOC. Se garantiza permiso para copiar, distribuir y modificar este documento según los términos de la GNU FreeDocumentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes nitextos de cubierta delantera o trasera. Se dispone de una copia de la licencia en el apartado "GNU Free Documentation License" deeste documento.\nGNUFDL • PID_00167539 Introducción al sistema operativo GNU/LinuxÍndiceIntroducción............................................................................................... 51. Software Libre y Open Source........................................................ 72. UNIX. Un poco de historia............................................................... 143. Sistemas GNU/Linux.......................................................................... 234. El perfil del administrador de sistemas...................................... 275. Tareas del administrador................................................................ 325.1. Tareas de administración local del sistema ................................. 325.2. Tareas de administración de red ................................................. 346. Distribuciones de GNU/Linux......................................................... 376.1. Debian ......................................................................................... 426.2. Fedora .......................................................................................... 467. Qué veremos........................................................................................ 51Actividades.................................................................................................. 53Bibliografía................................................................................................. 54\nGNUFDL • PID_00167539 5 Introducción al sistema operativo GNU/LinuxIntroducciónLos sistemas GNU/Linux [Joh98] ya no son una novedad; cuentan con unaamplia variedad de usuarios y de ámbitos de trabajo donde son utilizados.Su origen se remonta al mes de agosto de 1991, cuando un estudiante finlan-dés llamado Linus Torvalds anunció, en el newsgroup comp.os.minix que habíacreado su propio núcleo de sistema operativo y lo ofreció a la comunidad dedesarrolladores para que lo probara y sugiriera mejoras para hacerlo más uti-lizable. Este sería el origen del núcleo (o kernel) del operativo que, más tarde,se llamaría Linux.Por otra parte, la FSF (Free Software Foundation), mediante su proyecto GNU,producía software desde 1984 que podía ser utilizado libremente, debido a loque Richard Stallman (miembro de la FSF) consideraba software libre: aqueldel que podíamos conseguir sus fuentes (código), estudiarlas y modificarlas, yredistribuirlo sin que nos obliguen a pagar por ello. En este modelo, el nego-cio no está en la ocultación del código, sino en el software complementarioañadido, en la adecuación del software a los clientes y en los servicios añadi-dos, como el mantenimiento y la formación de usuarios (el soporte que lesofrezcamos), ya sea en forma de material, libros y manuales, o en cursos deformación.La combinación (o suma) del software GNU y del kernel Linux es la que nos hatraído a los actuales sistemas GNU/Linux. Actualmente, tanto los movimien-tos Open Source, desde diferentes organizaciones (como FSF) y empresas co-mo las que generan las diferentes distribuciones Linux (Red Hat, CanonicalUbuntu, Mandrake, Novell SuSe...), pasando por grandes empresas (como HP,IBM o Sun, que proporcionan apoyos y/o patrocinios), han dado un empujónmuy grande a los sistemas GNU/Linux hasta situarlos al nivel de poder com-petir, y superar, muchas de las soluciones propietarias cerradas existentes.Los sistemas GNU/Linux no son ya una novedad. El software GNU seinició a mediados de los ochenta, y el kernel Linux a principios de losnoventa. Linux se apoya en tecnología probada de UNIX, con más decuarenta años de historia.En este módulo introductorio veremos algunas ideas generales de los movi-mientos Open Source y Free Software, así como un poco de historia de Linuxy de sus orígenes compartidos con UNIX, de donde ha heredado más de cua-renta años de investigación en sistemas operativos.NotaPodéis ver una copia delmensaje de Linus y las reac-ciones iniciales en http://groups.google.com/group/comp.os.minix/browse_thread/thread/76536d1fb451ac60/b813d52cbc5a044b\nGNUFDL • PID_00167539 7 Introducción al sistema operativo GNU/Linux1. Software Libre y Open SourceBajo la idea de los movimientos (o filosofías) de Software Libre y Open Source[OSIc] [OSIb] (también llamado de código abierto o software abierto), se en-cuentran varias formas de software que, aunque no son todas del mismo tipo,sí comparten muchas ideas comunes.La denominación de un producto de software como "de código abierto"conlleva, como idea más importante, la posibilidad de acceder a su có-digo fuente, y la posibilidad de modificarlo y redistribuirlo de la maneraque se considere conveniente, estando sujeto a una determinada licen-cia de código abierto, que nos da el marco legal.Frente a un código de tipo propietario, en el cual un fabricante (empresa desoftware) encierra su código, ocultándolo y restringiéndose los derechos a símisma, sin dar posibilidad de realizar ninguna adaptación ni cambios que nohaya realizado previamente la empresa fabricante, el código abierto ofrece,entre otras consideraciones:1)Accesoalcódigofuente: ya sea para estudiarlo (ideal para educación) omodificarlo, para corregir errores, adaptarlo o añadir más prestaciones.2)Gratuidad (de uso y posiblemente de precio): normalmente, el software,ya sea en forma binaria o en la forma de código fuente, puede obtenerse libre-mente o por una módica cantidad en concepto de gastos de empaquetamien-to, distribución y valores añadidos. Lo cual no quita que el software pueda serdistribuido comercialmente a un determinado precio fijado.3)Evitarmonopoliosdesoftwarepropietario: no depender de una únicaopción o único fabricante de nuestro software. Esto es más importante cuandose trata de una gran organización, ya sea una empresa o estado, que no puede(o no debería) ponerse en manos de una determinada única solución y pasara depender exclusivamente de ella.4)Unmodelodeavance: no basado en la ocultación de información, sinoen la compartición del conocimiento (semejante al de la comunidad científi-ca), para lograr progresos de forma más rápida, con mejor calidad, ya que laselecciones tomadas están basadas en el consenso de la comunidad, y no en loscaprichos de empresas desarrolladoras de software propietario.Nota[OSIc] OSI (2003). OpenSource Iniciative.http://www.opensource.org[OSIb] OSI (2003). OpenSource Definition.http://www.opensource.org/docs/definition.php\nGNUFDL • PID_00167539 8 Introducción al sistema operativo GNU/LinuxCrear programas y distribuirlos junto al código fuente no es nuevo. Ya desdelos inicios de la informática y en los inicios de la red Internet se había hechoasí. Sin embargo, el concepto de código abierto como tal, la definición y laredacción de las condiciones que tenía que cumplir, datan de mediados de1997.Eric Raymond y Bruce Perens fueron los que divulgaron la idea. Raymond[Ray98] fue el autor del ensayo titulado La catedral y el bazar, que hablabasobre las técnicas de desarrollo de software utilizadas por la comunidad Linux,encabezada por Linus Torvalds, y la comunidad GNU de la Free Software Foun-dation (FSF), encabezada por Richard Stallman. Por su parte, Bruce Perens eraen aquel momento el jefe del proyecto Debian, que trabajaba en la creaciónde una distribución de GNU/Linux integrada únicamente con software libre.Dos de las comunidades más importantes son la FSF, con su proyecto desoftware GNU, y la comunidad Open Source, cuyo máximo exponentede proyecto es Linux. GNU/Linux es el resultado de la unión de sustrabajos.Una distinción importante entre las comunidades FSF y Open Source son lasdefiniciones de código abierto y software libre. [Deba] [PS02]El SoftwareLibre (free software) [FSF] es un movimiento que parte de las ideasde Richard Stallman, que considera que hay que garantizar que los programasestén al alcance de todo el mundo de forma gratuita, se tenga acceso libre aéstos y puedan utilizarse al antojo de cada uno. Una distinción importante,que causó ciertas reticencias a las empresas, es el término free. En inglés, estapalabra tiene el doble significado de gratuito y libre. La gente de la FSF bus-caba las dos cosas, pero era difícil vender ambos conceptos a las empresas. Lapregunta típica era: ¿cómo se podía ganar dinero con esto? La respuesta vinode la comunidad Linux (con Linus Torvalds a la cabeza), cuando consiguiótener un producto que todavía no había logrado la comunidad GNU y la FSFen esos momentos: un sistema operativo completo libre con código fuentedisponible. En este momento fue cuando a una parte de la comunidad se leocurrió juntar las diferentes actividades que había en la filosofía del SoftwareLibre bajo la nueva denominación de código abierto (open source).OpenSource se registró como una marca de certificación, a la que podíanadherirse los productos software que respetasen sus especificaciones. Esto nogustó a todo el mundo; de hecho, suele haber cierta separación y controversiasentre los dos grupos del Open Source y la FSF (con GNU), aunque son más lascosas que los unen que las que los separan.NotaPodéis ver la versión espa-ñola de [Ray98] en http://es.tldp.org/Otros/catedral-ba-zar/cathedral-es-paper-00.html\nGNUFDL • PID_00167539 9 Introducción al sistema operativo GNU/LinuxEn cierta manera, para los partidarios del software libre (como la FSF), el códi-go abierto (u open source) constituye un paso en falso, ya que representa unacierta venta al mercado de sus ideales, y deja la puerta abierta a que se vayahaciendo propietario el software que era libre. Los partidarios de open sourceven la oportunidad de promocionar el software que, de otro modo, estaríaen una utilización minoritaria, mientras que con la divulgación y la puestaen común para todo el mundo, incluidas empresas que quieran participar encódigo abierto, entramos con suficiente fuerza para plantar cara al softwarepropietario.La idea que persiguen tanto FSF como Open Source es la de aumentar lautilidad del software libre, ofreciendo así una alternativa a las solucionesúnicas que las grandes empresas quieren imponer. Las diferencias entreambas filosofías son más ideológicas que prácticas.Una vez establecidas las ideas básicas de la comunidad del código abierto, lle-gamos al punto en que había que concretar de manera clara qué criterios teníaque cumplir un producto de software para considerarse de código abierto. Setenía que contar con una definición de código abierto [OSIb], que inicialmen-te escribió Bruce Perens en junio de 1997 como resultado de comentarios delos desarrolladores de la distribución Debian Linux, y que posteriormente fuereeditada (con modificaciones menores) por la organización OSI (Open SourceInitiative). Esta organización está encargada de regular la definición y contro-lar las licencias de código abierto.El código abierto está regulado por una definición pública que se utilizacomo base de la redacción de sus licencias de software.Un pequeño resumen (interpretación) de la definición: un Open Source Soft-ware [OSIb], o software de código fuente abierto, debe cumplir los requisitossiguientes:1)Sepuedecopiar,regalarovenderaterceroselsoftware, sin tener quepagar a nadie por ello. Se permite copiar el programa.2)Elprogramadebeincluirelcódigofuente y tiene que permitir la distri-bución tanto en forma compilada como en fuente. O, en todo caso, hay quefacilitar algún modo de obtener los códigos fuente (por ejemplo, descarga des-de Internet). No está permitido ocultar el código, o darlo en representacionesintermedias. Garantiza que se pueden hacer modificaciones.\nGNUFDL • PID_00167539 10 Introducción al sistema operativo GNU/Linux3)Lalicenciadelsoftwaretienequepermitirquesepuedanrealizarmo-dificaciones y trabajos que se deriven, y que entonces se puedan distribuirbajo la misma licencia que la original. Permite reutilizar el código original.4)Puederequerirselaintegridaddelcódigodelautor, o sea, las modifica-ciones se pueden presentar en forma de parches (patchs) al código original, ose puede pedir que tengan nombres o números distintos a los originales. Estoprotege al autor de qué modificaciones puedan considerarse como suyas. Estepunto depende de lo que diga la licencia del software.5)Lalicencianodebediscriminaraningunapersonaogrupo. No se deberestringir el acceso al software. Un caso aparte son las restricciones por ley,como las de las exportaciones tecnológicas fuera de Estados Unidos a tercerospaíses. Si existen restricciones de este tipo, hay que mencionarlas.6)Nodebediscriminarcamposlaborales. El software puede utilizarse encualquier ambiente de trabajo, aunque no haya estado pensado para él. Otralectura es permitir fines comerciales; nadie puede impedir que el software seutilice con fines comerciales.7)Lalicenciaesaplicableatodoelmundo que reciba el programa.8)Sielsoftwareformapartedeproductomayor,debepermanecerconlamismalicencia. Esto controla que no se separen partes para formar softwarepropietario (de forma no controlada). En el caso de software propietario, hayque informar que hay partes (y cuáles) de software de código abierto.9)Lalicencianodeberestringirningúnsoftwareincorporadoodistribui-doconjuntamente, o sea, incorporarlo no debe suponer ninguna barrera paraotro producto de software distribuido conjuntamente. Este es un punto po-lémico, ya que parece contradecirse con el anterior. Básicamente, dice quecualquiera puede coger software de código abierto y añadirlo al suyo sin queafecte a las condiciones de su licencia (por ejemplo, propietaria), aunque síque, según el punto anterior, tendría que informar que existen partes de có-digo abierto.10)Lalicenciatienequesertecnológicamenteneutra. No deben mencio-narse medios de distribución únicos, o excluirse posibilidades. Por ejemplo,no puede limitarse (por licencia) que se haga la distribución en forma de CD,ftp o mediante web.La licencia que traiga el programa tiene que cumplir las especificaciones an-teriores para que el programa se considere de código abierto. La organizaciónOSI se encarga de comprobar que las licencias cumplen las especificaciones.NotaEsta definición de códigoabierto no es por sí misma unalicencia de software, sino másbien una especificación de quérequisitos debería cumplir unalicencia de software de códigoabierto.\nGNUFDL • PID_00167539 11 Introducción al sistema operativo GNU/LinuxEn la página web de Open Source Licenses se puede encontrar la lista de laslicencias [OSIa], siendo una de las más famosas y utilizadas las GPL (GNU Pu-blic Licenses).Bajo GPL, el software puede ser copiado y modificado, pero las modificacionesdeben hacerse públicas bajo la misma licencia. Y se impide que el código semezcle con código propietario, para evitar así que el código propietario se hagacon partes abiertas. Existe una licencia LGPL que es prácticamente igual, peropermite que software con esta licencia sea integrado en software propietario.Un ejemplo clásico es la biblioteca (library) C de Linux (con licencia LGPL). Siésta fuera GPL, sólo podría desarrollarse software libre, con la LGPL se permiteusarlo para desarrollar software propietario.Muchos proyectos de software libre, o con parte de código abierto y partepropietario, tienen su propia licencia: Apache (basada en la BSD), Mozilla (MPLy NPL de Netscape), etc. Básicamente, a la hora de poner el software comoopen source podemos poner nuestra propia licencia que cumpla la definiciónanterior (de código abierto), o podemos escoger licenciar bajo una licencia yaestablecida o, como en el caso de la GPL, nos obliga a que nuestra licenciatambién sea GPL.Una vez vistos los conceptos de código abierto y sus licencias, nos queda portratar hastaquépuntoesrentableparaunaempresatrabajaroproducircódigoabierto. Si no fuera atrayente para las empresas, perderíamos a la veztanto un potencial cliente como uno de los principales productores de soft-ware.El código abierto es también atrayente para las empresas, con un modelode negocio donde se prima el valor añadido al producto.En el código abierto existen diferentes rentabilidades atrayentes de cara a lasempresas:a)Para las empresas desarrolladoras de software, se crea un problema: ¿cómoes posible ganar dinero sin vender un producto? Se gasta mucho dinero endesarrollar un programa y después es necesario obtener beneficios. Bien, larespuesta no es simple, no se puede conseguir con cualquier software, la ren-tabilidad se encuentra en el tipo de software que puede generar beneficios másallá de la simple venta. Normalmente, hay que hacer un estudio de si la apli-cación se tornará rentable al desarrollarla como software abierto (la mayoríasí que lo hará), basándose en las premisas de que tendremos un descenso degasto en desarrollo (la comunidad nos ayudará), reducción de mantenimientoo corrección de errores (la comunidad puede ofrecer esto muy rápido), y teneren cuenta el aumento de número de usuarios que nos proporcionará el códigoNota[OSIa] OSI. Listado de licen-cias Open Source.http://www.opensource.org/li-censes/index.html\nGNUFDL • PID_00167539 12 Introducción al sistema operativo GNU/Linuxabierto, así como las necesidades que tendrán de nuestros servicios de apoyoo documentación. Si la balanza es positiva, entonces será viable prescindir delos ingresos generados por las ventas.b)Aumentarlacuotadeusuarios.c)Obtenermayorflexibilidaddedesarrollo; cuantas más personas intervie-nen, más gente habrá para detectar errores.d)Losingresos en su mayor parte vendrán por el lado del apoyo, formaciónde usuarios y mantenimiento.e)Enempresasqueutilizansoftware hay que considerar muchos parámetrosa la hora de escoger el software para el desarrollo de las tareas; cabe tener encuenta cosas como rendimiento, fiabilidad, seguridad, escalabilidad y costemonetario. Y aunque parece que el código abierto ya supone de por sí unaelección por el coste económico, hay que decir que existe software abiertoque puede competir con (o incluso superar) el propietario en cualquiera de losotros parámetros. Además, hay que vigilar mucho con las opciones o sistemaspropietarios de un único fabricante; no podemos depender únicamente deellos (podemos recordar casos, en otros ámbitos, como los vídeos beta de Sonyfrente a VHS, o en los PC la arquitectura MicroChannel de IBM). Tenemos queevitar el uso de monopolios, con lo que éstos suponen: falta de competenciaen los precios, servicios caros, mantenimiento caro, poca (o nula) variedad deopciones, etc.f)Paralosusuariosparticulares ofrece gran variedad de software adaptadoa tareas comunes, ya que buena parte del software ha sido pensado e imple-mentado por personas que querían hacer esas mismas tareas pero no encon-traban el software adecuado. En el caso del usuario particular, un parámetromuy importante es el coste del software, pero la paradoja es que en el usuariodoméstico es donde se hace más uso de software propietario. Normalmente,los usuarios domésticos hacen uso de productos de software con copias ilega-les. Algunas estadísticas recientes indican índices del 60-70% de copias ilegalesdomésticas en algunos países. El usuario siente que sólo por tener el ordenadordoméstico PC ya tiene derecho a disponer de software para usarlo. En estoscasos estamos bajo situaciones ilegales que, aunque no han sido ampliamen-te perseguidas, pueden serlo en su día, o bien se intentan controlar por siste-mas de licencias (o activaciones de productos). Además, esto tiene unos efec-tos perjudiciales indirectos sobre el software libre, debido a que si los usuarioshacen un uso amplio de software propietario, esto obliga a quien se quieracomunicar con ellos, ya sean bancos, empresas o administraciones públicas, ahacer uso del mismo software propietario, y ellos sí que abonan las licencias alos productos. Una de las batallas más importantes para el software libre es laposibilidad de captar a los usuarios domésticos, lo que se denomina mercadodesktop (o escritorio), referido al uso doméstico o de oficina en las empresas.NotaLas copias ilegales domésticastambién son denominadas aveces copias piratas.\nGNUFDL • PID_00167539 13 Introducción al sistema operativo GNU/Linuxg) Por último, losEstados, como caso particular, pueden obtener beneficiosimportantes del software de código abierto, ya que pueden disponer de softwa-re de calidad a precios ridículos comparados con el enorme gasto de licenciasde software propietario (miles o decenas de miles). Además de que el softwarede código abierto permite integrar fácilmente a las aplicaciones, hay que teneren cuenta cuestiones culturales (de cada país) como, por ejemplo, la lengua.Este último caso es bastante problemático, ya que en determinadas regiones,estados pequeños con lengua propia, los fabricantes de software propietario seniegan a adaptar sus aplicaciones, o instan a que se les pague por hacerlo.\nGNUFDL • PID_00167539 14 Introducción al sistema operativo GNU/Linux2. UNIX. Un poco de historiaComo antecesor de nuestros sistemas GNU/Linux [Sta], vamos a recordar unpoco la historia de UNIX [Sal94] [Lev]. En origen, Linux se pensó como unclon de Minix (una implementación académica de UNIX para PC) y de algu-nas ideas desarrolladas en los UNIX propietarios. Pero, a su vez, se desarrollóen código abierto, y con orientación a los PC domésticos. Veremos, en esteapartado dedicado a UNIX y en el siguiente, dedicado a GNU/Linux, cómoesta evolución nos ha llevado hasta los sistemas GNU/Linux actuales que pue-den competir con cualquier UNIX propietario y que están disponibles paraun amplio número de arquitecturas hardware, desde el simple PC hasta lossupercomputadores.Linux puede ser utilizado en un amplio rango de máquinas. En la lis-ta TOP500 de los supercomputadores más rápidos pueden encontrarsevarios supercomputadores con GNU/Linux: por ejemplo, el MareNos-trum, en el Barcelona Supercomputing Center, un cluster diseñado porIBM, con 10240 CPUs PowerPC/Cell con sistema operativo GNU/Linux(adaptado para los requerimientos de tales máquinas). En las estadísti-cas de la lista podemos observar que los supercomputadores con GNU/Linux ocupan, en general, más de un 75% de la lista.UNIX se inició hacia el año 1969 en los laboratorios BTL (Bell Telephone Labs)de ATT. Éstos se acababan de retirar de la participación de un proyecto lla-mado MULTICS, cuyo objetivo era crear un sistema operativo con el cual ungran ordenador pudiera dar cabida a un millar de usuarios simultáneos. Eneste proyecto participaban los BTL, General Electric y el MIT. Pero falló, enparte, por ser demasiado ambicioso para su época.Mientras se desarrollaba este proyecto, dos ingenieros de los BTL que partici-paban en MULTICS, KenThompsonyDennisRitchie, encontraron un or-denador que no estaba utilizando nadie, un DEC PDP7, que sólo tenía un en-samblador y un programa cargador. Thompson y Ritchie desarrollaron comopruebas (y a menudo en su tiempo libre) partes de UNIX, un programa ensam-blador (del código máquina) y el núcleo rudimentario del sistema operativo.Ese mismo año, 1969, Thompson tuvo la idea de escribir un sistema de ficherospara el núcleo creado, de manera que se pudiesen almacenar ficheros de formaordenada en un sistema de directorios jerárquicos. Después de unas cuantasdiscusiones teóricas (que se alargaron unos dos meses) se implementó el siste-ma en un par de días. A medida que se avanzaba en el diseño del sistema, en elcual se incorporaron algunos ingenieros más de los BTL, la máquina originalNotaPodemos ver la lista TOP500de los supercomputadores másrápidos en:http://www.top500.org\nGNUFDL • PID_00167539 15 Introducción al sistema operativo GNU/Linuxse les quedó pequeña, y pensaron en pedir una nueva (en aquellos días costa-ban cerca de 100.000 dólares, era una buena inversión). Tuvieron que inven-tarse una excusa (ya que el sistema UNIX era un desarrollo en tiempo libre)y dijeron que la querían para crear un nuevo procesador de texto (aplicaciónque daba dinero en aquellos tiempos). Se les aprobó la compra de una PDP11.UNIX se remonta al año 1969, así que cuenta con más de cuarenta añosde tecnologías desarrolladas y utilizadas en todo tipo de sistemas.Cuando les llegó la máquina, sólo estaba la CPU y la memoria, pero no el disconi el sistema operativo. Thompson, sin poder esperar, diseñó un disco RAM enmemoria y utilizó la mitad de la memoria como disco y la otra para el sistemaoperativo que estaba diseñando. Una vez llegó el disco, se siguió trabajandotanto en UNIX como en el procesador de textos prometido (la excusa). El pro-cesador de textos fue un éxito (se trataba de Troff, un lenguaje de edición queposteriormente fue utilizado para crear las páginas man de UNIX), y los BTLcomenzaron a utilizar el rudimentario UNIX con el nuevo procesador de tex-to, de manera que se convirtieron en el primer usuario de UNIX.En aquellos momentos comenzaron a presentarse varios principios filosóficosde UNIX [Ray02a]:• Escribir programas para hacer una cosa y hacerla bien.• Escribir programas para que trabajaran juntos.• Escribir programas para que manejaran flujos de texto.Otra idea muy importante radicó en que UNIX fue uno de los primeros siste-maspensadosparaserindependientedelaarquitecturahardware, y queha permitido portarlo con éxito a un gran número de arquitecturas hardwarediferentes.La necesidad de documentar lo que se estaba haciendo, ya que había usuariosexternos, dio lugar en noviembre de 1971 al UNIX Programmers Manual, quefirmaron Thompson y Richie. En la segunda edición (junio de 1972), denomi-nada V2 (se hacía corresponder la edición de los manuales con el número deversión UNIX), se decía que el número de instalaciones de UNIX ya llegaba alas diez. Y el número siguió creciendo hasta cincuenta en la V5.Entonces se decidió (finales de 1973) presentar los resultados en un congresode sistemas operativos. Y como resultado, varios centros informáticos y uni-versidades pidieron copias de UNIX. ATT no daba apoyo ni mantenimien-to de UNIX, lo que hizo que los usuarios necesitaran unirse y compartir susconocimientos para formar comunidades de usuarios de UNIX. ATT decidióNotaVed: http://www.usenix.org\nGNUFDL • PID_00167539 16 Introducción al sistema operativo GNU/Linuxceder UNIX a las universidades, pero tampoco les daba apoyo ni corrección deerrores. Los usuarios comenzaron a compartir sus ideas, información progra-mas, bugs, etc. Se creó una asociación denominada USENIX como agrupaciónde usuarios de UNIX. Su primera reunión (mayo de 1974) tuvo una docenade asistentes.Una de las universidades que había obtenido una licencia de UNIX fue la Uni-versidad de California en Berkeley, donde había estudiado Ken Thompson. En1975, Thompson volvió como profesor allí, y trajo consigo la última versiónde UNIX. Dos estudiantes graduados recién incorporados, Chuck Haley y BillJoy (que posteriormente cofundó SUN Microsystems) comenzaron a trabajaren una implementación de UNIX.Una de las primeras cosas que les decepcionó eran los editores. Joy perfeccio-nó un editor llamado ex, hasta transformarlo en el vi, un editor visual a pan-talla completa. Y los dos escribieron un compilador de lenguaje Pascal, queañadieron a UNIX. Hubo cierta demanda de esta implementación de UNIX,y Joy lo comenzó a producir como el BSD, Berkeley Software Distribution (oUNIX BSD).BSD (en 1978) tenía una licencia particular sobre su precio: decía que estabaacorde con el coste de los medios y la distribución que se tenía en ese mo-mento. Así, los nuevos usuarios acababan haciendo algunos cambios o incor-porando cosas, vendiendo sus copias rehechas y, al cabo de un tiempo, loscambios se incorporaban en la siguiente versión de BSD.Joy también realizó en su trabajo del editor vi algunas aportaciones más, co-mo el tratamiento de los terminales de texto, de manera que el editor fueraindependiente del terminal en que se utilizase. Creó el sistema termcap comointerfaz genérica de terminales con controladores para cada terminal concre-to, de manera que en la realización de los programas ya nos podíamos olvidarde los terminales concretos y utilizar la interfaz genérica.Un siguiente paso fue adaptarlo a diferentes arquitecturas. Hasta el año 1977sólo se podía ejecutar en máquinas PDP; en ese año se comenzaron a haceradaptaciones para máquinas del momento, como las Interdata e IBM. La ver-sión 7 (V7 en junio de 1979) de UNIX fue la primera portable. Esta versióntrajo muchos avances, ya que contenía awk, lint, make, uucp. El manual ya te-nía 400 páginas (más dos apéndices de 400 cada uno). Se incluía también elcompilador de C diseñado en los BTL por Kernighan y Ritchie, que se habíacreado para reescribir la mayor parte de UNIX, inicialmente en ensamblador yluego pasado a C con las partes de ensamblador que fuesen sólo dependientesde la arquitectura. Se incluyeron también una shell mejorada (shell de Bourne)y comandos como find, cpio y expr.\nGNUFDL • PID_00167539 17 Introducción al sistema operativo GNU/LinuxLa industria UNIX comenzó también a crecer; empezaron a aparecer versiones(implementaciones) de UNIX por parte de compañías, como Xenix; hubo unacolaboración entre Microsoft (en los orígenes también trabajó con versionesde UNIX) y SCO para máquinas Intel 8086 (el primer PC de IBM); aparecieronnuevas versiones BSD de Berkeley...Pero surgió un nuevo problema cuando ATT se dio cuenta de que UNIX eraun producto comercial valioso. En la licencia de la V7 se prohibió el estudio encentros académicos, para proteger el secreto comercial. Muchas universidadesutilizaban hasta el momento el código fuente de UNIX para docencia de sis-temas operativos, y dejaron de usarlo para dar sólo teoría.En cualquier caso, cada uno solucionó el problema a su modo. En Ámsterdam,AndrewTanenbaum (autor de prestigio de libros de teoría de sistema operati-vos) decidió escribir desde el principio un nuevo sistema operativo compatiblecon UNIX sin utilizar una sola línea de código de ATT; llamó a este nuevooperativo Minix. Éste sería el que, posteriormente, le serviría en 1991 a unestudiante finlandés para crear su propia versión de UNIX, que llamó Linux.Bill Joy, que continuaba en Berkeley desarrollando BSD (ya estaba en la ver-sión 4.1), decidió marcharse a una nueva empresa llamada SUN Microsystems,en la cual acabó los trabajos del 4.2BSD, que después acabaría modificandopara crear el UNIX de SUN, el SunOS (hacia 1983). Cada empresa comenzóa desarrollar sus versiones: IBM con AIX, DEC con Ultrix, HP con HPUX, Mi-crosoft/SCO con Xenix, etc. UNIX comenzó (desde 1980) su andadura comer-cial, ATT sacó una ultima versión llamada UNIX SystemV (SV), de la cualderivan, junto con los 4.xBSD, los UNIX actuales, ya sea de la rama BSD o dela SystemV. La SV tuvo varias revisiones, por ejemplo, la SV Release 4 fue unade las más importantes. La consecuencia de estas últimas versiones es que máso menos todos los UNIX existentes se adaptaron uno al otro; en la prácticason versiones del SystemV R4 de ATT o del BSD de Berkeley, adaptadas porcada fabricante. Algunos fabricantes lo especifican y dicen que su UNIX es detipo BSD o SystemV, pero la realidad es que todos tienen un poco de las dos,ya que posteriormente se hicieron varios estándares de UNIX para intentaruniformizarlos. Entre ellos encontramos los IEEE POSIX, UNIX97, FHS, etc.Con el tiempo, UNIX se dividió en varias ramas de sistema, siendo lasdos principales la que derivaba del ATT UNIX o SystemV, y la de laUniversidad de California, el BSD. La mayoría de UNIX actuales derivade uno u otro, o son una mezcla de los dos.Pero ATT en aquellos momentos (SVR4) pasó por un proceso judicial pormonopolio telefónico (era la principal, si no la única, compañía telefónica enEstados Unidos), que hizo que se dividiera en múltiples empresas más peque-ñas, y los derechos de UNIX originales comenzaron un baile de propietarios\nGNUFDL • PID_00167539 18 Introducción al sistema operativo GNU/Linuximportante: en 1990 los tenían a medias el Open Software Foundation (OSF) yUNIX International (UI), después, UNIX Systems Laboratories (USL), que de-nunció a la Universidad de Berkeley por sus copias del BSD, pero perdió, ya quela licencia original no imponía derechos de propiedad al código de UNIX. Mástarde, los derechos UNIX se vendieron a la empresa Novell; ésta cedió parte aSCO (que ya disponía de algunos cedidos por Microsoft desde sus productosXenix), y hoy en día aún no está muy claro quién los tiene finalmente: pordiferentes frentes los reclaman Novell, la OSF y SCO.Un ejemplo de esta problemática fue el caso (2003-10) de la compañía SCO,que puso una demanda legal a IBM porque ésta, según SCO, había cedido par-te del código UNIX a versiones del kernel Linux, que supuestamente incluyenalgún código UNIX original. El resultado a día de hoy es que el asunto aúncontinúa con cierta vigencia en los tribunales, con SCO convertida en un pa-ria de la industria informática que amenaza a los usuarios Linux, IBM y otrosUNIX propietarios, con la afirmación de que tienen los derechos UNIX origi-nales, y de que los demás tienen que pagar por ellos. Aunque en los últimosmovimientos judiciales, parece ser que finalmente Novell es la que posee losderechos de propiedad intelectual de UNIX. Habrá que ver cómo evolucionaeste caso, y el tema de los derechos UNIX con él.NotaPodéis ver la opinión de la FSFsobre el caso SCO en http://www.gnu.org/philosophy/sco/sco.html\nGNUFDL • PID_00167539 19 Introducción al sistema operativo GNU/LinuxFigura 1. Resumen histórico de varias versiones UNIXEl panorama actual de UNIX ha cambiado mucho desde la aparicióndeLinux(1991), que a partir de los años 1995-99 comenzó a convertirse en una alter-nativa seria a los UNIX propietarios, por la gran cantidad de plataformas hard-ware que soporta y el amplio apoyo de la comunidad internacional y empresasen el avance. Hay diferentes versiones UNIX propietarias que siguen sobrevi-viendo en el mercado, tanto por su adaptación a entornos industriales o porser el mejor operativo existente en el mercado, como porque hay necesidadesque sólo pueden cubrirse con UNIX y el hardware adecuado. Además, algu-nos de los UNIX propietarios todavía son mejores que GNU/Linux en cuantoa fiabilidad y rendimiento, aunque cada vez acortando distancias, ya que lasmismas empresas que tienen sus UNIX propietarios se interesan cada vez másen GNU/Linux, y aportan parte de sus desarrollos para incorporarlos a Linux.Es de esperar una muerte más o menos lenta de las versiones propietarias deUNIX, hacia distribuciones basadas en Linux de los fabricantes, adaptadas asus equipos.\nGNUFDL • PID_00167539 20 Introducción al sistema operativo GNU/LinuxUn panorama general de estas empresas:• SUN: dispone de su implementación de UNIX llamada Solaris (evolucióndel SunOS). Comenzó como un sistema BSD, pero ahora es mayoritaria-mente SystemV y partes de BSD. Es muy utilizado en las máquinas Sun conarquitectura Sparc, y en máquinas multiprocesador (hasta unos 64 proce-sadores). Promocionan GNU/Linux como entorno de desarrollo para Java,y dispusieron de una distribución de GNU/Linux denominada Java Desk-top System, que tuvo una amplia aceptación en algunos países. Además,comenzó a usar Gnome como escritorio, y ofrece apoyo financiero a variosproyectos como Mozilla Firefox, Gnome y OpenOffice. También cabe des-tacar la iniciativa tomada con su última versión de su UNIX Solaris, paraliberar su código casi totalmente, en la versión Solaris 10, creando unacomunidad para las arquitecturas intel y Sparc, denominada OpenSolaris,que ha permitido la creación de distribuciones libres de Solaris. Ademástenemos que señalar iniciativas (2006) para liberar la plataforma Java bajolicencias GPL, como el proyecto OpenJDK. Asimismo, la adquisición deSun Microsystems por parte de Oracle (2009) está causando cierta incerti-dumbre en algunos de estos productos y/o tecnologías, por no haber defi-nido la compañía una estrategia clara para ellos.• IBM: tiene su versión de UNIX propietaria denominada AIX, que sobrevi-ve en algunos segmentos de gama alta de estaciones de trabajo y servido-res de la firma. Por otra parte, presta apoyo firme a la comunidad OpenSource, promoviendo entornos de desarrollo libres (eclipse.org) y tecno-logías Java para Linux, incorpora Linux a sus grandes máquinas y diseñacampañas publicitarias (marketing) para promocionar Linux. Aparte estáteniendo una repercusión importante en la comunidad, por el ambientejudicial de su caso defendiéndose de la firma SCO, que la acusa de viola-ción de propiedad intelectual UNIX, por haber, supuestamente, integradocomponentes en GNU/Linux.• HP: tiene su UNIX HPUX, pero da amplio soporte a Linux, tanto en formade código en Open Source como instalando Linux en sus máquinas. Sedice que es la compañía que ha ganado más dinero con Linux.• SGI: Silicon Graphics tiene un UNIX llamado IRIX para sus máquinas grá-ficas basadas en arquitecturas MIPS. En el 2006 cambió su estrategia ha-cia plataformas Intel Xeon/AMD Opteron vendiendo máquinas con Win-dows, y últimamente la mayoría de los sistemas con versiones comercialesde GNU/Linux, como las producidas por Red Hat y Novell SUSE. A la co-munidad Linux le ofrece soporte de OpenGL (tecnología de gráficos 3D)y de diferentes sistemas de ficheros (XFS) y control de dispositivos perifé-ricos.• Apple: se incorporó recientemente (a partir de mediados de los noventa)al mundo UNIX, cuando decidió sustituir su operativo por una varianteNotaMuchas de las empresas quedisponen de UNIX propieta-rios participan en GNU/Linuxy ofrecen algunos de sus desa-rrollos a la comunidad.\nGNUFDL • PID_00167539 21 Introducción al sistema operativo GNU/LinuxUNIX. El núcleo de sus nuevos operativos, llamado XNU (combinado enel sistema operativo Darwin) proviene de una versión 4.4BSD, combina-da con kernel Mach. Este núcleo Open Source será el que, sumado a unasinterfaces gráficas muy potentes, dé a Apple su sistema operativo MacOSX. Está considerado hoy en día como uno de los mejores UNIX y, comomínimo, uno de los más bellos en aspecto gráfico. También emplea grancantidad de software provenientes del proyecto GNU como utilidades desistema y librerías y compiladores de desarrollo (GNU gcc).• DistribuidoresLinux: tanto comerciales como organizaciones, mencio-naremos a empresas como Red Hat, SuSe, Mandriva (previamente conoci-da como Mandrake), y organizaciones/comunidades no comerciales comoDebian, Fedora, OpenSUSE, etc... Entre éstas (las distribuciones con mayordespliegue) y las más pequeñas, se llevan el mayor desarrollo de GNU/Li-nux, y tienen el apoyo de la comunidad Linux y de la FSF con el softwareGNU, además de recibir contribuciones de las citadas empresas.• BSD: aunque no sea una empresa como tal, mencionaremos cómo des-de Berkeley y otros intermediarios se continúa el desarrollo de las versio-nes BSD, así como otros proyectos libres, clones de BSD, como los operati-vos FreeBSD, netBSD, OpenBSD (el UNIX considerado más seguro), Trus-tedBSD, etc., que también, más tarde o más temprano, suponen mejoras oincorporaciones de software a Linux. Además, una aportación importanteen la línea BSD es el kernel XNU (usado en Darwin) proveniente de 4.4BSD,y que desarrolló Apple como núcleo de código abierto de su sistema ope-rativo MacOS X y su sistema IphoneOS para móviles.• Google: ha tenido una relación bastante importante con la comunidaddesde sus inicios como buscador en Internet, ya que toda su infraestructu-ra de clusters en diferentes centros de datos, a veces conocida como Goo-gle Cluster, está basada en múltiples servidores corriendo GNU/Linux consistemas de ficheros especialmente diseñados para grandes volúmenes dedatos. Asimismo, entró con especial fuerza en el mundo del desarrollo pa-ra plataformas móviles, con la plataforma Android, una plataforma conkernel Linux, y capas software basadas en GNU y Java.• Microsoft: Siempre ha tenido una relación difícil con el código abiertoabierto/libre, al que ve como un competidor y un peligro potencial. Nor-malmente, ha supuesto más para la comunidad un entorpecimiento en eldesarrollo de UNIX y GNU/Linux, ya que ha puesto trabas con incompa-tibilidades en diferentes tecnologías, y no dispone de una participacióndirecta en el mundo UNIX/Linux. Aunque en sus orígenes desarrolló Xe-nix (1980) para PC, a partir de una licencia ATT de UNIX, que no vendiódirectamente, pero sí lo hizo por medio de intermediarios, como SCO, quese hizo con su control en 1987 y la renombró como SCO UNIX (1989).Como nota curiosa, posteriormente compró parte de derechos de la licen-cia UNIX a SCO (ésta los había obtenido a su vez por medio de Novell).NotaCarta abierta de Novell ala comunidad GNU/Linuxen http://www.novell.com/linux/microsoft/community_open_letter.html\nGNUFDL • PID_00167539 22 Introducción al sistema operativo GNU/LinuxNo están claros los motivos de Microsoft a la hora de realizar esta adqui-sición, aunque algunos sugieren que existe alguna relación con el hechode proporcionar apoyo a SCO en su juicio contra IBM. Además, reciente-mente (2006), Microsoft llegó a acuerdos con Novell (actual proveedora dela distribución SuSe y la comunidad OpenSuse), en una serie de acuerdosbilaterales para promocionar empresarialmente ambas plataformas. Peroparte de la comunidad GNU/Linux se mantiene escéptica, por las posiblesimplicaciones sobre la propiedad intelectual de Linux, y los temas que po-drían incluir problemas judiciales por uso de patentes.Otra anécdota histórica curiosa (2002) es que, junto con una empresa llamadaUniSys, Microsoft se dedicó a realizar marketing de cómo convertir sistemasUNIX a sistemas Windows. Y aunque el objetivo podía ser más o menos loable,lo curioso era que el servidor original de la web empresarial estaba en unamáquina FreeBSD con Apache. En ocasiones, también paga a algunas empresasindependientes (algunos opinan que bastante poco) para que lleven a caboestudios de rendimiento comparativos entre UNIX/Linux y Windows (muchasde estas campañas, son vistas como F.U.D, ya que la mayoría de estas campañasno resisten un mínimo análisis técnico, mas allá del marketing empleado). Enlos últimos años parece que en Microsoft haya habido cierto acercamiento a lacomunidad Open Source, estableciendo diferentes comunidades OpenSource,para la integración y interrelación con productos GNU/Linux.NotaAlgunos portales de Microsoft relacionados con Open Source son http://port25.technet.com/ y http://www.microsoft.com/opensourceVed también la definición de FUD en Wikipedia, http://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt, y un caso concreto de FUD en http://news.cnet.com/2100-1001-872266.htmlComo resumen general, algunos comentarios que suelen aparecer en labibliografía UNIX apuntan a que UNIX es, técnicamente, un sistemasencillo y coherente diseñado con buenas ideas que se supieron llevar ala práctica, pero no hay que olvidar que algunas de estas ideas se consi-guieron gracias al apoyo entusiasta que brindó una gran comunidad deusuarios y desarrolladores que colaboraron entre sí, compartiendo unatecnología y gobernando su evolución.Y como la historia se suele repetir, en este momento la evolución y el entu-siasmo continúan con los sistemas GNU/Linux.\nGNUFDL • PID_00167539 23 Introducción al sistema operativo GNU/Linux3. Sistemas GNU/LinuxEn los primeros años, los usuarios de los primeros ordenadores personales nodisponían de muchos sistemas operativos donde elegir.El mercado de los ordenadores personales lo dominaba un DOS de Microsoft.Otra posibilidad eran los Mac de Apple, pero a unos precios desorbitados (encomparación) con el resto. La otra opción importante, aunque reservada agrandes (y caras) máquinas, era UNIX.Una primera opción que apareció fue MINIX (1984), creado desde cero porAndrew Tanenbaum, conelobjetivodeusarloparalaeducación, para en-señar diseño e implementación de sistemas operativos.MINIX fue pensado para ejecutarse sobre una plataforma Intel 8086, muy po-pular en la época porque era la base de los primeros IBM PC. La principalventaja de este operativo radicaba en su código fuente, accesible a cualquiera(12.000 líneas de código entre ensamblador y C), ya que estaba incluido enel libro docente de sistemas operativos de Tanenbaum [Tan87]. Pero MINIXera más una herramienta de enseñanza que un sistema eficaz pensado para elrendimiento o para actividades profesionales.En los noventa, la FSF (Free Software Foundation) y su proyecto GNU motivó amuchos programadores para promover el software de calidad y de distribuciónlibre. Y aparte de software de utilidades, se trabajaba en un núcleo (kernel) deoperativo denominado HURD, que llevaría varios años de desarrollo.Mientras, en octubre de 1991, un estudiante finlandés llamado Linus Torvaldspresentaría la versión 0.0.1 de su kernel de sistema operativo, que denominóLinux, orientado a máquinas Intel con 386, y lo ofreció bajo licencia GPL aforos de programadores y a la comunidad de Internet para que lo probaran y,si les gustaba, le ayudaran a su desarrollo. El entusiasmo fue tal que, en pocotiempo, había un gran número de programadores trabajando en el núcleo oen aplicaciones para él.Algunas de las características que diferenciaron a Linux de los sistemas de sutiempo y que siguen siendo aplicables, y otras heredadas de UNIX, podrían ser:a)Sistemaoperativodecódigoabierto: cualquiera puede disponer de susfuentes, modificarlas y crear nuevas versiones que poder compartir bajo lalicencia GPL (que, de hecho, lo convierte en un software libre).\nGNUFDL • PID_00167539 24 Introducción al sistema operativo GNU/Linuxb)Portabilidad: tal como el UNIX original, Linux está pensado para depen-der muy poco de una arquitectura concreta de máquina. ConsecuentementeLinux es, en su mayor parte, independiente de la máquina de destino y puedeportarse a casi cualquier arquitectura que disponga de un compilador C co-mo el GNU gcc. Sólo restan algunas pequeñas partes de código ensambladory de algunos dispositivos dependientes de la máquina, que tienen que ser res-critas en cada nueva arquitectura. Gracias a esto, GNU/Linux es uno de lossistemas operativos que corre en mayor número de arquitecturas: Intel x86 yIA64, AMD x86 y x86_64, Sparc de Sun, MIPS de Silicon, PowerPC (Apple),IBM S390, Alpha de Compaq, m68k Motorola, Vax, ARM, HPPArisc...c)Kerneldetipomonolítico: el diseño del kernel está unido en una sola pieza,pero es conceptualmente modular en las diferentes tareas. Otra escuela de di-seño de operativos propone los microkernel (un ejemplo es el proyecto Mach),donde los servicios se implementan como procesos aparte, comunicados porun (micro) kernel más básico. Linux se decidió como monolítico, porque esdifícil extraer buen rendimiento de los microkernels (resulta un trabajo bastan-te duro y complejo). Por otra parte, el problema de los monolíticos es el creci-miento; cuando se vuelven muy grandes se vuelven intratables en el desarro-llo; esto se intentó solucionar con los módulos de carga dinámica.d)Módulosdinámicamentecargables: permiten poner partes del sistemaoperativo, como filesystems, o controladores de dispositivos, como porcionesexternas que se cargan (o enlazan) con el kernel en tiempo de ejecución bajodemanda. Esto permite simplificar el kernel y ofrecer estas funcionalidades co-mo elementos que se pueden programar por separado. Con este uso de módu-los, se podría considerar a Linux como un kernel mixto, ya que es monolítico,pero ofrece una serie de módulos que complementan el kernel (aproximaciónparecida a algunos conceptos de microkernel).e)DesarrollodelsistemaporunacomunidadvinculadaporInternet: lossistemas operativos nunca habían tenido un desarrollo tan amplio y disperso;no suelen salir de la compañía que los elabora (en el caso propietario) o de unpequeño conjunto de instituciones académicas y laboratorios que colaboranpara crear uno. El fenómeno de la comunidad Linux permite que cada unocolabore en la medida que el tiempo y sus propios conocimientos se lo permi-tan. El resultado son de cientos a miles de desarrolladores para Linux. Además,por su naturaleza de sistema de código fuente abierto, Linux es un laboratorioideal para probar ideas de sistemas operativos al mínimo coste; se puede im-plementar, probar, tomar medidas y, si funciona, añadir la idea al kernel.Los proyectos se sucedieron y –en el inicio de Linus con el kernel– a la gente dela FSF, con el software de utilidad GNU y, sobre todo, con su compilador de C(GCC), se les unieron otros proyectos importantes como las XFree/Xorg (unaversión PC de las X Window), y proyectos de escritorio como KDE y Gnome.Y el desarrollo de Internet con proyectos como el servidor web Apache, el na-vegador Mozilla Firefox, o las bases de datos MySQL y PostgreSQL, acabaronNotaProyecto original Mach:http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html\nGNUFDL • PID_00167539 25 Introducción al sistema operativo GNU/Linuxpor dar al kernel inicial Linux el recubrimiento de aplicaciones suficiente paraconstruir los sistemas GNU/Linux y competir en igualdad de condiciones conlos sistemas propietarios. Y convertir a los sistemas GNU/Linux en el paradig-ma del software de fuente abierta (Open Source).Los sistemas GNU/Linux se han convertido en la punta de lanza de lacomunidad Open Source, por la cantidad de proyectos que se han po-dido aglutinar y llevar a buen término.El nacimiento de nuevas empresas, que crearon distribuciones GNU/Linux(empaquetamientos de kernel + aplicaciones) y le dieron apoyo, como Red Hat,Mandrake, SuSe, contribuyó a introducir GNU/Linux en las empresas reacias,y a comenzar el imparable crecimiento que vivimos actualmente.Comentaremos también la discusiónsobreladenominacióndelossistemascomoGNU/Linux. El término Linux para identificar el sistema operativo conque se trabaja es de común uso (para simplificar el nombre), aunque en opi-nión de algunos desmerece el trabajo de la FSF con el proyecto GNU, el cualha proporcionado las principales herramientas del sistema. Aun así, el térmi-no Linux, para referirse al sistema operativo completo, es ampliamente usadocomercialmente.En general, para seguir una denominación más acorde a la participación dela comunidad, se utiliza el término Linux, cuando nos estamos refiriendo só-lo al núcleo (kernel) del sistema operativo. Esto crea cierta confusión, ya quehay gente que habla de sistemas Linux o del sistema operativo Linux pa-ra abreviar. Cuando se trabaja con un sistema operativo GNU/Linux, se estátrabajando sobre una serie de software de utilidades, en gran parte fruto delproyecto GNU, sobre el núcleo Linux. Por lo tanto, el sistema es básicamenteGNU con un núcleo Linux.El proyecto GNU de la FSF tenía por objetivo crear un sistema operativo desoftware libre al estilo UNIX denominado GNU [Sta02].Linus Torvalds consiguió, en 1991, juntar su kernel Linux con las utilidadesGNU, cuando la FSF todavía no disponía de kernel. El kernel de GNU se deno-mina Hurd, y hoy en día se trabaja bastante en él, y ya existen algunas versio-nes beta de distribuciones de GNU/Hurd.Se calcula que, en una distribución GNU/Linux, hay un 28% de códigoGNU y un 3% que corresponde al código del kernel Linux; el porcentajerestante corresponde a código de terceros, ya sea de aplicaciones o deutilidades.NotaPodéis leer un artículo de Ri-chard Stallman sobre GNU yLinux en http://www.gnu.org/gnu/linux-and-gnu.html\nGNUFDL • PID_00167539 26 Introducción al sistema operativo GNU/LinuxPara destacar la contribución de GNU [FSF], podemos ver algunas de sus apor-taciones incluidas en los sistemas GNU/Linux:• El compilador de C y C++ (GCC)• El shell bash• El editor Emacs (GNU Emacs)• El intérprete postscript (GNU ghostscript)• La biblioteca C estándar (GNU C library, o también glibc)• El depurador (GNU gdb)• Makefile (GNU make)• El ensamblador (GNU assembler o gas)• El linker (GNU linker o gld)Los sistemas GNU/Linux no son los únicos que utilizan software GNU. Lossistemas BSD, por ejemplo, incorporan también utilidades GNU. Y algunosoperativos propietarios, como MacOS X (de Apple), también usan softwareGNU. El proyecto GNU ha producido software de alta calidad, que se ha idoincorporando a la mayor parte de las distribuciones de sistemas basadas enUNIX, tanto libres como propietarias.Es justo para todo el mundo reconocer el trabajo de cada uno denomi-nando GNU/Linux a los sistemas que trataremos.\nGNUFDL • PID_00167539 27 Introducción al sistema operativo GNU/Linux4. El perfil del administrador de sistemasLas grandes empresas y organizaciones dependen cada vez más de sus recursosde computación y de cómo éstos son administrados para adecuarlos a las ta-reas. El gran incremento de las redes distribuidas, con sus equipos servidores yclientes, ha creado una gran demanda de un nuevo perfil laboral: el llamadoadministrador de sistemas.El administrador de sistemas tiene una amplia variedad de tareas importantes.Los mejores administradores de sistema suelen ser bastante generalistas, tantoteórica como prácticamente. Pueden enfrentarse a tareas como realizar cablea-dos de instalaciones o reparar cables; instalar sistemas operativos o softwarede aplicaciones; corregir problemas y errores en los sistemas, tanto hardwarecomo software; formar a los usuarios, ofrecer trucos o técnicas para mejorarla productividad en áreas que pueden ir desde aplicaciones de procesamientode textos hasta áreas complejas de sistemas CAD o simuladores; evaluar eco-nómicamente compras de equipamiento de hardware y software; automatizarun gran número de tareas comunes, e incrementar el rendimiento general deltrabajo en su organización.Puede considerarse al administrador como un perfil de empleado queayuda a los demás empleados de la organización a aprovechar mejor ymás óptimamente los recursos disponibles, de forma que mejore todala organización.La relación con los usuarios finales de la organización puede establecerse dediferentes maneras: mediante la formación de usuarios o con ayuda directa enel caso de presentarse problemas (incidencias). El administrador es la personaencargada de que las tecnologías utilizadas por los usuarios funcionen adecua-damente, o en otras palabras, que los sistemas cumplan las expectativas de losusuarios, así como las tareas que éstos quieran realizar.Hace años, y aún actualmente, en muchas empresas u organizaciones no hayuna perspectiva clara del papel del administrador de sistemas. En los iniciosde la informática en la empresa (años ochenta y noventa), el administradorera visto en un principio como la persona entendida en ordenadores (el gu-rú) que se encargaba de las instalaciones de las máquinas y que vigilaba olas reparaba en caso de problemas. Era una especie de informático polivalenteque tenía que solucionar los problemas que fueran apareciendo. Su perfil decurrículum no era claro, ya que no necesitaba tener amplios conocimientossino sólo conocimientos básicos de una decena (como mucho) de aplicaciones(el procesador de texto, la hoja de cálculo, la base de datos, etc.), y algunos\nGNUFDL • PID_00167539 28 Introducción al sistema operativo GNU/Linuxconocimientos básicos de hardware eran suficientes para las tareas diarias. Así,cualquier simple entendido en el tema podía dedicarse a este trabajo, de ma-nera que no solían ser informáticos tradicionales, y muchas veces incluso sellegaba a una transmisión oral de los conocimientos entre algún administra-dor más antiguo en la empresa y el nuevo aprendiz.En aquella situación, nos encontrábamos de alguna manera en la prehistoriade la administración de sistemas (aunque hay personas que siguen pensandoque básicamente se trata del mismo trabajo).Hoy en día, en la época de Internet y de los servicios distribuidos, un admi-nistrador de sistemas es un profesional (con dedicación propia y exclusiva)que proporciona servicios en la arena del software y hardware de sistemas.El administrador tiene que llevar a cabo varias tareas que tendrán como des-tino múltiples sistemas informáticos, la mayoría heterogéneos, con objeto dehacerlos operativos para una serie de tareas.Así las cosas, los administradores necesitan tener unos conocimientos genera-les (teóricos y prácticos) de áreas muy diferentes, desde tecnologías de redes,sistemas operativos, aplicaciones de ámbitos distintos, programación básica enuna amplia variedad de lenguajes de programación, conocimientos amplios dehardware –tanto del ordenador como de los periféricos usados– y tecnologíasInternet, diseño de páginas web, bases de datos, etc. Y normalmente tambiénes buscado con el perfil de conocimientos básicos sobre el área de trabajo de laempresa, ya sea química, física, matemáticas, etc. No es de extrañar, entonces,que en una empresa de tamaño medio a grande se haya pasado del chapuzasde turno a un pequeño grupo de profesionales con amplios conocimientos,la mayoría con nivel académico universitario, con diferentes tareas asignadasdentro de la organización.El administrador debe dominar un rango amplio de tecnologías parapoder adaptarse a una multitud de tareas variadas, que pueden surgirdentro de la organización.Debido a la gran cantidad de conocimientos que debe tener, no es extrañoque aparezcan a su vez diferentes subperfiles de la tarea del administrador. Enuna gran organización puede ser habitual encontrar a los administradores desistemas operativos (UNIX, MacOS o Windows), que suelen ser diferentes alos orientados a administrador de bases de datos, administrador de copias deseguridad, administradores de seguridad informática, administradores encar-gados de atención a los usuarios, etc.En una organización más pequeña, varias o todas las tareas pueden estar asig-nadas a uno o pocos administradores. Los administradores de sistemas UNIX(o de GNU/Linux) serían una parte de estos administradores (cuando no el\nGNUFDL • PID_00167539 29 Introducción al sistema operativo GNU/Linuxadministrador que tendrá que hacer todas las tareas). Su plataforma de traba-jo es UNIX (o GNU/Linux en nuestro caso), y requiere de bastantes elemen-tos específicos que hacen este trabajo único. UNIX (y variantes) es un sistemaoperativo abierto y muy potente, y, como cualquier sistema software, exigecierto nivel de adecuación, configuración y mantenimiento en las tareas paralas que vaya a ser usado. Configurar y mantener un sistema operativo es unatarea amplia y seria, y en el caso de UNIX y nuestros GNU/Linux puede llegara ser bastante frustrante.Algunas áreas importantes por tratar son:a) Que el sistema sea muy potente también indica que habrá bastantes posi-bilidades de adaptarlo (configurarlo) a las tareas que queremos hacer. Habráque evaluar las posibilidades que se nos ofrecen y cuán adecuadas son paranuestro objetivo final.b) Un sistema abierto y ejemplo claro de ello es nuestro GNU/Linux, que nosofrecerá actualizaciones permanentes, tanto en la corrección de errores delsistema como en la incorporación de nuevas prestaciones. Y, evidentemente,todo esto tiene un impacto directo en costes de mantenimiento de las tareasde administración.c) Los sistemas se pueden utilizar para tareas de coste crítico, o en puntoscríticos de la organización, donde no se pueden permitir fallos importantes, oque ralenticen o paren la marcha de la organización.d) Las redes son actualmente un punto muy importante (si no el que más),pero también es un área de problemas potenciales muy crítica, tanto por supropia naturaleza distribuida como por la complejidad del sistema para en-contrar, depurar y solucionar los problemas que se puedan presentar.e) En el caso particular de los sistemas UNIX, y en nuestros GNU/Linux, laabundancia, tanto de versiones como de distribuciones diferentes del sistema,incorpora problemas adicionales a la administración, ya que es necesario co-nocer las problemáticas y diferencias de cada versión y distribución.En particular, las tareas de administración del sistema y de la red suelen pre-sentar particularidades diferentes, y a veces se tratan por separado (o por ad-ministradores diferentes). Aunque también pueden verse como dos caras delmismo trabajo, con el sistema propiamente dicho (máquina y software) por unlado, y el ambiente donde el sistema (el entorno de red) convive, por el otro.\nGNUFDL • PID_00167539 30 Introducción al sistema operativo GNU/LinuxPor administración de la red se entiende la gestión del sistema comoparte de la red, y hace referencia a los servicios o dispositivos cercanosnecesarios para que la máquina funcione en un entorno de red; no cu-bre dispositivos de red como los switchs, bridges o hubs u otros disposi-tivos de red, pero unos conocimientos básicos son imprescindibles parafacilitar las tareas de administración.En estos materiales y los siguientes, correspondientes a la asignatura avanzadade administración, cubriremos primero aquellos aspectos locales del propiosistema y básicos de red, y en una segunda asignatura (Administración avan-zada) veremos las tareas de administración de red y despliegue de servicios.Ya hemos apuntado el problema de determinar qué es exactamente un admi-nistrador de sistemas, pues en el mercado laboral informático no está demasia-do claro. Era común pedir administradores de sistemas según categorías (esta-blecidas en las empresas) de programador o ingenieros de software, las cualesno se adecuan correctamente.Un programador es, básicamente, un productor de código. En este caso, unadministrador obtendría poca producción, dado que en algunas tareas puedeser necesario, pero en otras no. Normalmente, será deseable que el adminis-trador posea más o menos conocimientos dependiendo de la categoría laboral:a) Alguna carrera o diplomatura universitaria, preferible en informática, o enalgún campo directamente relacionado con la empresa u organización.b) Suele pedirse de uno a tres años de experiencia como administrador (a no serque el puesto sea para ayudante de uno ya existente). La experiencia tambiénpuede ampliarse de tres a cinco años.c) Familiaridad o conocimientos amplios de entornos de red y servicios. Pro-tocolos TCP/IP, servicios de ftp, telnet, ssh, http, nfs, nis, ldap, etc.d) Conocimientos de lenguajes de script para prototipado de herramientas oautomatización rápida de tareas (por ejemplo, shell scripts, Perl, tcl, Python,etc.) y experiencia en programación de un amplio rango de lenguajes (C, C++,Java, Assembler, etc.).e) Puede pedirse experiencia en desarrollo de aplicaciones grandes en cual-quiera de estos lenguajes.f) Conocimientos amplios de mercado informático, tanto de hardware comode software, en el caso de que haya que evaluar compras de material o montarnuevos sistemas o instalaciones completas.NotaPara ser administrador se re-quieren generalmente estudiosinformáticos o afines a la orga-nización, junto con experien-cia demostrada en el campo yconocimientos amplios de sis-temas heterogéneos y tecnolo-gías de red.\nGNUFDL • PID_00167539 31 Introducción al sistema operativo GNU/Linuxg) Experiencia en más de una versión de UNIX (o sistemas GNU/Linux), comoSolaris, AIX, ATT, SystemV, BSD, etc.h) Experiencia en sistemas operativos no UNIX, sistemas complementariosque pueden encontrarse en la organización: Windows 9x/NT/2000/XP/Vista/7, MacOs, VMS, sistemas IBM, etc.i) Sólidos conocimientos del diseño e implementación de UNIX, mecanismosde páginas, intercambio, comunicación interproceso, controladores, etc.; porejemplo, si las tareas de administración incluyen optimización de los sistemas(tuning) y/o plataformas arquitecturales hardware.j) Conocimientos y experiencia en seguridad informática: construcción de cor-tafuegos (firewalls), sistemas de autentificación, aplicaciones de cifrado (crip-tografía), seguridad del sistema de ficheros, herramientas de seguimiento deseguridad, etc.k) Experiencia en bases de datos, conocimientos de SQL, etc.l) Instalación y reparación de hardware y/o cableados de red y dispositivos.\nGNUFDL • PID_00167539 32 Introducción al sistema operativo GNU/Linux5. Tareas del administradorSegún hemos descrito, podríamos separar las tareas de un administrador GNU/Linux (o UNIX en general) en dos partes principales: administración del sis-tema y administración de red. En los siguientes subapartados, mostramos deforma resumida en qué consisten en general estas tareas en los sistemas GNU/Linux (o UNIX). Trataremos la mayor parte del contenido con cierto detalleen estos módulos y en los asociados a administración avanzada. Otra partede las tareas, por cuestiones de espacio o complejidad, la explicaremos super-ficialmente o no la trataremos.Las tareas de administración engloban una serie de conocimientos y técnicasde los cuales aquí sólo podemos ver la punta del iceberg. En la bibliografíaadjunta a cada módulo aportamos referencias para ampliar todos los temas atratar. Como veréis, hay una amplia bibliografía para casi cualquier punto enel que queráis profundizar.5.1. Tareas de administración local del sistema• Arranqueyapagadodelsistema: cualquier sistema basado en UNIX tieneunos sistemas de arranque y apagado ajustables, de manera que podemosconfigurar qué servicios ofrecemos en el arranque de la máquina y cuán-do hay que pararlos, o programar el apagado del sistema para su mante-nimiento.• Gestióndeusuariosygrupos: dar cabida a los usuarios es una de las prin-cipales tareas de cualquier administrador. Habrá que decidir qué usuariospodrán acceder al sistema, de qué forma y bajo qué permisos, y establecercomunidades mediante los grupos. Un caso particular será el de los usua-rios de sistema, pseudousuarios dedicados a tareas del sistema.• Gestiónderecursosdelsistema: qué ofrecemos, cómo lo ofrecemos y aquién damos acceso.• Gestióndelossistemasdeficheros: el ordenador puede disponer de di-ferentes recursos de almacenamiento de datos y dispositivos (disquetes,discos duros, ópticos, etc.) con diferentes sistemas de acceso a los ficheros.Pueden ser permanentes, extraíbles o temporales, con lo cual habrá quemodelar y gestionar los procesos de montaje y desmontaje de los sistemasde ficheros que ofrezcan los discos o dispositivos afines.• Cuotasdelsistema: cualquier recurso que vaya a ser compartido tiene queser administrado, y según la cantidad de usuarios, habrá que establecer unsistema de cuotas para evitar el abuso de los recursos por parte de los usua-\nGNUFDL • PID_00167539 33 Introducción al sistema operativo GNU/Linuxrios o establecer clases (o grupos) de usuarios diferenciados por mayor omenor uso de recursos. Suelen ser habituales sistemas de cuotas de espaciode disco, o de impresión, o de uso de CPU (tiempo de computación usado).• Seguridaddelsistema: seguridad local, sobre protecciones a los recursosfrente a usos indebidos, accesos no permitidos a datos del sistema, o adatos de otros usuarios o grupos.• Backupyrestauracióndelsistema: es necesario establecer políticas pe-riódicas (según importancia de los datos), de copias de seguridad de lossistemas. Hay que establecer periodos de copia que permitan salvaguardarnuestros datos de fallos del sistema (o factores externos) que puedan pro-vocar pérdidas o corrupción de datos.• Automatizacióndetareasrutinarias: muchas de las tareas frecuentes dela administración o del uso habitual de la máquina pueden ser fácilmenteautomatizadas, ya debido a su simplicidad (y por lo tanto, a la facilidadde repetirlas), como a su temporalización, que hace que tengan que ser re-petidas en periodos concretos. Estas automatizaciones suelen hacerse bienmediante programación por lenguajes interpretados de tipo script (shells,Perl, etc.), o por la inclusión en sistemas de temporalización (cron, at...).• Gestióndeimpresiónycolas: los sistemas UNIX pueden utilizarse comosistemas de impresión para controlar una o más impresoras conectadas alsistema, así como para gestionar las colas de trabajo que los usuarios oaplicaciones puedan enviar a las mismas.• Gestióndemódemsyterminales: estos dispositivos suelen ser habitualesen entornos no conectados a red local ni a banda ancha:– Los módems permiten una conexión a la Red por medio de un inter-mediario (el ISP o proveedor de acceso), o bien la posibilidad de co-nectar a nuestro sistema desde el exterior por acceso telefónico desdecualquier punto de la red telefónica.– En el caso de los terminales, antes de la introducción de las redes solíaser habitual que la máquina UNIX fuese el elemento central de cóm-puto, con una serie de terminales tontos, que únicamente se dedica-ban a visualizar la información o a permitir la entrada de informaciónpor medio de teclados externos. Solía tratarse de terminales de tiposerie o paralelo. Hoy en día, todavía suelen ser habituales en entornosindustriales, y en nuestro sistema GNU/Linux de escritorio tenemosun tipo particular, que son los terminales de texto virtuales, a los quese accede mediante las teclas Alt+Fxx.• Accounting(olog)desistema: para poder verificar el funcionamiento co-rrecto de nuestro sistema, es necesario llevar políticas de log que nos pue-dan informar de los posibles fallos del sistema o del rendimiento que se\nGNUFDL • PID_00167539 34 Introducción al sistema operativo GNU/Linuxobtiene de una aplicación, servicio o recurso hardware. O bien permitirresumir los recursos gastados, los usos realizados o la productividad delsistema en forma de informe.• Systemperformancetunning: técnicas de optimización del sistema paraun fin dado. Suele ser habitual que un sistema esté pensado para una ta-rea concreta y que podamos verificar su funcionamiento adecuado (porejemplo, mediante logs), para examinar sus parámetros y adecuarlos a lasprestaciones que se esperan.• Personalizacióndelsistema: reconfiguración del kernel. Los kernels, porejemplo en GNU/Linux, son altamente personalizables, según las caracte-rísticas que queramos incluir y el tipo de dispositivos que tengamos o es-peremos tener en nuestra máquina, así como los parámetros que afectenal rendimiento del sistema o que consigan las aplicaciones.5.2. Tareas de administración de red• Interfazderedyconectividad: el tipo de interfaz de red que utilizamos,ya sea el acceso a una red local, la conexión a una red mayor, o conexionesdel tipo banda ancha con tecnologías ADSL, RDSI, u ópticas por cable.Además, el tipo de conectividades que vamos a tener en forma de servicioso peticiones.• Routingdedatos: los datos que circularán, de dónde o hacia dónde sedirigirán, dependiendo de los dispositivos de red disponibles y de las fun-ciones de la máquina en red; posiblemente, será necesario redirigir el tra-fico desde/hacia uno o más sitios.• Seguridaddered: una red, sobre todo si es abierta a cualquier punto exte-rior, es una posible fuente de ataques y, por lo tanto, puede comprometerla seguridad de nuestros sistemas o los datos de nuestros usuarios. Hay queprotegerse, detectar e impedir posibles ataques con una política de seguri-dad clara y eficaz.• Serviciosdenombres: en una red hay infinidad de recursos disponibles.Los servicios de nombres nos permiten nombrar objetos (como máquinasy servicios) para poderlos localizar y gestionar. Con servicios como el DNS,DHCP, LDAP, etc., se nos permitirá localizar servicios o equipos.• NIS(networkinformationservice): las grandes organizaciones han de te-ner mecanismos para poder organizar, de forma efectiva, los recursos y elacceso a ellos. Las formas habituales en UNIX estándar, como los logins deusuarios con control por passwords locales, son efectivos con pocas máqui-nas y usuarios, pero cuando tenemos grandes organizaciones, con estruc-turas jerárquicas, usuarios que pueden acceder a múltiples recursos de for-\nGNUFDL • PID_00167539 35 Introducción al sistema operativo GNU/Linuxma unificada o separada por diferentes permisos, etc., los métodos UNIXsencillos se muestran claramente insuficientes o imposibles. Entonces senecesitan sistemas más eficaces para controlar toda esta estructura. Servi-cios como NIS, NIS+ y LDAP nos permiten organizar de modo adecuadotoda esta complejidad.• NFS(networkfylesystems): a menudo, en las estructuras de sistemas enred es necesario compartir informaciones (como los propios ficheros) porparte de todos o algunos de los usuarios. O sencillamente, debido a la dis-tribución física de los usuarios, es necesario un acceso a los ficheros desdecualquier punto de la red. Los sistemas de ficheros por red (como NFS)permiten un acceso transparente a los ficheros, independientemente denuestra situación en la red. Y en algunos casos, como Samba/CIFS, nosofrecen soporte para el acceso por parte de plataformas hardware/softwarediferentes, e independientes de las configuraciones de clientes o servido-res.• UNIXremotecommands: UNIX dispone de comandos transparentes a lared, en el sentido de que, independientemente de la conexión física, esposible ejecutar comandos que muevan información por la red o permitanacceso a algunos servicios de las máquinas. Los comandos suelen teneruna r delante, con el sentido de remoto, por ejemplo: rcp, rlogin, rsh,rexec, etc., que permiten las funcionalidades indicadas de forma remotaen la red.• Aplicacionesdered: aplicaciones de conexión a servicios de red, comotelnet (acceso interactivo), ftp (transmisión de ficheros), en forma de apli-cación cliente que se conecta a un servicio servido desde otra máquina. Obien que nosotros mismos podemos servir con el servidor adecuado: ser-vidor de telnet, servidor ftp, servidor web, etc.• Impresiónremota: acceso a servidores de impresión remotos, ya sea di-rectamente a impresoras remotas o bien a otras máquinas que ofrecen susimpresoras locales. Impresión en red de forma transparente al usuario oaplicación.• Correoelectrónico: uno de los primeros servicios proporcionados por lasmáquinas UNIX es el servidor de correo, que permite el almacenamientode correo, o un punto de retransmisión de correo hacia otros servidores, sino iba dirigido a usuarios propios de su sistema. Para el caso web, tambiénde forma parecida, un sistema UNIX con el servidor web adecuado ofreceuna plataforma excelente para web. UNIX tiene la mayor cuota de mer-cado en cuanto a servidores de correo y web, y es uno de los principalesmercados, donde tiene una posición dominante. Los sistemas GNU/Linuxofrecen soluciones de código abierto para correo y web y conforman unode sus principales usos.\nGNUFDL • PID_00167539 36 Introducción al sistema operativo GNU/Linux• XWindow: un caso particular de interconexión es el sistema gráfico de lossistemas GNU/Linux (y la mayor parte de UNIX), X Window. Este sistemapermite una transparencia total de red y funciona bajo modelos clienteservidor; permite que el procesamiento de una aplicación esté desligadode la visualización y de la interacción por medio de dispositivos de entra-da, por lo que éstos se sitúan en cualquier parte de la red. Por ejemplo,podemos estar ejecutando una determinada aplicación en una máquinaUNIX cuando desde otra visualizamos en pantalla los resultados gráficos,y entramos datos con el teclado y ratón locales de forma remota. Es más, elcliente, llamado cliente X, es tan sólo un componente software que puedeser portado a otros sistemas operativos, permitiendo ejecutar aplicacionesen una máquina UNIX y visualizarlas en cualquier otro sistema. Un casoparticular son los llamados terminales X, que son básicamente una especiede terminales tontos gráficos que sólo permiten visualizar o interactuar(por teclado y ratón) con una aplicación en ejecución remota.\nGNUFDL • PID_00167539 37 Introducción al sistema operativo GNU/Linux6. Distribuciones de GNU/LinuxAl hablar de los orígenes de los sistemas GNU/Linux, hemos comprobado queno había un único sistema claramente definido. Por una parte, hay tres ele-mentos software principales que componen un sistema GNU/Linux:1)ElkernelLinux: como vimos, el kernel es tan sólo la pieza central del siste-ma. Pero sin las aplicaciones de utilidad, shells, compiladores, editores, etc. nopodríamos tener un sistema completo.2)LasaplicacionesGNU: en el desarrollo de Linux, éste se vio complementa-do con el software de la FSF existente del proyecto GNU, que le aportó editores(como emacs), compilador (gcc) y diferentes utilidades.3)Softwaredeterceros: normalmente de tipo de código abierto en su mayorparte. Todo sistema GNU/Linux se integra además con software de tercerosque permite añadir una serie de aplicaciones de amplio uso, ya sea el propiosistema gráfico de X Windows, servidores como el Apache para web, navega-dores, ofimática, etc. Asimismo, puede ser habitual incluir algún software pro-pietario (para ámbitos no cubiertos por el software libre), dependiendo del ca-rácter libre que en mayor o menor grado quieran disponer los creadores dela distribución.Al ser la mayoría del software de tipo de código abierto o libre, ya sea el kernel,software GNU o de terceros, hay una evolución más o menos rápida de ver-siones, ya sea por medio de corrección de errores o nuevas prestaciones intro-ducidas. Esto obliga a que, en el caso de querer crear un sistema GNU/Linux,tengamos que escoger qué software queremos instalar en el sistema y qué ver-siones concretas de este software.El mundo GNU/Linux no se limita a una empresa o comunidad parti-cular, con lo que ofrece a cada uno la posibilidad de crear su propiosistema adaptado a sus necesidades.Entre el conjunto de las versiones de los diferentes componentes, siempre seencuentran algunas que son estables y otras que están en desarrollo, en fasesalfa o beta (posiblemente, con errores o funcionalidades no completas u opti-mizadas), por lo que habrá que tener cuidado con la elección de las versiones ala hora de crear un sistema GNU/Linux. Otro problema añadido es la selecciónde alternativas; el mundo de GNU/Linux es lo suficientemente rico para que\nGNUFDL • PID_00167539 38 Introducción al sistema operativo GNU/Linuxhaya más de una alternativa para un mismo producto de software. Hay queelegir entre las alternativas posibles, incorporar algunas o todas, si queremosofrecer al usuario libertad para escoger su software.Un caso práctico son los gestores de escritorio de X Window en los que, porejemplo, nos ofrecen (principalmente) dos entornos de escritorio diferentescomo Gnome y KDE. Los dos tienen características parecidas y aplicacionessemejantes o complementarias.En el caso de un distribuidor de sistemas GNU/Linux, ya sea comercial o bienuna organización/comunidad sin beneficio propio, dicho distribuidor tienecomo responsabilidad generar un sistema que funcione, seleccionando las me-jores versiones y productos software que puedan conseguirse en el momento.En este caso, una distribución GNU/Linux es una colección de software queforma un sistema operativo basado en el kernel Linux.Un dato importante a tener en cuenta, y que provoca más de una confusión,es que, como cada uno de los paquetes de software de la distribución tendrásu propia versión (independiente de la distribución en la que esté ubicado), elnúmero de distribución asignado no mantiene una relación con las versionesde los paquetes software.La única función del número de distribución es comparar las distribu-ciones que genera un mismo distribuidor. No permite comparar entreotras distribuciones. Si queremos hacer comparaciones entre distribu-ciones, tendremos que examinar los paquetes software principales y susversiones para poder determinar qué distribución aporta más noveda-des.EjemploPongamos un ejemplo de algunas versiones que hemos encontrado en diferentes distri-buciones GNU/Linux (las versiones dependerán de la situación actual de las distribucio-nes):a)KernelLinux: actualmente, podemos encontrar distribuciones que ofrecen uno o máskernels, como los de la serie antigua 2.4.x (ya obsoleta, pero puede encontrarse en algunasmáquinas en producción) o generalmente los últimos 2.6.x en revisiones (el número x)de distinta actualidad.b)LaopciónenelsistemagráficoXWindow: en versión de código abierto, que pode-mos encontrar prácticamente en todos los sistemas GNU/Linux, ya sean algunas versio-nes residuales de Xfree86 como las que manejan versiones 4.x.y o bien el proyecto Xorg(siendo un fork del anterior en el 2003, generado por problemas de licencias en XFree),que goza de más popularidad en diferentes versiones 6.x o 7.x (en algunas distribucionesse numera el paquete del servidor X con 1.7.x). Actualmente, la mayoría de distribucio-nes han migrado desde XFree a Xorg, por distintos problemas existentes con cambios delicencias en XFree, siendo Xorg la implementación oficial de X Window en GNU/Linux.Lo mismo pasa en diversas variantes de BSD, UNIX propietarios como Solaris, y tambiénen las últimas versiones de MacOS X.\nGNUFDL • PID_00167539 39 Introducción al sistema operativo GNU/Linuxc)Gestordeventanasoescritorio: podemos disponer de Gnome o KDE, o ambos; Gno-me con versiones 2.x/3.x o KDE 3.x.y. / 4.x.y.Pudimos obtener en un momento determinado, por ejemplo, una distribución que in-cluyese kernel 2.4, con XFree 4.4 y Gnome 2.14; o bien otra, por ejemplo, kernel 2.6,Xorg 6.8, KDE 3.1. ¿Cuál es mejor? Es difícil compararlas, ya que suponen una mezclade elementos, y dependiendo de cómo se haga la mezcla, el producto saldrá mejor opeor, y más o menos adaptado a las necesidades del usuario. Usualmente, el distribuidormantiene un compromiso entre la estabilidad del sistema y la novedad de las versionesincluidas. También proporciona software de aplicación atrayente para los usuarios de ladistribución, ya sea aquél generalista o especializado en algún campo concreto.En general, podemos hacer un mejor análisis de distribuciones a partir de lossiguientes apartados, que habría que comprobar en cada una de ellas:a)VersióndelnúcleoLinux: la versión viene indicada por unos númerosX.Y.Z, donde X es la versión principal, que representa los cambios importantesdel núcleo; Y es la versión secundaria, e implica mejoras en las prestaciones delnúcleo: Y es par en los núcleos estables e impar en los desarrollos o pruebas; yZ es la versión de construcción, que indica el número de la revisión de X.Y, encuanto a parches o correcciones hechas. Los distribuidores no suelen incluir laúltima versión del núcleo, sino la que ellos hayan probado con más frecuenciay pueden verificar que es estable para el software, y componentes que ellosincluyen. Este fue el esquema de numeración clásico (que se siguió durantelas ramas 2.4.x, hasta los inicios de la 2.6), que tuvo algunas modificaciones,para adaptarse al hecho de que el kernel (rama 2.6.x) se volvió mas estable, ycada vez las revisiones son menores (para significar un salto de versión de losprimeros números), debido al desarrollo continuo y frenético. En los últimosesquemas de numeración del kernel, se llegan a introducir cuartos números,para especificar de Z cambios menores, o diferentes posibilidades de la revisión(con diferentes parches añadidos). La versión así definida con cuatro númeroses la que se considera estable (stable). También son usados otros esquemaspara las versiones de test (no recomendables para entornos de producción),como sufijos -rc (release candidate), los -mm que son kernels experimentales conpruebas de diferentes técnicas, o los -git que son una especie de foto diariadel desarrollo del kernel. Estos esquemas de numeración están en constantecambio para adaptarse a la forma de trabajar de la comunidad del kernel, y asus necesidades para acelerar el desarrollo del kernel.b)Formatodeempaquetado: es el mecanismo empleado para instalar y ad-ministrar el software de la distribución. Se conoce por el formato de los pa-quetes de software soportados. En este caso suelen estar los formatos rpm, deb,tar.gz, mdk, etc. Aunque cada distribución suele tener posibilidad de utilizarvarios formatos, tiene uno por defecto. El software acostumbra a venir con susarchivos en un paquete que incluye información sobre su instalación y posi-bles dependencias con otros paquetes de software. El empaquetado es impor-tante si se usa software de terceros que no venga con la distribución, ya que elsoftware puede encontrarse sólo en algunos sistemas de paquetes, o incluso enuno sólo, y en algunos casos está pensado para versiones concretas de algunasdistribuciones de GNU/Linux.\nGNUFDL • PID_00167539 40 Introducción al sistema operativo GNU/Linuxc)Estructuradelsistemadearchivos: la estructura del sistema de archivosprincipal (/) nos indica dónde podemos encontrar nuestros archivos (o los pro-pios del sistema) dentro del sistema de ficheros. En GNU/Linux y UNIX hayalgunos estándares de colocación de los archivos (como veremos en otros mó-dulos), como por ejemplo el FHS (filesystem hierarchy standard) [Lin03b]. Así, sitenemos una idea del estándar, sabremos dónde encontrar la mayor parte delos archivos. Luego depende de que la distribución lo siga más o menos y deque nos avisen de los cambios que hayan realizado del estándar.d)Scriptsdearranquedelsistema: los sistemas UNIX y GNU/Linux incorpo-ran unos guiones de arranque (o shell scripts) que indican cómo debe arrancarla máquina y cuál será el proceso (o fases) que se van a seguir, así como loque deberá hacerse en cada paso. Para este arranque hay dos modelos princi-pales, los de SysV o BSD (es una de las diferencias de las dos ramas de UNIXprincipales), y cada distribución podría escoger uno o otro. Aunque los dossistemas tienen la misma funcionalidad, son diferentes en los detalles, y estoserá importante en los temas de administración (lo veremos en la administra-ción local). En nuestro caso, los sistemas que analizaremos, tanto Fedora comoDebian, utilizan el sistema de SysV (será el que veremos en la unidad local),pero existen otras distribuciones como Slackware que utilizan el otro sistemapropio de BSD. Y actualmente existen determinadas propuestas para nuevasopciones en este aspecto de arranque, como por ejemplo la que ha obtenidopeso importante en las distribuciones actuales, como el sistema upstart utili-zado, entre otras, en la distribución Ubuntu.e)Versionesdelabibliotecadelsistema: todos los programas (o aplicacio-nes) que tenemos en el sistema dependen para su ejecución de un número(mayor o menor) de bibliotecas de sistema. Estas bibliotecas, normalmente dedos tipos, ya sean estáticas unidas al programa (archivos libxxx.a) o dinámicasque se cargan en tiempo de ejecución (archivos libxxx.so), proporcionan grancantidad de código de utilidad o de sistema que utilizarán las aplicaciones. Laejecución de una aplicación puede depender de la existencia de unas bibliote-cas adecuadas y del número de versión concreto de estas bibliotecas (no es lorecomendable, pero puede suceder). Un caso bastante habitual es la bibliotecaGNU C library, la biblioteca estándar de C, también conocida como glibc. Pue-de suceder que una aplicación nos pida que dispongamos de una versión con-creta de la glibc para poder ejecutarse o compilarse. Es un caso bastante pro-blemático, y por ello uno de los parámetros que se valoran de la distribuciónes conocer qué versión de la glibc dispone, y los posibles paquetes adicionalesde versiones de compatibilidad con versiones antiguas. El problema apareceal intentar ejecutar o compilar un producto de software muy antiguo en unadistribución moderna, o bien un producto de software muy nuevo en una dis-tribución antigua.El mayor cambio llegó al pasar a una glibc 2.0, en que había que recompilartodos los programas para poder ejecutarlos correctamente. En las diferentesrevisiones nuevas de numeración 2.x ha habido algunos cambios menores que\nGNUFDL • PID_00167539 41 Introducción al sistema operativo GNU/Linuxpodían afectar a alguna aplicación. En muchos casos, los paquetes de softwarecomprueban si se tiene la versión correcta de la glibc, o en el mismo nombremencionan la versión que hay que utilizar (ejemplo: paquete-xxx-glibc2.rpm).f) Escritorio X Window: el sistema X Window es el estándar gráfico paraGNU/Linux como visualización de escritorio. Fue desarrollado en el MIT en1984 y prácticamente todos los UNIX tienen una versión del mismo. Las dis-tribuciones GNU/Linux disponen de diferentes versiones como la Xfree86 o laXorg (como ya dijimos, esta última es el estándar de facto en estos momentos).El X Window es una capa gráfica intermedia que confía a otra capa denomi-nada gestor de ventanas la visualización de sus elementos. Además, podemoscombinar el gestor de ventanas con utilidades y programas de aplicación va-riados para formar lo que se denomina un entorno de escritorio.Linux tiene, principalmente, dos entornos de escritorio: Gnome y KDE. Ca-da uno tiene la particularidad de basarse en una biblioteca de componentespropios (los diferentes elementos del entorno como ventanas, botones, listas,etc.): gtk+ (en Gnome) y Qt (en KDE), que son las principales bibliotecas decomponentes que se usan para programar aplicaciones en estos entornos. Peroademás de estos entornos, hay muchos otros, gestores de ventanas o escrito-rios: XCFE, Fluxbox, Motif, Enlightement, BlackIce, FVWM, etc., de modo quela posibilidad de elección es amplia. Además, cada uno de ellos permite cam-biar la apariencia (look feel) de ventanas y componentes al gusto del usuario,o incluso crearse el suyo propio.g)Softwaredeusuario: software añadido por el distribuidor, en su mayoría detipo Open Source, para las tareas más habituales (o por el contrario, no tantocomo para algunos campos de aplicación muy especializados).Las distribuciones habituales son tan grandes que pueden encontrarse de cen-tenares a miles de estas aplicaciones (muchas de las distribuciones tienen des-de unos pocos CD a varias decenas de ellos (o unas pocas unidades de DVD),de aplicaciones extra de partida. O pueden obtenerse a posteriori por red delos repositorios oficiales (o extras) de software de las distribuciones. Estas apli-caciones cubren casi todos los campos, desde el hogar hasta administrativoso científicos. Y en algunas distribuciones se añade software propietario de ter-ceros (como, por ejemplo, alguna suite ofimática del tipo Office), software deservidor preparado por el distribuidor, como por ejemplo un servidor de co-rreo, un servidor web seguro, etc.Así es cómo cada distribuidor suele producir diferentesversiones de su dis-tribución; por ejemplo, a veces hay distinciones entre una versión personal,profesional o de tipo servidor. Suele ser más habitual una distinción entre dosversiones: Desktop (escritorio) y Server (servidor). Aunque en muchas distri-\nGNUFDL • PID_00167539 42 Introducción al sistema operativo GNU/Linuxbuciones suele incluirse el software complementando ambos aspectos, y es lainstalación final que haga el usuario, de qué paquetes software y su configu-ración, la que decide el ámbito final de la máquina y su sistema GNU/Linux.El sistema GNU/Linux de fondo es el mismo; sólo hay diferencias (quese pagan en algunos casos) en el software añadido (en general, obra de lamisma casa distribuidora). Por ejemplo, en servidores web o en servido-res correo, ya sean desarrollos propios, optimizados o mejorados. Otrasdiferencias pueden ser la inclusión de mejores herramientas, desarrolla-das por el fabricante de la distribución, o el soporte adicional, en formade contratos de mantenimiento que incluya el distribuidor comercial.A menudo, asumir un coste económico extra no tiene mucho sentido, ya queel software estándar es suficiente (con un poco de trabajo extra de administra-ción de sistemas); pero para las empresas puede ser interesante porque reducetiempo de instalación y mantenimiento de los servidores y, además, optimi-za algunas aplicaciones y servidores críticos para la gestión informática de laempresa.6.1. DebianEl caso de la distribución Debian GNU/Linux es especial, en el sentido de quees una distribución guiada por una comunidad sin fines comerciales, aparte demantener su distribución y promocionar el uso del software de código abiertoy libre.Debian es una distribución apoyada por una comunidad entusiasta deusuarios y desarrolladores propios, basada en el compromiso de la uti-lización de software libre.NotaLos documentos Contrato so-cial Debian son consultablesen: http://www.debian.org/social_contractEl proyecto Debian se fundó en 1993 para crear la distribución Debian GNU/Linux. Desde entonces, se ha vuelto bastante popular y rivaliza en uso conotras distribuciones comerciales como Red Hat o SUSE. Por ser un proyectocomunitario, el desarrollo de esta distribución se rige por una serie de normaso políticas: existen unos documentos llamados Contrato social Debian, quemencionan la filosofía del proyecto en su conjunto, y las políticas Debian, queespecifican en detalle cómo se implementa su distribución.La distribución Debian está bastante relacionada con los objetivos de la FSFy su proyecto de Software Libre GNU; por esta razón, incluyen siempre en sunombre: Debian GNU/Linux; además, su texto del contrato social ha servidocomo base de las definiciones de código abierto. En cuanto a las políticas, todoFigura2.LogotipodeDebian\n2. nivel de usuario\nSintonizacion optimizacion y alta disponibilidad


Madre arrastra a su hijo para que vaya a la escuela\nSi existe algo que les preocupe a los padres de familia respecto a sus hijos, es el tema de la educación, y es por ello que insisten en que debes ir a la escuela, aunque no tengas ganas, esté nublado o incluso, aunque te niegues a hacerlo por tu propio pie.\nEn Lima, Perú, una mujer fue captada en video cuando recorría las calles con su hijo encima de la mochila y ella arrastrándolo para que fuera a la institución escolar. Afortunadamente la mochila tiene “rueditas”, así que el proceso fue mucho más fácil.\nNo se conoce realmente cuál sea la historia detrás de estas imágenes, pero suponemos que el pequeño todavía tenía mucho sueño, así que en lugar de esperar a que despertara, la madre decidió cargarlo en la mochila y que en el trayecto durmiera otro poco.\nPor supuesto que hay niños que se despiertan temprano e incluso ellos solos preparan su uniforme, sus útiles escolares y se van a la escuela, pero este no es el caso, así que la madre tuvo que entrar en acción para evitar que su retoño se quedara dormido y no entrara a clases.\nEn esto hay que tener cuidado, porque puede ser que por estar jugando en el teléfono o una tablet, o bien, viendo caricaturas y series hasta altas horas de la noche, en la mañana no se quieren (o pueden) levantar, así que lo mejor es tenerles horarios bien establecidos y así evitar el tener que arrastrarlos como esta mujer.\nEl descanso de un niño debe ser superior a las 6 horas durante la noche, por lo que no puedes permitir que se duerma hasta la madrugada por estar con su consola de videojuegos o cualquier otro dispositivo, pues esto perjudica sus horas de sueño y se reflejará en su rendimiento académico.\nY si tienes que usar una técnica como la de esta mujer para demostrarle que tiene que ir a la escuela aunque prefiera dormir, pues tendrás que aplicarla si no hay más remedio.


La UE teme el contagio del virus financiero griego | Euronews\nMás allá de las dificultades para la població, la quiebra de la economía griega podría provocar un efecto dominó. Portugal sería una de las primeras fichas en caer.\nEl primer ministro portugués se estrena en un Consejo Europeo en una situación delicada y a la espera del préstamo de la UE y el FMI: “No descansaremos vamos a descansar hasta que no podamos devolver con trabajo y resultados la confianza que se nos ha otorgado. Quiero manifestar una gran confianza de que, en lo que depende de nosotros y creo que también de la Comisión Europea, el Banco Central Europeo y el Fondo Monetario Internacional el programa de austeridad en Portugal será un éxito” decía Pedro Passos Coelho.\nDaniel Gros, experto en Asuntos Europeos, cree que la contestación social podría sembrar el pánico en los siempre volátiles mercados: “Siempre hay un riesgo de contaminación por los mercados financieros: en Grecia la población se ha levantado contra la austeridad y puede pasar lo mismo en Portugal, España y otros países… Y contra eso los líderes europeos pueden hacer muy poco” comenta.\nEn la calle, quienes no están indignados están preocupados por una crisis que no deja de generar malas noticias\n“Grecia forma parte de Europa, automaticamente nos afecta” comenta una señora en Bruselas.\n“Es un problema europeo, simplemente. Grecia para mi no es más que un apertivo de lo que puede pasar” asegura otra mujer.\nContagio es la palabra más utilizada en los centros de decisión. La deuda griega parece la bacteria del mundo financiero a la que nadie quiere exponerse. La verdad es que nadie tiene ni idea de cómo evitar la propagación.\nReportaje de María Barradas desde Bruselas.


Cursos de diseno joyas - educaweb.com\nGracias a este master diseño de joyas podrás desarrollar los conocimientos,... en el diseño y creación de joyas y bisutería, empleando para ello... sobre tasación y valoración de joyas y gemas, para poder adentrarte en el mercado profesional de la\n...el Curso de Posgrado de Diseño de joyas del IED Madrid, la perfecta combinación... de Posgrado de Diseño de joyas enseña al alumno los\nCon el Curso de Diseño de joyas y Comercialización en Joyerías aprenderás... restaurar y comercializar joyas. Para ello contarás con la ayuda... en técnicas del diseño de joyas, además de aspectos esenciales... de su comercialización. Las joyas son un complemento estrella. Transmite emoción y sentimientos siendo el toque final. Esto lo convierte en un sector ...\n...joyería y poder hacer tus propias joyas a mano? Con el curso de diseño... el curso de diseño y creación de joyas y bisutería aprenderás a dar forma al metal y crear tus propios diseños. Utilizarás diversos materiales, técnicas y acabados: Aprendemos a utilizar el soplete para soldar metales. Utilizarás metales como plata y oro. Además incluiremos a nuestras técnicas de acabado diferentes arcillas, resinas y otros materiales interesantes como la madera, arcillas, ...\nQuieres aprender a enfilar collares? En este curso monográfico aprenderás: Enfilar perlas o cuentas para collares o pulseras Enfilado clásico y contemporáneo. Colocar cierre al diseño de la pieza. ¿Por qué tienes que hacer este curso? Es muy importante saber enfilar cuando se quiere obtener una buena calidad en las piezas de joyería con un buen enfilado de perla, piedra o cuenta se separa de la siguiente mediante un nudo que hace que los collares sean flexibles, no se rocen las cuen ...\nEl Summer Course en Diseño de joyas dota a los alumnos de los conocimientos y herramientas necesarios para proyectar, diseñar y realizar una pieza con metal. Para ello, se sigue todo el proceso de creación del diseño y producción de una joya: desde la inspiración, pasando por la representación e ilustración del concepto, hasta llegar a la representación gráfica, la modelación en 3D y la presentación final de la pieza. La tendencia hacia el trabajo manual y la artesanía dan una ...\nEl Máster de Diseño de Accesorios de Moda ofrece todas las competencias necesarias para que el alumno pueda incorporarse a un equipo de diseño de una marca de accesorios o emprender un proyecto personal. El programa ayuda a estimular su inquietud creadora y sus capacidades para convertirse en un profesional especializado en el sector del diseño de joyería, bolsos o calzado. Con este programa el alumno desarrollará todo su potencial creativo a través de un recorrido por las diversas etapas de un ...\nTemas relacionados con: Diseno joyas en Cursos, carreras, másters, postgrados y doctorados