Sunteți pe pagina 1din 9

Universidad Mariano Gálvez de Guatemala

Extension Chiquimula
Facultad de Ingenieria
VI semestre
Sistemas Operativos
Ing. Roberto Arriaga

Resumen del Capítulo 21 y 22

Márilyn Suceny Duarte Solís


1390-16-19519

Chiquimula, octubre de 2018


El sistema Linux
Historia de Linux
El sistema Linux, fue el primero en usar un procesador de 32 bits, ya que en 1991, un
estudiante de informática, hizo este sistema que se compone igual al sistema operativo
Unix. Fue puesto a disposición del mundo de forma gratuita por medio de internet.

Principios de diseño

Linux se asemeja cualquier otra implementación tradicional de Unix no basada en


microkernel.
Es un sistema multiusuario y multitarea que tiene un conjunto de herramientas
compatibles con Unix. Los detalles internos del diseño del sistema operativo de Linux han
sido influidos por la historia del desarrollo de este sistema.
Antes se ejecutaba sobre una amplia variedad de plataformas, fue desarrollado sobre
una arquitectura para computadoras portátiles. Una parte de aquellos primeros
desarrollados fue cometida por personas entusiastas no por organizaciones que se
dedicaban a la investigación o empresas que sólo buscaban fines comerciales por esta
razón Linux trato de obtener la máxima funcionalidad que se pudo a partir de unos
recursos limitados. Actualmente Linux puede ejecutarse sobre una máquina
multiprocesadora con ciertos megabytes de memoria principal y muchos gigabytes de
espacio de disco de almacenamiento y también sigue siendo capaz de operar de manera
útil en menos de 4 megabytes de RAM.

Componentes de un sistema Linux


Está formado por tres cuerpos principales de código:
Kernel es quien se encarga de mantener todas las abstracciones importantes del sistema
operativo, esto incluye elementos como la memoria virtual y los procesos.
Bibliotecas del sistema son las que definen un conjunto de funciones por medio de las
cuales las aplicaciones pueden interactuar con el kernel.
Utilidades del sistema son programas qué hacen tareas individuales y especializadas
de gestión. Algunas utilidades pueden ser invocadas para iniciar y configurar algunos
aspectos del sistema.
Módulos del kernel

Los módulos del kernel resultan útiles por varias razones. El código fuente de Linux es
gratis, por lo que cualquier persona que quiero escribir código del kernel, puede
compilarlo, modificarlo, re arrancar el sistema para cargar la nueva funcionalidad. Sí
utilizamos módulos del kernel no hay porqué construir un nuevo kernel para probar un
nuevo controlador, este puede compilarse por separado y cargarse sobre el kernel que
se está ejecutando. Una vez que se ha escrito un nuevo controlador, se puede distribuir
en forma de módulo, de modo que otros usuarios puedan beneficiarse del mismo sin tener
que reconstruir sus kernels.

Gestión de procesos

Un proceso es el contexto básico en el cual se da un servicio a todas las actividades que


