miércoles, 4 de junio de 2008

EL DESPLIEGUE DE LOS SISTEMAS OPERATIVOS



Históricamente los sistemas operativos han estado íntimamente ligados con la arquitectura de los ordenadores en los que se han ejecutado. La evolución de los sistemas operativos va de la mano con las generaciones de las computadoras. Al hablar de la máquina analítica diseñada por el matemático inglés Charles Babbage (1792-1871) no referimos a una máquina carente por completo de sistema operativo por lo que fue necesario implementarla con un software, lo cual se logró con la ayuda de una joven mujer llamada Ada Lovelace y considerada como la primera programadora de la historia. El lenguaje de programación Ada® se llama así en su honor.

A mediados de la década de 1940, durante la segunda guerra mundial, varios investigadores de distintas instituciones se preocuparon por construir máquinas de calcular, utilizando al comienzo relés mecánicas y después tubos de vacío. Se desconocían los lenguajes de programación (incluso se desconocía el lenguaje ensamblador) así como los sistemas operativos, por lo que el proceso de programar resultaba ser algo sumamente tedioso.

A principios de los años 50, se introdujeron las tarjetas perforadas, facilitando un poco la escritura de programas, aunque el procedimiento de operación era el mismo. La introducción del transistor en la segunda generación de computadoras (a mediados de la misma década), hizo que los ordenadores se volvieron más eficientes y empezó la comercialización a las grandes corporaciones capaces de pagar su alto costo. Ahora el programador utilizaba el lenguaje FORTRAN primero escrito en papel que luego grababa en tarjetas utilizando una perforadora, el tiempo de ejecución era demasiado, para reducirlo se adoptó el sistema de procesamiento por lotes (batch systems). La idea era la de llenar completamente una bandeja de trabajos para luego pasarlos a una cinta magnética, rebobinarla y montarla en una unidad de cinta. Después se cargaba un programa especial (el antecesor del sistema operativo actual), que leía y ejecutaba el primer trabajo de la cinta. Las salidas se grababan en una segunda cinta, en vez de imprimirse directamente, al final, una vez terminado el trabajo se llevaba la cinta de salida a una IBM 1401 para imprimir off line (sin estar conectada la impresora al ordenador principal).

Para ese entonces los cálculos científicos y de ingeniería fueron programados principalmente en FORTRAN y en lenguaje ensamblador. Entre los sistemas operativos destacan el FMS (Fortran Monitor System) e IBSYS, el sistema operativo de IBM para el 7094.

Posteriormente IBM introduce el System/360. El 360 se diseñó de modo que pudiera realizar computación tanto científica como comercial. Así una única familia de máquinas podía satisfacer las necesidades de todos los clientes. En los años siguientes, IBM sacó al mercado sucesores compatibles con la línea 360, fabricados con tecnología más moderna: las series 370, 4300, 3080 y 3090. La mayor fortaleza de la idea de “una familia” es al mismo tiempo su punto más débil. La intención era que todo el software, incluido el sistema operativo OS/360, funcionara no solo en todos los modelos, sistemas pequeños y grandes, operar en entornos comerciales y científicos. Y sobre todo, tenía que ser eficiente para todos esos usos tan diferentes.

Entonces IBM crea un sistema operativo enorme y extraordinariamente complejo, quizá de dos a tres órdenes de magnitud más grande que el FMS. La idea consistía en tener varios programas simultáneamente en memoria, si bien, como el ordenador es único, solo uno estaría activo en cada momento. Cuando dicho programa hace una operación de Entrada/Salida en la que se pierde tiempo de CPU (como leer una tarjeta, por ejemplo), mientras la mecánica realiza la operación de búsqueda y lectura, el ordenador cambia al siguiente programa que tiene en memoria, el cual continuará ejecutándose hasta que haga una operación de Entrada/Salida. Cuando se llega al último, se vuelve a empezar. Para ese momento, la operación de Entrada/Salida pedida por el primer programa ya estará lista, con lo que podrá seguir su ejecución, esta técnica se llama spooling (de Simultaneous Peripheral Operation On Line) y se utilizaba también para la salida de los programas. Con el spooling, dejaron de ser necesarios los 1401, y desapareció por completo el acarreo de cintas.

