Sei sulla pagina 1di 33

SISTEMA OPERATIVO

UNIX

INTRODUCCIN
Unix fue creado en 1969 por Dennis Ritchie y Ken Thompson, el
sistema operativo originario fue el sistema Multics, los
laboratorios Bell fue la primera organizacin que utilizo el
sistema unix, sus primeras versiones fueron desarrolladas en
cdigo maquina pero a partir de la tercera versin se realizo en
C, creado para este motivo.

OBJETIVOS DE UNIX
Asegurar la portabilidad de los desarrollos,
eliminando as la dependencia de los sistemas
propietarios.
Permitir a fabricantes independientes de software la
oferta de productos en este entorno, eso aumenta la
oferta de productos y los precios son mas bajos.
Proteger la inversin realizada en aplicaciones.

CLASIFICACIN
POR SU VISIN INTERNA

Estructura monoltica, por lo tanto el


kernel contenido en este sistema fue
programado de forma secuencial.
El kernel interacta directamente con el
hardware, y proporciona servicios a los
programas de capas superiores, de forma
que las peculiaridades del hardware
permanecen ocultas.

POR LOS SERVICIOS QUE OFRECE

Multiusuario
Multitarea

Portable

SO de tiempo

POR SU VISIN EXTERNA


UNIXes un sistema operativo de red
Tiene algunas caractersticas de sistema distribuido

ORGANIZACIN FSICA
En UNIX los bloques de
control de archivos tienen
bloques
de
indexacin
directa, de uno, dos y hasta
de
tres
niveles
de
indexacin.
Esto permite representar
archivos muy grandes.

ORGANIZACIN FSICA
El control del espacio libre en el disco se mantiene
mediante una lista ligada de bloques disponibles.
Cada bloque contiene ladireccinen disco del
siguiente bloque en la cadena. El espacio restante
contiene las direcciones degruposde bloques del
disco que se encuentren libres. De esta forma, con
una operacin de E/S, el sistema obtiene un conjunto
de bloques libres y un apuntador para conseguir ms.

ALGORITMOS DE PLANIFICACIN
El mdulo de planificacin (scheduler) asigna el uso de
la CPU a los procesos. Un proceso (A) se ejecutar
hasta que voluntariamente ceda el uso de la CPU. En
ese momento, el planificador seleccionar para
ejecutar al proceso de mayor prioridad de planificacin
que se encuentre listo para ser ejecutado. El proceso
(A) volver a ser ejecutado cuando sea el proceso de
mayor prioridad de planificacin listo para ejecucin.

ALGORITMOS DE PLANIFIACION
La clase de tiempo compartido es la clase por defecto para un proceso.
En ella las prioridades de los procesos se cambian dinmicamente. Se
utiliza un algoritmo de planificacin de tipo round robin para los procesos
con la misma prioridad. Adems utiliza una tabla de parmetro de
distribucin para controlar las prioridades de los procesos y sus
cuantums. El cuantum dado a un proceso depende de su prioridad de
planificacin. La tabla de parmetros define el cuantum para cada
prioridad. Por defecto, cuanto menor es la prioridad de un proceso mayor
es su cuantum. Esto puede parecer una contradiccin pero su explicacin
es que puesto que los procesos de baja prioridad no se ejecutan muy a
menudo es justo darles un cuantum mayor cuando son ejecutados.

SOLUCIN A PROBLEMAS DE
CONCURRENCIA
UNIX es esencialmente un sistema de tiempo compartido, lo que
significa que permite a varios procesos ejecutarse concurrentemente.
En un sistema con un nico procesador, la concurrencia no es ms que
una ilusin, puesto que en realidad solamente se puede estar
ejecutando un nico proceso en un instante de tiempo dado.
Mecanismos de Concurrencia en UNIX
Pipes (encaminadores)
Mensajes
Memoria compartida
Semforos
Seales (signals)