solicita un usuario dentro de un sistema. Para que un proceso pueda ser compatible con
otros sistemas Unix, Linux debe utilizar un modelo de proceso similar a los de las otras
versiones de Unix.
Las propiedades de los procesos pueden clasificarse en tres grupos:
Identidad del proceso
Este debe contener un ID de proceso el cual es llamado PID el cual se utiliza para
especificar Qué proceso usará el sistema operativo cuando una aplicación realiza una
llamada al sistema.
También debe tener credenciales los cuales van a determinar Cómo determinar Qué
derechos tiene un proceso en el sistema ya sea para acceder archivos o recursos del
sistema.
Y por último también debe tener un identificador de personalidad que éste puede
modificar un poco la semántica de algunas llamadas al sistema.
Entorno de un proceso
El entorno de un proceso se hereda de su proceso padre y se compone por dos vectores:
el vector de argumentos que es el que enumera los argumentos de línea de comandos
para invocar al programa en ejecución y el vector de entorno que es una lista de parejas
que asocia a una serie de variables de entorno con nombre y sus correspondientes
valores textuales arbitrario.
El mecanismo de variable de entorno permite personalizar el sistema para cada proceso
en vez de que personalice todo el sistema en su conjunto.
Contexto de un proceso
El contexto de un proceso es el estado del programa en ejecución en un momento
determinado, Así que está variando constantemente. El contexto de un proceso tiene las
siguientes partes:
• Contexto de planificación: en este contexto la parte más importante es la información
que necesita el planificador para suspender y reiniciar un proceso. Esta información
incluye copias guardadas de todos los registros de los procesos. Dichos registros son
almacenados por separado y se pueden restaurar sólo cuando es necesario, de manera
que los procesos no tienen que pagar el coste de guardar dicho estado.
• Compatibilidad de recursos: es cuando el kernel debe tener información sobre los
recursos que están siendo utilizados por los procesos y acerca de los recursos totales
que el proceso utilizó.
• Tabla de archivos: es una matriz de punteros a estructuras de archivos del kernel.
• Contexto del sistema de archivos: es el que se aplica a las solicitudes para abrir
nuevos archivos y en éste se almacena la dirección inicial y los directorios
predeterminados que haya que utilizar.

Planificación

Es cuando se asigna un tiempo de CPU a diferentes tareas que un sistema operativo


quiere realizar. La mayoría piensa que la planificación es el acto de ejecutar e interrumpir
procesos pero la planificación resulta ser importante en Linux ya que permite la ejecución
de diversas tareas del kernel, estas tareas comprenden tanto tareas solicitadas por un
proceso en ejecución como tareas que se ejecutan internamente por cuenta de un
controlador de dispositivo.
Linux implementa dos algoritmos separados de planificación de procesos. Uno de ellos
es un algoritmo de tiempo compartido para la planificación apropiativa y equitativa entre
múltiples procesos y el otro está diseñado para tarea de tiempo real en la que las
prioridades absolutas son más importantes que la equidad.
La sincronización del kernel, planifica sus propias operaciones distintas de la forma en
que planifica los procesos. El problema con el kernel Es que todas las tareas pueden
intentar acceder a las mismas estructuras de datos. Los cerrojos de bucle sin fin que
aplica el kernel, se utilizan sólo cuando el cerrojo se mantiene durante un tiempo muy
corto.
Gestión de memoria

La gestión de memoria en Linux tiene dos componentes. El primero es quién se encarga


de asignar y liberar la memoria física y el segundo se encarga de gestionar la memoria
virtual que es quien hace un mapeo sobre el espacio de direcciones de los procesos que
se están ejecutando.
En la gestión de memoria física, Linux separa la memoria en tres zonas distintas las
cuales deben identificar las diferentes regiones de la memoria. Estas zonas son:
ZONE_DMA, ZONE_NORMAL Y ZONE_HIGHMEM. Una franja se utiliza para asignar
memoria para las estructuras de datos del kernel y está compuesta de una o más páginas
físicamente contiguas. Una franja puede estar en uno de tres posibles estados: se dice
que una franja está llena cuando todos los objetos en dicha franja están marcados como
utilizados, está vacía cuando todos los objetos están marcados como libres y se
encuentra en un estado parcial cuando está compuesta de objetos libres y objetos
utilizados.
La memoria virtual en Linux es la que se encarga de mantener el espacio de direcciones
para que cada uno de los procesos pueda verla. El gestor de memoria virtual mantiene
dos vistas separadas del espacio de direcciones de un proceso: uno como conjunto de
regiones separadas y otra como conjunto de páginas.

Sistemas de archivos

El sistema de archivos virtual está diseñado basándose en principio de orientación a


objetos los cuales tienen dos componentes que son: un conjunto de definiciones que
especifican cuál es el aspecto que están autorizados a tener los objetos del sistema de
archivos y una capa de software para manipular los objetos. El sistema de archivos virtual
define cuatro tipos principales de objetos los cuales son los siguientes: un objeto inodo
es el que representa un archivo individual, un objeto archivo representa un archivo
abierto, un objeto superbloque es el que representa el sistema de archivos completo y
un objeto entrada de directorios es el que representa una entrada de directorio individual.