La aparición del primer sistema de tiempo compartido serio, CTSS (Compatible Time Sharing System), se desarrolló en el MIT en un 7094 con modificaciones especiales. Consistía en la ejecución simultánea de varios programas. Después del éxito del sistema CTSS, el MIT, los Laboratorios Bell y General Electric desarrollaron un “servicio de ordenador”, una máquina que debía dar servicio simultáneamente a cientos de usuarios de tiempo compartido, este sistema fue llamado MULTICS y se le diseñó para dar soporte a cientos de usuarios con una máquina apenas más potente que un PC basado en un 386 de Intel, aunque con mucha mayor capacidad de E/S. A pesar de su falta de éxito comercial, MULTICS tuvo una enorme influencia en los sistemas operativos subsiguientes.

Hasta entonces el fenomenal crecimiento de los miniordenadores, comenzando con el DEC PDP-1 en 1961 que sólo tenía 4K palabras de 18 bits, pero su precio de 120.000 dólares por máquina tuvo gran acogida en el mercado ara ciertos tipos de trabajo no numérico, era casi tan rápido como el 7094, y dio origen a una industria totalmente nueva. Pronto le siguieron una serie de otros PDPs que culminaron en el PDP-11. Uno de los científicos de los Laboratorios Bell que había trabajado en el proyecto MULTICS, Ken Thompson, encontró tiempo más tarde un pequeño miniordenador, un PDP-7, que nadie estaba usando y se puso a escribir una versión de MULTICS para un solo usuario recortando partes del sistema original. Esa labor dio origen al sistema operativo UNIX®. Vale la pena mencionar que en 1987, el autor publicó un clon pequeño de UNIX, llamado MINIX, con fines educativos. Desde el punto de vista funcional, MINIX es muy similar a UNIX y el deseo de contar con una versión de producción libre de MINIX llevó a un estudiante finlandés, Linus Torvalds, a escribir Linux. Este sistema se desarrolló bajo MINIX y originalmente soportaba varios elementos característicos de MINIX. Desde entonces Linux ha sido extendido en muchas direcciones pero sigue conservando una buena parte de la estructura de MINIX y UNIX (en el que se basó el primero).

Con la aparición de los Ordenadores Personales por el desarrollo de los circuitos integrados a gran escala (LSI; Large Scale Integration), se hizo posible que cualquier persona pudiera tener su propio computador. En 1974, cuando Intel presentó el 8080, la primera CPU de ocho bits de propósito general, buscó un sistema operativo para ese procesador, Kildall escribió un sistema operativo basado en disco llamado CP/M (Control Program for Microcomputers). Después Kildall seguiría desarrollando su sistema operativo CP/M formando su propia empresa: Digital Research, ahora el sistema operativo CP/M podía ejecutarse en los numerosos microordenadores que utilizaban el 8080, el Zilog Z80 u otros microprocesadores.

A principios de la década de 1980, IBM diseñó el PC y buscó software que se ejecutara en él. Se contactó con Bill Gates para utilizar bajo licencia su intérprete de BASIC. Posteriormente Gates sugirió un sistema operativo para el PC, el ya conocido CP/M de la empresa Digital Research (que entonces era la compañía de sistemas operativos dominante). Pero la petición fue rechazada, Kildall se negó a unirse con IBM. Pero Gates fue de todas maneras a preguntar si podría ofrecerle un sistema operativo. Cuando IBM vino a verle, Gates se percató de que un fabricante de ordenadores local, Seattle Computer Products, tenía un sistema operativo apropiado, DOS (Disk Operating System). Gates compró el sistema y luego lo ofreció a IBM un paquete DOS/BASIC, que IBM aceptó. IBM pidió que se hicieran ciertas modificaciones en el sistema, por lo que Gates contrató a la persona que había escrito DOS, Tim Paterson, como empleado de su naciente compañía, Microsoft, para que las llevara a cabo.