MENSAJES
Conjunto de bytes con un tipo asociado, proporciona las llamadas al
sistema msgsnd y msgrcv.
Usa una cola de mensajes por proceso, y funciona como un buzn.
El emisor especifica el tipo de mensaje que enva, este puede ser un
criterio de seleccin por el receptor. El receptor puede recuperar el
mensaje en orden o por su tipo.
El proceso se bloquea cuando trata de enviar un mensaje a una cola llena.
Un proceso tambin se bloquea si se intenta leer un mensaje de una cola
vaca.
Si un proceso intenta leer un mensaje de un cierto tipo y no es posible
debido a que no est presente ningn mensaje de este tipo, el proceso no
se bloquea.

SEMFOROS
Las llamadas al sistema de semforos en UNIX System V
son una generalizacin de las funciones semWait y
semSignal, se pueden realizar varias operaciones
simultneamente y las operaciones de incremento y
decremento pueden corresponder con valores mayores.
El ncleo realiza todas las operaciones solicitadas
atmicamente; ningn otro proceso puede acceder al
semforo hasta que se hayan completado todas las
operaciones.

SEMFOROS
El semforo consta de los siguientes elementos:
El valor actual del semforo
El identificador del ltimo proceso que opero con el semforo
El nmero de procesos en espera de que el valor del semforo
sea mayor que su valor actual
El nmero de procesos en espera de que el valor del semforo
sea cero
Asociado con el semforo estn las colas de los procesos
bloqueados en ese semforo.

SEMFOROS

Los semforos se crean realmente como conjuntos,


constando cada conjunto de semforos de uno o ms
semforos. Hay una llamada al sistema semct1 que
permite que todos los valores de los semforos del
conjunto se fijen al mismo tiempo. Adems hay una
llamada al sistema sem_op que toma como argumento
una lista de operaciones de semforo, cada una definida
sobre uno de los semforos de un conjunto. Cuando se
realiza esta llamada, el ncleo lleva a cabo
sucesivamente las operaciones indicadas. Por cada
operacin, la funcin real se especifica mediante el valor
sem_op, existiendo las siguientes posibilidades:

SEMFOROS
sem_op > 0

Incrementa el valor del semforo y despierta a todos los


procesos en espera de que el valor del semforo se
incremente.
sem_op == 0
Kernel verifica el valor del semforo
Semforo == 0
El ncleo continua con las otras operaciones.
Semforo != 0
El ncleo incrementa el numero de procesos en espera
de que el semforo tenga el valor de 0 y suspende al
proceso para que espere por el evento de que el valor
del semforo se haga igual a 0.

SEMFOROS
Si sem_op <= -1 y sem_op valor absoluto < semforo
El ncleo asigna (un numero negativo) al valor del semforo.
Si el resultado es 0, el ncleo despierta a todos los procesos en
espera de que el semforo tome ese valor.
Si sem_op <=-1 y sem_op valor absoluto > numero de semforo
El ncleo suspende al proceso en espera del evento del valor del
semforo para que se incremente.
Esta generalizacin de los semforos proporciona una considerable
flexibilidad para realizar la sincronizacin y coordinacin de procesos.

ADMINISTRACIN DE MEMORIA
Debido a que unix pretende ser independiente de la mquina, su esquema de gestin
de memoria variara de un sistema a otro. En las primeras versiones, unix utilizaba
particionamiento variable sin ningn esquema de memoria virtual. Las implantaciones
actuales de unix utilizan la memoria virtual paginada.
Para la memoria virtual paginada, unix utiliza varias estructuras de datos que, con
pequeas diferencias, son independientes de la maquina:
Tabla de pginas: Habitualmente, habr una tabla de pginas por proceso, con
una entrada por cada pgina de memoria virtual de dicho proceso.
Descriptor de bloques de disco: Asociado a cada pgina del proceso hay una
entrada en esta tabla que indica la copia en disco de la pgina virtual.
Tabla de datos de los marcos de pgina: Describe cada marco de memoria
real y se indexa por medio de un numero marco. El algoritmo de reemplazo usa
esta tabla.
Tabla de utilizacin de swap: Existe una tabla de uso de swap por cada
dispositivo de intercambio, con una entrada por cada pgina de dicho dispositivo.

