SlideShare una empresa de Scribd logo
1 de 13
UTPL. Sistema Operativo Linux
.
1
Sistema Operativo LINUX
Carlos Xavier Hidalgo Paredes cxhidalgo@utpl.edu.ec
Miguel Ángel Herrera Díaz mahdiaz@utpl.edu.ec
Miguel Danilo Diaz Aponte mddiaz@utpl.edu.ec
Jefersson Morillo Castillo jamorillo1@utpl.edu.ec
Escuela de Ciencias de la Computación
Loja, Ecuador
RESUMEN: El presente documento tiene la
intención de dar una breve explicación de todos los
temas relacionados con el Sistema Operativo Linux,
donde ha tenido un gran impacto en la industria de la
informática resaltando de él la seguridad y fiabilidad que
este presenta en su uso, por eso la NASA y otras
Entidades Gubernamentales lo prefieren a la hora de
usarlos como servidores de cualquier tipo de servicios.
PALABRAS CLAVES: Linux, informática,
distribuciones, impacto, seguridad, archivos,
interrupciones, fiabilidad, servidores. Rendimiento,
memoria, gestión.
1 INTRODUCCIÓN
El sistema operativo Linux hoy en día se encuentra ya
con muchas distribuciones, lo que puede hacer que un
usuario sin experiencia se encuentre indeciso a la hora
de elegir la distribución que mejor se adapte a sus
necesidades.
2 CONTENIDOS
2.1 ¿Qué es LINUX?
Figura 01. LINUX Imagen tomada de:
http://digitalpcpachuca.blogspot.com/2012/03/sistema-
operativo-linux.html
Una distribución en Linux es un sistema operativo que
reúne todo un software para poner a un ordenador a
punto de uso, además están formado por un núcleo del
sistema, que son programas que controlan cada uno de
los dispositivos del ordenador, como por ejemplo
NESTCAPE,CORELDRAW O STARTOFFICE.
1
Linux o más bien GNU/Linux es un potente y completo
sistema hecho dependiendo a tus necesidades
operativas, que combina la seguridad y la eficiencia a la
hora de usar recursos del PC. Su uso es bastante amplio
en la industria; va desde usarlo como Sistema Operativo
de una PC de Hogar hasta un poderoso simulador de la
NASA. Y todo esto a pesar que es Libre y Linux ha
incursionado en el mundo de los dispositivos móviles su
desarrollo es a través de muchas personas y empresas
que donan gracias a Android Inc. ahora propiedad de
Google que desde su tiempo, capacidad y recursos para
desarrollar se encargaron de hacer modificaciones a
Linux y adaptarlos a móviles.
2.2 Principales ventajas y desventajas de
LINUX
VENTAJAS:
o Es totalmente Gratuito y aunque posea
versiones de paga, es aún más barato que
comprar Windows.
o Tienen muchos programas muy útiles y que lo
puedes encontrar muy fácilmente en internet.
o Un punto muy importante es la seguridad,
los Hackers y/o creadores de virus rara vez
atacan a Software de Linux.
o Se lleva bien en el arranque en conjunto con
Windows.
o Carga y realiza tareas con mayor eficiencia que
Windows.
o La constante actualización y nuevas versiones
es asombrosa. Existen infinidades de
Distribuciones de Linux.
DESVENTAJAS:
1
Diseño gráfico, desarrollo web y software libre consulta realizada
de :http://dglibre.com/2008/09/14/distribuciones-linux-para-
disenadores-graficos/
UTPL. Sistema Operativo Linux
.
2
o El origen técnico de Linux aún se percibe; antes
de que puedas creerlo, estarás abriendo una
“Terminal” de Linux y escribiendo comandos.
Algo que nunca harías con Windows.
o No es muy común su uso en Compañías, por lo
que generalmente se usa para trabajar desde
Casa, así que debes hacer ajustes laboriosos.
o A la hora de trabajar con documentos de
Windows complejos, se podría convertir en una
tareas difícil o casi imposible debido a la poca
compatibilidad para importar desde Windows
para Linux.
o Instalar controladores de Hardware y
programas resulta ser más complicado que en
Windows. Esto debido a que las empresas
creadoras de controladores crean sus
productos en base a Windows, el sistema
operativo más usado a nivel mundial.
o Muchos juegos no se ejecutan en Linux así que
olvídate de grandes Gráficos y poner a trabajar
tu tarjeta de video al máximo. Claro existen sus
excepciones.
2.3 ¿Qué Distribuciones tiene Linux?
Figura 02.Distribuciones de Linux
http://nexolinux.com/tag/noticias-linux/
A continuación se detallan las diferentes distribuciones
que existen:
o Suse, Red Hat, Conectiva estas se atreven a
sacar distribuciones pre configuradas que
realizan distintos tipos de tareas, tales como
servidor de correo, servidor web, almacenar
datos, etc. y que poseen una gran cantidad de
aplicaciones.
o DISTRIBUCIONES PROFESIONALES: son
distribuciones utilizadas por programadores
experimentados, dirigidas a desarrolladores de
aplicaciones y profesionales informáticos con
experiencia. Es el caso de las distribuciones
Slackware, Gentoo o Debian, tres
distribuciones en las cuales el profesional
configura el sistema a su medida optimizando
sus programas.
o Distribuciones a la carta: distribuciones de
carácter específico, es decir, creadas con
objetivos concretos y con propósitos
determinados. Es el caso de Lliurex,
Guadalinux o Linex, que tienen por finalidad la
promoción del desarrollo de software libre y la
utilización de esa tecnología para la educación
y formación en la cultura del software libre.
o Distribuciones auto arrancables: son
distribuciones preinstaladas en un CD normal,
que no necesitan copiar ningún programa en el
disco duro del ordenador. Utilizan
distribuciones como Knoppix, Kurumin o
Gentoo que son ejemplos de este tipo de
distribución.
o Distribuciones para el “gran público”:
distribuciones que se ofrecen a las personas
que necesitan herramientas en su trabajo, por
ejemplo, paquetes de ofimática, reproductores
multimedia, entre otras aplicaciones que se
usan por un usuario. Entre las que encontramos
según el criterio del autor Nicola Pons, del libro
“LINUX principios básicos del uso del sistema”:
2
o Entre estas distribuciones cuentan con las
siguientes características :
o Mandriva: Su instalador es uno de los más
amigables que existen. Cuenta con repositorios
tanto oficiales como no oficiales, además de los
paquetes incluidos en el CD/DVD.
o Fedora: Fedora trata de ser el líder en el
ámbito de usar software libre y código abierto.
o Prefieren hacer cambios en las fuentes que
aplicar un parche específico para su
distribución, de esta forma se asegura que las
actualizaciones estén disponibles para todas
las variantes de Linux
o Distribuciones móviles: Este tipo de
distribuciones no se cargan en memoria RAM
sino solo de un dispositivo USB, entre las que
nombramos:
2
Nicola Pons, autor del libro “LINUX principios básicos del uso del
sistema”:
2
UTPL. Sistema Operativo Linux
.
3
o Knoppix: Su arranque automático, tiene gran
cantidad de software, su sistema de
compresión al vuelo y la posibilidad de
instalarlo al disco duro han convertido a
knoppix en una herramienta indispensable.
o Linux Mint es una distribución basada en
Ubuntu, y es una de las alternativas más
potentes. Ofrece un escritorio actualizado y
cómodo, con Gnome, y muy atractivo. Presenta
muchas características de Ubuntu, como un
centro de software
2.4 Planificación SJF
Se basa en los ciclos de vida de los procesos, los cuales
transcurren en dos etapas o periodos que son: ciclos de
CPU y ciclos de entrada/salida, también conocidos por
ráfagas.
La palabra “shortest”, se refiere al proceso que tenga el
próximo ciclo de CPU más corto. La idea es escoger
entre todos los procesos listos el que tenga su próximo
ciclo de CPU más pequeño.
El SJF se puede comportar de dos formas:
o Con Desalojo: Si se incorpora un nuevo
proceso a la cola de listos y este tiene un ciclo
de CPU menor que el ciclo de CPU del proceso
que se está ejecutando, entonces dicho
proceso es desalojado y el nuevo proceso toma
la CPU.
o Sin desalojo: Cuando un proceso toma la
CPU, ningún otro proceso podrá apropiarse de
ella hasta que el proceso que la posee termine
de ejecutarse.
Características:
o Entra en la CPU el proceso con la ráfaga de
CPU más corta.
o Minimiza el tiempo de espera medio.
o Riesgo de inanición de los procesos de larga
duración.
o No es implementable. Se pueden estimar las
duraciones de los procesos, según su historia
reciente.
o Versión expulsiva (SRTF): el proceso en CPU
es desalojado si llega a la cola un proceso con
duración más corta.
2.5 Gestión de Procesos de Linux
o En Linux, la planificación de procesos se lleva a
cabo en la función schedule() . Aun así, existen
otras funciones que también están involucradas
en el reparto del tiempo de ejecución.
o El shell es un proceso y cada orden que
escribamos genera un nuevo proceso hijo del
shell. De hecho, en UNIX todos los procesos
son familia, ya que la única forma de crear un
nuevo proceso es generándolo como hijo de un
proceso existente. El proceso init es antecesor
de todos los demás
2.6 Ciclo de vida de un proceso Linux
Sabemos que un programa es una colección de
instrucciones y de datos que se encuentran
almacenados en un archivo que tiene en su inodo un
atributo que lo identifica como ejecutable. Puede ser
ejecutado por el propietario, por el grupo y por el resto
de los usuarios, dependiendo de los permisos que tenga
el archivo.
Cuando un programa es leído del disco (a través del
sistema de archivos) por el kernel y es cargado en
memoria para ejecutarse, se convierte en un proceso.
También debemos recordar que en un proceso no sólo
hay una copia del programa, sino que además el kernel
le añade información adicional para poder manejarlo.
2.7 Estados de ejecución en Linux
o En Ejecución (TASK_RUNNING): El proceso
es ejecutado por el procesador.
o Listo (TASK_RUNNING): El proceso podría
ser ejecutado, pero otro proceso se está
ejecutando en ese momento.
o Interumpible (TASK_INTERRUPTIBLE): Es
un estado de bloqueo, en el cual el proceso
espera un suceso, como la terminación de
una operación de entrada/salida, liberación
de un recurso o una señal de otro proceso.
o No interrumpible: Es otro estado de
bloqueo. La diferencia entre éste y el
estado Interumpible es que en un
estado No Interumpible, un proceso
espera directamente en una condición
de hardware y, por tanto, no acepta
señales.
o Parado (TASK_STOPPED): El proceso
ha sido detenido por una intervención
externa y sólo puede reanudarse por
una acción positiva de otro proceso.
o Zombie (TASK_ZOMBIE). El proceso ha
terminado pero, por alguna razón, su
estructura
3
task debe permanecer aún
en la tabla de procesos.
3
Corral, A. L. (s.f.). Universidad de Almería. Obtenido
de: http://www.ual.es/~acorral/DSO/Tema_2.pdf
UTPL. Sistema Operativo Linux
.
4
Figura 03. Diagrama de transición de estados de un
proceso en un sistema LINUX. Imagen tomada de:
http://www.ual.es/~acorral/DSO/Tema_2.pdf
2.8 Niveles de Ejecución
o Modo Kernel: (modo privilegiado). En este
modo no se impone ninguna restricción al
kernel del sistema. El kernel podrá:
o Utilizar todas las instrucciones del
procesador.
o Manipular toda la memoria.
o Dialogar directamente con todos los
controladores (drivers) de dispositivos.
o Modo usuario: Modo de ejecución normal de
un proceso. En este modo el proceso no posee
ningún privilegio.
o Ciertas instrucciones están prohibidas.
o Sólo tiene acceso a las zonas que se le
han asignado al proceso.
o No puede interactuar con la máquina
físicas (hardware).
o Sólo efectúa operaciones en su entorno,
sin interferir con los demás procesos.
o Puede ser interrumpido en cualquier
momento, pero esto no obstaculiza su
funcionamiento.
Recordemos también que un proceso que se ejecute en
modo usuario no puede acceder directamente a los
recursos de la máquina, para ello debe efectuar
“llamadas al sistema”.
2.9 Espacios de direcciones del sistema
Figura 04. Espacios de direcciones para un sistema
LINUX. Imagen tomada de:
http://www.slideshare.net/javymix/linux-ud7-gestion-de-
procesos
o Segmentos de texto: código de programa
o Segmentos de datos: variables globales y
estáticas
o Pila: Lo crea el kernel y su tamaño es
gestionado dinámicamente por él. Es una
secuencia de bloques lógicos o stack frames
o Un stack frame: se introduce o saca en función
de si se llama o se vuelve de la llamada a una
función
o Cada modo maneja su propia pila o stack
o Stack de kernel: contiene los stack frames
de las llamadas a sistema(funciones que
se ejecutan en modo kernel)
o Stack del usuario: stack frames de
funciones que se ejecutan en modo
usuario.
o Requiere de otro programa llamado
Planificador o “scheduler” que permite
gestionar que proceso entra a ejecutarse
en cada instante en la CPU, ya que esta es
un recurso limitado.
4
2.10 Comunicación y Sincronización de
procesos
Los medios de comunicación entre procesos (Inter-
Process Communication o IPC) de Linux proporcionan
un método para que múltiples procesos se comuniquen
unos con otros.
4
Lara, E. (s.f.). Universidad Politécnica de Cataluña. Obtenido de:
http://personals.ac.upc.edu/elara/documentacion/LINUX%20-
%20UD7%20-%20Gestion%20de%20Procesos.pdf
UTPL. Sistema Operativo Linux
.
5
Existen varios métodos de IPC disponibles en Linux:
o Pipes UNIX Half-duplex
o FIFOs (pipes con nombre)
o Colas de mensajes estilo SYSTEM V
o Semáforos estilo SYSTEM V
o Segmentos de memoria compartida estilo
SYSTEM V
Pipes UNIX Semi-duplex
La forma más simple de IPC en Linux son los pipes o
tuberías, han estado presentes desde los primeros
orígenes del sistema operativo UNIX y proporcionan un
método de comunicaciones en un sentido
(unidireccional, semiduplex) entre procesos.
Una tubería (pipe) es simplemente un método de
conexión que une la salida estándar de un proceso a la
entrada estándar de otro.
5
Para esto se utilizan
“descriptores de archivos” reservados, los cuales en
forma general son:
o 0: Entrada estándar (stdin).
o 1: Salida estándar (stdout).
o 2: Salida de error (stderr).
Tuberías con Nombre (FIFO - First In First Out)
Un FIFO también se conoce como una tubería con
nombre. El nombre es de un archivo que múltiples
procesos pueden abrir, leer y escribir. Una tubería con
nombre funciona como una tubería normal, pero tiene
algunas diferencias notables:
o Las tuberías con nombre existen en el sistema
de archivos como un archivo de dispositivo
especial.
o Los procesos de diferentes padres pueden
compartir datos mediante una tubería con
nombre.
o Una vez finalizadas todas las operaciones de
E/S, la tubería con nombre permanece en el
sistema de archivos para un uso posterior.
Creación de una FIFO
Hay varias formas de crear una tubería con nombre. Las
dos primeras se pueden hacer directamente desde el
shell:
o mknod MIFIFO p
o mkfifo a=rw MIFIFO
Los dos comandos anteriores realizan operaciones
idénticas, con una excepción, el comando mkfifo
proporciona una posibilidad de alterar los permisos del
5
Sven Goldt, S. v. (13 de 03 de 1995). IBLIO. Obtenido de
http://www.ibiblio.org/pub/Linux/docs/LDP/programmers-
guide/translations/es/gulp-0.11.pdf
archivo FIFO directamente tras la creación. Con mknod
será necesaria una llamada al comando chmod.
Anteriormente en Linux no podía ser desalojado de
ninguna manera un proceso que se esté ejecutando en
modo kernel, o sea que era un kernel no apropiativo,
pero actualmente es apropiativo, de tal manera que sí
puede ser desalojada una tarea que se esté ejecutando
en modo kernel.
El kernel de Linux proporciona bloqueos mediante
bucles sin fin y semáforos, así como versiones lector-
escritor de éstos bloqueos para establecer bloqueos en
el kernel.
En una máquina SMP, se hace uso de bucles sin fin, y el
kernel se diseña de modo que dicho tipo de bloqueo se
mantenga sólo durante períodos de tiempo cortos. En
las máquinas monoprocesador, se reemplazan los
bloqueos de bucle sin fin por un mecanismo de
activación y desactivación de la función de apropiación
en el kernel. Linux proporciona llamadas al sistema para
activar y desactivar los mecanismos de desalojo del
kernel, estas son: preempt_disable(), preempt_enable().
El kernel no es desalojable si hay una tarea modo kernel
que esté manteniendo un bloqueo.
Temporizadores del Kernel (timers).
Linux gestiona una lista de timers con el objetivo de
poder poner procesos en espera durante un periodo de
tiempo determinado. Estos timers se organizan en forma
de una lista circular doblemente enlazada, los timers a
desencadenar en un futuro próximo se colocan al
principio de la lista, mientras que los elementos a
desencadenar en un futuro lejano se al final de dicha
lista. La estructura timer_list, se define en el archivo
linux/timer.h según la siguiente estructura:
struct timer_list {
struct list_head list;
unsigned long expires;
unsigned long data;
void (*function) (unsigned long);
volatile int running;
};
La variable timer_head, definida en el archivo
kernel/sched.c, contiene la dirección del primer elemento
(timer) de la lista. La fecha de expiración (expires) se
expresa en número de ciclos de reloj desde el arranque
del sistema. La variable global jiffies es mantenida por el
kernel (su valor se incrementa en cada interrupción de
reloj) y contiene siempre el número de ciclos de reloj
transcurridos desde el arranque. Además, el campo
expires tiene el valor de jiffies cuando el manejador
function debe ser invocado con data pasado como
parámetro.
Semáforos: Conocidos como una estructura de datos
con un contador asociado, que es verificado por cada
UTPL. Sistema Operativo Linux
.
6
thread antes de accesar dicha estructura. Posee un
contador entero, una lista de procesos en espera y dos
operaciones básicas up(), down().
2.11 Sincronización de Procesos
Semáforos
o Las funciones para trabajar con semáforos en
Linux en C están incluidas en las librerías
<sys/types.h>,<sys/ipc.h> y <sys/sem.h>.
o En particular, las funciones son semget, semop
y semctl.
o Estas funciones, aunque muy potentes, son
habitualmente complicadas de usar, por lo que
se recomienda utilizarlas en su versión más
básica, siempre que sea posible.
o En vez de un solo semáforo clásico
representado por un entero no negativo, en
realidad semget define un array de semáforos
del tamaño especificado. Hay que trabajar por
tanto con conjuntos de semáforos, aunque para
crear un sólo semáforo necesitemos crear un
array de un solo elemento.
o La creación de un semáforo es independiente
de su inicialización, lo cual es especialmente
peligroso ya que no se puede crear un
semáforo inicializado de forma atómica.
6
Spin Lock: En sistemas multiprocesadores (SMP), bajo
condiciones de competencia por la exclusividad de un
recurso, si el intervalo de espera es pequeño, es más
eficiente generar un ciclo de espera (busy wait) en el
resto de los CPUs
Historia de la sincronización en Linux
Linux utiliza un método para activar y desactivar los
mecanismo de desaojo de kernel, es decir proporciona
dos llamadas al sistema: preempt_disable() y preempt
enable(). El kernel no es desalojable si hay una tarea en
modo kernel que este manteniendo un bloqueo
Aspectos importantes de la sincronización de Linux
o Es un sistema operativo reentrante, multi
usuario y multi tarea.
o Soporta multiprocesamiento, por lo que cierto
código del kernel ejecutándose en
procesadores distintos podría acceder al mismo
recurso al mismo tiempo.
6
República del Saber. (18 de 06 de 2009). Obtenido de
http://expo.itch.edu.mx/view.php?f=os_31#page4
o Las interrupciones ocurren asincrónicamente
con respecto al código ejecutado en un
momento dado.
o Es preemptive (desde el 2.6). Por lo que, cierto
código del kernel puede ser interrumpido en
favor a otro código que acceda al mismo
recurso.
o El kernel debe proveer mecanismos de
sincronización.
Conceptos importantes de Sincronización:
o Condiciones de Competencia: se presenta
cuando dos o más procesos compiten por
acceder a un mismo recurso. Si no existe
sincronización al interferirse los cambios
pueden haber serias inconsistencias.
o Exclusión mutua: principio que establece que
la ejecución de secciones críticas de los
procesos sea mutuamente exclusiva en el
tiempo.
o Operaciones atómicas: operación que no es
interrumpida que finaliza su procesamiento
(read-modify-write), e.g. x=x+1 => ++x, x86 lock
prefix, Linux struct atomic_t.
o Sección Crítica: Mientras se ejecuta una
sección crítica existe la garantía de que ningún
otro proceso se ejecutará a la vez por lo que el
código, i.e. se comporta como si fuera una
operación atómica, e.g. Java synchronized
o Interbloqueo: Cuando dos o más procesos
esperan la ocurrencia de un evento que sólo
uno de los procesos que esperan puede
causar.
o Inanición o bloqueo indefinido: Sucede
cuando los procesos interbloquedos esperan
indefinidamente.
Figura 05. Sincronización en Linux. Imagen
Tomada de:
http://www.plusformacion.com/Recursos/r/Sincroniz
acion-entre-procesos
UTPL. Sistema Operativo Linux
.
7
Propiedades de un proceso
o Un proceso incluye, no sólo el programa que
ejecuta, sino toda la información necesaria para
diferenciar una ejecución del programa de otra.
o Toda esta información se almacena en el
kernel, en el PCB.
o En Linux, por ejemplo, las propiedades de un
proceso se agrupan en tres: la identidad, el
entorno, y el contexto.
Identidad: Define quién es (identificador, propietario,
grupo) y qué puede hacer el proceso (recursos a los que
puede acceder)
Entorno: Parámetros (argv en un programa en C) y
variables de entorno
Contexto: Toda la información que define el estado del
proceso, todos sus recursos que usa y que ha usado
durante su ejecución.
Figura 06. Realización de un proceso. Imagen tomada
de:
http://docencia.ac.upc.edu/FIB/grau/SO/enunciados/Teor
ia/T2-Procesos.pdf
2.12 Interbloqueos
El Interbloqueo se puede definir como el bloque
permanente de un conjunto de procesos que compiten
por los recursos del sistema, todos los interbloqueos
suponen necesidades contradictorias de recursos, por
parte de dos o más procesos.
7
7
Varios. (s.f.). WIKIVERSIDAD. Obtenido de
http://wikiversidad.wikispaces.com/Interbloqueo+(Sistema
+Operativo)#Definiciones-Interbloqueo
Técnicas que usa Linux para tratar el interbloqueo
Figura 07. Métodos para el interbloqueo. Tomada de:
http://www.monografias.com/trabajos51/sincro-
comunicacion/sincro-comunicacion3.shtml
o TÉCNICA DEL AVESTRUZ
Si no se ve el problema, es que no existe es decir es
omitido.
Para omitir el interbloqueo, debemos tener en cuenta los
siguientes factores:
1. Número de veces que ocurre el interbloqueo.
2. Gravedad de la ocurrencia del interbloqueo.
3. Coste de las consecuencias.
4. Coste, en caso de hacer algo.
o TÉCNICA – PREVENCIÓN
Consiste en eliminar del sistema al menos, una de las
condiciones de interbloqueo.
Ventajas:
Método limpio, no se tiene que tratar a fondo procesos,
ni que expropiar recursos.
Desventajas:
Se aprovechan mal los recursos.
o TÉCNICA – EVITACIÓN
Consiste en permitir la posibilidad de interbloqueo, de
modo que se chequea el sistema continuamente y este
chequeo se realiza en las asignaciones de recursos a
procesos, ya que las solicitudes no son evitables.
Ventajas:
Método limpio.
Desventajas:
Poco rendimiento, sobrecarga mucho el sistema.
Se requiere chequear continuamente el sistema.
UTPL. Sistema Operativo Linux
.
8
o TÉCNICA – DETECCIÓN Y RECUPERACIÓN
Permite a los procesos actuar libremente, incluso
permitir que ocurra el interbloqueo.
Cada cierto tiempo se realiza un chequeo para
comprobar si se ha producido un interbloqueo y si existe
el caso de que lo haya se lanza un mecanismo de
recuperación.
Desventajas:
Método no limpio.
2.13 MECANISMOS DE CONCURRENCIA
Los distintos mecanismos más importantes que ofrece
LINUX para la comunicación entre procesos y la
sincronización son los siguientes:
o Tubos
o Mensajes
o Memoria Compartida
o Semáforos
o Señales
Los tubos, los mensajes y la memoria compartida
brindan un medio de comunicación de datos entre
procesos, mientras que los semáforos y las señales se
utilizan para provocar acciones en otros procesos.
Tubos
Es un buffer circular que permite a dos procesos
comunicarse según el modelo productor/consumidor.
Cuando se crea un tubo, se le da un tamaño fijo en
bytes. Cuando un proceso intenta escribir en el tubo, la
solicitud de escritura se ejecuta inmediatamente si hay
suficiente espacio; de otro modo, el proceso se bloquea.
De la misma manera, un proceso lector se bloquea si
intenta leer más bytes de los que tiene disponible en ese
momento.
8
El sistema operativo es el encargado de la exclusión
mutua, es decir, al tubo solo puede accederlo un
proceso por vez. Hay dos tipos de tubos: con nombre y
sin nombre. Los tubos sin nombre pueden ser
compartidos por procesos afines y los tubos con nombre
pueden ser compartidos por procesos no afines.
Mensajes
Es un bloque de texto con un tipo asociado. LINUX
proporciona las llamadas al
sistema msgsnd y msgrcv para que los procesos puedan
enviarse mensajes. Cada proceso tiene asociada una
8
Romero, L. (18 de 04 de 2008). Universidad NAcional de NordEste.
Obtenido de
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOpe
rativos/MonogSO/CINTIN02.htm
cola de mensajes, que funciona como un buzón de
correos.
El emisor del mensaje especifica el tipo de mensaje en
cada envío y el receptor puede usarlo como criterio de
selección. El receptor puede recuperar los mensajes
tanto en orden FIFO como por el tipo asociado. Un
proceso se suspenderá cuando intente leer de una cola
vacía. Si un proceso intenta leer un mensaje de cierto
tipo y falla, el proceso no se suspenderá.
Memoria Compartida
Es la forma más rápida de comunicación entre procesos
que brinda LINUX, se trata de un bloque común de
memoria virtual compartido por varios procesos. Los
procesos pueden leer y escribir en la memoria
compartida usando las mismas instrucciones que la
máquina que emplea para leer y escribir en otras partes
de su espacio de direcciones virtual. Los permisos de un
proceso son solo lectura o lectura-escritura, según el
proceso. Las limitaciones de exclusión mutua no forman
parte del servicio de memoria compartida, sino que las
debe proporcionar el proceso que hace uso del mismo.
Semáforos
El núcleo ejecuta atómicamente todas las operaciones
solicitadas; ningún otro proceso puede acceder al
semáforo hasta que todas las operaciones hayan
culminado.
Un semáforo consta de los siguientes elementos:
 Valor actual del semáforo.
 ID del último proceso que opero con el
