Download 6.2 Funciones de la gestión de archivos - soperativos

Document related concepts

Sistema operativo wikipedia , lookup

Máquina virtual wikipedia , lookup

Historia de los sistemas operativos wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Multiusuario wikipedia , lookup

Transcript
SISTEMAS OPERATIVOS
COMPILACION BIBLIOGRAFICA DE LOS SISTEMAS OPERATIVOS
PRESENTADO A:
CARLOS HERNAN GOMEZ
PRESENTADO POR:
LUKAS CAICEDO CORRALES
NATALY ARENAS VARGAS
LAURA ANDREA BEDOYA MARULANDA
JESUS DAVID JIMENEZ RODRIGUEZ
UNIVERSIDAD NACIONAL DE COLOMBIA, SEDE MANIZALES
ADMINISTRACIÓN DE SISTEMAS INFORMÁTICOS
MANIZALES MARZO 9 DE 2009
INDICE
1. INTRODUCCION
1.1 HISTORIA Y EVOLUCION DE LOS SISTMEAS OPERATIVOS
1.1.1 La Generación Cero (década de 1940)
1.1.2. La primera generación (1945 - 1955): Tubos de vacío y
Tableros enchufables.
1.1.3. La segunda generación (1955 - 1965): Transistores y
Sistemas de lotes
1.1.4. La tercera generación (1965 - 1980): Circuitos
Integrados (CI) y multiprogramación
1.1.5. La cuarta generación (1980 - 1990): Computadoras
Personales.
1.2 CONCEPTOS Y VISION GENERAL DE LOS SISTEMAS
OPERATIVOS
1.2.1 Visión amplia.
1.2.2 Visión restringida.
1.2.3 Administración de tareas.
1.2.3.1 Monotarea.
1.2.3.2 Multitarea.
1.2.4 Administración de usuarios.
1.2.4.1 Monousuario.
1.2.4.2 Multiusuario.
1.2.5 Manejo de recursos.
1.2.5.1 Centralizado.
1.2.5.2 Distribuido.
1.2.6 Interfaces del usuario.
1.2.7 Administración de recursos.
1.2.8 Administración de archivos.
1.2.9 Administración de tareas.
1.2.10 Servicio de soporte.
1.2.11 Características de los Sistemas Operativos.
1.2.12 Clasificación de los sistemas operativos.
1.2.12.1 Sistemas Operativos por lotes.
1.2.12.2 Sistemas Operativos de tiempo real.
1.2.12.3 Sistemas Operativos de multiprogramación
o sistemas operativos multitarea.
1.2.12.4 Sistemas Operativos de tiempo compartido.
1.2.12.5 Sistemas Operativos distribuidos.
2. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
2.1 Estructura Monolítica
2.1.2 Estructura Jerárquica.
2.1.3 Máquina Virtual.
2.1.4 Cliente-Servidor (Microkernel).
2.2 Administración de recursos.
3. GESTION DEL PROCESADOR
3.1 Planeación del espacio
3.2 Administración de procesos
4. GESTION DE MEMORIA
4.1 Memoria real.
4.2 Memoria virtual.
4.3 Espacio De Direcciones.
4.4 Administración de Almacenamiento Secundario.
5. CONCURRENCIA
6. GESTION DE ARCHIVOS / ENTRADA / SALIDA
6.1 Objetivos para un sistema de gestión de archivos
6.2 Funciones de la gestión de archivos
6.3 Arquitectura de los sistemas de archivos
6.4 Criterios en la elección de una organización de archivos
6.5 Las cinco organizaciones fundamentales son
7. PRINCIPIOS DE DISEÑO
8. SISTEMAS OPERATIVOS MULTIPROCESADORES
9. SISTEMAS OPERATIVOS DISTRIBUIDOS
10. SISTEMAS OPERATIVOS TIEMPO REAL / EMBEDIDOS
10.1 Windows XP Embedded
10.2 RTLinux
10.3 ChorusOS
10.4 VxWorks
10.5 QNX
10.6 S.O µltron
10.7 Windows Embedded CE
10.8 Freertos
10.9 Net BSD
10.10 Open BSD
10.11 Linux empotrado
11. PRESENTACION TECNICA DE DISTINTOS SISTEMAS OPERATIVOS
DISPONIBLES EN EL MERCADO
11.1 Sistemas operativos Unix y similares
11.1.1 Unix
11.1.2 Solaris
11.1.3 Linux
11.1.4 Mac os X
11.2 Sistemas operativos Windows
11.2.1 Windows server 2000/2003
11.2.2 Sistema operativo Windows NT 3.51 y 4.0
11.2.3 Windows vista
11.2.4 Windows CE
12. RESUMEN
13. CONCLUCIONES
14. BIBLIOGRAFIA
INTRODUCCION
En el transcurso del tiempo se han referenciado diferentes cambios, que en su afán
de mejoramiento han permitido utilizar nuevas herramientas de comunicación.
Dichas herramientas han tenido un enfoque tecnológico, que ha sido utilizado para
mejorar los procesos y procedimientos de las diferentes actividades realizadas por
un computador; el cual acompañado de su Sistema Operativo, ha sido de gran
utilidad para que las personas puedan comprender de una manera mas adecuada la
funcionalidad de este sistema en todas las aéreas.
El primer computador llamado “Maquina analítica” fue creado por Charles Babage
(1792 – 1871), este no poseía un sistema operativo; desde ese entonces el
hombre en su afán por desarrollar nuevas tecnologías trato de acercarse a la
interpretación del lenguaje de máquina.
Los Sistemas Operativos han venido evolucionando a través de los años, ya que
estos se han apegado íntimamente a la arquitectura de las computadoras en las
cuales se ejecutan, logrando el hombre desarrollar diferentes tipos de Sistemas
Operativos, todo ello para que la persona que manipule estos sistemas pueda
tener una interacción amena con este. Hoy día se encuentran en el mercado
diferentes tipos de Sistemas Operativos, que le permiten al usuario seleccionar el
que se acomode a sus exigencias. No solo se requiere un buen sistema operativo
para llevar a cabo las diferentes funciones que este requiere, sino también, una
buena maquina para que haya una comunicación adecuada entre “hombre y
maquina”.
En este trabajo se pretende dar a conocer la importancia de los sistemas
operativos en el ámbito de la información y la sistematización; sus comienzos y
evoluciones a lo largo del tiempo en beneficio de las personas que requieren hacer
uso de funciones para que sean interpretadas, analizadas y ejecutadas; además
se traen a colación algunos sistemas operativos más comunes en el campo.
INTRODUCCION A LOS SISTEMAS OPERATIVOS
Un Sistema Operativo es un programa que actúa como interface entre el usuario y
el hardware de una computadora. El propósito es proveer un entorno en el cual el
usuario puede ejecutar programas, es decir que un objetivo principal de un
Sistema Operativo es hacer que un sistema sea conveniente de usar. Otro objetivo
es que se use el hardware de manera eficiente, o sea que está íntimamente ligado
a él. Un Sistema Operativo es un programa para un determinado hardware. Otro
objetivo es administrar los recursos de una computadora, tanto de hardware como
de software. Por lo tanto, un Sistema Operativo es un conjunto de programas que
administran un sistema. Para entender qué son los Sistemas Operativos hay que
entender como fueron desarrollándose, Para tratar de comprender los requisitos
de un Sistema Operativo y el significado de las principales características de uno
contemporáneo, es útil considerar como han ido evolucionando éstos con el
tiempo; desde inicios de los 40's hasta la fecha.
1. 1 HISTORIA Y EVOLUCION DE LOS SISTEMAS OPERATIVOS
Los sistemas operativos han venido evolucionando a través de los años, ya que
estos se han apegado íntimamente a la arquitectura de las computadoras en las
cuales se ejecutan.
Inicialmente solo hubo hardware. Las primeras computadoras eran máquinas muy
grandes que se programaban desde una consola. El programador podía escribir
un programa, y luego operar el programa directamente desde la consola del
operador. Primero, el programa tenía que cargarse manualmente en la memoria,
ya sea por medio de switches (llaves de conmutación), cinta de papel, o tarjetas
perforadas. Luego, se apretaban los botones apropiados para cargar la dirección
de comienzo y comenzaba la ejecución del programa. A medida que el programa
corría, el programador/operador podía monitorear su ejecución por medio de luces
en la consola. Si se descubrían errores, el programador podía parar el programa,
examinar los contenidos de la memoria y registros, y corregir el programa
directamente desde la consola. La salida se imprimía o perforaba en cintas o
tarjetas para una impresión posterior. Un aspecto importante de este entorno era
la naturaleza interactiva HANDS-ON. El programador era el operador. Muchos
sistemas usaban un esquema de reserva para otorgar tiempo de maquina: para
usar la maquina.
La primera computadora digital real fue diseñada por el matemático ingles Charles
Babbage (1792 - 1871). Aunque Babbage gasto la mayor parte de su vida y de su
fortuna intentando construir su “ maquina analítica “ , nunca la hizo funcionar
adecuadamente porque era un diseño puramente mecánico y la tecnología de su
época no podía producir las ruedas, el engranaje, levas y otras partes mecánicas
con la alta precisión que el necesitaba. Sin tener que decirlo, la maquina analítica
no tuvo un sistema operativo.
1.1.1. LA GENERACIÓN CERO (DÉCADA DE 1940)
Los sistemas operativos han ido evolucionando durante los últimos 40 años a
través de un número de distintas fases o generaciones que corresponden a
décadas. En 1940, las computadoras electrónicas digitales más nuevas no tenían
sistema operativo. Las Máquinas de ese tiempo eran tan primitivas que los
programas por lo regular manejaban un bit a la vez en columnas de switch's
mecánicos. Eventualmente los programas de lenguaje máquina manejaban
tarjetas perforadas, y lenguajes ensamblador fueron desarrollados para agilizar el
proceso de programación. Los usuarios tenían completo acceso al lenguaje de la
maquina. Todas las instrucciones eran codificadas a mano.
1.1.2. PRIMERA GENERACIÓN (1945 - 1955):
TUBOS DE VACIO Y TABLEROS ENCHUFABLES
Los laboratorios de investigación de la General Motors implementaron el primer
sistema operativo en los 50's, el cual generalmente corría una tarea a la vez y
suavizó la transición entre tareas para obtener máxima utilización del sistema de la
computadora. Los sistemas operativos de los años cincuenta fueron diseñados
para hacer mas fluida la transmisión entre trabajos. Antes de que los sistemas
fueran diseñados, se perdía un tiempo considerable entre la terminación de un
trabajo y el inicio de siguiente. Este fue el comienzo de los sistemas de
procesamiento por lotes, donde los trabajos se reunían por grupo o lotes. Cuando
el trabajo estaba en ejecución, esta tenia control total de la maquina. Al terminar
cada trabajo (bien normal o anormalmente), el control era devuelto al sistema
operativo, el cual "limpiaba" y leía e inicia el trabajo siguiente.
Durante la segunda guerra mundial, alrededor de la mitad de la década de 1940,
Howard Aiken en Hardvard, Jon Von Neumann en el Instituto de Estudios
Avanzados en Princeton, J. Presper Ecker y William Mauchley en la Universidad
de Pennsylvania y Konrad Zuse en Alemania, entre otros, todos obtuvieron
resultados óptimos en la construcción de maquinas de calculo mediante el uso de
tubos de vacío.
En estos primeros días, un grupo singular de personas diseño, construyo,
programo, opero y dio mantenimiento a cada maquina. Toda la programación se
realizo en lenguaje de maquina absoluto. Los lenguajes de programación se
desconocían (todavía no existía el lenguaje ensamblador). Los primeros sistemas
operativos eran extraños. El modo usual de operación consistía en que el
programador firmaba para tener acceso a un bloque de tiempo en la hoja de
registro situada en la pared, después bajaba al cuarto de maquinas, insertaba su
tablero enchufable en la computadora y pasaba las siguientes horas esperando
que ninguno de los 20,000 tubos de vació se fundiera durante la ejecución de su
programa.
Al inicio de la década de 1950, la rutina había mejorado un poco con la
introducción de la tarjetas perforadas. Ahora era posible escribir en tarjetas y
leerlos, en vez de utilizar tableros enchufables; de lo contrario el procedimiento era
el mismo.
1.1.3. SEGUNDA GENERACIÓN (1955 - 1965): TRANSISTORES Y SISTEMAS DE
LOTE
La característica de la segunda generación de los sistemas operativos fue el
desarrollo de los sistemas compartido con multiprogramación, y los principios del
multiprocesamiento. En los sistemas de multiprogramación, varios programas de
usuarios se encuentran el mismo tiempo en el almacenamiento principal, y el
procesador se cambia rápidamente de un trabajo a otro. En los sistemas de
multiprocesamiento se utilizan varios procesadores en un solo sistema
computacional, con la finalidad de incrementar el poder de procesamiento de la
maquina. La independencia de dispositivos aparece después. Un usuario que
deseara escribir datos en una cinta en sistemas de la primera generación tenia
que hacer referencia especifica a una unidad en particular. En los sistemas de la
segunda generación, el programa del usuario especificaba tan solo que un archivo
iba a ser escrito en una unidad de cinta con cierto número de pistas y cierta
densidad. El sistema operativo localizaba, entonces, una unidad de cinta
disponible con las características deseadas, y le indicaba al operador que montara
una cinta en esa unidad.
La introducción del transistor a mediados de la década de 1950 cambio la imagen
radicalmente. Las computadoras se volvieron lo suficientemente confiables, en un
principio hubo una clara separación entre los diseñadores, armadores,
operadores, programadores y personal de mantenimiento.
Estas maquinas se instalaban en cuartos de computadoras especialmente
acondicionados con aire, con cuerpo de operadores profesionales para
accionarlas. Un programador primeramente escribiría el programa en papel (en
FORTRAN o en lenguaje ensamblador) y después lo perforaría en tarjetas.
Después llevaría la pila de tarjetas al cuarto de introducción al sistema y la
entregaría a uno de los operadores el cual iniciaba el proceso en la computadora,
este proceso desperdiciaba mucho tiempo.
Dado el alto costo del equipo, no es sorprendente que las personas buscaran
rápidamente maneras de reducir el tiempo perdido. La solución que generalmente
se adoptaba era el sistema de lote. La idea implícita en este sistema era la de
conjuntar un cajón lleno de trabajos en el cuarto de introducción al sistema y
después leerlos en una cinta magnética mediante el uso de una computadora (
relativamente ) pequeña y poco costosa, como la IBM 1401.
Después de casi una hora de recolectar un lote de trabajos, la cinta se volvía a
enrollar y se llevaba al cuarto de maquinas. Después el operador cargaba un
programa especial ( el ancestro del sistema operativo de hoy en día ) , el cual leía
el primer trabajo y lo ejecutaba, la salida se escribía en una segunda cinta, en vez
de imprimirse. Después de terminar cada trabajo, el sistema operativo leía
automáticamente el siguiente trabajo de la cinta, y comenzaba a ejecutarlo.
La estructura de un trabajo de entrada común arrancaba con una tarjeta $JOB,
que especifica el tiempo máximo de ejecución en minutos, el numero de cuenta
que se cargara y el nombre del programador. Después venia una tarjeta
$FORTRAN, que indicaba al sistema operativo que debía cargar el compilador de
FORTRAN. Venia seguido de un programa que debía compilarse y después de
una tarjeta $LOAD, que ordenaba al sistema operativo cargar el programa objeto
recién compilado, después venia la tarjeta $RUN, que indicaba al sistema
operativo que debía ejecutar el programa con los datos que le seguían. Por ultimo,
la tarjeta $END marcaba el final del trabajo. Los sistemas operativos comunes
eran FMS (el sistema monitor del FORTRAN) e IBSYS, sistema operativo de IBM
de la 7094.
1.1.4. TERCERA GENERACIÓN (1965 - 1980): CIRCUITOS INTEGRADOS
(CI) Y MULTIPROGRAMACIÓN
La tercera generación de sistemas operativos comenzó en forma efectiva, en
1964, con la introducción de la familia de computadores Sistemas/360 de IBM. Las
variadas computadoras 360 fueron diseñadas para ser compatibles con el
hardware, para usar el OS/360 sistema operativo, y para ofrecer mayor poder
computacional a cómo iba avanzando el usuario en las series. Sistemas
operativos más avanzados fueron desarrollados para servir a múltiples usuarios
interactivos a la vez. Los usuarios interactivos se comunicaban con la
computadora vía terminales que están en línea conectadas directamente a la
computadora. Los computadores de la tercera generación fueron diseñados como
sistemas de usos generales. Casi siempre eran sistemas grandes, voluminosos,
con el propósito de serlo todo para toda la gente. Este concepto vendió gran
cantidad de computadores, pero tenía su precio. Los usuarios que necesitaban de
algunas aplicaciones particulares que no requerían de este tipo de poder pagaban
caro el elevado tiempo de ejecución, tiempo de, tiempo de depuración,
mantenimiento, etc. Los sistemas operativos de la tercera generación eran
sistemas de modos múltiples. Algunos soportan simultáneamente procesos por
lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento.
Eran grandes y costosos, nunca antes se había construido algo similar, y muchos
de los esfuerzos de desarrollo terminaron muy arriba del presupuesto y mucho
después de lo que el planificador marcaba como fecha de terminación.
Al inicio de la década de 1960 muchos fabricantes de computadoras tenían dos
líneas de trabajo distintas y totalmente incompatibles. Por un lado existían las
computadoras científicas de grande escala orientadas a las palabras, como la
7094, que se utilizaban para realizar cálculos numéricos de ciencias e ingeniería.
Por el otro lado estaban las computadoras comerciales orientadas a los
caracteres, como 1401, que se utilizaban para el ordenamiento de cintas e
impresión por parte de bancos y compañías de seguros.
El desarrollo y mantenimiento de dos líneas de productos diferentes era una
proposición costosa para los fabricantes. Además, muchos nuevos compradores
de computadoras necesitaban una maquina pequeña, pero después se expandían
y querían una maquina de mayor tamaño que ejecutara todos sus programas
antiguos, pero con mayor velocidad.
IBM intento resolver estos dos problemas de un solo golpe introduciendo en el
mercado el Sistema/360. El 360 era una serie de maquinas compatibles con el
software que variaban del tamaño de la 1401 a una mucho mas poderosa que la
7094, el 360 estaba diseñado para realizar cálculos tanto científicos como
comerciales. Por lo tanto una sola familia de maquinas podía satisfacer las
necesidades de todos los clientes.
El sistema 360 fue la primera línea importante de computadoras que utilizo
circuitos integrados (CI), con lo cual ofreció una mayor ventaja de
precio/rendimiento sobre las maquinas de la segunda generación.
La intención era que todo el software, como el sistema operativo, tenía que
funcionar en todos los modelos. Tenia que correr en sistemas pequeños, y en
sistemas muy grandes. Tenia que funcionar adecuadamente en sistemas con
algunos periféricos y en sistemas con muchos periféricos.
No había manera de que IBM escribiera una pieza de software que cumpliera
todos esos requisitos conflictivos. El resultado fue un sistema operativo enorme y
extraordinariamente complejo. Constaba de millones de líneas de lenguaje
ensamblador escritas por miles de programadores, y contenía miles y miles de
errores ocultos.
A pesar de tamaño y problemas enormes, OS/360 y los sistemas operativos
similares de la tercera generación satisfacían a muchos de sus clientes
razonablemente bien, También popularizaron varias técnicas importantes
ausentes en los sistemas operativos de la segunda generación. La más importante
de estas fue la multiprogramación. Cuando el trabajo corriente se detenía para
esperara a que se completara una operación en cinta u otra operación de E/S, la
unidad central de procesamiento (CPU) simplemente permanecía ociosa hasta
que terminara la operación de E/S. La solución que evoluciono consistía en partir
la memoria en varias partes, con trabajo diferente en cada partición. Mientras que
un trabajo esperaba a que se completara la E/S, otro trabajo podía estar utilizando
la CPU. Si se podían mantener suficientes trabajos en la memoria central al mismo
tiempo, la CPU podía mantenerse ocupada casi el 100% del tiempo.
Otra característica de importancia en los sistemas operativos de la tercera
generación era la capacidad de leer trabajos de tarjetas contenidas en el disco tan
pronto como se llevaban al cuarto de computación. Siempre que se terminaba un
trabajo, el sistema operativo podía cargar uno nuevo del disco en la partición no
vacía y ejecutarlo, esta técnica se denomina manejo por cola de impresión.
Los sistemas operativos de la tercera generación seguían siendo básicamente
sistemas de lote. Con los sistemas operativos de la tercera generación, el tiempo
entre la entrega de un trabajo y la devolución de la salida comprendía a menudo
varias horas.
El deseo de obtener un tiempo de respuesta corto marco el camino para el tiempo
compartido, variante de la multiprogramación, en la cual cada usuario tiene una
terminal en línea. En un sistema de tiempo compartido si hay 20 usuarios dentro
del sistema y 17 de ellos están pensando o platicando o bien tomando café, la
CPU puede distribuirse en turno para los tres trabajos que necesitan servicio.
Aunque el primer sistema de tiempo compartido (CTSS) serio fue creado en MIT
en una unidad 7094 especialmente modificada, no se volvió popular sino hasta
que el hardware de protección necesario se disemino durante la tercera
generación.
Otro avance durante la tercera generación fue el crecimiento de las
minicomputadoras, comenzando con DEC PDP-1 en 1961. Uno de los científicos
que había trabajado en el proyecto MULTICS, Ken Thompson, hallo después una
pequeña PDP-7 y empezó a escribir después una versión desguarnecida de
MULTICS para un usuario. Este sistema se llamo “UNICS”
(Uniplexed information and computing service, información unicanalizada y
servicio de computación), pero su ortografía cambio mas tarde por UNIX. UNIX se
ha desplazado a más computadoras que ningún otro sistema operativo de la
historia y su uso sigue aumentando rápidamente.
1.1.5. CUARTA GENERACIÓN (1980 - 1990): COMPUTADORAS PERSONALES
Los sistemas de la cuarta generación constituyen el estado actual de la tecnología.
Muchos diseñadores y usuarios se sienten aun incómodos, después de sus
experiencias con los sistemas operativos de la tercera generación, y se muestran
cautelosos antes de comprometerse con sistemas operativos complejos. Con la
ampliación del uso de redes de computadores y del procesamiento en línea los
usuarios obtienen acceso a computadores alejados geográficamente a través de
varios tipos de terminales. El microprocesador ha hecho posible la aparición de la
computadora personal, uno de los desarrollos de notables consecuencias sociales
más importantes de las últimas décadas. Ahora muchos usuarios han desarrollado
sistemas de computación que son accesibles para su uso personal en cualquier
momento del día o de la noche. La potencia de computador, que costaba varios
cientos de miles de dólares al principio de la década de 1960, hoy es accesible por
menos de mil dólares. El porcentaje de la población que tiene acceso a un
computador en la década de los ochenta es mucho mayor y aumento rápidamente.
Individuos podían tener su propia computadora para realizar parte de su trabajo, y
utilizar facilidades de comunicación para transmitir datos entre sistemas. La
aplicación de paquetes de software tales como procesadores de palabras,
paquetes de bases de datos y paquetes de gráficos ayudaron a la evolución de la
computadora personal. La llave era transferir información entre computadoras en
redes de trabajo de computadoras. El correo electrónico, transferencia de
archivos, y aplicaciones de acceso a bases de datos proliferaron. El modelo
cliente-servidor fue esparcido. El campo de ingeniería de software continuó
evolucionando con una mayor confianza proveniente de los E.U. Los ambientes
del usuario, altamente simbólicos, mnemónicos y orientados hacia las siglas de las
décadas de los sesenta y setenta, están siendo reemplazados, en la década de
los ochenta, por los sistemas controlados por menú, los cuales guían al usuario a
lo largo de varias opciones expresadas en un lenguaje sencillo. En los 90's
habremos de entrar a la era de la verdadera distribución de computación en la cual
calcula dentro de subcalculos que pueden ser ejecutados en otros procesadores
en computadoras de múltiples procesadores y en conmutadores de red. Estos
tipos de conectividad son facilitados para abrir sistemas estándar y protocolos que
se empiezan desarrollar para grupos.
Con la creación de los circuitos integrados LSI (integración a grande escala), chips
que contiene miles de transistores en un centímetro cuadrado de silicón, la era de
computadora personal vio sus inicios.
Dos sistemas operativos han dominado la escena de la computadora personal:
MS-DOS, escrito por Microsoft, Inc., para la IBM PC y otras computadoras que
utilizan la CPU Intel 8088 y sus sucesores. y UNIX, que domina en las
computadoras personales mayores que hacen uso de CPU Motorola 68000.
Aunque la versión inicial de MS-DOS era relativamente primitiva, versiones
subsiguientes han incluido más y más características de UNIX, lo que no es
totalmente sorprendente dado que Microsoft es un proveedor importante de UNIX,
que usa el nombre comercial de XENIX.
Un avance importante que empezó a tomar su sitio a mediados de la década de
1980 es el desarrollo de redes de computadoras personales que corren sistemas
operativos en red y sistemas operativos distribuidos. En un sistema operativo en
red, los usuarios tienen conocimiento de la existencia de múltiples computadoras y
pueden ingresar en maquinas remotas y reproducir archivos de una maquina a la
otra. Cada maquina ejecuta su sistema operativo local y tiene un usuario propio (o
usuarios).
Un sistema distribuido, es aquel que se presenta ante sus usuarios como un
sistema uniprocesador tradicional, aunque en realidad este compuesto de
múltiples procesadores. En un sistema distribuido real, los usuarios no tienen
conocimiento de donde se están ejecutando sus programas o de donde están
ubicados sus archivos; todo esto se debe manejar en forma automática y eficiente
por medio del sistema operativo.
Los sistemas operativos en red no son fundamentalmente diferentes de los
sistemas operativos uniprocesadores. Sin duda necesitan un controlador de
interfaz en red y algún software de bajo nivel para impulsarlo, así como programas
para lograr un ingreso remoto al sistema y un acceso remoto del archivo.
Los sistemas operativos distribuidos reales requieren más que simplemente
agregar un poco de código a un sistema operativo uniprocesador, ya que los
sistemas operativos distribuidos y centralizados difieren de manera decisiva.
1.2 CONCEPTOS Y VISION GENERAL DE LOS SISTEMAS OPERATIVOS
Un Sistema Operativo es un administrador de recursos y una interfaz con los
programas, los usuarios y el Hardware.
Sus funciones son:
 Compartir el hardware entre usuarios
 Facilitar la entrada salida




