Professional Documents
Culture Documents
introduccin al kernel
Diseo de Sistemas Operativos
Ingeniera en Informtica
operativos
Dar una visin general de UNIX, destacando
algunos aspectos del kernel
Dar una visin general de Linux, destacando
algunos aspectos del kernel
Revisin de conceptos
Clasificacin del software
Software de aplicacin
Software de sistema
Programas y libreras de soporte para el software de
aplicacin, por ejemplo el sistema operativo
Revisin de conceptos
Objetivos de un sistema operativo
Abstraccin de los recursos hardware
Almacenamiento heterogeneo Sistema de archivos
Memoria fsica + memoria secundaria Memoria virtual
Variedad de dispositivos de E/S E/S estndar
Revisin de conceptos
Caractersticas generales de un sistema operativo
Monotarea o multitarea Multitarea expulsiva
(preemptive), proteccin entre tareas, proteccin del
hardware
Monousuario o multiusuario
Monoplataforma o multiplataforma
Monoprocesador o multiprocesador
Interactivo o batch
Tiempo compartido, pudiendo procesar trabajos batch
Kernel monoltico o microkernel (o exokernel)
Sistemas operativos de tiempo real
6
Revisin de conceptos
Caractersticas generales de un sistema operativo
Procesos
Niveles de proteccin
Las instrucciones no pueden ejecutar cualquier instruccin
potencialmente peligrosa
Modo usuario y modo kernel (o supervisor)
Procesos Programa en ejecucin y con su contexto
Descriptor de procesos (PCB Process Control Block)
struct task_struct (elemento de struct thread_info)
Contexto de nivel de usuario
Contexto de nivel de sistema (kernel)
Contexto de registros
7
Revisin de conceptos
Caractersticas generales de un sistema operativo
Planificacin y conmutacin de procesos
Estados de un proceso Listo, En ejecucin, Parado,
Jerarqua de procesos Relacin padre-hijo
Threads (hilos). Threads del kernel
Tipos de planificacin quantum (timeslice), prioridad,
El algoritmo de planificacin del kernel de Linux O(1)
sistema operativo
Invocada por el proceso
Causada por una interrupcin software (seal)
Revisin de conceptos
Relacin entre aplicaciones, el kernel y el hardware
Revisin de conceptos
Sistemas monolticos versus microkernel
Enfoque monoltico
Kernels implementados como un gran proceso nico
Revisin de conceptos
Sistemas monolticos versus microkernel
Enfoque microkernel
Ncleo con funcionalidad mnima
Servicios provistos por servidores que son procesos
El kernel slo gestiona la comunicacin con los servidores
Las distintas partes del S.O. se comunican mediante paso
de mensajes
Chorus, QNX, Mach (GNU Hurd), WNT 3.51
11
Revisin de conceptos
Sistemas monolticos versus microkernel
Enfoque monoltico
+ Eficiente Pocos cambios de contexto
- Depuracin
- Ampliacin (modularidad)
- Dependencias
Enfoque microkernel
+ Fcil implementacin y depuracin
+ Portabilidad
+ La separacin de varios servidores previene la caida
de servidores
12
- Eficiente sobrecarga de comunicaciones
Revisin de conceptos
Linux
Estructura
Monoltico con mdulos cargables
Threaded
Dinmico (aadir y quitar mdulos) e interrumpible
Mayor modularidad que un sistema monoltico puro
13
Revisin de conceptos
Linux
Caractersticas principales
S.O. estilo UNIX, compatible POSIX
Multitarea expulsiva, Multiusuario y Multiplataforma
Proteccin de memoria y memoria virtual, kernel threading,
interrumpible (preemptive)
SMP, Clustering
Variantes para Tiempo Real y CPUs sin MMU
Mltiples sistemas de archivos y protocolos de red
Con modelo de dispositivos orientado a objetos
Razonable soporte hardware
Casi todo escrito en C y depuracin en tiempo de ejecucin
Mdulos cargables en tiempo de ejecucin (dinmico)
14
Revisin de conceptos
UNIX/Linux
Algo de historia
1969: UNIX, Thompson & Ritchie (AT&T Bell Labs) proyecto
MULTICS
1978: BSD, Berkeley Software Distribution Distribuidores
comerciales: Sun, HP, IBM, SGI, DEC, Digital, SCO
1984: GNU: Richard Stallman (FSF)
1986: POSIX (Portable Operating System Interface) La
norma POSIX.1 ha uniformado las operaciones de manipulacin
basndose fundamentalmente en las funcionalidades existentes
en System V
1987: MINIX, Andrew Tanenbaum
1989: SVR4, AT&T
15
1991: 'Nacimiento' de Linux
Revisin de conceptos
Linux
Algo de historia
Evolucin de MINIX para 8086 (A.S. Tannenbaum, 12000 lneas
de cdigo abierto)
En 1991 Linus Torvalds pone un mensaje en USENET diciendo
que est escribiendo un S.O. como hobby, y deja los fuentes
disponibles. (0.01)
Poco despus publica la versin 0.02 y pide colaboraciones a
los interesados En menos de un ao ms de 100
colaboradores
Aparecen mltiples distribuciones comerciales y no comerciales
(Slackware, Red Hat, Suse, Mandrake, Caldera, Debian, etc.)
Soporte por parte de grandes empresas (Intel, IBM, Sun, Oracle,
HP, Informix, etc.) y para mltiples plataformas, no slo i386 16
Revisin de conceptos
Linux
Algo de historia
Linux 1.0 aparece en 1994 en forma de distribucin (i386)
Linux 1.2 en 1994 Soporta diferentes arquitecturas (Sparc,
Alpha, MIPS)
Linux 2.0 en 1996 competitivo con sist. UNIXs comerciales
Linux 2.2 (Enero 1999), con muchas mejoras y soporte
hardware
Linux 2.4 (Enero 2001), ms hardware soportado (ISA PnP,
USB) y modificaciones arquitecturales
Linux 2.6 (Diciembre 2003), caractersticas avanzadas,
enterprise, muchas mejoras en la arquitectura
Ultima versin estable 2.6.22 (X.Y.Z X = versin mayor, Y =
17
versin (par = estable, impar = desarrollo), Z = revisin)
Revisin de conceptos
Linux
Modelo de desarrollo de Linux
Modelo Open Source
Licencia GPL
Motivaciones resolver problemas (compartir
19
20
21
22
23
por cada archivos que los procesos (kern. & usr.) tienen abiertos
Tabla de descriptores de archivos de usuario Estructura local a
cada proceso e idenfica a los archivos abiertos por un proceso
24
25
27
28
31
32
34
36
41