DOS de Apple - Apple DOS

DOS de Apple
Apple DOS.png
Computadora Apple que ejecuta un programa Hello World
Desarrollador computadora Apple
Escrito en Montaje
Familia OS DOS de Apple
Estado de trabajo Interrumpido
Modelo fuente Fuente cerrada
Versión inicial 1978 ; Hace 43 años ( 1978 )
Último lanzamiento 3,3 / 1980 ; Hace 41 años ( 1980 )
Tipo de grano Núcleo monolítico
Licencia Acuerdo de licencia de software de Apple

Apple DOS es la familia de sistemas operativos de disco para la serie de microcomputadoras Apple II desde finales de 1978 hasta principios de 1983. Fue reemplazada por ProDOS en 1983. Apple DOS tiene tres versiones principales: DOS 3.1, DOS 3.2 y DOS 3.3; cada una de estas tres versiones fue seguida por una segunda versión menor de "corrección de errores", pero sólo en el caso de Apple DOS 3.2 esa versión menor recibió su propio número de versión, Apple DOS 3.2.1. La versión más conocida y más utilizada es Apple DOS 3.3 en las versiones de 1980 y 1983. Antes del lanzamiento de Apple DOS 3.1, los usuarios de Apple tenían que depender de las cintas de audio para el almacenamiento y la recuperación de datos.

Historial de versiones

Cuando Apple Computer presentó Apple II en abril de 1977, la nueva computadora no tenía unidad de disco ni sistema operativo de disco (DOS). Aunque el cofundador de Apple, Steve Wozniak, diseñó el controlador Disk II a fines de ese año y creía que podría haber escrito un DOS, su cofundador Steve Jobs decidió subcontratar la tarea. La compañía ha considerado el uso de Digital Research 's CP / M , pero Wozniak buscó un sistema operativo que era más fácil de usar. El 10 de abril de 1978, Apple firmó un contrato de 13.000 dólares con Shepardson Microsystems para escribir un DOS y entregarlo en 35 días. Apple proporcionó especificaciones detalladas, y el primer empleado de Apple, Randy Wigginton, trabajó en estrecha colaboración con Paul Laughton de Shepardson mientras este último escribía el sistema operativo con tarjetas perforadas y una minicomputadora .

No hubo Apple DOS 1 o 2. Las versiones 0.1 a 2.8 fueron revisiones enumeradas en serie durante el desarrollo, que bien podrían haber sido llamadas compilaciones 1 a 28. Apple DOS 3.0, una edición renombrada de la versión 2.8, nunca se lanzó públicamente debido a errores . Apple no publicó documentación oficial hasta la versión 3.2.

Apple DOS 3.1 se lanzó al público en junio de 1978, poco más de un año después de que se introdujera Apple II, convirtiéndose en el primer sistema operativo basado en disco para cualquier computadora Apple. Más tarde, se produjo una versión de corrección de errores, que solucionó un problema mediante su MASTER CREATEutilidad, que se usó para crear discos maestros (de arranque) de Apple DOS: el INITcomando incorporado creaba discos que solo podían arrancarse en máquinas con al menos la misma cantidad de la memoria como la que los había creado. MASTER CREATEincluye una versión de DOS que se reubica automáticamente y que se inicia en Apples con cualquier configuración de memoria.

Apple DOS 3.2 fue lanzado en 1979 para reflejar los cambios en los métodos de arranque de la computadora que fueron incorporados al sucesor del Apple II, el Apple II Plus. El nuevo firmware incluía una función de inicio automático que encontraba automáticamente un controlador de disco y se iniciaba desde él cuando se encendía el sistema, lo que le valió el nombre de " ROM de inicio automático ". DOS 3.2.1 fue lanzado en julio de 1979 con algunas correcciones de errores menores.

Apple DOS 3.3 fue lanzado en 1980. Mejora varias funciones de la versión 3.2, al mismo tiempo que permite grandes ganancias en el almacenamiento disponible en disquetes ; Las PROM P5A / P6A más nuevas en el controlador de disco permitieron la lectura y escritura de datos a una densidad más alta, por lo que en lugar de 13 sectores (3,25  KiB ), se pueden almacenar 16 sectores (4 KiB) de datos por pista de disco, lo que aumenta la capacidad. de 113,75 KB a 140 KB por lado del disco, 16 KB de los cuales son utilizados por la sobrecarga del sistema de archivos y una copia de DOS, en un disco con formato DOS 3.3, dejando 124 KB para programas de usuario y datos. Sin embargo, DOS 3.3 no es compatible con versiones anteriores ; no puede leer ni escribir discos DOS 3.2. Para solucionar este problema, Apple Computer lanzó una utilidad llamada "MUFFIN" para migrar archivos y programas de Apple DOS 3.2 a discos de la versión 3.3. Apple nunca ofreció una utilidad para copiar en la otra dirección. Para migrar archivos de Apple DOS 3.3 a los discos de la versión 3.2, alguien escribió una utilidad "NIFFUM". También existen utilidades comerciales (como Copy II Plus) que pueden copiar archivos desde y hacia cualquier formato (y eventualmente también ProDOS ). La versión 3.3 también mejora la capacidad de cambiar entre Integer BASIC y Applesoft BASIC, si la computadora tiene una tarjeta de idioma ( expansión de RAM ) o una tarjeta de firmware.