Planificar recursos entre usuarios
Definir la “interfaz de usuario”
Permitir a los usuarios compartir los datos
Recuperarse de los errores
Los recursos claves que un Sistema Operativo administra son: Los procesadores
y los dispositivos de E/S, el almacenamiento y los datos.
1.2.1 Visión amplia Disponer de un entorno para crear y mantener programas,
Disponer de una interfaz sofisticada para las operaciones del programador,
gestionar los recursos del sistema.
1.2.2 Visión restringida Básicamente el núcleo del sistema con las funciones y
estructuras de datos necesarios para gestionar los recursos CPU, memoria,
dispositivos de E/S, procesos.
1.2.3 Administración de tareas
1.2.3.1 Monotarea: Solamente puede ejecutar un proceso (aparte de los
procesos del propio S.O.) en un momento dado. Una vez que empieza a
ejecutar un proceso, continuará haciéndolo hasta su finalización y/o
interrupción.
1.2.3.2 Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo.
Este tipo de S.O. normalmente asigna los recursos disponibles (CPU,
memoria, periféricos) de forma alternada a los procesos que los solicitan, de
manera que el usuario percibe que todos funcionan a la vez, de forma
concurrente.
1.2.4 Administración de usuarios
1.2.4.1 Monousuario: Si sólo permite ejecutar los programas de un usuario
al mismo tiempo.
1.2.4.2 Multiusuario: Si permite que varios usuarios ejecuten
simultáneamente sus programas, accediendo a la vez a los recursos de la
computadora. Normalmente estos sistemas operativos utilizan métodos de
protección de datos, de manera que un programa no pueda usar o cambiar
los datos de otro usuario.
1.2.5 Manejo de recursos
1.2.5.1 Centralizado: Si permite utilizar los recursos de una sola
computadora.
1.2.5.2 Distribuido: Si permite utilizar los recursos (memoria, CPU, disco,
periféricos.) de más de una computadora al mismo tiempo.
1.2.6 Interfaces del usuario
Es la parte del sistema operativo que permite comunicarse con él de tal manera
que se puedan cargar programas, acceder archivos y realizar otras tareas. Existen
tres tipos básicos de interfaces: las que se basan en comandos, las que utilizan
menús y las interfaces gráficas de usuario.
1.2.7 Administración de recursos
Sirven para administrar los recursos de hardware y de redes de un sistema
informativo, como el CPU memoria, dispositivos de almacenamiento secundario y
periféricos de entrada y de salida.
1.2.8 Administración de archivos
Un sistema de información contiene programas de administración de archivos que
controlan la creación, borrado y acceso de archivos de datos y de programas.
También implica mantener el registro de la ubicación física de los archivos en los
discos magnéticos y en otros dispositivos de almacenamiento secundarios.
1.2.9 Administración de tareas
Los programas de administración de tareas de un sistema operativo administran la
realización de las tareas informáticas de los usuarios finales. Los programas
controlan que áreas tiene acceso al CPU y por cuánto tiempo. Las funciones de
administración de tareas pueden distribuir una parte específica del tiempo del CPU
para una tarea en particular, e interrumpir al CPU en cualquier momento para
sustituirla con una tarea de mayor prioridad.
1.2.10 Servicio de soporte
Los servicios de soporte de cada sistema operativo dependerán de la
implementación particular de éste con la que estemos trabajando. Entre las más
conocidas se pueden destacar las implementaciones de Unix, desarrolladas por
diferentes empresas de software, los sistemas operativos de Apple Inc, como Mac
OS X para las computadoras de Apple, los sistemas operativos de Microsoft, y las
implementaciones de Software libre, como Linux o BSD producidas por empresas,
universidades, administraciones públicas, organizaciones sin fines de lucro y/o
comunidades de desarrollo.
Estos servicios de soporte suelen consistir en:
 Actualización de versiones.
 Mejoras de seguridad.
 Inclusión de alguna nueva utilidad (un nuevo entorno gráfico, un asistente
para administrar alguna determinada función).
 Controladores para manejar nuevos periféricos (este servicio debe
coordinarse a veces con el fabricante del hardware).
 Corrección de errores de Software.
 Otros.
No todas las utilidades de administración o servicios forman parte del sistema
operativo, además de éste, hay otros tipos importantes de software de
administración de sistemas, como los sistemas de administración de base de
datos o los programas de administración de redes. El soporte de estos productos
deberá proporcionarlo el fabricante correspondiente (que no tiene porque ser el
mismo que el del sistema operativo).
1.2.11 Características de los Sistemas Operativos.
En general, se puede decir que un Sistema Operativo tiene las siguientes
características:
 Conveniencia. Un Sistema Operativo hace más conveniente el uso de una
computadora.
 Eficiencia. Un Sistema Operativo permite que los recursos de la
computadora se usen de la manera más eficiente posible.
 Habilidad para evolucionar. Un Sistema Operativo deberá construirse de
manera que permita el desarrollo, prueba o introducción efectiva de nuevas
funciones del sistema sin interferir con el servicio.
 Encargado de administrar el hardware. El Sistema Operativo se encarga de
manejar de una mejor manera los recursos de la computadora en cuanto a
hardware se refiere, esto es, asignar a cada proceso una parte del
procesador para poder compartir los recursos.
 Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo
se debe encargar de comunicar a los dispositivos periféricos, cuando el
usuario así lo requiera.
 Organizar datos para acceso rápido y seguro.
 Manejar las comunicaciones en red. El Sistema Operativo permite al
usuario manejar con alta facilidad todo lo referente a la instalación y uso de
las redes de computadoras.
 Procesamiento por bytes de flujo a través del bus de datos.
 Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al
usuario el acceso y manejo de los dispositivos de Entrada/Salida de la
computadora.
 Técnicas de recuperación de errores.
 Evita que otros usuarios interfieran. El Sistema Operativo evita que los
usuarios se bloqueen entre ellos, informándoles si esa aplicación esta
siendo ocupada por otro usuario.
 Generación de cálculos estadísticas.
 Permite que se puedan compartir el hardware y los datos entre los usuarios.
 El software de aplicación son programas que se utilizan para diseñar, tal
como el procesador de palabras, lenguajes de programación, hojas de
cálculo, etc.
 El software de base sirve para interactuar el usuario con la máquina, son un
conjunto de programas que facilitan el ambiente plataforma, y permite el
diseño del mismo.
 El Software de base está compuesto por :
Cargadores.
Compiladores.
Ensambladores.
Macros.
1.2.12 Clasificación de los sistemas operativos.
Con el paso del tiempo, los Sistemas Operativos fueron clasificándose de
diferentes maneras, dependiendo del uso o de la aplicación que se les daba. A
continuación se mostrarán diversos tipos de Sistemas Operativos que existen en
la actualidad, con algunas de sus características:
1.2.12.1 Sistemas Operativos por lotes.
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos
con poca o ninguna interacción entre los usuarios y los programas en
ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo
tiempo, evitando la espera de dos o más trabajos como sucede en el
procesamiento en serie. Estos sistemas son de los más tradicionales y
antiguos, y fueron introducidos alrededor de 1956 para aumentar la
capacidad de procesamiento de los programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de
ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas
Operativos pueden ser simples, debido a la secuenciabilidad de la ejecución
de los trabajos. Algunos ejemplos de Sistemas Operativos por lotes
exitosos son el SCOPE, del DC6600, el cual está orientado a
procesamiento científico pesado, y el EXEC II para el UNIVAC 1107,
orientado a procesamiento académico.
Algunas otras características con que cuentan los Sistemas Operativos por
lotes son:
 Requiere que el programa, datos y órdenes al sistema sean remitidos
todos juntos en forma de lote.
 Permiten poca o ninguna interacción usuario/programa en ejecución.
 Mayor potencial de utilización de recursos que procesamiento serial
simple en sistemas multiusuario.
 No conveniente para desarrollo de programas por bajo tiempo de retorno
y depuración fuera de línea.
 Conveniente para programas de largos tiempos de ejecución (ej. análisis
estadísticos, nóminas de personal, etc.)
 Se encuentra en muchos computadores personales combinados con
procesamiento serial.
 Planificación del procesador sencilla, típicamente procesados en orden
de llegada.
 Planificación de memoria sencilla, generalmente se divide en dos: parte
residente del S.O. y programas transitorios.
 No requieren gestión crítica de dispositivos en el tiempo.
 Suelen proporcionar gestión sencilla de manejo de archivos: se requiere
poca protección y ningún control de concurrencia para el acceso.
1.2.12.2 Sistemas Operativos de tiempo real.
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene
importancia el usuario, sino los procesos. Por lo general, están
subutilizados sus recursos con la finalidad de prestar atención a los
procesos en el momento que lo requieran. Se utilizan en entornos donde
son procesados un gran número de sucesos o eventos.
Muchos Sistemas Operativos de tiempo real son construidos para
aplicaciones muy específicas como control de tráfico aéreo, bolsas de
valores, control de refinerías, control de laminadores. También en el ramo
automovilístico y de la electrónica de consumo, las aplicaciones de tiempo
real están creciendo muy rápidamente. Otros campos de aplicación de los
Sistemas Operativos de tiempo real son los siguientes:
 Control de trenes.
 Telecomunicaciones.
 Sistemas de fabricación integrada.
 Producción y distribución de energía eléctrica.
 Control de edificios.
 Sistemas multimedia.
Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks,
Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real,
cuentan con las siguientes características:






Se dan en entornos en donde deben ser aceptados y procesados gran
cantidad de sucesos, la mayoría externos al sistema computacional, en
breve tiempo o dentro de ciertos plazos.
Se utilizan en control industrial, conmutación telefónica, control de vuelo,
simulaciones en tiempo real., aplicaciones militares, etc.
Objetivo es proporcionar rápidos tiempos de respuesta.
Procesa ráfagas de miles de interrupciones por segundo sin perder un
solo suceso.
Proceso se activa tras ocurrencia de suceso, mediante interrupción.
Proceso de mayor prioridad expropia recursos.
Por tanto generalmente se utiliza planificación expropiativa basada en
prioridades.
Gestión de memoria menos exigente que tiempo compartido, usualmente
procesos son residentes permanentes en memoria.
Población de procesos estática en gran medida.
Poco movimiento de programas entre almacenamiento secundario y memoria.
Gestión de archivos se orienta más a velocidad de acceso que a utilización
eficiente del recurso.
1.2.12.3 Sistemas Operativos de multiprogramación (o Sistemas
Operativos de multitarea).
Se distinguen por sus habilidades para poder soportar la ejecución de dos o
más trabajos activos (que se están ejecutado) al mismo tiempo. Esto trae como
resultado que la Unidad Central de Procesamiento (UCP) siempre tenga
alguna tarea que ejecutar, aprovechando al máximo su utilización.
Su objetivo es tener a varias tareas en la memoria principal, de manera que
cada uno está usando el procesador, o un procesador distinto, es decir,
involucra máquinas con más de una UCP.
Sistemas Operativos como UNIX, WINDOWS 95, WINDOWS 98, WINDOWS
NT, MAC-OS, OS/2, soportan la multitarea.
Las características de un Sistema Operativo de multiprogramación o multitarea
son las siguientes:
 Mejora productividad del sistema y utilización de recursos.
 Multiplexa recursos entre varios programas.
 Generalmente soportan múltiples usuarios (multiusuarios).
 Proporcionan facilidades para mantener el entorno de usuarios individuales.
 Requieren validación de usuario para seguridad y protección.
 Proporcionan contabilidad del uso de los recursos por parte de los usuarios.
 Multitarea sin soporte multiusuario se encuentra en algunos computadores
personales o en sistemas de tiempo real.
 Sistemas multiprocesadores son sistemas multitareas por definición ya
que soportan la ejecución simultánea de múltiples tareas sobre diferentes
procesadores.
En general, los sistemas de multiprogramación se caracterizan por tener
múltiples programas activos compitiendo por los recursos del sistema:
procesador, memoria, dispositivos periféricos.
1.2.12.4 Sistemas Operativos de tiempo compartido.
Permiten la simulación de que el sistema y sus recursos son todos para cada
usuario. El usuario hace una petición a la computadora, esta la procesa tan
pronto como le es posible, y la respuesta aparecerá en la terminal del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos
de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada
usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae
como consecuencia una gran carga de trabajo al Sistema Operativo,
principalmente en la administración de memoria principal y secundaria.
Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y
DEC-10.
Características de los Sistemas Operativos de tiempo compartido:
 Populares representantes de sistemas multiprogramados multiusuario, ej:
sistemas de diseño asistido por computador, procesamiento de texto etc.
 Dan la ilusión de que cada usuario tiene una máquina para sí.
 La Mayoría utilizan algoritmo de reparto circular.
 Los Programas se ejecutan con prioridad rotatoria que se incrementa con la
espera y disminuye después de concedido el servicio.
 Evitan monopolización del sistema asignando tiempos de procesador (time
slot).
 La Gestión de memoria proporciona protección a programas residentes.
 La Gestión de archivo debe proporcionar protección y control de acceso
debido a que pueden existir múltiples usuarios accesando un mismo
archivo.
1.2.12.5 Sistemas Operativos distribuidos.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de
procesadores. Puede ser que este conjunto de procesadores esté en un equipo
o en diferentes, en este caso es trasparente para el usuario. Existen dos
esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel
que comparte la memoria y un reloj global, cuyos tiempos de acceso son
similares para todos los procesadores. En un sistema débilmente acoplado los
procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con
su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un
componente del sistema se compone otro componente debe de ser capaz de
reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los
siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Características de los Sistemas Operativos distribuidos:
 Colección de sistemas autónomos capaces de comunicación y cooperación
mediante interconexiones hardware y software .
 Gobierna operación de un S.C. y proporciona abstracción de máquina
virtual a los usuarios.
 El Objetivo clave es la transparencia.
 Generalmente proporcionan medios para la compartición global de
recursos.
 Servicios añadidos: denominación global, sistemas de archivos distribuidos,
facilidades para distribución de cálculos (a través de comunicación de
procesos internodos, llamadas a procedimientos remotos, etc.).
 Sistemas Operativos de red.
 Son aquellos sistemas que mantienen a dos o más computadoras unidas a
través de algún medio de comunicación (físico o no), con el objetivo
primordial de poder compartir los diferentes recursos y la información del
sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un
procesador Motorola 68000, pasando posteriormente a procesadores Intel
como Novell Netware.
Los Sistemas Operativos de red más ampliamente usados son: Novell
Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX,
LANtastic.
2. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
La estructura interna de los sistemas operativos puede ser muy diferente.
Se deben tener en cuenta:
 Metas de los usuarios: ser amigable, intuitivo, confiable, seguro, rápido.
 Metas del sistema: fácil de diseñar, implementar y mantener, también
flexible, confiable y eficiente.
Estas son unas de las distintas ESTRUCTURAS que presentan los actuales
sistemas operativos para satisfacer las necesidades que de ellos se quieren
obtener.
2.1 Estructura Monolítica.
Es la estructura de los primeros sistemas operativos constituidos
fundamentalmente por un solo programa compuesto de un conjunto de rutinas
entrelazadas de tal forma que cada una puede llamar a cualquier otra. Las
características fundamentales de este tipo de estructura son:

Construcción del programa final a base de módulos compilados
separadamente que se unen a través del ligador.

Buena definición de parámetros de enlace entre las distintas rutinas
existentes, que puede provocar mucho acoplamiento.