semáforo.
 Numero de procesos esperando a que el valor
del semáforo sea mayor que su valor actual.
 Numero de procesos esperando a que el valor
del semáforo sea cero
Los semáforos, se crean por conjuntos, en el cual, un
conjunto tiene uno o más semáforos. Hay una llamada al
sistema semctl que permite dar valores a todos los
semáforos del conjunto al mismo tiempo. Además, hay
una llamada al sistema sem-op que recibe como
argumento una lista de operaciones sobre semáforos,
cada una de ellas definida sobre uno de los semáforos
del conjunto. Cuando se genera esta llamada, el núcleo
realiza las operaciones indicadas una a una. Para cada
operación, se especifica la función real por medio del
valor sem_op.
Existen las siguientes posibilidades:
 Si sem_op es mayor que 0, el núcleo
incrementa el valor del semáforo y despierta a
los procesos que esperaban a que el valor del
semáforo se incrementase.
UTPL. Sistema Operativo Linux
.
9
 Si sem_op es igual a 0, el núcleo comprueba el
valor del semáforo. Si el semáforo es 0,
continúa con las otras operaciones de la lista;
en caso contrario, incrementa el número de
procesos esperando a que este semáforo sea
igual a 0 y suspende el proceso hasta que el
valor del semáforo sea 0.
 Si sem_op es negativo y su valor absoluto es
