Antologia Completa
Antologia Completa
Antologia Completa
Antología de Sistemas
Operativos I
Contenido
Sistemas Operativos.....................................................................................................4
1.4. Clasificación........................................................................................................8
1.6. Núcleo...............................................................................................................12
3. ADMINISTRACIÓN DE MEMORIA......................................................................25
4. ADMINISTRACIÓN DE ENTRADA/SALIDA........................................................30
5. SISTEMAS DE ARCHIVOS.................................................................................34
5.1. Concepto........................................................................................................34
6. PROTECCIÓN Y SEGURIDAD......................................................................................54
6.8. Cifrado.............................................................................................................71
7. REFERENCIAS:.........................................................................................................75
Sistemas Operativos
1. INTRODUCCIÓN A
LOS SISTEMAS
OPERATIVOS
Los sistemas operativos utilizan imágenes y botones para poder comunicarnos con
el ordenador de forma sencilla y fácil para decirle lo que queremos hacer en cada
momento a nuestro ordenador.
Las funciones básicas del Sistema Operativo son administrar los recursos del
ordenador, coordinar el hardware y organizar archivos y directorios en los
dispositivos de almacenamiento de nuestro ordenador.
Algunas cosas más concretas que puede realizar un Sistema Operativo son:
Un ejemplo: cuando una aplicación quiere imprimir algo, entrega esa tarea al
sistema operativo.
El primer sistema operativo fue creado por General Motors en 1956 para ejecutar
una sola computadora central IBM. En la década de 1960, IBM fue el primer
fabricante de computadoras en asumir la tarea de desarrollar sistemas operativos
y comenzó a distribuir sistemas operativos incluidos en sus ordenadores.
El nombre de Windows se usó por primera vez en 1985 cuando se creó una
interfaz gráfica de usuario y se emparejó o unió con el MS-DOS.
1.4. Clasificación
Ha nivel de usuario de un PC, podemos decir que hay dos tipos de Sistemas
Operativos: SO para PC y SO para Teléfonos Móviles.
Pero también hay una amplia familia de sistemas operativos categorizados según
los tipos de ordenadores que controlan y el tipo de aplicaciones que admiten. Las
4 categorías para este tipo de SO son: SO en tiempo real, SO Usuario Único
Tarea Única, SO Usuario Único Multitarea y SO Multiusuario.
Linux o GNU/Linux como sistema operativo fue diseñado para proporcionar a los
usuarios de computadoras personales una alternativa libre o de muy bajo costo.
Linux tiene la reputación de ser un sistema muy eficiente y rápido.
Hay muchas versiones diferentes, las más conocidas son Ubuntu o Fedora. Las
versiones se pueden modificar de forma libre por cualquier usuario.
Los sistemas operativos Unix, VMS y mainframe, como MVS , son ejemplos de
sistemas operativos multiusuario.
1.6. Núcleo
El núcleo o Kernel generalmente se ejecuta en un área aislada para evitar que otro
software de la computadora lo manipule.
El kernel del sistema operativo es muy importante, pero es solo una parte del
sistema operativo.
2. ADMINISTRACIÓN
DE PROCESOS Y
DEL PROCESADOR
Los procesos son creados y destruidos por el sistema operativo, así como también
este se debe hacer cargo de la comunicación entre procesos, pero lo hace a
petición de otros procesos.
La idea clava aquí es que un proceso es una actividad de algún tipo: tiene
programa, entrada, salida y un estado. Se puede compartir un procesador entre
varios procesos, usando algún algoritmo de planificación para determinar cuándo
debe de trabajar en un proceso para atender a uno distinto. Jerarquías de
procesos Los sistemas operativos que manejan el concepto de proceso deben
contar con algún mecanismo para crear todos los procesos necesarios.
En los sistemas muy sencillos, o en los diseñados para ejecutar solo una
aplicación. En otros sistemas operativos existen llamadas al sistema para crear un
proceso, cargar su memoria y ponerlo en ejecutar. Sea cual sea la naturaleza
exacta de la llamada al sistema. Los procesos necesitan poder crear otros
procesos. En MINIX, los procesos se crean con la llamada al sistema FORK
(bifurcar), que crea una copia idéntica del proceso invocador. El proceso hijo
también puede ejecutar FORK, así que es posible tener un árbol de proceso.
Un proceso podría generar ciertas salidas que otro proceso utilizan como
entradas, en el comando de Shell. Cuando un proceso se bloquea, lo que hace
porque le es imposible continuar lógicamente, casi siempre porque está separando
entradas que todavía no están disponibles, también puede ser que un programa
que conceptualmente está listo y en condiciones de ejecutarse sea detenido
porque el sistema operativo ha decidido asignar la CPU a otro proceso durante un
tiempo.
2.- Listo (se puede ejecutar, pero se suspendió temporalmente para dejar que otro
proceso se ejecute).
3.- Bloqueo (no puede ejecutarse en tanto no ocurra algún evento externo). Puede
haber cuánto transiciones entre estos tres estados, como se muestra. La
transacción 1 ocurre cuando un proceso descubre que no puede continuar.
En algunos sistemas el proceso debe ejecutar una llamada al sistema, block, para
pasar al estado bloqueado.
La transacción 3 ocurre cuando todos los demás procesos han disfrutado de una
porción justa y es hora de que el primer proceso reciba otra vez la CPU para
ejecutarse.
En caso contrario, el proceso tal vez tenga que esperar en el estado listo durante
cierto tiempo hasta que la CPU esté disponible. Usando el modelo de procesos, es
mucho más fácil visualizar lo que está sucediendo dentro del sistema.
Sin embargo, son independientes, y pueden ser tratadas como tales por el
sistema operativo.
Dentro de un proceso puede haber uno o más hilos de control cada uno con:
· Un estado de ejecución (en ejecución, listo, bloqueado).
· Un contexto de procesador, que se salva cuando no esté ejecutándose.
· Una pila de ejecución.
· Algún almacenamiento estático para variables locales.
· Acceso a la memoria y a recursos de ese trabajo que comparte con otros hilos.
Es importante mencionar que para que dos o más procesos sean concurrentes, es
necesario que tengan alguna relación entre ellos La concurrencia puede
presentarse en tres contextos diferentes:
La concurrencia será real cuando haya un proceso por procesador. Aunque puede
parecer que la intercalación y la superposición de la ejecución de procesos
presentan formas de ejecución distintas, se verá que ambas pueden contemplase
como ejemplos de procesos concurrentes Existen diversas razones que motivan la
ejecución de procesos concurrentes en un sistema:
• Acelera los cálculos. Si se quiere que una tarea se ejecute con mayor rapidez, lo
que se puede hacer es dividirla en procesos, cada uno de los cuales se ejecuta
en paralelo con los demás.
• Ocurrencia de bloqueos
• Que dos o más procesos requieran el mismo recurso (No apropiativo) Tipos de
procesos concurrentes. Los procesos que ejecutan de forma concurrente en un
sistema se pueden clasificar como: Proceso independiente:
En épocas pasadas de los sistemas de procesamiento por lotes, con una entrada
en forma de imágenes de tarjetas en una cinta magnética, el algoritmo de
planificación era sencillo: solo había que ejecutar el siguiente trabajo en la cinta.
• Expropiativas
• No apropiativas
Siempre que haya tomar una decisión, el planificador debe decidir cuál de los
procesos que compiten por la posesión de un determinado recurso lo recibirá.
Los algoritmos (técnicas) tienen distintas propiedades según los criterios en los
que se basen para su construcción, lo cual se refleja en qué tipo de procesos se
puede ver favorecido frente a otro en la disputa del procesador. Antes de realizar
3. ADMINISTRACIÓN DE MEMORIA
La administración de memoria se refiere a los distintos métodos y operaciones que
se encargan de obtener la máxima utilidad de la memoria, organizando los
procesos y programas que se ejecutan de manera tal que se aproveche de la
mejor manera posible el espacio disponible.
Entre algunas ventajas, esta memoria permite que el sistema cuente con una
memoria más extensa teniendo la misma memoria real, con lo que esta se puede
utilizar de manera más eficiente.
Y por supuesto, que los programas que son utilizados no ocupen lugar
innecesario.
Las técnicas que existen para la carga de programas en la memoria son: partición
fija, que es la división de la memoria libre en varias partes (de igual o distinto
tamaño) y la partición dinámica, que son las particiones de la memoria en tamaños
que pueden ser variables, según la cantidad de memoria que necesita cada
proceso.
Memoria interna del sistema informático, con direcciones accesibles por los
programas y que puede cargarse en los registros para su posterior ejecución o
procesamiento.
Sea cual sea el esquema de organización del almacenamiento que se adopte para
un sistema específico, es necesario decidir qué estrategias se deben utilizar para
obtener un rendimiento óptimo.
Política
• Poderlos ejecutar.
• Referenciarlos directamente.
• Poderlos ejecutar.
• Referenciarlos directamente
• Técnicas de “paginación”.
• Técnicas de “segmentación”.
Una combinación de ambas técnicas.
Las direcciones generadas por los programas en su ejecución no son,
necesariamente, aquellas contenidas en el almacenamiento primario (memoria
real), ya que las direcciones virtuales suelen seleccionarse dentro de un número
mucho mayor de direcciones que las disponibles dentro del almacenamiento
primario.
Real:
• Sistemas dedicados a un solo usuario. Real:
Sistemas de multiprogramación en memoria real:
Multiprogramación en partición fija:
• Absoluta.
• Relocalizable (reubicable).
• Multiprogramación en partición variable. Virtual:
Multiprogramación en almacenamiento virtual:
• Paginación pura.
• Segmentación pura.
• Combinación paginación / segmentación.
“Direcciones virtuales”:
• Son las referidas por un proceso en ejecución.
“Direcciones reales”:
• Son las disponibles dentro del almacenamiento primario.
“Estrategias de colocación”:
Tratan del lugar del almacenamiento primario donde se colocará una nueva página
o segmento.
Los sistemas toman las decisiones de colocación de una forma trivial ya que una
nueva página puede ser colocada dentro de cualquier marco de página disponible
“Estrategias de reposición”:
Tratan de la decisión de cuál página o segmento desplazar para hacer sitio a una
nueva página o segmento cuando el almacenamiento primario está
completamente comprometido.
4.ADMINISTRACIÓN DE
ENTRADA/SALIDA
1. Dispositivos de bloque
2. Dispositivos de carácter
-Un ejemplo típico de dispositivos de bloque son los discos. -Las principales
características de los dispositivos de carácter son: -La información se transfiere
como un flujo de caracteres, sin sujetarse a una estructura de bloques.
¿Qué es una estructura? Los sistemas operativos actuales son grandes y complejos,
estos deben poseer una ingeniería correcta para su fácil actualización y para que
puedan cumplir su función correctamente.
Estructura simple El sistema MS-DOS es, sin duda, el mejor sistema operativo para
microcomputadoras. Sin embargo, sus interfaces y niveles de funcionalidad no están
bien definidos. Los programas de aplicación pueden acceder a operaciones básicas
de entrada / salida para escribir directamente en pantalla o discos.
Este libre acceso, hace que el sistema sea vulnerable, ya que un programa de
aplicación puede eliminar por completo un disco rígido por alguna falla. Además,
este sistema, también está limitado al hardware sobre el que corre. Otra estructura
simple es la utilizada por la versión original de UNIX, esta consiste de dos partes
separadas, el kernel y los programas de sistemas. El kernel fue posteriormente
separado en manejadores (drivers) de dispositivos y una serie de interfaces.
La principal ventaja es que cada capa cumple con una serie de funciones y servicios
que brinda a las otras capas, esto permite una mejor organización del sistema
operativo y una depuración más fácil de este.
Cada capa se implementa solo utilizando las operaciones provistas por la capa de
nivel inferior. Una capa no necesita saber cómo se implementan estas funciones,
solo necesita saber que operaciones puede realizar.
Todos los manejadores tienen una lista de peticiones pendientes por dispositivo
donde se encolan las peticiones que llegan de niveles superiores. El manejador
explora la lista de peticiones, extrae una petición pendiente y ordena su ejecución.
La política de extracción de peticiones de la lista es dependiente de manejador y
puede ser FIFO.
Dentro de este grupo se incluyen todos los dispositivos que sirven para
proporcionar interfaz con el usuario, tanto para entrada (ratón, teclado, etc.) como
para salida (impresoras, pantalla, etc.). Existen periféricos menos habituales, pero
más sofisticados, tales como un escáner, lectores de huella digital, lectores de cinta
magnética, instrumentos musicales digitales (MIDI), etc.
5. SISTEMAS DE ARCHIVOS
5.1. Concepto
Un archivo virtual
Es un archivo de uso temporal que es utilizado por los procesos del sistema
mientras se están ejecutando dichos procesos. Estos archivos se crean durante la
Se le conoce como archivo virtual, aquel que contiene los datos generados por el
usuario.
Archivo Real
Mecanismos de
E/S. Por cada petición de
acceso al archivo real,
este mecanismo
genera la secuencia de
operaciones
elementales de
entrada y salida que se
necesita.
SCHEDULING
E/S. En este nivel es
donde se tiene el número
de peticiones
pendientes así
como de las que se están
realizando y
lleva el control y
asignación de tiempo de CPU a las diferentes peticiones de E/S.
PILAS
Es la forma más fácil de organizar un archivo. Los datos se recogen en el orden en
que llegan.
Los registros pueden tener campos diferentes o similares en un orden distinto. Cada
campo debe ser autodescriptivo, incluyendo tanto un campo de nombre como el
valor. La longitud de cada campo debe indicarse implícitamente con delimitadores,
explícitamente incluidos como un subcampo más.
Archivos secuenciales
Es la forma más común de estructura de archivos.
Se emplea un formato fijo para los registros, son de la misma longitud y constan del
mismo número de campos de tamaño fijo con un orden determinado.
La estructura más simple tiene como índice un archivo secuencial simple, cada
registro del archivo índice tiene dos campos, un campo clave igual al del archivo
principal y un puntero al archivo principal. Para encontrar un campo especifico se
Cada registro del archivo principal tiene un campo adicional que es un puntero al
archivo de desbordamiento. Cuando se inserta un nuevo registro al archivo, también
se añade al archivo de desbordamiento. El registro del archivo principal que precede
inmediatamente al nuevo registro según la secuencia lógica se actualiza con un
puntero del registro nuevo en el archivo de desbordamiento, si el registro
inmediatamente anterior está también en el archivo de desbordamiento se
actualizará el puntero en el registro.
Organización física
Los datos son arreglados por su adyacencia física, es decir, de acuerdo con el
dispositivo de almacenamiento secundario. Los registros son de tamaño fijo o de
tamaño variable y pueden organizarse de varias formas para constituir archivos
físicos.
Cinta magnética
En este dispositivo el archivo físico está formado por un conjunto de registros físicos,
y los bloques están organizados en forma consecutiva, ya que se asigna en igual
forma.
Además, tales registros pueden contener etiquetas que permitan un mayor control
sobre los datos almacenados, y son las siguientes:
Etiqueta de volumen.
- Contiene información que permite identificar la cinta, el nombre del propietario y
cualquier información general requerida.
Etiqueta de archivo.
- Se utilizan por pares para indicar el inicio y fin del archivo, contiene información
acerca del nombre del archivo, fecha de creación.
Etiqueta de usuario.
Para elegir una organización de archivos se deben tener en cuenta ciertos criterios:
Si un archivo va a procesar solamente por lotes, accediendo cada vez a todos los
registros, entonces el acceso rápido para la recuperación de un único registro es
una preocupación mínima. Un archivo almacenado en CD-ROM nunca será
actualizado, por lo que la facilidad de actualización no se considera. Para la
economía de almacenamiento, debería existir una mínima redundancia de los datos,
esta redundancia es el medio fundamental para incrementar la velocidad de acceso
a los datos.
Directorios
Generalmente son utilizados por los S. O. para llevar un registro de los archivos. En
muchos sistemas son a su vez también archivos.
Descriptores de archivos
Identificación del archivo. Consiste de dos partes que es el nombre simbólico que es
el que le da el usuario y un identificador interno que es asignado por el sistema
operativo (número). Lugar de almacenamiento, así como el tamaño del archivo.
Modo de acceso. Se debe indicar en forma explícita quien puede acceder el archivo
y conque derecho.
Vector de bit.
Lista ligada (lista libre).
Por conteo (agrupación)
Vector de bits
Lista ligada
Una lista ligada de todos los blocks libres. Otra implantación se consigue guardando
la dirección del primer block libre y el número de los blocks libres contiguos que le
siguen. Cada entrada de la lista de espacio libre consiste de una dirección de disco y
un contador (por conteo).
Por agrupación
Contiguos
Ligados
Indexados
Contiguos
Asignación Indexada
a) FCFS
b) SSTF
c) SCAN
d) SCAN de n-pasos
e) C-SCAN
f) Esquema Eschenbach
El nombre.
Sus atributos.
Las direcciones en disco donde se almacenan los datos.
Directorio único: el sistema tiene un solo directorio con todos los archivos de todos los
usuarios.
Recuperación
Comprobación de coherencia
El comprobador de coherencia (un programa del sistema tal como fsck en UNIX o
chkdsk en MS-DOS), compara los datos de la estructura de directorios con los
bloques de datos del disco y trata de corregir todas las incoherencias que detecte.
Los algoritmos de asignación y de gestión del espacio libre dictan los tipos de
problemas que el comprobador puede tratar de detectar y dictan también el grado de
éxito que el comprobador puede tener en esta tarea.
Para solucionar este o estos problemas todo sistema operativo cuenta con al menos
una herramienta de software que nos permite recuperar información perdida hasta
cierta medida, esto obedece de acuerdo al daño causado o los daños. Si el sistema
no cuenta con la herramienta necesaria, deberá adquirirse el software apropiado de
algún fabricante especializado en el ramo, por ejemplo, Norton.
La solución en software:
Una estrategia de respaldo consiste en dividir los discos en áreas de datos y áreas
de respaldo , utilizándolas de a pares:
Se desperdicia la mitad del almacenamiento de datos en disco para respaldo.
Cada noche (o en el momento que se establezca), la parte de datos de la
unidad 0 se copia a la parte de respaldo de la unidad 1 y viceversa.
• Día 1. Copiar en el soporte de copia de seguridad todos los archivos del disco.
Esto se denomina copia de seguridad completa.
• Día 2. Copiar en otro soporte físico todos los archivos que se hayan modificado
desde el día 1. Esta es una copia de seguridad incremental.
• Día 3. Copiar en otro soporte físico todos los archivos que se hayan modificado
desde el día 2.
• Día N. Copiar en otro soporte físico todos los archivos que se hayan modificado
desde el día N - 1. Después, volver al día 1.
Por supuesto, cuanto mayor sea el valor de N, más cintas o discos habrá que leer
para efectuar una restauración completa. Una ventaja adicional de este ciclo de
copia de seguridad es que podemos restaurar cualquier archivo que haya sido
borrado accidentalmente durante ese ciclo, extrayendo el archivo borrado de la
copia de seguridad del día anterior. La longitud del ciclo será un compromiso entre la
cantidad de soportes físicos de copia de seguridad requeridos y el número de días
pasados a partir de los cuales podamos realizar una restauración.
Para reducir el número de cintas que haya que leer para efectuar una restauración,
una opción consiste en realizar una copia de seguridad completa y luego copiar
cada día todos los archivos que hayan cambiado desde la última copia de seguridad
completa. De esta forma, puede realizarse la restauración utilizando sólo la copia de
seguridad incremental más reciente y la copia de seguridad completa, no
necesitándose ninguna otra copia de seguridad incremental.
Una posible falla es que el contador de enlaces sea mayor que el número de
entradas del directorio:
6. PROTECCIÓN Y SEGURIDAD
Objetivos
1.- Inicialmente protección del SO frente a usuarios poco confiables.
2.- Protección: control para que cada componente activo de un proceso solo pueda acceder
a los recursos especificados, y solo en forma congruente con la política establecida.
3.- La mejora de la protección implica también una mejora de la seguridad.
4.- Las políticas de uso se establecen:
Por el hardware.
Por el administrador / SO.
Por el usuario propietario del recurso.
5.- Principio de separación entre mecanismo y política:
Mecanismo → con que elementos (hardware y/o software) se realiza la protección.
Política → es el conjunto de decisiones que se toman para especificar como se usan
esos elementos de protección.
6.- La política puede variar
• Dependiendo de la aplicación,
• A lo largo del tiempo.
7.-La protección no solo es cuestión del administrador, sino también del usuario.
8.-El sistema de protección debe:
Control de acceso que hace referencia a las características de seguridad que controlan quien
puede obtener acceso a los recursos de un sistema operativo. Las aplicaciones llaman a las
funciones de control de acceso para establecer quien puede obtener acceso a los recursos
específicos o controlar el acceso a los recursos proporcionados por la aplicación.
Un sistema de protección deberá tener la flexibilidad suficiente para poder imponer una
diversidad de políticas y mecanismos.
Existen varios mecanismos que pueden usarse para asegurar los archivos, segmentos de
memoria, CPU, y otros recursos administrados por el Sistema Operativo.
Por ejemplo, el direccionamiento de memoria asegura que unos procesos puedan ejecutarse
solo dentro de sus propios espacios de dirección. El timer asegura que los procesos no
obtengan el control de la CPU en forma indefinida.
Mecanismos y Políticas
Tales políticas se pueden establecer de varias maneras, algunas en el diseño del sistema y
otras son formuladas por el administrador del sistema. Otras pueden ser definidas por los
usuarios individuales para proteger sus propios archivos y programas.
Las políticas son diversas, dependen de la aplicación y pueden estar sujetas a cambios a lo
largo del tiempo.
Un principio importante es la separación de políticas de los mecanismos. ‘Los mecanismos
determinan como algo se hará. Las políticas deciden que se hará'.
Dentro de las funciones del sistema de protección del sistema operativo encontramos:
• Controlar el acceso a los recursos
• Asegurarse que todos los accesos a los recursos del sistema están controlados.
Los derechos de acceso definen que acceso tienen varios sujetos sobre varios objetos. Los
sujetos a acceden a los objetos. Los objetos son entidades que contienen información.
Concretos:
Ej.: discos, cintas, procesadores, almacenamiento, etc.
Abstractos:
Ej.: estructuras de datos, de procesos, etc.
Los objetos están protegidos contra los sujetos. Las autorizaciones a un sistema se conceden
a los sujetos.
Los sujetos pueden ser varios tipos de entidades:
Ej.: usuarios, procesos, programas, otras entidades, etc.
Los derechos de acceso mas comunes son:
Acceso de lectura.
Acceso de escritura.
Acceso de ejecucion.
Dominios de protección
Un sistema de cómputos contiene muchos objetos que necesitan proteccion. Estos objetos
pueden ser el hardware, la CPU, los segmentos de memoria, terminales, unidades de disco o
impresoras; o bien ser del software, como los proceso, archivos, bases de datos o semáforos.
Cada objeto tiene un único nombre mediante el cual se la hace referencia y un conjunto de
operaciones que se pueden realizar en el. READ y WRITE son operaciones adecuadas para un
archivo; UP y DOWN tiene sentido en un semáforo.
Es evidente que se necesita una vía para prohibir el acceso de los procesos a los objetos a los
que no tiene permitido dicho acceso. Además, este mecanismo debe posibilitar la restricción
de los procesos a un subconjunto de operaciones legales en caso necesario. Por ejemplo,
puede permitirse que el proceso A lea el archivo F, pero no escriba en el.
Para tener una forma de analizar los distintos mecanismos de protección, es conveniente
presentar el concepto de dominio. Un dominio es un conjunto de parejas (objeto, derechos).
Cada pareja determina un objeto y cierto subconjunto de las operaciones que se pueden
llevar a cabo en él. Un derecho es, en este contexto, el permiso para realizar alguna de las
operaciones.
Una pregunta importante es la forma en que el sistema lleva un registro de los objetos que
pertenecen a un dominio dado. Al menos una teoría, uno puede imaginar una enorme
matriz, en la que los renglones son los dominios y las columnas son los objetos. Cada cuadro
contiene los derechos correspondientes al objeto en ese dominio. Con esta matriz y el
número de dominio activo, el sistema puede determinar si se permite el acceso de cierta
forma a un objeto dado desde un domino especifico.
Es posible que un objeto se encuentre en varios dominios con “distintos” derechos en cada
dominio.
Un proceso se ejecuta en alguno de los dominios de protección:
Los procesos pueden alternar entre los dominios durante la ejecución. Una llamada al S. O.
provoca una alternancia de dominio. En algunos S. O. los dominios se llaman anillos.
Una forma en la que el S. O. lleva un registro de los objetos que pertenecen a cada dominio
es mediante una matriz:
Matriz de acceso
El modelo de protección del sistema se puede ver en forma abstracta como una matriz, la
matriz de acceso.
Este modelo fue propuesto por Lampson como una descripción generalizada de mecanismos
de protección en sistemas operativos. Es el modelo más utilizado, del que existen numerosas
variaciones, especialmente en su implementación.
• Sujeto: Una entidad capaz de acceder a los objetos. En general, el concepto de sujeto es
equiparable con el de proceso. Cualquier usuario o aplicación consigue acceder en realidad a
un objeto por medio de un proceso que representa al usuario o a la aplicación.
• Objeto: Cualquier cosa cuyo acceso debe controlarse. Como ejemplo se incluyen los
archivos, partes de archivos, programas y segmentos de memoria.
• Derecho de acceso: la manera en que un sujeto accede a un objeto. Como ejemplo están
Leer, Escribir y Ejecutar.
El modelo considera un conjunto de recursos, denominados objetos, cuyo acceso debe ser
controlado y un conjunto de sujetos que acceden a dichos objetos. Existe también un
conjunto de permisos de acceso que especifica los diferentes permisos que los sujetos
pueden tener sobre los objetos (normalmente lectura, escritura, etc., aunque pueden ser
diferentes, en general, dependiendo de las operaciones que puedan realizarse con el
objeto).
Se trata de especificar para cada pareja (sujeto, objeto), los permisos de acceso que el sujeto
tiene sobre el objeto. Esto se representa mediante una matriz de acceso M que enfrenta
todos los sujetos con todos los objetos.
La protección se logra con la ayuda del núcleo del SO que valida los intentos de acceso a
recursos.
El gasto de inspeccionar y validar todos los intentos de acceso a todos los recursos es muy
grande, por lo tanto, debe ser apoyada por hardware. Al aumentar la complejidad del SO, se
deben refinar los mecanismos de protección. Los sistemas de protección, no solo se
preocupan de si puedo acceder a un recurso, sino también de cómo lo accedo, por lo tanto,
los diseñadores de aplicaciones deben protegerlos, y no solo el SO. Los diseñadores de
aplicaciones mediante herramientas de los lenguajes de programación pueden declarar la
protección junto con la tipificación de los datos.
Ventajas:
Las necesidades de protección se declaran sencillamente y no llamando
procedimientos del SO.
Las necesidades de protección pueden expresarse independientemente de los
recursos que ofrece el SO.
El diseñador no debe proporcionar mecanismos para hacer cumplir la protección.
Los privilegios de acceso están íntimamente relacionados con el tipo de datos que se
declara.
Las construcciones que permiten al programador declarar las restricciones tienen tres
operaciones básicas.
Protección en java 2
A medida que ha aumentado la complejidad de los sistemas operativos, sobre todo al trata
de ofrecer interfaces de más alto nivel con el usuario, lo objetivos de la protección se han
vuelto mucho más refinados. En esta refinación observamos que los diseñadores de los
diseñadores de los sistemas de protección se han apoyado mucho en ideas que se originaron
en los lenguajes de programación y especialmente en los conceptos de tipos de datos
abstractos y objetos. Los sistemas de protección ahora se ocupan no sólo de la identidad de
un recurso al cual se intenta acceder, sino también de la naturaleza funcional de ese acceso.
En los sistemas de protección más nuevos, el interés en la función que se invocará se
extiende más allá de un conjunto de funciones definidas por el sistema, como los métodos
de acceso a archivos estándar, para incluir funciones que también podrían ser definidas por
el usuario.
Las políticas para el uso de recursos también podrían variar, dependiendo de la aplicación, y
podrían cambiar con el tiempo. Por estas razones, la protección ya no puede considerarse
como un asunto que sólo concierne al diseñador de un sistema operativo; también debe
estar disponible como herramienta que el diseñador de aplicaciones pueda usar para
proteger los recursos de un subsistema de aplicación contra intervenciones o errores.
Una notación declarativa es natural porque los privilegios de acceso están íntimamente
relacionados con el concepto lingüístico de tipo de datos.
Hay diversas técnicas que una implementación de lenguaje de programación puede utilizar
para hacer cumplir la protección, pero cualquiera de ellas deberá depender hasta cierto
punto del grado de soporte de una máquina subyacente y su sistema operativo.
Los términos seguridad y protección se utilizan en forma indistinta. Sin embargo, es útil
hacer una distinción entre los problemas generales relativos a la garantía de que los archivos
no sea leídos o modificados por personal no autorizado, lo que incluye aspectos técnicos, de
administración, legales y políticos, por un lado y los sistemas específicos del sistema
operativo utilizados para proporcionar la seguridad, por el otro.
La seguridad tiene muchas facetas. Dos de las más importantes son la perdida de datos y los
intrusos. Algunas de las causas más comunes de la perdida de datos son:
• Errores Humanos: Entrada incorrecta de datos, mal montaje de las cintas o el disco,
ejecución incorrecta del programa, perdida de cintas o discos.
Un problema más interesante es que hacer con los intrusos. Estos tienen dos variedades. Los
intrusos pasivos solo desean leer archivos que no están autorizados a leer.
Desean hacer cambios no autorizados a los datos. Si se desea diseñar un sistema seguro
contra los intrusos, es importante tener en cuenta el tipo de intruso con el que se desea
tener protección.
Debe quedar claro que el intento por mantener la KGB lejos de los secretos militares es un
poco distinto del intento por evitar que los estudiantes inserten un mensaje gracioso en el
sistema. La cantidad de esfuerzo que alguien pone en la seguridad y la protección depende
claramente de quien se piensa sea el enemigo.
Para proteger un sistema, debemos optar las necesarias medidas de seguridad en cuatro
niveles distintos:
Físico.
El nodo o nodos que contengan los sistemas informáticos deben dotarse de medidas de
seguridad físicas frente a posibles intrusiones armadas o subrepticias por parte de
potenciales intrusos. Hay que dotar de seguridad tanto a las habitaciones donde las
maquinas residan como a los terminales o estaciones de trabajo que tengan acceso a dichas
maquinas.
Humano.
La autorización de los usuarios debe llevarse a cabo con cuidado, para garantizar que solo
los usuarios apropiados tengan acceso al sistema. Sin embargo, incluso los usuarios
autorizados pueden verse “motivados” para permitir que otros usen su acceso (por ejemplo,
a cambio de un soborno). También pueden ser engañados para permitir el acceso de otros,
mediante técnicas de ingeniería social.
Uno de los tipos de ataque basado en las técnicas de ingeniería social es el denominado
phishing; con este tipo de ataque, un correo electrónico o página web de aspecto autentico
llevan a engaño a un usuario para que introduzca información confidencial.
Sistema operativo. El sistema debe autoprotegerse frente a los diversos fallos de seguridad
accidentales o premeditados. Un problema que este fuera de control puede llegar a
constituir un ataque accidental de denegación de servicio. Asimismo, una cierta consulta a
un servicio podría conducir a la revelación de contraseñas o un desbordamiento de la pila
podría permitir que se iniciara un proceso no autorizado. La lista de posibles fallos es casi
infinita.
Red. Son muchos los datos en los modernos sistemas informáticos que viajen a través de
líneas arrendadas privadas, de líneas compartidas como Internet, de conexiones
inalámbricas o de líneas de acceso telefónico.
La interceptación de estos datos podría ser tan dañina como el acceso a un computador, y la
interrupción en la comunicación podría constituir un ataque remoto de denegación de
servicio, disminuyendo la capacidad de uso del sistema y la confianza en el mismo por parte
de los usuarios.
Así, la frase que afirma que una cadena es tan fuerte como el más débil de sus eslabones es
especialmente cierta cuando hablamos de seguridad de los sistemas. Para poder mantener
la seguridad, debemos contemplar todos estos aspectos.
Seguridad Externa
La seguridad externa consiste en:
Seguridad física.
Seguridad operacional.
La seguridad física incluye:
Protección contra desastres (como inundaciones, incendios, etc.).
Protección contra intrusos.
En la seguridad física son importantes los mecanismos de detección , algunos
ejemplos son:
Detectores de humo.
Sensores de calor.
Detectores de movimiento.
La protección contra desastres puede ser costosa y frecuentemente no se analiza en detalle;
depende en gran medida de las consecuencias de la perdida.
No es necesario que se conozca la totalidad del sistema para cumplir con esas
responsabilidades.
Para poder comprometer al sistema puede ser necesaria la cooperación entre muchas
personas:
Identificar cada usuario que está trabajando en el sistema (usando los recursos).
Uso de contraseñas.
Vulnerabilidad de contraseñas.
Las clases de elementos de autentificación para establecer la identidad de una persona son:
El usuario elige una palabra clave, la memoriza, la teclea para ser admitido en el sistema
computarizado:
Estos datos podrían ser conocidos por quien intente una violación a la seguridad mediante
intentos repetidos, por lo tanto, debe limitarse la cantidad de intentos fallidos de acierto
para el ingreso de la contraseña.
Tampoco debe ser muy larga para que no se dificulte su memorización, ya que los usuarios
la anotarían por miedo a no recordarla y ello incrementaría los riesgos de que trascienda.
• Si alguien “roba una contraseña”, el verdadero usuario se dará cuenta cuando vaya a
identificarse de nuevo, pues el impostor habrá cambiado la contraseña, con lo que el fallo de
seguridad queda detectado.
Verificación de Amenazas
Es una técnica según la cual los usuarios no pueden tener acceso directo a un recurso:
El acceso lo hace un programa de vigilancia que luego pasa los resultados al programa del
usuario.
Permite:
Detectar los intentos de penetración en el momento en que se producen.
Advertir en consecuencia.
Amenazas relacionadas con los programas
Los procesos son junto con el kernel, el único medio de realizar un trabajo útil
en una computadora. Por tanto, un objetivo común de los piratas informáticos consiste en
escribir un programa que cree una brecha de seguridad. De hecho, las mayorías de las
brechas de seguridad no relacionadas con programas tienen por objetivos crear una brecha
que si está basada en un programa.
Por ejemplo, aunque resulta útil iniciar una sesión en un sistema sin autorización,
normalmente es mucho más útil dejar un demonio de tipo puerta trasera que proporcione
información o que permita un fácil acceso incluso aunque se bloquee la brecha de seguridad
original.
En esta sección, vamos a describir algunos métodos comunes mediante los cuales los
programas pueden provocar brechas de seguridad. Hay que resaltar que existe una
considerable variación en lo que respecta a los convenios de denominación de los agujeros
de seguridad, y que en este texto utilizamos los términos más comunes o descriptivos.
6.8. Cifrado.
Existen muchas defensas frente a los ataques informáticos, que abarcan toda la gama que va
desde la metodología a la tecnología. La herramienta de carácter más general que está a
disposición de los usuarios y de los diseñadores de sistemas es la criptografía. En esta
sección vamos a explicar algunos detalles acerca de la criptografía y de su uso en el campo
de la seguridad informática.
Comúnmente, se utilizan las direcciones de red para inferir los emisores y receptores
potenciales de los mensajes que circulan por la red. Los paquetes de red llegan con una
dirección de origen, como por ejemplo una dirección IP.
Y cuando una computadora envía mensajes, indica quinen es el receptor pretendido del
mismo especificando una dirección de destino.
Sin embargo, para aquellas aplicaciones en que la seguridad tenga importancia, correríamos
el riesgo de meternos en problemas si asumiéramos que la dirección de origen o de destino
de un paquete permite determinar con fiabilidad quien ha enviado o recibido dicho paquete.
Una computadora maliciosa podría enviar un mensaje con una dirección de origen
falsificada y, asimismo, otras muchas computadoras distintas de la especificada por la
dirección de destino podrían (y normalmente hacen) recibir un paquete. Por ejemplo, todos
los encaminadores ubicados en la ruta hacia el destino recibirán también el paquete.
¿Cómo puede, entonces, decidir el sistema operativo si debe conceder una solicitud, cuando
no puede confiar en el origen especificado en dicha solicitud? y como se supone que debe
proporcionar protección para una solicitud o para un conjunto de datos, cuando no puede
determinar quién recibirá la respuesta o el contenido del mensaje que envié a través de la
red?
Generalmente, se considera impracticable construir una red (de cualquier tamaño) en la que
se pueda “confiar” en este sentido en las direcciones de origen y destino de los paquetes.
Por tanto, la única alternativa es eliminar, de alguna manera, la necesidad de confiar en la
red; este es el trabajo de la criptografía.
Desde un punto de vista abstracto, la criptografía se utiliza para restringir los emisores y/o
receptores potenciales de un mensaje.
que esa clave se convierte en el destino. Sin embargo, a diferencia de las direcciones de red,
las claves están diseñadas de modo que no sea computacionalmente factible calcularlas a
partir de los mensajes que se hayan generado con ellas, ni a partir de ninguna otra
información pública. Por tanto, las claves proporcionan un medio mucho más fiable de
restringir los emisores y receptores de los mensajes. Observe que la criptografía es un
campo de estudio completo por derecho propio, con una gran complejidad; aquí, vamos a
explorar únicamente los aspectos más importantes de aquellas partes de la criptografía que
se relacionan con los sistemas operativos.
El remitente pasa el texto a una unidad de encriptación que transforma el texto a un texto
cifrado o criptograma; el mismo no es entendible por el intruso. El mensaje es transmitido
entonces, sobre un canal seguro. Al finalizar la recepción el texto cifrado pasa a una unidad
de descripción que regenera el texto.
Criptoanálisis
Criptoanálisis es el proceso de intentar regenerar el mensaje desde el texto cifrado, pero sin
conocimiento de las claves de encriptación.
Cesar
Esta técnica consistía simplemente en sustituir una letra por la situada tres lugares mas alla
en el alfabeto esto es la A se transformaba en D, la B en E y asi sucesivamente hasta que la Z
se convertía en C.
GRONSFELD
Este método utiliza más de un alfabeto cifrado para poner en clave el mensaje y que se
cambia de uno a otro según se pasa de una letra del texto en claro a otra.
Es decir que deben tenerse un conjunto de alfabetos cifrados y una forma de hacer
corresponder cada letra del texto original con uno de ellos.
RSA
En los sistemas tradicionales de cifrado debe comunicarse una clave entre el emisor y el
receptor del mensaje, el problema aquí es encontrar un canal seguro para transmitir dicha
clave. Este problema viene a resolverse en los sistemas de clave publica la clave de cifrado,
pues un tiempo enormemente de ordenador es necesario para encontrar una
transformación de descifrado a partir de la de cifrado.
DES
DES fue desarrollado por IBM a mediados de los setenta. Aunque tiene un buen diseño, su
tamaño de clave de 56 bits es demasiado pequeño para los patrones de hoy.
Esta técnica propuesta por Donald Rivest. Es más, un intento de esquivar las restricciones a
la criptografía en EE.UU. (y otros países) que una propuesta razonable debido al tamaño de
los mensajes resultantes.
El termino inglés “winnowing” se tomará como aventar es decir separar el grano de la paja y
el término “chaffing” por el castellano empajar (cubrir o rellenar con paja). La idea básica
consiste en mezclar la información real (grano) con otra de relleno (paja) de modo que sea
imposible separarlas excepto para el destinatario.
SKIPJACK
Este algoritmo fue descalificado por el gobierno de Estados Unidos. Algunos detalles sobre el
algoritmo en sí y sus aplicaciones en la práctica a los chips Clipper y Capstone.
Skipjack fue desarrollado por la NSA inicialmente para los chips Clipper y Capstone. Su
diseño comenzó en 1985 y se completó su evaluación en 1990.
BIFIDO
El método Bifido es un cifrado fraccionario. Es decir que cada letra viene representada por
una o más letras o símbolos, y donde se trabaja con estos símbolos más que con las letras
mismas.
WLBYKYAAOTB
Este método altera la frecuencia de los caracteres a diferencia de lo que ocurre por ejemplo
con los cifrados monos alfabéticos. Admite algunas variaciones como por ejemplo dividir la
lista en 3, 4, ..., n partes.
Cifrado exponencial
Blowfish
Este algoritmo realiza un cifrado simple en 16 ciclos, con un tamaño de bloque de 64 bytes
para un total de 448 bits. Aunque hay una fase compleja de la inicialización. El cifrado de
datos es muy eficiente en los microprocesadores grandes.
7.REFERENCIAS:
- http://itpn.mx/recursosisc/3semestre/sistemasoperativos/Unidad%20II.pdf
- https://www.areatecnologia.com/sistemasoperativos.htm#
%C2%BFQue_es_el_Sistema_Operativo
- https://www.tecnologia-informatica.com/el-sistema-operativo/
- https://www.academia.edu/6474977/TEMA_2_PROCESOS_Y_ADMINISTRA
CION_D EL_PROCESADOR
- https://sites.google.com/site/materiasisoperativo/unidad -3-administracion-de-
lamemoria/3-2-memoria-real
- https://www.udg.co.cu/cmap/sistemas_operativos/administracion_memoria/ad
m inistracion_memoria/administracion_memoria.html
- https://www.dc.fi.udc.es/~so-grado/SO-Memoria.pdf
- http://itpn.mx/recursositics/6semestre/sistemasoperativos1/Unidad%20V.pdf
- https://www.xataka.com/basics/sistemas-de-archivo-como-saber-cual-elegir-
al-formatear-tu-disco-duro-o-usb
- https://support.microsoft.com/es-mx/help/100108/overview-of-fat-hpfs-and-
ntfs-file-systems
- https://www.exabyteinformatica.com/uoc/Informatica/Estructura_de_computad
ores/Estructura_de_computadores_(Modulo_5).pdf
- https://laurel.datsi.fi.upm.es/_media/docencia/asignaturas/dso/entrada-
salida_09-4pp.pdf
- https://sites.google.com/site/materiasisoperativo/unidad -3-administracion-de-
lamemoria/3-2-memoria-real
- https://www.udg.co.cu/cmap/sistemas_operativos/administracion_memoria/ad
m inistracion_memoria/administracion_memoria.html
- https://www.dc.fi.udc.es/~so-grado/SO-Memoria.pdf
- http://itpn.mx/recursositics/6semestre/sistemasoperativos1/Unidad%20V.pdf
- https://www.xataka.com/basics/sistemas-de-archivo-como-saber-cual-elegir-
al-formatear-tu-disco-duro-o-usb
- https://support.microsoft.com/es-mx/help/100108/overview-of-fat-hpfs-and-
ntfs-file-systems