Carecen de protecciones y privilegios al entrar a rutinas que manejan
diferentes aspectos de los recursos de la computadora, como memoria, disco,
etc.
Generalmente están hechos a medida, por lo que son eficientes y rápidos en su
ejecución y gestión, pero por lo mismo carecen de flexibilidad para soportar
diferentes ambientes de trabajo o tipos de aplicaciones.
2.1.2 Estructura Jerárquica.
A medida que fueron creciendo las necesidades de los usuarios y se
perfeccionaron los sistemas, se hizo necesaria una mayor organización del
software, del sistema operativo, donde una parte del sistema contenía subpartes y
esto organizado en forma de niveles.
Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de
ellas estuviera perfectamente definida y con un claro interface con el resto de
elementos.
Se constituyó una estructura jerárquica o de niveles en los sistemas operativos, el
primero de los cuales fue denominado THE (Technische Hogeschool, Eindhoven),
de Dijkstra, que se utilizó con fines didácticos. Se puede pensar también en estos
sistemas como si fueran `multicapa'. Multics y Unix caen en esa categoría.
En la estructura anterior se basan prácticamente la mayoría de los sistemas
operativos actuales. Otra forma de ver este tipo de sistema es la denominada de
anillos concéntricos o "rings".
En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o
trampa (trap), por donde pueden entrar las llamadas de las capas inferiores. De
esta forma, las zonas más internas del sistema operativo o núcleo del sistema
estarán más protegidas de accesos indeseados desde las capas más externas.
Las capas más internas serán, por tanto, más privilegiadas que las externas.
2.1.3 Máquina Virtual.
Se trata de un tipo de sistemas operativos que presentan una interface a cada
proceso, mostrando una máquina que parece idéntica a la máquina real
subyacente. Estos sistemas operativos separan dos conceptos que suelen estar
unidos en el resto de sistemas: la multiprogramación y la máquina extendida. El
objetivo de los sistemas operativos de máquina virtual es el de integrar distintos
sistemas operativos dando la sensación de ser varias máquinas diferentes.
El núcleo de estos sistemas operativos se denomina monitor virtual y tiene como
misión llevar a cabo la multiprogramación, presentando a los niveles superiores
tantas máquinas virtuales como se soliciten. Estas máquinas virtuales no son
máquinas extendidas, sino una réplica de la máquina real, de manera que en cada
una de ellas se pueda ejecutar un sistema operativo diferente, que será el que
ofrezca la máquina extendida al usuario
2.1.4 Cliente-Servidor
El tipo más reciente de sistemas operativos es el denominado Cliente-servidor,
que puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o
pequeñas.
Este sistema sirve para toda clase de aplicaciones por tanto, es de propósito
general y cumple con las mismas actividades que los sistemas operativos
convencionales.
El núcleo tiene como misión establecer la comunicación entre los clientes y los
servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo,
un programa de aplicación normal es un cliente que llama al servidor
correspondiente para acceder a un archivo o realizar una operación de
entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede
actuar como servidor para otro." [Alcal92]. Este paradigma ofrece gran flexibilidad
en cuanto a los servicios posibles en el sistema final, ya que el núcleo provee
solamente funciones muy básicas de memoria, entrada/salida, archivos y
procesos, dejando a los servidores proveer la mayoría que el usuario final o
programador puede usar. Estos servidores deben tener mecanismos de seguridad
y protección que, a su vez, serán filtrados por el núcleo que controla el hardware.
Actualmente se está trabajando en una versión de UNIX que contempla en su
diseño este paradigma.
2.2. Administración de recursos:
Debido a la creciente demanda de recursos de almacenamiento, a medida que las
organizaciones van desarrollando cada día una mayor dependencia de sus datos,
los administradores de tecnologías de la información se enfrentan al reto de
supervisar una infraestructura de almacenamiento cada vez más compleja y de
mayor tamaño y, al mismo tiempo, realizar un seguimiento del tipo de información
disponible en ella. Actualmente, la administración de recursos de almacenamiento
no sólo abarca el tamaño y la disponibilidad de los datos, sino también la
aplicación de directivas empresariales y una buena comprensión del uso del
almacenamiento existente que permita contar con un planeamiento estratégico
sólido y dar una respuesta adecuada a los cambios organizativos.
El Administrador de recursos del servidor de archivos es un conjunto de
herramientas que permite a los administradores entender, controlar y administrar
la cantidad y el tipo de datos almacenados en los servidores. Los administradores
pueden utilizarlo para asignar cuotas a carpetas y volúmenes, realizar un filtrado
activo de los archivos y generar informes de almacenamiento exhaustivos. Este
conjunto de instrumentos avanzados no sólo permite al administrador supervisar
los recursos de almacenamiento existentes, sino que además le ayudan a planear
e implementar futuros cambios de directivas.
3. GESTION DEL PROCESADOR
3.1 Planeación y despacho
El sistema debe ser capaz de cargar un programa a memoria y ejecutarlo. El
programa deberá poder finalizar su ejecución y finalizar de forma normal o
anormal (indicando un error).
Los llamados al sistema (system calls) son una interfaz, provista por el núcleo,
para que los procesos de usuarios accedan a los diferentes servicios que brinda el
sistema operativo. Al principio los system calls estaban programados en lenguaje
ensamblador. En los sistemas modernos están programados en lenguajes de
programación como C o C++. De esta forma, los programas de usuario tienen un
acceso más directo a los servicios. Los servicios son invocados por los procesos
en modo usuario, cuando ejecutan lo hacen en modo monitor, y al retornar vuelven
al modo usuario. Típicamente a los system call se les asocia un número.
La llamada de un system call incluye las siguientes tareas:



Cargar los parámetros en el lugar adecuado (Stack).
Cargar el número de system call en algún registro específico (Ej: eax en
Intel).
Invocar a la interrupción por software (trap) adecuada (system call handler).
La interrupción cambia el bit de modo a monitor, controla que el número de system
call pasado en el registro sea menor que el mayor del sistema y, finalmente,
invoca al system call correspondiente. El valor retornado por el system call es
puesto en un registro específico (Ej: eax en Intel).
3.2 Administración de Procesos
Proceso: Un programa en la memoria más CPU, dispositivos y recursos
constituyen un proceso. Un programa es una entidad pasiva, mientras que un
proceso es una entidad activa. Cada proceso cuenta con un contador de programa
(PC program counter) que determina la próxima instrucción de código a ejecutar.
El proceso necesita de ciertos recursos (CPU, memoria, archivos, y dispositivos de
E/S) para realizar su tarea. Un proceso es un programa en ejecución con un
estado asociado. Las distintas aplicaciones que se pueden ejecutar en un sistema
operativo multitarea son procesos independientes. Con independientes queremos
decir que cada una de ellas ocupa un espacio de memoria independiente (para no
interferir con la ejecución de otros procesos). En realidad, una aplicación puede
implementarse como un conjunto de procesos independientes en el sentido
anterior pero que colaboren entre sí para lograr sus objetivos, para lo que se
pueden emplear distintos mecanismos de comunicación entre procesos (entre los
que se encuentran los sockets TCP/IP, .NET Remoting y los Servicios Web, entre
otros muchos).
El sistema albergará muchos procesos compitiendo por los recursos y será el
responsable de proveer de medios o servicios para que realicen su tarea:
 Crear y destruir procesos.
 Suspensión y reanudación de procesos.


Proveer mecanismos para la cooperación (sincronización) y comunicación
entre los procesos.
Proveer mecanismos para prever la generación de deadlocks o lograr salir
de ellos.
A través de los registros se pasan lo parámetros al sistema. Se utilizan un
conjunto de registros para pasar los parámetros. Tiene el problema de la cantidad
4. GESTION DE MEMORIA
La memoria principal es un arreglo de palabras o bytes. También se pasan por acá
los parámetros al sistema con un bloque de memoria apuntado a través de un
registro.
Es un repositorio de datos de rápido acceso compartido por los CPUs y los
dispositivos. La memoria es un área de almacenamiento común a los
procesadores y dispositivos del sistema dónde se almacenan programas, para su
ejecución, y datos. El vincular programas a direcciones absolutas es fuertemente
dependiente del hardware igual que la posibilidad de reubicación.
El sistema deberá administrar el lugar libre y ocupado, decidir qué proceso podrá
comenzar cuándo es cargado en memoria.
Para lograr la multiprogramación es necesario mantener varios programas en
memoria al mismo tiempo. Existen varios esquemas para la administración de
la memoria y requieren distinto soporte del hardware. El sistema operativo es
responsable de las siguientes tareas:
 Mantener que partes de la memoria están siendo utilizadas y por quién.
 Decidir cuales procesos serán cargados a memoria cuando exista espacio
de memoria disponible.
 Asignar y quitar espacio de memoria según sea necesario.
4.1 Memoria real
La memoria real o principal es en donde son ejecutados los programas y procesos
de una computadora y es el espacio real que existe en memoria para que se
ejecuten los procesos. Por lo general esta memoria es de mayor costo que la
memoria secundaria, pero el acceso a la información contenida en ella es de más
rápido acceso. Solo la memoria cache es más rápida que la principal, pero su
costo es a su vez mayor.
4.2 Memoria virtual
El término memoria virtual se asocia a dos conceptos que normalmente a
parecen unidos:
1. El uso de almacenamiento secundario para ofrecer al conjunto de las
aplicaciones la ilusión de tener mas memoria RAM de la que realmente hay en el
sistema. Esta ilusión de existe tanto a nivel del sistema, es decir, teniendo en
ejecución mas aplicaciones de las que realmente caben en la memoria principal,
sin que por ello cada aplicación individual pueda usar mas memoria de la que
realmente hay o incluso de forma mas general, ofreciendo a cada aplicación mas
memoria de la que existe físicamente en la maquina.
2. Ofrecer a las aplicaciones la ilusión de que están solas en el sistema, y que por
lo tanto, pueden usar el espacio de direcciones completo. Esta técnica facilita
enormemente la generación de código, puesto que el compilador no tiene porque
preocuparse sobre dónde residirá la aplicación cuando se ejecute.
4.3 Espacio De Direcciones
Los espacios de direcciones involucrados en el manejo de la memoria son de tres
tipos:
 Direcciones físicas: Son aquellas que referencian alguna posición en la
memoria física.
 Direcciones lógicas: Son las direcciones utilizadas por los procesos.
Sufren una serie de transformaciones, realizadas por el procesador (la
MMU), antes de convertirse en direcciones físicas.
 Direcciones lineales: Direcciones lineales se obtienen a partir de
direcciones lógicas tras haber aplicado una transformación dependiente de
la arquitectura.
Los programas de usuario siempre tratan con direcciones virtuales ; nunca ven las
direcciones físicas reales.
4.4 Administración de Almacenamiento Secundario
La memoria principal es volátil y demasiado pequeña para guardar todos los datos
y programas que son necesarios para el funcionamiento del sistema. La mayoría
de los sistemas actuales utilizan discos como principal medio para guardar toda la
información. El sistema operativo es responsable de las siguientes actividades en
administración de almacenamiento secundario:
 Administrar el espacio libre.
 Asignación del lugar de la información.
 Algoritmos de planificación de disco.
 Subsistema de archivos.
Proporciona una vista uniforme de todas las formas de almacenamiento en los
diferentes dispositivos implementando el concepto de archivo como una colección
arbitraria de bytes u otras clases o organizaciones mas sofisticadas aunque
habitualmente obsoletas. Implementará los métodos de:
 Abrir, Cerrar, Extender.
 Leer, Escribir.
5. CONCURRENCIA
Aunque en su principio la programación concurrente era feudo de los sistemas
operativos (además de programarse a bajo nivel en ensamblador), la llegada del
concepto de thread (hilo), de los lenguajes orientados a objetos que permiten la
concurrencia e Internet han propiciado que este tipo de programación tenga más
importancia en estos momentos.
Algunas definiciones y conceptos fundamentales:

Dos procesos serán concurrentes cuando la primera instrucción de uno de
ellos se ejecuta después de la primera del otro y antes de la última.

Si se ejecutan los dos procesos al mismo tiempo, se trata de
programación paralela.

Un programa en ejecución puede dar lugar a más de un proceso, cada uno
de ellos ejecutando una parte del programa.

Un proceso es una actividad asíncrona susceptible de ser asignada a un
procesador.

Para que los procesos puedan colaborar y competir por los recursos son
necesarios mecanismos de comunicación y sincronización entre procesos.

La concurrencia en sistemas monoprocesador hace que el Sistema
operativo alterne el tiempo de procesador entre los distintos procesos,
dando lugar a la multiprogramación.

En los sistemas multiprocesador, se encuentran:
o
o
o
Sistemas multiprocesador fuertemente acoplados: Tanto
procesadores como memoria y otros dispositivos están conectados a
un bus. Ello hace que todos los procesadores compartan la misma
memoria. En estos sistemas la sincronización y comunicación entre
procesos se hace mediante variables compartidas.
Sistemas multiprocesador débilmente acoplados: no existe
memoria compartida por los procesadores. Cada procesador tiene su
memoria local y se conecta a otros procesadores mediante algún tipo
de comunicación. Un ejemplo de este tipo de sistemas son los
distribuidos, formados por nodos distribuidos geográficamente y
conectados de alguna forma.
Multiproceso: Gestión de varios procesos dentro de un sistema
multiprocesador donde cada procesador puede acceder a una
memoria común.
o
Procesamiento distribuido: Gestión de varios procesos en
procesadores separados, cada uno con su memoria local. La forma
de comunicar y sincronizar en este caso es mediante paso de
mensajes.

Programación concurrente orientada
paradigmas concurrente y objetos.
a
objetos:

Programa concurrente: Conjunto de acciones que pueden ser ejecutadas
simultáneamente.

Programa paralelo: Programa concurrente diseñado para ejecutarse en un
sistema multiprocesador.

Programa distribuido: Programa paralelo diseñado para ejecutarse en un
sistema distribuido.
Unión
de
los
6. GESTION DE ARCHIVOS /Entrada/Salida
Un Sistema de gestión de archivos es aquel conjunto de software del sistema
que proporciona servicios a usuarios y aplicaciones para el uso de archivos.
Normalmente la única forma en que un usuario o aplicación puede acceder a los
archivos es mediante el sistema de gestión de archivos. Esto libera al usuario o
programador, de la necesidad de desarrollar software de propósito especifico para
cada aplicación.
Cuando se habla de archivos, habitualmente se utilizan cuatro términos:
1. Campo: Es el elemento de datos básico. Un campo individual contiene un valor
único, se caracteriza por su longitud y por el tipo de datos, dependiendo del diseño
del archivo, los campos pueden ser de tamaño fijo o variable. En este último caso
el campo consta de dos o tres subcampos: el valor real a almacenar, el nombre
del campo y la longitud del campo.
2. Registro: Es un conjunto de campos relacionados que pueden tratarse como
una unidad en algunos programas de aplicación. Los registros pueden ser de
longitud fija o variable, es de longitud variable si algunos de sus campos son de
longitud variable o si el número de campos puede variar, el registro entero incluye
un campo de longitud.
3. Archivo: Es un conjunto de registros similares, los usuarios y las aplicaciones
tratan al archivo como una entidad única y se refieren a él por un nombre, tienen
nombres únicos y pueden crearse y borrarse, las restricciones al control de
accesos suelen aplicarse a los archivos.
4. Base de datos: Es un conjunto de datos relacionados, el aspecto fundamental
es que las relaciones que existen entre los elementos son explícitas, y que esta
diseñada para ser usada por varias aplicaciones diferentes, consta de una o más
clases de archivos, se dispone de un sistema de gestión de base de datos que es
independiente del Sistema Operativo.
Un programa en ejecución necesitará de operaciones de E/S para acceder a un
archivo o dispositivo. Por eficiencia y protección los usuarios no accederán
directamente al dispositivo. El sistema deberá proveer un mecanismo de acceso.
El sistema operativo deberá encapsular y ocultar las características específicas de
los diferentes dispositivos de almacenamiento y ofrecer servicios comunes para
todos los medios de almacenamiento. Para ello proveerá de:
 Un conjunto de servicios que provean la interface con el subsistema e
implementen técnicas de cache, buffering y spooling.
 Una interface cliente con el sistema operativo para los manejadores de
dispositivos o device drivers que permitirá interactuar (mediante cargas
dinámicas) con cualquier modelo de dispositivo.
 Device drivers específicos.
 Montaje y desmontaje (Mount/Dismount) de dispositivo.
6.1 Objetivos para un sistema de gestión de archivos:
 Cumplir con las necesidades de gestión de datos y con los requerimientos
del usuario, que incluyen el almacenamiento de datos y la capacidad de
realizar las operaciones.
Para un sistema interactivo, de propósito general, deben cumplirse los
siguientes requisitos mínimos:
1. Cada usuario debe ser capaz de crear, borrar y cambiar los archivos.
2. Cada usuario puede tener acceso controlado a los archivos de otros
usuarios.
3. Cada usuario puede controlar qué tipos de acceso estarán permitidos a sus
archivos.
4. Cada usuario debe poder reestructurar sus archivos de manera adecuada al
problema.
5. Cada usuario debe ser capaz de mover datos entre los archivos.
6. Cada usuario debe ser capaz de guardar una copia de reserva y recuperar
sus archivos en el caso de que hayan sufrido algún daño.
7. Cada usuario debe ser capaz de acceder a sus archivos mediante un
nombre simbólico.
 Garantizar que los datos de los archivos sean válidos.
 Optimizar el rendimiento, en términos de productividad global y en tiempo
de respuesta.
 Ofrecer soporte de E/S para la variedad de tipos de dispositivos de
almacenamiento.
 Minimizar o eliminar la pérdida o destrucción de datos.
 Ofrecer un conjunto estándar de rutinas de interfaz de E/S.
 Proporcionar soporte de E/S para múltiples usuarios en el caso de sistemas
multiusuario.
6.2 Funciones de la gestión de archivos:
Los usuarios y los programas de aplicación interactúan con el sistema de archivos
por medio de órdenes de creación y eliminación de archivos, realizando
operaciones sobre los archivos, debe identificar y ubicar el archivo en cuestión,
requiere el uso de algún tipo de directorio que describa la ubicación de todos los
archivos y sus atributos, los sistemas compartidos aplican algún control de acceso
de los usuarios. Las operaciones básicas que tienen lugar en los registros, como
una estructura secuencial para traducir las órdenes del usuario a órdenes
específicas de manipulación de archivos, debe emplearse el método de acceso
apropiado para esta estructura de archivo.
La E/S se lleva acabo por bloques, los registros de un archivo deben traducirse a
bloques para la salida y los bloques traducirse a registros después de la entrada,
para respaldar la E/S de bloques se necesitan varias funciones, debe gestionarse
el almacenamiento secundario esto implica la asignación de archivos a los bloques
disponibles del almacenamiento secundario, y la gestión del espacio libre de
manera que se conozca qué bloques están disponibles para la creación de
archivos nuevos y el crecimiento de los existentes, deben planificarse las
solicitudes de bloques individuales.
6.3 Arquitectura de los sistemas de archivos
La representación de una organización típica del software, en el nivel más bajo,
los gestores de dispositivos (device drivers) se comunican directamente con los
dispositivos periféricos o sus controladores o canales, cada controlador de
dispositivo es responsable de comenzar las operaciones de E/S en un dispositivo
y procesar la terminación de una petición de E/S, son considerados como parte del
sistema operativo.
El siguiente nivel es el sistema de archivos básico o nivel de E/S física, que
constituye la interfaz primaria con el entorno exterior del sistema informático, trata
con bloques de datos que se intercambian con sistemas de disco o cinta, no
comprenderá el contenido de los datos o la estructura de los archivos implicados,
se considera a menudo parte del sistema operativo.
El supervisor básico de E/S es el responsable de la iniciación y terminación de
toda la E/S con archivos, se ocupa de la selección del dispositivo donde va a
realizarse la E/S con los archivos que depende del archivo seleccionado, también
se ocupa de la planificación de los accesos a disco y cinta para optimizar el
rendimiento, se asignan los buffers de E/S y se reserva la memoria secundaria.
La E/S lógica es la parte del sistema de archivos que permite a usuarios y
aplicaciones acceder a los registros.
El nivel de sistema de archivos más cercano al usuario es el método de acceso,
cada método proporciona una interfaz estándar entre las aplicaciones y los
sistemas de archivos y dispositivos que guardan datos. Los diferentes métodos de
acceso reflejan las distintas estructuras de archivos y las formas diferentes de
acceder y procesar los datos.
Programa de usuario
Pila
Secuencial
Secuencial
indexado
Indexado
Dispersión
E/S Lógica
Supervisor básico de E/S
Sistemas de archivos básico
Gestor del dispositivo Disco
Gestor del dispositivo Cinta
6.4 Criterios en la elección de una organización de archivos:
 Acceso rápido.
 Facilidad de actualización.
 Economía de almacenamiento.
 Mantenimiento sencillo.
 Fiabilidad.
La prioridad relativa de estos criterios dependerá de las aplicaciones que usarán el
archivo.
6.5 Las cinco organizaciones fundamentales son:
1. Pilas
2. Archivos secuénciales
3. Archivos secuénciales indexados
4. Archivos indexados
5. Archivos directos o de dispersión
7. PRINCIPIOS DE DISEÑO
Abstracción: Es un nivel en el que el software no debe necesitar conocer los
detalles sobre la implementación en otros niveles. Por ejemplo, un usuario de
correo-electrónico no debe requerir de conocimientos de los protocolos de red.
Robustez y gestión de errores: Los sistemas operativos futuros deben ser
considerablemente sólidos, para que ninguna acción ejecutada por el usuario
haga que el sistema se comporte de manera ilógica, al igual que ningún programa
pueda interrumpir el funcionamiento de otros programas, o de la computadora en
su totalidad. Es decir sin importar las acciones y las decisiones del usuario, la
computadora nunca debe colapsarse.
8. SISTEMAS OPERATIVOS MULTIPROCESADORES
Sistemas fuertemente acoplados, los procesadores comparten la memoria y el
reloj; la comunicación por lo general se realiza atreves de la memoria compartida,
algunas ventajas son incremento del rendimiento económico, incremento en
confiabilidad (degradación gradual, sistemas de fallos controlados por sw).
Las capacidades funcionales de los Sistemas Operativos de multiprogramación y
de multiprocesadores incluyen lo siguiente:
• Asignación y administración de recursos.
• Protección de tablas y conjuntos de datos.
• Prevención contra el ínter bloqueo del sistema.
• Terminación anormal.
• Equilibrio de cargas de Entrada / Salida.
• Equilibrio de carga del procesador.
• Reconfiguración.
Las tres últimas son especialmente importantes en Sistemas Operativos de
multiprocesadores, donde es fundamental explotar el paralelismo en el hardware y
en los programas y hacerlo automáticamente.
El multiprocesamiento simétrico consiste en que cada corre una copia idéntica del
sistema operativo, muchos procesos pueden correr a la vez sin deterioro del
rendimiento, la mayoría de los sistemas modernos soportan smp,
multiprocesamiento asimétrico: a cada procesador se le asigna una tarea
específica; el procesador maestro califica y asigna el trabajo a los procesadores
esclavos el mas común en sistemas más grandes.
Un sistema de multiprocesadores debe tener capacidad para gestionar la
repartición de memoria entre varios procesadores, pero también debe distribuir la
carga de trabajo.
Los procesadores no cooperan en la ejecución de un proceso individual, que
habrá sido asignado a uno de ellos.
Tratamiento Simétrico Es la organización más complicada de implementar y
también la más poderosa y confiable.
El Sistema Operativo administra un grupo de procesadores idénticos, donde
cualquiera puede utilizar cualquier dispositivo de Entrada / Salida y cualquiera
puede referenciar a cualquier unidad de almacenamiento.
El Sistema Operativo precisa código reentrarte y exclusión mutua.
Es posible equilibrar la carga de trabajo más precisamente que en las otras
organizaciones.
Adquieren significativa importancia el hardware y el software para resolución de
conflictos. Todos los procesadores pueden cooperar en la ejecución de un proceso
determinado; El procesador ejecutivo es el responsable (uno sólo) en un momento
dado de las tablas y funciones del sistema; así se evitan los conflictos sobre la
información global.
9. SISTEMAS OPERATIVOS DISTRIBUIDOS
Este sistema está encargado de distribuir los cálculos entre procesadores, su
objetivo principal es compartir recursos y datos entre usuarios ofreciendo
transparencia, eficiencia, flexibilidad y fiabilidad.
El concepto de transparencia de un sistema distribuido va ligado a la idea de que
todo el sistema funcione de forma similar en todos los puntos de la red,
independientemente de la posición del usuario.
La idea base de los sistemas distribuidos es la de obtener sistemas mucho mas
rápidos que los ordenadores actuales, para lograr un sistema eficiente hay que
descartar la idea de ejecutar un programa en un único procesador de todo el
sistema.
La flexibilidad hace referencia a un desarrollo como el diseño de un sistema
operativo, distribuido debe estar abierto a cambios y actualizaciones que mejoren
el funcionamiento del sistema. Esta necesidad ha provocado una diferenciación
entre las dos diferentes arquitecturas de núcleo del sistema operativo; el núcleo
monolítico y el micronucleo. Las diferencias entre ambos son los servicios que
ofrece el núcleo del sistema operativo. Mientras el núcleo monolítico ofrece todas
las funciones básicas del sistema integradas en el núcleo; el micronucleo
incorpora solamente las fundamentales, que incluyen únicamente el control de los
procesos y la comunicación entre ellos y la memoria. El resto de servicios se
cargan dinámicamente a partir de servidores en el nivel de usuario.
Escalabilidad
La escalabilidad propone que cualquier ordenador individual ha de ser capaz de
trabajar independientemente como un sistema distribuido, pero también debe
poder hacerlo conectado a muchas otras máquinas.
Fiabilidad
Una de las ventajas claras que nos ofrece la idea de sistema distribuido es que el
funcionamiento de todo el sistema no debe estar ligado a ciertas máquinas de la
red, sino que cualquier equipo pueda suplir a otro en caso de que uno se estropee
o falle.
La forma más evidente de lograr la fiabilidad de todo el sistema está en la
redundancia. La información no debe estar almacenada en un solo servidor de
archivos, sino en por lo menos dos máquinas. Mediante la redundancia de los
principales archivos o de todos evitamos el caso de que el fallo de un servidor
bloquee todo el sistema, al tener una copia idéntica de los archivos en otro equipo.
10. SISTEMAS OPERATIVOS DE TIEMPO REAL/
EMBEBIDOS
Los sistemas embebidos y los de tiempo real son tecnologías inmersas en el diario
vivir y generalmente no se identifican fácil y tampoco se definen los sistemas
operativos que hacen posible su manipulación y que a la vez administran los
recursos de dichos dispositivos para maximizar el desempeño.
Un sistema operativo embebido es aquel que esta integrado en los circuitos de los
dispositivos
electrónicos,
entre
estos
dispositivos
se
encuentran
electrodomésticos, teléfonos móviles, radios, televisores, automóviles, lectores de
códigos de barras, equipos médicos, asistentes digitales personales (PDA), etc.
Estos sistemas suelen tener algunas características de los sistemas de tiempo real
pero también tienen limitaciones de tamaño, memoria y consumo de electricidad
que los hace especiales y no suelen ser visibles.
Características
 Suelen utilizar un par de KB de RAM y ROM.
 Trabaja con procesadores poco potentes.
 Son sistemas operativos tolerantes a fallos.
SISTEMAS OPERATIVOS DE TIEMPO REAL (SOTR o RTOS -Real Time Operating
System en inglés)
Sistema operativo que ha sido desarrollado para aplicaciones de tiempo real con
el fin de garantizar el cumplimiento de forma adecuada de las tareas teniendo en
cuenta las restricciones de tiempo lo que hace necesario que el sistema sea
determinista.
Es los SOTR no importa el usuario sino los procesos, generalmente se subutilizan
los recurso con el fin de estar disponibles y atentos a los procesos en el momento
que este los requiera, es utilizado en entornos donde se procesan gran cantidad
de eventos.
Son empleados para aplicaciones muy específicas como pueden ser:
 Control del tráfico aéreo.
 Bolsas de valores.
 Control de refinerías.
 Control de trenes.
 Telecomunicaciones.
 Sistemas de fabricación integrada.
Características de los sistemas de tiempo real







Objetivo es proporcionar rápidos tiempos de respuesta y cambios de
contexto.
Minimizar el tiempo en el que esta deshabilitadas las interrupciones.
Procesa ráfagas de miles de interrupciones por segundo sin perder un solo
suceso.
Proceso de mayor prioridad expropia recursos.
Generalmente se utiliza planificación expropiativa basada en prioridades.
Gestión de memoria menos exigente que tiempo compartido, usualmente
procesos son residentes permanentes en memoria.
Poco movimiento de programas entre almacenamiento secundario y
memoria.





La gestión de archivos se orienta más a velocidad de acceso que a
utilización eficiente del recurso.
Debe ser multihebrado y apropiativo.
Poseer un tamaño pequeño.
Debe existir mecanismos de sincronización predecibles y de herencia de
prioridad.
Gestión de memoria que no afecte a la Predicibilidad.
Muchas aplicaciones de tiempo real son embebidas, pero no todas las
aplicaciones embebidas se desempeñan en tiempo real. Mientras que aplicaciones
en tiempo real siempre se adhieren a características estrictas en el tiempo, los
sistemas
embebidos
no
son
tan
simples
de
categorizar.
Algunos sistemas operativos embebidos y de tiempo real son:
10.1 Windows XP Embedded
Es una versión de Windows XP recortada (componetizada) para dispositivos
móviles. Está pensado para arquitecturas tipo X86 y soporta practicamente el
mismo software y hardware que XP.
Sistema operativo y plataforma de desarrollo que permite a los desarrolladores
elegir entre más de 10000 componentes individualmente para conseguir la
máxima
funcionalidad
en
una
huella
reducida.
Permite reducir el tiempo al mercado aprovechando un modelo de programación
familiares
y
un
poderoso
conjunto
de
herramientas.
Ejemplos de dispositivos construidos con Windows XP Embedded:
Cajeros automáticos.
Impresoras y escáneres
Avanzada Set-Top Boxes
Industria robótica
Servidores de los medios de comunicación en red
Dispositivos médicos
10.2 RTLinux
Es un sistema operativo en tiempo real que ejecuta Linux como un thread (hilo de
ejecución) de menos prioridad que las tareas de tiempo real. Con este diseño, las
tareas de tiempo real y los manejadores de interrupciones nunca se ven
retrasados por operaciones que no son de tiempo real.
La primera versión de RTLinux estaba diseñada para ejecutarse en la plataforma
x86 y proporcionaba una pequeña API y un pequeño entorno de programación. La
versión 2, que fue totalmente reescrita, fue diseñada para el soporte de
multiprocesamiento simétrico (SMP) y para ser ejecutada en una amplia variedad
de arquitecturas.
RTLinux proporciona la capacidad de ejecutar tareas de tiempo real y
manejadores de interrupciones en la misma máquina que el Linux estándar. Estas
tareas y los manejadores ejecutan cuando se necesitan en detrimento de lo que
estuviera ejecutando Linux. El peor caso de tiempo es entre que se detecta la
interrupción hardware y el procesador ejecuta la primera instrucción del manejador
de la interrupción. Este tiempo es del orden de los 10 microsegundos en la
plataforma x86.
Características de los sistemas RTLinux
 Sistema operativo de tiempo real estricto.
 Extensiones para entorno multiprocesador SMP (x86).
 API "próximo" al de POSIX threads. Planificador expulsivo por prioridades
fijas, señales, sistema de archivos POSIX (open, close, etc.) semáforos y
variables condición.
 Depuración de código mediante GDB (GNU Debugger).
 Soporte para arquitecturas x86 y PPC.
 Acceso directo al hardware (puertos e interrupciones).
 Comunicación con procesos linux mediante memoria compartida y "tubos".
 Estructura modular para crear sistemas pequeños.
 Eficiente gestión de tiempos. En el peor caso se dispone de una resolución
próxima al microsegundo (para un i486).
 Facilidades para incorporar nuevos componentes: relojes, dispositivos de
E/S y planificadores.
10.3 ChorusOS
ChorusOS es un sistema operativo para aplicaciones empotradas o en tiempo
real, desarrollado por la empresa Sun Microsystems. Actualmente está liberado
bajo código abierto.
Es sistema operativo altamente escalable y estable, sirve para sistemas
distribuidos, en red, empotrados o en tiempo real y se ha establecido como un
sistema operativo muy utilizado en hardware para comunicaciones, desde móviles
hasta switches. Pero también se encuentra en otras aplicaciones empotradas,
tales como impresoras, autómatas, etc.
Es de arquitectura basada en componentes (módulos), lo que le dota de una alta
configurabilidad y escalabilidad.
Este sistema operativo pertenece a la quinta generación de los sistemas
operativos.
10.4 VxWorks
VxWorks es un sistema operativo de tiempo real, basado en Unix, vendido y
fabricado por Wind River Systems.
Las características distintivas de VxWorks son:
 La compatibilidad con POSIX.
 El tratamiento de memoria.
 Las características de multi-procesador.
VxWorks se usa generalmente en sistemas empotrados.
10.5 QNX
QNX (pronunciado Q.N.X. o Q-nix) es un sistema operativo de tiempo real basado
en Unix que cumple con la norma POSIX. Es desarrollado principalmente para su
uso en dispositivos empotrados. Desarrollado por QNX Software Systems
empresa canadiense.
QNX está basado en una estructura de micronúcleo, que proporciona
características de estabilidad avanzadas frente a fallos de dispositivos,
aplicaciones, etc.
Está disponible para las siguientes arquitecturas: x86, MIPS, PowerPC, SH4
(incluida la videoconsola Dreamcast con una versión muy limitada de este), ARM,
StrongARM y xScale.
10.6 S. O. µlTRON
µMore es un sistema operativo en tiempo real para dispositivos móviles de
próxima generación que cumple las especificaciones de perfiles estándar ulTRON
4.0. Entre sus prestaciones se incluye la función Easy Power Save (ahorro de
energía sencillo) y el módulo de red AVE-TCP (que cumple las especificaciones
IPv6). µMore puede implementarse independientemente o en combinación con los
navegadores ACCESS para la electrónica de consumo, NetFront o Compact
NetFront.
Funciones y prestaciones


Código abierto libre de cánones
Compatible con ITRON4.0.














Tamaño de código compacto.
Requisitos de ROM: 7-9 KB para configuración mínima.
Alto rendimiento.
Los gastos indirectos del S. O. se reducen llevando a cabo llamadas de
sistema a través de llamadas de subrutina. Cambio de tarea: 6,8 segundos,
aproximadamente. Cambio de contexto: 2 segundos, aproximadamente.
(Condiciones de la prueba: SH7709A ejecutándose a 133MHz, con uso de
caché)
Las partes clave están escritas en lenguaje C. Puede portarse a distintas
plataformas de CPU.
Función
Easy
Power
Save
(ahorro
de
energía
sencillo).
Cambia automáticamente a modo de suspensión cuando el sistema está
inactivo.
Funciones de red disponibles (opcional).
AVE-TCP: pila de protocolos TCP/IP para aplicaciones embebidas fiable y
con buenos resultados.
MMSO:
observador
de
sistema
Micro
More
Herramienta de análisis del funcionamiento de tareas/S. O.
Emulador de PC.
Desarrollo y depuración basado en PC de aplicaciones escritas en VC++.
CPU compatibles:
SH-3, SH-4, ARM7TDMI.
Configurador de sistema gráfico compatible con ITRON4.0.
Ofrece soluciones completas en combinación con la máquina virtual de
Java JV-Lite2, conexión de redes AVE-TCP, sistema de ficheros AVE-File,
servidor web AVE-HTTPD, protocolo de infrarrojos IrFront y el navegador
NetFront /Compact NetFront.
10.7 Windows Embedded CE
Es una versión distinta de Windows pensada para dispositivos móviles solamente
y construida desde cero para este fin. Es más pequeña que XP Embeded llegando
a tener como mínimo 300KB (vs 40MB de XPe) y con 700 componentes que se
pueden escoger (como un lego tambien).
El release 5 fue el que hasta ahora se ha incluido en diversos dispositivos como
thin clients, equipo médico, cámaras digitales, teléfonos VOIP y otros, con la
versión 6 se anuncia el inicio de una nueva generación (incluyendo un nuevo
kernel que seria el 3o) de versiones especializadas de CE. Está pensado para
diversas arquitecturas además de la x86 como ARM, MIPS.
10.8 freertos
Sistema operativo de tiempo real para los sistemas empotrados pequeños.
Los programas preconfigurados de la demostración son incluidos para varias
arquitecturas del microcontrolador - ARM7, CORTEZA M3, 8051, AVR
(MegaAVR), x86, PIC (PicMicro PIC18), HCS12, H8S, RDC del BRAZO.。
10.9 NetBSD
Es un sistema operativo de la familia Unix (en sí no se le puede llamar "un Unix",
ya que esta es una marca comercial de AT&T, pero se denomina como "sistema
de tipo UNIX" o "derivado de UNIX"), open source y libre, y, a noviembre de 2006,
disponible para más de 50 plataformas hardware.
Su diseño y sus características avanzadas lo hacen ideal para multitud de
aplicaciones. NetBSD ha surgido como resultado del esfuerzo de un gran número
de personas que tienen como meta producir un sistema operativo tipo Unix
accesible y libremente distribuible.
Es utilizado en varios dispositivos empotrados y no ha requerido de software de
desarrollo adicional más que el juego de herramientas.
Características de los sistemas NetBSD:
Actualmente NetBSD se centra en ofrecer un sistema operativo estable,
multiplataforma, seguro y orientado a la investigación.
Está diseñado teniendo como prioridad escribir código de calidad y bien
organizado, y teniendo muy en cuenta también el cumplimiento de estándares
(POSIX, X/Open y otros más relevantes): prueba de este buen diseño es su
amplia portabilidad, actualmente a 56 plataformas.
Se trata de un sistema operativo maduro, producto de años de desarrollo (los
orígenes de BSD están sobre el año 1977), y partiendo del sistema UNIX sexta
edición.
10.10 OpenBSD
Sistema operativo libre tipo Unix, multiplataforma, basado en 4.4BSD. Es un
descendiente de NetBSD, con un foco especial en la seguridad y la criptografía.
Este sistema operativo, se concentra en la portabilidad, cumplimiento de normas y
regulaciones, corrección, seguridad proactiva y criptografía integrada.
Se distribuye bajo la licencia BSD, aprobada por la OSI.
Características







Sistema operativo tipo UNIX.
Se distingue de Linux por sus fuentes y su licencia.
Libre, Funcional, Seguro.
Base de desarrollo en Calgary.
Nueva versión cada 6 meses.
Acceso CVS al código fuente.
Actualmente esta en la versión 3.6.
10.11 Linux empotrado (Embedded Linux)
Se refiere al uso del sistema operativo Linux en un sistema embebido, como por
ejemplo PDA's, teléfonos móviles, robots, enrutadores / servidores, dispositivos
electrónicos
y
aplicaciones
industriales
con
microcontroladores
y
microprocesadores.
El núcleo de Linux, combinado con un conjunto de algunas otras utilidades de
Software Libre, puede ajustarse dentro del limitado espacio de hardware de los
sistemas embedidos. Una instalación típica de un Linux empotrado ocupa en
promedio 2 MB.
Linux Empotrado tiene algunas ventajas en relación a otros sistemas operativos
empotrados, como pueden ser el Código abierto, pequeño (Windows CE ocupa 21
MB comparado con los 2 MB para Linux Empotrado), puede no tener costos por
derechos, maduro y estable (Más de 10 años de edad y utilizado en muchos
dispositivos) y con respaldado.
11 PRESENTACION TECNICA DE DISTINTOS SISTEMAS
OPERATIVOS DISPONIBLES EN EL MERCADO
Como bien se sabe, el hardware provee los recursos básicos de un sistema de
computación. Mediante los programas de aplicación se definen las formas en que
se usan esos recursos para resolver problemas para los usuarios. Hay diversos
programas de aplicación.
Un sistema operativo controla y coordina el uso del hardware entre los distintos
programas de aplicación para los diversos usuarios. El Sistema Operativo provee
los medios para utilizar de forma correcta los recursos de un sistema de
computación; no hace ninguna función útil por sí mismo. Simplemente provee un
entorno en el cual otros programas pueden hacer trabajo útil. Se ve al Sistema
Operativo como un “Asignador de recursos”. Un sistema tiene diversos recursos
que pueden requerirse para resolver un problema: tiempo de CPU, espacio de
memoria, espacio de almacenamiento de archivos, procesos, dispositivos de E/S,
etc. El Sistema Operativo actúa como el gerente de esos recursos y se los otorga
a programas específicos y usuarios a medida que son necesarios. Como puede
haber diversos pedidos conflictivos para recursos, el Sistema Operativo tiene qué
decidir que pedidos son atendidos y cuáles no. Su fuente principal de trabajo es un
conjunto de tablas en las cuales se describen los recursos y a que procesos están
asignados los mismos. Otra orientación de los Sistemas Operativos apunta a la
necesidad de controlar los distintos dispositivos de E/S y programas del usuario.
Un Sistema Operativo es un programa de control. Un programa de control
inspecciona la ejecución de programas de usuario para prevenir errores y uso
impropio de la computadora. Está relacionado especialmente con la operación y
control de dispositivos de E/S. Viendo esta evolución, se identifican elementos en
común, y cómo fueron mejorando. Los Sistemas Operativos y la arquitectura de
los computadores tienen una gran influencia el uno sobre el otro. Para facilitar el
uso del hardware se construyeron los Sistemas Operativos. A medida que se
diseñaron y usaron Sistemas Operativos, se volvieron obvios ciertos cambios en el
diseño del hardware que simplificaron los sistemas operativos. En esta
recopilación fidedigna se ve que el desarrollo de nuevo hardware es la solución
natural para muchos de los problemas de sistemas operativos.
Recursos administrados por el Sistema Operativo
11.1 SISTEMAS OPERATIVOS UNIX Y SIMILARES
11.1.1 SISTEMA OPERATIVO UNIX
Escrito en lenguaje de alto nivel (C) fácil de leer, comprender, cambiar y
trasladar a otras máquinas. Tiene una interfaz de usuario simple.
Proporciona primitivas para construir programas complejos partiendo de
otros más simples. Utiliza un sistema de archivos jerárquico mantenimiento
fácil e implementación eficiente. Formato consistente para los archivos
(cadena de bytes) fácil la escritura de programas de aplicación.
Proporciona una interfaz simple y consistente para los dispositivos
periféricos. Sistema multiusuario y multiprogramado (varios procesos
simultáneos por usuario). Oculta la arquitectura de la máquina al usuario
más fácil escribir programas portables (Multiplataforma).
Soporte hardware necesario:
 Dos o más niveles de ejecución: usuario y supervisor.
 El núcleo siempre se ejecuta por la llamada de procesos (es parte de
cada proceso).
 Permite que dispositivos de E/S y el reloj del sistema interrumpa
asíncronamente la CPU.
 Cuando el núcleo sirve una interrupción, bloquea a las de igual o menor
prioridad (no a las de mayor).
 Diferencia entre interrupciones y excepciones: la excepción (síncrona)
ocurre durante la ejecución de una instrucción el hardware reinicia la
instrucción y la interrupción (asíncrona) ocurre entre dos instrucciones el
hardware continúa con la segunda.
 El núcleo reside permanentemente en memoria principal.
 El compilador genera un espacio de direcciones virtuales para los
programas (reubicación dinámica).
 El núcleo coordina con el hardware la traducción de direcciones virtuales
a físicas (p.e. hay máquinas con hardware para paginación por
demanda)
Las principales entidades de Unix son los archivos y los procesos.
Principales componentes:
 Subsistema de archivos y de procesos.
 Llamadas al sistema como llamadas a funciones C. En lenguaje
ensamblador, las llamadas al sistema se pueden invocar directamente.
 Los programas utilizarán otras bibliotecas (E/S estándar) para un uso
más sofisticado de las llamadas al sistema.
Interfaces en Unix
11.1.2 SISTEMA OPERATIVO SOLARIS
Solaris es una interfaz fácil de utilizar que proporciona una apariencia
homogénea entre los entornos UNIX. SunSoft, Inc., Hewlett-Packard
Company, IBM Corporation y Novell, Inc. aportaron sus tecnologías “mejor
desarrolladas” para establecer un nuevo estándar para las interfaces de
usuario y las aplicaciones basado en el Sistema de ventanas X y en Motif.
La contribución de SunSoft a la implementación del CDE incluye su
protocolo de mensajes ToolTalk, la herramienta de desarrollo DevGuide,
herramientas de correo y agenda de sus utilidades DeskSet de Open
Windows y las capacidades de arrastrar y soltar y de clasificación de datos.
El Solaris ofrece beneficios adicionales a sus usuarios y programadores y a
su vez mantiene la conformidad con los estándares. Por ejemplo, puede
utilizar un visualizador de imágenes para visualizar, girar, ampliar y convertir
imágenes y archivos PostScript. Si está acostumbrado al entorno Windows,
tiene acceso a los fondos, las paletas de color y el menú emergente del
Espacio de trabajo que ya conoce.
Puede también ejecutar las aplicaciones Open Windows sin necesidad de
modificaciones, con la interacción de arrastrar y soltar entre las aplicaciones
Open Windows. Los programadores pueden utilizar las utilidades de
conversión de archivos para simplificar la transición de sus aplicaciones
Open Windows y Motif.
La historia comienza en Silicon Valley en febrero de 1982 fecha en la que
nace la empresa Sun Microsystems fundada por el alemán Andy
Bechtolsheim y los norteamericanos Vinod Khosla, Bill Joy, y Scott
McNealy. En el mismo año de su fundación Sun comercializa su primera
estación y fue bautizada como Sun-1, dicha máquina estaba gobernada por
un microprocesador Motorola a 6 MHz, tenía un 1 Mbyte de RAM y un disco
duro de 60 Mbyte. El sistema operativo al mando era el SunOS 1 basado en
BSD
4.1
(1981)
incorporando
TCP/IP.
En el año 1984 Sun desarrolla el Sistema de archivos de red NFS (Network
File System) que permite a cualquier máquina conectada a la red acceder a
discos remotos como si estuvieran en la máquina local. La tecnología NFS
fue licenciada gratuitamente para la industria estableciendo un nuevo
estándar que incorporan en su nueva versión de sistema SunOs 2 en el año
1985. Un año más tarde con la salida de la versión de SunOS 3 (1986) se
introducen utilidades de System V y coincide en el tiempo con el
lanzamiento de la estación Sun-3 que todavía continúa basándose en un
micro Motorola a 25 MHz y 32 Mbyte de RAM. Ya en 1987 se produce un
cambio importante en con el lanzamiento la serie Sun-4 que adopta por
primera vez la arquitectura SPARC V7 RISC. SunOS 4 (1989) es la primera
versión del sistema operativo que soporta la nueva arquitectura Sparc de la
serie Sun-4 que continua basada en BSD 4.3 pero con cambios hacia la
arquitectura System V.
Con la versión SunOs 4.1.1 finaliza una primera etapa del sistema operativo
a la que Sun Microsystem denomina Solaris 1 y utilizara este nombre para
referirse al sistema SunOs desde 1982 a 1990.
Evolución Solaris 1 SunOs de 1982 a 1990:
1982 Febrero SunOS 1.0 basada en BSD.
1984 Abril SunOS 1.1 basada en BSD.
1985 Enero SunOS 1.2 basada en BSD.
1985 Mayo SunOS 2.0 basada en BSD.
1986 Febrero SunOS 3.0 Introduce utilidades de System V.
1986 Septiembre SunOS 3.2 Introduce utilidades de System V.
1988 SunOS 3.5 Introduce utilidades de System V.
1989 SunOS 4.0 Soporte microprocesador Sparc/arquitectura System V
STREAMS I/O.
 1990 Noviembre Solaris 1.0 (SunOS 4.1.1).








En Julio de 1991 se produce el lanzamiento de SunOS 5.0 que incorpora
importantes cambios:
Pasa a denominarse Solaris 2, Se basa en System V Release 4, Se
introduce CDE (Common Desktop Environment) como escritorio estándar
aunque conserva Open Windows y Soporte de Multiprocesamiento
Simétrico (SMP) que posibilita el uso de múltiples CPUs.
Desde 1991 se produce un rápido avance de versiones de Solaris hasta la
actual Solaris 10, la siguiente lista es un breve resumen de la evolución de
Solaris y las tecnologías que a incorporado al sistema:













Solaris 1.0 (SunOS 4.1.1) 1990.
Solaris 2.3 (SunOS 5.3) 1993 NFS V3 Y CDE.
Solaris 2.4 (SunOS 5.4) 1994 x86 platform.
Solaris 2.6(SunOS 5.6) 1998 Kerberos, PAM, TrueType.
Solaris 7(SunOS 5.7) 1998.
64 bits para plataforma.
UltraSPARC.
Solaris 8 beta 1999 IPv6 support.
Solaris 9 SPARC 2002 Solaris Volume Manager.
Solaris 10 2004 Java Desktop.
Solaris 10 2006 Java Desktop.
Solaris Containers.
Service Management Facility (SMF) NFSv4 /ZFS.
Durante este tiempo Sun ha desarrollado nuevas tecnologías para mantener su
sistema operativo entre los más potentes y fiables del mercado. Sun
Microsystems también ha integrado en Solaris tecnologías de Software Libre y
como ejemplo de esta sinergia tenemos el escritorio Gnome.
OpenSolaris nace en Junio de 2005 y es el resultado de la liberación de la
mayor parte del código fuente de Solaris pasando a ser un proyecto de
software libre. Desde este nuevo enfoque nacen nuevas distribuciones que
aportan mejoras al sistema además de enriquecerlas con más software.
OpenSolaris.org es el punto de encuentro donde se pueden ver los proyectos
abiertos ya sean para crear nuevas distribuciones o grupos de trabajo que
aportan nuevas funcionalidades, mejoras, software etc. De las diferentes
aportaciones realizadas por comunidades de usuarios o desarrolladores nacen
las siguientes distribuciones: Solaris 10 y Solaris 10 Express.
Es la versión oficial de Sun Microsystems disponible para arquitectura Sparc y
x86. Es estable y robusta estando diseñada para entornos de producción
donde se necesita estabilidad. Es gratuita y podemos descargarla del sitio web
oficial de Sun. Solaris 10 Express contiene todas las nuevas incorporaciones
de funcionalidades y software que darán lugar a la próxima versión estable de
Solaris por lo tanto está recomendado para entornos de desarrollo o
preproducción.
11.1.3. SISTEMA OPERATIVO LINUX
Entre los sistemas operativos que había hace una década estaba Minix, un
sistema operativo tipo Unix, de fuentes públicas, que se había escrito a modo
didáctico para los estudiantes de ingeniería informática. Funcionaba en un
8086, por lo que era un poco limitado. Linus Tolvards un estudiante finlandés
de informática que investigando y profundizando en los entresijos de los
microprocesadores 386 decidió hacer, partiendo de cero, un sistema operativo,
basado en Minix, pero que aprovechase toda la potencia del 386, memoria
virtual, multitarea y otras cosas. Así que empezó a crearlo, las primeras
versiones eran poco atractivas, apenas ejecutaban el GCC ( un compilador de
C creado según el estilo GNU) el bash ( el equivalente al command.com).
Pero Linus, lo público en internet, con sus fuentes, y un montón de gente se
intereso en él, modificándolo, mejorándolo y añadiéndole cosas, a la vez que
Linus lo mejoraba y coordinaba todo el trabajo que hacían el resto de la gente.
Y así sigue siendo hoy, cientos de versiones después hasta convertirse en lo
que tenemos delante.
La gente de GNU creó un montón de programas para su sistema operativo que
gracias a que son software libre son también usados Linux y por eso a Linux se
le llama muchas veces GNU/Linux. Linux se distribuye bajo la licencia GPL, es
un tipo de licencia, dentro de lo que podríamos llamar el Open Source
Software, básicamente dice que se coge el programa, lo usa, aprende, lo
mejora y comparte esas mejoras con el resto del mundo. Además la licencia
GNU fija una serie de derechos a programador que le protegen, pero en
resumidas cuentas: Un Programa con Licencia GPL puede ser vendido,
alquilado, prestado modificado, lo que se quiera, pero:





No se puede limitar el número de usuarios o copias.
No se puede cobrar por usar el programa ( pero sí por distribuirlo).
No se puede impedir que otros lo vendan o distribuyan.
Tienes que dar las fuentes del programa de una manera publica.
Puedes modificar el programa, o aprovechar parte del código, pero el
resultado tiene que seguir la misma filosofía.
Características de Linux
32 Bits Básicamente significa que necesita como mínimo 386 para ejecutarlo,
significa además bastantes más cosas, rapidez, seguridad, eficacia,
únicamente diré que es un sistema 100% de verdad de 32 Bits, no como otros,
no tiene código de 16 bits.
Multitarea Esto significa que el ordenador puede estar haciendo varias cosas a
la vez, y que no tendrás que esperar a que acabe una para hacer otra, la
multitarea está controlada por el S.O. no por las aplicaciones, por lo que a
diferencia de otros S.O. Nunca se te quedara parado por culpa de una mala
aplicación que consuma todos los recursos del ordenador. Aquí si podrás bajar
correo de Internet, formatear un disco, imprimir 100 hojas y jugar al Quake a la
vez, y sin problemas.
Multiusuario Si ha manejado antes un ordenador, seguramente usaría MAC
OS o Windows, en estos S.O, en Linux, puede haber varias personas usando
el ordenador, compartiendo el microprocesador, así puede ponerle un par de
pantallas y teclados mas a los puertos serie del ordenador, y estar haciendo
tres cosas a la vez ( suponiendo que tuvieses manos para todo) o puede estar
otra persona navegando por internet, escribiendo una carta, jugando en su
pantalla, mientras se hacen otras actividades completamente diferentes, y
ambos estan en el mismo computador.
POSIX Esto a los usuarios normales les importa poco, POSIX es un estándar
de la industria, que asegura una calidad mínima en ciertas partes del S.O. y
asegura su compatibilidad, a nivel de código, es decir, programas POSIX que
funcionan en otros Unix, no tendrán problema para compilarse y ejecutarse en
Linux, Para muchas empresas esto es muy importante, a la hora de decantarse
por un S.O. u otro (por eso Windows NT es compatible POSIX).
Compatibilidad Cuando tocamos este tema, siempre pasa lo mismo, la gente
dice, JO!!!, No puedo ejecutar mi aplicación favorita XXXX for windows 95,
bueno, tampoco alguien con MAC, ni con IRIX, etc., además en Linux hay
peros:
 Pero Nº 1: Ficheros: Linux No tiene ningún problema para tragarse
cualquier tipo de disco de cualquier cosa que excita, leerlo y usar su
contenido, además existen Suites como OpenOffice o Corel WordPerfect
que permiten leer y usar ficheros de aplicaciones comunes como puedan
ser Word o Excel.
 Pero Nº 2: Programas: Si puedes ejecutar programas de otros S.O. para
MAC tienes el Executor, que si bien hay que pagar por él, dicen que es
buenísimo. De pago también está el WABI, un emulador de Windows 3.1,
con el que no tendrás problemas.
Pero además existe Wine, un emulador gratuito de windows 3.1 y windows
95, con el que podrás ejecutar (y si no puedes espera un poco que aun lo
están desarrollando) cualquier programa. Además si el programa es para
MS-Dos existe DosEmu, un emulador de MS-Dos (bueno no exactamente,
más bien habría que decir de 386) donde podrás ejecutar a pantalla
completa, como en la realidad, o en ventana de X Window, cualquier
programa para este S.O.
Estabilidad: Linux es robusto, no se colgara ( el S.O. una aplicación si está
mal hecha por supuesto que se colgara, pero no afectara al resto del
sistema, nunca tendrás que reiniciar el ordenador por qué un programa lo
ha colgado), hay que notar que es posible bloquear el teclado o la pantalla,
pero eso no significa que se cuelgue el ordenador, puedes entrar al
ordenador por otro sitio ( un terminal, por red) y desbloquearlo, y seguir
usándolo, o si se te bloquea un programa mientras estabas conectado a
Internet y cogiendo correo, quizás no puedas usar el ordenado, pero
seguirá bajando el correo sin problemas.
Las Sesiones : Por ser multiusuario, varios usuarios, personas ( o una
misma persona en varios sitios) puede estar usando el ordenador a la vez,
bien por varios terminales, en el caso de que estén conectados al
ordenador ( por el puerto serie, por ejemplo) a través de telnet, o mediante
las consolas virtuales ( a estas se acede de manera general pulsando
ALT+Fx siendo x un numero generalmente entre el 1 y el 6, aunque esto
varia y se puede configurar a tu gusto, como TODO en linux.
Si estamos en una sesión X, no funcionara, tendremos que usar
CTRL+ALT+Fx, que nadie se espere encontrar otra sesión X vacía,
aparecerá otra sesión en modo texto, si queremos tener dos pantallas X a la
vez, deberemos lanzar la 2º a mano desde la sesión de modo texto ( es
fácil, pero consume mucha memoria) o utilizar los escritorios virtuales, que
es bastante mas practico. Al principio pide un login, esto es el nombre por el
que se conoce dentro de la maquina, después de eso una clave, te la tiene
que haber dado tu administrador, si no te gusta después de haber entrado,
esto es introducido los dos valores correctamente ( el primero aparecerá en
pantalla, pero el segundo no, es una medida de seguridad, para que no
puedan ver lo que tecleas). Puedes cambiarlo, basta con escribir passwd, y
te pedirá el antiguo ( para comprobar) y que escribas es nuevo dos veces (
para verificar que está bien escrito). Ahora estas en el prompt del sistema,
veras algunas cosas y al final el signo $ si entraste como usuario normal y #
si entraste como root, si has entrado como root, créate un nuevo usuario,
con adduser nombre, te hará un par de preguntas, nombre, clave, grupo al
que pertenece, dirección, teléfono, directorio del home, introduce el nombre
que quieras para el login, la clave, y el resto admite los que te propone, por
ahora vale con lo que el ordenador da, luego cuando estés mas avanzado,
ya comprenderás para que sirven.
Ahora lo interesante es salir, si quieres acabar la sesión, por ejemplo, para
entrar como otro usuario, (muy habitual si eres root, el root, solo debería ser
utilizado en casos de necesidad, por ejemplo cuando quieres instalar algo, o
quieres cambiar algo de la configuración, en cualquier otro caso es
recomendable ser un usuario normal, por seguridad, y por comodidad,
aunque al principio te parezca poco cómodo el estar cambiando cada 2x3
de usuario, cuando tengas el ordenador a tu gusto, no necesitaras entrar
como root para nada. Basta con escribir logout o exit, más o menos es lo
mismo. Y por ultimo no puedes apagar el ordenador por las buenas, como
harías con la tele, debes antes decirle que lo vas a apagar, para que el
ordenador deje las cosas en orden, (el ordenador no guarda todos los datos
en disco duro, los guarda en memoria, y cuando lo cree conveniente los
pasa al disco duro, así esa carta, que acabas de hacer, puede que Mac os
X aun no esté en el disco duro, si no en memoria, debes decirle que pase
todo lo que tiene pendiente al ordenador antes de apagar, esto se conoce
como cache, además ciertos procesos ( otros programas que están
funcionando y que no ves, he aquí la multitarea) tienen que cerrarse
civilizadamente. Apagar es algo que solo puede, hacer el root, o
habitualmente el que está situado en la consola ( consola es el conjunto de
monitor-teclado principal, es decir el que está conectado directamente al
ordenador y no a un puerto serie, o por telnet) Si estas situado en la
consola, pulsa ctrl-alt-del, esto debería iniciar el proceso de apagado o
reinicio de la maquina, según lo configures, al final, deberías ver un
mensaje que pone SYSTEM HALTED, o el típico mensaje de la bios al
arrancar, ahora es cuando debes apagar el equipo.
Suponiendo que seas root, para apagar el equipo teclea shutdown -fh now,
no es necesario que estés en la consola. La f significa que el próximo
arranque sea rápido, es decir que no compruebe los discos al iniciarse. La h
significa que se pare, ( al final veras el mensaje system halted) si hubieses
puesto una r se reiniciaría, y verías el mensaje de la bios. Now, significa
que reinicies en ese instante, si pones una hora, el reinicio se realizara a
esa hora, si pones +n, el reinicio se hará en n minutos, esto es útil, por que
se envía un mensaje a todos los usuarios que hay indicándoles que en n ( o
a la hora x) se reinicia el ordenador, y de paso impide nuevas entradas de
usuarios. Si hubiese un proceso de reinicio en curso (por ejemplo has dicho
que reinicie dentro de 5 minutos) puedes cancelarlo con shutdown -c.
11.1.4. SISTEMA OPERATIVO MAC OS X
Mac OS X es el nuevo sistema operativo de Apple. La X de 10 no debe
entenderse como una evolución de Mac OS 9, sino como un sistema
operativo totalmente distinto, diseñado desde cero una con una base
distinta.
La historia de Mac OS X empezó con NextStep, un sistema operativo
diseñado con fines experimentales y de investigación, creado por Steve
Jobs tras abandonar Apple. Cuando se abrió el código fuente de este
sistema operativo pasó a llamarse OpenStep, y después, tras comprarlo
Apple como la base de su sistema operativo, se le volvió a cambiar el
nombre por Rhapsody, y por último cuando se terminó de retocar para
comercializarlo pasó a llamarse Mac OS X.
A diferencia de las API de otros sistemas operativos, como Windows, Unix,
OS/2; Mac OS X tiene una API totalmente orientada a objetos, con un
diseño realmente bueno. En Mac OS X, aunque da soporte a muchos
lenguajes de programación, los lenguajes más usados para trabajar
directamente con su API son dos: Objective-C y Java.
Por otro lado la máquina virtual de Apple, dispone de todas las librerías
estándar de Java y de hecho está certificada por SUN como una máquina
virtual 100% puro Java.
Interface Builder es una herramienta de desarrollo visual que nos ayuda a
crear rápidamente la parte de la interfaz gráfica de la aplicación. Esta
herramienta además de código, genera ficheros .nib que son ficheros con
una descripción de los componentes de interfaz gráfica, que se cargar al
arrancar la aplicación y que usa Cocoa (API) para pintar la ventana y sus
componentes en pantalla, es decir es equivalente a los recursos de otros
sistemas.
11.2 SISTEMA OPERATIVO WINDOWS
11.2.1 sistema operativo Windows server 2000/2003
En cuanto a la historia, se da a conocer una evolución notable en los sistemas
operativos Windows, iniciando con las aplicaciones que corren bajo DOS, que
tienen todos los privilegios del sistema. Ellas pueden acceder a cualquier
almacenamiento, cambiar las funciones de control de la CPU, y utilizar cualquier
dispositivo de hardware. Esto permite que los programas extiendan el sistema
operativo DOS con funciones adicionales. Aunque DOS 6.x se distribuye en 4 ó 5
discos, el espacio está lleno con programas de utilidad que comprimen datos,
realizan respaldos, y verifican la existencia de algún virus. En otros sistemas
operativos, una aplicación debe realizar una llamada al sistema (system call) para
requerir servicios, como, por ejemplo, en UNIX.
Los programas de aplicación DOS corren con total privilegio; de esta manera, un
programa puede hacer cualquier cosa que desee si tiene la suficiente lógica de
programa para manejar el hardware directamente. Los servicios de DOS proveen,
en cambio, un conjunto conveniente de servicios útiles que los programas solicitan
debido a que ellos no quieren lidiar con detalles.
Otro dato importante es la distribución de los archivos. DOS maneja la FAT (File
Allocation Table) o Tabla de Asignación de Archivos, que divide al disco en
subdirectorios y archivos. La mayoría de los servicios DOS ofrecidos a los
programas se relacionan con el acceso a los archivos en disco (abrir, cerrar, leer,
escribir, renombrar, eliminar, crear directorio, eliminar un directorio, listar un
directorio).
Es por eso el nombre de DOS (Disk Operating System) o Sistema Operativo de
Disco.Existen algunos programas que se "saltan" a los servicios de DOS e
interpretan la FAT por ellos mismos. Los programas de respaldo usualmente
proveen su propio soporte a nivel de hardware para los discos duros y los discos
flexibles, con el objetivo de evitar las limitaciones impuestas por DOS/BIOS y
poder realizar I/O de forma asincrónica en segundo plano.
DOS también asigna almacenamiento en el área del usuario. Además de los 640
KB, DOS puede ser configurado para utilizar el hardware de administración de
memoria 386 para "completar" áreas no usadas de los 128 KB, que es el rango de
dirección de hardware (desde C0000 hasta DFFFF, utilizando notación
hexadecimal). Esto se convierte en los Bloques de Memoria Superior (Upper
Memory Blocks o UMB) y se utiliza para cargar dispositivos y otras rutinas
residentes.Las restantes funciones de DOS son de mantención. Por ejemplo, hay
servicios que solicitan o fijan la hora o la fecha. DOS mismo provee muy poca
cantidad de funciones. Es posible cargar otros programas que provean servicios
adicionales (video, mouse, red, compresión, etc.). DOS fue capaz de sobrevivir por
15 años debido a su simpleza y facilidad de extensión.
Si bien Microsoft seguía desarrollando DOS, sabía que tarde o temprano había
que dar un vuelco. Windows fue a esta alternativa y pronto tomaría un auge tan
grande que se tomaría el mercado. Primero llega Windows 1.0 y Windows 2.0. En
realidad, Windows, como interfaz de usuario estable, como sistema estable y
como éxito comercial llegó en la versión 3.0 y es ahí, en la versión 3.x donde se
ahondará más en estas versiones de 16 bits de Windows.
La primera versión de Microsoft Windows, lanzada el 20 de Noviembre de 1985.
Tomó un total de 55 programadores para desarrollarlo y no permitía ventanas en
cascada, solamente en mosaico. Microsoft comenzó el desarrollo del
"ADMINISTRADOR DE INTERFAZ", que posteriormente derivó en Microsoft
Windows en Septiembre de 1981. La interfaz inicial tenía menús ubicados en la
parte inferior de la ventana y la interfaz sufrió un cambio en 1982 cuando se
diseñaron los ahora comunes menús desplegables. Esto ocurrió después de Apple
Lisa, un experimento de Apple por llevar una interfaz gráfica al usuario. Sin
embargo, ocurrió antes de Macintosh. Windows prometía una interfaz gráfica fácil
de usar y la utilización de gráfica independiente del dispositivo, así como el
soporte de multitarea. Las siguientes fueron las principales características de
Windows 1.0: Interfaz gráfica con menús desplegables, no había ventanas en
cascada y soporte para mouse. Gráficos de pantalla e impresora independientes
del dispositivo. Multitarea cooperativa entre las aplicaciones Windows.
La segunda versión de Microsoft Windows, lanzada en 1987. Windows 2.0 que
tenía más características que Windows 1.0, tales como iconos y ventanas
traslapadas. Cuando se lanzó Windows/386, Windows 2.0 fue renombrado como
Windows/286. Nacen aplicaciones como Excel, Word for Windows, Corel Draw!,
Ami y PageMaker. Sus principales características fueron las siguientes: Las
siguientes fueron las principales características de Windows 2.0: Ventanas
traslapadas, Archivos PIF para aplicaciones DOS.
En 1987 Microsoft lanzó Windows/386. A pesar de ser equivalente a su hermano
Windows/286, mientras corrían aplicaciones Windows, Windows/386 proveía la
capacidad de ejecutar múltiples aplicaciones DOS simultáneamente en memoria
extendida. Características: Múltiples máquinas virtuales DOS con multitarea.
Una completa reconstrucción de Windows con muchas nuevas facilidades, tales
como la habilidad de direccionar más allá de 640 KB. Fue lanzado en 1990, y
vendió más de 10 millones de copias, este fue Windows 3.0, con sus
características: Modo estándar (286), con soporte de memoria grande (large
memory), modo mejorado 386, con memoria grande y soporte de múltiples
sesiones DOS, se agregó el Administrador de Programas y Administrador de
Archivos, soporte para Red, soporte para más de 16 colores, soporte para cajas
de selección, menús jerárquicos y los archivos, INI privados para cada aplicación
empezaron a cobrar más valor.
Luego llega Windows 3.1, una versión de Windows con muchas mejoras a
Windows 3.0. Incluye soporte para fuentes True Type y OLE. Esta versión fue
testigo de la pérdida del modo real, lo cual significa que no corre en procesadores
Intel 8086.
Características: No hay soporte para el modo Real (8086), fuentes TrueType, OLE
- Object Linking and Embedding, capacidad para que una aplicación reinicie la
máquina, soporte de API de multimedia y red.
Como anteriormente se dijo, Windows 3.x fue en realidad la primera versión
estable de este nuevo entorno y los subsiguientes sistemas operativos Windows
heredan muchas cosas de este Windows 3.x. Por tal motivo vale la pena estudiar
las aplicaciones y su comportamiento en Windows 3.x.
Cuando Microsoft anunció Windows 95 lo describió como un sistema operativo de
32 bits. En realidad, Windows 95 es un híbrido que mezcla código de 16 bits y
código de 32 bits. Lo importante es que provee un ambiente en el cual pueden
correr aplicaciones de 32 bits. Cuando Windows 3.x corre en un 386, 486, o
Pentium, algo de la administración de memoria y del soporte de E/S de disco
corrían ya en 32 bits en Windows 3.11. A estos elementos se les llamó drivers de
dispositivos virtuales o VxD. Inicialmente los módulos VxD eran utilizados para la
administración de la memoria y para manejar unos pocos dispositivos como
módems y tarjetas de sonido.
Windows 3.x utilizaba los servicios de DOS para otros dispositivos, como los
discos duros, CD-ROMs, y tarjetas de red. Windows for Workgroup otorgó una
opción para llevar el soporte de red (excepto para Novell) hacia VxD de 32 bits. El
soporte de disco, al menos para los drivers estándar IDE, también pudo habilitarse
a través de VxD de 32 bits.
Cuando Windows 95 arranca, el Administrador de la Máquina Virtual (VMM) de
Windows se inicializa (un enfoque más detallado sobre VMM se encuentra en
Parte II: Arquitectura de Windows) y carga los módulos VxD que antes eran drivers
de dispositivos Windows. Existen drivers VxD para discos IDE y SCSI y para el
sistema de archivos extendido VFAT (Virtual FAT). El soporte de red carga soporte
para Windows NT y Novell. Debido a que este soporte corre como un VxD, éste
puede cargarse por sobre el primer megabyte de memoria RAM. A pesar que los
VxDs soportan aplicaciones Windows, también soportan programas de DOS que
se ejecutan bajo control del VMM.
Windows 98, el siguiente escalón en la familia de sistemas operativos Windows.
De cierta forma es la continuación que se podía esperar de Windows 95. Como
era obvio predecir, esta nueva versión continúa soportando 32 bits en su total
dimensión aunque todavía se debe esperar para que se incorpore toda la
funcionalidad de seguridad presente en los 32 bits y que hoy es una característica
de la familia NT.
Desde el punto de vista del usuario común, Windows 98 no trae nada nuevo.
Microsoft no ha hecho cambios relativamente importantes en la interfaz, por lo
que, si un usuario sabe usar Windows 95, también sabe usar Windows 98. Se
puede decir que la interfaz de Windows 98 es la interfaz que deja Internet Explorer
4.0 cuando se le instala en Windows 95 con la opción "Actualización de Escritorio",
que es una versión mejorada de la interfaz nativa de Windows 95.
Así como para un usuario común, Windows 98 será familiar, para un programador
Windows también, hasta que abra el velo que cubre a Windows 98 y descubra lo
que hay en esta nueva versión de Windows: Modelo de Driver Win32 (Win32
Driver Model o WDM), soporte para Múltiples Monitores, tecnología de
administración de poder OnNow, soporte para USB.
Con Windows 98, no hay que preocuparse por la compatibilidad que tengan las
aplicaciones escritas para sistemas operativos Windows anteriores a Windows 98.
Todas las aplicaciones escritas para Windows 95 correrán en Windows 98 pero, si
se mira más de cerca a este nuevo sistema operativo, se pueden encontrar
nuevas características que las aplicaciones pueden tomar.
Una de las cosas que los programadores adorarán de Windows 98 y de Windows
NT 5.0 (que se encuentra en una fase Beta al momento de escribir este texto), es
el soporte de Win32 Driver Model, abreviado WDM, que consiste en un modelo de
drivers únicos que permite a los desarrolladores escribir un único driver que corra
en Windows 98 y en Windows NT. Para que esto se haga realidad Microsoft copia
servicios del Kernel de NT a Windows 98 vía un driver de dispositivo virtual que en
la práctica es un archivo llamado NTkern.VXD. Este nuevo método permitirá que
Windows 98 maneje los mismos drivers de NT y el mismo método mantiene
soporte para las tarjetas existentes.
11.2.2. SISTEMA OPERATIVO WINDOWS NT 3.51 y 4.0
DOS fue escrito en 1980 para la familia de procesadores Intel 8086. En 1985 IBM
y Microsoft realizaron un acuerdo para desarrollar un nuevo sistema operativo
para el chip de CPU 286. La versión 1.0 de OS/2 no fue lanzada sino hasta 1988,
y por entonces el 386 se estaba haciendo popular. Se hizo claro que el hardware
estaba cambiando muy rápido con relación al desarrollo de software. De manera
que en 1988 decidieron hacerlo de nuevo, IBM y Microsoft decidieron comenzar a
trabajar simultáneamente en dos productos.
OS/2 versión 2 sería un refinamiento evolutivo de sistemas previos, actualizado
para las nuevas características de hardware del 386. Continuaría el soporte a las
aplicaciones y a los drivers de dispositivos desarrollados para el sistema previo.
Esto se convirtió en el IBM OS/2. OS/2 versión 3 se basaría sobre Nueva
Tecnología. Este sería escrito desde cero y se desarrollaría un sistema basado
sobre los mejores principios de ingeniería de software. En un principio sería para
CPUs Intel, pero sería portable a otros chips de CPU. Esto se convirtió en
Windows NT.
Unix rápidamente se fragmentó en "sectas". Los programas escritos por BSD no
corren en UNIX SVR4. Así, hay UNIX SunOS, AIX, Ultrix, OSF, Linux, NextStep,
USL, y una docena más. Todos los sistemas UNIX comparten un conjunto común
de servicios, pero cada uno tiene características únicas que producen
dependencias de los programas.
El Microkernel era una idea desarrollada para reunir a la comunidad UNIX. Un
conjunto rico de servicios del sistema operativo (libre de toda idiosincrasia) que
está contenido en un pequeño y puro kernel del sistema. Los programas de
aplicación no acceden a los servicios del kernel directamente. En cambio, realizan
las solicitudes a través de subsistemas programados para duplicar la personalidad
de un sistema UNIX particular.
Al momento de escribir estas líneas Windows NT 5.0 (Windows 2000)se encuentra
aún en etapa de desarrollo y Microsoft ha anunciado un cambio de nomenclatura
para su sistema NT. Así, Windows NT 5.0 se pasa a llamar Windows 2000.
Hasta la versión 4.0 Windows NT se comercializaba en tres versiones:
Workstation, Server, y Advanced Server. Desde Windows 2000, también se pierde
la nomenclatura Workstation y Server, siendo la siguiente: Windows 2000
Professional anteriormente NT Workstation, Windows 2000 Server anteriormente
NT Server, Windows 2000 Advanced Server anteriormente NT Advanced Server.
Windows 2000 Datacenter Server. Producto nuevo y que es el nuevo y más
poderoso sistema operativo de Microsoft con posibilidad de hasta 16 procesadores
simétricos y 64 GB de memoria física.
Desde el lanzamiento de los sistemas operativos de Redes, pasando por Windows
NT, los sistemas se fueron perfeccionando a la medida de las necesidades de las
empresas. Desde las ya conocidas diferencias que introdujo Windows 2000 sobre
su predecesor Windows NT 4.0, llegan a al Sistema Operativo óptimo para las
exigencias del mercado Informático, donde se han implementado notables mejoras
con respecto a su predecesor Windows 2000. En el caso de Windows Server
2003, este está basado en experiencias del mercado consumidor Informático, y es
por eso que en l encontraremos muchas características de las que siempre nos
preguntamos: ¿Se puede hacer esto?.... ¿y aquello? Hasta el momento sin
respuesta, pero a partir de ahora, esas preguntas encuentran posibles respuestas
en Windows Server 2003.
Entre los diferentes sistemas operativos para servidores encontramos el Microsoft
Windows NT Server que es un sistema operativo diseñado para su uso en
servidores de red de área local (LAN). Ofrece la potencia, la manejabilidad y la
capacidad de ampliación de Windows NT en una plataforma de servidor e incluye
características, como la administración centralizada de la seguridad y tolerancia a
fallos más avanzada, que hacen de él un sistema operativo idóneo para servidores
de red. Windows NT Server es a la vez un sistema operativo para ordenadores
personales y un sistema operativo para red, puesto que incorpora funciones de
red, las redes de Windows NT Server se integran de forma óptima con el sistema
operativo básico, facilitando el uso y la administración de las funciones. Además
es un sistema operativo para servidores, ampliable e independiente de la
plataforma. Puede ejecutarse en sistemas basados en procesadores Intel x86,
RISC y DEC Alpha, ofreciendo al usuario mayor libertad a la hora de elegir sus
sistemas informáticos. Es ampliable a sistemas de multiproceso simétrico, lo que
permite incorporar procesadores adicionales cuando se desee aumentar el
rendimiento.
Luego en su evolución se puede hablar de Windows 2000, que es un sistema
operativo con varios propósitos, con un soporte integrado para cliente/servidor y
redes parejas. Se ha diseñado la familia de productos Windows 2000 para
aumentar la fiabilidad, proporcionar mayores niveles de disponibilidad del sistema
y conseguir dimensionabilidad de una pequeña red a una gran red entre
empresas. Windows 2000 incorpora tecnologías que reducen el costo total de
licencia permitiendo a las organizaciones aumentar el valor de sus inversiones
existentes mientras disminuyen los costes totales de informática. Además,
Windows 2000 incorpora un amplio soporte de Internet y aplicaciones, y ha sido
construido a partir del éxito conseguido con Windows NT como un sistema
operativo servidor para aplicaciones a Internet.
Y por último también se encuentra la versión Windows Server 2003, versión
mejorada con sus nuevas características que hacen que sea, hasta el momento, el
sistema operativo más estable, robusto, escalable y sobre todo mejor orientado a
perfeccionar la performance y las prestaciones para Servidores en distintos roles:
Aplicación, Servicios Web, Servicios de Directorio, Servicios de Archivos e
Impresión, y Servicios de Infraestructura. La optimización de todas estas
características, sin duda, también configuran a la familia Windows Server 2003,
como la plataforma que más recomendable para los negocios, reduciendo
notablemente aspectos tales como el costo, que se comentó anteriormente.
No hay que dejar a un lado, que próximamente saldrá al mercado Windows Server
2008, que tiene grandes expectativas.
Windows 2000, (conocido también como Win2K) sistema operativo de Microsoft
introdujo algunas modificaciones respecto a sus predecesores, como el sistema de
archivos NTFS 5, la capacidad de cifrar y comprimir archivos. Introdujo también las
mejoras en el sistema de componentes COM, introduciendo COM+ que unificó en
un solo paquete de servicios anexados, la tecnología COM y MTS de Windows
NT4, con nuevas ventajas. Este sistema fue el primer intento de Microsoft por
juntar su versión MS-DOS (Windows 95, 98, ME) y la NT (3.51, 4) aunque la fusión
definitiva llegaría con Windows XP. Esta versión ha tenido mucho éxito en
empresas, que todavía hoy la usan, pero entre los usuarios de hogares no tuvo
mucho éxito. Los requerimientos mínimos para Windows 2000 Professional son un
Pentium 166 MHz, 64 Mb de RAM y 2Gb de disco duro, con espacio libre de, al
menos, 1 Gb. Entre las mejoras destacó la estabilidad del sistema y el aumento en
seguridad respecto a las versiones anteriores de Windows, muy criticadas por sus
cuelgues continuos. Hoy en día Windows 2000 sigue considerándose por muchos
el mejor sistema de la casa Microsoft. Microsoft publicó 4 service packs
corrigiendo la mayoría de errores y aumentando todavía más su estabilidad y
seguridad. Existen cuatro variantes de Windows 2000 que son: Professional,
Server, Advanced Server y Datacenter Server. Estas dos últimas variantes no son
más que ampliaciones del propio Windows 2000 Server. Windows 2000 Server es
el sistema operativo de servidor principal para empresas de todos los tamaños y
es ideal para ejecutar sus servidores de red o los servidores de archivo, impresión,
intranet o de aplicaciones.
No es novedad que Windows 2003 es un sistema operativo que puede ser
administrado remotamente, teniendo opciones de gestión remota que van desde
Windows Terminal Services hasta los scripts de línea de comandos. Es así que ha
habido relativamente muy pocos cambios arquitectónicos hechos de Windows
Server 2000. Sin embargo, hay un número de realces que tendrán un impacto
beneficioso en la administración con Windows Server 2003. El sistema integrado
de servicios de administración, en Windows Server 2003, reduce los costes
asociados con las tareas de gestión de sistema, es por eso que durante la fase de
diseño de un sistema operativo se deciden las funcionalidades básicas y
características del sistema: El sistema de archivos a utilizar, el módulo de gestión
de memoria, la gestión de los procesos, etc. También, mantener protegido el
sistema operativo es una norma básica que cualquier persona interesada en la
seguridad que debe seguir.
La estructura del sistema operativo y la relación de componentes son
fundamentales desplegándose y operando en ambientes Windows Server 2003.
Es así que, entendiendo la arquitectura de sistema operativo, el administrador de
sistema estará en una mejor posición para instalar, configurar, optimizar, y
localizar y solucionar los daños de Windows Server 2003, esto ayuda a
integradores de sistemas y profesionales de tecnología de la información con
guías arquitectónicas validadas que establece a la plataforma Microsoft como la
plataforma más confiable para el negocio. Pues cada parte, funcionalidad y
servicios de tecnología de la información cubierta dentro de la arquitectura de
Windows Server, articulando opciones del diseño, ayuda asegurar que el diseño
más correcto está realizado para un panorama particular. Otro punto es acerca de
su sistema multiusuario, las aplicaciones están separadas del sistema operativo,
esto significa que el código del sistema se ejecuta en un modo privilegiado de
procesador (kernel mode), con acceso a las estructuras de datos y al hardware. El
código de aplicación corre en un modo no privilegiado de procesador (user mode),
con un número limitado de funciones de sistema. Cuando un programa en modo
usuario llama a un servicio de sistema, el procesador recoge la llamada y cambia
el proceso a modo kernel. Cuando el servicio de sistema acaba, el sistema
operativo vuelve a cambiar el contexto de la llamada a modo usuario y permite
seguir funcionando al programa.
La arquitectura Interna de Windows Server 2003 permite un mejor diseño basado
en prácticas de una infraestructura de tecnología de la información, lo cual
conduce estandarización a través de la plataforma aplicando principios
arquitectónicos sólidos alrededor de la seguridad, manejabilidad y otros factores
para asegurar un acercamiento coherente para la definición de servicios de
tecnología de la información.
El gestor de memoria virtual de Windows 2000 (W2K) controla como se asigna la
memoria y como se realiza la paginación. Cada proceso de usuario de W2K
dispone de un espacio de direcciones separado de 32 bits, lo que permite 4
Gbytes de memoria por proceso. Por lo que, una parte de esta memoria está
reservada para el sistema operativo y cada usuario tiene 2 Gbytes de espacio de
direcciones virtual disponible. Cuando se crea un proceso en principio puede
hacer uso de todo el espacio de usuario de 2 Gbytes. Este espacio se divide en
paginas de tamaño fijo, y cualquiera puede cargarse en la memoria principal. En la
práctica una página puede estar en uno de estos tres estados:
1. Disponible: las páginas no usadas actualmente por este proceso.
2. Reservada: un conjunto de paginas contiguas que el gestor de la memoria
virtual separa para un proceso pero no cuentan para la cuota de memoria
del proceso hasta que se usan.
3. Confirmada: paginas para las cuales el gestor de memoria virtual mantiene
un conjunto de espacio separado en su archivo de paginación.
Windows Server 2003 ofrece mejoras en el manejo de la memoria en las
siguientes áreas:
 Address Windowing Extension (AWE) permite a un servidor o aplicación
mapear, remapear y desmapear direcciones virtuales en un espacio de
direcciones físicas muy grande. Con ello, servidores como SQL Server
2000 pueden acceder a toda la memoria física (hasta 64 Gb) en un sistema
basado en x86 limitado a dos gigabytes de espacio de memoria virtual.
 Acceso E/S a disco usando Direct Memory Access (DMA), cuando se
necesita gestión de la memoria para el bloqueo de buffers de E/S en
memoria mientras tiene lugar la operación de E/S
 La administración de memoria mapea páginas dentro del espacio de
direcciones virtual bajo demanda. Los errores flexibles de página tienen
lugar cuando los datos buscados existen en la memoria física, pero no en la
memoria virtual, lo que puede ser el resultado de una operación de
desmapeo de memoria efectuada por una aplicación o por el gestor de
memoria, para reutilizar las direcciones virtuales para otro propósito.
 Se usan páginas iniciadas a ceros bajo demanda para aumentar la
seguridad de las secciones de datos y en respuesta a peticiones de páginas
de datos por parte de una aplicación. Windows rellena con ceros
proactivamente, de modo que la puesta a cero de una página pueda
hacerse a petición, para reducir el coste de un error en petición de páginas
a cero.
La gestión de memoria de Windows Server 2003 mejora la escalabilidad
reduciendo drásticamente la contención por bloqueos. Entre otras mejoras, se
incluyen:
 Reducción en los bloqueos de borde de página.
 Reducción de la frecuencia de activaciones en muchas rutas, incluyendo
bloqueo y desbloqueo de páginas de E/S de disco y errores flexibles de
página.
 Reducción del tiempo mantenimiento del bloqueo y la contención
 Eliminación del bloqueo del espacio dedicado en el sistema para mapeo de
direcciones del sistema.
 Soporte para páginas grandes en modo usuario, disponible con la función
VirtualAlloc, pero restringida al uso de un solo proceso (no
puede compartirse entre varios procesos).
En términos de tamaño de página, están disponibles:
 Páginas de 4 Mb en sistemas basados en x86.
 Páginas de 16 MB en sistemas basados en arquitectura Itanium.
 Eliminación de AweLock, mejorando la escalabilidad de las operaciones de
mapeo y desmapeo de páginas AWE.
 Bypass del bloqueo de borde de página para E/S de disco a AWE y páginas
grandes.
Realmente el gran avance el cual se pudo lograr con estos dos sistemas
operativos son el sistemas de archivos, ya que fue creado para darle una mejor
organización a la distribución de los mismos, así como también la reducción de
costos es la búsqueda de la información, es el sistema NTFS.
En cuanto a la memoria auxiliar, permiten ambos la utilización del caché como las
unidades ROM que ya en la Introducción hemos hablado.
Existen diversas áreas en las cuales se está adaptando la seguridad en Windows
2000 para soportara las empresas basadas en Internet. Algunos de estos cambios
reflejan los avances en el soporte que se proporciona a grandes organizaciones
por medio del uso del Directorio Activo jerárquico de Windows 2000. Otros
cambios aprovechan la flexibilidad de la arquitectura de seguridad de Windows
para integrar la autenticación, utilizando certificados de clave pública de Internet.
A continuación se presenta una lista de las nuevas funciones de seguridad
Windows 2000:
 El Directorio Activo proporciona almacenamiento para toda la información
relativa a políticas de seguridad de dominios e información de cuentas. El
Directorio Activo, el cual provee duplicación y disponibilidad de información
de cuenta a múltiples Controladores de dominio, está disponible para la
administración remota.
 El Directorio Activo soporta un espacio de nombre jerárquico para el
usuario, grupo e información de cuenta del PC. Las cuentas se pueden
agrupar según las unidades organizacionales, en lugar de hacerlo según el
espacio del nombre de la cuenta de dominio proporcionado en versiones
anteriores de Windows NT.
 Se pueden delegar derechos del administrador para crear y administrar
cuentas del usuario o de grupo a nivel de unidades organizacionales. Los
derechos de acceso se pueden otorgar a propiedades individuales en
objetos del usuario, con el fin de permitir, por ejemplo, que una persona o
grupo específicos tenga derecho a restablecer contraseñas, pero no a
modificar otra información de la cuenta.
 La duplicación del Directorio Activo permite actualizaciones a las cuentas en
cualquier controlador de dominio, y no únicamente para el controlador de
dominio primario (PDC). Se actualizan y sincronizan de forma automática
réplicas maestras múltiples de Directorio Activo en otros controladores de
dominio, los cuales se conocen como controladores de dominio de respaldo
(BDC).
 Windows 2000 emplea un nuevo modelo de dominio que utiliza el Directorio
Activo para soportar un árbol de dominios jerárquico de niveles múltiples.
La administración de relaciones de confianza entre dominios se simplifica a
través de confianzas transitorias a lo largo de los árboles que cubren todo el
árbol del dominio.
 La seguridad de Windows incluye nueva autenticación basada en los
protocolos de seguridad estándar de Internet, incluyendo Kerberos versión
5 y Seguridad de niveles de transporte (TLS) para protocolos de seguridad
distribuidos, además de soportar protocolos de autenticación del
administrador LAN de Windows NT para compatibilidad.
 La implementación de los protocolos de seguridad de canal seguros (SSL
3.0/TLS) soporta la autenticación sólida del cliente mediante la relación de
credenciales del usuario en la forma de certificados de clave pública para
las cuentas Windows NT existentes. Se utilizan herramientas de
 administración comunes para administrar la información de las cuentas y el
control de acceso, ya sea utilizando la autenticación secreta compartida o la
seguridad de clave pública.
 Windows 2000 soporta el uso opcional de tarjetas inteligentes para la
conexión interactiva, además de las contraseñas. Las tarjetas inteligentes
soportan criptografía y almacenamiento seguro para claves y certificados
privados, habilitando una autenticación sólida desde el escritorio al dominio.
 Windows 2000 incluye Microsoft Certificate Server para que las
organizaciones emitan certificados X.509 versión 3 a sus empleados o
socios de negocios. Esto incluye la introducción de CryptoAPI para la
administración de certificados y módulos para manejar certificados de clave
pública, incluyendo certificados de formato estándar emitidos por cualquier
Autoridad de certificado comercial (CA), CA de terceros o Microsoft
Certificate Server, incluido en Windows. Los administradores del sistema
definen cuáles CAs son de confianza en su entorno y, de esta forma, cuáles
certificados se aceptan para la autenticación del cliente y el acceso a los
recursos.
 Los usuarios externos que no tienen cuentas Windows 2000 pueden ser
autenticados utilizando certificados de clave pública y relacionados a una
cuenta Windows existente. Los derechos de acceso definidos para la
cuenta Windows determinan los recursos que los usuarios externos pueden
utilizar en el sistema. La autenticación del cliente, utilizando certificados de
clave pública, permiten que Windows 2000 autentique usuarios externos,
con base en certificados emitidos por Autoridades de certificados
acreditadas.
 Los usuarios de Windows 2000 cuentan con herramientas fáciles de usar y
diálogos de interfaz comunes para la administración de pares de claves
pública/privada y de certificados que se utilizan para acceder a los recursos
basados en Internet. El almacenamiento de credenciales de seguridad
personales, las cuales utilizan el almacenamiento basado en disco seguro,
se transportan fácilmente con el protocolo estándar en la industria
propuesto, Intercambio de información personal. Asimismo, el sistema
operativo ha integrado soporte para los dispositivos de tarjeta inteligente.
 La tecnología de encriptación está integrada dentro del sistema operativo
en muchas formas, con el fin aprovechar el uso de firmas digitales para
proporcionar flujos de datos autenticados. Además de los controles
firmados ActiveX™ y Clases Java para Internet Explorer, Windows 2000
utiliza firmas digitales para la integridad de imágenes de una variedad de
componentes del programa. Los desarrolladores internos también pueden
crear software firmado para distribución y protección de virus.
Windows Server 2003:
Los virus existen y por ello que la seguridad del software es un reto constante.
Para hacer frente a ello, Microsoft ha convertido la informática de confianza en una
iniciativa clave para todos sus productos. La informática de confianza es un marco
para desarrollar dispositivos basados en equipos y software seguros y confiables,
como los dispositivos y aparatos domésticos que utilizamos diariamente. Aunque
en la actualidad no exista ninguna plataforma de informática de confianza, el
nuevo diseño básico de Windows Server 2003 es un sólido hacia la conversión e
este concepto en realidad.
El motor de software del lenguaje compartido en tiempo de ejecución es un
elemento clave de Windows Server 2003 que mejora la confiabilidad y facilita un
entorno informático seguro. Asimismo reduce el número de errores y los agujeros
de seguridad causados por errores comunes de programación que existan menos
vulnerabilidades que los atacantes puedan explotar. El lenguaje compartido en
tiempo de ejecución verifica que las aplicaciones puedan realizarse sin errores, y a
la vez comprueba los permisos de seguridad adecuados, asegurando que realice
exclusivamente las operaciones correctas. Esto se lleva a cabo comprobando
aspectos como los siguientes: la ubicación desde la cual se ha descargado o
instalado el si el código tiene una firma digital de un desarrollador de confianza, y
si código ha sido alterado desde su firma digital.
11.2.3 SISTEMA OPERATIVO WINDOWS VISTA
Windows Vista apareció en enero de 2007. Los continuos retrasos en las fechas
de entrega han llevado a Microsoft a tomar diversas medidas, por ejemplo, en
Argentina, se podrá comprar Windows Vista con un "ticket" que la persona
adquiere al momento de comprar una nueva PC que no tiene instalado todavía
Windows Vista. Podrán canjear el "ticket" por una copia original de Windows Vista
y así actualizar su sistema.
Las diferentes versiones que se podrán adquirir son tres para el consumidor, Vista
Home Basic, Home Premium y Ultimate Edition y dos versiones para las
empresas, Vista Business y Enterprise, más Vista Starter, para los mercados
emergentes. Los requisitos minimos para que la versión básica de Windows Vista
funcione son los siguientes:
 Procesador de 32 Bits de por lo menos 800Mhz
 512 MB de RAM (para trabajar a una velocidad aceptable), se recomienda
1GB
 Tarjeta Gráfica con por lo menos 32MB de memoria, se recomienda 128MB.
 Disco duro de 40GB con 15GB disponibles
 Grabadora y lectora de DVD-ROM
Describe la interfaz de usuario de Windows Vista, prestando especial atención a
las tareas más habituales de un usuario en este sistema operativo: el manejo de
archivos y carpetas, la administración de impresoras, la instalación e inicio de
aplicaciones, la reproducción de archivos multimedia (audio, vídeo, animación,
etc.). También se estudian algunos accesorios útiles de Windows, como el Paint
para dibujar y los editores de texto Bloc de notas y WordPad. Finaliza con el
estudio de las opciones de accesibilidad disponibles.
Describe lo que podemos encontrar en el Escritorio de Windows Vista, con su
barra de tareas, la barra Windows Sidebar de gadgets, la papelera de reciclaje,
etc. Estudia el papel que juega el menú Inicio para ejecutar las aplicaciones que
necesitamos, así como la forma de alternar entre las tareas o ventanas abiertas
mediante la barra de tareas o visualmente en 3D si disponemos del entorno Aero.
Además, incluye una vista rápida del sistema de ayuda y estudia las distintas
opciones que tenemos a la hora de cerrar Windows Vista correctamente.
Windows Vista en relación a sus predecesores incorpora una mayor seguridad,
que se debe, en gran parte al Control de Cuentas de Usuario (UAC) que incorpora.
El Control de Cuentas de Usuario habilita un conjunto de permisos para cada
usuario o grupo de usuarios. De este modo no todos los usuarios podrán hacer
cuanto deseen con los ficheros o carpetas del PC.
Tipos de permisos del UAC de Windows Vista
total: Otorga todos los permisos disponibles. Modificar: Otorga los permisos
necesarios para modificar archivos o carpetas. Lectura y ejecución: Permite la
apertura o ejecución de ficheros. Mostrar el contenido de una carpeta: Otorga
permisos para abrir o ver el contenido de una carpeta. Lectura: Permite la lectura
del fichero o carpeta, es decir, otorga los permisos necesarios para que el fichero
no nos sea oculto. Escritura: Otorga permisos de escritura o modificación sobre un
fichero o carpeta. Permisos especiales: Dentro de los permisos especiales
encontramos los permisos que son necesarios para poder sincronizar un archivo,
cambiar permisos, cambiar el propietario de un archivo o carpeta y tomar posesión
sobre un fichero o carpeta. Con esta lista podremos dar / limitar de manera muy
amplia los permisos sobre cualquier fichero o carpeta a los usuarios del PC.
Usuarios y grupos del UAC de Windows Vista.
Los usuarios y grupos son los portadores u objetivo final del los permisos
disponibles. De este modo la asignación de un permiso se realiza sobre un
determinado usuario o grupo, es decir, que un mismo fichero o carpeta puede
tener distintos permisos en función de qué usuario este accediendo a él. Así se
consigue una escala de privilegios entre los usuarios del equipo, habrá usuarios
con más privilegios que otros en el mismo sistema. Un grupo es un conjunto de
usuarios que poseen los mismos permisos, es decir, si cambiamos los permisos
de un grupo cambiaremos también los permisos de todos los usuarios que
pertenezcan a él. La asignación de usuarios dentro de grupos facilita mucho la
tarea de gestionar los permisos. Además un usuario puede pertenecer a varios
grupos y adquirir los permisos de varios grupos para complementar los permisos
que necesite ese usuario.(Sólo se permite este modo de administración en las
versiones de Windows Vista Enterprise, Business y Ultimate.)
11.2.4 SISTEMA OPERATIVO WINDOWS CE
Un "Embedded System" - sistema empotrado - es cualquier sistema o dispositivo
que ejecuta una función “dedicada”. Los sistemas embarcados utilizan un sistema
operacional instalado en la ROM, o en el disco, como en el caso de un PC. Los
sistemas embarcados no tienen como objetivo substituir el sistema operacional
tradicional de las empresas y de las oficinas, tanto que sus funciones no son
permitidas para automatización de oficinas y computación personal (e_email,
procesamiento de textos, planillas, banco de datos, pesquisas en la red,etc.)
cuando está permitido en la forma embarcada.
La plataforma Microsoft Windows Embedded permite el desarrollo de dispositivos
inteligentes, de una forma más rápida. Esta plataforma incluye: EL Microsoft
Windows CE .NET es un sistema operacional vigoroso, en tiempo real, para el
desarrollo ágil de dispositivos de última generación conectados, inteligentes y
compactos. Éste incluye el software necesario para crear dispositivos basados en
el Windows CE, adicionando un conjunto completo de herramientas de desarrollo
para la construcción de productos de diseño sofisticados, con aplicaciones
poderosas para rodar en el hardware más actual. El Microsoft Windows XP
Embedded es una versión componentizada del sistema operacional líder del
mercado, que posibilita el rápido desarrollo de dispositivos más confiables,
completos y conectados. Basado en el mismo código binario del Windows XP
Profesional.
El Windows XP Embedded permite que los diseñadores seleccionen
individualmente los componentes y recursos necesarios para la creación de
dispositivos embarcados personalizados y de pequeño porte.
Justo cuando los programadores se estaban acostumbrando a Windows 9x y
Windows NT, Microsoft ha agregado un nuevo hermano: Windows CE. Sin
embargo este nuevo integrante de la familia Windows tiene un objetivo especial.
En los últimos años se ha visto que Windows 95 y Windows 98 se dedican a
entregar compatibilidad con las aplicaciones y hardware existentes, mientras
intentan entregar nuevas características como la multitarea. El objetivo de
Windows NT es convertirse a largo plazo en el mejor sistema operativo de
empresa. Sin embargo, Windows CE tiene otro objetivo: proveer un moderno
sistema operativo de plataforma cruzada, multihilado y de tamaño pequeño. Esta
última característica es la principal diferencia con Windows 95 y Windows NT.
Cuando se habla de tamaño, se refiere a la cantidad de memoria y de
almacenamiento necesario para albergar al sistema operativo.
Mientras se desarrollaba Windows CE se le dio el nombre de Pegasus y junto a él
se estaba diseñando un nuevo dispositivo, que tendría más tarde a Windows CE
como sistema operativo. A este nuevo dispositivo se le llamó Handheld PC (HPC)
o PC de bolsillo. Es así como el HPC sería la primera de muchas plataformas en
aceptar el uso de Windows CE.
Windows CE también funciona con otros dispositivos denominados Palm-size PC
o "PC del porte de la palma", que son más pequeños que los HPC y que carecen
de teclado, reemplazado por un reconocimiento de un sistema de tacto y un panel
de entrada que aparece en pantalla. La figura muestra un Palm-size PC.
Los dispositivos para Windows CE se sirven de baterías para poder durar 20 horas
con uso continuo o una semana si el uso es discontinuo. Como una regla general
se puede decir que las máquinas Windows CE tienen baterías con vida más corta.
A diferencia de Windows 9x o NT, el sistema operativo Windows CE no tiene que
ser re iniciado cada vez que el usuario lo desea utilizar. De hecho, se pueden
configurar las máquinas para que se reemprendan instantáneamente a la
respuesta al input del usuario, y el sistema vuelve al estado justo antes de
apagarse. El sistema operativo no viene en discos, ni en CD-ROM sino que lo
encontraremos en una pequeña tarjeta que se inserta en un HPC o en un Palmsize PC.
Desde 1996, Microsoft creo el nuevo Sistema Operativo (SO) Windows CE en su
primera versión, el cual se instaló en la memoria ROM de los primeros dispositivos
de información con procesadores RISC, llamados Handheld PC los cuales eran
similares a las Laptop, pero de tamaño reducido, pudiendo ser guardados en el
bolsillo, con memorias RAM para almacenar datos de 2 MB hasta 4 MB y
velocidades de 44 MHz Este SO venía acompañado de programas como Word,
Excel, Outlook e Internet Explorer en sus versiones Pocket.
En 1998 introduce al mercado la versión 2.0 con nuevos dispositivos tales como la
Palm-size PC, el AutoPC (Computadora para el automóvil), el Sega Dreamcast
(primer juego de video con capacidad de juego en línea a través de Internet) y las
mismas Handheld PC pero ahora incluyen un visualizador de Power Point con 8
MB.
En 1999 introduce la versión 2.11 con capacidad de manejar pantallas a color, en
su nueva versión Handheld PC Pro con la base de datos "Access" (Mini Laptop) y
las HMI (Human Machine Interface).
En el año 2000, deciden hacer un gran cambio, reconstruir el SO Windows CE,
para lograr sea de tiempo real, es decir que sea mucho mas rápido, sobre todo
para el caso de las HMI (Industria), así se lanza su tercera versión, en la cual aun
nos encontramos. A las anteriores Palm-size PC, se les adapta el Windows CE 3.0
de una forma diferente para hacerlas mas sencillas de usar y a esta adaptación se
le llamo Pocket PC. Se instalo por primera vez, en este tipo de dispositivos las
aplicaciones de Word, Excel, Internet Explorer, Microsoft Reader (Libros digitales),
Microsoft Media (Música digital MP3), en sus versiones Pocket, con memorias
RAM de 16 MB. En el presente podemos encontrar equipos con 64 MB en su
RAM, con la posibilidad de agregarles hasta 5 GB; con procesadores de 200 o 400
MHz Esta gran potencia con la que cuentan los equipos Pocket PC, los próximos
Pocket PC Phone y Smart Phone, les permite aprovechar el gran potencial de
Windows CE (Sistema Operativo de Tiempo Real), con lo cual podrá usted
aprovechar la capacidad de multitareas y multimedia (AutoPC) con la que cuentan,
es decir podrá ejecutar varias aplicaciones al mismo tiempo, con lo cual será mas
productivo y eficiente. Un ejemplo seria el estar navegando por Internet para
realizar una compra, mientras está enviando y recibiendo su correo electrónico,
así mismo le esta contestando al programa de Ajedrez y mientras lee su revista
favorita (Reader) escuchando su música (Media). En este ejemplo se están
ejecutando solo 5 aplicaciones diferentes de las 32 permitidas: Internet Explorer,
Inbox, Ajedrez, Reader y Media. Esto solo será posible cuando usted use
Windows CE en alguna de sus diferentes presentaciones (Pocket PC, Handheld
PC, etc.), no cuando use las famosas Palm de 3Com o la nueva de Sony.
Windows CE es un sistema operativo modular compuesto de varios elementos
software. Estos elementos son interfaces compatibles con Win32 y estas
interfaces permiten que cada uno de los elementos software puedan integrarse
entre sí. Cada elemento comprende varios componentes de nivel más bajo y los
diseñadores del sistema tienen la posibilidad de incluir o excluir estos
componentes de nivel más bajo según sus necesidades. Es posible que un
desarrollador excluya módulos como USER y GDI, obteniendo así un Windows CE
sin interfaz de usuario. Bueno, esa característica ahora ha permitido que Windows
CE funcione en sistemas empotrados (Embedded Systems) en los cuales todo es
controlado mediante memoria ROM y no hay interfaz de usuario, ya que por lo
general los sistemas empotrados son automatizaciones donde no hay intervención
humana. Windows CE debido a su tamaño se hace ideal para realizar trabajo en
tiempo real y permite llevar la API Win32 a sistemas automatizados de tiempo real.
Comenzando por el fondo, los principales elementos que conforman el sistema
operativo son: la capa de abstracción OEM denominada OAL (OEM Abstraction
Layer), que incluye la administración de poder, los drivers de dispositivos y los
servicios de las tarjeta de PC (PC Card), el Kernel de Windows CE, USER, GDI,
sistemas de archivos y bases de datos; los protocolos de comunicaciones IRDA y
TCP/IP; las distintas APIs; la conectividad remota, Internet Explorer para Windows
CE y el shell. Como se dijo anteriormente un diseñador puede incluir o excluir
algunos de estos elementos (por ejemplo, el Internet Explorer) según sus
necesidades.
El Kernel de Windows CE fue escrito específicamente para dispositivos "no PC".
Implementa el modelo de proceso, hilo y memoria virtual de Win32. Al igual que
Windows NT y Windows 9x, presenta un sistema multitarea con desalojo basado
en prioridad, también provee una rica variedad de primitivas de sincronización,
incluyendo semáforos, mutex y eventos. El Kernel de Windows soporta la
ejecución de programas en ROM o RAM. También implementa paginación bajo
demanda para las aplicaciones que se almacenan comprimidas y/o se almacenan
en un medio que soporta ejecución en el lugar (como lo es para RAM o ROM). El
kernel tiene una rutina de bajo nivel de servicios de interrupción y baja latencia de
hilo (a los hilos se les puede asignar la CPU y hace cambio de contexto en menos
de 100 microsegundos en un HPC a 33 MHz). Esto permite que Windows CE sea
utilizado en muchos tipos de sistemas de tiempo real.
Windows CE exporta un subconjunto de Win32 API. Dentro de este subconjunto
se incluyen sobre 500 de las más utilizadas API3s de Win32. Aplicaciones como
Pocket Word y Pocket Excel han sido escritas con este subconjunto. Junto con los
protocolos de comunicaciones, Windows CE provee varias de las APIs familiares
para comunicaciones de Windows, incluyendo Windows Sockets, TAPI4 y
Unimodem.
RESUMEN
Un Sistema Operativo es un programa que actúa como interface entre el usuario y
el hardware de una computadora. El propósito es proveer un entorno en el cual el
usuario puede ejecutar programas, es decir que el objetivo principal de un Sistema
Operativo es hacer que un sistema sea conveniente de usar. Para entender qué
son los Sistemas Operativos hay que entender como fueron desarrollándose.
Un sistema tiene diversos recursos que pueden requerirse para resolver un
problema: tiempo de CPU, espacio de memoria, espacio de almacenamiento de
archivos, procesos, dispositivos de E/S, etc. El Sistema Operativo actúa como el
gerente de esos recursos y se los otorga a programas específicos y usuarios a
medida que son necesarios.
HISTORIA Y EVOLUCION DE LOS SISTEMAS OPERATIVOS
Los sistemas operativos han venido evolucionando a través de los años, ya que
estos se han apegado íntimamente a la arquitectura de las computadoras en las
cuales se ejecutan.
La primera computadora digital real fue diseñada por el matemático ingles Charles
Babbage (1792 - 1871). Aunque Babbage gasto la mayor parte de su vida y de su
fortuna intentando construir una “maquina analítica. La cual no tuvo un Sistema
Operativo. Con el logro de Babbage, se fueron acoplando herramientas y
mecanismos que permitieran un mejor funcionamiento en estas maquinas. De allí
las diferentes generaciones de Sistemas Operativos que se fueron desarrollando.
Los cuales tuvieron su época de reconocimiento y aporte al servicio del hombre.
LA GENERACIÓN CERO (DÉCADA DE 1940)
En 1940, las computadoras electrónicas digitales más nuevas no tenían sistema
operativo. Las Máquinas de ese tiempo eran tan primitivas que los programas por
lo regular manejaban un bit a la vez en columnas de switch's mecánicos. Los
usuarios tenían completo acceso al lenguaje de la maquina. Todas las
instrucciones eran codificadas a mano.
PRIMERA GENERACIÓN (1945 - 1955): TUBOS DE VACIO Y TABLEROS
ENCHUFABLES
Los laboratorios de investigación de la General Motors implementaron el primer
sistema operativo en los 50's, el cual generalmente corría una tarea a la vez y
suavizó la transición entre tareas para obtener máxima utilización del sistema de la
computadora. Este fue el comienzo de los sistemas de procesamiento por lotes,
donde los trabajos se reunían por grupo o lotes. Al terminar cada trabajo, el control
era devuelto al sistema operativo, el cual "limpiaba" y leía e inicia el trabajo
siguiente.
SEGUNDA GENERACIÓN (1955 - 1965): TRANSISTORES Y SISTEMAS DE
LOTE
La característica de la segunda generación de los sistemas operativos fue el
desarrollo de los sistemas compartido con multiprogramación, y los principios del
multiprocesamiento. Un programador primeramente escribiría el programa en
papel (en FORTRAN o en lenguaje ensamblador) y después lo perforaría en
tarjetas. La introducción del transistor a mediados de la década de 1950 cambio la
imagen radicalmente.
TERCERA GENERACIÓN (1965 - 1980): CIRCUITOS INTEGRADOS (CI) Y
MULTIPROGRAMACIÓN
En 1964, con la introducción de la familia de computadores Sistemas/360 de IBM
las variadas computadoras 360 fueron diseñadas para ser compatibles con el
hardware, para usar el OS/360 sistema operativo, y para ofrecer mayor poder
computacional a como iba avanzando el usuario en las series. Sistemas
operativos mas avanzados fueron desarrollados para servir a múltiples usuarios
interactivos a la vez.
CUARTA GENERACIÓN (1980 - 1990): COMPUTADORAS PERSONALES
Estos sistemas constituyen el estado actual de la tecnología. El microprocesador
ha hecho posible la aparición de la computadora personal. Dos sistemas
operativos han dominado la escena de la computadora personal: MS-DOS, escrito
por Microsoft, Inc., para la IBM PC y otras computadoras que utilizan la CPU Intel
8088 y sus sucesores, y UNIX, que domina en las computadoras personales
mayores que hacen uso de CPU Motorola 68000.
Los sistemas operativos que han evolucionado a través del tiempo son:
 Sistema Operativo Unix
 Sistema Operativo Solaris
 Sistema Operativo Linux
 Sistema Operativo Mac os x
 Sistema Operativo Windows server 2000/2003
 Sistema Operativo Windows NT 3.51 y 4.0
 Sistema Operativo Windows vista
 Sistema Operativo Windows Ce
Características de los Sistemas Operativos
En general, se puede decir que un Sistema Operativo tiene las siguientes
características:
 Conveniencia. Un Sistema Operativo hace más conveniente el uso de una
computadora.
 Eficiencia. Un Sistema Operativo permite que los recursos de la
computadora se usen de la manera más eficiente posible.
 Habilidad para evolucionar. Un Sistema Operativo deberá construirse de
manera que permita el desarrollo, prueba o introducción efectiva de nuevas
funciones del sistema sin interferir con el servicio.
 Encargado de administrar el hardware.
 Relacionar periféricos (gestionar a través del kernel), cuando el usuario así
lo requiera.
 Organizar datos para acceso rápido y seguro.
 Manejar las comunicaciones en red.
 Procesamiento por bytes de flujo a través del bus de datos.
 Facilitar las entradas y salidas de dispositivos.
 Técnicas de recuperación de errores.
 Generación de cálculos estadísticas.
 Permite que se puedan compartir el hardware y los datos entre los usuarios.
Clasificación de los sistemas operativos
Con el paso del tiempo, los Sistemas Operativos fueron clasificándose de
diferentes maneras, dependiendo del uso o de la aplicación que se les daba.
 Sistemas Operativos por lotes.
 Sistemas Operativos de tiempo real.
 Sistemas Operativos de multiprogramación (o Sistemas Operativos de
multitarea).
 Sistemas Operativos de tiempo compartido.
 Sistemas Operativos distribuidos.
Estructura de los Sistemas Operativos
La estructura interna de los sistemas operativos puede ser muy diferente. Se
deben tener en cuenta:
 Metas de los usuarios: ser amigable, intuitivo, confiable, seguro, rápido.
 Metas del sistema: fácil de diseñar, implementar y mantener, también
flexible, confiable y eficiente.
Las distintas estructuras que presentan los actuales sistemas operativos para
satisfacer las necesidades que de ellos se quieren obtener son:
 Estructura Monolítica.
 Estructura Jerárquica.
 Máquina Virtual.
 Cliente-Servidor (Microkernel).
CONCEPTOS Y VISION GENERAL DE LOS SISTEMAS OPERATIVOS
Gestión del Procesador
Para que el procesador cumpla adecuadamente con sus funciones se consideran
tres niveles importantes de planificación, los cuales son:
Planificación de alto nivel.
Planificación de nivel intermedio.
Planificación de bajo nivel.
Administración de recursos:
El Administrador de recursos del servidor de archivos es un conjunto de
herramientas que permite a los administradores entender, controlar y administrar
la cantidad y el tipo de datos almacenados en los servidores.
Planeación y despacho
El sistema debe ser capaz de cargar un programa a memoria y ejecutarlo. El
programa deberá poder finalizar su ejecución y finalizar de forma normal o
anormal (indicando un error).
Los llamados al sistema (system calls) son una interfaz, provista por el núcleo,
para que los procesos de usuarios accedan a los diferentes servicios que brinda el
sistema operativo.
Administración de Procesos
Un proceso es un programa en ejecución con un estado asociado. Las distintas
aplicaciones que se pueden ejecutar en un sistema operativo multitarea son
procesos independientes. Cada proceso cuenta con un contador de programa (PC
program counter) que determina la próxima instrucción de código a ejecutar.
Gestión de memoria
La memoria principal es un arreglo de palabras o bytes. Este repositorio de datos
de rápido acceso es compartido por las CPU y los dispositivos, además actúa
como un área de almacenamiento común a los procesadores y dispositivos del
sistema dónde se almacenan programas, para su ejecución.
El sistema operativo es responsable de las siguientes tareas:
 Mantener que partes de la memoria están siendo utilizadas y por quién.
 Decidir cuales procesos serán cargados a memoria cuando exista espacio
de memoria disponible.
 Asignar y quitar espacio de memoria según sea necesario.
Gestión de archivos /Entrada/Salida
Un Sistema de gestión de archivos es aquel conjunto de software del sistema que
proporciona servicios a usuarios y aplicaciones para el uso de archivos. Cuando
se habla de archivos, habitualmente se utilizan cuatro términos:
1. Campo
2. Registro.
3. Archivo
4. Base de datos
Objetivos para un sistema de gestión de archivos:
 Funciones de la gestión de archivos:
 Arquitectura de los sistemas de archivos
 Criterios en la elección de una organización de archivos
Las cinco organizaciones fundamentales son:
1. Pilas
2. Archivos secuénciales
3. Archivos secuénciales indexados
4. Archivos indexados
5. Archivos directos o de dispersión
Los sistemas operativos de tiempo real, embebidos
Los sistemas embebidos y los de tiempo real son tecnologías inmersas en el diario
vivir y generalmente no se identifican fácil y tampoco se definen los sistemas
operativos que hacen posible su manipulación y que a la vez administran los
recursos de dichos dispositivos para maximizar el desempeño.
Un sistema operativo embebido es aquel que esta integrado en los circuitos de los
dispositivos electrónicos, entre estos dispositivos se encuentra electrodomésticos,
teléfonos móviles, radios, televisores, automóviles, lectores de códigos de barras,
equipos médicos, asistentes digitales personales (PDA), etc.
Características de los sistemas de tiempo real






Objetivo es proporcionar rápidos tiempos de respuesta y cambios de
contexto.
Minimizar el tiempo en el que esta deshabilitadas las interrupciones.
Procesa ráfagas de miles de interrupciones por segundo sin perder un solo
suceso.
Proceso de mayor prioridad expropia recursos.
Generalmente se utiliza planificación expropiativa basada en prioridades.
Gestión de memoria menos exigente que tiempo compartido, usualmente
procesos son residentes permanentes en memoria. Entre otras.
Muchas aplicaciones de tiempo real son embebidas, pero no todas las
aplicaciones embebidas se desempeñan en tiempo real. Mientras que aplicaciones
en tiempo real siempre se adhieren a características estrictas en el tiempo, los
sistemas embebidos no son tan simples de categorizar.
Algunos sistemas operativos embebidos y de tiempo real son:
10.1 Windows XP Embedded
Es una versión de Windows XP recortada (componetizada) para dispositivos
móviles. Está pensado para arquitecturas tipo X86 y soporta practicamente el
mismo software y hardware que XP.
10.2 RTLinux
Es un sistema operativo en tiempo real que ejecuta Linux como un thread (hilo de
ejecución) de menos prioridad que las tareas de tiempo real. Con este diseño, las
tareas de tiempo real y los manejadores de interrupciones nunca se ven
retrasados por operaciones que no son de tiempo real.
Características de los sistemas RTLinux
 Sistema operativo de tiempo real estricto.
 Extensiones para entorno multiprocesador SMP (x86).
 API "próximo" al de POSIX threads. Planificador expulsivo por prioridades
fijas, señales, sistema de archivos POSIX (open, close, etc.) semáforos y
variables condición.
 Depuración de código mediante GDB (GNU Debugger). Entre otras.
10.3 ChorusOS
ChorusOS es un sistema operativo para aplicaciones empotradas o en tiempo
real, desarrollado por la empresa Sun Microsystems. Actualmente está liberado
bajo código abierto.
10.4 VxWorks
VxWorks es un sistema operativo de tiempo real, basado en Unix, vendido y
fabricado por Wind River Systems.
Las características distintivas de VxWorks son:
 La compatibilidad con POSIX.
 El tratamiento de memoria.
 Las características de multi-procesador.
VxWorks se usa generalmente en sistemas empotrados.
10.5 QNX
QNX (pronunciado Q.N.X. o Q-nix) es un sistema operativo de tiempo real basado
en Unix que cumple con la norma POSIX. Es desarrollado principalmente para su
uso en dispositivos empotrados. Desarrollado por QNX Software Systems
empresa canadiense.
10.6 S. O. µlTRON
µMore es un sistema operativo en tiempo real para dispositivos móviles de
próxima generación que cumple las especificaciones de perfiles estándar ulTRON
4.0. Entre sus prestaciones se incluye la función Easy Power Save (ahorro de
energía sencillo) y el módulo de red AVE-TCP (que cumple las especificaciones
IPv6). µMore puede implementarse independientemente o en combinación con los
navegadores ACCESS para la electrónica de consumo, NetFront o Compact
NetFront.
10.7 Windows Embedded CE
Es una versión distinta de Windows pensada para dispositivos móviles solamente
y construida desde cero para este fin. Es más pequeña que XP Embeded llegando
a tener como mínimo 300KB (vs 40MB de XPe) y con 700 componentes que se
pueden escoger (como un lego tambien).
10.8 freertos
Sistema operativo de tiempo real para los sistemas empotrados pequeños.
Los programas preconfigurados de la demostración son incluidos para varias
arquitecturas del microcontrolador - ARM7, CORTEZA M3, 8051, AVR
(MegaAVR), x86, PIC (PicMicro PIC18), HCS12, H8S, RDC del BRAZO.。
10.9 NetBSD
Es un sistema operativo de la familia Unix (en sí no se le puede llamar "un Unix",
ya que esta es una marca comercial de AT&T, pero se denomina como "sistema
de tipo UNIX" o "derivado de UNIX"), open source y libre, y, a noviembre de 2006,
disponible para más de 50 plataformas hardware.
Características de los sistemas NetBSD:
Actualmente NetBSD se centra en ofrecer un sistema operativo estable,
multiplataforma, seguro y orientado a la investigación.
Está diseñado teniendo como prioridad escribir código de calidad y bien
organizado, y teniendo muy en cuenta también el cumplimiento de estándares
(POSIX, X/Open y otros más relevantes): prueba de este buen diseño es su
amplia portabilidad, actualmente a 56 plataformas.
Se trata de un sistema operativo maduro, producto de años de desarrollo (los
orígenes de BSD están sobre el año 1977), y partiendo del sistema UNIX sexta
edición.
10.10 OpenBSD
Sistema operativo libre tipo Unix, multiplataforma, basado en 4.4BSD. Es un
descendiente de NetBSD, con un foco especial en la seguridad y la criptografía.
Este sistema operativo, se concentra en la portabilidad, cumplimiento de
normas y regulaciones, corrección, seguridad proactiva y criptografía
integrada.
Se distribuye bajo la licencia BSD, aprobada por la OSI.
Características



Sistema operativo tipo UNIX.
Se distingue de Linux por sus fuentes y su licencia.
Libre, Funcional, Seguro. Entre otras.
10.11 Linux empotrado (Embedded Linux)
Se refiere al uso del sistema operativo Linux en un sistema embebido, como por
ejemplo PDA's, teléfonos móviles, robots, enrutadores / servidores, dispositivos
electrónicos
y
aplicaciones
industriales
con
microcontroladores
y
microprocesadores.
CONCLUSIONES
 Los sistemas operativos crecieron de una manera favorable para el
desarrollo de las interpretaciones manejadas por una maquina.
 Los Sistemas Operativos se fueron moldeando adecuadamente,
permitiendo relacionarse cada vez más a las arquitecturas de las
computadoras desde las cuales se ejecutaban.
 El desarrollo del transistor, permitió incorporar mejoras a las actividades
realizadas por las computadoras, viéndose reflejado este cambio en el
desempeño y estructura de estas maquinas.
 Cada nuevo esfuerzo por incorporar tecnología en una maquina perfecciono
su funcionamiento, tal es el caso de la incorporación de el microprocesador
que hizo posible la aparición de la computadora personal, viéndose
beneficiados todos los usuarios que hacen uso de este know-how.
 A medida que se fue adentrando en el análisis e interpretación de la
manera como se debía desarrollar un Sistema Operativo, se logro agregar
una serie de recursos claves que este debía administrar como lo son Los
procesadores y los dispositivos de E/S, el almacenamiento y los datos, que
garantizan un correcto desempeño de las actividades ejecutadas por un
usuario.
 Logros como diseñar la interfaz de usuario, realizar varias actividades a la
vez, tener abiertas varias sesiones; son el resultado de varias épocas de
arduo trabajo realizado por técnicos, tecnólogos e ingenieros de sistemas,
que lograron interpretar las funciones adecuadas a estas actividades.
 A lo largo de todas las épocas de desarrollo de los Sistemas Operativos, y a
raíz de su capacidad de funcionamiento, estos fueron clasificándose de
diferentes maneras, dependiendo del uso o de la aplicación que se les
daba, viéndose beneficiado en definitiva el usuario que hacia uso de sus
recursos.
 Gracias a los esfuerzos realizados por diferentes actores (gobierno,
ingenieros de sistemas, programadores, etc.); el futuro de los Sistemas
Operativos es promisorio y lleno de nuevos avances, tanto en sus
estructuras
como en su desempeño; garantizando una actividad
constantemente amigable entre el y los usuarios que lo manipulan.
BIBLIOGRAFIA
 http//www.monografias.com
 http://www.todobytes.net/Articulos/Historia_SO/historia_so.html
 http://es.wikipedia.org/wiki/Sistema_operativo
 http://www.mitecnologico.com/
 http://www.elprisma.com/apuntes/ingenieria_de_sistemas/gestiondem
emoria/
 Sistemas Operativos, Una Visión Aplicada, Jesús Carretero Pérez,
(McGraw-Hill)
 http://www.ual.es/~rguirado/so/tema6.pdf
 http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/Mo
nogSO/SEGSO00.htm
 http://www.europe.redhat.com/documentation/rhl7/ref-guidees/chpartitions.php3
 http://www.tau.org.ar/base/lara.pue.udlap.mx/sistoper/
 http://www.microsoft.com/spanish/MSDN/estudiantes/ssoo/diseno/esar
chivos.asp
 Sistemas Operativos Stallines - 4ta edición
 Sistemas Operativos – Master David Luis La Red Martínez
 Mastering Windows 2000 Server (Third Edition)
 MCSE Training Kit Microsoft Windows 2000 Professional
 WINDOWS SERVER 2003 (Personal)
 Kit de 10 DVD’s of Setup, administration and foundations advanced
Windows 2000 and Windows server 2003( McGraw-Hill)
 Red Hat Linux Networking and System Administration, 3ª Edition,
Willey
Documentos Solaris, Unix, Windows Vista (pdf), Biblioteca Personal