menor o igual que el valor del semáforo, el
núcleo suma sem_op (un número negativo) al
valor del semáforo. Si el resultado es 0, el
núcleo despierta a todos los procesos que
esperan a que el valor del semáforo sea igual a
0.
 Si sem_op es negativo y su valor absoluto es
mayor que el valor del semáforo, el núcleo
suspende al proceso, caso de que el valor del
semáforo se incremente.
Esta generalización de los semáforos ofrece una
considerable flexibilidad para realizar sincronización y
coordinación de procesos.
Señales
Es un mecanismo de software que informa a un proceso
que se ha producido un suceso asíncrono. Una señal es
similar a una interrupción de hardware, pero no emplea
prioridades.
9
Es decir, todas las señales se tratan de igual manera;
las señales que se producen en un mismo momento se
presentan al proceso en el mismo instante, sin una
ordenación en particular.
Los procesos pueden enviarse señales entre si y el
núcleo puede enviar señales internas. Una señal se
entrega actualizando un campo de la tabla de procesos
del proceso al que se le envía.
Dado que cada señal se mantiene como un único bit, las
señales de un tipo en particular no pueden colocarse en
la cola. Una señal se procesa en el instante después de
que el proceso despierte para ejecutarse o cuando el
proceso esté dispuesto a volver de una llamada al
sistema.
Un proceso puede responder a una señal ejecutando
alguna acción por omisión (por ejemplo, terminar),
ejecutando una función de gestión de la señal o
ignorando la señal.
9
Belgrano, M. (s.f.). Wikiespace_CAECE. Obtenido de
http://sistemasoperativos1-
caece.wikispaces.com/M%C3%B3dulo+5.+Deadlock+%28
bloqueo+mutuo%29
Herramientas para el interbloqueo en Linux
Figura 08. Asignación de recursos. Tomada de:
http://exa.unne.edu.ar/depar/areas/informatica/Sistemas
Operativos/image1FP.JPG
o GDB: Es una herramienta de rastreo y debugeo
del kernel, con la información obtenida en un
error en el sistema.
o INGO: Es un “perro guardián” que sirve para
detectar y reportar los interbloqueos.
o SYSREQ: Permite observar las tareas,
procesos y registros dentro del kernel en caso
de fallo.
o KDB: Es un debugeador del kernel en línea de
comando que sirve para inspeccionar el estado
de los procesos.
2.14 Administración de memoria
El Subsistema de administración de memoria es uno de
las más importantes partes del OS Linux. Desde
aquellos días en que la computación ha requerido más
memoria de la que existe físicamente en un sistema. Las
estrategias fueron desarrolladas para vencer esta
limitación… y la más exitosa de ellas se conoce hoy en
día como “memoria virtual”. La Memoria Virtual hace
parecer a un sistema más abundante en memoria de lo
que realmente es.
Pero que Provee el subsistema de administración de
Memoria Virtual en Linux?
o Direccionamiento Largo de espacios en
Memoria
El OS hace que el sistema aparente tener un
volumen de memoria alto al que realmente
posee. La memoria virtual puede ser N veces
más grande que la memoria física de un
sistema.
o Protección
Cada proceso en el sistema posee su propio
espacio de direcciones virtuales de memoria.
Estos espacios están completamente
separados uno del otro y así los procesos
corren sin afectar a otros.
UTPL. Sistema Operativo Linux
.
10
o Mapeo en Memoria
El mapeo en memoria es acostumbrado para
mapear imágenes y archivos de datos dentro
de un espacio de direcciones de un proceso.
o Alocamiento Equitativo de Memoria Física
El Subsistema de administracion de memoria
permite a cada proceso que se encuentra en
ejecucion dentro del sistema, un equitativa
distribucion de la memoria del sistema.
10
Memoria virtual
En la memoria virtual como se ha visto, no existe una
relación directa entre el espacio de direcciones de un
proceso y el mapa de memoria físico.
El espacio de direccionamiento de un proceso es
limitado por la arquitectura, la memoria física por otros
condicionantes
o El espacio de direcciones de un proceso es
mucho mayor que la memoria física disponible.
o Un sistema operativo multitarea debe dar
soporte a varios procesos en ejecución al
mismo tiempo.
La memoria virtual es un mecanismo que permite
gestionar adecuadamente estas paradojas utilizando un
dispositivo de almacenamiento masivo, que es más lento
y económico, aplicándola como zona de intercambio o
swap.
o Las páginas que no ocupan un marco son
llevadas a disco.
o Aprovecha la localidad de referencia de los
accesos a memoria.
Esquemas de memoria virtual
El esquema más utilizado es la paginación por
demanda, se lo utiliza en modelos de compartición de
páginas. Las páginas residen en memoria física o en el
disco y las tablas de páginas se extienden con la
información acerca de la relación del estado de la página
en disco.
Las tablas de páginas mucho mayores no están
permanentemente en la memoria. Para acabar
encontrando las referencias en memoria se utilizan, las
tablas de páginas de varios niveles (dos o más).
Problemas de la memoria virtual
Las páginas pueden no encontrarse en memoria cuando
se necesitan, entonces se produce un fallo de página.
10
Administración de memoria en Linux
http://eplauchu.wordpress.com/2013/07/17/administracion-de-
memoria-en-linux/
El SO busca la página en disco, la lleva a memoria y
actualiza las tablas, donde se han de establecer las
políticas de planificación: adquisición, asignación a
procesos y reemplazo.
También se pueden producir fenómenos indeseados
como es: la hiperpaginación, es decir: cuando hay
demasiados procesos en ejecución, el SO invierte gran
parte de su tiempo en el intercambio de páginas.
Otras consideraciones
o De qué depende el número mínimo de páginas
en memoria por proceso.
o Ciertas estructuras y código del núcleo se dejan
siempre en memoria principal.
o Se utilizan políticas de preadquisición etcétera
para mejorar las prestaciones.
o Se requiere de un extenso soporte del
hardware (MMU)
2.15 Archivos y directorios
En cuanto a los caracteres para los nombres de archivo, se
puede utilizar cualquiera, a excepción del carácter /, ya que
tiene un significado especial. Es conveniente no utilizar
caracteres especiales, acentos, etc. No se pue- den
incluir espacios en blanco ni es conveniente em- plear
caracteres como los siguientes en los nombres de archivo:
! # & ( ) ` '' ; | > < @ $ { } * ?  Tab Spacebar
Backspace + –
Lo más importante es destacar que en Unix/Linux los
nombres de archivo son diferentes en mayúscula y en
minúscula. Se recomienda utilizar todos en minúscula.
Los directorios en Unix/Linux son archivos especiales cuya
función es la de almacenar archivos u otros directorios.
Tienen características especiales y, al igual que en DOS,
cada directorio, a excepción de la raíz, consta de los
directorios. y .., que indican directorio actual y directorio
padre, respectivamente.
Para entender mejor lo relacionado con los archivos,
hablemos sobre el File System de Unix/Linux. El sistema de
archivos de Unix/Linux es particular, respecto de los
convencionales de Microsoft.
Su estructura consta de tres partes fundamentales:
superbloque, tabla de inodos y bloques de datos. Concreta-
mente, cada archivo o directorio tiene asociado un nú-
mero en la tabla de inodos. Este número identifica la
ubicación del archivo o directorio dentro de la zona de
datos.
11
11
Sistema operativo multiusuario Unix/Linux. Gestión de archivos,
directorios y usuario – Estructura del sistema Unix/Linux (Archivos y
directorios) http://www.mcgraw-
hill.es/bcv/guide/capitulo/8448199626.pdf
UTPL. Sistema Operativo Linux
.
11
Tipos de archivos
En Unix/Linux existen, básicamente, cuatro tipos de
archivos. Son los siguientes:
o Archivos ordinarios: Contienen la información
con la que trabaja cada usuario. Normalmente
son archivos que contienen texto, programas
escritos por el usuario en lenguaje C, etc.
Suelen contener caracteres de tipo ASCII, y
pueden ser modificados, crea- dos, borrados,
etcétera.
o Enlaces físicos (Vínculos físicos). No es
específicamente una clase de archivo. Es un
segundo nombre asignado a un archivo. Supón
que dos usuarios necesitan compartir la
información de un mismo ar- chivo. Es evidente
que si cada uno de ellos tiene una copia, el
problema se soluciona, en cierta medida. Pero
las modificaciones que realice un usuario, no
podrán ser utilizadas por otro, ya que
solamente se modificará la copia de uno de los
usuarios.
Si en vez de tener una copia cada usuario,
cada uno de ellos utiliza en archivo tipo enlace
al archivo original, cada vez que uno modifique
su archivo lo que estará modificando es en
realidad el archivo común. El vínculo es un
segundo nombre que hace referencia a un
archivo, pero no es en sí el archivo. El vínculo
sirve para localizar el fichero en su ubicación
actual, pero no es el archivo real. De esta
forma, con tener un solo archivo real, éste se
podrá utilizar por todos los usuarios que lo
necesiten, sin tener que duplicarlo o triplicarlo.
o Enlaces simbólicos (Vínculos simbólicos). Se
utilizan para asignar más de un nombre a un
archivo. No sirven para directorios. Un vínculo
simbólico es un archivo que sólo contiene el
nombre de otro ar- chivo. Cuando el sistema
operativo opera sobre un vínculo simbólico,
éste se dirige al archivo al que apunta el
vínculo simbólico. A diferencia de los en- laces
físicos, que existen dentro de la estructura de
archivos, los enlaces simbólicos solamente
hacen referencia al nombre de otro archivo. Se
utiliza los parámetros.
o Directorios: Son archivos especiales que
contienen referencias a otros archivos. Cuentan
con información sobre archivos ordinarios, sub
directorios, vínculos, vínculos simbólicos,
etcétera.
o Archivos especiales: Suelen representar
dispositivos físicos como unidades de
almacenamiento, impresoras, terminales, etc.
Unix/Linux trata los archivos especiales como
archivos ordinarios. De esta forma, un usuario
puede abrir un archivo vinculado a una unidad de
disquete, modificarlo, etc. Con ello consigue leer
del disquete, escribir en el disquete, etc.
Unix/Linux transforma las operaciones básicas y
ordenes básicas de archivos ordinarios o
regulares en comandos que interactúan con el
hardware a través de los archivos especiales.
12
2.16 Seguridad en Linuxseguridad
Linux especializado en Seguridad tomada de
http://imagenes.es.sftcdn.net/blog/es/2013/09/Tux-
Seguridad.png
Muchas veces se ha dicho que GNU/Linux es un sistema
muy seguro (especialmente en comparación con algunos
sistemas operativos propietario), pero sería mejor decir
que GNU/Linux tiene el potencial para convertirse en
enormemente seguro. Pero de entrada no tiene porqué
serlo. En particular debemos ser conscientes de que se
trata de un sistema operativo pensado para entornos de
red y por ello tiene grandes capacidades de conexión
con otros ordenadores y de ofrecerles servicios.
13
La seguridad se basa en tres aspectos:
o Evitar la pérdida de datos.
o Mantener un control en la confidencialidad.
o Controlar el acceso a los datos y a los recursos.
12
Sistema operativo multiusuario Unix/Linux. Gestión de archivos,
directorios y usuario – Estructura del sistema Unix/Linux (Tipos de
archivos en Unix/Linux) http://www.mcgraw-
hill.es/bcv/guide/capitulo/8448199626.pdf
13
SEGURIDAD EN EL SISTEMA OPERATIVO GNU/LINEX
(kernel 2.4.20) - Javier Carmona Murillo
http://gitaca.unex.es/agila/archivos/seguridad_linex.pdf
UTPL. Sistema Operativo Linux
.
12
Seguridad Externa
Hace referencia a los controles y mecanismos
implementados para controlar el acceso remoto desde y
hacia el centro de cómputo.
Se prevén amenazas como:
o Desastres naturales, incendios o inundaciones.
o Amenazas ocasionadas por el hombre.
o Sabotajes internos y externos deliberados.
Seguridad del Núcleo
No tiene ninguna restricción a la hora de ejecutarse.
o utiliza todas las instrucciones del procesador.
o direcciona toda la memoria.
o accede directamente al hardware.
Seguridad Interna de Linux
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 proveída 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.
Seguridad del sistema de archivos
El archivo etc/system puede definir variables para el
núcleo del SO, como el número máximo de archivos
abiertos por un proceso o el uso de memoria
compartida.
Métodos de Autenticación
Auth: Solicita y verifica la validez de una contraseña
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 sesión.
Password: se usa para establecer y verificar
contraseña.
Session: esta interfaz del módulo configura y administra
las sesiones de usuario, los módulos con esta interfaz
también pueden realizar tareas adicionales que son
requeridas para permitir acceso, como el montaje de
directorios principales de usuarios.
2.17 Sistemas distribuidos
El desarrollo de los sistemas distribuidos vino de la
mano de las redes locales de alta velocidad a principios
de 1970. Más recientemente, la disponibilidad de
computadoras personales de altas prestaciones,
estaciones de trabajo y ordenadores servidores ha
resultado en un mayor desplazamiento hacia los
sistemas distribuidos en detrimento de los ordenadores
centralizados multiusuario. Esta tendencia se ha
acelerado por el desarrollo de software para sistemas
distribuidos, diseñado para soportar el desarrollo de
aplicaciones distribuidas. Este software permite a los
ordenadores coordinar sus actividades y compartir los
recursos del sistema – hardware, software y datos.
Los sistemas distribuidos se implementan en diversas
plataformas hardware, desde unas pocas estaciones de
trabajo conectadas por una red de área local, hasta
Internet, una colección de redes de área local y de área
extensa interconectados, que en lazan millones de
ordenadores.
Las aplicaciones de los sistemas distribuidos varían
desde la provisión de capacidad de computo a grupos
de usuarios, hasta sistemas bancarios, comunicaciones
multimedia y abarcan prácticamente todas las
aplicaciones comerciales y técnicas de los ordenadores.
Los requisitos de dichas aplicaciones incluyen un alto
nivel de fiabilidad, seguridad contra interferencias
externas y privacidad de la información que el sistema
mantiene. Se deben proveer accesos concurrentes a
bases de datos por parte de muchos usuarios, garantizar
tiempos de respuesta, proveer puntos de acceso al
servicio que están distribuidos geográficamente,
potencial para el crecimiento del sistema para acomodar
la expansión del negocio y un marco para la integración
de sistema usados por diferentes compañías y
organizaciones de usuarios.
14
2.18 Tipos de Sistemas Distribuidos
El Modelo Cliente Servidor
El modelo cliente-servidor de un sistema distribuido es el
modelo más conocido y más ampliamente adoptado en
la actualidad. Hay un conjunto de procesos servidores,
cada uno actuando como un gestor de recursos para
una colección de recursos de un tipo, y una colección de
procesos clientes, cada uno llevando a cabo una tarea
que requiere acceso a algunos recursos hardware y
software compartidos. Los gestores de recursos a su vez
podrían necesitar acceder a recursos compartidos
manejados por otros procesos, así que algunos
procesos son ambos clientes y servidores. En el modelo,
cliente-servidor, todos los recursos compartidos son
mantenidos y manejados por los procesos servidores.
Los procesos clientes realizan peticiones a los
servidores cuando necesitan acceder a algún recurso. Si
la petición es válida, entonces el servidor lleva a cabo la
acción requerida y envía una respuesta al proceso
cliente.
Middleware
El término middleware se discute en [Lewandosky 1998].
El software distribuido requerido para facilitar las
interacciones cliente-servidor se denomina middleware.
El acceso transparente a servicios y recursos no locales
distribuidos a través de una red se provee a través del
middleware, que sirve como marco para las
comunicaciones entre las porciones cliente y servidor de
un sistema.
Servidores Pesados vs Clientes Pesados
[Lewandowsky 1008] Se realiza una discusión de este
concepto dentro del marco de los sistemas cliente-
servidor. Los especialistas en sistemas de información
14
Introducción a los sistemas distribuidos
http://augcyl.org/?page_id=231
UTPL. Sistema Operativo Linux
.
13
califican como ‘pesada’ (fat) una parte de un sistema con
una cantidad de funcionalidad desproporcionada. Por el
contrario, una parte de sistema se considera ligera (thin)
si tiene menos responsabilidades [Orfali 1996].
3 REFERENCIAS
o LinuxZone(2007-2013) DISTRIBUCCIONES-
PRINCIPALES consulta realizada el dia
22/03/2014 de
http://linuxzone.es/distribuciones-principales/
o Sistema de operativos GNU DISTRIBUCIONES
- PRINCIPALES consulta realizada el día
22/03/2014 de http://www.gnu.org/distros/free-
distros.es.html
o Linux DISTRIBUCIONES - PRINCIPALES
consulta realizada el día 22/03/2014 de
http://www.linux.org.pe/linux/
o Diseño gráfico, desarrollo web y software libre
DISTRIBUCIONES - PRINCIPALES consulta
realizada el día 22/03/2014 de
http://dglibre.com/2008/09/14/distribuciones-
linux-para-disenadores-graficos/
o http://slashdot.com: Noticias y rumores del
mundo GNU/Linux. En inglés.
o http://www.foroslinux.org: Varios foros de
GNU/Linux dedicados a todo tipo de temas.
o http://www.fsf.org: La página oficial de la Free
Software Foundation.
o http://www.debian.org: Página oficial de debian
GNU/Linux.
o http://www.redhat.com: Página oficial de
RedHat Linux.
o http://www.suse.com: Página oficial de SuSE.
o http://www.slackware.com: Página oficial de
Slackware Linux.
o http://www.knoppix.com: Página oficial de
Knoppix.
o Ramos, M. d. (2010). Sistemas Operativos
Monopuestos Madrid,España: Paraninfo.
o Bovet, D. P., & Cesati, M.
(2008). Understanding the Linux kernel. O'Reilly
Media.
o Barabanov, M., & Yodaiken, V. (1996). Real-
time linux. Linux journal, 23.
o Yodaiken, V., & Barabanov, M. (1997, January).
Real-Time Linux Applications and Design.
In Proceedings of the Linux applications
development and deployment conference
(USELINUX).
o Barabanov, M. (1997). A linux-based real-time
operating system (Doctoral dissertation, New
Mexico Institute of Mining and Technology).
o Tema_6 Gestion de Memoria pdf
http://mermaja.act.uji.es/docencia/ii22/teoria/Tra
spasTema6.pdf
o Estructura del Sistema Unix/Linux
http://www.mcgraw-
hill.es/bcv/guide/capitulo/8448199626.pdf
o Características de seguridad de Linux - Horst H.
von Brand Departamento de Informática
Universidad Técnica Federico Santa María
http://2004.encuentrolinux.cl/docs/presentacion
es/pdf/presentacion-hvb.pdf
o SEGURIDAD EN EL SISTEMA OPERATIVO
GNU/LINEX (kernel 2.4.20) - Javier Carmona
Murillo
http://gitaca.unex.es/agila/archivos/seguridad_li
nex.pdf
o Seguridad en sistemas GNU/Linux
http://blog.desdelinux.net/seguridad-en-
sistemas-gnulinux-depende-del-sistema-o-del-
administrador/
o Sistemas distribuidos de Linux
http://laurel.datsi.fi.upm.es/_media/docencia/asi
gnaturas/sod/rdir-4pp.pdf
o UNIDAD 1 LOS SISTEMAS OPERATIVOS EN
AMBIENTES DISTRIBUIDOS
http://marcosventuraosorio261v.blogspot.com/
o Sistemas distribuidos sobre la plataforma Linux
http://es.slideshare.net/damian_barrios/taller-
sistemas-distribuidos-linux
o SOs distribuidos, multiprocesadores y
multicomputadores
http://lsi.ugr.es/jagomez/disisoparchivos/Tema2.
pdf
o Introducción a los sistemas distribuidos
http://augcyl.org/?page_id=231