Comunicación interprocesos

La forma en que Unix informa a un proceso de que ha tenido lugar a un suceso es por
medio de una señal. Esta señal puede ser enviada por un proceso a cualquier otro
proceso como siempre y cuando exista una serie de restricciones que afecten la señal
enviada a los procesos que sean propiedad de otro. Cabe mencionar que está señales
no las generan los procesos.
El kernel no utiliza señales para comunicarse con los procesos que se están ejecutando
en modo kernel. Si un proceso está esperando a que ocurra un suceso, no utiliza una
señal para recibir la notificación sino que en lugar de ella, la comunicación con el kernel
se realiza mediante el uso de estados de planificación.

Estructura de red

La comunicación por red es una de las tareas que hacen funcional a Linux. No solamente
soporta los protocolos de internet sino que también implementa diversos protocolos
nativos de otro sistema distinto de Unix.
El conjunto de protocolo más importante dentro del sistema de comunicación por red de
Linux es el conjunto de protocolos TCP/IP. Este conjunto comprende diversos protocolos
separados.

Seguridad

El modelo de seguridad en Linux está bastante relacionado con mecanismos típicos de


seguridad de Unix, aunque existen problemas relativos a la seguridad los cuales se
clasifican en dos grupos:

El primero es la autenticación ya que se debe asegurar que nadie pueda acceder al


sistema sin demostrar que tiene los derechos correspondiente de entrada y el segundo
es el control de acceso el cual debe proporcionar un mecanismo para controlar si un
usuario tiene derecho de acceso a un cierto objeto impedir el acceso los objetos según
sea necesario.
Windows XP
Historia

En octubre del 2001, se presentó Windows XP como actualización del sistema operativo
de sobremesa Windows 2000 y como sustituto de Windows 95. En 2002 estuvieron
disponibles las versiones de servidor de Windows XP. Windows XP actualiza la interfaz
gráfica de usuario con un diseño visual que aprovecha los más recientes avances de
Hardware e incorpora nuevas características que implementan la facilidad de uso.
Windows XP es un sistema operativo multiusuario, que permite el acceso simultáneo a
través de servicios distribuidos o mediante múltiples instancias de la interfaz gráfica de
usuario, a través del servidor de terminales de Windows

Principios de diseño

El objetivo de Microsoft para Windows XP era incluir seguridad, fiabilidad, compatibilidad


con aplicaciones Windows, las altas prestaciones, etc.
La seguridad en Windows XP es muy importante ya que requiere algo más que una
simple adherencia a los estándares que permitieron que Windows NT recibiera una
clasificación de seguridad C-2 por parte del gobierno de Estados Unidos. Se trató de
combinar una revisión y pruebas profundas del codigo utilizando herramientas
automáticas sofisticadas de análisis para poder identificar e investigar cuáles eran los
efectos potenciales que pudieran representar vulnerabilidad de seguridad de sistema.
Windows XP amplía la verificación de controladores con el fín de detectar errores más
sutiles, mejora las facilidades para detectar los errores de programación en el código de
nivel de usuario y somete los dispositivos a un riguroso proceso de certificación.
Windows XP introduce un nivel de compatibilidad que se sitúa entre aplicaciones y las
Api win32. Ese nivel hace que Windows XP parezca compatible con las versiones
anteriores de Windows, cuyos errores es capaz de emular. Windows XP, al igual que las
versiones de NT anteriores, mantiene el soporte para ejecutar muchas aplicaciones de
16 bits utilizando un nivel de conversión que traduce las llamadas a la Api de 16 bits a
sus llamadas de 32 bits equivalentes.
Windows XP está diseñado para proporcionar unas altas prestaciones de los sistemas
de sobremesa, en los sistemas servidores y en los grandes entornos multihebra y
multiprocesador. Windows XP ha conseguido mejorar aún más las prestaciones,
reduciendo la longitud de las rutas de código en las funciones críticas, utilizando mejores
algoritmos y estructuras de datos separadas para cada procesador, utilizando
mecanismos de coloreados de memoria para máquinas Numa e implementando
protocolo de bloqueo más escalables.
Componentes del sistema

