El Sistema Operativo del Atari ST ( TOS, GEM & otros...): Revisión

TOS y el GEM ( Sistema Operativo de fábrica en ROM de los Atari ST ) he decidido juntar todo en un único post, intentando mantener la línea histórica y con algunas pinceladas de lo acontecido, que os permitirán tener una visión con más amplitud de lo que este micro lleva en sus entrañas.

ATARIST.GIF


A diferencia del Commodore Amiga, el Atari ST carece de coprocesadores y su arquitectura es muy sencilla, va a ser muy sencillo de comprender por quienes conocen el Sistema Operativo CP/M, ya que está totalmente basado en el, de hecho se trata de una versión de CP/M68K que fue modificada para este fin.

Posiblemente con el TOS/GEM, tanto Tramiel como Kildall le devolvieron la jugada a Micro$oft y muy posiblemente se resarcieron, aunque consiguieron cabrear mucho a los de Apple y a BillyPuertas lo llegaron a poner contra las cuerdas. Pero para ello hay que situar a todos en el momento histórico y esto es lo que os he venido hoy a contar.

... Jack, Jack, Jack





Cuando Jack Tramiel vendió sus acciones de Commodore para comprar Atari y levantar la compañía, necesitaba un ordenador rápido y necesitaba que fuera barato. Quería llevar a la realidad aquel dicho de bueno, bonito y barato. Pero debido a la forma en la que Tramiel enfocaba las cosas, necesitaba encontrar estas mismas diferentes.

Al abandonar Commodore, Jack dejó muy claro que no iba a clonar el IBM PC, que eso ya lo intentarían  otros y con el rabillo del ojo seguía muy de cerca los movimientos de los japoneses. A sabiendas de la cantidad de fans y seguidores que ya tenía del Vic20, del C64 y su hermano mayor el C128 mantuvo las diferencias respecto al PC en una linea que podemos a día de hoy calificarla como "dura". Sus clientes fueron siempre absolutos fanáticos y además en todo el mundo, casi nada. Lo tenía todo a su favor, salvo haber perdido la ocasión del Amiga y la pugna por los mercados iba en serio. Atrás iba a quedar la tecnología de los 8 bit para adentrarse en de lleno en la informática moderna.

A Jack Tramiel el IBM PC no le importaba nada y le dio igual y no lo vio como un competidor, aunque no sucedía lo mismo respecto al Macintosh de Apple. Necesitaba un equipo para competir directamente y para el los negocios eran la guerra.

EL Macintosh era "casi" un perfecto ordenador doméstico. Era tan sencillo de usar que no era necesario ni leerse el manual de instrucciones. Solo tienes que encenderlo y divertirte. Pero fue el "casi" la parte que más molestó a los críticos. Decían que el Macintosh tenía un teclado "horrible", según sus criticas era de juguete y sobre todo caro, muy caro. En el interior del Mac, su corazón, el Motorola 68000 es un micro con unas características que lo definían como muy eficiente. Por el contrario en aquella época se siguieron haciendo más diseños sobre micros de 8 bit.

Tramiel quería a toda costa una versión del mismo chip para su nuevo equipo y Motorola se complació en comprometerse a fabricar los 68K para Atari. Es más, el compromiso incluía una fecha para poder adelantarse a su competidor más directo, Intel, fabricante de los micros que llevaban los PC.

Tramiel montó su propio equipo de ingenieros y se pusieron a trabajar. Al cabo de unos meses ya tenían su nuevo modelo . Era el Sixteen ThirtyTwo ( dieciséis treinta y dos) , el ST.





EL video del ST no se limita al simple bit de profundidad como el Macintosh o al simple blanco y negro y tampoco era necesario tener tan poca resolución o espacio de pantalla, podía ser mucho mejor y más grande y rápido. El teclado incluía todas las teclas que Apple se había dejado fuera de su " teclado de juguete" y a diferencia de la extraña e incompatible unidad de disco que se incorporó al Macintosh el nuevo Atari ST incorporaba una unidad estándar de 3 1/2" con las especificaciones que tenían las de IBM y que la gran mayoría de portátiles de PC estaban empezando a adoptar.

¿ Qué pasa con el Sistema Operativo del ATARI ST ?

El Atari ST tiene un sistema operativo extremadamente complejo que consta de varios grupos de rutinas que comprenden varios niveles diferentes de interacción con la máquina, lo cual significa que hay una gran cantidad de llamadas, y que pueden ser divididas en grupos, y estos grupos se relacionan entre sí de una manera parecida a un árbol. Las principales bibliotecas son BIOS, el XBIOS, el GEMDOS, las rutinas de la línea A, el AES, y la VDI. Estos grupos pueden a su vez ser puestos en condiciones de servicio y el GEM