Más contenido relacionado

La actualidad más candente

Principles of operating system
Principles of operating systemPrinciples of operating system
Principles of operating systemAnil Dharmapuri
 
Estrategias para utilizar android con seguridad
Estrategias para utilizar android con seguridadEstrategias para utilizar android con seguridad
Estrategias para utilizar android con seguridadJuan Quiroz
 
Guia 3 instalar componentes de software y verificar el estado de operación ...
Guia 3   instalar componentes de software y verificar el estado de operación ...Guia 3   instalar componentes de software y verificar el estado de operación ...
Guia 3 instalar componentes de software y verificar el estado de operación ...linajimenez30
 
Sistema Operativo
Sistema OperativoSistema Operativo
Sistema OperativoHeli Lazaro
 
PARALELISMO MULTIPROCESO Y MULTICORE CPUS
PARALELISMO MULTIPROCESO Y MULTICORE CPUSPARALELISMO MULTIPROCESO Y MULTICORE CPUS
PARALELISMO MULTIPROCESO Y MULTICORE CPUSMEDUCA
 
Hacking ansible
Hacking ansibleHacking ansible
Hacking ansiblebcoca
 
Windows 8.1
Windows 8.1 Windows 8.1
Windows 8.1 Samh25
 
Los sistemas operativos prof j romero
Los sistemas operativos prof j romeroLos sistemas operativos prof j romero
Los sistemas operativos prof j romeroromeprofe
 
Virus y antivirus
Virus y antivirusVirus y antivirus
Virus y antiviruskelicita115
 
Operating Systems 1 (3/12) - Architectures
Operating Systems 1 (3/12) - ArchitecturesOperating Systems 1 (3/12) - Architectures
Operating Systems 1 (3/12) - ArchitecturesPeter Tröger
 
Virus en Ejecutables
Virus en EjecutablesVirus en Ejecutables
Virus en EjecutablesAlex Avila
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosMarvin Romero
 
Operating Systems
Operating SystemsOperating Systems
Operating Systemsvampugani
 

La actualidad más candente (20)

Google chrome
Google chromeGoogle chrome
Google chrome
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Principles of operating system
Principles of operating systemPrinciples of operating system
Principles of operating system
 
Estrategias para utilizar android con seguridad
Estrategias para utilizar android con seguridadEstrategias para utilizar android con seguridad
Estrategias para utilizar android con seguridad
 
Guia 3 instalar componentes de software y verificar el estado de operación ...
Guia 3   instalar componentes de software y verificar el estado de operación ...Guia 3   instalar componentes de software y verificar el estado de operación ...
Guia 3 instalar componentes de software y verificar el estado de operación ...
 
Diapositiva linux
Diapositiva linuxDiapositiva linux
Diapositiva linux
 
Sistema Operativo
Sistema OperativoSistema Operativo
Sistema Operativo
 
Ch1-Operating System Concepts
Ch1-Operating System ConceptsCh1-Operating System Concepts
Ch1-Operating System Concepts
 
PARALELISMO MULTIPROCESO Y MULTICORE CPUS
PARALELISMO MULTIPROCESO Y MULTICORE CPUSPARALELISMO MULTIPROCESO Y MULTICORE CPUS
PARALELISMO MULTIPROCESO Y MULTICORE CPUS
 
Hacking ansible
Hacking ansibleHacking ansible
Hacking ansible
 
Windows 8.1
Windows 8.1 Windows 8.1
Windows 8.1
 
Los sistemas operativos prof j romero
Los sistemas operativos prof j romeroLos sistemas operativos prof j romero
Los sistemas operativos prof j romero
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
 
Virus y antivirus
Virus y antivirusVirus y antivirus
Virus y antivirus
 
Operating Systems 1 (3/12) - Architectures
Operating Systems 1 (3/12) - ArchitecturesOperating Systems 1 (3/12) - Architectures
Operating Systems 1 (3/12) - Architectures
 
Introduction to Unix
Introduction to UnixIntroduction to Unix
Introduction to Unix
 
Virus en Ejecutables
Virus en EjecutablesVirus en Ejecutables
Virus en Ejecutables
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas Operativos
 
Multiprocesamiento
MultiprocesamientoMultiprocesamiento
Multiprocesamiento
 
Operating Systems
Operating SystemsOperating Systems
Operating Systems
 

Destacado

Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativosAndy Lopez
 
Clase 5 -_interbloqueo
Clase 5 -_interbloqueoClase 5 -_interbloqueo
Clase 5 -_interbloqueovictormchacon
 
Proteccion y seguridad de los sistemas operativos
Proteccion y seguridad de los sistemas operativosProteccion y seguridad de los sistemas operativos
Proteccion y seguridad de los sistemas operativosJessika Parica
 
Seguridad de windows xp
Seguridad de windows xpSeguridad de windows xp
Seguridad de windows xpelviz.h.s
 
