Académique Documents
Professionnel Documents
Culture Documents
MAESTRÍA EN SOFTWARE LIBRE
Administración de Sistemas GNU/Linux
Módulo 1 ‐ Introducción al sistema operativo GNU/Linux
PEC1 — Primera Prueba de Evaluación
Continua
Presentado por:
INÉS MARÍA OLIVEROS HERNÁNDEZ
Octubre 14, 2010
PEC1, 2010‐2011
PARTE 1
En una entrevista del 2004, el profesor Andrew S. Tanenbaum dijo:
I wasn't all that impressed with the monolithic design of Linux 0.01. I think I have made that point a
couple of times already.
Fuente original: http://www.cs.vu.nl/~ast/brown/rebuttal/
a) ¿A qué aspecto del sistema operativo se refiere?
En esta entrevista, Tanenbaum se refiere al diseño del kernel monolítico de Linux 0.01.
¿Qué opciones hay y cuáles son las ventajas e inconvenientes de cada una?
El diseño del kernel monolítico está unido en una sola pieza, pero es conceptualmente
modular en las diferentes tareas; el problema con este tipo de kernel es que crece muy
rápido y se vuelve inmanejable en el desarrollo de los mismos. (Tomado del documento
Introducción al Sistema Operativo GNU/Linux ‐ OUC, Josep Jorba Esteve; pág. 24).
Un sistema operativo con núcleo monolítico concentra todas las funcionalidades posibles
(planificación, sistema de archivos, redes, controladores de dispositivos, gestión de memoria,
etc.) dentro de un gran programa. El mismo puede tener un tamaño considerable, y deberá
ser recompilado por completo al añadir una nueva funcionalidad. Todos los componentes
funcionales del núcleo tienen acceso a todas sus estructuras de datos internas y a sus rutinas.
Un error en una rutina puede propagarse a todo el núcleo, siendo esto un gran
inconveniente.
Algunos de los sistemas operativos que utilizan kernel monolítico son:
• Núcleos tipo Unix (Linux, Syllable, FreeBSD, NetBSD, OpenBSD).
• Núcleos tipo DOS (DR‐DOS, MS‐DOS, Microsoft Windows 9x)
• Núcleos del Mac OS hasta Mac OS 8.6
• OpenVMS
• XTS‐400
Existen los microkernel, que son una alternativa para el gran inconveniente que presentan los
kernel monolíticos. En los microkernel las partes funcionales están divididas en unidades
separadas con mecanismos de comunicación estrictos entre ellos, para evitar que un fallo en
una rutina dañe todo el núcleo.
Algunos de los sistemas operativos que utilizan microkernel son: AIX, AmigaOS, Amoeba,
Minix, Hurd, NeXTSTEP, L4, Netkernel, RaOS, RadiOS, ChorusOS, QNX, SO3, SymbOS.
(Tomado de http://es.wikipedia.org/wiki/N%C3%BAcleo_monol%C3%ADtico)
Realizado por: INÉS MARÍA OLIVEROS HERNÁNDEZ 2
Algunos SO DIFERENCIAS
con Kernel
Monolítico
Linux • Empezó con un kernel monolítico, pero actualmente Linux es un núcleo
monolítico híbrido.
• Los controladores de dispositivos y las extensiones al núcleo se pueden
cargar y descargar fácilmente como módulos, mientras el sistema continúa
funcionando sin interrupciones.
• Los controladores pueden ser prevolcados (detenidos momentáneamente
por actividades más importantes) bajo ciertas condiciones. Esta habilidad
fue agregada para gestionar correctamente interrupciones de hardware, y
para mejorar el soporte de multiprocesamiento simétrico.
(Tomado de http://es.wikipedia.org/wiki/Linux_%28n%C3%BAcleo%29)
Mac OS • XNU es un híbrido y tiene características tanto de los núcleos monolíticos
como de los micronúcleos. Intenta hacer un mejor uso de las dos
tecnologías.
• Tiene capacidad de pasar mensajes de los micronúcleos, permitiendo una
mayor modularidad y que grandes porciones del SO se beneficien de la
protección de memoria.
• Permite mantener la velocidad de los núcleos monolíticos para desempeñar
determinadas tareas.
(Tomado de http://es.wikipedia.org/wiki/XNU)
OpenVMS Núcleo monolítico con los módulos loadable. Los módulos dinámicamente
loadable incurren en gastos indirectos pequeños cuando están comparados a
construir el módulo en la imagen del núcleo.
(Tomado de http://www.worldlingo.com/ma/enwiki/es/Monolithic_kernel)
Algunos SO DIFERENCIAS
con
Microkernel
Amoeba Los servicios suministrados por el núcleo incluyen threads, segmentos de
memoria, mecanismos de IPC (RPCs y mensajes) y E/S.
(Tomado de
http://es.wikipedia.org/wiki/Amoeba_%28Inform%C3%A1tica%29)
Minix Maneja la administración de procesos de bajo nivel, scheduling, interrupciones
y el reloj, y provee algunos servicios de bajo nivel a componentes del espacio
de usuario.
Estructura Microkernel de MINIX:
Capa 1: Esta es la capa que interactúa directamente con el hardware.
Capa 2: Contiene todo lo concerniente a los procesos de E/S, uno por cada tipo
de dispositivos (tareas).
Capa 3: Aglutina los procesos conocidos como procesos servidores. Se ejecutan
en un nivel menos privilegiado que el kernel o las tareas, y no acceden
directamente a los puertos de E/S.
Capa 4: Finalmente aquí se alojan todos los procesos de usuario tales como
shells, editores, compiladores, programas, etc.
(Tomado de http://es.wikipedia.org/wiki/Minix)
SymbOS Su Micronúcleo, que realiza multitarea preferente (preemptiva), orientada a
Realizado por: INÉS MARÍA OLIVEROS HERNÁNDEZ 3
prioridades y administra una memoria RAM de hasta 576 Kilobytes.
(Tomado de http://es.wikipedia.org/wiki/SymbOS ).
QNX Es un sistema operativo tiene un diseño de micronúcleo muy minimalista. Este
sistema ha conseguido llegar a las metas del paradigma del micronúcleo con
mucho más éxito que Mach. Se usa en situaciones en que no se puede permitir
que haya fallos de software, lo que incluye desde brazos robóticos en naves
espaciales, hasta máquinas que pulen cristal donde un pequeño error podría
costar mucho dinero. (Tomado de
http://es.wikipedia.org/wiki/N%C3%BAcleo_%28inform%C3%A1tica%29)
Hurd • Hurd intenta superar los núcleos tipo Unix en cuanto a funcionalidad,
seguridad y estabilidad, aun manteniéndose compatible con ellos. Esto se
logra gracias a que Hurd implementa la especificación POSIX (entre otras),
pero eliminando las restricciones arbitrarias a los usuarios.
• Hurd consiste en múltiples servidores ejecutándose simultáneamente. En
lugar de un solo programa enorme que controle desde el reloj hasta el
manejo de la red, en Hurd cada una de estas tareas es gestionada por un
servidor independiente. Esto hace que el desarrollo de Hurd sea mucho
más fácil, ya que es menos probable que el hacer cambios en un servidor
tenga efectos indeseados en otros servidores.
(Tomado de http://es.wikipedia.org/wiki/Hurd)
RadiOS El micronúcleo de RadiOS (RMK) tiene un conjunto de llamadas al sistema
compatible con QNX Neutrino 6.1. El Administrador de Tareas (Task Manager,
equivalente al administrador de procesos en QNX) tiene también el formato de
los mensajes compatibles. Por último, RadiOS C y las librerías se basan también
en el código de libc QNX 6.1.
(Tomado de http://es.wikipedia.org/wiki/RadiOS)
b) Es todavía el caso de las versiones actuales de Linux? Cuál ha sido su evolución histórica?
En sus inicios, Linux fue desarrollado con un kernel monolítico. Esto causó asombro en esa
época (asunto de una famosa y acalorada discusión entre Linus Torvalds y Andrew S.
Tanenbaum.), porque el microkernel era el que se utilizaba en la mayoría de los sistemas
operativos de entonces. Su creador, Linus Torvalds, decidió usar el kernel monolítico porque
era un trabajo muy duro y complejo sacarle el máximo provecho a los microkernel. Más
adelante, se dieron cuenta que el kernel monolítico tenía una desventaja mayor, y era que
crecía muy rápido, y esto hacía complicado el desarrollo del mismo. Para solucionar este
problema, usaron módulos de carga dinámica, que permitían simplificar el kernel y ofrecer
otras funcionalidades como elementos que se pueden programar por separado. En este
punto de la evolución del kernel de Linux, ya se hablaba de un kernel mixto, porque es
monolítico pero ofrece una serie de módulos que complementan el kernel y se comportan
como los microkernel. En la actualidad, el kernel de Linux es considerado molítico híbrido.
(Basado en del documento Introducción al Sistema Operativo GNU/Linux ‐ OUC, Josep Jorba
Esteve; pág. 24).
Realizado por: INÉS MARÍA OLIVEROS HERNÁNDEZ 4
c) Documentarse en estos aspectos sobre los sistemas Minix, BSD, Linux y Mac OS‐X y realizar
una comparación.
SISTEMA ATRIBUTOS / CARACTERÍSTICAS
OPERATIVO
Minix • Al ser copia de UNIX las llamadas al sistema de minix cumplen con el
Standard Posixx.
• Es particularmente apropiado para PCs de bajo costo, sistemas con
recursos limitados y aplicaciones embebidas.
• Está basado en la arquitectura de microkernel, y originalmente su
principal función era educacional.
• Uso de la pila de protocolos TCP/IP.
• Sistema de ventanas X11.
• Multiusuario.
(Tomado de http://personal.redestb.es/mick/fso/llamadas/sistema.htm)
BSD • Este SO estrenó el protocolo TCP/IP, en 1984. Poseía muchas facilidades
de red y el nuevo sistema de archivos Berkeley Fast filesystem. Un grupo
de desarolladores hicieron mejoras al kernel y lanzaron el primer NetBSD
en 1993, poco tiempo después otro grupo lanzó FreeBSD. Otro
desarrollador Theo de Raat, tuvo diferencias con su grupo de trabajo y
desarrolló por su cuenta OpenBSD.
• Este sistema operativo, se concentra en la portabilidad, el cumplimiento
de normas y regulaciones, corrección, seguridad proactiva y criptografía
integrada.
(Tomado de http://www.wikilearning.com/tutorial/historia_de_los_bsd‐
historia_de_los_bsd/6536‐1)
Linux • Linux es un kernel monolítico. Eso quiere decir que el núcleo hace todo
(proporciona todos los servicios del sistema operativo) y todas las capas
del núcleo tienen acceso a todas las estructuras de datos, rutinas y
componentes del sistema.
• Es capaz de linkar módulos en tiempo de ejecución.
• Tiene un diseño reentrante de modo que pueden existir varios procesos
en modo núcleo 'ejecutándose' a la vez.
• Tiene soporte para aplicaciones de usuario multihilo. Antes del kernel 2.0
los hilos en aplicaciones de ususario se gestionaban desde librerías en
modo usuario.
• Admite multiproceso simétrico (SMP).
(Tomado de http://usuarios.multimania.es/nanoelduende/linux/charla‐
kernelv1‐0‐html.html)
Mac OS‐X • Tiene un núcleo de la familia UNIX mas específicamente deriva de
Nexstep que era un sistema operativo cuyo núcleo tenía código del kernel
Mach y del de BSD.
• Utiliza como gestor de ventanas x11 característica que comparte con
otros sistemas Unix.
• Tiene una interfaz gráfica desarrollada por Apple que se llama Aqua.
Realizado por: INÉS MARÍA OLIVEROS HERNÁNDEZ 5
SISTEMA ATRIBUTOS / CARACTERÍSTICAS
OPERATIVO
• La multitarea preventiva y la memoria protegida mejoraron la habilidad
del sistema para ejecutar múltiples aplicaciones simultáneamente sin
interrupciones.
• El acceso restringido a los archivos del sistema es responsable de gran
parte de la seguridad.
• Mac OS X es un sistema UNIX certificado.
(Tomado de http://es.wikipedia.org/wiki/Mac_OS_X)
d) Qué conclusiones podéis sacar sobre las posibles aplicaciones de estos sistemas operativos
en ordenadores de sobremesa, servidores, maquinaria de control industrial y dispositivos
móviles?
• Minix: es usado para computadoras de escritorio.
• BSD: es un Sistema Operativo orientado a los escritorios. Su objetivo radica en la facilidad
de uso y de instalación gráfica gracias a un programa que instala y configura
automáticamente un escritorio con KDE por defecto.
• Linux: es usado para supercomputadoras, computadoras de escritorio, portátiles,
computadoras de bolsillo, teléfonos móviles, sistemas embebidos, videoconsolas,
servidores de Internet, y otros dispositivos.
• Mac OS X: usa el protocolo Exchange Web Services para tener acceso a Exchange Server
2007, esto lo orienta a servidores web.
Más adelante en la misma entrevista, Tanenbaum indica el siguiente:
Linus used MINIX as his development platform. There is no dispute about that. He also used some
ideas from MINIX. But MINIX wasn't original either. Here is a little bit of the history
Linux used ideas from MINIX
MINIX used ideas from UNIX
UNIX used ideas from MULTICS
MULTICS used ideas from CTSS
CTSS used ideas from FMS
In science, all work is based on what came before it. Nothing unusual here. What Linus didn't do
was steal the MINIX code. That has been well documented.
e) Buscad qué similitudes y qué diferencias mayores se pueden encontrar entre UNIX y
MULTICS.
Similitudes
• Algunas ideas del Multics fueron desarrolladas más tarde en el Unix.
• Las características de MULTICS se convirtieron en las bases para UNIX.
• El nombre de los comandos.
• La multitarea, la gestión de archivos y la interacción con usuarios.
Diferencias:
• La filosofía de diseño fue muy diferente, se centró en mantener el sistema tan pequeño y
simple como fuese posible, y de este modo se corrigieron algunas deficiencias de Multics.
• UNIX usa el concepto de memoria de proceso, separado del de la memoria utilizada para
mantener mapeados los archivos.
Realizado por: INÉS MARÍA OLIVEROS HERNÁNDEZ 6
(Tomado de http://es.wikipedia.org/wiki/Multics y http://temariotic.wikidot.com/unix‐
evolucion)
PARTE 2
Para esta parte práctica, se deberá hacer al menos dos instalaciones de GNU/Linux, en una
configuración de despacho (es decir no pensado para servidor o netbook) y con un mismo gestor de
ventanas en los dos casos (Gnome, KDE, o el que quieran pero que sea el mismo en todas las
instalaciones). Podéis usar el material distribuido con los apuntes de la asignatura (Debian Lenny,
Fedora 13 y Ubuntu 10.04), descargar las imágenes directamente desde Internet o aprovechar
material que ya tengáis a disposición. Aseguraos tan sólo que una distribución sea de la línea
RedHat/Fedora/Mandrake y la otra de la línea Debian/Ubuntu.
Práctica de Instalación:
Tomé un computador que tenía el sistema operativo Windows Vista, y le instalé Fedora y Ubuntu,
formateando todo el disco dura, para dejarlo sólo con sistemas operativos de Software Libre.
Para la instalación, utilicé los CD’s que nos enviaron de la UOC.
• Instalando Debian Lenny 5.0: primero empecé instalando Debian Lenny 5.0, pero al finalizar la
instalación me pedía otro CD que no tenía y no pude terminarla. A continuación muestro algunas
fotos de saqué de esta instalación:
Realizado por: INÉS MARÍA OLIVEROS HERNÁNDEZ 7
Realizado por: INÉS MARÍA OLIVEROS HERNÁNDEZ 8
Cuando llegué a este punto, inserté el CD de Debian que pide, pero no funcionó. Inserté
uno por uno los otros pero tampoco funcionaron y me tocó abortar la instalación.
Instalando Ubuntu 10.04: al ver que no pude instalar Debian, entonces empecé a instalar Ubuntu
10.04 satisfactoriamente. La instalación de Ubuntu me pareció más fácil que la de Debian, más
intuitiva, más rápida y más fácil de seguir. A continuación muestro algunas fotos de saqué de esta
instalación:
Realizado por: INÉS MARÍA OLIVEROS HERNÁNDEZ 9
Realizado por: INÉS MARÍA OLIVEROS HERNÁNDEZ 10
• Instalando Fedora 13: para hacer la otra instalación, realicé una instalación de Fedora 13
satisfactoriamente. La instalación de Fedora es también amigable, fácil y rápida. A continuación
muestro algunas fotos de saqué de esta instalación:
Realizado por: INÉS MARÍA OLIVEROS HERNÁNDEZ 11
Realizado por: INÉS MARÍA OLIVEROS HERNÁNDEZ 12
a) Documentarse sobre el proceso de instalación: cuáles son las diferencias mayores que
habéis visto en el software para hacer la instalación, qué problemas habéis detectado y qué
soluciones habéis buscado y aplicado.
Una de las mayores diferencias la encontré en el tiempo que demora la instalación de Debian
Lenny 5.0 (aproximadamente 3 horas), con respecto al tiempo de instalación de las otras dos
distribuciones Ubuntu y Fedora (menos de 30 minutos).
También cito como diferencia, la forma de particionar las unidades de disco duro, a mí me
parecieron más fáciles las de Ubuntu y Fedora que la de Debian.
El mayor problema que me ocurrió, fue al finalizar la instalación de Debian, ya que me pedía
insertar un CD pero no lo reconoció y tuve que abortar la instalación de Debian. Otra
dificultad que tuve con Debian, fue al momento de hacer las particiones del disco duro,
Realizado por: INÉS MARÍA OLIVEROS HERNÁNDEZ 13
porque el instalador no es tan fácil de seguir y me perdí varias veces tratando de hacerlo.
En cambio, al instalar las otras dos distribuciones Fedora y Ubuntu, no tuve problemas con los
CD’s de instalación y tampoco con la partición del disco.
El único problema que he tenido al instalar estas dos distribuciones, es que debo configurar el
grub para que me permita escoger el sistema operativo con el que voy a iniciar el
computador, y como no tengo experiencia en este tipo de configuraciones, me toca volver a
instalar las distribuciones primero Fedora e instalar el Soporte LVM2 y por último Ubuntu e
instalar el Soporte LVM2. Esta solución la encontré en un foro de Taringa
(http://www.taringa.net/posts/linux/6075755/Hacer‐Que‐El‐Grub‐de‐Ubuntu‐Reconozca‐
Particion‐de‐Fedora.html).
b) Examinar el sistema de ficheros: qué diferencias detectan entre las dos instalaciones? Qué
ocupación del disco tienen ‐y si hay variaciones, como las explicáis‐?
UBUNTU 10.04 FEDORA 13
Número de Directorios 20 directorios 19 directorios
Directorios comunes /bin /boot /dev /etc /home /lib /lost+found /media
/mnt /opt /proc /root /sbin /selinux /srv /sys /tmp
/usr /var
Directorios diferentes /cdrom
Ocupación de disco 3,3 Gb 4,1 Gb
c) Se han creado los mismos usuarios y grupos? Examinen el contenido de los ficheros
/etc/passwd y /etc/group, así como los derechos de acceso de los ficheros de configuración
(en el directorio /etc).
UBUNTU 10.04 FEDORA 13
/etc/group 62 ítems 60 ítems
/etc/passwd 34 ítems 41 ítems
Derechos de acceso de root root
los ficheros de
configuración /etc
d) En la página web de cada una de las distribuciones que habéis usado, haced un breve
repaso de la documentación existente sobre el proceso de instalación. Cuál es la más
completa? En caso de aparición de problemas, en qué distro1 habéis encontrado mejores
respuestas para resolverlos, y con qué facilidad?
En las páginas web de Ubuntu y Fedora encontré información útil para ayudar en la
instalación. Me parece más completa la información de Ubuntu y tiene una comunidad muy
colaboradora.
En Ubuntu encontré las mejores respuestas para resolver los problemas que tuve con la
instalación, de forma fácil y rápida.
Página de Fedora: http://docs.fedoraproject.org/es‐ES/index.html
Página de Ubuntu: http://www.guia‐ubuntu.org
Realizado por: INÉS MARÍA OLIVEROS HERNÁNDEZ 14