¿ Cómo se relacionan las rutinas del Sistema Operativo del Atari ST ?

Bueno, si lo deseas leer te invito a que continúes leyendo. En las siguientes secciones voy a echar un vistazo abajo hacia arriba en las bibliotecas individuales, la forma en que se relacionan entre sí y lo que hacen. La primera sección comenta sobre la organización general del ( sistema operativo ) OS.

Un amplio ángulo de visión ofrecido por Digital Research

EL OS del ST se puede dividir en dos grandes grupos de rutinas, TOS ( The Operating System ), y el GEM ( Graphics Environment Manager ). La/El TOS tiene las rutinas subyacentes que hacen que la máquina funcione, y GEM tiene las rutinas que hacen posible comunicarse amablemente con el usuario. Esto significa que no hay consola, que no hay comandos y que intuitivamente el usuario puede manejar su sistema de ficheros y en general el uso de la máquina.

TOS puede dividirse a su vez en el BIOS, XBIOS, GEMDOS y bibliotecas Línea A. Estas bibliotecas controlan funciones de la máquina dependientes ( como el control de los periféricos ) y Entrada/Salida ( I /O ) básica. Las rutinas de la Línea A son rutinas básicas gráficas que son utilizados por GEM para crear el entorno de ventanas que el usuario ve.

GEM contiene dos bibliotecas, las rutinas AES y VDI. GEM es responsable de la entorno de ventanas y el escritorio que hacen uso del ST más intuitivo. La AES está ocupada sobre todo con las ventanas y cuadros de diálogo, las cosas con las que el usuario interactúa. Las rutinas de VDI manejan pantalla de texto complejo y niveles altos en manipulaciones gráficas.

En las siguientes secciones Voy a entrar en los dos grupos de bibliotecas, TOS y GEM, y sus respectivas bibliotecas con más detalle. Voy a empezar con TOS.

El TOS y un poco de historia

TOS es el corazón del ST. Todo lo que haces, ejecutas o escribes en tu ST utiliza TOS. Cuando lanzas un programa .TOS se está invocando que sea este mismo el que ejecute ese programa. Descartando la parte gráfica GEM y multitarea mientras este continúe en ejecución y siendo la consola o lo que lance esta lo que el usuario podrá ver. Hay programas que activan gráficos y música desde TOS sin necesidad de la capa de GEM.

Estas son las rutinas que hacen todas las tareas de nivel inferior de los programas en ejecución. TOS está presente y activo en el ST en todo momento. Un poco de información acerca de los antecedentes y el diseño de TOS pueden ayudar a clarificarlo.

Herencia de CP/M

En el principio los ordenadores 8080 y Z80 usaban el Sistema Operativo CP/M, que fue diseñado para ejecutarse en un gran número de equipos, manteniendo una interfaz estándar para que los usuarios y los programas puedan migrar de una máquina a otra sin demasiado sacrificio. Una buena idea, que era muy popular.

El CP/M logra su portabilidad al escindirse en dos secciones distintas, las rutinas dependientes de máquina y las independientes de la máquina. El código para las rutinas independientes de máquina es el mismo entre todos los ordenadores y cada vez que se necesita invocar una rutina dependiente de la máquina se utilizan nombres estándar. Esto funciona bien y los programas se pueden mover muy fácilmente de una máquina a otra, haciendo que la comunidad de CP/M prosperara desde el principio.

Cuando IBM cayó en la trampa de Micro$oft , el MS-DOS mantenía la mayor parte de los conceptos de CP/M. Al cabo de un tiempo vino DRI. Diseñaron un conjunto independiente de rutinas máquina llamadas GEMDOS que se basan en CP/M y en la novedad de los directorios de MS-DOS. Es GEMDOS que conforma la parte independiente del hardware de TOS. Las rutinas de manipulación de archivos y manejo de tareas de TOS están en GEMDOS. Para llenar TOS, Atari añadió las rutinas dependientes de la máquina en el BIOS y XBIOS. Por último, para hacer la programación de gráficos más fácil, Atari terminó por añadir las rutinas Línea A.

Así TOS se compone de las rutinas de nivel "superior" GEMDOS , el BIOS dependiente de la máquina y rutinas XBIOS, y las rutinas gráficas Línea A. En los próximos apartados describiré brevemente cada una de las bibliotecas.



