Sunday, January 24, 2010

Un recuento de experiencias

Aún cuando Heritage/1 solo existe en el papel y a medias (aunque ya estoy construyendo los primeros circuitos), su diseño ya cuenta como una experiencia personal de la que he sacado algunas enseñanzas.

PANEL DE CONTROL

No podía imaginarme una minicomputadora de los 70s sin un panel control repleto de interruptores y lámparas majable a nivel de bit. Sin embargo, el diseño de este panel y —sobre todo— su conexión al resto del circuito han presentado tantas dificultades que hasta llegué a pensar en suprimirlo del todo.

A decir verdad, mi panel es mucho más simple que el de otras "home-brew" minis que he estado estudiado (ver enlaces), pero aún asi resulta recargado si se le compara con verdaderas minicomputadoras de los 70s como la DEC PDP-11. La dificultad del panel se presenta en dos frentes: (1) requiere un gran número de conexiones con el CPU, y (2) no puede ser "inteligente" puesto que es el primer sitio a mirar en caso de fallas por lo que debe ser absolutamente confiable.

Los problemas los he ido resolviendo poco a poco a expensas de simplificarlo cada vez más. Finalmente he podido llegar a un diseño definitivo con el cual estoy satisfecho, no asi con la gran cantidad de tiempo que he tenido que dedicarle.

Como enseñanza me queda que un panel de control ha de ser lo más pequeño y simple posible con apenas lo indispensable para operar la máquina, tal vez no tanto para ayudar a la puesta a punto de programas. No he querido seguir simplificando mi diseño actual porque, definitivamente, quiero tener la experiencia de operarlo con todos sus interruptores y lámparas. Quiero aprender de la práctica cuales de sus recursos son útiles y cuales, no.



UNA MAQUINA DE PROPOSITO GENERAL

Me propuse diseñar una máquina simple orientada a enfrentar cualquier tipo de labor... que es lo mismo que decir: ninguna labor en concreto. En mi articulo Ocho bits versus dieciséis exploraba la idea de un diseño optimizado como alternativa al diseño generalista que Heritage/1 defintivamente tomó; por ejemplo, Heritage/1 no optimiza el tratamiento de caracteres ni brida apoyo para un sistema operativo de multitarea preventiva con protección de procesos.

La moraleja es que "propósito general" en realidad significa: "gran número de propósitos específicos". Si alguna vez vuelvo a enfrentar este reto, aplicaré esta enseñanza para orientar el diseño a ciertos "algos"; mi esfuerzo estará dirigido entonces a optimizar para cada uno de ellos.

ARQUITECTURA DE HARDWARE VS. SOFTWARE DE SISTEMA

Uno de los propósitos de este proyecto ha sido el proveerme un entorno "entendible" donde poder jugar a mis anchas con el diseño (u adopción) de software de sistema. Si bien la arquitectura de computadoras ha resultado apacionante para mi, mucho más lo está siendo la programación de sistemas operativos... solo que en esto no podré incursionar hasta tanto el hardware no esté listo.

Una alternativa hubiera sido diseñar un hardware factible de ser armado en poco tiempo, por ejemplo usando un microprocesador de la generación de los 80s como Intel 8085 o Zilog Z80; el aspecto cultural se hubiera satisfecho con tan solo "correr el contexto histórico" hacia esa década. Solo que entonces me hubiera perdido el "sabor" de una máquina sin misterios, sin "boot up" y sin LSI, todo aquello que a fin de cuentas forma parte de la personalidad y la cultura de Heritage/1.

DEFINITIVAMENTE UN "MAIN-FRAME"

Los 80s trajeron el concepto de "computadora personal": una máquina cuyo bajo costo justifica su uso dedicado a una sola persona. Hoy en dia la computadora no solo ha salido del Centro de Calculo hacia el buró, sino también de este ¡al bolsillo del propietario! —En efecto, un teléfono celular de nuestros días es más potente que un mainframe de mediados de los 60s como la IBM System/360.

La percepción actual (tanto doméstica como industrial) es que una computadora ha de tener una tarjeta de video, una interfaz gráfica y un ratón. Heritage/1 es portadora de la visión lejendaria, definitivamente opuesta: Una computara solo "computa"; a ella se le accede mediante "terminales" externos; ella, de por si, no proporciona ninguna via para ser "mirada" ni "comandada" directamente por sus usuarios.

Una versión moderna de Heritage/1 reemplazaría sus puertos serie (a donde se conectan los terminales) por una conexión Ethernet, correría UNIX y figuraría como un "host" dentro de una red TCP/IP. Los "terminales" serían entonces computadoras de escritorio como Macs o PCs; o tal vez se fabricarían terminales propietarias capaces de presentar una interfaz gráfica, tal vez Web.

Pero siempre sería, Heritage/1, un máquina centralista: un "mainframe"; no proveería ningún medio que permitiese tratarla como a una vulgar computadora de escritorio.

En este sentido se parecería más bien a una IBM AS/400. Mi enseñanza en este sentido es que el mundo de los PCs no me resulta atractivo en lo absoluto.

0 comments:

Post a Comment