El sistema revisado se rebautizó con el nombre de MS-DOS (Microsoft Disk Operating System) y pronto dominó el mercado del IBM PC y para cuando el PC/AT de salió a la venta el 1983 con la CPU 80286 de Intel, MSDOS estaba firmemente afianzado mientras que CP/M agonizaba. Más tarde se utilizó ampliamente MS-DOS en el 80386 y el 80486 con funciones más avanzada.

La invención del ordenador Lisa por parte de Steve Jobs, resultó demasiado caro y fracasó comercialmente. Después Jobs crea el Apple Macintosh, más económico que Lisa, y más simple. Cuando Microsoft decidió desarrollar un sucesor para MS-DOS, estuvo fuertemente influenciado por el éxito del Macintosh. La compañía produjo un sistema basado en una GUI al que llamó Windows, y que originalmente se ejecutaba por encima de MS-DOS. Durante cerca de 10 años, de 1985 a 1995, Windows no fue más que un entorno gráfico por encima de MS-DOS.

En 1995 salió a la circulación una versión autónoma de Windows, Windows 95, que incluía muchas funciones del sistema operativo y sólo utilizaba el sistema MS-DOS subyacente para arrancar y ejecutar programas antiguos de MS-DOS. En 1998 salió una versión poco modificada de este sistema, llamada Windows 98. Tanto Windows 95 como Windows 98 contienen todavía una buena cantidad de lenguaje ensamblador Intel de 16 bits.

Otro sistema operativo de Microsoft es Windows NT (NT significa Nueva Tecnología), que es compatible hasta cierto punto con Windows 95, pero que intrínsecamente está reescrito desde cero. Consiste en un sistema completamente de 32 bits. Microsoft creía que la primera versión de NT eliminaría a MS-DOS y todas las demás versiones anteriores de Windows porque supuestamente se trataba de un sistema muy superior, pero eso no se logró ni con la aparición del Windows NT 4.0, esta última se hizo común en redes corporativas. La versión 5 de Windows NT se rebautizó como Windows 2000 (principios de 1999), y tampoco fue sucesora de ninguna versión anterior. Microsoft sacó una versión más de Windows 98 llamada Windows Me (Millennium edition). Actualmente existe el Windows Vista.

UNIX no se quedó atrás y aún sigue predominando en estaciones de trabajo y otros ordenadores potentes, como los servidores de red. Es especialmente popular en máquinas basadas en chips RISC de alto rendimiento. Linux se está convirtiendo en una alternativa popular a Windows, para estudiantes y cada vez más para usuarios corporativos. Aunque muchos usuarios de UNIX, sobre todo programadores experimentados, prefieren un interfaz basado en comandos en vez de una GUI, casi todos los sistemas UNIX reconocen un sistema de ventanas llamado X Windows producido en el MIT. Este sistema se encarga de la gestión básica de las ventanas y permite a los usuarios crear, borrar, trasladar y redimensionar ventanas con un ratón.

Para mediados de los años ochenta, comienza el auge de las redes de computadoras y la necesidad de sistemas operativos en red y sistemas operativos distribuidos. La red mundial Internet cada vez más accesible a toda clase de instituciones, empieza a dar múltiples soluciones al querer hacer convivir recursos residentes en computadoras con sistemas operativos diferentes. Para los 90's el paradigma de la programación orientada a objetos cobra auge, así como el manejo de objetos desde los sistemas operativos. Las aplicaciones intentan crearse para ser ejecutadas en una plataforma específica y poder observar sus resultados en la pantalla o monitor de otra diferente como por ejemplo, ejecutar una simulación en una máquina con UNIX y ver los resultados en otra con DOS. Los niveles de interacción han ido haciéndose cada vez más profundos.

En conclusión, la evolución de los sistemas operativos ha ido de la mano con la tecnología. La creación de nuevos lenguajes de alto nivel y la multiprogramación contribuyeron a la creación de sistemas cada vez más potentes. La evolución de los microordenadores para convertirse en los ordenadores personales modernos, adquirieron el hardware y luego el software necesarios para manejar funciones más avanzadas. Podemos concluir que los sistemas operativos son fundamentales en cualquier ordenador, y su origen se remonta a la primera generación de las computadoras, por la necesidad de facilitar la interacción entre persona y computador.

No hay comentarios: