Entender el sistema operativo es
comprender el funcionamiento de toda la maquina, porque este es quien
administra todas y cada una de las piezas de hardware y el software.
En términos extremadamente simples; un sistema operativo es el
gerente ejecutivo, es decir la parte que administra todo el software
y el hardware. Siendo específicos controla todos los archivos,
dispositivos, secciones de la memoria principal y cada segundo del
tiempo de procesamiento; de igual forma controla quien puede utilizar
el equipo y la forma en que eso sucede.
La base de la pirámide de la figura
anterior muestra los cuatro administradores esenciales de un sistema
operativo; los cuales son; la base de todos los sistemas operativos.
Cada administrador trabaja de cerca con los demás sea cual sea el
sistema operativo en cuestión.
Software del sistema operativo
Sin importar el tamaño o configuración
del sistema, cada administrador de subsistema llevan acabo estas
tareas:
- Monitorizar continuamente sus recursos
- Obligar al cumplimiento de las
políticas que determinan quien obtiene que, cuando y cuanto
- Asignarlos recursos cuando es necesario
- Liberar el recurso -recuperarlo- cuando
es conveniente
Una de las principales funciones del
administrador de memoria es proteger el espacio en la memoria
principal que ocupa el sistema operativo: no puede permitir que
parte alguna de ese espacio sea alterada de manera accidental o
propositiva.
El administrador del procesador decide
como asignar la unidad de procesamiento central (CPU) y controlar el
estado de cada proceso.
Este administrador monitorea si se esta
ejecutando un proceso o espera que termine la ejecución de un
comando de lectura o escritura. Dado que maneja las transiciones de
procesos de un estado a otro se puede comparar con un controlador de
trafico. El administrador asigna el procesador y establece los
registros y tablas necesarias; mas tarde, cuando la tarea a terminado
o el tiempo de ejecución ha expirado lo recupera.
El administrador de dispositivos vigila
todos los dispositivos, canales y unidades de control. Su tarea es
escoger la manera mas eficiente de asignar los dispositivos del
sistema (impresoras, terminales, unidades de disco, etc) con base en
una política de programación escogida por los diseñadores del
sistema. Este administrador asigna el dispositivo, lo inicializa y lo
libera.
Sin embargo, no basta que cada uno de
los administradores lleve acabo sus tareas individuales. También
deben ser capaces de trabajar en conjunto con los otros
administradores. Suponiendo que alguien escribe un comando para
ejecutar un programa, el sistema debería realizar los siguientes
pasos en secuencia
- El administrador de dispositivos
recibe los impulsos eléctricos del teclado, los codifica para formar
el comando y lo envía a la interfaz de comando del usuario, donde
el administrador del procesador lo valida.
- Luego el administrador del
procesador manda un mensaje de reconocimiento, para que aparezca en
el monitor de vídeo, de manera que quien lo escribió sepa que se
envío el comando
- Cuando el administrador del
procesador recibe el comando, determina si hay que traer el programa
correspondiente de donde este almacenado o si ya esta en la memoria, después de lo cual notifica al administrador apropiado
- Si el programa esta almacenado, el
administrador de archivos debe calcular su localización exacta en el
disco y pasar la información al administrador de dispositivos. Este
lo recupera y envía el programa al administrador de la memoria el
cual debe encontrar el espacio para el mismo y registrar su ubicación
exacta en la memoria
- Una vez que el programa se halla en
la memoria, el administrador de esta debe controlar su localización
y progreso conforme lo ejecuta el administrador del procesador
- Cuando termina la ejecución del
programa, este manda un mensaje de “terminado” de vuelta al
administrador del procesador
- Por último el administrador del
procesador manda el mensaje de “terminado” de vuelta al
administrador de dispositivos, que lo muestra en el monitor para que
el usuario lo vea
Aunque esta es una simplificación del
proceso de un sistema operativo, sirve para identificar que ningún
administrador puede trabajar solo, o por su parte.
Tipos de sistemas operativos
Los sistemas operativos de las
computadoras grandes y pequeñas se ubican en cuatro clases, que se
distinguen por su tiempo de respuesta y la forma en que se introducen
los datos en el sistema:
- Sistemas por lotes
- Sistema interactivo
- Sistema operativo multitarea
- Sistema operativo en red
- Sistema en tiempo real
- Sistema mixto
- Sistema operativo distribuido
- Sistemas por lotes
Estos existen desde las primeras
computadoras, que se apoyaban en tarjetas perforadas o en citas para
la entrada cuando se introducía una tarea mediante la agrupación de
tarjetas en un paquete y se corría todo este a través de un lector
como un grupo. Los sistemas por lotes de hoy no están limitados a
tarjetas o cintas pero los trabajo todavía se procesan serie sin
interacción del usuario.
La eficiencia del sistema se media por
producción -esto es la cantidad de tareas completadas en una
cantidad de tiempo, y el tiempo total se media en hora o a veces en
días. Hoy en día no es común encontrar un sistema por lotes en
funcionamiento.
Permiten la simulación de que el
sistema y sus recursos son todos para cada usuarios. 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.
Sistemas interactivos
También conocidos como sistemas de
tiempo compartido; dan un tiempo de retorno mas rápido que los
sistemas por lotes, pero son mas lentos que los sistemas en tiempo
real. Se introdujeron opara satisfacer las demandas de los usuarios
que necesitaban un tiempo de retorno mas rápido al hacer el retorno
al eliminar los errores de sus programas. El sistema requería el
desarrollo de software de tiempo compartido, lo que permitía a cada
usuario interactuar directamente con el sistema de computo vía
comandos introducidos a través de un terminal del tipo maquina de
escribir.
El sistema proporciona una
retroalimentación inmediata al usuario, y el tiempo de respuesta
puede medirse en minutos o incluso en segundos, esto según la
cantidad de usuarios activos.
Sistemas en tiempo real
Estos son los más rápidos de los
cuatro y se utilizan en entornos de tiempo critico donde los datos se
deben procesar con suma rapidez porque la salida afecta decisiones
inmediatas. Los sistemas de tiempo real se utilizan para vuelos
espaciales, controladores de trafico, aeronaves de alta velocidad,
procesos industriales, equipo médico y conmutación telefónica
entre otros. Un sistema en tiempo real debe ser 100% sensible el 100%
de las veces. El tiempo de respuesta se mide en fracciones de
segundo, aunque en la práctica no se logra a menudo.
Si bien en teoría es posible convertir
un sistema operativo de tipo general en un sistema en tiempo real, en
la práctica la carga general de los sistemas de tipo general es tan
grande que no se logra desempeños en tiempo real. Por lo tanto la
mayor parte de los trabajos en tiempo real requiere sistemas
operativos diseñados para llenar necesidades en tiempo real.
Sistema operativo multitarea o
multiprogramación
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 inndividuales.
- Requieren validación de usuario para
seguridad y protección.
- Proporcionan contabilidad del uso de
los recursos por parte de los usuarios.
- Multitarea sin soprte 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.
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.
Caracteristicas 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.
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.).
Sistema operativo en red
Son aquellos sistemas que mantienen a
dos o más computadoras unidas através de algún medio de
comunicación (fisico 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 mas
ampliamente usados son: Novell Netware, Personal Netware, LAN
Manager, Windows NT Server, UNIX, LANtastic.
Historia de los sistemas operativos
Los sistemas operativos han
evolucionado con el paso de los años y desde la perspectiva
histórica los sistemas operativos han estado íntimamente ligados
con la arquitectura de las computadoras en las que se ejecutan. Por
ello es necesario revisar las generaciones de las la computadora para
ver que tipo de sistema operativo usaba.
La primera computadora digital
verdadera fue la creada por Charles Babbage, quien aunque invirtió
la mayor parte de su vida y su fortuna intentando construir su
maquina analítica nunca logro que funcionara como debiera porque era
mecánica por completo y la tecnología de su época no era capaz de
construir los engranes y las ruedas necesarias con la suficiente
precisión. A parte sobra decir que esta carecía de un sistema
operativo.
Como nota histórica, Babbage se dio
cuenta que necesitaría de software para su máquina analítica, así
que contrato a una mujer llamada Ada Lovelace hija del afamado poeta
ingles Byron, para serla primer programadora del mundo. El lenguaje
de programación Ada® se llama así en su honor.
Primera generación: Tubos al vacío
Después de la infructuosa labor de
Babbage, poco avanzo la construcción de computadoras deigitales
antes de la segunda guerra mundial. A mediados de la década de 1940,
Howard Aiken, en Harvard; Jhon Von Neumann, En el instituto de
estudios avanzados de Princeton; Presper Eckert y William Mauchley,
En la universidad de Pensilvania entre otros, lograron construir
máquinas calculadoras. Las primeras empleaban relevadores mecánicos
pero eran sumamente lentas, con tiempos de ciclos medios en segundos.
Luego los relevadores fueron sustituidos por tubos la vacío; eran
enormes; ocupaban recintos enteros y tenían decenas de miles de
tubos al vacío, con todo eran millones de veces mas lentas que las
computadoras personales mas económicas que se venden en la
actualidad.
En esos tiempos, un solo grupo de
personas diseñaba, construía, programaba, operaba y mantenia cada
maquina. Toda la programación se hacia en lenguaje máquina
absoluto, a menudo alambrando tableros de conexiones para controlar
las funciones básicas de la máquina. No existían los lenguajes de
programación. Nadie había oído hablar de los sistemas operativos.
La forma de operación usual era que el programador reservaba un
bloque de tiempo en una hoja pegada en la pared, bajaba al cuarto de
la máquina, insertaba su tablero de conexiones e la computadora, y
pasaba horas esperando a que ninguno de los tubos al vacío se
quemara durante la ejecución de su programa. Casi todos los
problemas eran cálculos numéricos simples como la preparación de
tablas de senos, cosenos y tangentes así como logaritmos.
Para principios de la década de 1950,
la rutina había mejorado un poco con la introducción de las
tarjetas perforadas, Ahora era posible escribir programas y hacer que
la máquina las leyera, en lugar de usar tableros de conexiones; por
lo demás el procedimiento era lo mismo.
Segunda generación: Transistores y
sistemas por lotes
La introducción del transistor a
mediados de la década de 1950, altero el panorama de manera radical.
Las computadoras se volvieron lo bastante fiables como para
fabricarse y venderse a clientes comerciales con la expectativa de
que seguirían funcionando el tiempo suficiente para efectuar algún
trabajo útil. Por primera vez hubo una distinción entre
programadores, operaqdores y personal de mantenimiento.
Estas máquinas eran llamadas
mainframes o macrocomputadoras se alojaban en salas de computo
especiales con aire acondicionado y las operaban grupos de operadores
profesionales. Solo las grandes corporaciones y dependencias
gubernamentales o universidades importantes podían pagar los
millones de dolares que costaban. Para ejecutar un trabajo un
programador escribía el programa en papel (en FORTRAN o en
ensamblador) y luego lo perforaba en tarjetas. Seguido de esto
llevaba el mazo de tarjetas al cuarto de entrada, lo entregaba a uno
de los operadores y esperaba a que estuvieran listas las salidas.
Cuando la computadora terminaba un
trabajo que estaba ejecutando, un operador tomaba las hojas de la
impresora y las llevaba al cuarto de salida, donde el programador
podía recogerlas. Luego tomaba uno de los mazos de tarjetas traídos
del cuarto de entrada y lo colocaba en la lectora de la computadora.
Si se necesitaba el compilador de FORTRAN, el operador tenia que
traerlo de un archivero y colocarlo en la lectora. Se desperdiciaba
mucho tiempo de computadora mientras los operadores iban de un lado a
otro en el cuarto de máquinas.
En vista del elevado costo de los
equipos, no es sorprendente que pronto se buscaran formas de reducir
el espacio de tiempo. La solución por lo general fue el sistema por
lotes. La idea básica era juntar una bandeja llena de trabajos en el
cuarto de entrada y luego pasarlos a una cinta magnética, empleando
una computadora pequeña y (relativamente) de bajo costo como la IBM
1401 , que era muy buena para leer tarjetas, copiar cintas e imprimir
salidas, pero mala para los cálculos numéricos, otras maquinas
mucho mas costosas como la IBM 7094, realizaban los cómputos
propiamente dichos. Esta situación se muestra en la siguiente
figura:
Después de cerca de cerca de una hora
de reunir trabajos, la cinta se rebobinaba y se llevaba al cuarto de
máquinas. Luego el operador cargaba un programa especial (el
antecesor del sistema operativo actual) que leía el primer trabajo
de la cinta y lo ejecutaba. Las salidas de grababan en una segunda
cinta, en lugar de imprimirse. Una vez terminado el trabajo, el
sistema operativo leía en forma automática el siguiente de la cinta
y comenzaba a ejecutarlo. Una vez terminado todo el lote, el operador
desmontaba todas las cintas de entrada y las de salidas, reemplazaba
la cinta de entrada por otro lote y llevaba la cinta de salida a una
1401 para imprimir las salidas fuera de linea .
Tercera generación
A principio de la década de 1960, la
mayoría de los fabricantes de computadoras tenían dos lineas de
productos diferentes e incompatibles por completo. Por un lado
estaban las computadoras científicas a gran escala como la 7094,
orientadas a palabras, que se orientaba a cálculos numéricos en
ciencia e ingeniería. Por otro lado estaban las computadoras
comerciales como la 1401, orientadas a caracteres, que los bancos y
las compañías de seguros utilizaban en forma amplia para ordenar e
imprimir cintas.
El desarrollo y mantenimiento de dos
lineas de productos totalmente distintas representaba costos muy
altos. Además muchos clientes necesitaban al principio una maquina
pequeña, pero mas adelante, al crecer, querian una de mayor tamaño
que ejecutara todos sus antiguos programas, pero en menor tiempo.
IBM intento resolver ambos problemas de
un solo golpe, introduciendo el Sistema/360. Este era una serie de
maquinas de software compatible que iba desde el tamaño de la 1401,
hasta otras mucho mas potentes que la 7094. Las máquinas solo
diferían en el costo y desempeño. Puesto que todas las máquinas
tenían la misma arquitectura y conjunto de instrucciones, los
programas escritos para una máquina podían ejecutarse en todas las
demás, al menos en teoría.
Además la 360 se diseño para que
pudiera manejar cómputos tanto científicos como comerciales. Así,
una sola familia de máquinas podía satisfacer las necesidades de
todos los clientes. En años posteriores, IBM produjo, sucesoras
compatibles con la 360, empleando tecnologías mas modernas.
La 360 fue la primer computadora
importante que utilizo circuitos integrados (a pequeña escala), por
lo que ofrecía una notable ventaja en precio respecto a las máquinas
de segunda generación, que se construían con transistores
individuales. Su éxito fue inmediato y los principales fabricantes
de computadoras adoptaron la idea de una sola linea de computadoras
compatibles. Los descendientes de estas máquinas se siguen usando en
centros de computo en algunos lugares al día de hoy, para
administrar bases de datos enormes o como servidores de sitios web
que deben procesar miles de solicitudes por segundo.
La mayor ventaja de la idea de “una
familia” era al mismo tiempo su punto mas débil. La intención era
que todo el software, incluido el sistema operativo OS/360, tenia que
funcionar en todos los modelos. Tenia que hacerlo en todos los
modelos, incluido los pequeños y los grandes utilizados para hacer
cálculos meteorológicos y otros cálculos pesados. Debía ser
buenos para sistemas con pocos periféricos, en entornos comerciales
y científicos.
Era imposible que IBM, u otro
fabricante escribiera software capaz de satisfacer todos esos
requisitos opuestos. El resultado fue un sistema operativo enorme y
extremadamente complejo. Cosiste en miles de lineas en lenguaje
ensamblador escritas por miles de programadores, y contenía miles y
miles de errores, por lo que se requería un flujo continuo de
versiones en un intento por corregirlos.
Cada versión nueva corregía
algunos errores, pero introducía unos nuevos por lo que se penso que
el número de errores se mantuvo con el tiempo.
A pesar de lo enorme de su tamaño y
sus problemas, el OS/360 y los sistemas operativos producidos por
otros fabricantes en realidad satisficieron de manera razonable la
mayoría de sus clientes. Además popularizo técnicas que no se
utilizaban en los sistemas operativos de segunda generación siento,
tal vez la mas importante la de multiprogramación.
Una solución que se hallo fue dividir
la memoria en varias partes, con un trabajo distinto en cada
partición. Mientras que un trabajo estaba esperando a que terminara
la E/S, otro podía utilizar la CPU. Si era posible tener varios
trabajos al mismo tiempo en la memoria principal, la CPU podía
mantenerse ocupada casi el 100% del tiempo. Tener varios trabajos en
la memoria principal sin ocasionar problemas, requiere hardware
especial que proteja cada trabajo de espionaje y acciones hostiles de
otros.
Otra característica de los sistemas
operativos de tercera generación era que podían leer trabajos de
tarjetas y grabarlos en el disco tan pronto como se llevaban al
cuarto de computadoras. Así, cada vez que se terminaba un trabajo
podía cargarse otro desde el disco y ponerlo en la partición recién
desocupada.
A esta técnica se le llama spooling y también se
utilizaba para la salida.
El deseo de obtener una respuesta mas
rápida preparo el camino para los sistemas de tiempo compartido, una
variante de la multiprogramación en la que cada usuario tiene una
terminal en linea. En estos sistemas si 20 usuarios están trabajando
y 17 de ellos están pensando o haciendo algo diferente a estar
ocupando la máquina, la CPU puede asignarse por turnos a los tres
trabajos que desean ser atendidos.
El primer sistema de tiempo compartido
serio, CTSS se desarrollo en el MIT en una 7094 con modificadores
especiales; sin embargo el tiempo compartido no se popularizo si no
hasta que se generalizo el software de protección necesario durante
la tercera generación.
Tiempo después, los fabricantes mas
representativos de computadoras decidieron emprender el desarrollo de
un servicio de computadora; una máquina que atendiera a miles de
usuarios. A este sistema lo llamaron MULTICS y con el imaginaron una
máquina enorme que podria dar potencia de computadora a todos los
habitantes del área de Boston.
Al final MULTICS no tuvo el éxito
comercial que se espero tuvo gran influencia en los sistemas
subsecuentes. Uno de los científicos de computación de los
laboratorios BELL que trabajó en el proyecto MULTICS escribió una
versión austera de MULTICS para un solo usuario; esta labor dio pie
mas adelante para el desarrollo de UNIX , que se popularizo en el
mundo académico, en las dependencias gubernamentales y muchas
compañías.
Este al no ser de código abierto
pronto su desarrollo se torno al caos ya que varias organizaciones
iniciaron su propia versión o clon de este sistema para poder
utilizarlo. Principalmente surgieron dos versiones SystemV de AT&T,
y BSD de la Universidad de California Berkeley. El IEEE creo entonces
un estándar para UNIX llamado POSIX, reconocido por la mayoría de
las versiones actuales.
En 1987 surge MINIX una alternativa
compacta a UNIX creado con fines educativos. El desea de contar con
una versión de producción libre (no meramente educativa) de MINIX,
Linus Trolvads escribió LINUX (LINUX Is Not UNIX) escrito en base a
MINIX y que incluso reconocía varios de sus recursos como el sistema
de archivos.
Cuarta generación
Con el desarrollo de los circuitos
integrados a gran escala que contienen miles de transistores en cada
centímetro cuadrado de silicio, surgió la era de la computadora
personal. Este adelanto logró hacer que cada persona fuese capaz de
tener su propia computadora.
En 10974 cuando intel presento si 8080,
la primer CPU de ocho bits de propósito general, quería un sistema
operativo para ese procesador. Primero se escribió los controladores
para el disco flexible de ocho pulgadas y lo conectaron al 8080 con
lo que nace la primer PC con disco. Después se escribió el primer
sistema basado en disco llamado CP/M.
A principio de la década de 1980 IBM
se puso en contacto con Bill Gates para usar bajo licencia su
interprete de BASIC y se le consulto si sabia de algún sistema
operativo. Gates los dirigío a ponerse en contacto con Digital
Research dueños de CP/M pero estos se reusaron reunir con IBM, por
lo que este regresa con Bill Gates para preguntarle si podia
ofrecerles un sistema operativo.
Gates se percato que un fabricante
local de computadora tenia un sistema aceptable llamado DOS (Disk
Operating System) y lo compro; se dice que por 50,000 USD; contrata a
uno de los desarrolladores de DOS para hacer mejorías que requería
IBM para ofrecer paquetes DOS/BASIC. A esto lo rebautiza como MS-DOS
(Microsoft Disk Operating System) y Bill Gates con su naciente
empresa ofrece el sistema a los grandes fabricantes para ser incluido
en su hardware. Contrario a la estrategia de Digital Research quien
pensaba distribuirlo con los usuario finales uno por uno.
La primera versión de MS-DOS era mas
bien primitiva, las posteriores consiguieron hacer funciones
avanzadas, muchas de ellas tomadas de UNIX.
En estos momento los sistemas
operativos interactuaban con el usuario mediante linea de comandos
pero esto cambio gracias a investigaciones hechas en la década de
1970 cuando se desarrollo la GUI o interfaz gráfica de usuario.
Provista de ventanas, iconos y ratón. Estas interfaces fueron
adoptadas por Xerox. En algún momento Steve Jobs; fundador de Aple
Computer, visito las instalaciones de Xerox y observo el GUI que de
inmediato adopto para su computador LISA, pero que por el costo al
mercado tan alto fue un fracaso. El mismo GUI fue instalado en un
Aple Macintosh que era varias veces mas económica que la LISA y que
gracias a ser tan intuitiva pronto gano gran popularidad.
Microsoft avanzo en el desarrollo de su
MS-DOS mediante Windows, el cual corría encima de MS-DOS por lo que
era mas un Shell que un sistema completo. Entre 1985 a 1995 Windows
no fue mas que un entorno gráfico hasta que salio Windows 95 que
solo ejecutaba a MS-DOS para arrancar y ehjecutar programas viejos.
Windows 98 fue una versión modificada del 95 y que aún contenía
mucho código ensamblador de Intel 16bits.
Posterior a Windows 98, viene Windows
NT, que después fue rebautizado como Windows 2000 pero que no pudo
eliminar por completo a MS-DOS, y no funciono como se esperaba.
Después sale Windows ME, Antecesor de Windows XP. Este último mucho
mas popular y con mayor permanencia en el mercado de 2001 a 2011. En
2007 Microsoft lanza Windows Vista, y en 2009 Windows 7.
Otro contendiente principal es UNIX que
domino en las otras computadoras que no utilizan Intel, asi como en
las estaciones de trabajo, en especial las que utilizan chips de alto
desempeño (RISC). Estas tienen, en general, la potencia de computo
de una micro computadora, aunque se dediquen a un solo usuario, por
lo que es lógico que estén equipadas con un sistema operativo para
micro computadoras.
Un interesante desarrollo que comenzó
a llevarse a cabo a mediados de la década de 1980 ha sido el
crecimiento de las redes de computadoras con sistemas operativos en
red y sistemas operativos distribuidos. En un sistema operativo en
red, los usuarios están consientes de máquinas remotas y pueden
conectarse con ellas para copiar archivos. Cada máquina ejecuta su
propio sistema local y tiene su propio usuario.
Por el contrario un sistema distribuido
es aquel que aparece como un sistema tradicional de un solo
procesador, aunque este compuesto por varios. En este los usuarios no
deben ser cocientes del lugar donde se ejecute su programa o del
lugar donde se encuentran sus archivos, esto es manejado de forma
automática por el sistema operativo.
Unix es un sistema operativo portable
multitarea y multiusuario desarrollado a principios de 1969 por un
grupo de empleados de BELL LABORATORYS de AT&T.Este sistema nació después de que su creador Ken Thompson programo un juego llamado
Space travel, pero noto que correrlo en una computadora de General
Electric resulto ser demasiado costoso (79 USD por partida) por lo
que reescribió el juego en lenguaje ensamblador para una DEC PDP 7.
Este hecho junto con su experiencia en MULTICS lo animo a escribir
UNIX.
No es hasta 1970 que se tiene la primer
referencia oficial de UNIX como sistema operativo cuando consiguen
implementar la herramienta de procesamiento de texto e integrarlo a
una máquina PDP 11-20. En 1970 se reescribe UNIX pero esta vez en
lenguaje C por lo que pudo ser fácilmente modificado para
implementarse en otras máquinas y así se volvió portable.
Hacia 1991, un estudiante de ciencias
de la computación de la Universidad de Helsinki, llamado Linus
Torvalds desarrolló un núcleo para computadoras con arquitectura
x86 de Intel que emulaba muchas de las funcionalidades de UNIX y lo
lanzó en forma de código abierto en 1991, bajo el nombre de Linux.
En 1992, el Proyecto GNU comenzó a utilizar el núcleo Linux junto a
sus programas.
De UNIX se desprenden varias familias
de sistemas operativos aparte de la de LINUX, como BSD, AIX, XENIX y
a su ves de estas familas se desprenden otras como en el caso de
LINUX donde podemos encontrar la familia Red Hat, Slackware, DEBIAN
entre otras. Todas con sus distintas distribuciones libres y
comerciales.
El 24 de enero de 1984, Apple Computer
Inc. (ahora Apple Inc.) introdujo la computadora personal Macintosh,
con el modelo Macintosh 128K, el cual incluía el sistema operativo
Mac OS, conocido en esa época como System Software (Software de
sistema).
A la Macintosh a menudo se le atribuye
la popularización de las interfaces gráficas de usuario. El Mac OS
ha sido pre-instalado en casi todos los computadores Macintosh
vendidos. El sistema operativo también se vende en forma separada en
las tiendas de Apple y en línea. El Mac OS original estaba basado
parcialmente en el Lisa OS, previamente comercializado por Apple para
la computadora Lisa en 1983 y, como parte de un acuerdo que permitía
a Xerox comprar acciones de Apple a un precio favorable, también
usaba conceptos del Xerox PARC Xerox Alto, el cual Steve Jobs y otros
miembros del equipo Macintosh habían visto.
En un principio Mac OX fue escrito y
llamado como Mac Os Clasic de código propio de Aple Computer, pero
es en la versión Mac Os X que se decidió en desarrollar basados
basándose en Mac Os Clasic, NextSTEP y UNIX
Varios fabricantes de computadores a
través de los años han hecho clones de Macintosh capaces de
ejecutar Mac OS, en particular Power Computing, UMAX y Motorola.
Estas máquinas ejecutaron varias versiones del sistema operativo
clásico de Mac. En 1997 Steve Jobs cerró el programa de licencia
clon al regresar a Apple.
En 2008 el fabricante estadounidense
Psystar Corporation anunció un ordenador de bajo coste (499 USD) que
ejecutaba Mac OS X 10.5 Leopard. Amenazados por las batallas legales,
Psystar denominó a su sistema OpenMac y posteriormente Open
Computer. Actualmente Apple sigue en litigio con esta compañía a la
que pretende hacer pagar por daños y perjuicios, por cada clon
vendido y por los costes de la batalla legal.
En 2009 el fabricante HyperMegaNet UG
lanzó un ordenador "Macintosh Compatible" bajo la marca
comercial PearC basándose en el hecho de que la Licencia de software
no puede aceptarse al no poder ser leída antes de adquirir el
producto puesto que se encuentra dentro de la caja en la que viene el
ordenador por lo que la parte que apela a la no instalación de OS X
en hardware que no sea Apple es nula a todos los efectos, al menos en
Alemania.
Clasificación de los sistemas
operativos
Según administración de tareas
- Monotarea: Solamente permite ejecutar
un proceso (aparte de los procesos del propio SO) en un momento dado.
Una vez que empieza a ejecutar un proceso, continuará haciéndolo
hasta su finalización y/o interrupción.
- Multitarea: Es capaz de ejecutar varios
procesos al mismo tiempo. Este tipo de SO. 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.
Según su administración de usuarios
- Monousuario: Si sólo permite ejecutar
los programas de un usuario al mismo tiempo.
- 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.
Según el manejo de recursos
- Centralizado: Si permite usar los
recursos de una sola computadora.
- Distribuido: Si permite utilizar los
recursos (memoria, CPU, disco, periféricos...) de más de una
computadora al mismo tiempo.
Según el tipo de su núcleo
- Los núcleos monolíticos facilitan
abstracciones del hardware subyacente realmente potentes y variadas.
- Los micronúcleos (en inglés
microkernel) proporcionan un pequeño conjunto de abstracciones
simples del hardware, y usan las aplicaciones llamadas servidores
para ofrecer mayor funcionalidad.4
- Los núcleos híbridos (micronúcleos
modificados) son muy parecidos a los micronúcleos puros, excepto
porque incluyen código adicional en el espacio de núcleo para que
se ejecute más rápidamente.
- Los exonúcleos no facilitan ninguna
abstracción, pero permiten el uso de bibliotecas que proporcionan
mayor funcionalidad gracias al acceso directo o casi directo al
hardware.
Referencias
- Mchoes,F.(2001).Sistemas operativos
(Tercera edición) México. Thomson
- Tanembaun A.(2003). Sistemas operativos
modernos. México. Pearson Educación.
- Sistema operativo. (2012, 15 de mayo).
Wikipedia, La enciclopedia libre. Fecha de consulta: 00:32, mayo 18,
2012 desde
http://es.wikipedia.org/w/index.php?title=Sistema_operativo&oldid=56185783.
- Núcleo (informática). (2012, 11 de
abril). Wikipedia, La enciclopedia libre. Fecha de consulta: 00:35,
mayo 18, 2012 desde
http://es.wikipedia.org/w/index.php?title=N%C3%BAcleo_(inform%C3%A1tica)&oldid=55299756.
- Mac OS. (2012, 10 de mayo). Wikipedia,
La enciclopedia libre. Fecha de consulta: 00:40, mayo 18, 2012 desde
http://es.wikipedia.org/w/index.php?title=Mac_OS&oldid=56063564.