El GEMDOS

El GEMDOS, como se ha señalado antes, son las rutinas independientes de máquina para el manejo de archivos y tareas ( programas ) y hacer "alto" nivel de E/S. Tienen cierta semejanza a las rutinas de MS-DOS. Estas rutinas hacen que sea fácil de manipular archivos mediante fopen, fread y fseek. El control de la ejecución de los programas se gestiona mediante rutinas como pexec y pterm.
La facilidad con la que se realizan las operarciones de E/S es mediante cconin y cconout. Estas rutinas permiten al programador realizar la mayor parte de lo que le gustaría hacer en operaciones de E/S con muy poquito esfuerzo.

El GEMDOS se ejecuta a más alto nivel de TOS. Está construido sobre las rutinas en el resto de condiciones de servicio, es decir, el BIOS y el XBIOS. Cuando en los próximos apartados se vea BIOS y XBIOS, observaréis que hay solapamiento entre ellos y el GEMDOS. El GEMDOS fue escrito para hacer más fácil el trabajo del programador mediante la incorporación de las rutinas de bajo nivel en las rutinas de nivel superior que son más específicas.



La BIOS

La BIOS está compuesta por la colección de rutinas que utiliza el ST para comunicarse con los muchos dispositivos disponibles. Mediante el uso de rutinas de la BIOS se puede leer y escribir en, y obtener el estatus de, como por ejemplo el puerto serie, el puerto midi, el puerto paralelo, los discos y la pantalla/terminal. Estas rutinas ( como bconin y bconout ) son rutinas generales. Con la misma rutina se puede obtener información de varias fuentes variando los parámetros de llamada. Puedes ver cómo las rutinas específicas de dispositivos en el GEMDOS se pueden construir a partir de las rutinas de la BIOS.



El XBIOS

Estas rutinas son muy similares a la BIOS, pero implican mucho más control sobre los periféricos del ST. En general, leer o escribir con llamadas de la BIOS, se pueden controlar con llamadas al XBIOS. Estas rutinas también permiten controlar el chip de sonido, las unidades de disco, el puerto serie, el ratón, y el puerto midi. GEMDOS también se construye a partir de estas llamadas.


Las rutinas de la Línea A

Estas rutinas son las primitivas gráficas del ST. Permiten crear gráficos complejos con relativamente pocos comandos simples. Con estas rutinas se puede dibujar píxeles, líneas y cuadros, así como sprites de control y el puntero del ratón. Las rutinas de GEM se construyen a partir de estas rutinas ( volveremos a las rutinas de la Línea A más adelante).

Aquí terminan las rutinas que componen TOS. En adelante vamos a explorar un poco en conjunto el GEM.


GEM

Ahora llegamos a la materia compleja. GEM, el Administrador de gráficos para el Entorno ST, es una rutina independiente de máquina ( existe una versión de GEM para PC también ) compuesto por un conjunto de rutinas que permiten al programador utilizar ventanas, cuadros de diálogo, el ratón, botones y controles deslizantes para interactuar con el usuario final. GEM también permite presentar gráficos y dirigir su salida a un número de diferentes dispositivos complejos. Está construido de modo que estas características se pueden definir, acceder, y se utilizan con un número relativamente pequeño de rutinas. También permite la multitarea limitada a través de accesorios de escritorio. Además de todo eso, GEM permite la comunicación y el control entre procesos. ¡ Ya dije que era materia compleja !

GEM se compone de dos bibliotecas de rutinas, el AES (Application Environment Services) y la VDI (Virtual Device Interface). El AES es responsable de elaborar y capturar la entrada de las ventanas y cuadros de diálogo, así como la coordinación de múltiples fuentes de entrada y la interacción entre los programas que se ejecutan al mismo tiempo. Es principalmente de entrada.

La VDI es responsable de la producción compleja. Maneja la salida de texto en modo gráfico, salida de gráficos de alto nivel y la salida a dispositivos distintos de la pantalla.

En las próximos dos sub-secciones describiré las bibliotecas AES y VDI en un poco más de detalle.


AES

La AES, como he mencionado antes, se refiere principalmente a la entrada. Mientras que es responsable de la elaboración de ventanas y cuadros de diálogo, el trabajo más importante es recibir entrada a través de esas ventanas y cuadros de diálogo. Los evnt_button, evnt_timer y llamadas evnt_multi son llamadas de entrada relacionada en AES.