Detalles técnicos

Los discos Apple DOS 3.1 usan 13 sectores de datos por pista, siendo cada sector 256 B. Usa 35 pistas por lado del disco y solo puede acceder a un lado del disquete, a menos que el usuario le dé la vuelta . Esto le da al usuario una capacidad de almacenamiento total de 113,75 KB por lado, de los cuales alrededor de 10 KB se utilizan para almacenar el propio DOS y el directorio del disco, dejando alrededor de 100 KB para los programas de usuario.

La primera capa del sistema operativo se llama RWTS, que significa "sector de pista de lectura / escritura". Esta capa consta de subrutinas para búsqueda de pistas, lectura y escritura de sectores y formateo de disco. Además, se creó una API llamada Administrador de archivos que implementa funciones para abrir, cerrar, leer, escribir, eliminar, bloquear (es decir, proteger contra escritura), desbloquear (es decir, habilitar para escritura) y renombrar archivos, y verificar la integridad estructural de un archivo. También hay una función de catálogo, para listar archivos en el disquete, y una función "init", que formatea un disco para usar con DOS, almacena una copia de DOS en las primeras tres pistas y almacena un programa de inicio (generalmente llamado HELLO ) que se inicia automáticamente cuando se inicia este disco. Además de la API del Administrador de archivos, se implementan las rutinas principales de DOS que se conectan al intérprete BASIC de la máquina e interceptan todos los comandos del disco. Proporciona BLOAD , BSAVE y BRUN para almacenar, cargar y ejecutar archivos ejecutables binarios. LOAD, RUN y SAVE se proporcionan para programas BASIC, y se proporcionó un EXEC para ejecutar archivos por lotes basados ​​en texto que constan de comandos BASIC y DOS. Finalmente, existen cuatro tipos de archivos, identificados por letras en una lista de catálogo:

  • I - Programas BÁSICOS enteros (almacenados en un formato compacto, no en texto plano)
  • A - Programas BASIC de Applesoft (también almacenados en un formato empaquetado que ahorra espacio)
  • B: archivos binarios , ya sean programas ejecutables en lenguaje de máquina o archivos de datos
  • T: archivos de texto ASCII (o archivos por lotes descomprimidos de texto sin formato)

Hay cuatro tipos de archivos adicionales; "R", "S" y una "A" y una "B" adicionales, ninguna de las cuales es totalmente compatible. DOS reconoce estos tipos solo para listados de catálogos y no hay formas directas de manipular este tipo de archivos. El tipo "R" encontró algún uso para archivos ejecutables binarios reubicables. Algunos programas admiten el tipo "S" como archivos de datos.

Una tabla de vectores de llamada en la región de $ 03D0–03FF 16 permite a los programas encontrar DOS donde sea que esté cargado en la memoria del sistema. Por ejemplo, si el DOS conectado a la CLI BASIC deja de funcionar, se puede reinicializar llamando a la ubicación $ 03D0 16 (976 10 ) - de ahí el comando tradicional "3D0G" ("3D0 go") para regresar a BASIC desde el Monitor del sistema .

Cargador de arranque

