Primera Parte:
Instalación y
Configuración de
Linux
Introducción a Linux:
Repaso de Generalidades
sobre Sistemas Operativos
Introducción
! Conceptos Generales sobre Sistemas
Operativos.
! Perspectiva
histórica del desarrollo de
Sistemas Operativos.
Conceptos Generales
! Sistema Operativo: intermediario entre la
persona y el hardware de una
computadora.
! Proporcionaentorno para la ejecución
de programas, cómodo y eficiente.
! Asignador de recursos.
! Programa de control.
Conceptos Generales
! Ejecución continua del sistema operativo
dentro de la máquina.
! Opera como programa de control y como
tal regula la ejecución de programas
para prevenir errores o uso inadecuado
del hardware.
Conceptos Generales
! Clasificación genérica del Software para
un sistema:
! Programas de sistema ----> Controlan
la operación de la computadora en sí.
! Programas de aplicación ----> Resuelven
los problemas de los usuarios.
Conceptos Generales
Aplicaciones Prg. de Aplicación
Compi ladores Editores
Sistema Operativo Prg. de Sistema
Leng. de máquina
Microprogamación HARDWARE
Disp. Físicos
Estructura de la Clasificación y su relación
con el hardware de la computadora.
Integración
usuario usuario usuario usuario
compilador ensamblador editor de Interfase
textos gráfica
Programas de aplicación
Sistema Operativo
Hardware
Perspectiva histórica
! Etapa 1:
! El programador escribía su programa y
luego lo controlaba en directo desde una
consola. Naturaleza interactiva directa.
! Manejadores para dispositivos E/S
especiales.
Perspectiva histórica
! Etapa 2:
! Operador del sistema.
! Trabajo por lotes.
! Secuencia automática de trabajos
(aparece el concepto de monitor
residente) aprovechando las tarjetas de
control.
Monitor residente
Cargador
Secuencia de
trabajos Monitor
Intérprete de
tarjetas de control
Area de
programas de
usuarios
Perspectiva histórica
! Etapa 3:
! Operación fuera de línea.
Lectora Unidad de CPU Unidad de Impresora
de tarjetas cinta cinta de líneas
! Independencia de dispositivos.
Perspectiva histórica
! Etapa 4:
! Uso de buffers y spoolers.
! Buffer: método para hacer simultánea la
E/S de un trabajo con su propio cómputo.
Se depositan los datos en él hasta que
el CPU puede leerlos (buffers de entrada)
o hasta que el dispositivo de salida los
puede aceptar (buffer de salida).
Perspectiva histórica
! SPOOL: Simultaneous Peripheal
Operation On-Line.
! Definición: uso del disco como buffer
para leer los más posible de los
dispositivos de entrada y almacenar
trabajos hasta que los dispositivos de
salida los puedan procesar.
SPOOL
Disco(s)
E/S
Lector de
tarjetas Impresora
CPU
Perspectiva histórica
! Etapa 5:
! Multiprogramación y Tiempo compartido.
! Multiprogramación:
varios trabajos
cargados en la memoria.
! El ambiente operativo cambia de uno a
otro y los va ejecutando.
! Requiere de mecanismos de planificación.
Distribución de Memoria en un
sistema multiprogramado
Monitor
Trabajo 1
Trabajo 2
Trabajo 3
Trabajo 4
Problemas en sistemas por lotes
! Ausencia de interacción entre el usuario
y sus trabajos.
! ElTiempo de Retorno puede ser alto
antes de que el sistema comience a
procesar el trabajo.
! Tienen que depurarse estáticamente
usando volcados que no los alteren
(snapshots dumps).
Tiempo compartido
! También llamados “de utilización directa”.
Permiten la comunicación en línea entre el
usuario y el sistema.
! La persona proporciona instrucciones
directamente al ambiente operativo o al
programa, y recibe una respuesta inmediata.
! Requieren un sistema de archivos en línea para
que los usuarios tengan acceso tanto a los
datos como a sus programas.
! Se conforman por varias acciones breves
donde los resultados del siguiente comando
pueden ser impredecibles.
Tiempo compartido (time sharing)
! Se usan técnicas de planificación de CPU y
multiprogramación para ofrecer a cada usario
que tiene cargado un programa en memoria una
pequeña porción de tiempo de proceso de la
máquina
! Tienen mecanismos para ejecución concurrente.
Perspectiva histórica
! Etapa 6:
! Sistemas distribuidos.
! Fuertemente Acoplados.
! Débilmente acoplados.
! Ventajas
! Compartición de recursos.
! Aceleración de los cálculos.
! Confiabilidad.
! Comunicación.
Perspectiva histórica
! Sistemas en tiempo real: deben ejecutar
los procesos dentro de restricciones
temporales bien definidas.
! En general no tienen almacenamiento
secundario o éste es limitado, por lo que
los datos se almacenan en memoria de
corto plazo o en ROM.
! Sistemas monousuario: comodidad y
rapidez de respuesta para el usuario, en
lugar de maximizar el uso del CPU y
periféricos.
Estructuras de SO´s
! Componentes del sistema.
! Servicios del Sistema Operativo.
! Programas del Sistema.
! Elementos para diseño e implantación
de sistemas operativos.
! Generación del Sistema Operativo.
! Procesos, archivos y shell.
! Llamadas al sistema que implementa
MINIX.
Componentes del Sistema
!Administración de procesos.
!Administración de la memoria
principal
!Administración del almacenamiento
secundario
!Administración de archivos.
!Sistema de Protección
!Redes
!Sistema de intérprete de comandos
Administración de procesos
! Crear/eliminarlos procesos de usuario
del sistema
! Suspender y reanudar la ejecución de
procesos
! Sincronización de procesos
! Comunicación entre procesos
! Manejo del bloqueo mutuo
Manejo de la memoria principal
!Controldel uso de las zonas de
memoria
!Decidirqué procesos cargar en
memoria
!Asignar/recuperarel espacio de
memoria según sea necesario
d st ac ó de
almacenamiento secundario
! Manejo del espacio libre
! Asignación del almacenamiento
! Planificación de las operaciones sobre el
disco
Admón. del sistema E/S
!Sistema de memoria caché mediante
buffers
!Interface con los manejadores de
dispositivos
!Manejadores de dispositivos
específicos
Administración de archivos
! Creación y eliminación de archivos
! Creación y eliminación de directorios
! Manejo de operaciones primitivas para
manipular archivos y directorios
! Correspondencia entre archivos y
almacenamiento secundario
! Copia de seguridad y respaldos
! Sistema de protección:
! Control del acceso a recursos definidos en
el sistema
! Redes:
! Procesamiento distribuido/colaborativo
! Comunicaciones
! Sistema de intérprete de comandos:
! Interno al shell o externo / híbrido
! Enunciados de control o ambiente gráfico
Servicios del Sistema Operativo
! Ejecución de programas
! Operaciones E/S
! Manipulación del sistema de archivos
! Comunicaciones
! Detección de errores
! Asignación de recursos
! Contabilidad
! Protección
Programas del sistema
! Manipulación de archivos
! Información de estado
! Modificación de archivos
! Apoyo a lenguajes de programación
! Carga y ejecución de programas
! Comunicaciones
! Programas de aplicación
Estructuras de Sistemas
Sencilla Programa de aplicación
MSDOS
Programa residente del sistema
Manejadores de
Dispositivos MSDOS
Manejadores del ROM BIOS
Estructuras de Sistemas
Monolítico
Programa 1 del usuario.
Programa 2 del usuario.
Sistema Operativo
Estructuras de Sistemas
Por Capas
6 El Usuario
5 Programas del Usuario
4 Control E/S
3 Com. Operador-Proceso
2 Admón. de memoria y disco
1 Multiprogramación
Estructuras de Sistemas
Máquinas virtuales
Computadoras
Virtuales
Sist. Interactivo Sist. Interactivo Sist. Interactivo
Sistema Operativo
Hardware Simple
Estructuras de Sistemas
Cliente-Servidor
Proceso Proceso Servidor Servidor de Servidor de Servidor de
cliente cliente del proceso la terminal archivos memoria Modo Usuario
Modo Núcleo
CLIENTE SERVIDOR CLIENTE
NUCLEO NUCLEO NUCLEO
Diseño e implantación
!Objetivos de diseño
!Mecanismos y políticas
!Implantación
Generación del sistema
! Selección del procesador.
! Memoria necesaria.
! Dispositivos disponibles.
! Opciones y parámetros diversos del
ambiente: buffers y su tamaño, algoritmo
de planificación para el CPU, núm.
Máximo de procesos, etc.
Introducción a Linux:
Desde UNIX hasta LINUX
Contenido
! Introducción
! Linux en el tiempo
! Distribuciones de linux
! GNU y Linux
! Instalación
! Completando el sistema
! Características generales
! Arquitectura general
! Seguridad en Linux
¿Qué es Linux?
! Sistema operativo Unix para diferentes
plataformas
! Creado por Linus Torvalds
! Inspirado del sistema operativo Minix
desarrollado por A. Tanenbaum para
apoyar su curso de sistemas operativos
Mitos acerca de Linux
! Linux no es un sistema operativo
! Linux ha sido creado por aficionados
! Linux no es Unix
! No hay software para Linux
! Linux es el único núcleo libre
! FreeBSD
! Hurs
! otros
Introducción a LINUX - 1
! MULTICS (MULTIplexed Information and
Computing Service; MIT, Bell Lab. y G.E.;
1965)
! UNIX™ (Thompson, Kernigham y Ritchie,
Bell Lab. ex AT&T; 1970)
! MINIX (Mini-UNIX; Tanenbaum; 1987)
! LINUX (Torvalds; 1991)
Introducción a LINUX - 2
LINUX vs UNIX™
! LINUX es gratuito (licencia GNU-GPL),
con disponibilidad del código fuente
! Ejecuta en muchas plataformas
hardware con bajos requerimientos (ej.
386 de 20 MHz con 20 MB RAM y 40 MB
HD)
! Compatible con red Microsoft (SMB) y
Apple (AppleTalk)
Introducción a LINUX - 3
LINUX vs Windows NT®
! LINUX es un UNIX
! Completo. Con todas las herramientas
de trabajo
! Estable
! Confiable (10% de los Servidores
Internet)
Distribución
! Conjunto formado por el núcleo (LINUX)
y utilidades específicas (que distinguen
las distribuciones)
! Gratuitas y comerciales
! Principales y secundarias, cada una con
sus respectivas peculiaridades
Distribuciones
! Red Hat
! Debian
! Slackware
! TurboLinux
! Caldera
! Otras (Suse, Stampede, Mandrake, Corel,
…)
Características Linux
! Multitareas/ Multiprogramación
! se pueden ejecutar varios programas a la vez
! Multiusuarios
! varios usuarios en sesión simultáneamente en el
sistema
! usuarios protegidos unos de otros
! Acceso a todo el sistema
! permite colocar trazas en aquellos puntos donde no
se sabe como se esta haciendo alguna tarea
! posible consultar código para encontrar errores
! a nivel académico es útil contar con los fuentes
Ejemplo ventaja acceso
! Configuración incorrecta de una IRQ (Int.
Req.)
! No sabemos si CPU recibe interrupciones
del dispositivo
! En otros sistemas:
! tan solo se puede sospechar que la IRQ esta
cambiada
! probar diferentes valores de IRQ hasta dar con el
correcto
! Linux: se puede colocar una traza en un
punto estratégico (rutina interrupción)
static void
ip_
ip_interrupt(
interrupt(int irq,
irq, void¨*dev_id,
void¨*dev_id, struct pt_
pt_regs *regs)
regs)
{
struct lp_
lp_struct *lp = &lp
&lp_table[0];
_table[0];
printk(“.”);
printk(“.”); /* código traza: imprime punto cada vez
que la impresora interrumpa a la CPU */
while (irq != lp->
lp->irq
irq)) {
if (++lp
(++lp >= &lp
&lp_table[LP_NO]);
_table[LP_NO]);
return;
return;
}
wake_
wake_up(&
up(&lplp->
->lp
lp__wait_q);
wait_q);
Otras características
! Facilidad de instalación
! mas fácil de instalar que otros sistemas
operativos
! De uso libre (free)
! lalicencia de Linux no requiere pagar para
ser usada
Herramientas de oficina para Linux
! Procesadores de textos
! Hojas de cálculo
! Bases de datos
! Herramientas de dibujo
! Ambientes gráficos
! Internet
Linux e Internet
! Servidores
! de nombres (BIND)
! de correo (sendmail, smail)
! IRC (Internet Relay Chat)
! HTTP
! News
! Acceso corporativo
! mecanismos de Proxy, traducción de
direcciones, servidor firewall,
! Clientes para la mayoría de los
servicios
! lectores de news
! navegadores web
! clientes FTP, GOPHER
! Comercio electrónico
! apache+SSL: posibilidad de transacciones
protegidas por internet, gracias a:
! SSLeay: librería que permite el uso de llaves
de más de 40 bits
Internet Enrutador
Conexión
Internet
[Link]
[Link]
[Link]
Linux
Servidor de [Link]
[Link] Terminales
[Link]
Zona
Linux desmilitarizada
Firewall [Link] / [Link]
[Link]
Intranet
[Link] / [Link]
Linux e Intranets
! Intranet
! permite ofrecer Internet dentro red de una
empresa
! variedad de arquitecturas
! seguridad
! Servidores Web
! Acceso a las bases de datos
! Acceso a servidores de archivos
! Desempeño en el kernel
! Administración de los recursos de la red
¿Y que más….?
! Traducción de direcciones IP
! traducción direcciones IP más completa
! posible traducir direcciones salientes
(direcciones enmascaradas) como
entrantes
! Entornos más amigables para los
usuarios
! incluir interfaces gráficas mejoradas
! facilitar el mundo a usuarios no expertos
Comparando desempeño y
confiabilidad de Linux
Linux
Confiabilidad
Sun Solaris
Windows NT
0 1 2 3 4 5
Linux
Desempeño
Sun Solaris
Windows NT
0 1 2 3 4 5
Comparación de los Costos de
Soporte de Linux
Número de
Incidentes Caldera Linuxcare Microsoft Novell Red Hat
1 $150 $195 $ 1 95 $200 N/ A
$7,500 w/o
24x7
10 $1,0 0 0 $ 1, 71 6 $1,6 9 5 $ 12,000 w/ $2,9 9 5
24x7
20 $1,5 0 0 N/ A N/ A N/ A N/ A
25 N /A $ 4, 14 4 N/ A N/ A $7,2 9 5
Linux en el tiempo
LINUX en el tiempo
1992
•Sun actualiza Solaris 2.0
•Microsoft actualiza
Windows 3.1
1991 1992
Octubre 1991
El Kernel de Linux es
actualizado a la versión
0.02
1994
• La versión 0.1 del
1993
kernel de Linux se
Microsoft
actualiza
actualiza
• Caldera comienza a
Windows NT
distribuir Linux
• S. u. S. monta el
primer CD
de Linux
1993 1994
Octubre 1994
IBM hace el debut
de OS/2 Warp
Finales de Verano 1995
Red Hat hace el debut de Red Hat
Linux 2.0 Beta
Noviembre 1995
Primer puerto Linux a Alpha
1996
Microsoft monta
Windows 95
1994 1995 1996 1997
Diciembre, 1994
Se funda software
Febrero 5, 1996
Red Hat
Apple aporta a Linux el
microprocesador PowerPC
Septiembre 2, 1998
Para unir sus dos más grandes
mercados, Caldera monta dos
subsidiarias: Caldera Systems para
Agosto 1998 Linux y Caldera Thin Clients
Sybase ofrece versiones gratis
del Adaptive Server Enterprise
para Linux
1998
Mayo 8, 1998 Julio 1998
Corel anuncia soporte Caldera actualiza
NetWare para
para Linux
Linux 1.0
Diciembre 17. 1998
Word Perfect 8 de Corel se puede obtener gratis para
usuarios de Linux; la compañía reporta 80,000 downloads en
un periodo de 12 horas.
Diciembre 8, 1998
Sun anuncia Linux para la
Noviembre, 1998 plataforma UltraSPARC
Debuta Red Hot Linux 5.2
1998
Octubre 22, 1998 Octubre 27, 1998
Informix Dynamic Server, El show más largo de Linux
Informix Dynamic 4GL para Linux llega a Atlanta; más de 200
y Informix SE para Red Hat Linux vendedores despliegan sus
se hicieron compatibles productos de Linux
Enero 27, 1999
Hewlett-Packard anuncia Marzo 1, 1999
soporte a Linux para HP Mylex anuncia soporte
NetServer haciendo equipo para Linux a través de toda
con Red Hat. la línea de productos RAID
Febrero 18, 1999
IBM anuncia planes para
Enero 26, 1999 armar servidores
Linux Kernel 2.2 es
Netfinity con Red Hat
actualizado
Linux y
Windows NT
Enero 1999 1999
Nestcape actualiza
Delegated Administrator para Linux Febrero 12, 1999
Febrero 5, 1999 Red Hat lanza el debu
Dell Systems empieza a montar de Response Link con
servidoresPowerEdge y soporte 24 x 7
estaciones de trabajo con Red Hat Linux
Marzo 2, 1999
• Oracle anuncia Oracle 8i para Linux
•Computer Associates acuerda desarrollar Unicenter TNG y Unicenter
TNG
Framework para Red Hat Linux
• El Santa Cruz Operation (SCO) agrega a Linux soporte binario para
UnixWare 7
•Compaq anuncia que sus servidores ProLiant 1850R, ProLiant 1600 y
ProSignia
720 son compatibles con una versión precargada de Red Hat Linux
Marzo 3, 1999
Sybase extiende
Marzo 22, 1999
Dell mont a su Precision 410 y estaciones de trabajo
soporte a usuarios
610 con Red Hat Linux 5.2 pre-instalado .
de Linux
Marzo 1999 Abril 5, 1999
SAP anuncia completo Caldera anuncia
apoyo para Linux soporte 24 x 7
Marzo 9, 1999
Marzo 1-4,1999 Compaq, IBM, Novell
Conferencia LinuxWorld y Oracle invierten en
y Expo en San José Cal. Red Hat
Julio, 2001
Caldera, luego de adquirir lo s
derechos de UNIX al co mprar
Junio, 2001 The Santa Cruz Operation, libera
RedHat libera las más recientes versinoes
su versión 7.1 de su OpenLinux
Junio, 2001
La NASA cancela un contrato
millo nario con Oracle par a
Usar M ySQL sobre Linux
Distribuciones Linux
Características principales
Las distribuciones
! Como parte del beneficio de la libertad
de distribución, algunas compañías y
asociaciones han desarrollado su
propia distribución de Linux
! Las distribuciones se diferencian por la
composición de
! la versión del núcleo del sistema operativo
(kernel)
! la combinación de utilerías que la
acompaña
! Número de versión actual del núcleo:
2.4.7
! Algunas distribuciones son realizadas
para algunas plataformas específicas
! Se pueden obtener:
! gratuitamente en internet vía FTP
! en uno o varios CD´s a un bajo costo
! como parte de un libro de Linux
! Distribuciones importantes:
! RedHat
! Slackware
! Caldera
! Debian
La distribución Red-Hat
! Constituye la base de implementaciones
más comerciales de Linux (p.e. Caldera)
! Utiliza un programa de instalación y un
formato de datos propios
! formato
llamado RPM (RedHat Package
Manager)
! Disponiblepara las computadoras Intel,
Alpha y SPARC
! Uno de sus puntos fuertes es seguridad
! la casi totalidad de las utilerías fueron
probadas en el ambiente de seguridad y
eventualmente modificadas
! No es necesario cargar todos los
archivos, a medida que se necesitan
pueden utilizarse
! Soporte de Xfree86Se cuenta con un
documento de ayuda de 250 páginas
! Información: [Link]
La distribución Slackware
! Compuesta de dos discos y un CD-ROM
! discos: contienen un pequeño núcleo Linux y
un programa de instalación que copia Linux
al disco duro
! CD-ROM: contiene los fuentes de Linux
! Patrick Volkerding tiene la
responsabilidad de esta distribución
! Distribución pensada en primer lugar para
las computadoras PC
La distribución Caldera
! Basada en distribución RedHat
! Cuenta con un conjunto completo de
software estándar preconfigurado, listo
para ser usado
! El producto comercializado se conoce
como OpenLinux, existen dos
versiones:
! OpenLinux Base
! OpenLinux Server
! ParaOpenLinux Base existe un conjunto
de herramientas de oficina conocida como
StarOffice que incluye:
! procesador de texto
! una hoja de calculo
! un graficador
! La ventaja es que StartOffice ya esta
integrado y adaptado
! Disponible para PCs 486 y Pentiums
! Información: [Link]
La distribución Debian
! Punto más importante: la gratuidad de la
totalidad del software que ofrece
! Los componentes se cargan por internet
! Página: [Link]
! Los componentes del software están
agrupados en conjuntos, pero reciben
nombres comprensibles
! Existe mucho trabajo de retroalimentación
! Los errores conocidos son enumerados
en la página web
! Los desarrolladores de Debian consultan
regularmente esta página y analizan los
mensajes de error
! Esta versión es una de las más robustas
de Linux
Otras distribuciones Linux en
inglés
" Linux PPC " TurboLinux
" Linux Pro "Yggdrasil Linux
" Linux Ware " DLX Linux
" MkLinux " DOS Linux
" Stampede Linux " hal91 Floppy Linux
" S.u.S.E. Linux " tomsrbt
Distribuciones no en inglés
! Conectiva Red Hat Linux
! versión brasileña de RedHat
! Delix DLD Linux
! distribución alemana de Linux
! Eagle Linux
! distribución alemana de Linux
! Eurielec Linux
! distribución española de RedHat
! Kheops Linux
! distribución francesa de RedHat
! MNIS Linux
! distribución francesa de Linux
! S.u.S.E. Linux
! distribución alemana disponible en alemán,
español, italiano y francés
! Mandrake Linux
! distribución mexicana de Linux
GNU y Linux
características y diferencias
Elegance in writing software is achieving maximum
functionality from minimal complexity
GNU y Linux
! GNU: GNU Not Unix
([Link]
! Proyecto lanzado en 1983 para
desarrollar un sistema operativo “libre”
parecido a Unix
! libertad de copiar el programa y darselo a
otros
! libertad de cambiar el software
! libertad de distribuir una versión mejorada y
de esta forma ayudar a la comunidad
Surgimiento GNU
! 1971 Richard Stallman empezó su
carrera en el MIT
! trabajo en grupo que solo usaba software
libre
! 1980´s casi todo el software era
propietario
! software tiene propietarios que prohiben
cooperación entre usuarios
! se tiene que pagar por usarlo
! Todacomputadora necesita un sistema
operativo para usarla
! Sistema operativo no solo es el kernel:
! compiladores, editores, correo, etc.
! Escribirsistema operativo completo es
un trabajo bastante largo
! 1983: surge GNU
! primer trabajo: realizar un sistema operativo
! se eligió Unix ya que todo el diseño había
sido probado y era portable
! 1990s: se había escrito o encontrado
casi todos los componentes excepto por
uno: el núcleo
! 1991: Linus Torvald termina de desarrollar
un núcleo de un sistema operativo
! Resultado: se cuenta con un sistema
GNU basado en Linux
! varias personas usan sistemas GNU basados en
Linux: Slackware, Debian, RedHat, y otros
! GNU no esta limitado a sistemas
operativos
! La libertad del software (que alguien lo
distribuya como propietario), se asegura
con:
! el concepto de copyleft
! las GPL: General Public Licence
Otras organizaciones
! FreeBSD ([Link]
! Xfree86
! GNOME
Red-Hat
La distribución del Red-Hat se usará como
ejemplo de instalación debido a ser:
" El principal impulsor del Proyecto GNOME
" Uno de los que más han apoyado al proyecto
GIMP
" Tener una interfaz de uso muy fácil
" El que posee excelentes utilerías de
configuración
" Uno de los más usados alrededor del mundo
Red Hat
! RPM (Redhat Package Manager)
! Programa instalador
! Cadena de distribución y de soporte
! Seguridad
! Documentación
Red Hat
La distribucion Red Hat puede ser
conseguida:
• En el CD del curso
• En la compra de algún libro sobre el
tema.
• [Link] o sitios espejo
• Por medio de amigos
Plataformas
! PC (Intel, AMD, Cyrix)
! SPARC (Sun)
! Alpha (Digital)
! 68x000 y PowerPC (Motorola)
! Otras como MIPS, Acorn, 8086 (HW-
HOWTO)
Requisitos de Sistema - PC
! 386 o mayor (hasta Pentium III, K6)
! 40MB de disco duro en modalidad texto,
o 100 MB con X
! 8MB de RAM
! Tarjeta de vídeo
! CD-ROM, tarjeta de red, floppy
Requisitos de Sistema - PC
CPU Uso
386 Dos usuarios
Lista de correo
486DX-2 66 Cinco usuarios
Lista de correo
Compilación pequeña
Pen tium Diez o más usuarios
Tres listas de correo
Dos compilaciones
Requisitos de Sistema - RAM
Usuarios Uso RAM
2 Lista de correo 8 MB
Entrada de noticias
5 Dos listas de correo 16 MB
Entrada de noticias
Dos solici tudes de páginas Web
10 Tres listas de correo 24 MB
Entrada de noticias
Seis solici tudes de páginas Web
Tres solici tudes de Gopher
Requisitos de Sistema - HD
Uso HD
Worksta tion texto 200 MB
Worksta tion X 850 MB
Server 1.7 GB
Custom (todo) 1.7 GB
Datos para la instalación - 1
! Discos duros: número, tamaño, cual es el
primario
! RAM: cantidad
! CD-ROM: tipo de interfaz
! Tarjeta SCSI: fabricante y modelo
! Mouse: tipo, número de botones, puerta
COM
Datos para la instalación - 2
! Tarjeta de video: productor, modelo y
cantidad de memoria vídeo
! Monitor: fabricante, modelo, frecuencia
de refresh horizontal y vertical
! Tarjeta de red: fabricante, modelo,
dirección IP, netmask, gateway, dirección
DNS, nombre del dominio, hostname
Instalación
Pasos Instalación
" Requerimientos
" Partición Nativa y Swap
" Disco de arranque
" Arranque
" Instalación
" LILO
Particiones
" Nativa: Partición principal, donde se
encuentra el kernel y el sistema
LINUX
" Swap: Espacio del disco destinado
para usarse como memroia virtual
Recomendado dejar el doble de lo
que se tiene en RAM
Particionamiento del HD
Linux necesita de dos particiones para
trabajar:
• Linux native (o ext2): área a disposición
para guardar datos
• Linux swap: área de memoria virtual
Linux puede leer otros formatos de
particiones (desde la versión actual se
puede instalar Linux en una partición DOS)
Area de swap
La memoria virtual es correlacionada con
la cantidad de memoria RAM instalada.
Implementa un mecanismo de cache entra
memoria RAM y HD
Parte de un mínimo de 16 MB hasta un
máximo de 128 MB. Sin embargo es posible
crear hasta 16 particiones de swap.
CD Red Hat - 1
El CD es de arranque. Contiene al nivel
mas alto las siguientes carpetas:
• doc: documentación varia (FAQ, guías,
etc.)
• dosutils: conjunto de herramientas de
instalación para DOS
• images: imágenes de los discos de
instalación
CD Red Hat - 2
! misc: código fuente para el proceso de
instalación
! RedHat: esta se divide en tres
subcarpetas:
! RPMS: paquetes binarios
! base: archivos chicos de setup
! instimages: imágenes utilizadas en la
instalación
Parámetros de configuración
! Ejemplo:
! HD: 4 GB (2GB dos, 64KB swap, 1.9GB ext2)
! RAM: 32 KB
! Teclado: genérico 101-key PC, español
! Mouse: genérico, 3 botones, PS/2
! Tarjeta de video: Trident 3D Image 975,
4MB
! Monitor: ViewSonic E40
! Tarjeta de red: 3com 3C509B Etherlink III
Parámetros de red
! Dirección IP: 192.168.1.<HostId>
! Netmask: [Link] (C)
! Gateway: [Link]
! DNS: [Link]
! Dominio: [Link]
! Hostname: Sala6-<HostId>
Métodos de instalación
! Gráfico
! Texto boot: text
! Experto boot: expert
! Recuperación boot: rescue
! Núcleo boot: linux <opciones>
Consolas Virtuales
Console Comando Contenido
1 Ctrl-Al t-F1 diálogo de instalación
2 Ctrl-Al t-F2 shell prompt
3 Ctrl-Al t-F3 log de instalación
4 Ctrl-Al t-F4 mensajes de sistema
5 Ctrl-Al t-F5 otros mensajes
7 Ctrl-Al t-F7 display gráfico
LILO (Linux Loader)
Se instala en el sector de arranque de un
disco (disco duro, floppy)
Se configura con el archivo /etc/[Link]
y el comando lilo
Se quita con el comando lilo -u
[Link]
# Start LILO global section
Boot = /dev
/dev//hda
Prompt
Vga = normal
Ramdisk = 0
# End LILO global section
image = /vmlinuz
/vmlinuz
root = /dev
/dev/hda3
/hda3
label = linux
other = /dev
/dev/hda1
/hda1
label = dos
table = /dev
/dev//hda
[Link]
! Copiar [Link] en una partición DOS
(es.: C:\[Link])
! Poner una copia de la imagen del kernel
(/vmlinuz) en la partición DOS
! Utilizar el comando:
loadlin c:\vmlinuz root=/dev/hda3 ro
Modos de instalación
! CD-ROM local
! HD
! NFS (/home/ftp/pub/cdrom/)
! FTP (pub/cdrom/)
! HTTP
Principios de TCP/IP
! Protocolo de comunicación
(Transmission Control Protocol/ Internet
Protocol)
! Desarrollado en UNIX, integrado en Linux
desde su creación
! Cada interfaz de red es identificada con
un número (dirección IP) del tipo
[Link], donde 0 < XXX < 255
Disco de Arranque
" Del CD de LINUX copiar a un disco la
imagen o el archivo que crea el disco
de arranque
" CD\images\[Link]
" CD\dosutils\[Link] destino fuente
" Para Windows o MS-DOS, el disco no
tendrá nada
Arranque
" Configurar el BIOS, para que
pueda arrancar desde la unidad de
CD-ROM
" Después de acabar la instalación
dejar el BIOS como estaba
Instalación
" Menú de bienvenida
" Elección de instalación/update
" Elección de idioma
" Pregunta que se tiene SCIC
" Pregunta si se tiene monitor a color
" Creación de las particiones
fdisk/diskdruid
Creación de las
particiones
" fdisk- Crea particiones, sin importar
lo que se tenga en el DD, se pierde
toda la información
" FIPS – Crea particiones sin borrar
ninguna particion actual del disco
duro, pero para ello es necesaria la
defragmentación del D.D.
" Disk Druid- Crea particiones con un
ambiente grafico mas amigable que el
Fdisk.
Instalación
" Asignar nombre a las particiones. Una
debe de ser el root (/)
" Formateado de la partición Swap
" Elección de las utilerías a instalar
" Formateado e instalación de las
utilerías seleccionadas
" Elección de mouse (2/3 botones)
" Elección de monitor
Instalación
" Elección de Tarjeta de Video
" Elección de Tarjeta de Sonido
" Selección de impresora
" Configuración de LAN (si se tiene)
" Selección de puerto de impresión
" Selección de puertos de comunicaciones
" Contraseña root
" Instalación LILO
LILO
" Linux-Loader
" Selecciona la partición donde se
encuentra el boot del sistema que
se desea arrancar, Windows o Linux
o etc.
Completando el sistema
XFREE ORG
¿ Qué es la Xfree Org ?
" Es una organización no lucrativa
" Se encarga de producir y distribuir el sistema de
ventanas “Xfree86”
" En un principio enfocada a plataformas Intel x86
" Actualmente se están enfocando a otras plataformas
" Información: [Link]
XFREE ORG
Algunas tarjetas soportada por Xfree86
" Bark logic: ARK1000PV, ARK1000VL,
ARK2000PV, ARK2000MT
" Chips&tech., S3, STB, Hercules, 3Dfx, Riva, DVD
" ATI Rage, Rage-II, Rage Pro, AGP
" IBM: 8514/A (and true clones), XGA-2
" 3Dlabs:GLINT 500TX, GLINT MX, Permedia,
Permedia 2, Permedia 2v
XFREE ORG
Configuración de Xfree86
" Para su configuración se ejecutan los archivos
XF86setup y xf86config
" XF86setup primero checa por archivos instalados
y que el usuario sea root
" Se adapta al lenguaje que se haya elegido (por
medio de la variable de ambiente LANG)
XFREE ORG
SuperProbe
" Es un programa que verifica la configuración de
video
" Verifica la tarjeta de video y su RAM
" Ve que la configuración del monitor sea válida
" Realiza varias pruebas de video
Windows-Managers
Un Window-Manager es el que se encarga de:
" La forma, posición, color y comportamiento de
una ventana
" Seleccionar y/o correr programas desde un
menú de escritorio
" La administración de recursos del ambiente
X11
Windows-Managers (Versiones)
Los Windows-Managers más comunes en Linux son:
" Enlightenment
Reconocido por su asombrosa presentación
gráfica
" Afterstep y Window-Maker
Reconocidos por su parentesco con NEXT-Step
" Fvwm, Lesstif y Fvwm95
Reconocidos por su parentesco con el MWM
(Moitf Window Manager)
Windows-Managers (Instalación)
Instalación de un Window Manager en Red-Hat:
" Comúnmente se usa RPM para instalarlos
" Afterstep y Enlighenment usan el subdirectorio
/usr/share para su configuración
" Enlightenment, Window-Maker y AfterStep usan sus
propias utilerías para configurar ventanas, fondo y
comportamiento del Window-Manager en sí
" Utilería de menús de escritorio es el wmconfig
¿Donde obtenerlos?
! Afterstep
! [Link]
!Enlightenment
! [Link]
!WindowMaker
! [Link]
! FVWM:
! [Link]
El Control-Panel de Red Hat
" Utilería que permite configurar kernel, usuarios,
espacio en disco, particiones y red
" Está compuesto por programas como:
"Glint: Encargado de instalar y desinstalar archivos RPM
"Fdisk-tool: Formatea y checa particiones montadas
"Kernel-tool: Checa dispositivos instalados bajo el
Kernel
"Time-tool: Configura fecha y tiempo
"Modem-tool: configurar el puerto del modem
Desktop Managers
Un Desktop Manager es:
" El encargado de controlar un escritorio X
" Un panel o programa que administra, copia, ejecuta,
renombra, borra o modifica archivos así como
programas
" Está compuesto comúnmente por una interfaz
gráfica que depende de un Window Manager
" Puede encargarse de reiniciar o apagar la máquina
Desktop Managers: GNOME
"Su distribución logra acoplarse con el
Enlightenment
"Cuenta con un panel de fácil y rápido uso
"Su interfaz es una de las más atractivas en el
ambito Linux
"Gnome cuenta con decenas de aplicaciones
" Infomación: [Link]
Aplicaciones GNOME
Gnome cuenta con aplicaciones como:
" Gnome ICQ
" Gnome RPM
" Gnome Games
" Gnome Editors, Gnumeric, Calculator,
Applets.
" Gnome Multimedia, File-Manager,
Control-Gnome
Desktops Managers: KDE
" KDE cuenta con su propio Window-Manager:
kwm
" Su interfaz es parecida a la de MS-Window 9x
" Es muy amigable y fácil de usar
" Fácil de configurar
" Cuenta con varias aplicaciones, entre ellas, varias
de oficina
" Información: [Link]
Desktops Managers: KDE
KDE tiene como aplicaciones :
" KDE multimedia, graphics
" KDE office
" KDE Networking
" KDE Games, Toys
" KDE Utilities
" KDE Organizer
Aplicaciones Oficina
Aplicaciones:
" Star-Office Por SUN
" WordPerfect-8 Por Corel
" Gnumeric, Gxedit Por GNOME
" KDE-Office Por KDE
Aplicaciones Gráficas
" XV, ImageMagic, Gqview
[Link]
[Link]
[Link]
" Electric Eyes (Red-Hat)
[Link]
" GIMP (GNU Image Manipulator Program)
[Link]
" Xanim Player
[Link]
Aplicaciones y librerías gráficas en 3D
• Glide corriendo con tarjeta aceleradora Voodoo2 y 3
API (Aplicattion Program Interface) para la
construcción de gráficas en 3D
• Mesa corriendo con tarjeta aceleradora Voodoo2 y 3
librería de graficas con un API muy similar al de
OpenGL [Link]
"AC3D Modeller
modelador de 3D para objetos y escenas
disponible como shareware
[Link]
html
Lenguajes de Programación
Los lenguajes más son:
" Perl
" Gnu-C, C++
" Java
" Tcl/Tk, GTK, CORBA, Qt.
" Ensamblador
El Shell
Shell
! La shell es un intérprete de línea de
comando
! Los comandos tienen la siguiente forma
cmd opc arg
donde
cmd es el nombre del comando (ej.:
ls)
opc es la lista de las opciones (ej.: -al)
arg es la lista de los argumentos (ej.:
/)
Procesos
bash Al momento de la
Padre: init login hay un sólo
proceso, que es la
xinit shell (bash).
Padre: bash
Desde la shell es
xterm xclock posible ejecutar otros
Padre: xinit Padre: xinit procesos hijos
ps Linux (UNIX) maneja
Padre: xinit los procesos en
manera da repartir el
uso de la CPU
Shells
! La shell de default es la bash (Bourn
Again Shell). Es pero posible escoger
otros intérpretes.
! Otras shells muy comunes son:
csh C shell
ksh Korn shell
tcsh C shell compatible
Shell
AMBIENTE
! El ambiente (environment) contiene la
información contenida en las variables
de ambiente (o variables de shell)
! Al momento de la entrada en el sistema
(login), el sistema configura la shell con
los archivos /etc/<shell>rc, .login o
.profile y .<shell>rc (ej.: .bashrc)
Shell
COMANDOS DE AMBIENTE
env muestra las variables exportadas con sus
valores
. file ejecuta todos los comandos contenidos
en file
export exporta el valor de una variable
set cambia provisionalmente el valor de una
variable
chsh cambia el tipo de shell
Shell
COMANDOS PRINCIPALES
more pagina un flujo de carácter
cat file muestra el contenido de un archivo
ps muestra la lista de los procesos
kill sign envia un señal a un proceso
Shell
PRINCIPALES OPERADORES
| crea una conexión (pipe) entre dos
comandos
& ejecutar un comando en background
> redirecciona el output de un comando
>> redirecciona el output de un comando
(append)
< redirecciona el input de un comando
Características y arquitectura
de Linux
Estructura directorios Linux
! La distribución de Linux no ha
transformado en mucho la arborescencia
! Existe un estándar de sistema de
archivos (FSSTND: File System
Standard)
! Las distribuciones Linux más importates
y algunos Unix respetan este estándar
! Documento disponible en:
! sitio:
[Link]
! directorio:/pub/linux/docs/linux-standards
! archivo: [Link]
Los directorios Linux
! /bin
! /boot
! /proc
! /dev
! /root
! /etc
! /sbin
! /home
! /tmp
! /lib
! /usr
! /mnt
! /var
Archivos booteo: /boot
! Al inicio del sistema el programa de
“booteo” analizará el directorio /boot
! Entre los objetos buscados esta el
archivo map, a través del cual LILO
determinará el lugar del núcleo en el
disco duro
! Sin esta información LILO no puede
cargar en memoria principal
! LILO depositará archivo boot.b, que es
la base de configuración del sector de
booteo
Los comandos en /bin
! Los comandos más importantes están
almacenados en este directorio
! Ejemplo: ls, who, ps etc.
! Menos importantes: /usr/bin
! El colocar un comando en un directorio o
en otro es una elección perfectamente
arbitraria
! Se justificaba en la época de discos
duros rápidos y caros, contra los lentos y
baratos
Los periféricos /dev
! Todos los controladores (drivers) de
periféricos son accedidos a través
archivos de periféricos
! Son interfaces con los controladores de
periféricos y no contienen nada
! Dos tipos: caracteres y bloques
! No tienen lo que se podría llamar un
tamaño
! Número tamaño sustituido por número
de controlador
Los archivos configuración /etc
! Archivos de configuración
! Antiguos sistemas: comandos
administración
! FSSTD dice que solo archivos
configuración
! En algunos casos existe directorio
/etc/rc.d, que contiene scripts usados en
el booteo
! Se pueden almacenar archivos que
serán copiados automáticamente en el
directorio personal de un nuevo usuario
Archivos importantes en /etc
! [Link]
! fstab ! mtab
! gettydefs ! mtools
! group ! passwd
! inittab ! profile
! issue ! psdatabase
! [Link] ! securetty
! magic ! shells
! motd ! termcap
! ttytype
/home
! Directorio personal de los usuarios
! Ventajas:
! usuario se beneficia de su propio sistema de
archivos
! pocos derechos de escritura le son atribuidos
! Una vez que los usuarios tienen definido
su lugar en un sistema archivos, es posible
definir las limites de zonas de memoria
(quotas)
! un usuario no podrá monopolizar toda la
memoria
Las bibliotecas compartidas
de /lib
! Linux ofrece la posibilidad de utilizar las
bibliotecas de funciones comunes
! Las bibliotecas compartidas
indispensables al arranque se
encuentran aquí
! Otras bibliotecas se encuentran en
/usr/lib
El directorio /proc
! Es un pseudo-sistema de archivos
! Todos los archivos de este directorio no
ocupan espacio en el disco
! Se trata de construcciones lógicas
! Apuntan hacia programas en memoria
principal que leen información sin la
depositar en el disco duro
! Contiene archivos que permiten
! leer la configuración actual del sistema
! informarse acerca de los procesos en
ejecución
Los comandos admon de /sbin
! Los archivos más importantes para iniciar
Linux se encuentran en /etc y /sbin
! Contiene comandos para civilizar Linux
! Se pueden distinguir tres dominios claves:
! los comandos de sistema generales: init,
swapon, getty, swapoff, mkswap, etc
! los comandos de arranque y detención del
sistema: shudown, fastboot, fasthalt, reboot,
etc
! los comandos que administran el espacio del
disco duro: fsck, e2fsck, mkfs, mke2fs, fdisk,
etc
Los archivos temporales de /tmp
! Muchas utilerías necesitan un espacio
temporal de almacenamiento
! Por ejemplo: editores, compiladores, etc
! Directorio accesible a todo mundo en
lectura/escritura
! En el caso de múltiples usuarios el
directorio debe ser la raíz de otro
sistema de archivos
Las variables del directorio /var
! FSSNT hace diferencia entre zonas en
los usuarios solo pueden leer y las que
solo pueden escribir
! Datos usuario son divididos en
! /usr: datos que los usuarios solo pueden
leer
! /var: datos que los usuarios pueden
leer/escribir
! Usuario común no sabe que algunos
comandos crean datos bajo su nombre,
ejemplo: man
! La impresión es otro ejemplo, la tarea
es provisoriamente almacenada en los
sub-directorios: /var/spool/lpd.
! Otros dominios en los cuales son
creados archivos y tratados a nombre
del usuario:
! el lanzamiento por calendarización a
intervalos regulares de comandos y de
scripts (comandos at y cron)
! la transmisión de informaciones (mail)
! el contar con un registro de conexiones o
contabilidad (p.e. archivos .log)
Los sub-directorios /usr
Contiene conjunto directorios en los cuales Linux
almacena datos muy importantes
! /usr/X11R6 ! /usr/info
! /usr/bin ! /usr/lib
! /usr/doc ! /usr/local
! /usr/etc ! /usr/man
! /usr/games ! /usr/sbin
! /usr/include ! /usr/src
La arquitectura de Linux
! Linux no es un bloque monolítico
! Varios componentes trabajan en
conjunto, diseñados por personas
diferentes y conjuntados en
distribuciones
! Solo del exterior el núcleo Linux parece
una unidad
! Existe una diferencia entre el núcleo y
las aplicaciones
Componentes del núcleo
! Administración memoria principal
! Acceso a los periféricos
! Administración del espacio en disco duro
! Administración de los programas y los
procesos
! Administración de los derecho de acceso
El núcleo Linux
Aplicaciones
sub-sistema sistema sistema comunicación
E/S archivos seguridad de procesos inter-procesos
sub-sistema
sub- archivos sub-sistema
sub-sistema
sistema de
IPC
E/S procesos
caché
controlador periférico controlador periférico
parte física periférico parte física periférico
Material
El sub-sistema de archivos
! Garantiza una administración correcta
de los archivos y de los derechos de
acceso
! La administración varia mucho según el
tipo de sistema de archivos
! Linux adopto el concepto de VFS (Virtual
File System)
Acceso estándar archivo en VFS
! Principio: todos los módulos de un
sistema de archivos, vistos del exterior,
presentan las misma rutinas
! Es responsabilidad del núcleo de
convertir las llamadas de sistemas
estándares en las específicas a los
archivos
! Programador no debe preocuparse del
tipo de sistema archivos con el que
trabaja
Sistema archivos virtual
Aplicaciones
Sistema de Archivos Virtual (VFS)
subsistema subsistema subsistema subsistema
ext2 sys V ms-dos proc
Cache
Controlador de periféricos
Material
E/S en sistemas archivos
! Rutinas sistemas archivos transmiten los
accesos a los controladores de periféricos
! Por cada acceso los bloques de datos
necesarios son cargados del disco duro
! Acceso a disco duro se hace a través de
controladores con buffers
! almacenan en memoria principal datos accedidos
! esto evita un acceso disco en la próxima lect/esct
! datos en RAM por lo que se gana en rapidez
! Controladores sin buffer realizan acceso
directamente en el disco
! Controladoressin buffer realizan acceso
directamente en el disco
E/S y sistema de archivos
Aplicaciones
1. Lectura Archivo 8. Datos leídos
Sistema de Archivos Virtual (VFS)
2. Lectura bloques 7. Liberación del contenido de la
datos del archivo caché
3. Bloques datos en la caché
Caché
6. Escritura de los bloques de
4. Lectura de los bloques de datos en datos en el caché
la caché
Control de periféricos
5. Lectura de los
bloques de datos
El subsistema de procesos
! Asigna zonas aisladas de memoria a
cada uno de los programas y controla
las demandas de memoria que se
realicen
! Linux no administra la memoria en el
sentido estricto (físico)
! Aprovecha que, desde el 80386, los
procesadores Intel saben tratar la
memoria virtual
! También administra el acceso al
microprocesador (calendarizador)
! Cada proceso esta registrado en una tabla
central de procesos, por lo que es posible
verificar que procesos están ejecutandose
! Para evitar que se apropien del procesador a
cada proceso se le asigna un tiempo: quantum
! Una vez que el tiempo termine se le interrumpe
y se le pone a un lado
! Al proceso siguiente le es asignado el
procesador
Principio del calendarizador
Proc. lectura datos quantum ejecu- lectura
ejecu- ejecu-
A del disponibles terminado ción del
ción ción
archivo archivo
escritura datos
Proc. ejecu-
ejecu- quantum ejecu- en el
A trans-
ción terminado ción archivo feridos ción
desplegado
Proc. ejecu- fin
ejecu- en
A ción del
ción pantalla proceso
Tiempo
Otras funciones
! Implementación del sistema de
intercomunicación entre procesos
! las colas de mensajes (message queues)
! la zonas de memoria común (memoria
compartida o shared memory)
! los semáforos
Los controladores Linux
! Tanto los procesos como el sub-sistema
de archivos utilizan los controladores de
periféricos
! Los principales tipos de controladores se
encuentran dentro directorio
/usr/src/linux/drivers:
block pci
char sound
net scsi
! Controladores orientados bloques:
! pueden trabajar con buffer o sin él
! Controladores bloques con buffer
! losdatos leídos son entregados al proceso,
pero no se descartan enseguida
! son almacenados en una zona de memoria
! próximo acceso estarán disponibles
! Controladores sin buffer
! toda demanda, en las dos direcciones, son
ejecutadas directamente en disco
! al final es seguro que los datos están en
disco, con buffer esto no era seguro
Soporte a diferentes arquitecturas
! Linux trata de adaptarse a la máquina.
! El mismo código debe existir para
diferentes implementaciones y funcionar
de la misma forma
! Elementos del núcleo que dependen del
tipo de procesador son almacenados en
directorios aparte
! En directorio /usr/src/linux/arc se
encuentra un directorio por
microprocesador soportado
Directorios microprocesadores
! alpha: microprocesador DEC Alpha
! m68k: microprocesadores Motorola
68000 y siguientes: 68020, 68030, etc
! mips: microprocesador MIPS, R3000,
R4000 a R10000
! ppc: microprocesador PowerPC (en un
principio IBM)
! sparc: microprocesadores SPARC de
SUN
Ejemplo contenido (i386)
! boot
! kernel
! lib
! math-emu
! mm
! Makefile
! [Link]
Protocolos red soportados
! TCP/IP
! Appletalk
! AX25 (radio aficionados)
! IPX (Novell)
! DECnet (DEC)
El sistema archivos de Linux
Definición sistema archivos
! Se refiere a la estructura del soporte
físico que le da al usuario de un
arborescencia
! Elemento base: el bloque:
! espacio disco duro se expresa en bloques
! los bloques son de 521 bytes
! Diferentes tipos sistemas archivos se
apoyan sobre diferentes formas:
! cada grupo reagrupa los bloques físicos en
bloques lógicos de diferente tamaño
Direccionamiento bloques
datos en disco duro
/dev/hda1 /dev/hda2
1er trozo 2do trozo
0 1 2 3 0 1 2 3
Bloque Bloque
Pista
Bloque
Sector Disco duro
Estructura interna sistema archivos
! Vista usuario: arborescencia homogénea
! ¿Qué forma tienen los datos y los
archivos en el disco duro?
! Diferentes tipos sistemas archivos:
! Extended Filesystem
! Xia Filesystem
! Extended File System
! Sistema montado
Sistemas archivos reconocidos por Linux
! afbs: Amiga Fast File System
! ext fs: Extended Fyle System
! ext2 fs: Extended Fyle System extendido
! hpfs: High Performance File System
! isofs: sistema ISO 9660 (usado en CD-ROMs)
! minix fs: MINIX File System
! ncpfs: sistema archivos para clientes Novell
! nfs: NetworkFile System
Sistemas archivos Linux
! proc: pseudo sistema de archivos
! smb fs: Samba File Systems
! sysv fs: Sistema archivos del sistema V
Unix
! ufs fs: Sistema archivos FreeBSD y Solaris
! umsdos: extensión sistema archivos MS-
DOS
! vfat: sistema dotado tabla asignación virtual
! xiafs: sistema desarrollado por Qi Frank Xia
para reemplazar al Extended File System
Elementos sistema archivos
! Bloque de booteo
! Superbloque
! Tabla de nodos-i
! Bloques de datos
Estructura sistema ext2
Grupo bloques 1 Grupo bloques 2
Bloque Super- Tabla Bloque
de
bloque
... de
Super-
de bloque
...
booteo nodos-i datos
El bloque de booteo
! Se ubica en el bloque cero de todos los
sistemas de archivos
! Contiene programa para lanzar e
inicializar todo el sistema
! Ningún programa usuario tiene acceso
El grupo de bloques
! El superbloque
! La lista de descripción de los grupos de
bloques
! La imagen de los bloques
! La imagen de los nodos-i
! La tabla de los nodos-i
! Los bloques de datos
Datos importantes superbloque
! Tamaño total del sistema de archivos, en
bloques o nodos-i
! Número de bloques libres del sistema
! Número de bloques reservados a nodos-I
! Número de nodos-I libres
! Dirección del primer bloque de datos
! Tamaño de un bloque de datos
! Tamaño de un bloque parcial de datos
! Hora de la última modificación sistema
archivos
! Hora integración (montaje) del sistema
! número de versión del sistema
! hora de la última verificación del
sistema
! intervalo máximo entre dos personas
La tabla de nodos-i
! Compuesto por un conjunto de nodos-i,
del mimos tamaño
! Un nodo-i puede presentarse de dos
formas:
! como nodo-I en el disco duro
! cargada en memoria para el tratamiento
! Nodo-i describe todos las características
de un archivo
! Existe uno por cada archivo físico
Algunos datos de los nodos-i
! Modo archivo
! Número usuario propietario
! Tamaño, en bytes, del archivo
! Acceso
! hora del último acceso
! hora de la última modificación
! hora de la creación de nodo-i
! hora de la última supresión del nodo-i
! Número de grupo del archivo
! Número de ligas
! Semáforos del nodo-I
! tabla de direcciones del bloque
! derechos de acceso
! tipo de archivo:
! archivo clásico
! directorio
! archivo periférico
! archivo FIFO
! referencia (ejemplo liga simbólica)
Estructura de un nodo-i
2. Dirección indirecta
1. Dirección indirecta
3. Dirección indirecta
Tamaño archivo
Tipo archivo
Propietario
Dirección
directa
…. …. ….
Propiedades del Tabla de las direcciones Informaciones
archivo de los bloques de datos diversas
Bloques de datos
! Se ocupan del espacio disponible en el
disco duro para el sistema de archivos
! Tamaño de cada bloque físico corresponde
a exactamente al de bloques lógicos
Tabla archivos nivel sistema
! Objetivo: proporcionar acceso paralelo a
los archivos
! A cada archivo abierto le corresponde
una estructura en memoria principal
! Todos los procesos del sistema acceden
a dicha tabla
! Si varios procesos abren el mismo
archivo solo se registrará una entrada en
la tabla
! Es a través de esta tabla que se puede
acceder indirectamente a los nodos-i
! Es necesario vigilar ciertas consecuencias
! Solo existe un solo componente indicando
la localización del archivo
! Si un proceso A modifica este valor, esto
tendrá consecuencias para el resto de los
procesos
! Si un proceso B ignora lo anterior escribirá
sus datos en un lugar equivocado
! Une entrada en la tabla se elimina hasta
que ningún proceso hace referencia al
archivo
Tabla archivos especifica procesos
! Si un proceso quiere abrir un archivo,
este creará una entrada en un tabla de
archivos especifica al proceso
! Tamaño tabla: 256 => un proceso solo
puede abrir 256 archivos al mismo
tiempo
! Los tres primeras entradas están
reservadas a stdin (0), stdout (1) y stderr
(2)
Relación entre tablas
Dirección del
bloque de datos
disco
duro
Tabla archivos
especifica Tabla archivos
al proceso del sistema
Tabla de nodos-I
del sistema
Etapas abertura de un archivo
! Búsqueda del archivo y asociación con un
nodo-I
! realizada a través función namei()
! Búsqueda, en su sistema de archivos, del
número de nodo-i previamente
determinado
! una vez encontrado se verifican los permisos
y se carga el archivo
! Una entrada es realizada en memoria
para este nodo-i, en la tabla nodos-i a
nivel sistema
! Una estructura se crea en la tabla de
archivos a nivel sistema
! endicha estructura se encuentran las
operaciones especificas al sistema de
archivos y el nodo-i
! Sele indica al proceso la localización en
memoria principal de la estructura que
corresponde al archivo accedido
! cada proceso administra una tabla de
archivos específica a los procesos
! en este lugar se encuentra la referencia a la
tabla de archivos a nivel sistema