Académique Documents
Professionnel Documents
Culture Documents
NUCLEO DE ANZOTEGUI
COORDINACIN DE POSTGRADO
MAESTRA EN INFORMTICA GERENCIAL
SISTEMAS OPERATIVOS
Profesor:
Realizado por:
INDICE
INTRODUCCIN....4
CAPITULO I.- ESTRUCTURA DEL HARDWARE.......6
1.- Diagrama de bloques de la estructura de hardware que soporta la implantacin del
Sistema Operativo GNU/Linux
1.1
Diagrama de Bloques de la estructura del Hardware....12
1.2
Descripcin del bloque procesador........................................................................ 12
1.3
Descripcin del bloque memoria...16
1.4
Descripcin del bloque perifricos..17
INTRODUCCIN
El sistema operativo de un ordenador se puede definir, de una manera muy
burda, como el software (programa) encargado de gestionar y manejar el
hardware (piezas) del equipo. Crea una capa de abstraccin sobre la complejidad
de
componen
un
ordenador
de una computadora de escritorio marca VIT modelo E2220-03, con las siguientes
caractersticas, ver figura 1, tabla 1.
Frecuencia FSB
1066Mhz/1333Mhz/1600Mhz
Interfaz
Sockets 1150pins
Memoria RAM
Modelo
DDR3-1066/1333/1600
Puerto
Capacidad unitaria
Capacidad total
HASTA 16GB
Controlador de E/S
Puerto teclado
1 Puerto PS/2
Puerto Raton
1 Puerto PS/2
Puerto Serial
Puerto Paralelo
1 VGA
Disco Duro
Disco Duro
1 SATA 7200RPM
Tarjeta de Red
Integrada
Otro
Puerto PCI
Puertos
2 PCI
1 PCI-E 1X
1 PCI-E 16X
SD/MMC/MS
Unidad ptica
48x/32x/16x CD-RW/DV-RW
Tabla 2. Leyenda
A
Unidad ptica
Indicador de disco
Lector de tarjetas
Tabla 3. Leyenda
A
Selector de Voltaje
Conector alimentacin
Puerto USB
Conector RJ45
Micrfono
Linea de salida
Linea entrada
Puerto COM1
10
Ratn
Dispositivos
Almacenamiento
CPU
Memoria
Microprocesador
Intel Core i7-3770
Ivy Bridge
UC
ROM
Discos
Flexibles
RAM
Discos
Duros
1T
7200rpm
ULA
Memoria
cache
8 Gb DDR3
1600Mhz
Discos
pticos
CdRom
DVD
Dispositivos de Salida
Monitor Impresora
Tarjeta
Red
Tarjeta
Sonido
Tarjeta
Video
Lector
Memoria
Para empezar, los chips Ivy Bridge estn construidos en 22 nm, lo que
implica una reduccin de tamao considerable en relacin a los 32 nm de Sandy
Bridge. Esto tiene un impacto inmediato en el consumo elctrico: los chips Core i7
y Core i5 Ivy Bridge tienen un valor TDP (Thermal Design Power, o Thermal
Dissipated Power) de 77 Watts, bastante inferior a los 95 Watts que eran estndar
en los chips Sandy Bridge.
Lo interesante aqu es que los nuevos procesadores Intel vienen en el
formato desocket LGA 1155. Si bien el lanzamiento incluy un nuevo chipset, el
Z77, la mayora de los motherboards Z68 (actualizacin de BIOS mediante)
tambin pueden acomodar chips Ivy Bridge sin problema alguno. A continuacin
resumiremos algunas de las caractersticas de la nueva arquitectura, para pasar
rpidamente al anlisis del Core i5 que tuvimos oportunidad de probar:
Los procesadores Intel Core i7 de tercera generacin ofrecen un
desempeo superior para equipos "todo en uno" o estndar. Los procesadores
Intel Core i7 estn a la altura de sus tareas ms exigentes marcando una
diferencia que podr ver y experimentar en HD o 3D, tareas mltiples o
multimedia. Los procesadores Intel Core i7 incluyen tecnologas avanzadas que
ofrecen experiencias visuales e informticas ms rpidas, fluidas e intensas para
todas sus actividades favoritas de alta exigencia: desde editar una pelcula hasta
los juegos ms impactantes.
Caractersticas
12
13
Especificaciones
Velocidad
Cache L2
4 x 256KB
Cache L3
8MB
Socket
Socket 1155
Microarquitectura
Ivy Bridge
Ncleos
4 Ncleos
Grficos Integrados
Frecuencia de Grficos
650MHz
Tecnologa de Fabricacin
22 nm
Soporta 64 bits
SI
TDP
77 Watts
Disipador
Incluido
14
15
integraron en la CPU mientras que el PCH se hizo cargo de las funciones que
quedan en Adems de las funciones tradicionales del southbridge.
La arquitectura PCH reemplaza anterior de IntelArchitecture Hub,con su
diseo de abordar la eventual cuello de botella problemtica entre el procesador y
elmotherboard.Con el tiempo, la velocidad de la CPU sigui aumentando, pero el
ancho de banda delbus frontal(FSB) (conexin entre la CPU y la placa base) no lo
hizo, lo que resulta en un cuello de botella.
Bajo la Arquitectura Hub, una placa base tendra un chipset de dos piezas
que consiste en un chip northbridge y southbridge un chip.Como una solucin al
cuello
de
botella,
varias
funciones
que
pertenecen
los
17
de
informtica
de
muchas
universidades
de
renombre.
18
sin
poderse
imaginar
la
gran
repercusin
que
traera.
Hubo una primera versin no oficial de Linux 0.01, pero esta solo inclua el
19
comienzo del ncleo, estaba escrita en lenguaje ensamblador y asuma que uno
tena acceso a un sistema Minix para su compilacin.
El 5 de octubre de 1991, Linus anuncio la primera versin oficial de Linux
(versin 0.02). Con esta versin Linus pudo ejecutar Bash (GNU Bourne Again
Shell) y gcc (El compilador GNU de C).Desde aquel entonces se han hecho
muchsimas versiones con ayuda de programadores de todo el mundo.
Linux es un sistema operativo compatible con Unix, sus dos caractersticas
principales y que los diferencian del resto de los sistemas operativos que
encontramos en el mercado son:
1. Es software libre, esto significa que no tenemos que pagar por el uso del
mismo.
2. El sistema viene acompaado del cdigo fuente (el sistema lo forman el ncleo
del sistema (kernel) mas un gran numero de libreras que hacen posible su
utilizacin).
Las plataformas en las que en un principio se puede utilizar Linux son:
Pentium, Pentium Pro, Pentium II/III/IV, Amiga y Atari, tambin existen versiones
para su utilizacin en otras plataformas, como Alpha, ARM, MIPS, PowerPC y
SPARC.
En los ltimos tiempos, ciertas casas de software comercial han empezado
a distribuir sus productos para Linux y la presencia del mismo en empresas
aumenta rpidamente por la excelente relacin calidad-precio que se consigue con
Linux.
Tux es el nombre de la mascota oficial de Linux. Creado por Larry Ewing en
1996, es un pequeo pingino de aspecto risueo y cmico. La idea de que la
mascota de kernel Linux fuera un pingino provino del mismo Linus Torvalds,
creador de kernel Linux.
Existen
dos
versiones
sobre
el
origen
de
su
nombre:
2. Las letras que componen Tux provienen de las palabras Torvalds y Unix.
Hay quien dice que Tux era el nombre de un peluche que tenia Linus que era un
pingino llamado Tux.
El logotipo se puede usar y modificar sin restricciones, siempre que se
reconozca la autora de Larry Ewing, ya que es su trabajo y se debe reconocer su
autora tal y como se indica en su pgina.
LINUS TORVALDS
Naci el 28 de diciembre de 1969 en Finlandia, es un ingeniero de software
conocido por iniciar y mantener el desarrollo del kernel de Linux, basndose en
el sistema operativo libre Minix y en algunas herramientas, varias utilidades y los
compiladores desarrollados por el proyecto GNU. En la actualidad es responsable
de la coordinacin del proyecto.
Con tan solo 11 aos y la ayuda de su abuelo que era un matemtico y
estadstico de la poca, el cual al comprarse un Commodore enseo al joven
Linus a manejarlo. En 1988 entro en la Universidad de Helsinki en donde aprendi
sobre las ciencias de la computacin y conoci a Andew S.Tanenbaum el cual ese
mismo ao creo el sistema operativo Minix. Aprendi a programar en C y despus
de varios aos adquiriendo experiencia y tomar prestadas algunas ideas, cre en
1991 el primer Linux capaz de ejecutar BASH y disponer del compilador GCC. Le
llamo Linux, debido a su apodo dela universidad. Un ao ms tarde Linux adopto
GPL, una licencia que le aada libertades para poder manipular y redistribuir su
cdigo de manera totalmente libre, lo que ha permitido que Linux se mantenga
estable hasta nuestros das. Despus de estar diez aos estudiando y e
investigando, entro a trabajar en Transmeta, una empresa dedicada a la
fabricacin de microprocesadores para porttiles; ms tarde decidi abandonarla
para poder dedicarse completamente al sueo que haba creado, el desarrollo del
kernel Linux.
En la actualidad trabaja en los laboratorios Open Source Development Labs
en Oregn, con la intencin de seguir desarrollando su pasin, el kernel de Linux.
21
compatible
con
el
sistema
de
archivos
de
Minix.
Podramos decir que por error decidi crear Linux partiendo desde cero al darse
cuenta, de que estaba creando algo ms que un simple emulador de terminal. En
un principio Linux se iba a llamar Freax (free+ freak + x), aunque despus se le
22
23
2005,
fue
empresariales
nombrado
en
una
como
uno
encuesta
de
de
los
la
mejores
revista
administradores
BusinessWeek.
En agosto de 2005, Linus Torvalds recibi el premio Vollum Award del Reed
College.
En 2006, la revista Business 2.0 lo nombr como una de las diez personas que
no tienen importancia debido a que el crecimiento e importancia de Linux haban
eclipsado el impacto individual de Linus.
En 2006, la revista Time lo nombra como uno de los hroes revolucionarios de
los ltimos 60 aos.
24
Richard Stallman
Richard Mathew Stallman es un activista del software libre y programador.
Sus mayores logros como programador son, entre otros, el editor de texto Emacs,
el compilador GCC y el depurador GDB y como activista destaca la referencia
moral, poltica y legal que supone para el movimiento del software libre.
Es tambin inventor del concepto copyleft, mtodo para licenciar software sin
privatizacin alguna.
Primeros aos
En 1971, Stallman se convirti en un hacker del Laboratorio de Inteligencia
Artificial (IAL) del Instituto Tecnolgico de Massachusetts (MIT). En los aos 80, la
cultura hacker que constitua la vida de Stallman empez a disolverse bajo la
presin de la comercializacin en la industria del software. En particular, otros
hackers del laboratorio de IA fundaron la compaa Symbolics, la cual intentaba
activamente remplazar el software libre del Laboratorio con su propio software
privado.
Entre 1983 y 1985, Stallman duplic por s mismo los esfuerzos de los
programadores de Symbolics para impedir que adquirieran un monopolio sobre los
ordenadores del laboratorio. Por ese entonces, sin embargo, l era el ltimo de su
generacin de hackers en el laboratorio.
Repercusiones morales y polticas
Las motivaciones polticas y morales de Richard Stallman lo han convertido
en una figura controvertida. Muchos programadores influyentes que se encuentran
de acuerdo con el concepto de compartir el cdigo, difieren con las posturas
morales, filosofa personal o el lenguaje que utiliza Stallman para describir sus
posiciones. Un resultado de estas disputas condujo al establecimiento de una
alternativa al movimiento del software libre, el movimiento de cdigo abierto.
Que las empresas tengan especial influencia en la poltica significa que la
25
Espaa cuando estaba pendiente de aprobarse una polmica ley en favor de las
patentes de software en Europa que fue rechazada por mayora absoluta de los
Eurodiputados.
En diciembre del 2006, invitado por varias organizaciones involucradas con
el software libre, imparti varias conferencias en Ecuador. En una de ellas,
realizada en la Universidad Central insisti ante ms de dos mil asistentes, que
deben asumir una posicin militante en el uso y difusin del software libre y la
lucha contra el monopolio del conocimiento. Su presencia sirvi de motivacin
para la formalizacin de los grupos de usuarios en la Asociacin de Software Libre
del Ecuador.
En el ao 2007 Stallman visit Cuba donde imparti una conferencia en la
Universidad de las Ciencias Informticas (UCI) a teatro lleno de sus seguidores en
el movimiento del Software Libre.
En octubre de ese ao, particip en el CLEI (Conferencia Latinoamericana
de Informtica), en esta ocasin habl sobre los principios del Software Libre, el
GNU, Copyleft entre otros; adems recalc la importancia de la colaboracin entre
prjimos y la divulgacin del conocimiento.
Stallman reconoci que hasta hace un tiempo, cuando le preguntaban por
qu distribucin de GNU/Linux usar, no saba cual aconsejar, pues todas
contenan software privativo, ahora, dice ya puede aconsejar varias en las que
todo su software es Software libre.
Premios y reconocimientos
Ha recibido numerosos premios y reconocimientos por su trabajo, entre
ellos una membresa en la MacArthur Foundation en 1990, elGrace Hopper Award
de la Association for Computing Machinery en 1991 por su trabajo en el editor
Emacs original, un Doctorado Honoris Causa del Royal Institute of Technology de
Suecia en 1996, el Pioneer award de la Electronic Frontier Foundation en 1998, el
Yuki Rubinski memorial award en 1999, y el Takeda award en 2001.
27
Tipos de Linux
La superioridad de Linux en seguridad, administracin de redes, servidores
web y otros aspectos frente a cualquiera de Microsoft Windows es incuestionable.
Si a esto le sumamos su libre distribucin en muchos de los casos, se convierten
en algo genial que va ganando adeptos.
En general, las distribuciones Linux pueden ser:
Comerciales o no comerciales.
Distribuciones fieles al software libre.
Diseadas las empresas y al hogar.
La diversidad de las distribuciones Linux es debido a cuestiones tcnicas,
de organizacin y de puntos de vista diferentes entre usuarios y proveedores. El
modo de licenciamiento del software libre permite que cualquier usuario con los
conocimientos e inters suficiente pueda adaptar o disear una distribucin de
acuerdo a sus necesidades. De todas las mencionadas anteriormente, las de uso
ms comn son las cuatro primeras que son las que voy a explicar a continuacin.
28
29
30
31
Figura 4.2. Procesos desde una vista interna y externa, tomado de (Diez et
al,2010).
Prcticamente todo lo que se est ejecutando en el sistema en cualquier
momento es un proceso, incluyendo el shell, el ambiente grfico que puede tener
mltiples procesos, etc. La excepcin a lo anterior es el kernel en s, el cual es un
conjunto de rutinas que residen en memoria y a los cuales los procesos a travs
de llamadas al sistema pueden tener acceso.
32
33
Creacin
Para gestionar la informacin de un proceso, el sistema utiliza una
estructura de datos llamada PCB (Process Control Block), donde un proceso
incluye, no slo el programa que ejecuta, sino toda la informacin necesaria para
diferenciar una ejecucin del programa de otra, Toda esta informacin se
almacena en el kernel, en el PCB.
En Linux, las propiedades de un proceso se agrupan en tres: la identidad, el
entorno, y el contexto:
Contexto: Toda la informacin que define el estado del proceso, todos sus
recursos que usa y que ha usado durante su ejecucin.
En la identidad del proceso se define quien es y por lo tanto determina que
puede hacer.
Process ID (PID): Es un identificador nico para el proceso. Se utiliza para
identificar un proceso dentro del sistema. En llamadas a sistema identifica al
proceso al cual queremos enviar un evento, modificar, entre otros. El kernel
genera uno nuevo para cada proceso que se crea
Credenciales: Cada proceso est asociado con un usuario (userID) y uno o
ms grupos (groupID). Estas credenciales determinan los derechos del proceso a
acceder a los recursos del sistema y ficheros.
Para cada proceso hay un descriptor del tipo task_struct residente en
memoria, en todo momento. El kernel organiza todos los procesos en una lista
doblemente enlazada de estructuras de tareas. Adems Linux mantiene una task,
que es un vector lineal de punteros a cada estructura task_struct definida en un
34
35
36
Tras crear un nuevo proceso, despus de llamar a fork, Linux llama a una
funcin de la familia exec. Estas funciones reemplazan el programa ejecutndose
en el proceso por otro programa. Cuando un programa llama a una funcin exec,
su ejecucin cesa de inmediato y comienza a ejecutar el nuevo programa desde el
principio, suponiendo que no ocurriera ningn error durante la llamada.
Generalmente uno de los dos procesos (padre o hijo) utiliza la llamada al sistema
exec despus del fork para reemplazar su espacio de memoria con un programa
nuevo.
Un proceso en Linux, aunque tiene un modelo de memoria plano, est
estructurado en doszonasde memoria:
37
Esta estructura coincide con los dos modos del procesador que utiliza
Linux:
38
Estados
Los estados en un proceso, hacen referencia a la fase o etapa en la que se
encuentra dicho proceso a lo largo de toda su vida, es decir, en el punto en que se
encuentre ejecutando siempre va a tener asignado un tipo de estado, que permite
al sistema identificar su actual modo en ejecucin
El SO tiene clasificados los procesos en funcin de que estn haciendo,
normalmente a esto se llama el ESTADO del proceso. El estado suele gestionarse
o con un campo en el PCB o teniendo diferentes listas o colas con los procesos en
un estado concreto.
En Linux el estado de un proceso es almacenado dentro de un campo de la
estructura task_struct . Dicho campo, es denominado state, el cual cambiar en
funcin del estado de ejecucin en el que se encuentre el proceso, los procesos
pueden pasar por los siguientes estados:
39
40
4.2 Hilos
Los Hilos o Threads son un concepto relativamente nuevo de los SO. En
este contexto, un proceso recibe el nombre de proceso pesado, mientras que un
hilo recibe el nombre de proceso ligero. El trmino hilo se refiere sintctica y
semnticamente a hilos de ejecucin, en esencia es un contador de programa,
una pila, y un conjunto de registros, el resto de estructuras de datos de la tabla de
procesos pertenecen al propio proceso.
Linux no considera los hilos como tales, en este se crea un nuevo proceso
copiando los atributos del proceso actual. Un nuevo proceso puede ser clonado
para que comparta los recursos del actual, tales comoarchivos, gestores de
seales ola memoriavirtual.
Cuando dos procesos comparten lamemoria, operan en efecto como hilos
dentro
del
mismo
espacio,
del
mismo
proceso.
Sin
embargo,
no
se
41
La seccin de cdigo.
La seccin de datos.
Estados
Los principales estados de un hilo son:ejecucin,preparadoybloqueado; y
hay cuatro operaciones bsicas relacionadas con el cambio de estado de los hilos:
Procesos vs Hilos
Los procesos e hilos comparten similitudes en ejecucin y comparticin de
recursos, pero no son lo mismo, entre ellos existe semejanzas y diferencias,
adems de algunas ventajas que proporcionan los hilos con respecto a los
procesos.
Semejanzas:
44
Diferencias:
Como todos los hilos pueden acceder a todas las direcciones de la tarea,
un hilo puede leer la pila de cualquier otro hilo o escribir sobre ella. Aunque
pueda parecer lo contrario la proteccin no es necesaria ya que el diseo
de una tarea con mltiples hilos tiene que ser un usuario nico.
Ventajas: de los hilos sobre los procesos.
45
Sincronizacin de Procesos
La sincronizacin implementa el uso de operaciones atmicas para asegurar la
operacin de forma correcta de los procesos que actan como colaboradores. La
Tabla VI-1 presenta las tcnicas de sincronizacin usadas por el kernel Linux. La
columna Alcance indica si la tcnica se aplica a todas las CPUs del sistema o a
una CPU en particular (en el caso de sistemas multiprocesador). Un camino de
control del kernel (Kernel Control Path, KCP) denota una secuencia de
instrucciones ejecutada por el kernel para manejar una llamada al sistema, una
excepcin o una interrupcin, adems se usar la palabra softirg como sinnimo
de la funcin diferible. Kernel Control Path.
A continuacin se explican las tcnicas de sincronizacin (Zabaljuregui,
2011).
Operaciones Atmicas: Existen varias instrucciones de lenguaje ensamblador
del tipo leer-modificar-escribir; acceden a una posicin de memoria dos veces, la
primera para leer el valor antiguo y la segunda para escribir el nuevo. Estas
47
operaciones deben ser ejecutadas en una nica instruccin sin ser interrumpidas y
evitando accesos a la mismo posicin de memoria por otras CPUs. El kernel Linux
prove un tipo especial atomic_t (un contador de 24 bits accesible atmicamente)
y algunas funciones especiales (ver la Tabla VI-2) que actan sobre variables de
este tipo y que estn implementadas como instrucciones atmicas escritas en
ensamblador. En sistemas multiprocesador, estas instrucciones son precedidas
por el byte lock.
Barreras de memoria: Cuando se utilizan compiladores con funciones de
optimizacin, nunca debera darse por supuesto que las instrucciones sern
ejecutadas en el orden exacto en el que aparecen. Un compilador podra
reordenar las instrucciones ensamblador para optimizar el uso de los registros, o
podran reordenarse los accesos a memoria en el caso de las CPUs
superescalares.
Sin embargo, a los efectos de la sincronizacin, la reordenacin debera
evitarse. Sera un problema que una instruccin ubicada despus de una primitiva
de sincronizacin sea ejecutada antes de la primitiva misma.
Una barrera de memoria asegura que las operaciones colocadas antes de
la primitiva sean terminadas antes de comenzar las operaciones colocadas
despus de la primitiva. Donde P = Monoprocesador y MP = MultiProcesador. Las
barreras de memoria de Lectura actan slo en instrucciones que leen de la
memoria, mientras que las barreras de memoria de Escritura actan en aquellas
instrucciones que escriben en memoria.
SpinLocks: son tipos especiales de locks diseados para trabajar en entornos
multiprocesador. Si el KCP encuentra el lock abierto, lo toma y contina su
ejecucin. Por el contrario, si el KCP encuentra el lock cerrado, se queda
ejecutando un bucle hasta que el lock es liberado. Aunque representan una busy
wait, generalmente los spinlocks son convenientes ya que muchos recursos del
kernel son bloqueados por slo una fraccin de milisegundo y consumira ms
48
tiempo que un proceso esperando por uno de esos recursos ceda la CPU y tenga
que conseguirla ms tarde.
En Linux, un spinlock se representa por una estructura spinlock_t, que
consiste en un nico campo lock. El valor 1 corresponde a un estado liberado,
mientras que cualquier valor igual o menor a cero indica un estado de cerrado.
Spinlocks de Lectura/Escritura: fueron introducidos para incrementar la
concurrencia en el kernel. Permiten que varios KCP lean simultneamente la
misma estructura de datos, siempre que ninguno la modifique. Si un KCP desea
escribir en la estructura debe tomar la versin de Escritura del lock, la cual brinda
acceso exclusivo al recurso.
Cada spinlock de este tipo es una estructura rwlock_t. Su campo lock es de
32 bits y codifica dos datos:
Un contador de 24 bits que indica la cantidad de KCP leyendo la
estructura (en complemento a 2).
Un flag unlock que se desactiva cuando algn KCP est leyendo o
escribiendo la estructura.
Por lo tanto el campo lock almacena el nmero 0x01000000 si el spin lock
est liberado, el nmero 0x00000000 si fue tomado por un escritor y cualquier
nmero en el rango 0x00ffffff 0x00000001 dependiendo de la cantidad de
lectores.
La
macro
rwlock_init
inicicaliza
el
campo
lock
0x01000000
(desbloqueado). La macro
read_lock atmicamente decremente el spin lock en 1, incrementando el nmero
de lectores si
49
Wait: Almacena la direccin de una cola de espera (wait queue) que incluye
a todos los procesos dormidos que estn esperando por el recurso. Si count
es mayor o igual a 0, la cola est vaca.
embargo,
en
sistemas
multiprocesador,
la
deshabilitacin
de
en
momentos
impredecibles
(generalmente,
al
terminar
los
ser
52
Algoritmos de Planificacin
La planificacin en Linux se basa en hilos y no en procesos, soportando tres
clases de algoritmos: uno de tiempo compartido y dos de planificacin de tiempo
real que se corresponden con los definidos por POSIX, los cuales son:
A. Planificacin Primero en llegar, Primero en ser atendido (FIFO), en
tiempo real, o FCFS (First Come First Served, Primero en Llegar Primero en ser
servido)
B. Planificacin circular (Round-Robin) en tiempo real.
C. Tiempo compartido.
El algoritmo que decide cuando un proceso debe dejar la CPU, quien entra
y durante cunto tiempo, es lo que se conoce como Poltica de planificacin (o
scheduler). El servicio sched_setscheduler permite definir la clase de planificacin
del proceso que la invoca. Esta llamada slo puede hacerla un proceso
privilegiado.
Cada proceso de tiempo real tiene asociada una prioridad y un tipo de
planificacin que puede ser FIFO o Round-Robin. El planificador selecciona en
cada momento el proceso listo para ejecutar que tenga mayor prioridad. Si el
proceso es de tipo FIFO seguir ejecutando hasta que se bloquee. Si es de tipo
Round-Robin, cuando termine su rodaja el proceso pasar al final de la cola de
procesos listos para ejecutar de su misma prioridad (Tanenbaum, 2009, pag 752).
A. Planificacin FCFS: es el algoritmo ms simple, donde a medida que un
proceso pasa al estado de listo, es agregado a la cola, y cuando el proceso actual
en ejecucin finaliza, el proceso ms antiguo o que esta de primero en la cola, es
llamado por el procesador para ser ejecutado. En este algoritmo se prima el orden
de llegada de los procesos, de manera Cuando un proceso comienza a ejecutarse
53
54
Cuando se produce uno de estos eventos, el proceso que est run deja el
cpu y se selecciona el siguiente de la cola de ready. Si el evento es 1, el proceso
se aade a la cola de bloqueados hasta que termina el acceso al dispositivo, si el
evento es el 2, el proceso pasara a zombie en el caso de linux o simplemente
terminara, si el evento es el 3, el proceso se aade al final de la cola de ready
(Ver Figura 6.1).
C. Tiempo compartido.
Los procesos de tiempo compartido slo se pueden ejecutar cuando no hay
ningn proceso de tiempo real listo para ejecutar. El algoritmo de planificacin
para este tipo de procesos intenta conjugar la prioridad del proceso con su perfil
de ejecucin, favoreciendo a los procesos que realizan ms operaciones de
entrada/salida (Tanenbaum, 2009, pag 752).
En este algoritmo, todo proceso tiene asociada una prioridad base.
Inicialmente la prioridad del proceso es igual a su prioridad base. Cada vez que se
produce una interrupcin de reloj se resta una unidad a la prioridad del proceso
que estaba ejecutando. El algoritmo de planificacin est basado en la prioridad
del proceso y tiene carcter exclusivo: el planificador elige el proceso listo para
ejecutar que tenga mayor prioridad.
Cuando se produce una situacin en la que todos los procesos listos para
ejecutar tienen una prioridad igual a cero (todos ellos han usado el procesador un
tiempo suficiente para que su prioridad haya cado a 0), se produce un reajuste de
55
las prioridades de todos los procesos sea cul sea su estado. la nueva prioridad
se calcula dividiendo por 2 la actual y sumando la prioridad base (prioridad =
prioridad/2 +prioridad base).
Los procesos listos para ejecutar simplemente recuperan su prioridad base
ya que su prioridad actual es igual a 0. Sin embargo, los procesos bloqueados
obtienen una nueva prioridad mayor que la base puesto que su actual prioridad es
mayor que cero. Se trata de una frmula de tipo exponencial. Con ella un proceso
que estuviese bloqueado mucho tiempo puede llegar a tener una prioridad con un
valor del doble de la prioridad base.
56
1. La CPU es monoprogramada.
2. No existe diferencia entre trabajo y proceso.
3. El scheduler elige el trabajo, crea el proceso y lo ejecuta.
4. Prcticamente hay unsolonivel de planificacin.
57
est en la cpu (o no), que proceso ponemos, etc, se conoce como Poltica de
planificacin. En Linux, cada proceso es siempre planificado con alguna de las
siguientes polticas de planificacin:
Completely Fair Scheduler(CFS)
La necesidad de algoritmos de planificacin surgi con la aparicin de
sistemas operativos multitareas. Desde la versin 2.6.23 el planificador tradicional
de Linux fue remplazado por el CFS. El 80% del diseo de CFS fundamentalmente
modela un Procesador multitarea ideal. CFS busca mantener el balance en el
tiempo de procesador que se asignan a los procesos. Cada proceso debe recibir
un tiempo equitativo.
58
SCHED_NORMALProcesos convencionales.
sistema para el cual estn diseados, el tipo de usuarios que vayan a usarlos, el
60
tipo de aplicacin, etc. Sin embargo, estos son los criterios que suelen considerar
que determinan el comportamiento de una poltica:
comparten
el
acceso
la
memoria.
Todos
los
Arquitectura de SMP
Mltiples instrucciones,
mltiple
procesadores
simultneamente
ejecuta
flujos de
datos:
diferentes
Un conjunto
de
secuencias
de
62
63
Escalado: Los fabricantes pueden ofrecer una gama de productos con diferentes
precios y prestaciones, en funcin del nmero de procesadores que configuran el
sistema. Sin embargo, los beneficios anteriores no son beneficios garantizados,
sino potenciales. Por su parte, el sistema operativo debe proporcionar
herramientas y funciones que permitan explotar el paralelismo del programa y
proyectarlo sobre los diferentes procesadores de un SMP. Los sistemas SMP
poseen una caracterstica muy atractiva, y es que la existencia de varios
procesadores es transparente al usuario. Es el sistema operativo el que posibilita
la sincronizacin entre los procesadores, y la planificacin de los hilos o de los
procesos, puesto que es el responsable de asignarlos a los distintos
procesadores.
Cachs L2 compartidas
En una configuracin tpica de sistema SMP con cach de dos niveles, cada
procesador tiene cachs L1 y L2 propias. Esto ocurra tambin en las primeras
64
versiones del SMP (G3), donde cada procesador tena una cach L2 propia. Sin
embargo, ltimamente ha aumentado el inters por la utilizacin de cachs L2
compartidas, como es el caso que nos ocupa. Las razones que llevaron a
considerar el uso de una o ms cachs compartidas fueron:
- Al cambiar de la versin G3 a la G4, IBM pas a utilizar procesadores con doble
velocidad. Manteniendo la organizacin G3, se hubiese producido un aumento
significativo del trfico a travs del bus. El BSN podra haber llegado a ser un
cuello de botella de haber mantenido la organizacin G3, a no ser que se hubiese
mejorado significativamente el bus.
- El anlisis de las cargas de trabajo de un tpico mostraba un elevado nivel de
instrucciones y datos compartidos por los procesadores. Esto se puede
aprovechar con la utilizacin de cachs compartidas.
A primera vista, compartir la cach L2 puede parecer una mala idea. Puede
pensarse que el acceso a memoria de los procesadores ser ms lento, debido a
que los procesadores deben pugnar por el acceso a la cach L2. Sin embargo,
como varios procesadores comparten un elevado volumen de datos, en realidad
una cach compartida puede incrementar el rendimiento en lugar de disminuirlo,
ya que los datos compartidos, que se encuentran en la cach compartida, se
obtienen mucho ms rpidamente que si accediera a ellos a travs del bus.
Cach L3
Otra caracterstica interesante del SMP es la utilizacin de un tercer nivel de cach
(L3). Estas cachs L3 se encuentran en los BSN a modo de buffer entre las
cachs L2 y uno de los mdulos de memoria. De esta forma, la cach L3 reduce el
retraso de acceso a los datos que no estan en ninguna de las cachs L1 y L2 del
procesador que los solicita. El uso de una cache L3 permite que el dato est
disponible mucho ms rpidamente que si hubiese que acceder a la memoria
principal, en el caso de que dicho dato se encuentre en esta cach.
65
Los datos e instrucciones con los que se trabaja deben estar en memoria
principal
Se debe evitar los fallos de pgina (necesitar algo que est en memoria
secundaria, lo que obliga a esperar a que se traiga hasta memoria principal)
66
67
Ms de 1 GB RAM
69
6.3 Segmentacin
La segmentacin es una tcnica de gestin de memoria que divide dinmicamente
la memoria en diferentes segmentos.
Un segmento:
70
71
6.4 Paginacin
Silberschatz et al. (2006) , sealan que la paginacin es un esquema de
gestin de memoria que permite que el espacio de direcciones fsicas de un
proceso no sea contiguo. La paginacin evita el considerable problema de encajar
fragmentos de memoria de tamao variable en el almacn de respaldo; la mayora
de los esquemas de gestin de memoria utilizados antes de la introduccin de la
paginacin sufran de este problema, que surga debido a que, cuando era
necesario proceder a ka descarga de algunos datos o fragmentos de cdigo que
residieran en la memoria principal, tena que encontrarse el espacio necesario en
el almacn de respaldo.
El mtodo bsico para implementar la paginacin implica descomponer la
memoria fsica en una serie de bloques de tamao fijo denominados marcos y
descomponerla memoria lgica en bloques del mismo tamao denominados
72
pginas. Cuando hay que ejecutar un proceso, sus pginas se cargan desde el
almacn de respaldo en los marcos de memoria disponibles. El almacn de
respaldo est dividido en bloques de tamao fijo que tienen el mismo tamao que
los marcos de memoria.
Por cada proceso una tabla de pginas, con una entrada para cada pgina
correspondiente al proceso.
Descriptor de bloques de disco, para cada pgina hay una entrada que
indica dnde est almacenada.
73
es
la
unidad
personal,
cuenta
con
1.5
Mb
de
capacidad.
/rhome/comun
esta es l unidad compartida, cuanta con 546 Mb. de capacidad.
La informacin puede estar almacenada en uno o ms dispositivos. Estos
dispositivos se montan de manera ordenada para formar un rbol de directorios
nico. En el rbol de directorios se pueden combinar dispositivos de distinto tipo
(discos duros, DVDs, discos virtuales...) y con distinta organizacin interna
(sistema de ficheros). Algunos dispositivos se pueden adems dividir en
particiones para gestionar mejor su espacio. Los dispositivos se pueden combinar
mediante mecanismos hardware o software para crear entidades ms sofisticadas
(RAID, volmenes lgicos...) En ciertos UNIX el mismo dispositivo puede ser
gestionado en modo bloque y modo carcter.
74
75
Ubicar las particiones de manera que sea posible redistribuir los discos
Planificacin de Discos
El planificador de disco en Linux, es el que se encarga de atender las
peticiones de lectura o escritura, recolectadas y enviadas por el gestor de
peticiones al disco en forma de bloques de cache, introducidas de forma ordenada
en la cola de peticiones asignada a un dispositivo especifico.
El algoritmo de planificacin de disco utilizado por default en Linux es el
CSCAN, pero si ste no cumple con las expectativas de una peticin especfica
una rutina verifica si existe otro algoritmo de planificacin ms adecuado para
atenderla.
El Adaptive Disk Scheduling (planificador de disco adaptable), planifica las
peticiones de e/s y las organiza en un horario priorizado de acuerdo a parmetros
76
Almacena y Gestiona los datos que los usuarios tienen guardados en los
dispositivos de almacenaje.
Asegura que los datos que se obtienen son idnticos a los que se
almacenaron originalmente.
Los sistemas Linux pueden manejar varias particiones de disco, y cada una puede
tener un sistema de archivos distinto.
77
Control De Acceso
Las entradas de la tabla de pginas tambin contienen informacin relativa
al control de acceso. Puesto que el procesador tiene que utilizar la informacin de
la tabla de pginas para traducir las direcciones virtuales a direcciones fsicas,
puede fcilmente utilizar la informacin de control de acceso para comprobar que
el proceso no est accediendo a memoria de forma apropiada.
Hay muchas razones por las que se puede querer restringir el acceso a
determinadas reas de memoria. Hay memoria, como la que contiene el
ejecutable, que es claramente memoria de slo lectura; el sistema operativo no ha
de dejar que el proceso escriba sobre su propio cdigo de programa. Por el
contrario, pginas de memoria que contengan datos han de poder ser ledas y
escritas, pero un intento de ejecutar algo de estas pginas ha de fallar. La mayora
de los procesadores tienen al menos dos modos de operacin:modo ncleo y
modo usuario. No es deseable que un proceso ejecute cdigo del ncleo, o que
acceda a datos del ncleo excepto cuando el procesador est funcionando en
modo ncleo.
Caches
Adems de invertir esfuerzos en disear y fabricar procesadores, memoria y
otros dispositivos ms rpidos, mejor forma de obtener un buen rendimiento
consiste en mantener en memoria caches de la informacin que se utiliza muy a
menudo.
Linux emplea unas cuantas caches para la gestin de la memoria, entre las
cuales tenemos:
Buffer Cach
Contiene buffers de datos que son utilizados por los manejadores de dispositivos
de bloques. Estos buffers son de tamao fijo (por ejemplo 512 bytes) y contienen
78
79
Cada plataforma sobre la que funciona Linux tiene que proporcionar las macros
que permitan al ncleo atravesar las tablas de pgina de cada proceso. De esta
forma, el ncleo no necesita conocer el formato de las entradas de la tabla de
pginas ni cmo stas se organizan.
Esto es tan til que Linux utiliza el mismo cdigo de gestin de tablas de pginas
en un procesador Alpha, que tiene tres niveles de tablas de pginas, que en un
Intel x86, que slo tiene dos niveles de tablas (para ello, supone que el tamao de
la tabla intermedia es 1, y por tanto, coincide con la entrada del directorio).
Asignacin De Pginas
Linux utiliza el algoritmo Buddy para asignar y liberar eficientemente
bloques de pginas. El cdigo de asignacin intenta asignar un bloque de una o
ms pginas fsicas. Las pginas se asignan en bloques de tamao potencia de 2.
Esto quiere decir que pueden asignar bloques de 1, 2, 4, etc pginas. El algoritmo
de asignacin busca primero entre los bloques de pginas de igual tamao que el
pedido. Luego sigue la lista de pginas libres que est encolada. Si no encuentra
ningn bloque de pginas del tamao pedido libre, entonces busca en los
siguientes (los cuales son del doble del tamao pedido).
Puesto que el nmero de pginas de cada bloque es potencia de 2,
simplemente dividiendo el bloque por la mitad se obtienen dos bloques con un
tamao de bloque inmediatamente inferior.
80
Liberacin De Pginas
Asignar bloques de pginas tiende a fragmentar la memoria al dividir los
bloques grandes para conseguir bloques ms pequeos. El cdigo de liberacin
de pginas recombina pginas en bloques de mayor tamao siempre que es
posible. De hecho, el tamao de bloque de pgina es importante pues facilita la
recombinacin en bloques grandes.
Siempre que se libera un bloque de pginas, se comprueba si est libre el
bloque adyacente de igual tamao. Si es as, se combina con el bloque de pginas
recin liberado para formar un bloque nuevo de tamao doble. Cada vez que dos
bloques de pginas se recombinan en uno mayor, el algoritmo de liberacin
intenta volver a recombinarlo en otro an mayor. De esta forma, los bloques de
pginas libres son tan grandes como la utilizacin de la memoria permita.
La Cache De Pginas Linux
El cometido de la cache de pginas en Linux es el de acelerar el acceso a
los ficheros de disco. Las lecturas sobre los ficheros proyectados en memoria se
realizan pgina a pgina y estas pginas se guardan en la cache de pginas.
Siempre que se lee en una pgina de un fichero proyectado en memoria,
por ejemplo cuando se necesita traer a memoria una pgina desde un fichero de
intercambio, la pgina se lee a travs de la cache de pginas. Linux asigna una
pgina fsica y lee la pgina desde el fichero del disco.
Si es posible, Linux comenzar una lectura de la siguiente pgina del
fichero. Con esta pgina de adelanto se consigue que si el proceso est
accediendo las pginas de forma secuencial, la siguiente pgina est lista y
esperando en memoria la peticin del proceso.
Con el tiempo, la cache de pginas va creciendo conforme las imgenes se
leen y ejecutan. Las pginas han de ser eliminadas de la cache cuando dejan de
utilizarse. Conforme Linux utiliza memoria puede comenzar a escasear las pginas
81
esquema
de
comparticin
de
memoria
es
un
mecanismo
83
84
85
86
VFS, que redirige la peticin al mdulo que gestiona el archivo Sistema Virtual de
Archivos (VFS).
Se puede apreciar en la figura 18, un resumen de las estructuras principales
que acepta el VFS.
decir, El Superbloque contiene una descripcin del tamao y forma base del
sistema de archivo, dicha informacin permite al administrador del sistema de
archivo usar y mantener el sistema. Normalmente slo se lee el Superbloque del
Grupo de Bloque 0 cuando se monta el sistema de archivo pero cada Grupo de
Bloque contiene una copia duplicada en caso de que se corrompa sistema de
archivo.
Fundamentalmente tiene la siguiente informacin:
Nodo-i
Cada uno de los nodos-i describe slo un archivo. Observe que en Linux,
los directorios y dispositivos tambin se representan como archivos, por lo cual
tienen sus correspondientes nodos-i. Tanto los superbloques como los nodos-i
tienen una estructura correspondiente que se mantiene en el disco fsico donde
reside el sistema de archivos.
88
89
EXT2
Los orgenes de Ext2 se remontan a los primeros das de la historia de
Linux, su predecesor, el sistema de archivos extendido (Extended File System), se
implant en abril de 1992 y se integr en Linux 0.96c. El sistema de archivos
extendido experiment diversas modificaciones y, como Ext2, se convirti en el
sistema de archivos para Linux ms popular durante aos. Con la creacin de los
sistemas de archivos con registro en diario y sus sorprendentemente cortos
tiempos de recuperacin, Ext2 perdi protagonismo.
El sistema de ficheros EXT2 se construye con la premisa de que los datos
contenidos en los ficheros se guarden en Bloques de Datos. Estos bloques de
datos son todos de la misma longitud y, si bien esa longitud puede variar entre
diferentes sistemas de ficheros EXT2 el tamao de los bloques de un sistema de
ficheros EXT2 en particular se decide cuando se crea (usando mke2fs). El tamao
de cada fichero se redondea hasta un nmero entero de bloques. Si el tamao de
bloque es 1024 bytes, entonces un fichero de 1025 bytes ocupar dos bloques de
1024 bytes.
No todos los bloques del sistema de ficheros contienen datos, algunos
deben usarse para mantener la informacin que describe la estructura del sistema
de ficheros. EXT2 define la topologia del sistema de ficheros describiendo cada
uno de ellos con una estructura de datos nodo-i.
Un nodo-i describe que bloques ocupan los datos de un fichero y tambin
los permisos de acceso del fichero, las horas de modificacin del archivo y el tipo
del archivo. Cada archivo en el sistema EXT2 se describe por un nico nodo-i y
cada nodo-i tiene un nico nmero que lo identifica. Los nodos-i del sistema de
archivo se almacenan juntos en Tablas de nodos-i.
Los directorios EXT2 son simplemente archivos especiales (ellos mismos
descritos por nodos-i) que contienen punteros a los nodos-i de sus entradas de
directorio
90
Figura 7.3. Distribucin en el disco del Sistema de archivos ext2 de Linux., tomado
de (tanenbaum,2009,pag 790)
El primer bloque en cualquier particin Ext2 nunca es manejado por el
sistema de archivos Ext2, dado que est reservado para el sector de arranque. El
resto de la particin Ext2 se divide en grupos de bloques, reducen la
fragmentacin, dado que el kernel intenta mantener los bloques de datos de un
archivo en el mismo grupo de bloques, si es posible.. Cada grupo se organiza de
la siguiente manera:
El primer bloque es el superbloque, contiene informacin sobre la
distribucin del sistema de archivos, incluyendo el nmero de nodos-i, el nmero
de bloques de disco y el inicio de la lista de bloques de disco libres.En segundo
lugar se encuentra el descriptor de grupo, el cual contiene informacin sobre la
ubicacin de los mapas de bits, el nmero de bloques libres y nodos-i en el grupo,
y el nmero de directorios en el grupo. Seguido se encuentran Dos mapas de bits,
uno lleva el registro de los bloques libres y el otro los nodos-i libres. Cada mapa
tiene un bloque de longitud. Con un bloque de 1 KB, este diseo limita un grupo de
bloques a 8192 bloques y 8192 nodos-i. La primera es una restriccin real, pero en
la prctica, la segunda no lo es. Despus estn los mismos nodos-i. Se enumeran
desde 1 hasta cierto mximo. Cada nodo-i es de 128 bytes de longitud y describe
91
92
Directorios en Linux.
Cada directorio posee cierto nmero integral de bloques de disco, de manera que:
Despus de los cuatro campos fijos, se tiene el campo variable que es el nombre
del archivo en s, al cual se le agrega el byte 0 de terminacin y se rellena para un
lmite de 32 bits. Cabe destacar, que se puede realizar un relleno adicional en otro
instante.
En caso de eliminar la entrada voluminoso como se puede apreciar en la Figura
10-32(b), ocurre un aumento en el tamao del campo de entrada colosal activando
93
Disponibilidad
Tras un corte elctrico o una cada inesperada del sistema (tambin se denomina
cierre no limpio del sistema), se debe comprobar con el programa e2fsck cada
sistema de archivos ext2 montado en la mquina para ver si es consistente. El
proceso de comprobacin lleva mucho tiempo y puede prolongar el tiempo de
arranque del sistema de un modo significativo, especialmente si hay grandes
volmenes que contienen un elevado nmero de archivos. Durante este proceso,
no se puede acceder a los datos de los volmenes.
Con la caracterstica journaling del sistema de archivos ext3 ya no es necesario
realizar este tipo de comprobacin en el sistema de archivos despus de un cierre
no limpio del sistema. En el sistema ext3, nicamente se realiza una
comprobacin de consistencia en los casos puntuales en los que se producen
determinados errores de hardware, como, por ejemplo, fallos en el disco duro. El
tiempo empleado para recuperar un sistema de archivos ext3 tras un cierre no
limpio del sistema no depende del tamao del sistema de archivos ni del nmero
de archivos, sino del tamao del journal (diario), utilizado para mantener la
consistencia en el sistema. Por defecto, la recuperacin del tamao del "journal"
tarda alrededor de un segundo, segn la velocidad del hardware.
Velocidad
El sistema de archivos ext3, aparte de permitir escribir datos ms de una
vez, en la mayora de los casos tiene un rendimiento superior al que
proporciona ext2 porque los "journals" de ext3 optimizan el movimiento de
los cabezales de los discos duros. Se pueden seleccionar tres modos de
journaling para optimizar la velocidad, pero, como contrapartida, la
integridad de los datos se ver afectada.
Fcil transicin
La migracin de EXT2 a EXT3 es muy sencilla y se pueden aprovechar las
ventajas de un slido sistema de archivos con journaling sin tener que
volver a dar formato al sistema.
Si realiza una instalacin nueva de Debian, el sistema de archivos por
defecto que se asigna a las particiones Linux del sistema es EXT3. Si
realiza una actualizacin a partir de una versin de Debian Linux con
particiones EXT2, el programa de instalacin le permitir convertir estas
particiones a EXT3 sin perder los datos.
Fragmentacin de bloques
Para reducir la fragmentacin, permite almacenar en un mismo bloque
fragmentos de diferentes archivos.
Borrado lgico
Una opcin undelete permitir a los usuarios recuperar fcilmente, si es
necesario, el contenido de un archivo eliminado previamente.
EXT4
ext4 (fourth extended filesystem o cuarto sistema de archivos extendido) es un
sistema de archivos transaccional (en ingls journaling), anunciado el 10 de
octubre de 2006 por Andrew Morton, como una mejora compatible de ext3. El 25
de diciembre de 2008 se public el kernel Linux 2.6.28, que elimina ya la etiqueta
de "experimental" de cdigo de ext4.
Las principales mejoras son:
7.2.4 SWAP
El Espacio swap en Linux es usado cuando la cantidad de memoria fsica
(RAM) est llena. Si el sistema necesita ms recursos de memoria y la memoria
fsica est llena, las pginas inactivas de la memoria se mueven al espacio swap.
Mientras que el espacio swap puede ser de ayuda para las mquinas con poca
memoria RAM, no debera considerarse como algo que pueda sustituir a ms
RAM. El espacio Swap se encuentra en discos duros, que tienen un tiempo de
acceso ms lento que la memoria fsica. El espacio Swap puede ser una particin
96
un
gestor
de
volmenes
lgicos
como
LVM
EVMS.
98
F2FS
Es un nuevo sistema de archivos cuidadosamente diseado creado por Samsung
para los dispositivos de almacenamiento basados en memorias Flash NAND.
Elegimos un enfoque a la estructura de registro del sistema de archivos, pero
hemos tratado de adaptarlo a la nueva forma de almacenamiento. Tambin
remediamos algunos problemas conocidos de la muy vieja estructura de registro
del sistema de archivos como el efecto de bola de nieve del rbol errante y el alto
gasto de limpieza
En la Tabla 5, es posible apreciar las diferencias entre los diferentes
sistemas de archivos.
99
100
Figura
7.4.
Directorios
en
Linux,
bajo
el
directorio
Raiz,
tomado
de
(Tecnologica,2012)
/bin Contiene los programas ejecutables que son parte del sistema operativo
Linux. Muchos comandos de Linux como cat, cp, ls, more y tar estn ubicados en
este directorio.
/boot Contienen el kernel (o ncleo) de Linux y otros archivos necesarios para el
administrador de inicio LILO, que realiza la carga inicial del sistema operativo
cuando la computadora se enciende.
101
/dev Contienen todos los archivos de acceso a dispositivos. Linux trata cada
dispositivo (terminales, discos, impresoras, etc.) como si fuera un archivo especial.
/etc. Contiene archivos de configuracin del sistema y los programas de
inicializacin.
/home Contiene los directorios HOME de los usuarios. El directorio HOME el
directorio inicial en el que se encuentra posicionado un usuario al ingresar al
sistema, por lo que tambin se conoce como directorio de logn o de conexin.
/lib Contiene los archivos de biblioteca utilizados por las aplicaciones y utilidades
del sistema, as tambin como las libreras pertenecientes a diferentes lenguajes
de programacin.
/lost+found Directorio para archivos recuperados por el proceso de reparacin del
sistema de archivos, que se ejecuta luego de una cada del sistema y asegura su
integridad luego de que el equipo haya sido apagado de manera inapropiada.
/mnt Es un directorio vaco que se usa normalmente para montar dispositivos
como disquetes y particiones temporales de disco.
/proc Contiene archivos con informacin sobre el estado de ejecucin del sistema
operativo y de los procesos.
/root Es el directorio HOME para el usuario root (administrador del sistema).
/sbin Contienen archivos ejecutables que son comandos que se usan
normalmente para la administracin del sistema.
/tmp Directorio temporal que puede usar cualquier usuario como directorio
transitorio.
/usr Contiene archivos de programa, de datos y de libreras asociados con las
actividades de los usuarios.
102
-: archivo normal
d: directorio
l: enlace simblico
s: socket
los permisos de acceso del archivo (los nueve caracteres, tres para cada
usuario, grupo y otros en ese orden)
# cd /determinada/ubicacion/
# chown -R reina:duquesa .
# chmod -R ug+rwX,o=rX .
Existen tres bits mas para permisos especiales:
105
sus permisos en representacin binaria (base 2) (con "-" igual a "0" y "rwx" igual a
"1") le resultara familiar los permisos de archivo en representacin octal (base 8).
Por ejemplo:
$ touch reina cabina
$ chmod u=rw,go=r reina
$ chmod 644 cabina
$ ls -l reina cabina
-rw-r--r-- 1 penguin penguin 0 Nov 3 23:30 reina
-rw-r--r-- 1 penguin penguin 0 Nov 3 23:30 cabina
Se puede definir la mscara de permisos predeterminada usando el comando
umask que viene con el shell.
Manejadores de dispositivos:
Los dispositivos de entrada/salida los cuales son integrados al sistema de
archivo como archivos especiales, a cada uno se le asocia un drivers de
dispositivo el cual se encargara de manejar el dispositivo correspondiente.
Cada driver tiene lo que se conoce como nmero de dispositivo mayor, que
sirve para identificarlo. Si un driver acepta varios dispositivos (por ejemplo, dos
discos del mismo tipo), cada disco tiene un nmero de dispositivo menor que lo
identifica. En consecuencia, los nmeros de dispositivo mayor y menor especifican
cada uno de los dispositivos de E/S en forma nica. En unos cuantos casos, un
solo driver maneja dos dispositivos que estn muy relacionados.
Por ejemplo, el driver que corresponde a /dev/tty controla tanto el teclado
como la pantalla, que a menudo se considera como un solo dispositivo: la terminal.
109
Manejadores de interrupciones
110
9. Informe de errores
Los errores no resueltos por los manejadores debern ser tratados por el
SID, que intentar solucionarlos, y si no puede, deber informar de los
mismos.
111
usuario como parte de una aplicacin har llamadas al sistema y otras actividades
del sistema desde el ncleo.
Procedimientos de biblioteca
La mayora del software de E/S est en el ncleo, Sin embargo, tambin
Sistema de spooling
Los dispositivos de uso exclusivo no se pueden dejar a cargo de programas
9.1
112
especial. Aqu tambin hay distintas personas con distintas preferencias. CTRL-C
es una opcin comn, pero no es universal.
En vez de seleccionar una opcin y obligar a que todos la utilicen, Linux
permite al usuario personalizar todas estas funciones y muchas otras. Por lo
general se proporciona una llamada al sistema especial para establecer estas
opciones. Esta llamada al sistema tambin permite expandir el tabulador, habilitar
y deshabilitar el eco de los caracteres, realizar la conversin entre el retorno de
carro y el avance de pgina, y otras cosas similares. Esta llamada al sistema no se
permite en los archivos regulares o en los archivos especiales de bloque.
Dispositivos de Bloques
Un archivo especial de bloques consiste en una secuencia de bloques
enumerados. La propiedad clave del archivo especial de bloques es que se puede
direccionar y utilizar cada bloque por separado. En otras palabras, un programa
puede abrir un archivo especial de bloques y leer, por ejemplo, el bloque 124 sin
tener que leer primero los bloques 0 a 123. Por lo general, los archivos especiales
de bloques se utilizan para los discos.
Dispositivos de Caracteres
Los archivos especiales de caracteres se utilizan por lo comn para dispositivos
que reciben o envan un flujo de caracteres. Los teclados, las impresoras, redes,
ratones, plotters y la mayora de los otros dispositivos de E/S que aceptan o
producen datos para las personas, utilizan archivos especiales de caracteres. No
es posible (ni tiene sentido) buscar el bloque 124 en un ratn.
113
Grupo del propietario: rene a todos los usuarios que pertenecen al grupo
del propietario.
SEGURIDAD EXTERNA:
Hace referencia a los controles y mecanismos implementados para
controlar el acceso remoto desde y hacia el centro de cmputo. Se prevn
amenazas como:
117
SEGURIDAD INTERNA
Seguridad local
Linux dispone de un control de acceso a los usuarios verificando una pareja
de usuario y clave, cada fichero y directorio tiene sus propios propietarios y
permisos.
Iptables: Tabla proveda por el firewall del kernel de Linux. Requiere privilegios del
root para funcionar.
Deja que el administrador del sistema defina las tablas que contiene cadenas de
reglas para tratar a los paquetes.
Account: verifica que sea el acceso permitido, por ejemplo verificar que la cuenta
no haya sido caducada, o que el usuario tenga los permisos para iniciar sesin. o
Password: se usa para establecer y verificar contrasea.
Session: esta interfaz del mdulo configura y administra las sesiones de usuario,
los mdulos con esta interfaz tambin pueden realizar tareas adicionales que son
requeridas para permitir acceso, como el montaje de directorios principales de
usuarios.
Contraseas
Las contraseas de Linux utilizan el algoritmo de cifrado de IBM Data
Encryption Standard (DES). Estas contraseas son de longitud fija de 8
caracteres. Pero, siempre que sea posible es preferible utilizar contraseas MD5.
MD5 es un algoritmo hash que mejora a DES en los siguientes aspectos: las
contraseas son de longitud infinita, permiten al inclusin de signos de puntuacin
y otros caracteres, y adems, es exportable fuera de Estados Unidos, ya que no
ha sido desarrollado por su gobierno.
Se almacenan, en principio, en el archivo /etc/passwd que debe tener
permisos 644. Por seguridad y, dado que es necesario mantener la lectura sobre
este archivo, se utilizan las shadows passwords y, en este caso, las contraseas
se almacenan en el archivo /etc/shadow con permisos 600, es decir sin lectura
para el grupo y los otros. De esta forma se impide que los usuarios normales
puedan ver las contraseas cifradas. El propietario de ambos archivos debe ser
root.
Como normas para la formacin de una contrasea se puede decir que es
conveniente:
9.2 Proteccin
Los problemas de la proteccin de linux
La complejidad de las amenazas en un entorno multiplataforma se ve
agravada por los desafos tcnicos que supone proveer una proteccin fiable para
los entornos Linux. Las tres cuestiones tcnicas destacables son el escaneado en
acceso, los diferentes kernel y la personalizacin del sistema.
120
Escaneado en acceso
El escaneado en demanda y el escaneado programado ya no son
suficientes para proteger los sistemas Linux. Las amenazas actuales pueden
propagarse a travs de la red en cuanto se accede a un archivo infectado, ya sea
por accin directa del usuario o desde alguna funcin automtica del sistema. Por
esta razn, el escaneado en acceso es vital. No obstante, proporcionar escaneado
en acceso para Linux ha sido histricamente una tarea compleja, incmoda y
engorrosa, puesto que el programa antivirus debe conectarse directamente al
kernel del sistema.
121
123
Uno de sus fines es facilitar las relaciones entre el Poder Pblico y los
ciudadanos, a travs de las tecnologas de informacin, por lo que la norma
garantizar el acceso del pueblo a la informacin en sus roles de contralor y
usuario.
124
125
Figura 10.1 Uso de sistemas operativos por versin a nivel global (abril a septiembre de 2015)
126
Figura 10.2 IBM Roadrunner, la supercomputadora ms potente de 2008, funciona bajo una
distribucin GNU/Linux Red Hat Enterprise Linux.
127
Portugal:Convenio
para
la
fabricacin
de
250.000
computadores
128
basada en la versin estable de GNU/Linux Debian, la cual pasa por una serie de
procesos y pruebas rigurosas de calidad, prcticamente libre de virus informticos,
Costo nulo por pago de licencias, Realizada en Venezuela por talento nacional.
Hablando un poco del funcionamiento del proyecto se dice que es el primer
paso de un nuevo modelo educativo que empieza a surgir en Venezuela. Con el
uso de las Tecnologas de la Informacin y la Comunicacin (TIC's), los
estudiantes tienen la oportunidad de convertirse en exploradores del conocimiento,
descubriendo
aplicaciones que
abordan
Ofimtica:
o
Procesador de textos
Hoja de clculo
Generador de Presentaciones
Gestin de proyectos:Planner
Editor de HTML.
131
GNU/Linux,
desde
la
versin
3,
LibreOffice
sustituy
Internet:
o
ClienteTwitter: Turpial.10
Grficos:
o
Libreoffice Draw.
GNU Paint.
Gimp
Inkscape
Programacin:
o
Quanta Plus.
Eclipse.
Anjuta:Entorno
de
desarrollo
integradopara
programar
en
132
11.3 Lanzamientos
Canaima GNU/Linux es una distribucin de la cual se han generando
versiones peridicamente en los ltimos aos. La tabla 6, siguiente detalla los
lanzamientos de cada versin.
Versin
1.0
Canaima
2.0
Canaima
Canaima
2.0.1
Canaima
2.0.2
Canaima
2.0.3
Canaima
2.0.4
Canaima
2.1 RC
Canaima
3.0 RC
Roraima
3.0 RC2
Roraima
3.0
Roraima
3.1 VC1
Auyantepui
3.1 VC2
Auyantepui
3.1 VC3
Auyantepui
3.1
Auyantepui
4.0
Kerepakupai
04 de diciembre de 201323
4.1
Kukenn
04 de septiembre de 2014
2.0.1
RC1
133
21 Julio 2015
Color
Significado
Rojo
Amarillo
Verde
Azul
134
solicitar
travs
de
lista
de
correo
135
desarrolladores@canaima.softwarelibre.gob.vepermisos
suficientes
en
los
136
137
de
computadoras
estudiantes
de
las
instituciones
pblicas
138
11.7 Ediciones
Existen diversas ediciones de Canaima mantenidas y reconocidas por activistas
de la comunidad, las cuales poseen lanzamientos no al mismo tiempo que
Canaima. Las ms significativas son:
Canaima
Forense:
distribucin
con
un
entorno
destinado
la
11.8 Versiones
Ms all de haber desarrollado su propio cdigo y de integrar los cambios
realizados por otros programas, Linus Torvalds continua lanzando nuevas
versiones del ncleo Linux. Estos son llamados ncleos vanilla, lo que significa
que no han sido modificados por nadie.
139
Numeracin
La versin del ncleo Linux original constaba de cuatro nmeros. Por
ejemplo, asumiendo que el nmero de la versin est compuesta de esta forma:
A.B.C[.D] (ej.: 2.2.1, 2.4.13 2.6.12.3).
140
Comenzando con la serie Linux 2.6.x, no hay gran diferencia entre los
nmeros pares o impares con respecto a las nuevas herramientas desarrolladas
en la misma serie del ncleo. Linus Torvalds dictamin que este ser el modelo en
el futuro.
(2.5) donde estaban permitidos cambios mayores. Esto signific que los usuarios
siempre tenan una versin 2.4 a prueba de fallos y con lo ltimo en seguridad y
casi libre de errores, aunque tuvieran que esperar por las caractersticas de la
rama 2.5. La rama 2.5 fue eventualmente declarada estable y renombrada como
2.6. Pero en vez de abrir una rama 2.7 inestable, los desarrolladores de ncleos
eligieron continuar agregando los cambios en la rama estable 2.6. De esta forma
no haba que seguir manteniendo una rama vieja pero estable y se poda hacer
que las nuevas caractersticas estuvieran rpidamente disponibles y se pudieran
realizar ms pruebas con el ltimo cdigo.
Sin embargo, el modelo de desarrollo del nuevo 2.6 tambin signific que
no haba una rama estable para aquellos que esperaban seguridad y bug fixes sin
necesitar las ltimas caractersticas. Los arreglos solo estaban en la ltima
versin, as que si un usuario quera una versin con todos los bug fixed
conocidos tambin tendra las ltimas caractersticas, las cuales no haban sido
bien probadas. Una solucin parcial para esto fue la versin ya mencionada de
cuatro nmeros (y en 2.6.x.y), la cual significaba lanzamientos puntuales creados
por el equipo estable (Greg Kroah-Hartman, Chris Wright, y quizs otros). El
''equipo estable'' solo lanzaba actualizaciones para el ncleo ms reciente, sin
embargo esto no solucion el problema del faltante de una serie estable de
ncleo. Distribuidores de Linux, como [[Red Hat]] y [[Debian]], mantienen los
ncleos que salen con sus lanzamientos, de forma que una solucin para algunas
personas es seguir el ncleo de una distribucin.
143
CONCLUSION
econmicas: es gratuito
144
BIBLIOGRAFA
08
25,
2015,
from http://es.slideshare.net/tecnojulio/el-
sistema-operativo-1
agosto
2015,
25,
from
https://es.wikipedia.org/wiki/Gestin_de_memoria
agosto
23,
2015,
from
http://codigosur.org/article/un-
testimonio-del-paro-petrolero-de-2002/
de
septiembre
de
2015,
de
https://eplauchu.wordpress.com/2013/07/17/administracion-de-memoriaen-linux/
e&id=107:el-software-libre-y-su-uso-en-la-administracionpublica&catid=23
el
10
de
septiembre
de
2015,
de
http://es.slideshare.net/chriztOpheer/gestion-de-memoria-en-linux
from
https://1984.lsi.us.es/wiki-
ssoo/index.php/Componentes_b%C3%A1sicos_de_un_sistema_operati
vo
146