La arquitectura de Windows XP es un sistema de módulos organizado en niveles. Los


niveles principales son el nivel HAL, el kernel y el subsistema ejecutivo, todos los cuales
se ejecutan en modo protegido junto con una colección de subsistemas y servicios que
se ejecutan en modo usuario.
El nivel HAL es la capa de software que oculta las diferencias de tipo hardware a los ojos
de los niveles superiores del sistema operativo con el fín de hacer que Windows XP sea
portable.
El kernel de Windows XP proporciona la base para el ejecutivo y para los distintos
subsistemas. El kernel permanece cargado y memoria y su ejecución nunca puede ser
desalojada.
El sistema ejecutivo de Windows XP es el que proporciona un conjunto de servicios
utilizado por todos los subsistemas de entorno.

Subsistemas de entorno

Los subsistemas de entorno son procesos de modo usuario apilados sobre los servicios
ejecutivos nativos de XP y permiten a Windows desarrollar programas desarrollados para
otros sistemas operativos, incluyendo Windows de 16 bits. Cada subsistema de entorno
proporciona un único entorno de aplicación.
Windows XP utiliza el subsistema Api win32 como el principal entorno de operación, por
lo que es este subsistema el que arranca todos los procesos. Estos sistemas utilizan la
funcionalidad LPC para proporcionar servicios del sistema operativo a los procesos
cliente. La arquitectura del subsistema de Windows XP Evitar que las aplicaciones
mezclan rutinas Api de diferentes entornos.
El entorno MS-DOS no tiene la complejidad de los otros subsistemas de entorno de
Windows XP. Este entorno se proporciona mediante una aplicación Api win32
denominada máquina DOS virtual.

Conexión de red

Windows XP permite utilizar tanto redes iguales como redes cliente-servidor. También
disponen de funcionalidades para la gestión de red. Los componentes de red de Windows
XP proporcionan mecanismos de transporte de datos, comunicación interproceso,
compartición de archivos a través de la red y envío de trabajos a impresoras remotas.
Windows XP implementan los protocolos de transporte como controladores. Estos
controladores pueden cargarse y descargarse en el sistema dinámicamente aunque en
la práctica suele ser necesario reiniciar el sistema después de un cambio.
Windows XP utiliza el concepto de dominio. Un dominio en Windows XP es un grupo de
estaciones de trabajo y servidores que comparten una política de seguridad y una base
de datos de usuario comunes.

Interfaz de programación

La Api win32 es la interfaz fundamental para implementar las capacidades ofrecidas por
Windows XP. Los cinco aspectos principales de la Api win32 son los siguientes: acceso
a los objetos del kernel, compartición de objetos entre procesos, gestión de procesos y
comunicación entre procesos.
El kernel de Windows XP proporciona muchos servicios que los programas de aplicación
pueden utilizar. Los programas de aplicación obtienen estos servicios manipulando
objetos del kernel. Un proceso obtiene acceso a un objeto del kernel denominado xxx
llamado a la función createxxx para abrir un descriptor de xxx.
Los objetos con nombre tienen la ventaja de que dos procesos no relacionados pueden
compartirlos fácilmente.
Windows XP, un proceso de instancia en ejecución de una aplicación y una hebra es una
unidad de código que puede ser planificada por el sistema operativo. Por tanto, un
proceso contiene una o más hebras. Un proceso arranca cuando algún proceso invoca
la rutina createprocess ().
Las aplicaciones Api win32 gestionan la comunicación interproceso de varias formas
distintas. Una forma es compartiendo objetos del kernel. Otra posible forma consiste en
pasar mensajes, una técnica que resulta especialmente popular en las aplicaciones GUI
Windows. A diferencia de las hebras en el entorno Windows de 16 bits, toda hebra de la
Api win32 tiene su propia cola de entrada a través de la cual recibe sus mensajes.

S-ar putea să vă placă și