Otra función de la AES es coordinar más de un programa en ejecución. Los Mensajes y la coordinación entre los programas son responsabilidad de AES .

El punto central del AES es la noción de un objeto. Un objeto es ( generalmente ) algo que se elaborará en una ventana ( como una barra de desplazamiento ) o un cuadro de diálogo ( como un botón ). Los objetos también pueden ser texto o cajas. Una colección de objetos se organiza en un árbol, que da información sobre las relaciones entre los objetos. Una vez elaborado, un objeto puede actuar sobre ( lista, seleccion, mover, tamaño, etc. ), y los resultados de estas acciones comprenden la entrada que AES se encarga de la obtener.

El AES intenta proporcionar un interfaz suave y fácil entre el usuario y el programa.


VDI

Las rutinas de VDI se ocupan principalmente de la producción. La VDI ofrece capacidades gráficas complejas utilizando rutinas simples y de fácil manejo. También se ocupa de las fuentes y la salida de texto.

Una de las funciones más importantes es VDI para proporcionar acceso a una variedad de dispositivos de salida. Las rutinas VDI se construyen de manera que el dispositivo de salida en el que están no es específico. Se puede dibujar un círculo en la pantalla o en un plotter con la misma rutina. La parte independiente del dispositivo VDI es el GDOS. Sus rutinas de control de los dispositivos periféricos y permiten la salida de las rutinas de VDI a ellos.

El concepto importante en la biblioteca VDI es la estación de trabajo. Una estación de trabajo es un dispositivo que puede manejar la salida de las rutinas de VDI. Impresoras, plotters y la pantalla son ejemplos de estaciones de trabajo. Cada rutina VDI se entregara a la estación de trabajo que se espera que le de salida.

La VDI proporciona un medio flexible para la presentación de salida compleja para el usuario.

Y superada la parte del TOS /GEM sigamos leyendo que pasaba entre bastidores...

Todo esto eran pequeñeces y simples detalles para Tramiel. Lo que realmente le importaba era que su nuevo equipo funcionase como un Macintosh, pero con la ventaja de ser muchísimo más rápido en todo lo que el Mac hacía. Para ello necesitaba un sistema operativo y una interfaz de usuario y como no, el gran Gary Kildall se encargó del desarrollo completo de todo. Digital Research fué la encargada del diseño. Pronto la interfaz estaba preparada, se llamaba GEM ( Graphical Environment Manager), el cual a simple vista se parecía bastante al Finder del Mac. Su uso basado en iconos, puntero, ventanas arrastrables, dibujos e incluso la forma de arrastrar un icono a la papelera para ser borrado.

La combinación de icono-ratón era casi exactamente la misma que la del Macintosh, incluso cuando se ejecutaban programas. También las herramientas de "lazo", "copy & paste", "selección" y como no un Control Panel o los famosos accesorios de escritorio. Podían ser usados en cualquier instante y con cualquier aplicación se estuviera usando lo que fuera.

system_1.0.gif

El Finder del Macintosh

Apple en esos momentos ante la evidente "imitación según ellos", se les preguntaba sobre lo que pensaban de ello. ¿ Es una imitación ?, y querían saber si se trataba de una adulación o simplemente de un robo. Habéis acertado si concretáis en lo segundo, Apple estaba echando humo de verdad y Jobs echaba fuego por lo ojos. Mientras tanto Billy ( callado como una zorra ) preparaba sus nuevas perrerías.

tosprefs.png

El GEM de Atari ST


Ni corta ni perezosa Apple investigó y decidió ir judicial y directamente a por Digital Research en vez de ir a por Atari. Kildall como máximo representante de Digital Research aclaró y manifestó que cambiaría el GEM. Sin embargo Digital Research hizo los cambios mínimos en el GEM de ATARI porque en ese mismo instante se desarrollaba ya la versión para los compatibles IBM PC, en donde los cambios si iban a ser sustanciales.

Desktop1.gif



Como resultado de todo ello, los Atari ST mantuvieron las facultades y las características de los Macintosh, y la versión GEM de PC vió la luz capado obviamente por todos los lados.


El GEM fué un presagio de controversias. La forma en la que Apple se quejaba sobre la interfaz del ST y no sobre el fabricante del sistema. Desde ese momento hicieron que Apple tratase al ST como algo que para ellos "NI SIQUIERA EXISTÍA". Pocos meses después Tramiel se mostraba orgulloso en prensa y televisión frente a su ST, los usuarios de ordenadores del todo el mundo se empezaban a preguntar si Apple estaba en lo cierto.



Imagen