PRINCIPIOS DE SW DE E/S
Unix divide el sistema de entrada y salida en dos sistemas:
El sistema de Entrada y salida por bloques
El sistema Entrada y salida por caracteres
Cada dispositivo fsico se identifica mediante un numero de dispositivo menor, un
numero de dispositivos mayor y una clase, ya sea de bloque o de caracteres.
Cada clase tiene una tabla de configuracin que contiene un arreglo de puntos de
entrada a los controladores de dispositivos. Esta tabla es la nica conexin entre
el cdigo del sistema y los controladores de dispositivos; adems, es una
caracterstica importante de Unix, ya que permite a los programadores del
sistema crear con rapidez nuevos controladores de dispositivos para aceptar
diferentes sistemas de configuracin.

Clase

Carcter

Bloque

Numero
mayor de
dispositivo

Numero
mayor de
dispositivo

Lneas de
comunicacin

Cinta de
papel

Numero
menor de
dispositivo

Numero
menor de
dispositivo

CL1

CL2

CL3

PT1

Impresora de
lneas
Numero
menor de
dispositivo
PT2

LP1

Unidad
de disco

Unidad de
cinta
magntica

Numero
menor de
dispositivo

Numero
menor de
dispositivo

LP2

DD1 DD2 DD3 DD4

PRINCIPIOS DE SW DE E/S

El nmero mayor de dispositivo se utiliza como un ndice para


el arreglo, a fin de tener acceso al cdigo apropiado de cierto
controlador de dispositivo.
El nmero menor de dispositivo se pasa al controlador de
dispositivo como argumento y sirve para tener acceso a uno
de varios dispositivos fsicos idnticos.
Segn indica el nombre, el sistema por bloques se utiliza para
dispositivos que se pueden tratar como una secuencia de
bloques de 512 bytes. Esto permite al administrador de los
dispositivos utilizar la tcnica del buffer para reducir el trfico
de entrada y salida. Unix contiene de 10 a 70 buffers para
entradas y salidas, y la informacin relacionada con ellos se
conserva en una lista.

SEGURIDAD
Unix no se dise para ser seguro [Ritchie, 1986], a finales de los
80 se convirti en el primer sistema operativo en alcanzar niveles
de seguridad casi militares [Hecht, 1988] [Serlin, 1991].
Casi todas las actividades realizadas en un sistema Unix son
susceptibles de ser, en mayor o menor medida, monitorizadas.
Problema [Instalacin por defecto de Unix]
Cuentas sin passwords o passwords por defecto
Servicios abiertos
Sistemas de ficheros susceptibles de ser compartidos.

SEGURIDAD
Proteccin de memoria
Control de acceso a ficheros
Proteccin del uso de los recursos del sistema.
El acceso al sistema se realiza a travs de una
cuenta.
Nombre de usuario
Contrasea

FAUNA INFORMTICA EN LINUX


Virus: Fragmento de cdigo que se inserta en programa
ejecutable, cuando el programa es ejecutado, el se ejecuta
tambin. Los virus se almacenan en memoria , que infectan
cualquier fichero que se ejecute en el sistema.
Gusanos: Programas que se reproducen copindose de un
ordenador a otro a travs de la red

PUERTAS TRASERAS
Mecanismos
implantados
en
los
programas
por
los
desarrolladores, que permiten a stos realizar acciones
determinadas sin tener que pasar por determinadas secciones
del programa, como procesos de autenticacin, mecanismos de
seguridad, etc. Se suelen utilizar preferentemente en tareas de
depuracin.
Un caso que ilustra esto ltimo es el agujero de seguridad que
supona la opcin de depuracin del programa sendmail, del
cual se aprovech el gusano de Internet.

