Download Diapositiva 1 - Docencia FCA-UNAM

Document related concepts

Sistema de archivos wikipedia , lookup

Archivo (informática) wikipedia , lookup

Desfragmentación wikipedia , lookup

Registro de Windows wikipedia , lookup

Proceso de arranque en Linux wikipedia , lookup

Transcript
IV. SISTEMAS OPERATIVOS.
Concepto de un sistema operativo.
Un sistema operativo (SO) es el programa o conjunto de
programas que efectúan la gestión de los procesos básicos
de un sistema informático, y permite la normal ejecución
del resto de las operaciones.
Concepto de un sistema operativo.
Capacidad de
evolución
Archivo de mandatos
Obteniendo
un buen
rendimiento
y
Simplificando
su uso
Permite el dialogo del
usuario con el sistema
a la explotación de
una computadora
Operaciones sobre
archivos. Creación,
borrado, renombrado,
apertura, escritura y
lectura.
Ejecución de
Mandatos
Que ayudan a
los
usuarios
Detección y tratamiento
de errores. De E/S, de
paridad en memoria o
buses, de ejecución en
los programas
Interactivamente
Programas
Conjunto de
Niveles de
SOM
Usuarios
Programas de
usuario
Órdenes de E/S.
Operaciones de lectura,
escritura y modificación
del estado de los
periféricos.
Sistema
Operativo
Multiusuario
(SOM)
Ejecutar, parar y
abortar programas
Shell
Servicios
Ejecución de
Servicios
Núcleo
Administración
Hardware
Contabilidad de los recursos
que usan los programas.
Asignar los recursos
a los programas en ejecución.
Asegurar que unos trabajos
no interfieran con otros.
Asegurar la confidencialidad
de la información.
Estructura de los Sistemas Operativos.
Como gestor de recursos, el Sistema Operativo administra:
•La CPU (Unidad Central de Proceso, donde está alojado el
microprocesador).
•Los dispositivos de E/S (entrada y salida)
•La memoria principal (o de acceso directo).
•Los discos (o memoria secundaria).
•Los procesos (o programas en ejecución).
y en general todos los recursos del sistema
Procesos de un sistema operativo.
Un proceso es un programa en ejecución que necesita
recursos para realizar su tarea: tiempo de CPU, memoria,
archivos y dispositivos de E/S. El SO es el responsable de:
•Crear y destruir los procesos.
•Parar y reanudar los procesos.
•Ofrecer mecanismos para que se comuniquen y sincronicen
Procesos de un sistema operativo.
Registros
Contador
de
programa
conteniendo
Variables
Es un algoritmo que define claramente
el comportamiento de los procesos,
con sus estados, colas de espera y
pautas de Intercalado pudiendo usar
prioridades para la asignación de
recursos
de 2 estados
de 5 estados
de 7 estados
de n estados
el sistema
operativo
en
ejecución
gestionada por
Unidad de
procesamiento
de proceso (único)
Modelos
de
Procesos
Programa
un
Subsistema
del núcleo
del proceso padre
del usuario
Identificadores
de Procesos
Procesos
Relación
entre los
procesos
Despachador
Sus
creados
(hijos)
Jerarquía
Función
Creando
grupos
(árboles)
Basados en
Colas
y
Lista de
Procesos
su creador
(padre)
Esperando
un recurso
Prioridades
Recorrer la cola
de procesos y
Planificar la ejecución
de uno de ellos
Importancia
asignada a
un proceso
Se usa para
Seleccionar
su asignación
de recursos
Concepto de Hilos.
• En sistemas operativos, un hilo de ejecución, hebra o
subproceso es la unidad de procesamiento más pequeña
que puede ser planificada por un sistema operativo.
• Un hilo es una característica que permite a una aplicación
realizar varias tareas a la vez (concurrentemente).
• Los distintos hilos de ejecución comparten una serie de
recursos tales como el espacio de memoria, los archivos
abiertos, situación de autenticación, etc. Esta técnica
permite simplificar el diseño de una aplicación que debe
llevar a cabo distintas funciones simultáneamente.
Sincronización de procesos.
Un sistema operativo multitarea permite que coexistan y
sincronicen varios procesos activos a la vez, ejecutando
todos ellos de forma concurrente.
Existen tres modelos de computadora en los que se pueden
ejecutar procesos concurrentes o paralelos, son: la
multiprogramación, el multiprocesador y la
multicomputadora.
Bloqueos.
Inter bloqueos de procesos (deadlock).
Existe una situación de interbloqueos cuando las
necesidades de recursos de algunos procesos entran en
conflicto entre sí causando que estos se bloqueen
indefinidamente.
.
La gestión de Entrada/Salida.
• Consiste en un sistema de almacenamiento temporal
(caché), una interfaz de manejadores de dispositivos y
otra para dispositivos concretos.
•
El sistema operativo debe gestionar el almacenamiento
temporal de E/S y servir las interrupciones de los
dispositivos de E/S.
Sistemas Operativos ( PCs ) (Microsoft Windows)
Sistemas Operativos ( PCs ) (Mac OS)
Mac OS (del inglés Macintosh Operating System, en
español Sistema Operativo de Macintosh) es el nombre del
sistema operativo creado por Apple para su línea de
computadoras Macintosh. Es conocido por haber sido el
primer sistema dirigido al gran público en contar con una
interfaz gráfica compuesta por la interacción del mouse con
ventanas, Icono y menús.
Sistemas Operativos ( PCs ) (Linux)
En 1991, Linus Torvalds empezó a escribir el núcleo Linux y
decidió distribuirlo bajo la licencia GPL (licencia general
Pública). Rápidamente, múltiples programadores se unieron
a Linux en el desarrollo, colaborando a través de Internet
y consiguiendo paulatinamente que Linux llegase a ser un
núcleo compatible con UNIX. En 1992, el núcleo Linux fue
combinado con el sistema GNU, resultando en un sistema
operativo libre y completamente funcional. El Sistema
Operativo formado por esta combinación es usualmente
conocido como "GNU/Linux" o como una "distribución Linux"
y existen diversas variantes.
Sistemas Operativos ( PCs ) (AmigaOS)
Fue desarrollado originalmente por Commodore
International, e inicialmente presentado en 1985 junto con
el Amiga 1000. Comenzó a funcionar en un microprocesador
de la serie Motorola de la familia 68k (68000, 68010,
68020, 68030, 68040 y 68060) de 32-bit, excepto el
AmigaOS 4 que funciona sólo en los microprocesadores
PowerPC.
Sistemas Operativos Dispositivos Móviles (Symbian)
Es un sistema operativo que fue producto de la alianza de
varias empresas de telefonía móvil, entre las que se
encuentran Nokia, Sony Ericsson, Psion, Samsung, Siemens,
Arima, Benq, Fujitsu, Lenovo, LG, Motorola, Mitsubishi
Electric, Panasonic, Sharp, etc. Sus orígenes provienen de
su antepasado EPOC32, utilizado en PDA's y Handhelds de
PSION.
El objetivo de Symbian fue crear un sistema operativo para
terminales móviles que pudiera competir con el de Palm o el
Windows Phone de Microsoft y ahora Android de Google
Inc., iOS de Apple Inc. y BlackBerry OS.
Sistemas Operativos Dispositivos Móviles (android)
Android es un sistema operativo basado en el núcleo Linux
diseñado originalmente para dispositivos móviles, tales como
teléfonos inteligentes, pero que posteriormente se expandió
su desarrollo para soportar otros dispositivos tales como
tablet, reproductores MP3, netbook, PC, televisores,
lectores de e-book e incluso, se han llegado a ver en el
CES, microondas y lavadoras
Sistemas Operativos Dispositivos Móviles (iOS)
iOS1 (anteriormente denominado iPhone OS) es un sistema
operativo móvil de Apple desarrollado originalmente para el
iPhone, siendo después usado en todos los dispositivos
iPhone, iPod Touch e iPad. Es un derivado de Mac OS X,
que a su vez está basado en Darwin BSD. El iOS tiene 4
capas de abstracción: la capa del núcleo del sistema
operativo, la capa de "Servicios Principales", la capa de
"Medios de comunicación" y la capa de "Cocoa Touch". Todo
el sistema se encuentra en la partición "/root" del
dispositivo, ocupa poco menos de 500 megabytes
Sistemas Operativos Dispositivos Móviles
(Windows Mobile)
Windows Phone, anteriormente llamado Windows Mobile es
un sistema operativo móvil compacto desarrollado por
Microsoft, y diseñado para su uso en teléfonos inteligentes
(Smartphones) y otros dispositivos móviles. Windows Phone
hace parte de los sistemas operativos con interfaz natural
de usuario
Que son los archivos
Los archivos son colecciones de información relacionada,
definidas por sus creadores. Éstos almacenan programas (en
código fuente y objeto) y datos tales como imágenes, textos,
información de bases de datos, etc.
El SO es responsable de:
• Construir y eliminar archivos y directorios.
• Ofrecer funciones para manipular archivos y directorios.
•Establecer la correspondencia entre archivos y unidades de
almacenamiento.
• Realizar copias de seguridad de archivos.
Sistemas de Archivos
Son las diferentes formas de organizar la información que se almacena
en las memorias (normalmente discos) de las computadoras.
Por ejemplo, existen los sistemas de archivos FAT (Tabla de asignación
de archivos, comúnmente conocido como FAT (file allocation table de
Windows), FAT32, EXT3 (third extended filesystem o tercer sistema de
archivos extendido ) es un sistema de archivos de Linux , NTFS (New
Technology File System) es un sistema de archivos de Windows NT
incluido en las versiones de Windows 2000, Windows XP, Windows
Server 2003, Windows Server 2008, Windows Vista, Windows 7 y
Windows 8, XFS es un sistema de archivos de 64 bits con journaling
(registro de transacciones por diario) de alto rendimiento creado por
SGI (antiguamente Silicon Graphics Inc.) para su implementación de
UNIX llamada IRIX. En mayo de 2000, SGI liberó XFS bajo una licencia
de código abierto.
Sistemas de Archivos, diferencias
Desde el punto de vista del usuario estas diferencias pueden parecer
insignificantes a primera vista, sin embargo, existen diferencias muy
importantes.
Por ejemplo, los sistemas de ficheros FAT32 y NTFS, que se utilizan
fundamentalmente en sistemas operativos de Microsoft, tienen una
gran diferencia para un usuario que utilice una base de datos con
bastante información ya que el tamaño máximo de un archivo con un
sistema de archivos FAT32 está limitado a 4 gigabytes, sin embargo, en
un sistema NTFS el tamaño es considerablemente mayor.
Conceptos básicos de archivos.
Todos los sistemas proporcionan una unidad de almacenamiento lógico, que oculta los detalles
del sistema físico de almacenamiento denominada archivo.
Un archivo es una unidad de almacenamiento lógico no volátil o permanente que agrupa un
conjunto de información relacionada entre sí bajo el mismo nombre.
El sistema de administración de archivos es el software que crea, elimina, modifica y controla
el acceso a los archivos (además de administrar los recursos utilizados por los archivos).
El administrador de archivos está a cargo de los componentes físicos del sistema, sus recursos
de información y de las políticas que se usan para almacenar y distribuir los archivos. A fin de
desempeñar sus funciones, tiene que ejecutar estas cuatro tareas:
a) Llevar el control de donde se almacena cada archivo.
b) Utilizar una política que determine donde y como se almacenaran los archivos, asegurando
el uso eficiente del espacio de almacenamiento disponible y proporcionando un acceso
eficiente a los archivos.
c) Asignar cada archivo cuando se ha aceptado el acceso de un usuario al mismo y registrar su
uso.
d) Desasignar el archivo cuando éste es devuelto a almacenamiento y comunicar su
disponibilidad a otros interesados que pudieran estar esperándolo.
Conceptos básicos de archivos.
Algunas definiciones importantes:
Campo. Es un número de bytes relacionados que puede identificar el usuario mediante un
nombre, tipo y tamaño.
Registro. Un grupo de campos relacionados.
Archivo. Es un grupo de registros relacionados que contienen información utilizada por un
programa de aplicación específica para generar informes. Este tipo de archivo contiene datos y
a veces se conoce como archivo plano, ya que o contiene conexiones con otro archivo; a
diferencia de las base de datos, carece de dimensionalidad.
Base de datos. Para el administrador de archivos es un tipo de archivo, pero resultan más
complicadas porque son grupos de archivos relacionados interconectados en diversos niveles,
para dar a los usuarios flexibilidad de acceso a los datos almacenados. Si la base de datos del
usuario requiere una estructura específica, el administrador de archivos debe ser capaz de
aceptarla.
Archivos programa. Contienen instrucciones.
Archivos de datos. Contienen datos.
Conceptos básicos de archivos.
Directorios. Son listados de nombres de archivos y sus atributos y el administrador de archivos los maneja
como archivos.
Directorios y nombres de archivos. Los directorios son agrupaciones lógicas de archivo que siguen criterios
definidos por sus creadores o manipuladores, a la vez es un mecanismo que permite al usuario estructurar
el acceso a los archivos.
El directorio tiene información sobre los archivos, incluyendo atributos, ubicación y propietario. Gran
parte de esta información, especialmente la relativa al almacenamiento, la gestiona el sistema operativo.
El directorio es propiamente un archivo, poseído por el sistema operativo y accesible a través de diversas
rutinas de gestión de archivos.
Las operaciones que se pueden hacer con un directorio son:
a) Buscar. Cuando un usuario o aplicación referencia un archivo, debe buscarse en el directorio la entrada
correspondiente.
b) Crear archivo. Al crear un nuevo archivo, debe añadirse una entrada al directorio.
c) Borrar archivo. Al borrar un archivo, debe eliminarse una entrada del directorio.
d) Listar directorio. Puede solicitarse todo el directorio o una parte. Por lo general esta petición la hace un
usuario y el resultado es una lista de todos los archivos poseídos por dicho usuario, junto a algunos de los
atributos de cada archivo.
Almacenamiento de archivos
Modo Texto: en este caso los datos son almacenados usando Ascii
y por tanto son plenamente visibles usando cualquier editor.
Modo Binario: en este caso los datos son almacenados en notación
hexadecimal y por tanto se ocupa un editor binario para
reconocerlos, sin embargo un archivo binario es mas compacto
que un archivo texto.
Dirección y nombre de archivo.
Todo objeto archivo debe tener un nombre a través del que se pueda acceder. Por
ello, todos los sistemas operativos proporcionan mecanismos de nombrado que
permiten asignar un nombre a un archivo en el momento de su creación. Este
nombre acompañara al objeto mientras exista y le identificará de forma única.
Cada sistema operativo tiene sus propias características para nombrar a los archivos.
Por ejemplo en el sistema UNIX los nombres de los archivo pueden ser de hasta
4,096 caracteres y distinguen entre mayúsculas y minúsculas, mientras en el MSDOS
el máximo tamaño de un nombre de archivo es de ocho caracteres y no distingue
entre mayúsculas y minúsculas.
Una parte del nombre de archivo es la extensión del nombre.
La dirección es una ruta o la forma de referenciar un archivo informático o directorio
en un sistema de archivos de un sistema operativo determinado. Una ruta señala la
localización exacta de un archivo o directorio mediante una cadena de caracteres
concreta.
Permisos de los archivos..
Son los derechos o permisos de acceso a los archivos.
El sistema operativo debe ofrecer una herramienta flexible para permitir la
compartición general de archivos entre los usuarios, así como un conjunto de
opciones de forma que se pueda controlar la manera en que se accede cada archivo
en particular. Normalmente a cada usuario i grupo de usuarios le son concedidos
ciertos derechos o permisos de acceso a cada archivo. La lista siguiente es
representativa de los permisos de acceso que pueden asignarse a un usuario
particular para un archivo específico:
a) Ninguno. El usuario no puede ni siquiera conocer la existencia del archivo, ni
mucho menos acceder al mismo. Para aplicar esta restricción, no se permite al
usuario leer el directorio de usuario que incluya el archivo.
b) Conocimiento. El usuario puede determinar que el archivo existe y quien es su
propietario. El usuario es capaz de solicitar derechos de acceso adicionales al
propietario.
c) Ejecución. El usuario puede cargar y ejecutar un programa, pero no puede
copiarlo. Los programas comerciales se hacen a menudo accesibles con esta
restricción.
Permisos de los archivos..
d) Lectura. El usuario puede leer el archivo para cualquier propósito, incluyendo copia y
ejecución. Algunos sistemas son capaces de hacer valer la distinción entre visualizar y copiar.
En el primer caso, el contenido del archivo puede mostrarse al usuario, pero este no tiene
medios para hacer una copia.
e) Adición. El usuario puede añadir datos al archivo, generalmente al final, pero no puede
modificar ni borrar el contenido del mismo. Este derecho es útil en la recopilación de datos a
partir de un conjunto de fuentes.
f) Actualización. El usuario puede modificar, borrar y añadir datos al archivo. La actualización
incluye generalmente la escritura del archivo al principio, la reescritura por completo o en
parte y la eliminación de todos los datos o parte de ellos. Algunos sistemas tiene varios grados
de actualización.
g) Cambio de protección. El usuario puede cambiar los derechos de acceso otorgados a otros
usuarios. Normalmente este derecho es detentado solo por el propietario. En algunos
sistemas, el propietario puede otorgar este derecho a otros usuarios. Para evitar el abuso de
este mecanismo, el propietario del archivo es normalmente capaz de especificar qué derechos
pueden ser cambiados por el poseedor de este derecho.
i) Borrado. El usuario puede borrar el archivo del sistema de archivos.
Puede considerarse que estos derechos constituyen una jerarquía, con cada uno incluyendo a
todos los que le preceden.
Permisos de los archivos.. en Linux
En Linux, todo archivo y directorio tiene tres niveles de permisos de acceso: los que
se aplican al propietario del archivo, los que se aplican al grupo que tiene el archivo y
los que se aplican a todos los usuarios del sistema. Podemos ver los permisos cuando
listamos un directorio con ls -l:
Explicación:
En Linux, La primera columna (-rwxrwxr--) es el tipo de archivo y sus permisos, la
siguiente columna (1) es el número de enlaces al archivo, la tercera columna (sergio)
representa al propietario del archivo, la cuarta columna (ventas) representa al grupo
al que pertence al archivo y las siguientes son el tamaño, la fecha y hora de última
modificación y por último el nombre del archivo o directorio.
Permisos de los archivos.. en Linux
El primer caracter al extremo izquierdo, representa el tipo de archivo, los posibles
valores para esta posición son los siguientes:
- un guión representa un archivo comun (de texto, html, mp3, jpg, etc.)
d representa un directorio
l link, es decir un enlace o acceso directo
b binario, un archivo generalmente ejecutable
Los siguientes 9 restantes, representan los permisos del archivo y deben verse en
grupos de 3.
Permisos de los archivos.. en Linux
Los tres primeros representan los permisos para el propietario del archivo. Los tres
siguientes son los permisos para el grupo del archivo y los tres últimos son los
permisos para el resto del mundo o otros.
rwx
rwx rwx
usuario grupo otros
En cuanto a las letras, su significado son los siguientes:
r read - lectura
w write - escritura (en archivos: permiso de modificar, en directorios: permiso de
crear archivos en el dir.)
x execution - ejecución
Permisos de los archivos.. en Linux
Las nueve posiciones de permisos son en realidad un bit que o esta encendido
(mostrado con su letra correspondiente) o esta apagado (mostrado con un guión -),
asi que, por ejemplo, permisos como rwxrw-r--, indicaría que los permisos del
propietario (rwx) puede leer, escribir y ejecutar el archivo, el grupo (o sea los
usuarios que esten en mismo grupo del archivo) (rw-) podrá leer y escribir pero no
ejecutar el archivo, y cualquier otro usuario del sistema (r--), solo podrá leer el
archivo, ya que los otros dos bits de lectura y ejecucción no se encuentran
encendidos o activados.
Permisos de los archivos..
d) Lectura. El usuario puede leer el archivo para cualquier propósito, incluyendo copia y
ejecución. Algunos sistemas son capaces de hacer valer la distinción entre visualizar y copiar.
En el primer caso, el contenido del archivo puede mostrarse al usuario, pero este no tiene
medios para hacer una copia.
e) Adición. El usuario puede añadir datos al archivo, generalmente al final, pero no puede
modificar ni borrar el contenido del mismo. Este derecho es útil en la recopilación de datos a
partir de un conjunto de fuentes.
f) Actualización. El usuario puede modificar, borrar y añadir datos al archivo. La actualización
incluye generalmente la escritura del archivo al principio, la reescritura por completo o en
parte y la eliminación de todos los datos o parte de ellos. Algunos sistemas tiene varios grados
de actualización.
g) Cambio de protección. El usuario puede cambiar los derechos de acceso otorgados a otros
usuarios. Normalmente este derecho es detentado solo por el propietario. En algunos
sistemas, el propietario puede otorgar este derecho a otros usuarios. Para evitar el abuso de
este mecanismo, el propietario del archivo es normalmente capaz de especificar qué derechos
pueden ser cambiados por el poseedor de este derecho.
i) Borrado. El usuario puede borrar el archivo del sistema de archivos.
Puede considerarse que estos derechos constituyen una jerarquía, con cada uno incluyendo a
todos los que le preceden.
Los nodos-i de UNIX.
Contiene información acerca del propietario del archivo, de su grupo, el modo de
protección aplicable al archivo, del número de enlaces al archivo, de valores de
fechas de creación y actualización, el tamaño del archivo y el tipo del mismo.
Además incluye un mapa del archivo mediante apuntadores a bloques de
dispositivo que contienen datos del archivo.
A través del mapa de bloques del nodo-i se puede acceder a cualquiera de sus
bloques con un número muy pequeño de accesos a disco.
Jerarquía de directorios.
Existe un directorio maestro que contiene un número determinado de directorios de usuario.
Cada uno de estos directorios puede tener a su vez subdirectorios y archivos como entradas.
Esto se cumple en cualquier nivel, es decir, en cualquier nivel un directorio puede constar de
entradas para subdirectorios y/o entradas para archivos.
Copias de respaldo y compresión de archivos. .
Consiste en asegurar que los datos no se pierdan en caso de una falla.
Para esto podemos emplear programas de sistema para respaldar
datos del disco a otro dispositivo de almacenamiento, como un disco
flexible, una cinta magnética o un disco óptico.
La recuperación de la pérdida de un archivo individual, o de todo un
disco, puede implicar simplemente restablecer los datos a partir del
respaldo.
Mantenimiento al sistema de archivos.
Gestión del Espacio Libre .- Es la Administración del espacio que no
queda asignado. Las técnicas más usadas son:
· Tablas de Bits: Utiliza un vector que contiene un bit por cada bloque
del disco.
· Secciones libres encadenadas: Se encadenan juntas mediante un
puntero y un valor de longitud en cada sección libre.
· Indexación Trata el espacio libre como si fuera un archivo y utiliza
una tabla índice trabajando con secciones de tamaño variable mejor
que con bloques, obteniendo una entrada en la tabla para cada
sección libre del disco.
Que es seguridad ?
La seguridad en Sistemas Operativos es el
nombre genérico y los mecanismos que
permiten la descripción y utilización de
herramientas diseñadas con el fin de
proteger los datos y evitar los robos en la
información.
Seguridad en Sistema Operativo y en Red?
La seguridad de red son las medidas necesarias para
proteger datos durante la transmisión de datos en sistemas
distribuidos y el uso de redes y dispositivos de
comunicaciones.
La seguridad de SOM y red incluye tres requisitos:
a. Secreto. Que la información en un sistema computacional
sea accesible para lectura sólo por partes autorizadas.
b. Integridad. Que el contenido puedan modificarlo sólo las
partes autorizadas.
c. Disponibilidad. Que el contenido esté disponible para las
partes autorizadas.
Protección de Memoria
Permite mantener el
funcionamiento correcto de los
diversos procesos que están
activos.
Autentificación
Es una medida que se toma para
controlar el acceso al usuario en un
sistema de procesamiento de
datos.
Contraseñas
El uso de contraseñas es una
medida de control de acceso por el
usuario en un sistema de tiempo
compartido. Es el inicio de una
sesión por el usuario, el cual
requiere un identificador de
usuario (login) y una contraseña.
encriptamiento
Se basa en dos componentes:
un algoritmo y dos llaves (para el emisor y el
receptor respectivamente).
Un algoritmo criptográfico es una función
matemática que combina texto simple u otra
información inteligible con una cadena de dígitos,
llamada llave, para producir texto codificado
ininteligible.
Métodos de encriptamiento
Los métodos de encriptación pueden dividirse en dos
grandes grupos:
Clave secreta (simétrica).
Clave pública (asimétrica).
Clave simétrica
Características:
• Clave privada
• Emisor y receptor comparten la misma clave
Emisor
cifrado
Receptor
descifrado
45
Clave simétrica
Algoritmos:
• DES, 3DES, RC5, IDEA, AES
• Requisitos:
– Del texto cifrado no podrá extraerse ni el mensaje en claro ni
la clave
– Conocidos el texto en claro y el texto cifrado debe ser más
costoso en tiempo y dinero obtener la clave, que el valor
derivado de la información sustraída
• Fortaleza del algoritmo:
– Complejidad interna
– Longitud de la clave
46
Clave simétrica
Ventajas:
• Velocidad de ejecución de algoritmos
– Mejor método para cifrar grandes cantidades de información
Inconvenientes:
• Distribución de la clave privada
• Administración y mantenimiento de claves
– Número de claves usadas es proporcional al número de
canales seguros empleados
47
Clave asimétrica
Privada emisor
Pública emisor
Privada receptor
Características:
Pública receptor
• Clave pública
• Cada participante posee una pareja de claves (privadapública)
Emisor
cifrado
Receptor
descifrado
48
Clave asimétrica
Algoritmos:
• Diffie-Hellman, RSA, DSA
• Requisitos:
– Del texto cifrado debe ser imposible extraer el mensaje en
claro y la clave privada
– Conocidos el texto en claro y el texto cifrado debe ser más
costoso en tiempo y dinero obtener la clave privada, que el
valor derivado de la información sustraída
– Para un texto cifrado con clave pública, sólo debe existir una
clave privada capaz desencriptarlo, y viceversa
49
Sistema mixto
Privada emisor
Pública emisor
Privada receptor
Clave de sesión:
• Partes
– Distribución de clave de sesión (asimétrico)
– Comunicación segura (simétrico)
Emisor
Pública receptor
Clave de sesión
Receptor
50
Sistema mixto
Privada emisor
Pública emisor
Privada receptor
Clave de sesión:
• Partes
– Distribución de clave de sesión (asimétrico)
– Comunicación segura (simétrico)
Pública receptor
Clave de sesión
Receptor
Emisor
Redes virtuales
51
Estándares de criptografia
En criptografía, PKCS (Public-Key Cryptography
Standards) se refiere a un grupo de estándares de
criptografía de clave pública concebidos y publicados
por los laboratorios de RSA en California.
A RSA Security se le asignaron los derechos de
licenciamiento para la patente de algoritmo de clave
asimétrica RSA y adquirió los derechos de
licenciamiento para muchas otras patentes de claves
Capacidades, derechos y matriz de acceso
•
•
•
•
•
•
•
•
•
•
•
•
Los derechos de acceso definen que acceso tienen varios sujetos sobre varios objetos.
Los sujetos acceden a los objetos.
Los objetos son entidades que contienen informacion.
Los objetos pueden ser:
Concretos: (discos, cintas, procesadores, almacenamiento, etc.
Abstractos:( estructuras de datos, de procesos, etc.
Los objetos estan protegidos contra los sujetos.
las capacidades son apuntadores a objetos que posibilitan el acceso
Las autorizaciones a un sistema se conceden a los sujetos con capacidades.
Los sujetos pueden ser varios tipos de entidades: usuarios, procesos, programas, otras
entidades, etc.
Los derechos de acceso mas comunes son: Acceso de lectura, Acceso de escritura, Acceso
de ejecucion.
Una forma de implementacion es mediante una matriz de control de acceso (matriz de
acceso) con: Filas para los sujetos, Columnas para los objetos, Celdas de la matriz para los
derechos de acceso que un usuario tiene a un objeto.
Una matriz de control de acceso debe ser muy celosamente protegida por el S. O.
El modelo de proteccion del sistema se puede ver en forma abstracta como una matriz, la
matriz de acceso. Una matriz de acceso es una representacion abstracta del concepto de
dominio de proteccion.
Capacidades, derechos y matriz de acceso
Que es una vulnerabilidad
Es una debilidad en un sistema permitiendo a un
atacante violar la confidencialidad, integridad,
disponibilidad, control de acceso y consistencia
del sistema o de sus datos y aplicaciones.
Ejemplo : Windows 7
Características de la vulnerabilidad
•No existe sistema 100% seguro. Por lo tanto existen vulnerabilidades teóricas y
vulnerabilidades reales (conocidas como exploits, ataques de dia 0).
•Las vulnerabilidades son muy suceptibles a cualquier ataque informático
•Las vulnerabilidades son el resultado de limitaciones tecnológicas, bugs o de fallos en
el diseño del sistema.
•Las vulnerabilidades en las aplicaciones suelen corregirse con parches, hotfixs o con
cambios de versión. En tanto algunas otras requieren un cambio físico en un sistema
informático.
•Las vulnerabilidades se descubren muy seguido en grandes sistemas, y generalmente
se publican rápidamente por todo internet (mucho antes de que exista una
solución al problema).
•Mientra más conocida se haga una vulnerabilidad, más probabilidades de que
•existan piratas informáticos que quieren aprovecharse de ellas.
Vulnerabilidades típicas
•Service packs ausentes
•Parches ausentes
•Puertos abiertos
•Desbordes de pila y otros buffers
•Symlink races (vulnerabilidad de software de seguridad).
•Errores en la validación de entradas como:
inyección SQL (codigo malicioso SQL), bug en el
formato de cadenas, etc.
•Secuestro de sesiones (interceptar sesiones).
•Ejecución de código remoto.
• XSS (vulnerabilidad en webs).
Tipos de ataques a las vulnerabilidades
•Interrupción: Cuando un recurso del sistema es destruido o se vuelve no
disponible.
•Intercepción: Una entidad no autorizada consigue el acceso a un recurso.
•Modificación: Alguien no autorizado logra entrar a un sistema y es capaz de
modificarlo.
•Fabricación: Cuando se insertan objetos falsificados en el sistema.
•Escaneo de puertos: Esta técnica consiste en buscar puertos abiertos, y fijarse en
los que puedan ser receptivos o de utilidad.
•Ataques de autentificación: Cuando un atacante suplanta la identidad de un
usuario autorizado.
•Ataques de Denegación de Servicios (DoS): Consiste en saturar un servidor o
con multiples peticiones falsas hasta dejarlo fuera de servicio
Software más vulnerable en 2009
•Adobe Reader
•Internet Explorer
•Mozilla Firefox
•Adobe Flash
•Apple Quicktime
•Microsoft Office
•Windows
Herramientas para detectar vulnerabilidades (Vigilancia)
•McAfee Vulnerability Manager, NESUS, Qualys , Attaka, Security Manager
Plus, X-Scan, Security System Analyzer, etc.
•Un escáner de vulnerabilidades es un programa diseñando
para buscar y mapear sistemas, aplicaciones o redes vulnerables
•Existen distintos tipos de escaners de vulnerabilidades como lo son:
•Escáner de puertos.
• Escáner de Redes.
• Escáner de seguridad de Aplicaciones Web.
• Escáner de Sistemas.
Que son las amenazas informáticas
•Son programas que pueden producir
daños a la información.
•Es la posibilidad de que los programas
maliciosos se aprovechen de las
vulnerabilidades e inseguridades de
una red o computadoras
Que son los ataques informáticos (computer attack)
•Acciones organizadas y deliberadas de una o más
personas para causar daño o problemas a un sistema
informático o red.
•Los ataques suelen ser hechos por bandas de piratas
informáticos por interés, diversión, para causar daño,
malas intenciones, espionaje, obtención de ganancias,
etc.
Otras amenazas y ataques posibles
•Entre otros podemos mencionar:
•Malware
•Gusanos informáticos
•Virus.
•Cabayo de troya.
•Puerta trasera.
•Caza claves.
•Sobornar o torturar al administrador para que suelte la clave.
•Secuestro de sesión
•Enrutamiento de origen
•Ataque a ciegas
•Ataque MitM
•Amenazas de imitación de identidad
•Ataques de intermediario
•Conexiones no autorizadas
•Espionaje de redes
•Denegación del servicio
Virus y sus variantes
Klez.F y Klez. I, junto a Opaserv, Opaserv.D y
Opaserv. H son claros ejemplos de códigos
maliciosos que se caracterizan por tener
características comunes que permiten a los
desarrolladores de antivirus agruparlos en
"familias".
Se encuentra la integrada por el virus I love you
y la del veterano Marker, del que se han
detectado más de 60 variantes
Medios de transmisión de ataques
Entre otros podemos mencionar a:
Los virus trasmitidos por:
• memorias USBs
•diskettes
•correo electronico
• redes locales y sociales
• Internet
Malware y botnets trasmitidos por:
• e-mail
•Spam
•Internet
Los ataques de phishing alojados en:
• sitios web
• y telefonia movil
Contraseñas de una sola vez
• Son sistemas de autenticación con contraseña de un solo
uso o OTP (del inglés One-Time Password) es una variación
de la autenticación con usuario/contraseña.
• En este método de autenticación se dificulta el acceso no
autorizado haciendo que cada contraseña sea válida para
una única sesión.
• Se tiene que usar una contraseña nueva para cada sesión.
De esta forma se imposibilita que un atacante que capture
el usuario y la contraseña usado, la pueda reutilizar
(ataques de REPLAY). También hace al sistema más
resistente frente ataques de fuerza bruta ya que cada vez
que cambia la contraseña los intentos realizados
anteriormente para romper la anterior contraseña no
sirven para nada y hay que empezar desde cero.
La bitácora o diario de operaciones
• Es el software contenido en los Sistemas Operativos que registran
todas las transacciones, eventos, o movimientos de los objetos en el
sistema.
• La seguridad y administración de un sistema operativo tiene en las
bitácoras un gran aliado, ya que en ellas se registran los eventos que
ocurren el sistema operativo, es decir eventos que el administrador
pasaría inadvertidos sin el respaldo de las bitácoras.
• Las bitácoras en el caso de Linux están dentro del directorio
/var/log/, para otros sistemas Unix se encuentran en /var/adm/, el
propósito de las bitácoras encontradas mas comúnmente es se
muestra a continuación SYSLOG, Bitácoras básicas y de messages,
xferlog (logs de FTP), wtmp (accesos del usuario), secure, etc.
Que es implantación ?
Es el establecimiento y configuración de
un sistema operativo nuevo en un lugar,
de otro que generalmente que ya existía o
funcionaba con continuidad.
Por ejemplo: cambio de versión de SO
El superusuario o administrador del sistema
Es la persona responsable de la administración
y configuración de todo el sistema, y es el
único que tiene permisos para añadir nuevos
usuarios, instalar aplicaciones, configurar
dispositivos, etc.
Usuario que tiene un control total sobre el
sistema y se aconseja trabajar con prudencia
cuando se es superusuario, y reservar este
usuario para los casos en que es estrictamente
necesario
Selección del SO (Linux vs. Windows NT).
La selección de sistema operativo depende de las
especificaciones de hardware con el fin de que sea
completamente compatible.
Debe cumplir los requerimientos de hardware
impuestos por las diferentes versiones de los
Sistemas Operativos
Otros factores de importancia son
- Compatibilidad de las aplicaciones
- Soporte del Sistema Operativo
- Seguridad del Sistema
- Los costos del Sistema Operativo
Selección del SO (Linux vs. Windows NT).
Algunas diferencias entre Windows y Linux son:
- Linux es gratuito y software de libre distribución
- En Linux no entran virus
- La interface de Windows es mas avanzada
- Los programas de Office de Windows existen en Linux
llamados de otra manera
- El administrador de Linux se llama root
- Es mas fácil ser administrador en Windows
- La interface de Windows es mas facil
- El funcionamiento de Linux es mas rápido que Windows
- Los editores de texto son diferentes, mas potentes los de
Linux (vi)
- El esquema de seguridad es mejor en Linux
Preparación de discos de arranque
Para utilizar un disco duro una vez instalado en un equipo, se deben cumplir los cuatro
requisitos siguientes:
1.Identificar el tipo de unidad en el programa de instalación del equipo.
2.La unidad debe tener formato de bajo nivel.
3.Ejecutar FDISK o una utilidad equivalente para definir particiones.
4.En el símbolo del sistema de DOS, escribir format c: /s para escribir el formato lógico en el
disco.
Planeación de la utilización de los discos.
Es una tarea del sistema operativo para usar el hardware de forma eficiente. Esto
implica tener un tiempo de acceso breve y gran ancho de banda de disco. El
objetivo es reducir los tiempos de acceso en la lectura o escritura de los datos.
Además del tiempo de acceso y del tiempo de transferencia, existen algunos
retrasos en las colas que normalmente tienen asociada una operación de E/S a
disco
El tiempo de acceso es el tiempo de búsqueda (seek time) o tiempo en
milesegundos que tarda el brazo del disco en mover las cabezas al cilindro que
contiene el sector deseado.
El ancho de banda del disco es el número total de bytes transferidos, dividido
entre el tiempo total transcurrido entre la primera solicitud de servicio y la
finalización de la última transferencia.
Sea AB = Ancho de Banda, Tb = Total de bytes transferidos y Tt = Tiempo
transcurrido
AB = Tb / Tt
Si Tb = 1200 bytes y Tt = 2 hrs entonces AB=600
Por lo tanto el ancho de Banda en disco será de 600
Creación del Sistema de Archivos. .
El sistema de archivos o file system es creado por
Unix o Linux y esta basado en un modelo
arborescente y recursivo, en el cual los nodos
pueden ser tanto archivos como directorios, y estos
últimos pueden contener a su vez directorios o
subdirectorios.
Administración del espacio libre.
Debido a que el espacio de almacenamiento es
limitado, es necesario reutilizar el espacio de
archivos que se borran para dejar espacio a los
nuevos archivos que se crean. Para registrar el
espacio libre, el sistema operativo mantiene una
lista de espacio libre donde registra todos los
bloques que están libres.
Administración del espacio libre.
Debido a que el espacio de almacenamiento es
limitado, es necesario reutilizar el espacio de
archivos que se borran para dejar espacio a los
nuevos archivos que se crean. Para registrar el
espacio libre, el sistema operativo mantiene una
lista de espacio libre donde registra todos los
bloques que están libres.
Existen tres métodos:
a) Del bit vector (o mapa de bits)
b) De la lista enlazada
c) De conteo
Administración del espacio libre.
El método del bit vector (o mapa de bits)
Cada bloque se representa por un bit. Si el bloque
esta libre se representa con un 1 y en caso contrario
con un cero.
•Ventaja: es simple
•Desventaja: Para que sea eficiente hay que
mantener la estructura completa en la memoria
principal. En la práctica esto solo es posible con
discos pequeños.
Administración del espacio libre.
El método de la lista enlazada
Se enlazan todos los bloques libres del disco,
almacenando un apuntador al primer bloque libre
en un lugar especial del disco. Este esquema no es
eficiente ya que para recorrer la lista se requiere
mucho tiempo de E/S (no es muy frecuente hacer
esto)
Administración del espacio libre.
El método de conteo
Este método aprovecha el hecho que normalmente
muchos bloques contiguos se asignan o liberan
simultáneamente, especialmente en algoritmos de
asignación contigua de memoria.
En vez de almacenar la dirección de n bloques, solo
se almacena la dirección del primer bloque
libre y del número de los “n” bloques contiguos que
le siguen. De esta manera cada entrada de
la lista está formada por una dirección de bloque y
una cuenta.
Instalación de Shells, herramientas y compiladores.
• EL Shell es también conocido como Shell de Unix que es un intérprete de
comandos, el cual consiste en la interfaz de usuario tradicional con los sistemas
operativos basados en Unix y similares como GNU/Linux.
• Funciona a través de comandos o instrucciones del intérprete donde el usuario
puede comunicarse con el núcleo del sistema operativo y le permite ejecutar
órdenes, así como controlar el funcionamiento de la computadora.
• Los comandos que aportan los intérpretes, pueden usarse a modo de guion o
scrip si se escriben en archivos ejecutables denominados shell-scripts, de este
modo, cuando el usuario necesita hacer uso de varios comandos o combinados
• de comandos con herramientas, escribe en un archivo de texto marcado como
ejecutable, las operaciones que posteriormente,línea por línea, el intérprete
traducirá al núcleo para que las realice. Sin ser un shell estrictamente un
lenguaje de programación, al proceso de crear scripts de shell se le denomina
programación shell o en inglés, shell programming o shell scripting.
Programación Shell.
• Es la generación de instrucciones y
comandos necesarios para la ejecución
de scripts de Shell en el Sistema
Operativo para comunicarse con el
núcleo del sistema, programar tareas o
procesos, y controlar el funcionamiento
de la computadora.
Programación Shell.- Ejemplo de conandos.
Comando.- Desplegando los procesos del sistema
ps.- Su nombre significa Process Status, permite desplegar los procesos
que estan siendo ejecutados en el sistema
Para desplegar los procesos que estan siendo ejecutados por el usuario
simplemente se teclea ps y enter en la terminal:
$ ps
PID TT STAT TIME COMMAND
394 p1 Ss+ 0:00.21 -csh
423 p2 Ss+ 0:00.08 -csh
6239 std Ss 0:00.01 -bash
Programación Shell.- Ejemplos.
• Shell para monitoreo de procesos.
a) En pico crear el siguiente programa.- procesos.sh
#!/bin/bash
echo "Mostrar los procesos del sistema operativo que estan en ejecucion"
ps
echo "** Terminacion del script shell ** "
Ejecutar el script con:
rcastro@rigel:~/public_html/LINUX/clr$ ./procesos.sh
Mostrar los procesos del sistema operativo que estan en ejecucion
PID TTY
TIME CMD
15048 pts/1 00:00:00 sh
16529 pts/1 00:00:00 procesos.sh
16530 pts/1 00:00:00 ps
** Terminacion del script shell
rcastro@rigel:~/public_html/LINUX/clr$
Hacer un shell que muestre el calendario del Sistema Operativo….
Programación Shell.- Ejemplos.
• Hacer un Shell que determine si existe mi archivo en el
sistema operativo.- checa.sh
#!/bin/bash
# Determina si existe mi archivo
archivo="areas1.exe"
if [ -f $archivo ]; then
echo "el archivo $archivo se encuentra en el actual
directorio"
else
echo "el archivo $archivo no encontrado..!!"
fi
Programación Shell.- Ejemplos.
• Hacer un Shell que de capacidades y permita que los
archivo sean ejecutables.- seaejec.sh
#!/bin/bash
# seaejec: convierte un archivo en ejecutable
#
ARCH=$1
if [ -f $ARCH ]
# existe y es archivo regular
then
chmod 777 * $ARCH
ls -l $ARCH
else
echo "seaejec: el archivo $ARCH no pudo ser convertido"
fi
Creación de usuarios y grupos.
• La administración de usuarios y grupos solamente puede
realizarlas el usuario root utilizando los comandos de gestión de
usuarios. Las tareas y los comandos para realizarlas son:
•
•
•
•
•
•
•
•
Creación de usuarios / useradd
Modificación de usuarios / usermod
Eliminación de usuarios / userdel
Creación de grupos / groupadd
Modificación de grupos / groupmod
Eliminación de grupos / groupdel
Añadir usuarios a un grupo / adduser
Quitar usuarios de un grupo /deluser
Eficiencia y rendimiento o desempeño del SO.
Algunas técnicas de Evaluación de eficiencia y
Rendimiento en Sistemas Operativos son:
- Los tiempos que proporcionan los medios de SO
para realizar comparaciones rápidas del hardware.
- Promedio ponderado de varios tiempos de las
instrucciones más apropiadas para una aplicación
determinada.
- Programas del núcleo. Un programa núcleo es un
programa típico que puede ser ejecutado en una
instalación.
Escritura de drivers
Cuando hablamos de drivers hablamos de software o
un programa informático que permite al sistema
operativo interaccionar con un periférico, haciendo
una abstracción del hardware y proporcionando una
interfaz para usarlo.
Se puede considerar como la escritura de un manual
de instrucciones que le indica al SO cómo debe
controlar y comunicarse con un dispositivo en
particular.
Es una parte esencial, sin la cual no se podría usar el
hardware.
Sistemas Operativos de Red
El NOS (Network Operating System) es el sistema
operativo de red que permite la interconexión de
computadoras para poder acceder a los servicios y
recursos de una red informática.
Al igual que un equipo no puede trabajar sin un
sistema operativo, una red de equipos no puede
funcionar sin un sistema operativo de red. Si no se
dispone de ningún sistema operativo de red,
el equipo, no puede compartir recursos y los
usuarios no podrán utilizar estos recursos.
Sistemas Operativos Distribuidos
Es la unión lógica de un grupo de sistemas operativos
sobre una colección de nodos computacionales
independientes, conectados en red, comunicándose
y físicamente separados.
Servicios remotos en Internet.
Es poder acceder desde una computadora a un recurso
ubicado físicamente en otra computadora que se encuentra
geográficamente en otro lugar, a través de una red externa
(como Internet).
Proyecto final.
Construcción de un Sistema Operativo OSShell en lenguaje
de programación java con netbeans.