T1D Introducción PDF
T1D Introducción PDF
TEMA 1: INTRODUCCIÓN
Objetivos
Contenido
2. Introducción a Unix
2.1. Historia de Unix
2.2. Aparición de Linux
2.3. Distribuciones de Linux
2.3.1. Principales distribuciones
4. Introducción a la administración
4.1. Ciclo de vida del sistema
4.2. El administrador del sistema
4.3. La primera regla del administrador
4.4. Responsabilidades del administrador
4.5. Seguridad en la administración
Bibliografía
Básica
Sebastián Sánchez Prieto, Óscar García Población, “UNIX y LINUX Guía Práctica
Tercera edición”. Editorial Ra-Ma, 2005.
Jordi Mas i Hernández, “Software Libre: técnicamente viable, económicamente
sostenible y socialmente justo Primera edición”, infonomia Red de innovadores, 2005.
[Link]
M Carling, Stephen Degler, James Dennis, “Administración de Sistemas Linux Guía
Avanzada”. Editorial Prentice Hall, 2000.
Página | 1
Administración de Sistemas Operativos Tema 1: Introducción
Complementaria
Sistema operativo.
[Link]
Proceso (informática).
[Link]
Núcleo (informática).
[Link]
Núcleo monolítico.
[Link]
Micronúcleo
[Link]
Núcleo híbrido.
[Link]
Exonúcleo.
[Link]
Distribución Linux.
[Link]
Red Hat.
[Link]
[Link]
Fedora (distribución Linux).
[Link]
[Link]
SUSE Linux.
[Link]
[Link]
Mandriva Linux.
[Link]
[Link]
Debian.
[Link]
[Link]
GnuLinEx.
[Link]
[Link]
Ubuntu (distribución Linux).
[Link]
[Link]
Creative Commons.
[Link]
[Link]
El sistema operativo GNU.
[Link]
Página | 2
Tema 1: Introducción Administración de Sistemas Operativos
Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los
procesos o programas.
Permitir que los cambios, debido al desarrollo del propio sistema operativo, se puedan
realizar sin interferir con los servicios que ya se prestaban (conocido como
evolutividad).
Los procesos son creados y destruidos por el sistema operativo, así como también éste se
debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos.
El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork).
El núcleo, también conocido como kernel (ver figura 1.1), es la parte fundamental de un
sistema operativo. Es el software responsable de facilitar a los distintos programas acceso
seguro al hardware de la computadora, o en forma más básica, es el encargado de gestionar
recursos a través de servicios de llamadas al sistema.
Página | 3
Administración de Sistemas Operativos Tema 1: Introducción
Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos
suelen implementar una serie de abstracciones del hardware. Esto permite ocultar la
complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que
facilita su uso para el programador.
No necesariamente se necesita un núcleo para usar una computadora. Los programas pueden
cargarse y ejecutarse directamente en una computadora vacía, siempre que sus autores quieran
desarrollarlos sin usar ninguna abstracción del hardware ni ninguna ayuda del sistema operativo.
Ésta era la forma normal de usar muchas de las primeras computadoras: Para usar distintos
programas se tenía que reiniciar y reconfigurar la computadora cada vez. Con el tiempo, se
empezó a dejar en memoria pequeños programas auxiliares, como el cargador y el depurador, o
se cargaban desde memoria de sólo lectura. A medida que se fueron desarrollando, se
convirtieron en los fundamentos de lo que llegarían a ser los primeros núcleos de sistema
operativo.
Principalmente existen cuatro grandes tipos de núcleos: Los núcleos monolíticos, los
micronúcleos, los núcleos híbridos y los exonúcleos. En la siguiente sección se detalla cada uno
de ellos.
Página | 4
Tema 1: Introducción Administración de Sistemas Operativos
Página | 5
Administración de Sistemas Operativos Tema 1: Introducción
exonúcleo es permitir a una aplicación que solicite una región específica de la memoria, un
bloque de disco concreto, etc., y simplemente asegurarse que los recursos pedidos están
disponibles, y que la aplicación tiene derecho a acceder a ellos. Debido a que el exonúcleo sólo
proporciona una interfaz al hardware de muy bajo nivel, careciendo de todas las funcionalidades
de alto nivel de otros sistemas operativos, éste es complementado por una biblioteca de sistema
operativo.
Multitarea
Multiusuario
Se refiere a la posibilidad de que varios usuarios, cada uno con ciertos niveles de permisos,
accedan a las aplicaciones o recursos del sistema desde un único PC. La capacidad de Linux
para asignar el tiempo de microprocesador simultáneamente a varias aplicaciones, permite
ofrecer acceso a varios usuarios a la vez, ejecutando cada uno de ellos una o varias aplicaciones.
La gran ventaja que les aporta a los sistemas Linux el poseer características como multitarea y
multiusuario es que más de un usuario puede trabajar con la misma versión de la aplicación al
mismo tiempo y desde el mismo terminal o desde terminales distintos. Sin embargo no debemos
confundir esta capacidad con el hecho de que varios usuarios puedan actualizar el mismo
archivo simultáneamente, algo que podría llevar a la confusión y al caos total y por ello resulta
indeseable.
Multiplataforma
Página | 6
Tema 1: Introducción Administración de Sistemas Operativos
2. Introducción a Unix
En esta sección abarcaremos un poco de la historia de los sistemas Unix, la cual es necesaria
para poder describir como se produce la aparición de Linux, ya que este último posee orígenes
compartidos con Unix. Terminaremos explicando el concepto de distribución Linux y además
describiremos cada una de las principales distribuciones de Linux que existen actualmente.
Los antecedentes de Unix se remontan a 1964. En este año, Bell Telephone Laboratories de
AT&T, General Electric Company y el MIT (Instituto Tecnológico de Massachusetts) se
plantearon desarrollar un nuevo sistema operativo en tiempo compartido para una máquina GE
645 (de General Electric) al que denominaron MULTICS. Los objetivos buscados inicialmente
consistían en proporcionar a un conjunto amplio de usuarios una capacidad de computación
grande y la posibilidad de almacenar y compartir grandes cantidades de datos si éstos lo
deseaban. Todos esos objetivos eran demasiado ambiciosos para la época, sobre todo por las
limitaciones del hardware. Como consecuencia de ello, los trabajos en el nuevo sistema
operativo iban muy retrasados. Debido a eso, Bell Laboratories decidió dar por terminada su
participación en el proyecto. A pesar del fracaso de MULTICS, las ideas empleadas para su
diseño no cayeron en el olvido, sino que influyeron mucho en el desarrollo de Unix y de otros
sistemas operativos posteriores.
Ken Thompson (ver figura 1.5), uno de los miembros del Computing Science Research
Center de los Laboratorios Bell, encontró un computador DEC (Digital Equipment
Corporation) PDP-7 (ver figura 1.6) inactivo y se puso a desarrollar en él un juego denominado
Space Travel. El desarrollo de ese juego propició que Thompson adquiriese muchos
conocimientos relacionados con la máquina en la que estaba trabajando. Con objeto de crear un
entorno de trabajo agradable, Thompson, al que posteriormente se le unió Dennis Ritchie (ver
figura 1.5), se propuso la creación de un nuevo sistema operativo, al que denominó Unix.
Ritchie había trabajado anteriormente en el proyecto MULTICS, de mucha influencia en el
nuevo sistema operativo. Como ejemplos de esa influencia podemos citar la organización básica
del sistema de archivos, la idea del intérprete de órdenes (shell) como proceso de usuario (en
sistemas anteriores, el intérprete de órdenes formaba parte del propio núcleo del sistema
operativo), e incluso el propio nombre Unix deriva de MULTICS.
Figura 1.5: Dennis Ritchie (derecha) y Ken Figura 1.6: pdp 7 de DEC
Thompson (izquierda)
Página | 7
Administración de Sistemas Operativos Tema 1: Introducción
Realmente, el término UNICS se empleó por la similitud de esta palabra con la palabra
inglesa eunuc, con lo cual se venía a indicar que este nuevo sistema operativo era un MULTICS
castrado. Posteriormente, UNICS dio lugar al nombre definitivo Unix. El nuevo sistema también
se vio influenciado por otros sistemas operativos, tales como el CTSS (Compatible Time
Sharing System) del MIT y el sistema XDS-940 (Xerox Data System) de la universidad de
California en Berkeley.
Aunque esta primera versión de Unix prometía mucho, su potencial no pudo demostrarse
hasta que se utilizó en un proyecto real. Así pues, mientras se planeaban las pruebas para
patentar el nuevo producto, éste fue trasladado a un computador PDP-11 (ver figura 1.7) de
Digital en una segunda versión. En 1973 el sistema operativo fue reescrito en lenguaje C en su
mayor parte. C es un lenguaje de alto nivel (las versiones anteriores del sistema operativo
habían sido escritas en lenguaje ensamblador), lo que propició que el sistema tuviera una gran
aceptación por parte de los nuevos usuarios. El número de instalaciones en Bell Laboratories
creció hasta quince, aproximadamente, y su uso también se difundió gradualmente a unas
cuantas universidades con propósitos educacionales.
La primera versión de Unix disponible fuera de Bell Laboratories fue la versión 6, en el año
1976. En 1978 se distribuyó la versión 7, que fue adaptada a otros PDP-11 y a una nueva línea
de ordenadores de DEC denominada VAX (ver figura 1.8). La versión para VAX se conocía
como 32V.
Página | 8
Tema 1: Introducción Administración de Sistemas Operativos
En el periodo comprendido entre 1977 y 1982, Bell Laboratories combinó varios sistemas
Unix, de la versión 7 y de la 32v, dando lugar a un único sistema cuyo nombre comercial fue
Unix System III. Ésta fue la primera distribución externa desde USG.
Los sistemas Unix actuales no se reducen a la versión 8, System V o BSD, sino que la
mayoría de los fabricantes de micro y miniordenadores ofrecen su Unix particular. Así, Sun
Microsystems los ofrece para sus ordenadores y lo denomina Solaris, Hewlett Packard lo
comercializa con el nombre de HP-UX, IBM lo implantó en sus equipos RISC 6000 y lo
denomina AIX, etc. Con el gran incremento en las prestaciones de los ordenadores personales,
también han aparecido versiones para ellos. Dentro de estas nuevas versiones cabe destacar
aquellas de distribución libre, como pueden ser FreeBSD, OpenBSD o el propio Linux, obtienen
un alto rendimiento de los procesadores de la familia 80x86 de Intel (del 80386 en adelante).
Página | 9
Administración de Sistemas Operativos Tema 1: Introducción
Los primeros desarrollos de Linux tenían que ver con la conmutación de tareas en el
microprocesador 80386 ejecutando en modo protegido, todo ello escrito en lenguaje
ensamblador.
No se llevó a cabo ningún anuncio de la versión 0.01 de Linux. Por sí misma, esta versión
sólo podía compilarse y ejecutarse en una máquina que tuviese cargado Minix.
El cinco de octubre de 1991 Linus dio a conocer la primera versión “oficial” de Linux, ésta
fue la versión 0.02. En este punto Linux podía ejecutar el intérprete de órdenes bash (Bourne
Again shell de GNU) y gcc (el compilador C de GNU) pero no mucho más. Seguía siendo una
versión utilizable solamente por hackers y por personal “cualificado”.
Después de la versión 0.03, Linus pasó a lanzar la versión 0.10, en este punto fue cuando
aumentó considerablemente el número de personas que se apuntó al desarrollo del sistema.
Después de varias versiones intermedias, Linus incrementó el número y pasó directamente a la
versión 0.95 para reflejar sus deseos de que pronto pasaría a ser una versión “oficial”
(generalmente al software sólo se le asigna como número de versión la 1.0 cuando se supone
que está en su mayoría libre de errores). Esto ocurrió en marzo de 1992. Un año y medio
después, a finales de Diciembre de 1993, el núcleo (kernel) de Linux estaba en la versión
0.99.pl14, aproximándose asintóticamente a 1.0.
Una distribución de Linux es una variante de Linux que incorpora determinados paquetes de
software para satisfacer las necesidades de un grupo específico de usuarios, dando así origen a
ediciones hogareñas, empresariales y para servidores. Pueden ser exclusivamente de software
libre (por ejemplo: gobuntu), o también incorporar aplicaciones o controladores propietarios.
La base de cada distribución incluye el núcleo (kernel) Linux, con las bibliotecas y
herramientas del proyecto GNU y de muchos otros proyectos/grupos de software, como BSD,
Xorg, Apache, MySQL, PostgreSQL, Perl, Python, PHP, Gnome y KDE.
Antes de que surgieran las primeras distribuciones Linux, un usuario de Linux debía tener
algo de experiencia en Unix; no sólo debía conocer qué bibliotecas y ejecutables necesitaba para
iniciar el sistema, sino también los detalles importantes que se requieren en la instalación y
configuración de los archivos en el sistema.
Las distribuciones de Linux comenzaron a surgir poco después de que el núcleo Linux fuera
utilizado por otros programadores además de los creadores originales. Existía mayor interés en
desarrollar un sistema operativo que en desarrollar aplicaciones, interfaces para los usuarios o
un paquete de software conveniente.
Las distribuciones eran originalmente una cuestión de comodidad para el usuario medio,
evitándole la instalación (y en muchos casos la compilación) por separado de paquetes de uso
común, pero hoy se han popularizado incluso entre los expertos en éste tipo de sistemas
operativos (Unix/Linux).
Página | 10
Tema 1: Introducción Administración de Sistemas Operativos
Dentro de las distribuciones de Linux existe toda una amplia gama de ellas, en este apartado
vamos a describir las distribuciones que actualmente son consideradas las más importantes y por
tanto las más utilizadas.
Red Hat es famoso en todo el mundo por los diferentes esfuerzos orientados a apoyar el
movimiento del software libre. No sólo trabajan en el desarrollo de una de las distribuciones
más populares de Linux, sino también en la comercialización de diferentes productos y servicios
basados en software de código abierto. Asimismo, poseen una amplia infraestructura en la que
se cuentan más de quinientos empleados en quince lugares del mundo.
Programadores empleados de Red Hat han desarrollado múltiples paquetes de software libre,
los cuales han beneficiado a toda la comunidad. Algunas de las contribuciones más notables ha
sido la creación de un sistema de empaquetación de software llamado RPM o Red Hat Package
Manager, que es un sistema desarrollado por esta empresa para facilitar la instalación de
componentes de Linux, y varias utilidades para la administración y configuración de equipos,
como sndconfig o mouseconfig.
Algunas de las distribuciones basadas en Red Hat Linux más importantes son: Mandriva
Linux y Yellow Dog Linux (esta ultima sólo para PowerPC).
Fedora es una distribución de Linux basada en RPM para propósitos generales, que es
soportada por una comunidad internacional de ingenieros, diseñadores gráficos y usuarios que
reportan fallos y prueban nuevas tecnologías. Esta distribución Linux cuenta con el respaldo y la
promoción de Red Hat.
El proyecto no busca solo incluir software libre y de código abierto, sino ser el líder en ese
ámbito tecnológico. Algo que hay que destacar es que los desarrolladores de Fedora prefieren
hacer cambios en las fuentes originales en lugar de aplicar los parches específicos en su
distribución, de esta forma se asegura que las actualizaciones estén disponibles para todas las
variantes de Linux. Max Spevack en una entrevista afirmó que: "Hablar de Fedora es hablar del
rápido progreso del software libre y de código abierto".
Durante sus primeras seis versiones se llamó Fedora Core, debido a que solo incluía los
paquetes más importantes del sistema operativo. La última versión es Fedora 8, la cual fue
liberada el 8 de noviembre de 2007.
Página | 11
Administración de Sistemas Operativos Tema 1: Introducción
SuSE Linux es una de las más conocidas distribuciones Linux existentes a nivel mundial, se
basó en sus orígenes en Slackware. Entre las principales virtudes de esta distribución se
encuentra el que sea una de las más sencillas de instalar y administrar, ya que cuenta con varios
asistentes gráficos para completar diversas tareas en especial por su gran herramienta de
instalación y configuración YasT.
Anteriormente, todo el trabajo de desarrollo era realizado por SuSE, y la versión 10.0 fue la
primera versión con una beta pública. Como parte del cambio, el acceso en línea al servidor
YaST de actualización sería complementario para los usuarios de SuSE Linux, y siguiendo la
línea de la mayoría de distribuciones de código abierto, existiría tanto la descarga gratuita
disponible mediante web como la venta del sistema operativo en caja. Este cambio en la
filosofía condujo al lanzamiento de SuSE Linux 10.0 el seis de octubre de 2005 en "OSS, Open
Source Software" (código completamente abierto).
La primera edición se fundamentó en Red Hat Linux (versión 5.1) y escogió el entorno
gráfico de KDE (K Desktop Environment). Desde entonces ha seguido su propio camino,
separado de Red Hat y ha incluido numerosas herramientas propias o modificadas,
fundamentalmente dirigidas a facilitar la configuración del sistema. Mandrake (su anterior
nombre) también es conocida por compilar sus paquetes con optimizaciones para procesadores
Pentium y superiores, incompatibles con versiones más antiguas tales como 386 y 486.
Página | 12
Tema 1: Introducción Administración de Sistemas Operativos
Debian o Proyecto Debian es una comunidad conformada por desarrolladores y usuarios, que
pretende crear y mantener un sistema operativo GNU basado en software libre precompilado y
empaquetado, en un formato sencillo en múltiples arquitecturas de computador y en varios
núcleos.
Debian nace como una apuesta por separar en sus versiones el software libre del software no
libre. El modelo de desarrollo del proyecto es ajeno a motivos empresariales o comerciales,
siendo llevado adelante por los propios usuarios, aunque cuenta con el apoyo de varias empresas
en forma de infraestructuras. Debian no vende directamente su software, lo pone a disposición
de cualquiera en Internet, aunque sí permite a personas o empresas distribuir comercialmente
este software mientras se respete su licencia.
La primera adaptación del sistema Debian, sino también la más desarrollada, es Debian
GNU/Linux, basada en el núcleo Linux, y como siempre utilizando herramientas de GNU.
Existen también otras adaptaciones con diversos núcleos: Hurd (Debian GNU/Hurd); NetBSD
(Debian GNU/NetBSD) y FreeBSD (Debian GNU/kFreeBSD).
GnuLinEx es una distribución de software libre que incluye el núcleo de Linux y está basada
en Debian GNU/Linux y GNOME (GNU Network Object Model Environment), contando con
[Link] como Suite Ofimática, entre otras aplicaciones.
El diecinueve de junio de 2006 se liberó GnuLinex 2006, con Gnome 2.14.1, Xorg 6.9, y
núcleo de Linux 2.6.16.
Página | 13
Administración de Sistemas Operativos Tema 1: Introducción
El nombre de la distribución proviene del concepto zulú y xhosa de Ubuntu, que significa
"humanidad hacia otros" o "yo soy porque nosotros somos". Ubuntu es un movimiento
sudafricano encabezado por el obispo Desmond Tutu, quien ganó el Premio Nobel de la Paz en
1984 por sus luchas en contra del apartheid en Sudáfrica. El sudafricano Mark Shuttleworth,
mecenas del proyecto, se encontraba muy familiarizado con la corriente. Tras ver similitudes
entre los ideales de los proyectos GNU, Debian y en general con el movimiento del software
libre, decidió aprovechar la ocasión para difundir los ideales de Ubuntu. El eslogan de Ubuntu
“Linux para seres humanos” (en inglés "Linux for Human Beings") resume una de sus metas
principales: Hacer de Linux un sistema operativo más accesible y fácil de usar.
Página | 14
Tema 1: Introducción Administración de Sistemas Operativos
En esta sección trataremos de explicar e introducir lo que se persigue con la filosofía del
software libre y todos los términos o elementos que dicha filosofía implica. Porque aunque el
software libre está presente cada vez más en los medios de comunicación, en las conversaciones
de los profesionales de la informática, e incluso empieza a estar en boca de los ciudadanos en
general, aún es desconocido por muchos de nosotros.
El software libre tuvo sus inicios en pequeños grupos de entusiastas y activistas que querían
cambiar la industria del software. Después de muchos años esta comunidad ha crecido
rápidamente e incorporado no solamente a voluntarios en todo el mundo, sino que también ha
atraído la atención y la colaboración de centenares de empresas claves.
Inicialmente el software libre fue popular en los servidores y con el paso del tiempo y el
trabajo de miles de voluntarios las piezas faltantes se completaron. Linux que antes estaba
limitado a ser un sistema que no era visible a los usuarios finales (Por ejemplo, Google y
Amazon son sistemas construidos sobre Linux) ahora es un sistema que es usado por miles de
usuarios en todo el mundo en sus computadoras personales, teléfonos u organizadores
personales.
El software libre es propiedad de todos: Cada persona en el mundo tiene derecho a usar el
software, modificarlo y copiarlo de la misma manera que los autores de este mismo. Es un
legado de la humanidad que no tiene propietario, de la misma manera que las leyes básicas de la
física o las matemáticas. No existe un monopolio y no es necesario pagar peaje por su uso.
3.1. GNU
Poco a poco se fue extendiendo un modelo de código cerrado en el cual el software se vendía
sin el código fuente y, cada vez más, las libertades de los usuarios se fueron acortando. Esta fue
la época en que aparecieron técnicas como, por ejemplo, las bombas de tiempo (aplicaciones
Trial) que limitaban el periodo durante el cual un usuario podía utilizar un producto. Los
programas shareware popularizarían más tarde estas bombas de tiempo como sistema para
obligar a los usuarios a adquirir una licencia.
Una de las personas que había vivido de cerca toda aquella evolución era Richard Stallman
(ver figura 1.10), quien fue pionero en defender las libertades que se habían perdido y acuñó el
término 'software libre'. El 27 de septiembre de 1983 Richard Stallman muy preocupado por
esta pérdida de libertades anunciaba en el foro Usenet [Link], que empezaba a trabajar
sobre una implementación libre de un sistema inspirado en Unix que denominaría GNU y que
estaría libre de código de AT&T, es decir, una implementación desde cero sin posibles
problemas legales con AT&T. En el mensaje a Usenet, Stallman explicaba detalladamente su
experiencia como desarrollador de sistemas y pedía la ayuda de todo el mundo que quisiera
ofrecer parte de su tiempo, dinero o hardware.
Página | 15
Administración de Sistemas Operativos Tema 1: Introducción
El 1984, Stallman creó la Free Software Foundation con el objetivo de crear el sistema Unix
libre GNU y la potenciación del software libre. La definición de software libre propuesta por la
Free Software Foundation, se basa en cuatro libertades básicas que cualquier programa
considerado libre debe proporcionar:
Libertad para poder estudiar cómo funciona el programa. Lo cual implica acceso al
código fuente del mismo.
Libertad para hacer modificaciones y distribuir las mejoras. Lo cual implica también
acceso al código fuente del mismo.
Es habitual que los usuarios confundan el software libre con el software gratuito. Es
importante distinguir entre las libertades que nos proporciona un software y el coste del mismo.
Página | 16
Tema 1: Introducción Administración de Sistemas Operativos
Un programa, por el simple hecho de ser gratuito, no es ni mucho menos libre. Por ejemplo,
Internet Explorer de Microsoft es un programa gratuito pero no es libre, ya que no da a sus
usuarios la posibilidad de estudiarlo (incluyendo el acceso a su código fuente), ni de mejorarlo,
ni de hacer públicas estas mejoras con el código fuente correspondiente, de manera que todo el
mundo se pueda beneficiar. Internet Explorer es un programa propietario en cuanto a las
libertades y gratuito en cuanto al coste.
Existe una distinción fundamental entre los programas que garantizan los derechos de
distribución y modificación, el software libre, y los que no los garantizan que consideramos
software propietario.
Respecto al coste, cualquier software libre se puede vender, siempre y cuando se respeten las
libertades originales que lo definen. Por ejemplo, la empresa francesa Mandrake o la
norteamericana Novell venden distribuciones de GNU/Linux, y se trata de software libre porque
conserva las libertades que lo definen.
Durante el año 1998, Eric S. Raymond, Bruce Perens y otros hackers involucrados en el
desarrollo de software libre lanzaron la Open Software Initiative y propusieron el uso del
término Open Source (código abierto) en contraposición al término free software (software
libre) como término más atractivo al entorno empresarial. El término free software en el mundo
anglófono (de habla inglesa) creaba una situación incómoda debido a la doble acepción que en
inglés tiene el término free (que puede significar gratuito o libre). La gran mayoría de empresas
en Estados Unidos usan principalmente el término código abierto para evitar dar la percepción
que el software libre es un recurso totalmente gratuito y para poner énfasis en el valor
diferencial que representa el hecho de que el código fuente está disponible.
N° Condición Descripción
1 Libre distribución No se puede impedir la venta o distribución del
programa o parte de él. Así mismo, tampoco se
puede exigir el pago de una tasa a cambio de su
distribución por parte de terceros.
2 Código fuente El programa debe incluir su código fuente y no se
puede restringir su redistribución.
3 Trabajos derivados No debe impedirse realizar modificaciones o
trabajos derivados del programa y debe permitirse
que éstos sean distribuidos bajo los mismos
términos del software original.
4 Integridad del código fuente Puede exigirse que una versión modificada del
original programa tenga un nombre y número de versión
diferente que el programa original para poder
proteger al autor original de la responsabilidad de
estas versiones.
5 No discriminación contra Las condiciones de uso del programa no pueden
personas o grupos discriminar contra una persona o un grupo de
personas.
Página | 17
Administración de Sistemas Operativos Tema 1: Introducción
N° Condición Descripción
6 No discriminación contra usos No se puede negar a ninguna persona hacer uso
del programa para ningún fin como, por ejemplo,
comercial o militar.
7 Distribución de la licencia Los derechos del programa deben aplicarse a
todos quienes se redistribuyen el programa sin
ninguna condición adicional.
8 La licencia no debe ser específica Los derechos garantizados al usuario del
de un producto programa no deben depender de que el programa
forme parte de una distribución o paquete
particular de software.
9 La licencia no debe restringir otro La licencia no debe poner restricciones en otros
software programas que se distribuyen junto con el
software licenciado.
10 La licencia no debe ser No puede existir ninguna disposición de la
tecnológicamente neutra licencia que obligue al uso de una tecnología
concreta.
Tabla 1.1: Lista de condiciones que debe cumplir un
programa para ser considerado Open Source
Estas condiciones también son aplicables a cualquier programa que sea software libre y
pueden ayudarnos a matizar sus implicaciones.
Lo que diferencia al software libre del resto del software es un aspecto legal: La licencia,
esta se trata de un contrato entre el autor o propietario de los derechos y los usuarios; que
estipula lo que éstos pueden hacer con su obra: Uso, redistribución, modificación, etc., y en qué
condiciones, Es decir, la licencia contiene las normas de uso a las que han de atenerse los
usuarios, los distribuidores, los integradores y otras partes implicadas en el mundo de la
informática.
Las condiciones y/o restricciones que imponen las licencias sólo pueden ser precisadas por
los propios autores, que según la normativa de propiedad intelectual son los propietarios de la
obra. La propiedad de la obra será de los autores, ya que la licencia no supone transferencia de
propiedad, sino solamente derecho de uso y, en algunos casos, de distribución. Es necesario
saber que cada nueva versión de un programa es considerada como una nueva obra. El autor
tiene, otra vez, plena potestad para hacer con su obra lo que le apetezca, incluso distribuirla con
términos y condiciones totalmente diferentes, es decir, una licencia diferente a la anterior.
Página | 18
Tema 1: Introducción Administración de Sistemas Operativos
licencia era software generado en universidades con proyectos de investigación financiados por
el gobierno de los Estados Unidos.
Entres las licencias de tipo BSD podemos encontrar: La de X Window, Tcl/Tk y Apache. La
mayoría de ellas son una copia calcada de la original de Berkeley, modificando todo lo referente
a la autoría. Otras, como la Apache, incluyen alguna cláusula adicional, como la imposibilidad
de llamar las versiones redistribuidas de igual manera. Todas suelen incluir, como ella, la
prohibición de usar el nombre del propietario de los derechos para promocionar productos
derivados.
Asimismo, todas las licencias, sean de tipo BSD o no, incluyen una limitación de garantía
que es en realidad una negación de garantía, necesaria para evitar demandas legales por
garantías implícitas. Aunque se ha criticado mucho esta negación de garantía en el software
libre, es práctica habitual en el software propietario, que generalmente sólo se garantiza que el
soporte es correcto y el programa en cuestión se ejecuta.
La Licencia Pública General del proyecto GNU, más conocida por su acrónimo en inglés
GPL, es la licencia más popular y conocida de todas las licencias del mundo del software libre.
Su autoría corresponde a la Free Software Foundation (promotora del proyecto GNU) y en un
principio fue creada para ser la licencia de todo el software generado por la Free Software
Foundation. Sin embargo, su utilización ha ido más allá hasta convertirse en la licencia más
utilizada (más del 70% de los proyectos anunciados en FreshMeat están licenciados bajo la
GPL), incluso por proyectos bandera del mundo del software libre, como es el caso del núcleo
Linux.
La licencia GPL está pensada para asegurar la libertad del código en todo momento, ya que
un programa publicado y licenciado bajo sus condiciones nunca podrá ser hecho propietario. Es
más, ni ese programa ni modificaciones al mismo pueden ser publicados con una licencia
diferente a la propia GPL.
También incluye negaciones de garantía para proteger a los autores. Asimismo, para
proteger la buena fama de los autores originales, toda modificación de un fichero fuente debe
incluir una nota con la fecha y autor de cada modificación.
Las licencias de software libre han sido fuente de inspiración para otros recursos
intelectuales, de tal modo que muchos de ellos las han adoptado de manera directa,
especialmente en el caso de la documentación o la fotografía, en otros casos han sido adaptadas
ligeramente, como es el caso de la pionera Open Audio License.
Página | 19
Administración de Sistemas Operativos Tema 1: Introducción
Poner obras bajo una licencia Creative Commons no significa que no tengan copyright. Este
tipo de licencias ofrecen algunos derechos a terceras personas bajo ciertas condiciones. ¿Qué
condiciones? bajo las condiciones mostradas en la siguiente lista las cuales podemos escoger o
unir según nuestra conveniencia.
Sin obra derivada (No Derivate Works): El material creado por un artista puede ser
distribuido, copiado y exhibido pero no se puede utilizar para crear un trabajo derivado del
original.
Compartir igual (Share Alike): El material creado por un artista puede ser modificado
y distribuido pero bajo la misma licencia que el material original.
Página | 20
Tema 1: Introducción Administración de Sistemas Operativos
Hay un total de seis licencias Creative Commons (ver tabla 1.2) para escoger. Las cuales
están formadas por distintas combinaciones de las cuatro condiciones mostradas en el apartado
anterior. Estas seis licencias son:
Simbología Descripción
Reconocimiento: El material creado por un artista puede ser
distribuido, copiado y exhibido por terceros si se muestra en los
créditos.
Hemos podido observar la importancia que tienen las licencias dentro del mundo del
software libre y de los demás recursos libres. Así como también presentamos algunas de las
licencias más importantes que existen dentro de la gran variedad de licencias del software libre,
su motivación, sus repercusiones y sus ventajas e inconvenientes.
En definitiva, podemos decir que la GPL trata de maximizar las libertades que tiene el
usuario del software (lo reciba directamente de su autor o no), mientras que las licencias tipo
BSD lo que hacen es maximizar las libertades del modificador o redistribuidor.
Página | 21
Administración de Sistemas Operativos Tema 1: Introducción
4. Introducción a la administración
Cada sistema debe tener su propio administrador o persona encargada de que todo esté a
punto en cada momento. Esta labor requiere una serie de conocimientos que los usuarios finales
no necesitan dominar. Además, es necesario invertir un tiempo considerable para estos
menesteres.
La administración del sistema es uno de los aspectos menos estándar de un sistema tipo
Unix. Tanto las órdenes empleadas como los archivos de configuración pueden variar de unos
sistemas a otros. Hay que señalar que el mejor aliado de cualquier administrador que se precie
de serlo es el manual (man) del sistema, donde podemos encontrar todas las peculiaridades de
nuestro sistema concreto que nos ayudarán a resolver cualquier tipo de problema.
Un sistema informático pasa por varias etapas a lo largo de su vida (ver figura 1.11). Desde
el punto de vista del administrador del sistema, cada etapa queda caracterizada por un conjunto
distinto de actividades que es necesario llevar a cabo.
Se establecen qué problemas tiene que solucionar el sistema informático, a que actividades
de la organización debe dar soporte y qué tipo de servicios debe prestar. El resultado es un
documento de requisitos que recoge todos los aspectos mencionados anteriormente.
Una vez conocidos los requisitos, se analiza qué componentes hay que utilizar para satisfacer
dichos requisitos. Los componentes generalmente son de tipo: Hardware y software.
Página | 22
Tema 1: Introducción Administración de Sistemas Operativos
Configuración hardware y software de forma que el sistema cumpla los requisitos exigidos
Una vez instalados los componentes es necesario adaptarlos a las necesidades específicas del
sistema. Una vez configurados todos los componentes, éstos proporcionarán los servicios tal y
como se especificó en el documento de requisitos.
El sistema se encuentra ya en funcionamiento y prestando los servicios para los que fue
creado. Durante todo el tiempo de servicio será necesario mantener actualizado el software para
evitar errores y problemas de seguridad, funcionalidades, ajustar parámetros de rendimiento,
etc.
Si el sistema queda obsoleto, será necesaria la implantación de uno nuevo. Esta etapa
asegura que se podrá reutilizar, a ser posible, la totalidad de los datos y hacer que la migración
hacia el nuevo sistema se haga de forma progresiva, reduciendo al mínimo el tiempo en el que el
sistema se encuentra inoperativo.
Los sistemas tipo Unix diferencian entre los distintos usuarios, de manera que se regula qué
es lo que podemos hacerle a otros usuarios o al propio sistema. Cada uno de ellos tiene su
propia cuenta, la cual incluye nombre de conexión, grupo al que pertenece, directorio de
arranque, etc. De todas las cuentas del sistema, sin duda alguna la más importante es la
denominada cuenta de administrador o superusuario, cuyo nombre de conexión es root. Esta
cuenta es siempre creada automáticamente en la instalación de cualquier sistema tipo Unix,
momento en que se establece una palabra clave inicial. Es un aspecto clave en el mantenimiento
de la seguridad informática asegurar la confidencialidad de la clave del administrador.
Normalmente las cuentas de usuarios tienen asociadas una serie de restricciones, de forma
que nadie pueda molestar al resto, a lo sumo a ellos mismos. Nadie va a poder borrar directorios
como /etc o /bin, ni nadie va a poder desactivar una impresora. Todo este tipo de restricciones
no son aplicables al administrador (root). El administrador tiene plenos poderes para borrar,
crear o modificar cualquier archivo o directorio del sistema, para ejecutar programas especiales
o para dar formato al disco. Como root puede hacer todo lo que desee, es necesario que extreme
sus precauciones, ya que si no es así, las consecuencias pueden ser catastróficas.
Normas para prevenir los accidentes cuando estamos conectados como administradores del
sistema:
Después de teclear una orden y antes de pulsar la tecla Enter, verificar las
consecuencias que pueden producirse. Por ejemplo, antes de borrar un directorio, releer
la orden con objeto de comprobar que todo es correcto.
Utilizar un prompt diferente para la cuenta de root. Lo más habitual es emplear como
prompt el carácter #.
Página | 23
Administración de Sistemas Operativos Tema 1: Introducción
Se deben habilitar las normas apropiadas de acceso, en la medida en que los propietarios de
cada recurso lo autorizan. Los procesos de definición y exigencia de estas normas constituyen
los dos elementos esenciales de la seguridad de los sistemas.
El administrador del sistema o superusuario tiene una serie de responsabilidades que pueden
ser divididas en tres grupos: Responsabilidades hardware, software y responsabilidades con los
usuarios.
Responsabilidades hardware
Comprobar el estado de los periféricos y ser capaz de buscar el fallo en caso de erros de
la instalación.
Página | 24
Tema 1: Introducción Administración de Sistemas Operativos
Responsabilidad software
La responsabilidad sobre el mantenimiento del software es cada vez más importante puesto
que a medida que se emplean sistemas para proporcionar servicios complejos, el software se
hace cada vez más difícil de mantener.
Crear y mantener los sistemas de archivos, detectando y corrigiendo los posibles errores
que puedan producirse.
Diseñar e implementar las rutinas para realizar copias de seguridad, así como para su
posterior recuperación.
Añadir nuevos usuarios y dar de baja a los que ya no se conectan al sistema. Esto cobra
especial relevancia cuando existen políticas de acceso con fines económicos.
Página | 25
Administración de Sistemas Operativos Tema 1: Introducción
Tener a los usuarios informados en todo momento de los posibles nuevos servicios y sus
características. También es necesario que los usuarios conozcan las políticas de
seguridad y de prestación de servicios, de forma que el uso de los sistemas se haga
siempre dentro del marco legal de cada país.
Pueden existir sistemas con políticas que permitan conocer en todo momento qué está
haciendo un usuario y de qué forma está haciendo uso del servicio prestado por el
sistema informático. Es este caso el usuario debe ser informado de las medidas de
inspección que se pueden llevar a cabo sobre sus datos y sus actividades.
Todo administrador debe tener siempre presente los siguientes aspectos relacionados con la
seguridad:
El administrador del sistema tiene acceso sin restricciones a todos los recursos. Si un
administrador no es consciente de lo anterior, posiblemente sea él mismo el que tire el
sistema abajo sin necesidad de ningún tipo de ayuda externa, es decir, que no serán
necesarios agentes externos que causen el caos dentro del sistema ya que será él mismo
el que los cause.
Los usuarios deben emplear contraseñas adecuadas. Es aconsejable por parte del
administrador buscar posibles cuentas de usuarios sin contraseña. La idea es que en
ocasiones resulta útil ponerse en el papel de quienes puedan atentar contra la seguridad
del sistema con objeto de conocer los puntos débiles de nuestro sistema.
Página | 26
Tema 1: Introducción Administración de Sistemas Operativos
Los directorios del sistema, tales como /etc, /bin, /dev, etc., no deben tener permiso de
escritura para los usuarios ordinarios.
El acceso al terminal que actúa como consola, así como a los terminales donde se puede
acceder como root, deben estar restringidos. Dicho de otro modo, sólo debe ser posible
conectarse como administrador del sistema desde aquellos terminales que se consideren
seguros.
La política de seguridad debe estar perfectamente definida siempre que los mecanismos
de seguridad del sistema tipo Unix lo permita.
Aplicar cuanto antes las correcciones de seguridad que vayan publicando los
proveedores del software de nuestro sistema.
Siguiendo todos las normas citadas anteriormente no conseguiremos que nuestro sistema sea
inexpugnable, pero la falta de cumplimiento de dichas normas asegura que nuestro sistema tiene
agujeros. La seguridad es un aspecto fundamental que debe tener en cuenta todo administrador
de sistemas tipo Unix, y dicha seguridad comienza por no abusar de los privilegios de root.
Página | 27