Protección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosProtección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosRichard J. Nuñez
 
Protección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativosProtección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativosAquiles Guzman
 
Seguridad y protección s.o
Seguridad y protección s.oSeguridad y protección s.o
Seguridad y protección s.oOriana Campos
 
Deteccion Y Recuperacion De Un Interbloqueo
Deteccion Y Recuperacion De Un InterbloqueoDeteccion Y Recuperacion De Un Interbloqueo
Deteccion Y Recuperacion De Un InterbloqueoTecnologico de pinotepa
 
seguridad de los sistemas operativos
seguridad de los sistemas operativos seguridad de los sistemas operativos
seguridad de los sistemas operativos Carlos Guerrero
 
Linux seguridad proteccion
Linux seguridad proteccionLinux seguridad proteccion
Linux seguridad proteccionKrlitos Xavier
 
Seguridad en los sistemas operativos
Seguridad en los sistemas operativosSeguridad en los sistemas operativos
Seguridad en los sistemas operativosjetmu
 
Seguridad en los sistemas operativos.
Seguridad en los sistemas operativos.Seguridad en los sistemas operativos.
Seguridad en los sistemas operativos.abby31288
 
Cuadro comparativo sobre los tipos de sistemas operativos.
Cuadro comparativo sobre los tipos de sistemas operativos.Cuadro comparativo sobre los tipos de sistemas operativos.
Cuadro comparativo sobre los tipos de sistemas operativos.jorm1297
 
Concentración y equilibrio químico
Concentración y equilibrio químicoConcentración y equilibrio químico
Concentración y equilibrio químicoBenjamín Kreator
 
SISTEMAS OPERATIVOS WINDOWS, LINUX, MACOS, ANDROID
SISTEMAS OPERATIVOS  WINDOWS, LINUX, MACOS, ANDROIDSISTEMAS OPERATIVOS  WINDOWS, LINUX, MACOS, ANDROID
SISTEMAS OPERATIVOS WINDOWS, LINUX, MACOS, ANDROIDC C
 
Sistemas operativos: Windows, Linux y MAC
Sistemas operativos: Windows, Linux y MACSistemas operativos: Windows, Linux y MAC
Sistemas operativos: Windows, Linux y MACpatocob
 

Destacado (20)

Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativos
 
Clase 5 -_interbloqueo
Clase 5 -_interbloqueoClase 5 -_interbloqueo
Clase 5 -_interbloqueo
 
Proteccion y seguridad de los sistemas operativos
Proteccion y seguridad de los sistemas operativosProteccion y seguridad de los sistemas operativos
Proteccion y seguridad de los sistemas operativos
 
Seguridad de windows xp
Seguridad de windows xpSeguridad de windows xp
Seguridad de windows xp
 
Protección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosProtección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas Operativos
 
Protección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativosProtección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativos
 
Seguridad y protección s.o
Seguridad y protección s.oSeguridad y protección s.o
Seguridad y protección s.o
 
Seguridad y proteccion
Seguridad y proteccionSeguridad y proteccion
Seguridad y proteccion
 
Deteccion Y Recuperacion De Un Interbloqueo
Deteccion Y Recuperacion De Un InterbloqueoDeteccion Y Recuperacion De Un Interbloqueo
Deteccion Y Recuperacion De Un Interbloqueo
 
seguridad de los sistemas operativos
seguridad de los sistemas operativos seguridad de los sistemas operativos
seguridad de los sistemas operativos
 
Linux seguridad proteccion
Linux seguridad proteccionLinux seguridad proteccion
Linux seguridad proteccion
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Seguridad en los sistemas operativos
Seguridad en los sistemas operativosSeguridad en los sistemas operativos
Seguridad en los sistemas operativos
 
Seguridad en los sistemas operativos.
Seguridad en los sistemas operativos.Seguridad en los sistemas operativos.
Seguridad en los sistemas operativos.
 
Tecnicas pert y cpm
Tecnicas pert y cpmTecnicas pert y cpm
Tecnicas pert y cpm
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Cuadro comparativo sobre los tipos de sistemas operativos.
Cuadro comparativo sobre los tipos de sistemas operativos.Cuadro comparativo sobre los tipos de sistemas operativos.
Cuadro comparativo sobre los tipos de sistemas operativos.
 
Concentración y equilibrio químico
Concentración y equilibrio químicoConcentración y equilibrio químico
Concentración y equilibrio químico
 
SISTEMAS OPERATIVOS WINDOWS, LINUX, MACOS, ANDROID
SISTEMAS OPERATIVOS  WINDOWS, LINUX, MACOS, ANDROIDSISTEMAS OPERATIVOS  WINDOWS, LINUX, MACOS, ANDROID
SISTEMAS OPERATIVOS WINDOWS, LINUX, MACOS, ANDROID
 
Sistemas operativos: Windows, Linux y MAC
Sistemas operativos: Windows, Linux y MACSistemas operativos: Windows, Linux y MAC
Sistemas operativos: Windows, Linux y MAC
 

Similar a Paper Sistema Operativo Linux

Similar a Paper Sistema Operativo Linux (20)

Comparacion de sistemas operativos
Comparacion de sistemas operativosComparacion de sistemas operativos
Comparacion de sistemas operativos
 
Comparativo de distribuciones Linux
Comparativo de distribuciones LinuxComparativo de distribuciones Linux
Comparativo de distribuciones Linux
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
linux
linuxlinux
linux
 
Sistemas Operativos, Linux y Windows, inicios y creadores
Sistemas Operativos, Linux y Windows, inicios y creadoresSistemas Operativos, Linux y Windows, inicios y creadores
Sistemas Operativos, Linux y Windows, inicios y creadores
 
Sistena operativo (linux)
Sistena operativo (linux)Sistena operativo (linux)
Sistena operativo (linux)
 
Sistena operativo (linux)
Sistena operativo (linux)Sistena operativo (linux)
Sistena operativo (linux)
 
Sistema operativo (linux)
Sistema operativo (linux)Sistema operativo (linux)
Sistema operativo (linux)
 
Sistena operativo
Sistena operativoSistena operativo
Sistena operativo
 
Linux debian 6
Linux debian 6 Linux debian 6
Linux debian 6
 
Programa de aplicacion en linux
Programa de aplicacion en linuxPrograma de aplicacion en linux
Programa de aplicacion en linux
 
ASO
ASOASO
ASO
 
Linux1
Linux1Linux1
Linux1
 
Linux
LinuxLinux
Linux
 
Sistema operativo(Linux)
Sistema operativo(Linux)Sistema operativo(Linux)
Sistema operativo(Linux)
 
Linux , unix.pptm.jose javierchavezsalcedo
Linux , unix.pptm.jose javierchavezsalcedoLinux , unix.pptm.jose javierchavezsalcedo
Linux , unix.pptm.jose javierchavezsalcedo
 
15. distribuciones linux mexicanas.
15. distribuciones linux mexicanas.15. distribuciones linux mexicanas.
15. distribuciones linux mexicanas.
 
Linux presentacion
Linux presentacionLinux presentacion
Linux presentacion
 
Centos SO
Centos SOCentos SO
Centos SO
 
Caracteristicas
CaracteristicasCaracteristicas
Caracteristicas
 

Último

ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperiomiralbaipiales2016
 

Último (20)

ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 