El proceso de carga de Apple DOS implica una serie de programas muy pequeños, cada uno de los cuales lleva el proceso de carga hacia adelante unos pocos pasos antes de pasar el control al siguiente programa de la cadena.

  • Originalmente, la ROM de Apple II no admitía el arranque desde disco. En el encendido, mostraría el indicador del Monitor del sistema. Tanto el Monitor como el Integer BASIC tienen comandos para redirigir la impresión a un controlador de impresora en una ranura designada, por lo que la forma convencional de arrancar desde el disco era ordenar a la computadora que comenzara a "imprimir" en la tarjeta de interfaz del disco, generalmente instalada en la ranura 6 , usando el comando 6 Control-P (desde el monitor ML) o PR # 6 (desde BASIC). Cuando el monitor o el BASIC emitían el siguiente carácter de aviso, la computadora llamaba a las rutinas ROM en la tarjeta de disco para "imprimir" en él, que luego procedía con la secuencia de arranque. (Se podría usar la redirección de entrada para fines similares). Alternativamente, desde el monitor ML, el usuario podría escribir el número de ranura, escribiendo C600G para invocar el código de inicio del controlador directamente.
  • Cuando se introdujo Apple II Plus, incluía la capacidad de escanear cada ranura de expansión (trabajando hacia abajo desde la ranura 7 a la ranura 1) en busca de una ROM de tarjeta de expansión de arranque y llamarla automáticamente.
  • El código de arranque de la ROM de la tarjeta de expansión intenta arrancar desde la unidad 1 del controlador moviendo el brazo de lectura / escritura a la pista cero e intentando leer 256 bytes desde el sector cero de esa pista. (Si no hay ningún disco legible disponible, la unidad gira indefinidamente hasta que se proporciona uno y se cierra la puerta de la unidad).
  • El sector cero contiene un pequeño programa que le indica a la computadora que lea los sectores 0 a 9 de la pista cero en la memoria usando parte del código de arranque de la ROM (releyendo el sector 0 en el proceso).
  • El programa en los sectores 1 a 9 de la pista 0, incluido el código RWTS completo, procede a cargar las pistas 1 y 2, que contienen el resto de DOS. En un disco maestro del sistema, también se incluye código para determinar la configuración de RAM de la computadora y reubicar DOS lo más alto posible en la memoria del sistema, hasta el límite de 48 KB de la memoria principal de Apple II ($ BFFF 16 ).
  • Una vez que DOS se carga en la memoria, intenta cargar y ejecutar un programa de inicio como se indica en el código del programa de DOS. Este es comúnmente un programa de lenguaje BÁSICO llamado HELLO (o algún otro nombre) pero DOS se puede modificar para ejecutar otros tipos de programas al inicio, como un archivo binario ejecutable. La aparición del corchete de la derecha ( ] ) en la pantalla es una indicación para el usuario de que se está cargando un programa de inicio de Applesoft BASIC, mientras que un símbolo mayor que ( > ) indica que se está cargando un programa de Integer BASIC. (Estas son las indicaciones para las respectivas versiones de BASIC, que se están inicializando en este momento).
  • A continuación, el programa de inicio comienza a ejecutarse.

Compatibilidad con Integer BASIC y Applesoft BASIC

El Apple II original incluía un intérprete BASIC en ROM conocido originalmente como Apple BASIC y más tarde como Integer BASIC . Las variables en este lenguaje solo pueden manejar números enteros que van desde -32,768 a +32,767 ( valores binarios de 16 bits ); los números de coma flotante no son compatibles. Apple encargó a Microsoft que desarrollara Applesoft BASIC , capaz de manejar números de punto flotante. Applesoft BASIC no puede ejecutar programas Integer BASIC, lo que hace que algunos usuarios se resistan a actualizarlo.

DOS 3.3 se lanzó cuando Applesoft BASIC era estándar en ROM en Apple II Plus, por lo que Apple lo diseñó para admitir el cambio entre los dos intérpretes BASIC. Integer BASIC se carga en la RAM en la tarjeta de idioma de Apple IIs (si está presente) y al escribir FP o INT desde BASIC, el usuario puede cambiar entre cualquiera de las versiones.

Disminución

Después de 1980, Apple DOS entró en un estado de estancamiento cuando Apple concentró sus esfuerzos en la desafortunada computadora Apple III y su sistema operativo SOS . Dos versiones más de Apple DOS, ambas todavía llamadas DOS 3.3 pero con algunas correcciones de errores y mejor soporte para el nuevo modelo Apple IIe , fueron lanzadas a principios y mediados de 1983.

Sin parches de terceros, Apple DOS solo puede leer disquetes que se ejecutan en una unidad Disk II de 5,25 pulgadas y no puede acceder a ningún otro medio, como unidades de disco duro, unidades de RAM virtual o unidades de disquete de 3,5 pulgadas. La estructura de los discos DOS de Apple (particularmente el mapa de sectores libres, que estaba restringido a parte de un solo sector) es tal que no es posible tener más de 400 KB disponibles a la vez por unidad sin una reescritura importante de casi todas las secciones. del código; esta es la razón principal por la que Apple abandonó esta iteración de DOS en 1983, cuando Apple DOS fue reemplazado por completo por ProDOS .

