Actualidad
 El Nuevo Amiga
Anterior
Menú
Logotipo

Autor: Ferrán García

McEwen y Moss hablan del renacimiento del Amiga SDK

Daniel Robbins
President/CEO, Gentoo Technologies
July 2000

El Amiga original fue una importante innovación tecnológica en su tiempo. Ahora, el Amiga ha vuelto. Bill McEwen, presidente de Amiga, Inc., y Fleecy Moss, vice-presidente de Desarrollo, entrevistados por Daniel Robbins, nos dan una idea del nuevo Amiga y explican por qué es una de las plataformas de desarrollo más excitantes disponibles hoy.

El Amiga original no sólo tenía unos gráficos y un sonido increíbles (gracias a sus `custom chips' [N.del T.: "custom chips" se podría traducir como "componentes propios", pero seguiré utilizando la expresión original, ya que creo que es más conocida.] ), sino también un elegante y ligero sistema operativo multitarea. La tecnología independiente del "hardware" [N.del T.: "hardware" se podría traducir como "equipo" o "componentes", pero seguiré utilizando la expresión original, ya que creo que es más conocida.] del nuevo Amiga se parece poco al ordenador original, basado en el `hardware'. De hecho, posiblemente la única conexión entre el Amiga clásico y el nuevo es una determinación común de redefinir la tecnología informática tal y como la conocemos.


Amiga clásico vs. nuevo Amiga
developerWorks: ¿Podría empezar explicando qué era el Amiga clásico? ¿Por qué el nuevo Amiga no tiene un juego de `custom chips'?

Bill McEwen: Claro. El Amiga fue revolucionario y realmente cambió la informática. Recuerda cómo era entonces: teníamos pantallas verdes, `bips' y pitidos. Y de repente tuvimos animaciones y gráficos a todo color. El Amiga creó lo que hoy conocemos como mercado del video-juego.

Fleecy Moss: Básicamente, el Amiga clásico fue creado para resolver cierto conjunto de problemas de aquel tiempo por un grupo de gente que pensó que un ordenador debía ser más de lo que eran el Apple II y el inminente PC. Así que construyeron mucha tecnología porque, en su tiempo, lo necesitaban. Uno de los mayores argumentos que recibimos es que "esto no es una extensión del Amiga porque no estáis utilizando un juego de `custom chips'". Pero, en su momento, el juego de `custom chips' fue una revolución porque todo el mundo estaba haciendo pasar todo por un solo procesador. Una de las cosas que sigo indicando a la gente es que hicieron un `hardware' especializado en su momento porque el `hardware' no existía: ¡no había nada que pudieran utilizar! No podrían haber escrito el AmigaOS sobre un Apple II o un IBM PC; no hubiese hecho lo que se esperaba que hiciese.

Hoy en día tienes nVidia, tienes Matrox, tienes 3dfx... Todas estas compañías están gastando millones de dólares sólo para producir juegos de componentes gráficos. Creo que la cantidad de algunos de los juegos de componentes que Amiga hizo estaba por las decenas de miles, tal vez cien mil. Si miras el GeForce de nVidia, ¡está por encima de los 20 millones! Y hay una compañía entera con un grupo enorme de recursos detrás de él, haciendo únicamente juegos de componentes gráficos. Se estima que el desarrollo del juego de componentes de las Playstation 2 ha costado entre mil y mil quinientos millones de dólares. Incluso Intel hace una cosa, el procesador (y tal vez algunos juegos de componentes), pero han dejado el mercado de los [componentes] gráficos.


dW: ¿Cómo enlaza esto con el Nuevo Amiga?

Moss: El Amiga examinó los problemas de su tiempo y los resolvió. Ahora, en este momento no veo que los gráficos sean un problema, en lo que se refiere al `hardware'; no veo concretamente el sonido como un problema, porque el `hardware' ha alcanzado y, en muchos casos, sobrepasado lo que el Amiga intentaba hacer.

Uno de los grandes problemas al que la gente se enfrenta, y una de las razones de que el Amiga muriese, es que al principio su fuerza se basaba en su juego de componentes, pero al final ha quedado atrapado por ese mismo juego.

McEwen: El Nuevo Amiga corre sobre procesadores x86, así como sobre PowerPC, StrongARM, ARM, MIPS, SH3/4/5 y más. Además de correr sobre el propio `hardware', también corre sobre Linux, Linux incrustado, QNX, OS/9, y muy pronto sobre VxWorks, iTron, EPOC, Palm, Windows 98, Windows CE, Windows NT y Windows 2000. Liberamos al desarrollador de la limitación de estar ligado a un juego de componentes o a una plataforma específicos. Al mismo tiempo, el nuevo Amiga puede sacar partido de las virtudes del entorno en el que está.

Ahora, toma esta tecnología, añade las piezas del AmigaOS y del núcleo multimedia que hizo famoso al Amiga, y el resultado es el nuevo Amiga.


dW: ¿Podría explicar como funciona exactamente la tecnología de Tao Group?

Moss: La mejor manera de explicar la tecnología de Tao Group es explicar de dónde vino. Chris Hinsley (creador de la tecnología) era un programador de juegos. Escribió un juego rompedor, que les encantó; y entonces sus editores dirían: "¿Podrías portarlo al Atari ST o al PC?" Y después de dos o tres veces, empezó a ser molesto, ya que portar es infernalmente aburrido, para ser honesto. Así que se preguntó: "Hey, ¿cómo podría hacer esto más fácilmente?". Inicialmente, él creó su propio lenguaje macro ensamblador que le daba cierto tipo de independencia sobre la plataforma, pero no la suficiente. Y evolucionó hacia este concepto de un procesador virtual, donde no había sólo un lenguaje macro, era el código máquina en sí mismo el que se abstraía. Haciendo esto, liberó al desarrollador de preocupaciones. Esta es la promesa que Java esta intentando cumplir, excepto que Java lo hace a un nivel mucho más alto. No tienes que preocuparte por lo que haya debajo, por el `hardware' o por el `software'. Escribes para lo que tienes, en este caso, un procesador virtual (VP), y, de ahí para abajo, él se encarga de todo. Una de las cosas estupendas de la tecnología de Intent que estamos utilizando es que es muy rápida, carga muy rápidamente y es muy recuperable si se viene abajo.


dW: ¿Cómo es posible que obtengan un rendimiento "muy rápido" de binarios independientes de la plataforma?

Moss: Esa es una cosa que la gente no entiende, y siguen diciendo: "El nuevo Amiga proporciona binarios portable. Los binarios portables son lentos". Ahora, en el pasado han sido lentos porque los binarios portables han sido siempre interpretados. Pero los que ocurre con Intent de Tao es que son traducidos dinámicamente en código máquina nativo propiamente dicho. Sólo tiene que ser traducido de código VP a código máquina una vez. La otra cosa que hace que sea muy, muy rápido es que Intent de Tao, al nivel VP, utiliza una arquitectura basada en objetos que toma métodos, o funciones, y crea pequeños elementos llamados herramientas. Un método equivale a una herramienta. Y si utilizas código VP, cuando llamas a un único método, ese único método se carga, se traduce y se ejecuta. Así que no es como un sistema tradicional como Java, en el que llamas a un método y acarreas con la categoría completa. Así que es realmente muy, muy rápido. Ya conoces la regla del 80/20: llamas a un objeto, y, si estás de suerte, como mucho vas a utilizar un 20% de operaciones en él. No es así con Intent; tú sólo cargas, traduces y ejecutas lo que vas a utilizar.


dW: ¿Significa esto que la traducción dinámica desde código VP a código nativo se lleva a cabo gradualmente y no te da ningún pico [N. del T.: sobrecarga] de CPU significativo?

Moss: Correcto. Otra cosa que la gente no entiende es que dicen: "Seguramente la traducción (desde código VP) es un problema", pero debido a la naturaleza del código VP, las distribuciones acaban siendo más pequeñas que las distribuciones nativas, en muchos casos. Tienes que fijarte en la ecuación completa: llamas a algo, se carga desde el disco duro; el código VP es a menudo bastante más pequeño que el código nativo, con lo que el tiempo de carga desde el disco duro se reduce significativamente. Y comparado con el tiempo que lleva traducirlo, los ahorros son masivos. ¡A veces acaba realmente siendo más rápido que cargar y correr el código nativo ya traducido! La gente queda asombrada cuando lo ve funcionar. Pero lo que también asombra cuando lo ves es que todo esto ocurre dinámicamente; puedes construir esas matrices multiprocesador, cada uno de una familia de procesadores diferente, y el sistema ni se inmuta. Porque a la hora de cargar dice "Vale, esto es lo que quieres. Ahora, ¿sobre que procesador estoy corriendo? ¿Es un PPC, un ARM, un x86? ¡De acuerdo, voy a hacer la traducción!".


dW: Entonces, ¿puedes tener un PowerPC, un x86 y un ARM todos en la misma máquina, y el nuevo Amiga OS utilizará los tres procesadores?

Moss: Ajá. Ese es su fuerte: en la gama baja, como PDAs y teléfonos móviles, es muy parco en requerimiento de recursos y muy eficiente. Pero cuando se dan capacidades multiprocesador, puede escalarse hacia arriba, y cuando lo hace es con AMP (multiproceso asimétrico), no está limitado por los problemas del SMP (multiproceso simétrico). Tan sólo añades procesadores, él le agrega el núcleo de procesador virtual a cada uno de los procesadores que le das, y dice tranquilamente: "Vale, ¿qué quieres que haga?"


dW: ¿Podría explicar como el nuevo Amiga interrelaciona y virtualiza todos los recursos del ordenador como un todo?

Moss: Hay tres piezas de Intent que están completa o parcialmente escritas en código máquina nativo; el resto del sistema lo está en código VP. El primer componente en código nativo es el traductor, que traduce de binarios en código VP a código nativo del procesador. Dependiendo de la complejidad, el traductor está entre los 50 y 80 KB de tamaño. Aquí estamos hablando de tamaños muy pequeños, como era de esperar. Las otras dos piezas se llaman PII (pronunciado `pai'), el Interfaz de Aislamiento de la Plataforma, y el CII (pronunciado `saig'), el interfaz de Aislamiento de la CPU. El CII proporciona una abstracción alrededor de la CPU, cosas como el manejo de interrupciones, ese tipo de cosas. El PII abstrae básicamente la placa base.

Uno de los proyectos en el que estamos trabajando ahora es escribir un controlador acelerado nativo para la tarjeta de vídeo Matrox G400 AGP Dual Head. Por el momento, el AVE (entorno audiovisual) descompone sus llamadas en llamadas al sistema X Windows. Está padeciendo los mismos problemas que cualquier otro; de todas formas, hasta que el DRI [N. del T.: no sé lo que es el `DRI'; si alguien lo sabe, que por favor lo indique en el grupo es.comp.amiga] no esté debidamente implementado en XFree86 4, nadie puede obtener una buena aceleración por hardware en Linux si utilizas X. Así, la gente está usando el nuevo SDK de Amiga sobre Linux y dicen: ¡Guau, esto es impresionante! Pero no están teniendo ninguna aceleración por hardware, y están corriendo Amiga OS encima de otro sistema operativo. Así que te puedes imaginar que es lo que hará cuando corra de manera nativa sobre su propio hardware: volará.

Y otra de las cosas magníficas de esto es que tú primero escribes la versión en código VP (del controlador/programa). Si entonces decides que quieres añadir algunas mejoras, digamos para el juego de instrucciones del 3Dnow! o el Altivec, Intent no puede abstraer esto porque es específico del `chip'. Pero lo que puedes hacer es tener nuevas herramientas escritas en código nativo. Así puedes decir: aquí está todo mi código VP, que hace el trabajo, pero si tienes un PowerPC corriendo debajo, aquí hay unas cuantas herramientas extra que reemplazan a las de código VP y utilizan los registros e instrucciones especiales.


dW: Así, tienen una capacidad muy refinada para sustituir partes del código VP con código nativo que va dirigido específicamente al procesador, sacando provecho de las mejoras, 3Dnow!, SEE, etc., ¿no?

Moss: Correcto. Esta es una de las primeras preguntas que hice. Pensaba: No hay manera de que Tao Group supere esto. Pero ellos son gente inteligente (risas): ¡lo hicieron!

Es lo mismo que ofrece Java, con la excepción de que es mucho más rápido. Es asombroso verlo trabajar. Como técnico que soy, lo que más me impresionó fue ver como se reproducía de manera casi orgánica sobre una red multiprocesador. Y puedes hacerlo sobre una LAN o una WAN si quieres: es computación distribuida transparente.


dW: El compilador GNU C incluido, ¿compila en código VP?

Moss: Es un proceso en dos fases: el compilador C compila de hecho en código fuente VP que es entonces ensamblado en código objeto VP. Una de las diferencias de programar en C en vez de en VP es que estás a expensas de cómo se traduce de C a VP (lo que significa que el compilador de C produce una única herramienta grande, similar al monolítico ejecutable tradicional, por lo que tu código no esta compuesto de muchas pequeñas y ligeras herramientas como el resto del sistema). Doom fue portado desde los códigos abiertos C disponibles en 15 minutos, y creo que Quake llevó sobre una o dos horas. Tiene una conformidad completa con ANSI-C. La gente que lo ha utilizado hasta ahora ha dicho que realmente les gusta, pero que a veces quedan un poco confundidos porque las cosas parecen ser como en C y como en Linux, y no lo son. Así que hay un poco de curva de aprendizaje, pero no mucha: esas personas están todas por encima de eso. Porque inicialmente vimos que todo el mundo decía Sólo utilizamos C, y muchos de ellos decían De ningún modo, nosotros no programamos en ensamblador, y entonces lo vieron y se enamoraron de él. Y, de hecho, están utilizando más VP.


dW: ¿Qué puede decirnos sobre el soporte Java del Nuevo Amiga OS?

Moss: Nosotros vemos Java como un lenguaje de convergencia realmente bueno: es un lenguaje seguro, no hay punteros, es transparente a las redes y es fácil desarrollar cosas rápidamente. En el pasado, Java ha tenido mala prensa por inmaduro, y, francamente, porque muchas de las propias implementaciones han corrido tan lentamente que no vale la pena utilizarlas. La JEngine, que nosotros utilizamos, finalmente hace Java realidad. Una de las cosas buenas de esto es que el Java de Tao Group, la JEngine que corre encima del SO, es más rápido que cualquier otra máquina Java comparable a nivel de por-MIP [N. del T.: no sé a que es `por-MIP', creo que debe ser `millones de instrucciones procesadas' o algo así; si alguien lo sabe, que por favor lo indique en el grupo es.comp.amiga].


dW: Entonces, la gente puede programar utilizando la implementación de Java, certificada por Sun, más rápida del mundo, o explorar el código VP para el máximo rendimiento y escalabilidad, ¿no?

Moss: Así es. Lo que mucha gente hace es tomar su material C existente, lo portan y optimizan varias porciones de él en VP para aprender como funciona.


Linux y código fuente abierto
dW: Vale, ahora hablemos sobre Linux. ¿Cómo trabajan juntos el nuevo Amiga y Linux?

McEwen: Para los sistemas de desarrollo que están a la venta se requiere Linux. A medida que avanzamos, podemos correr el nuevo Amiga OS en `hardware' propio, Linux incrustado o un entorno de escritorio Linux: tiene mucho que ver con el socio con el que estamos trabajando. Es en esto donde puedes ver la flexibilidad: podemos correr de manera nativa (sobre `hardware' propio) o podemos utilizar Linux.

Moss: Si, eso depende del usuario, y depende del OEM, del ISV [N. del T.: estas siglas me están matando; please, help], o de cualquiera que quiera crear una aplicación. Esto es lo que les estamos dando. No es como Microsoft, donde lo que obtienes es: Esto es Windows CE, y va a correr sobre esto, y tú debes hacer esto. Una de las grandes capacidades del nuevo Amiga es su naturaleza camaleónica. Una compañía podría escribir una pequeña aplicación destinada a correr únicamente en, digamos, un teléfono móvil. Y están ligados/obligados al teléfono móvil porque utilizaban OS/9 o algo parecido. Con nosotros, pueden escribirlo y funcionará en el teléfono móvil, pero, de improviso, funcionará también en cualquier otro sitio. Ahora, el SO no es el límite, no es el factor limitador: con nosotros es Hey, puedes ir allá donde vayamos nosotros.


dW: Lo que esto significa es que los usuarios pueden jugar a todos los juegos del nuevo Amiga bajo Linux o podrían jugar con el mismo juego en una consola de juegos de alto rendimiento, en donde mostraría un rendimiento mejorado.

Moss: Exactamente. Y es el mismo binario. Y la compañía que hace el juego no se tiene que preocupar de la plataforma de destino. Le estamos proporcionando a Linux un gran valor añadido en términos de herramientas de desarrollo, en términos de funcionalidad y, a medida que pasa el tiempo, también en términos de contenido.


dW: En un sentido, la comunidad Amiga se perdió la revolución del código fuente abierto, y, en otro sentido, ellos fueron los pioneros del código fuente abierto antes de que fuese conocido como tal. ¿Qué tipos de cosas van a hacer para fomentar la comunidad de desarrollo del nuevo Amiga?

McEwen: Hay un par de cosas en marcha. Tenemos la lista de correo Open Amiga. Esta es un área en la que estamos llevando a cabo proyectos de código fuente abierto. Tenemos gente de casi cada gran compañía que puedas imaginar y de universidades de todo el mundo realizando producciones para la siguiente generación de Amiga. Nosotros no vamos a liberar el código fuente de nuestro núcleo, pero hay un área enorme en la que el código fuente abierto cobra un gran sentido para nosotros. La comunidad Amiga, ahora mismo, tiene más de 60.000 aplicaciones, y prácticamente todas están escritas por aficionados: están hechas por gente a la que le encanta programar. Esto es lo que queremos fomentar. Estamos aquí para hacer una cosa, crear unos cimientos sobre los que otros puedan construir.

Moss: Hemos invitado a algunas personas de la comunidad que son excelentes en gráficos 3-D y audio; decimos: Hey, dadnos vuestro apoyo. No pretendemos saberlo todo. Estamos intentando desarrollar también otro tipo de áreas, tales como interfaces abiertos. Todos nuestros interfaces serán abiertos. Esperamos que si la gente quiere hacer dinero, lo harán en implementaciones. También escuchamos a la gente, lo que es raro en una compañía que hace lo que estamos intentando hacer nosotros. No vamos a ser arrogantes y decir: Bien, esto es lo que hemos pensado que era mejor, y lo mejor será que desarrolles para ello o... malo. Esa gente lo está utilizando día sí, día también: saben lo que les gusta, y queremos que participen.


Empezando con el Nuevo SDK
dW: ¿Cómo pueden empezar los futuros desarrolladores de Amiga?

McEwen: Nuestro SDK está disponible y distribuyéndose, e incluye editores, herramientas, ejemplos de código y documentación. Ahí está todo para que puedas comenzar. Requiere Linux, así que necesitas tener Linux en tu máquina para instalar el SDK. Se vende por 99'95 dólares y está disponible en Amazon.com y en distribuidores de Amiga de todo el mundo.

Moss: ¿Durante cuánto tiempo lleva realmente vendiéndose? ¿Tres días?


dW: ¿Qué tipo de respuesta están obteniendo?

McEwen: Me llevé conmigo una primera tirada a Dusseldorf, Alemania, y la vendimos en quince minutos. Ahora tenemos una segunda tirada almacenada, y parece que ya está toda vendida. Así que vamos a poner en marcha nuestra siguiente ronda de producción. Estamos hablando de entre 5 y 10 mil unidades por tirada. De hecho, fue, en cierto modo, gracioso: como éramos una nueva cuenta en Amazón.com, de hecho tuvieron que notificarnos que como estábamos vendiendo demasiado, nos iban a dar de baja temporalmente.


dW: ¿Qué se incluye exactamente con el SDK?

Moss: Cuando recibes el SDK, recibes un manual de 300-400 páginas. Hay una barbaridad de manual más en el CD, en formato PDF. Recibes el Amiga Foundation Layer [Capa de Cimientos de Amiga], que es el principio de lo que estamos intentando crear con el concepto Amiverse: el Amiverse se asienta sobre el Amiga Foundation Layer. Recibes el sistema operativo completo, un `shell' [ventana para líneas de comandos], el AVE (entorno audiovisual), y una implementación completa, certificada por Sun, de Personal Java (que incluye un compilador y el propio JRE). Recibes el GNU C, un depurador de línea de comandos, el ensamblador VP y muchas herramientas VP.


Desde una perspectiva de desarrollador
dW: ¿Qué mensaje le gustaría hacer llegar a la comunidad de desarrolladores de código fuente abierto?

Moss: Muchos desarrolladores que conozco, especialmente los muchachos de Linux y código fuente abierto, que programan por la noche cuando vuelven a casa del trabajo, quieren hacer algo nuevo, algo diferente. Muchos de los SO que hay por ahí ahora tienen ligeras variaciones , pero están basados básicamente en conceptos tradicionales, establecidos. Ya sabes, núcleo, sistema de archivos, esto, lo otro y lo de más allá. Intent y Amiga proporcionan un punto de partida para una nueva manera de hacer las cosas. La gente que ha recibido el SDK ahora dice: Si, se parece mucho a lo que utilizábamos, pero, guau, ¡también hay algo que es muy diferente! Y te da ese toque, el mismo toque que la gente sigue mencionando en las ferias de Amiga, donde dicen :Tuve un Apple II; vi a alguien utilizar un Amiga durante 15 minutos y me compre uno. Sencillamente te da algo diferente. Es como ser un niño de nuevo, cuando de repente algo hace `¡bang!' en tu cerebro y te das cuenta: ¡Guau, esto es sencillamente genial!

Por 99 pavos, pueden obtener algo que, potencialmente, puede cambiar sus vidas. Hasta ahora no he visto a nadie que lo haya probado que no haya dicho otra cosa que: ¡Guau, esto es genial!


dW: ¡Y está ocurriendo realmente!

McEwen: Esta ocurriendo, estamos distribuyéndolo. Esto es por el Amiga y por la gente que lo mantuvo vivo. Ellos son la razón de que todavía esté aquí hoy: es la comunidad. Ciertamente, el Amiga cambió las reglas de todo allá en el 85. Y nosotros lo estamos volviendo a hacer en el 2000.


Envía esta página web a un amigo:
Esta opción está desactivada temporalmente, rogamos disculpen las molestias

Volver a la página anterior

Al menú principal