Paper Sistema Operativo Linux

  • 1. UTPL. Sistema Operativo Linux . 1 Sistema Operativo LINUX Carlos Xavier Hidalgo Paredes cxhidalgo@utpl.edu.ec Miguel Ángel Herrera Díaz mahdiaz@utpl.edu.ec Miguel Danilo Diaz Aponte mddiaz@utpl.edu.ec Jefersson Morillo Castillo jamorillo1@utpl.edu.ec Escuela de Ciencias de la Computación Loja, Ecuador RESUMEN: El presente documento tiene la intención de dar una breve explicación de todos los temas relacionados con el Sistema Operativo Linux, donde ha tenido un gran impacto en la industria de la informática resaltando de él la seguridad y fiabilidad que este presenta en su uso, por eso la NASA y otras Entidades Gubernamentales lo prefieren a la hora de usarlos como servidores de cualquier tipo de servicios. PALABRAS CLAVES: Linux, informática, distribuciones, impacto, seguridad, archivos, interrupciones, fiabilidad, servidores. Rendimiento, memoria, gestión. 1 INTRODUCCIÓN El sistema operativo Linux hoy en día se encuentra ya con muchas distribuciones, lo que puede hacer que un usuario sin experiencia se encuentre indeciso a la hora de elegir la distribución que mejor se adapte a sus necesidades. 2 CONTENIDOS 2.1 ¿Qué es LINUX? Figura 01. LINUX Imagen tomada de: http://digitalpcpachuca.blogspot.com/2012/03/sistema- operativo-linux.html Una distribución en Linux es un sistema operativo que reúne todo un software para poner a un ordenador a punto de uso, además están formado por un núcleo del sistema, que son programas que controlan cada uno de los dispositivos del ordenador, como por ejemplo NESTCAPE,CORELDRAW O STARTOFFICE. 1 Linux o más bien GNU/Linux es un potente y completo sistema hecho dependiendo a tus necesidades operativas, que combina la seguridad y la eficiencia a la hora de usar recursos del PC. Su uso es bastante amplio en la industria; va desde usarlo como Sistema Operativo de una PC de Hogar hasta un poderoso simulador de la NASA. Y todo esto a pesar que es Libre y Linux ha incursionado en el mundo de los dispositivos móviles su desarrollo es a través de muchas personas y empresas que donan gracias a Android Inc. ahora propiedad de Google que desde su tiempo, capacidad y recursos para desarrollar se encargaron de hacer modificaciones a Linux y adaptarlos a móviles. 2.2 Principales ventajas y desventajas de LINUX VENTAJAS: o Es totalmente Gratuito y aunque posea versiones de paga, es aún más barato que comprar Windows. o Tienen muchos programas muy útiles y que lo puedes encontrar muy fácilmente en internet. o Un punto muy importante es la seguridad, los Hackers y/o creadores de virus rara vez atacan a Software de Linux. o Se lleva bien en el arranque en conjunto con Windows. o Carga y realiza tareas con mayor eficiencia que Windows. o La constante actualización y nuevas versiones es asombrosa. Existen infinidades de Distribuciones de Linux. DESVENTAJAS: 1 Diseño gráfico, desarrollo web y software libre consulta realizada de :http://dglibre.com/2008/09/14/distribuciones-linux-para- disenadores-graficos/
  • 2. UTPL. Sistema Operativo Linux . 2 o El origen técnico de Linux aún se percibe; antes de que puedas creerlo, estarás abriendo una “Terminal” de Linux y escribiendo comandos. Algo que nunca harías con Windows. o No es muy común su uso en Compañías, por lo que generalmente se usa para trabajar desde Casa, así que debes hacer ajustes laboriosos. o A la hora de trabajar con documentos de Windows complejos, se podría convertir en una tareas difícil o casi imposible debido a la poca compatibilidad para importar desde Windows para Linux. o Instalar controladores de Hardware y programas resulta ser más complicado que en Windows. Esto debido a que las empresas creadoras de controladores crean sus productos en base a Windows, el sistema operativo más usado a nivel mundial. o Muchos juegos no se ejecutan en Linux así que olvídate de grandes Gráficos y poner a trabajar tu tarjeta de video al máximo. Claro existen sus excepciones. 2.3 ¿Qué Distribuciones tiene Linux? Figura 02.Distribuciones de Linux http://nexolinux.com/tag/noticias-linux/ A continuación se detallan las diferentes distribuciones que existen: o Suse, Red Hat, Conectiva estas se atreven a sacar distribuciones pre configuradas que realizan distintos tipos de tareas, tales como servidor de correo, servidor web, almacenar datos, etc. y que poseen una gran cantidad de aplicaciones. o DISTRIBUCIONES PROFESIONALES: son distribuciones utilizadas por programadores experimentados, dirigidas a desarrolladores de aplicaciones y profesionales informáticos con experiencia. Es el caso de las distribuciones Slackware, Gentoo o Debian, tres distribuciones en las cuales el profesional configura el sistema a su medida optimizando sus programas. o Distribuciones a la carta: distribuciones de carácter específico, es decir, creadas con objetivos concretos y con propósitos determinados. Es el caso de Lliurex, Guadalinux o Linex, que tienen por finalidad la promoción del desarrollo de software libre y la utilización de esa tecnología para la educación y formación en la cultura del software libre. o Distribuciones auto arrancables: son distribuciones preinstaladas en un CD normal, que no necesitan copiar ningún programa en el disco duro del ordenador. Utilizan distribuciones como Knoppix, Kurumin o Gentoo que son ejemplos de este tipo de distribución. o Distribuciones para el “gran público”: distribuciones que se ofrecen a las personas que necesitan herramientas en su trabajo, por ejemplo, paquetes de ofimática, reproductores multimedia, entre otras aplicaciones que se usan por un usuario. Entre las que encontramos según el criterio del autor Nicola Pons, del libro “LINUX principios básicos del uso del sistema”: 2 o Entre estas distribuciones cuentan con las siguientes características : o Mandriva: Su instalador es uno de los más amigables que existen. Cuenta con repositorios tanto oficiales como no oficiales, además de los paquetes incluidos en el CD/DVD. o Fedora: Fedora trata de ser el líder en el ámbito de usar software libre y código abierto. o Prefieren hacer cambios en las fuentes que aplicar un parche específico para su distribución, de esta forma se asegura que las actualizaciones estén disponibles para todas las variantes de Linux o Distribuciones móviles: Este tipo de distribuciones no se cargan en memoria RAM sino solo de un dispositivo USB, entre las que nombramos: 2 Nicola Pons, autor del libro “LINUX principios básicos del uso del sistema”: 2
  • 3. UTPL. Sistema Operativo Linux . 3 o Knoppix: Su arranque automático, tiene gran cantidad de software, su sistema de compresión al vuelo y la posibilidad de instalarlo al disco duro han convertido a knoppix en una herramienta indispensable. o Linux Mint es una distribución basada en Ubuntu, y es una de las alternativas más potentes. Ofrece un escritorio actualizado y cómodo, con Gnome, y muy atractivo. Presenta muchas características de Ubuntu, como un centro de software 2.4 Planificación SJF Se basa en los ciclos de vida de los procesos, los cuales transcurren en dos etapas o periodos que son: ciclos de CPU y ciclos de entrada/salida, también conocidos por ráfagas. La palabra “shortest”, se refiere al proceso que tenga el próximo ciclo de CPU más corto. La idea es escoger entre todos los procesos listos el que tenga su próximo ciclo de CPU más pequeño. El SJF se puede comportar de dos formas: o Con Desalojo: Si se incorpora un nuevo proceso a la cola de listos y este tiene un ciclo de CPU menor que el ciclo de CPU del proceso que se está ejecutando, entonces dicho proceso es desalojado y el nuevo proceso toma la CPU. o Sin desalojo: Cuando un proceso toma la CPU, ningún otro proceso podrá apropiarse de ella hasta que el proceso que la posee termine de ejecutarse. Características: o Entra en la CPU el proceso con la ráfaga de CPU más corta. o Minimiza el tiempo de espera medio. o Riesgo de inanición de los procesos de larga duración. o No es implementable. Se pueden estimar las duraciones de los procesos, según su historia reciente. o Versión expulsiva (SRTF): el proceso en CPU es desalojado si llega a la cola un proceso con duración más corta. 2.5 Gestión de Procesos de Linux o En Linux, la planificación de procesos se lleva a cabo en la función schedule() . Aun así, existen otras funciones que también están involucradas en el reparto del tiempo de ejecución. o El shell es un proceso y cada orden que escribamos genera un nuevo proceso hijo del shell. De hecho, en UNIX todos los procesos son familia, ya que la única forma de crear un nuevo proceso es generándolo como hijo de un proceso existente. El proceso init es antecesor de todos los demás 2.6 Ciclo de vida de un proceso Linux Sabemos que un programa es una colección de instrucciones y de datos que se encuentran almacenados en un archivo que tiene en su inodo un atributo que lo identifica como ejecutable. Puede ser ejecutado por el propietario, por el grupo y por el resto de los usuarios, dependiendo de los permisos que tenga el archivo. Cuando un programa es leído del disco (a través del sistema de archivos) por el kernel y es cargado en memoria para ejecutarse, se convierte en un proceso. También debemos recordar que en un proceso no sólo hay una copia del programa, sino que además el kernel le añade información adicional para poder manejarlo. 2.7 Estados de ejecución en Linux o En Ejecución (TASK_RUNNING): El proceso es ejecutado por el procesador. o Listo (TASK_RUNNING): El proceso podría ser ejecutado, pero otro proceso se está ejecutando en ese momento. o Interumpible (TASK_INTERRUPTIBLE): Es un estado de bloqueo, en el cual el proceso espera un suceso, como la terminación de una operación de entrada/salida, liberación de un recurso o una señal de otro proceso. o No interrumpible: Es otro estado de bloqueo. La diferencia entre éste y el estado Interumpible es que en un estado No Interumpible, un proceso espera directamente en una condición de hardware y, por tanto, no acepta señales. o Parado (TASK_STOPPED): El proceso ha sido detenido por una intervención externa y sólo puede reanudarse por una acción positiva de otro proceso. o Zombie (TASK_ZOMBIE). El proceso ha terminado pero, por alguna razón, su estructura 3 task debe permanecer aún en la tabla de procesos. 3 Corral, A. L. (s.f.). Universidad de Almería. Obtenido de: http://www.ual.es/~acorral/DSO/Tema_2.pdf
  • 4. UTPL. Sistema Operativo Linux . 4 Figura 03. Diagrama de transición de estados de un proceso en un sistema LINUX. Imagen tomada de: http://www.ual.es/~acorral/DSO/Tema_2.pdf 2.8 Niveles de Ejecución o Modo Kernel: (modo privilegiado). En este modo no se impone ninguna restricción al kernel del sistema. El kernel podrá: o Utilizar todas las instrucciones del procesador. o Manipular toda la memoria. o Dialogar directamente con todos los controladores (drivers) de dispositivos. o Modo usuario: Modo de ejecución normal de un proceso. En este modo el proceso no posee ningún privilegio. o Ciertas instrucciones están prohibidas. o Sólo tiene acceso a las zonas que se le han asignado al proceso. o No puede interactuar con la máquina físicas (hardware). o Sólo efectúa operaciones en su entorno, sin interferir con los demás procesos. o Puede ser interrumpido en cualquier momento, pero esto no obstaculiza su funcionamiento. Recordemos también que un proceso que se ejecute en modo usuario no puede acceder directamente a los recursos de la máquina, para ello debe efectuar “llamadas al sistema”. 2.9 Espacios de direcciones del sistema Figura 04. Espacios de direcciones para un sistema LINUX. Imagen tomada de: http://www.slideshare.net/javymix/linux-ud7-gestion-de- procesos o Segmentos de texto: código de programa o Segmentos de datos: variables globales y estáticas o Pila: Lo crea el kernel y su tamaño es gestionado dinámicamente por él. Es una secuencia de bloques lógicos o stack frames o Un stack frame: se introduce o saca en función de si se llama o se vuelve de la llamada a una función o Cada modo maneja su propia pila o stack o Stack de kernel: contiene los stack frames de las llamadas a sistema(funciones que se ejecutan en modo kernel) o Stack del usuario: stack frames de funciones que se ejecutan en modo usuario. o Requiere de otro programa llamado Planificador o “scheduler” que permite gestionar que proceso entra a ejecutarse en cada instante en la CPU, ya que esta es un recurso limitado. 4 2.10 Comunicación y Sincronización de procesos Los medios de comunicación entre procesos (Inter- Process Communication o IPC) de Linux proporcionan un método para que múltiples procesos se comuniquen unos con otros. 4 Lara, E. (s.f.). Universidad Politécnica de Cataluña. Obtenido de: http://personals.ac.upc.edu/elara/documentacion/LINUX%20- %20UD7%20-%20Gestion%20de%20Procesos.pdf
  • 5. UTPL. Sistema Operativo Linux . 5 Existen varios métodos de IPC disponibles en Linux: o Pipes UNIX Half-duplex o FIFOs (pipes con nombre) o Colas de mensajes estilo SYSTEM V o Semáforos estilo SYSTEM V o Segmentos de memoria compartida estilo SYSTEM V Pipes UNIX Semi-duplex La forma más simple de IPC en Linux son los pipes o tuberías, han estado presentes desde los primeros orígenes del sistema operativo UNIX y proporcionan un método de comunicaciones en un sentido (unidireccional, semiduplex) entre procesos. Una tubería (pipe) es simplemente un método de conexión que une la salida estándar de un proceso a la entrada estándar de otro. 5 Para esto se utilizan “descriptores de archivos” reservados, los cuales en forma general son: o 0: Entrada estándar (stdin). o 1: Salida estándar (stdout). o 2: Salida de error (stderr). Tuberías con Nombre (FIFO - First In First Out) Un FIFO también se conoce como una tubería con nombre. El nombre es de un archivo que múltiples procesos pueden abrir, leer y escribir. Una tubería con nombre funciona como una tubería normal, pero tiene algunas diferencias notables: o Las tuberías con nombre existen en el sistema de archivos como un archivo de dispositivo especial. o Los procesos de diferentes padres pueden compartir datos mediante una tubería con nombre. o Una vez finalizadas todas las operaciones de E/S, la tubería con nombre permanece en el sistema de archivos para un uso posterior. Creación de una FIFO Hay varias formas de crear una tubería con nombre. Las dos primeras se pueden hacer directamente desde el shell: o mknod MIFIFO p o mkfifo a=rw MIFIFO Los dos comandos anteriores realizan operaciones idénticas, con una excepción, el comando mkfifo proporciona una posibilidad de alterar los permisos del 5 Sven Goldt, S. v. (13 de 03 de 1995). IBLIO. Obtenido de http://www.ibiblio.org/pub/Linux/docs/LDP/programmers- guide/translations/es/gulp-0.11.pdf archivo FIFO directamente tras la creación. Con mknod será necesaria una llamada al comando chmod. Anteriormente en Linux no podía ser desalojado de ninguna manera un proceso que se esté ejecutando en modo kernel, o sea que era un kernel no apropiativo, pero actualmente es apropiativo, de tal manera que sí puede ser desalojada una tarea que se esté ejecutando en modo kernel. El kernel de Linux proporciona bloqueos mediante bucles sin fin y semáforos, así como versiones lector- escritor de éstos bloqueos para establecer bloqueos en el kernel. En una máquina SMP, se hace uso de bucles sin fin, y el kernel se diseña de modo que dicho tipo de bloqueo se mantenga sólo durante períodos de tiempo cortos. En las máquinas monoprocesador, se reemplazan los bloqueos de bucle sin fin por un mecanismo de activación y desactivación de la función de apropiación en el kernel. Linux proporciona llamadas al sistema para activar y desactivar los mecanismos de desalojo del kernel, estas son: preempt_disable(), preempt_enable(). El kernel no es desalojable si hay una tarea modo kernel que esté manteniendo un bloqueo. Temporizadores del Kernel (timers). Linux gestiona una lista de timers con el objetivo de poder poner procesos en espera durante un periodo de tiempo determinado. Estos timers se organizan en forma de una lista circular doblemente enlazada, los timers a desencadenar en un futuro próximo se colocan al principio de la lista, mientras que los elementos a desencadenar en un futuro lejano se al final de dicha lista. La estructura timer_list, se define en el archivo linux/timer.h según la siguiente estructura: struct timer_list { struct list_head list; unsigned long expires; unsigned long data; void (*function) (unsigned long); volatile int running; }; La variable timer_head, definida en el archivo kernel/sched.c, contiene la dirección del primer elemento (timer) de la lista. La fecha de expiración (expires) se expresa en número de ciclos de reloj desde el arranque del sistema. La variable global jiffies es mantenida por el kernel (su valor se incrementa en cada interrupción de reloj) y contiene siempre el número de ciclos de reloj transcurridos desde el arranque. Además, el campo expires tiene el valor de jiffies cuando el manejador function debe ser invocado con data pasado como parámetro. Semáforos: Conocidos como una estructura de datos con un contador asociado, que es verificado por cada
  • 6. UTPL. Sistema Operativo Linux . 6 thread antes de accesar dicha estructura. Posee un contador entero, una lista de procesos en espera y dos operaciones básicas up(), down(). 2.11 Sincronización de Procesos Semáforos o Las funciones para trabajar con semáforos en Linux en C están incluidas en las librerías <sys/types.h>,<sys/ipc.h> y <sys/sem.h>. o En particular, las funciones son semget, semop y semctl. o Estas funciones, aunque muy potentes, son habitualmente complicadas de usar, por lo que se recomienda utilizarlas en su versión más básica, siempre que sea posible. o En vez de un solo semáforo clásico representado por un entero no negativo, en realidad semget define un array de semáforos del tamaño especificado. Hay que trabajar por tanto con conjuntos de semáforos, aunque para crear un sólo semáforo necesitemos crear un array de un solo elemento. o La creación de un semáforo es independiente de su inicialización, lo cual es especialmente peligroso ya que no se puede crear un semáforo inicializado de forma atómica. 6 Spin Lock: En sistemas multiprocesadores (SMP), bajo condiciones de competencia por la exclusividad de un recurso, si el intervalo de espera es pequeño, es más eficiente generar un ciclo de espera (busy wait) en el resto de los CPUs Historia de la sincronización en Linux Linux utiliza un método para activar y desactivar los mecanismo de desaojo de kernel, es decir proporciona dos llamadas al sistema: preempt_disable() y preempt enable(). El kernel no es desalojable si hay una tarea en modo kernel que este manteniendo un bloqueo Aspectos importantes de la sincronización de Linux o Es un sistema operativo reentrante, multi usuario y multi tarea. o Soporta multiprocesamiento, por lo que cierto código del kernel ejecutándose en procesadores distintos podría acceder al mismo recurso al mismo tiempo. 6 República del Saber. (18 de 06 de 2009). Obtenido de http://expo.itch.edu.mx/view.php?f=os_31#page4 o Las interrupciones ocurren asincrónicamente con respecto al código ejecutado en un momento dado. o Es preemptive (desde el 2.6). Por lo que, cierto código del kernel puede ser interrumpido en favor a otro código que acceda al mismo recurso. o El kernel debe proveer mecanismos de sincronización. Conceptos importantes de Sincronización: o Condiciones de Competencia: se presenta cuando dos o más procesos compiten por acceder a un mismo recurso. Si no existe sincronización al interferirse los cambios pueden haber serias inconsistencias. o Exclusión mutua: principio que establece que la ejecución de secciones críticas de los procesos sea mutuamente exclusiva en el tiempo. o Operaciones atómicas: operación que no es interrumpida que finaliza su procesamiento (read-modify-write), e.g. x=x+1 => ++x, x86 lock prefix, Linux struct atomic_t. o Sección Crítica: Mientras se ejecuta una sección crítica existe la garantía de que ningún otro proceso se ejecutará a la vez por lo que el código, i.e. se comporta como si fuera una operación atómica, e.g. Java synchronized o Interbloqueo: Cuando dos o más procesos esperan la ocurrencia de un evento que sólo uno de los procesos que esperan puede causar. o Inanición o bloqueo indefinido: Sucede cuando los procesos interbloquedos esperan indefinidamente. Figura 05. Sincronización en Linux. Imagen Tomada de: http://www.plusformacion.com/Recursos/r/Sincroniz acion-entre-procesos
  • 7. UTPL. Sistema Operativo Linux . 7 Propiedades de un proceso o Un proceso incluye, no sólo el programa que ejecuta, sino toda la información necesaria para diferenciar una ejecución del programa de otra. o Toda esta información se almacena en el kernel, en el PCB. o En Linux, por ejemplo, las propiedades de un proceso se agrupan en tres: la identidad, el entorno, y el contexto. Identidad: Define quién es (identificador, propietario, grupo) y qué puede hacer el proceso (recursos a los que puede acceder) Entorno: Parámetros (argv en un programa en C) y variables de entorno Contexto: Toda la información que define el estado del proceso, todos sus recursos que usa y que ha usado durante su ejecución. Figura 06. Realización de un proceso. Imagen tomada de: http://docencia.ac.upc.edu/FIB/grau/SO/enunciados/Teor ia/T2-Procesos.pdf 2.12 Interbloqueos El Interbloqueo se puede definir como el bloque permanente de un conjunto de procesos que compiten por los recursos del sistema, todos los interbloqueos suponen necesidades contradictorias de recursos, por parte de dos o más procesos. 7 7 Varios. (s.f.). WIKIVERSIDAD. Obtenido de http://wikiversidad.wikispaces.com/Interbloqueo+(Sistema +Operativo)#Definiciones-Interbloqueo Técnicas que usa Linux para tratar el interbloqueo Figura 07. Métodos para el interbloqueo. Tomada de: http://www.monografias.com/trabajos51/sincro- comunicacion/sincro-comunicacion3.shtml o TÉCNICA DEL AVESTRUZ Si no se ve el problema, es que no existe es decir es omitido. Para omitir el interbloqueo, debemos tener en cuenta los siguientes factores: 1. Número de veces que ocurre el interbloqueo. 2. Gravedad de la ocurrencia del interbloqueo. 3. Coste de las consecuencias. 4. Coste, en caso de hacer algo. o TÉCNICA – PREVENCIÓN Consiste en eliminar del sistema al menos, una de las condiciones de interbloqueo. Ventajas: Método limpio, no se tiene que tratar a fondo procesos, ni que expropiar recursos. Desventajas: Se aprovechan mal los recursos. o TÉCNICA – EVITACIÓN Consiste en permitir la posibilidad de interbloqueo, de modo que se chequea el sistema continuamente y este chequeo se realiza en las asignaciones de recursos a procesos, ya que las solicitudes no son evitables. Ventajas: Método limpio. Desventajas: Poco rendimiento, sobrecarga mucho el sistema. Se requiere chequear continuamente el sistema.
  • 8. UTPL. Sistema Operativo Linux . 8 o TÉCNICA – DETECCIÓN Y RECUPERACIÓN Permite a los procesos actuar libremente, incluso permitir que ocurra el interbloqueo. Cada cierto tiempo se realiza un chequeo para comprobar si se ha producido un interbloqueo y si existe el caso de que lo haya se lanza un mecanismo de recuperación. Desventajas: Método no limpio. 2.13 MECANISMOS DE CONCURRENCIA Los distintos mecanismos más importantes que ofrece LINUX para la comunicación entre procesos y la sincronización son los siguientes: o Tubos o Mensajes o Memoria Compartida o Semáforos o Señales Los tubos, los mensajes y la memoria compartida brindan un medio de comunicación de datos entre procesos, mientras que los semáforos y las señales se utilizan para provocar acciones en otros procesos. Tubos Es un buffer circular que permite a dos procesos comunicarse según el modelo productor/consumidor. Cuando se crea un tubo, se le da un tamaño fijo en bytes. Cuando un proceso intenta escribir en el tubo, la solicitud de escritura se ejecuta inmediatamente si hay suficiente espacio; de otro modo, el proceso se bloquea. De la misma manera, un proceso lector se bloquea si intenta leer más bytes de los que tiene disponible en ese momento. 8 El sistema operativo es el encargado de la exclusión mutua, es decir, al tubo solo puede accederlo un proceso por vez. Hay dos tipos de tubos: con nombre y sin nombre. Los tubos sin nombre pueden ser compartidos por procesos afines y los tubos con nombre pueden ser compartidos por procesos no afines. Mensajes Es un bloque de texto con un tipo asociado. LINUX proporciona las llamadas al sistema msgsnd y msgrcv para que los procesos puedan enviarse mensajes. Cada proceso tiene asociada una 8 Romero, L. (18 de 04 de 2008). Universidad NAcional de NordEste. Obtenido de http://exa.unne.edu.ar/depar/areas/informatica/SistemasOpe rativos/MonogSO/CINTIN02.htm cola de mensajes, que funciona como un buzón de correos. El emisor del mensaje especifica el tipo de mensaje en cada envío y el receptor puede usarlo como criterio de selección. El receptor puede recuperar los mensajes tanto en orden FIFO como por el tipo asociado. Un proceso se suspenderá cuando intente leer de una cola vacía. Si un proceso intenta leer un mensaje de cierto tipo y falla, el proceso no se suspenderá. Memoria Compartida Es la forma más rápida de comunicación entre procesos que brinda LINUX, se trata de un bloque común de memoria virtual compartido por varios procesos. Los procesos pueden leer y escribir en la memoria compartida usando las mismas instrucciones que la máquina que emplea para leer y escribir en otras partes de su espacio de direcciones virtual. Los permisos de un proceso son solo lectura o lectura-escritura, según el proceso. Las limitaciones de exclusión mutua no forman parte del servicio de memoria compartida, sino que las debe proporcionar el proceso que hace uso del mismo. Semáforos El núcleo ejecuta atómicamente todas las operaciones solicitadas; ningún otro proceso puede acceder al semáforo hasta que todas las operaciones hayan culminado. Un semáforo consta de los siguientes elementos:  Valor actual del semáforo.  ID del último proceso que opero con el semáforo.  Numero de procesos esperando a que el valor del semáforo sea mayor que su valor actual.  Numero de procesos esperando a que el valor del semáforo sea cero Los semáforos, se crean por conjuntos, en el cual, un conjunto tiene uno o más semáforos. Hay una llamada al sistema semctl que permite dar valores a todos los semáforos del conjunto al mismo tiempo. Además, hay una llamada al sistema sem-op que recibe como argumento una lista de operaciones sobre semáforos, cada una de ellas definida sobre uno de los semáforos del conjunto. Cuando se genera esta llamada, el núcleo realiza las operaciones indicadas una a una. Para cada operación, se especifica la función real por medio del valor sem_op. Existen las siguientes posibilidades:  Si sem_op es mayor que 0, el núcleo incrementa el valor del semáforo y despierta a los procesos que esperaban a que el valor del semáforo se incrementase.
  • 9. UTPL. Sistema Operativo Linux . 9  Si sem_op es igual a 0, el núcleo comprueba el valor del semáforo. Si el semáforo es 0, continúa con las otras operaciones de la lista; en caso contrario, incrementa el número de procesos esperando a que este semáforo sea igual a 0 y suspende el proceso hasta que el valor del semáforo sea 0.  Si sem_op es negativo y su valor absoluto es menor o igual que el valor del semáforo, el núcleo suma sem_op (un número negativo) al valor del semáforo. Si el resultado es 0, el núcleo despierta a todos los procesos que esperan a que el valor del semáforo sea igual a 0.  Si sem_op es negativo y su valor absoluto es mayor que el valor del semáforo, el núcleo suspende al proceso, caso de que el valor del semáforo se incremente. Esta generalización de los semáforos ofrece una considerable flexibilidad para realizar sincronización y coordinación de procesos. Señales Es un mecanismo de software que informa a un proceso que se ha producido un suceso asíncrono. Una señal es similar a una interrupción de hardware, pero no emplea prioridades. 9 Es decir, todas las señales se tratan de igual manera; las señales que se producen en un mismo momento se presentan al proceso en el mismo instante, sin una ordenación en particular. Los procesos pueden enviarse señales entre si y el núcleo puede enviar señales internas. Una señal se entrega actualizando un campo de la tabla de procesos del proceso al que se le envía. Dado que cada señal se mantiene como un único bit, las señales de un tipo en particular no pueden colocarse en la cola. Una señal se procesa en el instante después de que el proceso despierte para ejecutarse o cuando el proceso esté dispuesto a volver de una llamada al sistema. Un proceso puede responder a una señal ejecutando alguna acción por omisión (por ejemplo, terminar), ejecutando una función de gestión de la señal o ignorando la señal. 9 Belgrano, M. (s.f.). Wikiespace_CAECE. Obtenido de http://sistemasoperativos1- caece.wikispaces.com/M%C3%B3dulo+5.+Deadlock+%28 bloqueo+mutuo%29 Herramientas para el interbloqueo en Linux Figura 08. Asignación de recursos. Tomada de: http://exa.unne.edu.ar/depar/areas/informatica/Sistemas Operativos/image1FP.JPG o GDB: Es una herramienta de rastreo y debugeo del kernel, con la información obtenida en un error en el sistema. o INGO: Es un “perro guardián” que sirve para detectar y reportar los interbloqueos. o SYSREQ: Permite observar las tareas, procesos y registros dentro del kernel en caso de fallo. o KDB: Es un debugeador del kernel en línea de comando que sirve para inspeccionar el estado de los procesos. 2.14 Administración de memoria El Subsistema de administración de memoria es uno de las más importantes partes del OS Linux. Desde aquellos días en que la computación ha requerido más memoria de la que existe físicamente en un sistema. Las estrategias fueron desarrolladas para vencer esta limitación… y la más exitosa de ellas se conoce hoy en día como “memoria virtual”. La Memoria Virtual hace parecer a un sistema más abundante en memoria de lo que realmente es. Pero que Provee el subsistema de administración de Memoria Virtual en Linux? o Direccionamiento Largo de espacios en Memoria El OS hace que el sistema aparente tener un volumen de memoria alto al que realmente posee. La memoria virtual puede ser N veces más grande que la memoria física de un sistema. o Protección Cada proceso en el sistema posee su propio espacio de direcciones virtuales de memoria. Estos espacios están completamente separados uno del otro y así los procesos corren sin afectar a otros.
  • 10. UTPL. Sistema Operativo Linux . 10 o Mapeo en Memoria El mapeo en memoria es acostumbrado para mapear imágenes y archivos de datos dentro de un espacio de direcciones de un proceso. o Alocamiento Equitativo de Memoria Física El Subsistema de administracion de memoria permite a cada proceso que se encuentra en ejecucion dentro del sistema, un equitativa distribucion de la memoria del sistema. 10 Memoria virtual En la memoria virtual como se ha visto, no existe una relación directa entre el espacio de direcciones de un proceso y el mapa de memoria físico. El espacio de direccionamiento de un proceso es limitado por la arquitectura, la memoria física por otros condicionantes o El espacio de direcciones de un proceso es mucho mayor que la memoria física disponible. o Un sistema operativo multitarea debe dar soporte a varios procesos en ejecución al mismo tiempo. La memoria virtual es un mecanismo que permite gestionar adecuadamente estas paradojas utilizando un dispositivo de almacenamiento masivo, que es más lento y económico, aplicándola como zona de intercambio o swap. o Las páginas que no ocupan un marco son llevadas a disco. o Aprovecha la localidad de referencia de los accesos a memoria. Esquemas de memoria virtual El esquema más utilizado es la paginación por demanda, se lo utiliza en modelos de compartición de páginas. Las páginas residen en memoria física o en el disco y las tablas de páginas se extienden con la información acerca de la relación del estado de la página en disco. Las tablas de páginas mucho mayores no están permanentemente en la memoria. Para acabar encontrando las referencias en memoria se utilizan, las tablas de páginas de varios niveles (dos o más). Problemas de la memoria virtual Las páginas pueden no encontrarse en memoria cuando se necesitan, entonces se produce un fallo de página. 10 Administración de memoria en Linux http://eplauchu.wordpress.com/2013/07/17/administracion-de- memoria-en-linux/ El SO busca la página en disco, la lleva a memoria y actualiza las tablas, donde se han de establecer las políticas de planificación: adquisición, asignación a procesos y reemplazo. También se pueden producir fenómenos indeseados como es: la hiperpaginación, es decir: cuando hay demasiados procesos en ejecución, el SO invierte gran parte de su tiempo en el intercambio de páginas. Otras consideraciones o De qué depende el número mínimo de páginas en memoria por proceso. o Ciertas estructuras y código del núcleo se dejan siempre en memoria principal. o Se utilizan políticas de preadquisición etcétera para mejorar las prestaciones. o Se requiere de un extenso soporte del hardware (MMU) 2.15 Archivos y directorios En cuanto a los caracteres para los nombres de archivo, se puede utilizar cualquiera, a excepción del carácter /, ya que tiene un significado especial. Es conveniente no utilizar caracteres especiales, acentos, etc. No se pue- den incluir espacios en blanco ni es conveniente em- plear caracteres como los siguientes en los nombres de archivo: ! # & ( ) ` '' ; | > < @ $ { } * ? Tab Spacebar Backspace + – Lo más importante es destacar que en Unix/Linux los nombres de archivo son diferentes en mayúscula y en minúscula. Se recomienda utilizar todos en minúscula. Los directorios en Unix/Linux son archivos especiales cuya función es la de almacenar archivos u otros directorios. Tienen características especiales y, al igual que en DOS, cada directorio, a excepción de la raíz, consta de los directorios. y .., que indican directorio actual y directorio padre, respectivamente. Para entender mejor lo relacionado con los archivos, hablemos sobre el File System de Unix/Linux. El sistema de archivos de Unix/Linux es particular, respecto de los convencionales de Microsoft. Su estructura consta de tres partes fundamentales: superbloque, tabla de inodos y bloques de datos. Concreta- mente, cada archivo o directorio tiene asociado un nú- mero en la tabla de inodos. Este número identifica la ubicación del archivo o directorio dentro de la zona de datos. 11 11 Sistema operativo multiusuario Unix/Linux. Gestión de archivos, directorios y usuario – Estructura del sistema Unix/Linux (Archivos y directorios) http://www.mcgraw- hill.es/bcv/guide/capitulo/8448199626.pdf
  • 11. UTPL. Sistema Operativo Linux . 11 Tipos de archivos En Unix/Linux existen, básicamente, cuatro tipos de archivos. Son los siguientes: o Archivos ordinarios: Contienen la información con la que trabaja cada usuario. Normalmente son archivos que contienen texto, programas escritos por el usuario en lenguaje C, etc. Suelen contener caracteres de tipo ASCII, y pueden ser modificados, crea- dos, borrados, etcétera. o Enlaces físicos (Vínculos físicos). No es específicamente una clase de archivo. Es un segundo nombre asignado a un archivo. Supón que dos usuarios necesitan compartir la información de un mismo ar- chivo. Es evidente que si cada uno de ellos tiene una copia, el problema se soluciona, en cierta medida. Pero las modificaciones que realice un usuario, no podrán ser utilizadas por otro, ya que solamente se modificará la copia de uno de los usuarios. Si en vez de tener una copia cada usuario, cada uno de ellos utiliza en archivo tipo enlace al archivo original, cada vez que uno modifique su archivo lo que estará modificando es en realidad el archivo común. El vínculo es un segundo nombre que hace referencia a un archivo, pero no es en sí el archivo. El vínculo sirve para localizar el fichero en su ubicación actual, pero no es el archivo real. De esta forma, con tener un solo archivo real, éste se podrá utilizar por todos los usuarios que lo necesiten, sin tener que duplicarlo o triplicarlo. o Enlaces simbólicos (Vínculos simbólicos). Se utilizan para asignar más de un nombre a un archivo. No sirven para directorios. Un vínculo simbólico es un archivo que sólo contiene el nombre de otro ar- chivo. Cuando el sistema operativo opera sobre un vínculo simbólico, éste se dirige al archivo al que apunta el vínculo simbólico. A diferencia de los en- laces físicos, que existen dentro de la estructura de archivos, los enlaces simbólicos solamente hacen referencia al nombre de otro archivo. Se utiliza los parámetros. o Directorios: Son archivos especiales que contienen referencias a otros archivos. Cuentan con información sobre archivos ordinarios, sub directorios, vínculos, vínculos simbólicos, etcétera. o Archivos especiales: Suelen representar dispositivos físicos como unidades de almacenamiento, impresoras, terminales, etc. Unix/Linux trata los archivos especiales como archivos ordinarios. De esta forma, un usuario puede abrir un archivo vinculado a una unidad de disquete, modificarlo, etc. Con ello consigue leer del disquete, escribir en el disquete, etc. Unix/Linux transforma las operaciones básicas y ordenes básicas de archivos ordinarios o regulares en comandos que interactúan con el hardware a través de los archivos especiales. 12 2.16 Seguridad en Linuxseguridad Linux especializado en Seguridad tomada de http://imagenes.es.sftcdn.net/blog/es/2013/09/Tux- Seguridad.png Muchas veces se ha dicho que GNU/Linux es un sistema muy seguro (especialmente en comparación con algunos sistemas operativos propietario), pero sería mejor decir que GNU/Linux tiene el potencial para convertirse en enormemente seguro. Pero de entrada no tiene porqué serlo. En particular debemos ser conscientes de que se trata de un sistema operativo pensado para entornos de red y por ello tiene grandes capacidades de conexión con otros ordenadores y de ofrecerles servicios. 13 La seguridad se basa en tres aspectos: o Evitar la pérdida de datos. o Mantener un control en la confidencialidad. o Controlar el acceso a los datos y a los recursos. 12 Sistema operativo multiusuario Unix/Linux. Gestión de archivos, directorios y usuario – Estructura del sistema Unix/Linux (Tipos de archivos en Unix/Linux) http://www.mcgraw- hill.es/bcv/guide/capitulo/8448199626.pdf 13 SEGURIDAD EN EL SISTEMA OPERATIVO GNU/LINEX (kernel 2.4.20) - Javier Carmona Murillo http://gitaca.unex.es/agila/archivos/seguridad_linex.pdf
  • 12. UTPL. Sistema Operativo Linux . 12 Seguridad Externa Hace referencia a los controles y mecanismos implementados para controlar el acceso remoto desde y hacia el centro de cómputo. Se prevén amenazas como: o Desastres naturales, incendios o inundaciones. o Amenazas ocasionadas por el hombre. o Sabotajes internos y externos deliberados. Seguridad del Núcleo No tiene ninguna restricción a la hora de ejecutarse. o utiliza todas las instrucciones del procesador. o direcciona toda la memoria. o accede directamente al hardware. Seguridad Interna de Linux 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 proveída 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. Seguridad del sistema de archivos El archivo etc/system puede definir variables para el núcleo del SO, como el número máximo de archivos abiertos por un proceso o el uso de memoria compartida. Métodos de Autenticación Auth: Solicita y verifica la validez de una contraseña 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 sesión. Password: se usa para establecer y verificar contraseña. Session: esta interfaz del módulo configura y administra las sesiones de usuario, los módulos con esta interfaz también pueden realizar tareas adicionales que son requeridas para permitir acceso, como el montaje de directorios principales de usuarios. 2.17 Sistemas distribuidos El desarrollo de los sistemas distribuidos vino de la mano de las redes locales de alta velocidad a principios de 1970. Más recientemente, la disponibilidad de computadoras personales de altas prestaciones, estaciones de trabajo y ordenadores servidores ha resultado en un mayor desplazamiento hacia los sistemas distribuidos en detrimento de los ordenadores centralizados multiusuario. Esta tendencia se ha acelerado por el desarrollo de software para sistemas distribuidos, diseñado para soportar el desarrollo de aplicaciones distribuidas. Este software permite a los ordenadores coordinar sus actividades y compartir los recursos del sistema – hardware, software y datos. Los sistemas distribuidos se implementan en diversas plataformas hardware, desde unas pocas estaciones de trabajo conectadas por una red de área local, hasta Internet, una colección de redes de área local y de área extensa interconectados, que en lazan millones de ordenadores. Las aplicaciones de los sistemas distribuidos varían desde la provisión de capacidad de computo a grupos de usuarios, hasta sistemas bancarios, comunicaciones multimedia y abarcan prácticamente todas las aplicaciones comerciales y técnicas de los ordenadores. Los requisitos de dichas aplicaciones incluyen un alto nivel de fiabilidad, seguridad contra interferencias externas y privacidad de la información que el sistema mantiene. Se deben proveer accesos concurrentes a bases de datos por parte de muchos usuarios, garantizar tiempos de respuesta, proveer puntos de acceso al servicio que están distribuidos geográficamente, potencial para el crecimiento del sistema para acomodar la expansión del negocio y un marco para la integración de sistema usados por diferentes compañías y organizaciones de usuarios. 14 2.18 Tipos de Sistemas Distribuidos El Modelo Cliente Servidor El modelo cliente-servidor de un sistema distribuido es el modelo más conocido y más ampliamente adoptado en la actualidad. Hay un conjunto de procesos servidores, cada uno actuando como un gestor de recursos para una colección de recursos de un tipo, y una colección de procesos clientes, cada uno llevando a cabo una tarea que requiere acceso a algunos recursos hardware y software compartidos. Los gestores de recursos a su vez podrían necesitar acceder a recursos compartidos manejados por otros procesos, así que algunos procesos son ambos clientes y servidores. En el modelo, cliente-servidor, todos los recursos compartidos son mantenidos y manejados por los procesos servidores. Los procesos clientes realizan peticiones a los servidores cuando necesitan acceder a algún recurso. Si la petición es válida, entonces el servidor lleva a cabo la acción requerida y envía una respuesta al proceso cliente. Middleware El término middleware se discute en [Lewandosky 1998]. El software distribuido requerido para facilitar las interacciones cliente-servidor se denomina middleware. El acceso transparente a servicios y recursos no locales distribuidos a través de una red se provee a través del middleware, que sirve como marco para las comunicaciones entre las porciones cliente y servidor de un sistema. Servidores Pesados vs Clientes Pesados [Lewandowsky 1008] Se realiza una discusión de este concepto dentro del marco de los sistemas cliente- servidor. Los especialistas en sistemas de información 14 Introducción a los sistemas distribuidos http://augcyl.org/?page_id=231
  • 13. UTPL. Sistema Operativo Linux . 13 califican como ‘pesada’ (fat) una parte de un sistema con una cantidad de funcionalidad desproporcionada. Por el contrario, una parte de sistema se considera ligera (thin) si tiene menos responsabilidades [Orfali 1996]. 3 REFERENCIAS o LinuxZone(2007-2013) DISTRIBUCCIONES- PRINCIPALES consulta realizada el dia 22/03/2014 de http://linuxzone.es/distribuciones-principales/ o Sistema de operativos GNU DISTRIBUCIONES - PRINCIPALES consulta realizada el día 22/03/2014 de http://www.gnu.org/distros/free- distros.es.html o Linux DISTRIBUCIONES - PRINCIPALES consulta realizada el día 22/03/2014 de http://www.linux.org.pe/linux/ o Diseño gráfico, desarrollo web y software libre DISTRIBUCIONES - PRINCIPALES consulta realizada el día 22/03/2014 de http://dglibre.com/2008/09/14/distribuciones- linux-para-disenadores-graficos/ o http://slashdot.com: Noticias y rumores del mundo GNU/Linux. En inglés. o http://www.foroslinux.org: Varios foros de GNU/Linux dedicados a todo tipo de temas. o http://www.fsf.org: La página oficial de la Free Software Foundation. o http://www.debian.org: Página oficial de debian GNU/Linux. o http://www.redhat.com: Página oficial de RedHat Linux. o http://www.suse.com: Página oficial de SuSE. o http://www.slackware.com: Página oficial de Slackware Linux. o http://www.knoppix.com: Página oficial de Knoppix. o Ramos, M. d. (2010). Sistemas Operativos Monopuestos Madrid,España: Paraninfo. o Bovet, D. P., & Cesati, M. (2008). Understanding the Linux kernel. O'Reilly Media. o Barabanov, M., & Yodaiken, V. (1996). Real- time linux. Linux journal, 23. o Yodaiken, V., & Barabanov, M. (1997, January). Real-Time Linux Applications and Design. In Proceedings of the Linux applications development and deployment conference (USELINUX). o Barabanov, M. (1997). A linux-based real-time operating system (Doctoral dissertation, New Mexico Institute of Mining and Technology). o Tema_6 Gestion de Memoria pdf http://mermaja.act.uji.es/docencia/ii22/teoria/Tra spasTema6.pdf o Estructura del Sistema Unix/Linux http://www.mcgraw- hill.es/bcv/guide/capitulo/8448199626.pdf o Características de seguridad de Linux - Horst H. von Brand Departamento de Informática Universidad Técnica Federico Santa María http://2004.encuentrolinux.cl/docs/presentacion es/pdf/presentacion-hvb.pdf o SEGURIDAD EN EL SISTEMA OPERATIVO GNU/LINEX (kernel 2.4.20) - Javier Carmona Murillo http://gitaca.unex.es/agila/archivos/seguridad_li nex.pdf o Seguridad en sistemas GNU/Linux http://blog.desdelinux.net/seguridad-en- sistemas-gnulinux-depende-del-sistema-o-del- administrador/ o Sistemas distribuidos de Linux http://laurel.datsi.fi.upm.es/_media/docencia/asi gnaturas/sod/rdir-4pp.pdf o UNIDAD 1 LOS SISTEMAS OPERATIVOS EN AMBIENTES DISTRIBUIDOS http://marcosventuraosorio261v.blogspot.com/ o Sistemas distribuidos sobre la plataforma Linux http://es.slideshare.net/damian_barrios/taller- sistemas-distribuidos-linux o SOs distribuidos, multiprocesadores y multicomputadores http://lsi.ugr.es/jagomez/disisoparchivos/Tema2. pdf o Introducción a los sistemas distribuidos http://augcyl.org/?page_id=231