ProDOS conserva el formato de bajo nivel de 16 sectores de DOS 3.3 para discos de 5,25 pulgadas, pero introduce un nuevo formato de alto nivel que es adecuado para dispositivos de hasta 32  MB ; esto lo hace adecuado para discos duros de esa época y disquetes de 3,5 pulgadas. Todas las computadoras Apple desde el II Plus en adelante pueden ejecutar DOS 3.3 y ProDOS, el Plus requiere una expansión de memoria "Tarjeta de idioma" para usar ProDOS; los modelos ey posteriores tienen hardware de tarjeta de idioma incorporado, por lo que pueden ejecutar ProDOS directamente. ProDOS incluye software para copiar archivos desde discos DOS de Apple. Sin embargo, muchas personas que no necesitaban las mejoras de ProDOS (y a quienes no les gustaba su huella de memoria mucho mayor) continuaron usando Apple DOS o uno de sus clones mucho después de 1983. La convención de Apple de almacenar un sistema operativo de arranque en cada disquete disk significa que se puede utilizar software comercial sin importar el sistema operativo que posea el usuario. Un programa llamado DOS.MASTER permite a los usuarios tener múltiples particiones virtuales DOS 3.3 en un volumen ProDOS más grande, lo que permite el uso de muchos programas DOS basados ​​en disquetes con un disco duro.

Poco después de que saliera ProDOS, Apple retiró el permiso de terceros para redistribuir DOS 3.3, pero otorgó a una empresa, Syndicomm, una licencia exclusiva para revender DOS 3.3.

Los juegos comerciales por lo general no usaban Apple DOS, sino que tenían sus propias rutinas de disco personalizadas para fines de protección contra copias, así como para el rendimiento.

Mejoras de rendimiento

La rutina RWTS de DOS puede leer o escribir una pista en dos revoluciones con el entrelazado adecuado. Un sector del disco giratorio pasa por debajo del cabezal de lectura / escritura mientras la rutina RWTS decodifica el sector recién leído (o codifica el siguiente que se va a escribir), y si este sector perdido es el siguiente que se necesita, DOS necesita esperar casi una revolución completa del disco para que el sector vuelva a girar. A esto se le llama "disparar un revés" y es un cuello de botella de rendimiento bien entendido en los sistemas de disco. Para evitar esto, los sectores de un disco de DOS se organizan en orden intercalado:

0 7 e 6 d 5 c 4 b 3 a 2 9 1 8 f

Posteriormente, ProDOS ordenó los sectores en este orden:

0 8 1 9 2 a 3 b 4 c 5 d 6 e 7 f

Al leer y decodificar el sector 0, el sector 8 pasa, de modo que el sector 1, el siguiente sector que probablemente se necesite, estará disponible sin esperar. Al leer el sector 7, dos sectores innecesarios, f y 0, pasan antes de que el sector 8 esté disponible, y al leer el sector 15, el variador siempre tendrá que esperar una revolución adicional para el sector 0 en la misma pista. Sin embargo, el sector 0 que realmente se necesita en la mayoría de los casos estará en la siguiente pista superior, y esa pista se puede organizar en relación con la última para permitir el tiempo necesario para decodificar el sector recién leído y mover la cabeza antes de que llegue el sector 0 alrededor. En promedio, una pista completa se puede leer en dos revoluciones del disco.

Desafortunadamente, el administrador de archivos de DOS anterior subvirtió esta eficiencia al copiar los bytes leídos o escritos en un archivo uno a la vez entre un búfer de disco y la memoria principal, lo que requiere más tiempo y hace que DOS acelere constantemente al leer o escribir archivos. Los programas estuvieron disponibles desde el principio para formatear discos con intercalados de sectores modificados; estos discos le dan a DOS más tiempo entre sectores para copiar los datos, mejorando el problema.

Posteriormente, los programadores ajenos a Apple reescribieron las rutinas del Administrador de archivos para evitar hacer una copia adicional para la mayoría de los sectores de un archivo; RWTS recibió instrucciones de leer o escribir sectores directamente hacia o desde la memoria principal en lugar de desde un búfer de disco siempre que se transfiriera un sector completo. Un "parche" temprano para proporcionar esta funcionalidad se publicó en Call-APPLE . Las aceleraciones en el comando LOAD de tres a cinco veces eran típicas.

Esta funcionalidad pronto apareció en productos comerciales, como Pronto-DOS, Diversi-DOS, Hyper-DOS y David-DOS, junto con características adicionales, pero nunca se usó en una versión oficial de Apple DOS. Sin embargo, el sistema operativo sucesor de Apple, ProDOS, empleó una funcionalidad similar. El sistema operativo GS / OS específico de Apple IIGS eventualmente emplearía una técnica de "lectura dispersa" aún más eficiente que leería cualquier sector que pasara por debajo del cabezal de lectura si fuera necesario para el archivo que se está leyendo.

Lanzamiento del código fuente

En 2013, más de 35 años después del debut de Apple II , el Computer History Museum publicó en su sitio web el código fuente original de Apple DOS . Fue donada por el autor original, Paul Laughton.

Referencias

Otras lecturas

  • Vale, Don; Lechner, Pieter (1981), debajo de Apple DOS , software de calidad, ISBN 0-912985-00-3

enlaces externos