PUERTAS TRASERAS
Muchas veces la existencia de puertas traseras est
provocada por el despiste de los desarrolladores, que olvidan
eliminarlas de sus programas, aunque otras veces las dejan
ah intencionadamente para conseguir de una manera sencilla
el acceso al sistema mediante la ejecucin de una
determinada secuencia de eventos, una secuencia de
pulsaciones de teclado o un nombre de usuario secreto. De
igual manera, los piratas, una vez que han conseguido acceso
a un sistema, suelen crear puertas traseras que les permitan
volver a entrar en el sistema, por ejemplo aadiendo una
entrada en el fichero /etc/passwd.

CMO ENCUENTRA UN PIRATA LAS


CONTRASEAS?

Las contraseas se almacenadas en el fichero


/etc/passwd. Pero estas contraseas no se encuentran
almacenadas tal cual, sino que se utilizan para cifrar
un bloque de bits mediante una funcin llamada crypt
(), cuyo resultado se almacena en dicho fichero. Si un
pirata consigue hacerse con una copia del fichero
/etc/passwd no tendr conocimiento de las contraseas
de los usuarios del sistema, pero puede utilizar
diversas tcnicas para adivinarlas.

CMO ENCUENTRA UN PIRATA LAS


CONTRASEAS?

Ataque con diccionario, que consiste en cifrar


todas las palabras de un diccionario y ver si el
resultado obtenido coincide con la clave cifrada
de
algn
usuario.
Se utiliza esta tcnica porque no es posible
obtener la contrasea de un usuario a partir de
la cadena cifrada que se almacena en el
fichero /etc/passwd.

CMO ENCUENTRA UN PIRATA LAS


CONTRASEAS?
Utiliza un adivinador de contraseas. Lo normal en un
principio es que el pirata ponga en marcha el
adivinador de contraseas con un diccionario formado
por una serie de palabras que muchos usuarios utilizan
como contrasea, como, por ejemplo, los nombres de
entrada de todos usuarios del sistema, palabras de uso
comn, marcas, nombres de persona, etc., as como
variaciones de todas ellas.

EL FICHERO /ETC/PASSWD
El fichero /etc/passwd se utiliza para identificar a los usuarios que
pertenecen al sistema. Este fichero est estructurado de forma que
cada lnea representa a un nico usuario, y cada una de estas lneas
se encuentra organizada en siete campos separados por : .
1. Nombre de usuario o login
2. Contrasea cifrada
3. Identificador de usuario o UID
4. Identificador de grupo o GID
5. Informacin sobre el usuario
6. Directorio de entrada o home
7. Shell

login:password:UID:GID:GECOS:home:shell

EL SUPERUSUARIO
El ms importante de todos los usuarios del sistema es, por
supuesto, root. El usuario root se caracteriza porque tiene como
UID el nmero 0, al cual el sistema trata de manera diferente.
El superusuario tiene un control casi completo sobre todo el
sistema.
Puede saltarse todos los mecanismos de seguridad del sistema
y acceder a todos sus recursos.
Por estos motivos, el hecho de la existencia de un superusuario
supone uno de los mayores problemas de seguridad de los
sistemas UNIX.

PRECAUCIONES A TENER EN CUENTA


AL ACCEDER AL SISTEMA COMO ROOT
La misin principal del root es evadir, en determinadas ocasiones,
las protecciones que poseen los sistemas UNIX. Su uso debera
restringirse a ocasiones especiales, muy puntuales y en las que su
uso sea la nica alternativa posible.
El uso de buenas contraseas, comprobar los permisos de los
ficheros e implantar mecanismos que permitan detectar entradas
no autorizadas en las cuentas de los usuarios, son excelentes
medidas de seguridad que cualquier usuario podra utilizar para
asegurar an ms su cuenta.

PRECAUCIONES A TENER EN CUENTA


AL ACCEDER AL SISTEMA COMO ROOT
El superusuario es el usuario ms importante del
sistema, y por eso es siempre el principal objetivo de
cualquier pirata informtico. El superusuario, adems
de todas las medidas de seguridad que pueda tomar
un usuario normal, debera tomar otras muchas, como
acceder al sistema slo desde un terminal seguro y
slo en aquellos casos en los que sea estrictamente
necesario.

Potrebbero piacerti anche