Dos 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 reemplazado por ProDOS en 1983. Apple DOS tiene tres versiones principales: DOS 3.1, DOS 3.2 y DOS 3.3; cada uno de estos tres lanzamientos fue seguido por un segundo "corrección de errores" versión, pero solo 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 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 confiar en las cintas de casete 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 empresa consideró usar el CP/M de Digital Research, pero Wozniak buscó un sistema operativo que fuera 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, ya que este último escribió el sistema operativo con tarjetas perforadas y una minicomputadora.
No había Apple DOS 1 o 2. Las versiones 0.1 a 2.8 fueron revisiones enumeradas en serie durante el desarrollo, que bien podrían haberse llamado compilaciones 1 a 28. Apple DOS 3.0, una versió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ó públicamente 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. Un lanzamiento de corrección de errores llegó más tarde, abordando un problema por medio de su Utilidad MASTER CREATE
, que se usó para crear discos maestros (arrancables) de Apple DOS: El INIT
creaba discos que solo podían arrancarse en máquinas con al menos la misma cantidad de memoria que la que los había creado. MASTER CREATE
incluye una versión de DOS con reubicación automática que arranca en Apples con cualquier configuración de memoria.
Apple DOS 3.2 se lanzó en 1979 para reflejar los cambios en los métodos de arranque de la computadora que se incorporaron en el sucesor de Apple II, Apple II Plus. El nuevo firmware incluía una función de inicio automático que buscaba 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". Luego, se lanzó DOS 3.2.1 en julio de 1979 con algunas correcciones de errores menores.
Apple DOS 3.3 se lanzó en 1980. Mejora varias funciones de la versión 3.2, al tiempo que permite grandes ganancias en el almacenamiento disponible en disquetes. Las PROM P5A/P6A más nuevas en el controlador de disco permiten la lectura y escritura de datos a una mayor densidad, por lo que se pueden almacenar 16 sectores (4 KiB) por pista en lugar de 13 sectores (3,25 KiB), aumentando la capacidad de 113,75 KB a 140 KB por lado: 16 KB de los cuales son utilizados por la sobrecarga del sistema de archivos y una copia de DOS, dejando 124 KB para los programas y datos del usuario. 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ó "MUFFIN", una utilidad 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 volver a migrar los archivos de Apple DOS 3.3 a los discos de la versión 3.2, alguien escribió un "NIFFUM" utilidad. También hay utilidades comerciales (como Copy II Plus) que pueden copiar archivos entre 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, cada sector tiene 256 bytes. Utiliza 35 pistas por lado del disco y puede acceder solo a un lado del disquete, a menos que el usuario voltee el disco. Esto le da al usuario una capacidad de almacenamiento total de 113,75 KB por lado, de los cuales unos 10 KB se utilizan para almacenar el propio DOS y el directorio del disco, dejando unos 100 KB para los programas del usuario.
La primera capa del sistema operativo se llama RWTS, que significa "sector de pista de lectura/escritura". Esta capa consta de subrutinas para la búsqueda de pistas, la lectura y escritura de sectores y el formateo de discos. Una API llamada Administrador de archivos se construyó sobre esto e implementa funciones para abrir, cerrar, leer, escribir, eliminar, bloquear (es decir, proteger contra escritura), desbloquear (es decir, habilitar escritura) y renombrar archivos, y para verificar la integridad estructural de un archivo. También hay una función CATALOG
, para listar archivos en el disquete y una función INIT
, que formatea un disco para usar con DOS, almacenar una copia de DOS en las primeras tres pistas y almacenar 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 principales rutinas 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 ejecutables binarios. CARGAR
, EJECUTAR
, y SAVE
se proporcionan para programas BASIC, y un EXEC
para ejecutar archivos por lotes basados en texto que consisten en comandos BASIC y DOS. Finalmente, existen cuatro tipos de archivos, identificados por letras en un listado de catálogo:
- I – Integer BASIC programas (establecidos en un formato compacto, no texto simple)
- A – Programas BASIC de Applesoft (también almacenados en un formato de ahorro de espacio)
- B – Archivos binarios, programas de lenguaje automático ejecutables, o archivos de datos
- T – Archivos de texto ASCII (o archivos de texto simple, archivos de lotes sin empaquetar)
Hay cuatro tipos de archivos adicionales; "R", "S" y "A" y "B", ninguno de los cuales es totalmente compatible. DOS reconoce estos tipos solo para listados de catálogo y no hay formas directas de manipular este tipo de archivos. La "R" type encontró algún uso para archivos ejecutables binarios reubicables. Algunos programas apoyan el "S" escriba como archivos de datos.
Una tabla de vectores de llamadas en la región de $03D0–03FF16 permite que los programas encuentren DOS dondequiera que esté cargado en la memoria del sistema. Por ejemplo, si el DOS conectado a la CLI BÁSICA deja de funcionar, se puede reinicializar llamando a la ubicación $03D016 (97610), de ahí la tradicional 3D0G
("3D0 go") comando para regresar a BASIC desde el monitor del sistema.
Cargador de arranque
El proceso de carga de Apple DOS involucra una serie de programas muy pequeños, cada uno de los cuales avanza el proceso de carga unos pasos antes de pasar el control al siguiente programa de la cadena.
- Originalmente, el Apple II ROM no soportaba el arranque de disco en absoluto. En el encendido se mostrará 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 entonces era ordenar el ordenador para comenzar "impresión" a la tarjeta de interfaz de disco, normalmente instalado en la ranura 6, utilizando el comando 6 Control-P (del monitor ML) o
PR#6
(de BASIC). Cuando el monitor o BASIC emitieron el siguiente carácter rápido, el equipo llamaría las rutinas ROM en la tarjeta de disco para "imprimir" a ella, que luego procedería con la secuencia de arranque. (Uno podría utilizar la redirección de entrada a extremos similares.) Alternativamente, desde el monitor ML, el usuario podría escribir el número de ranura, escribiendoC600G
para invocar el código de arranque del controlador directamente. - Cuando se introdujo el Apple II Plus, incluyó la capacidad de escanear cada ranura de expansión (trabajando hacia abajo desde la ranura 7 a ranura 1) para una tarjeta de expansión de arranque ROM, y automáticamente llamarlo.
- El código de arranque ROM de la tarjeta de expansión intenta arrancar de la unidad 1 del controlador moviendo el brazo de lectura/escritura para rastrear cero e intentando leer 256 bytes del sector cero de esa pista. (Si no hay disco legible disponible, la unidad gira indefinidamente hasta que se proporciona uno y la puerta de entrada está cerrada.)
- El sector cero contiene un pequeño programa que instruye al ordenador a leer sectores 0 a 9 de la pista cero en memoria utilizando parte del código de arranque ROM (releer sector 0 en el proceso).
- El programa en los sectores 1–9 de la pista 0, incluyendo el código RWTS completo, luego procede a cargar las pistas 1 y 2, que contienen el resto de DOS. En un disco maestro del sistema, el código también se incluye para determinar la configuración RAM del ordenador 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 ($BFFF16).
- Una vez que el DOS se carga en memoria, intenta cargar y ejecutar un programa de arranque como se indica en el código del programa DOS. Esto es comúnmente un programa de lenguaje BASIC HELLO (o algún otro nombre) pero DOS puede ser modificado para ejecutar otros tipos de programas al inicio, como un archivo binario ejecutable. La aparición del corchete de la mano derecha (]) en la pantalla es una indicación para el usuario de que un programa de inicio BASIC de Applesoft está cargando, mientras que un símbolo más grande que (■) indica que un programa Integer BASIC está cargando. (Estos son los impulsos para las versiones respectivas de BASIC, que se están inicializando en este punto.)
- El programa de inicio comienza a ejecutar.
Compatibilidad con enteros BASIC y Applesoft BASIC
El Apple II original incluía un intérprete BASIC en la 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 coma 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 la ROM del Apple II Plus, por lo que Apple lo diseñó para permitir alternar entre los dos intérpretes de BASIC. Integer BASIC se carga en la RAM en la tarjeta de idioma de Apple II (si está presente) y se escribe FP
o INT
desde BASIC, el usuario puede cambiar entre cualquiera de las dos versiones.
Rechazar
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. A principios y mediados de 1983 se lanzaron 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.
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 RAM virtuales o unidades de disquete de 3,5 pulgadas. La estructura de los discos DOS de Apple (particularmente el mapa del sector libre, que estaba restringido a una 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 presenta 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 la II Plus en adelante pueden ejecutar DOS 3.3 y ProDOS, la Plus requiere una "Tarjeta de idioma" expansión de memoria para usar ProDOS; los modelos e y 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 uso 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 disco significa que se puede usar 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 de DOS 3.3 en un volumen ProDOS más grande, lo que permite el uso de muchos programas de DOS basados en disquetes con un disco duro.
Poco después de que saliera ProDOS, Apple retiró el permiso a terceros para redistribuir DOS 3.3, pero concedió a una empresa, Syndicomm, una licencia exclusiva para revender DOS 3.3.
Los juegos comerciales generalmente no usaban Apple DOS, sino que tenían sus propias rutinas de disco personalizadas con fines de protección contra copia y 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 escribirá), y si este sector faltante es el siguiente que se necesita, DOS debe esperar. casi una vuelta entera del disco para que el sector volviera a dar la vuelta. Esto se llama "soplar una revolucion" y es un cuello de botella de rendimiento bien conocido en los sistemas de disco. Para evitar esto, los sectores en un disco DOS se organizan en un orden intercalado:
0 7 e 6 d 5 c 4 b 3 a 2 9 1 8 f
Más tarde, ProDOS dispuso 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 próximo sector que probablemente se necesitará, 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 requería más tiempo y provocaba que DOS gastara constantemente revoluciones 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.
Más tarde, los programadores fuera de 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-A.P.P.L.E.. Las aceleraciones en el comando LOAD
de tres a cinco veces fueron típico.
Esta funcionalidad apareció pronto 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 "lectura dispersa" aún más eficiente. técnica que leería cualquier sector que pasara por debajo del cabezal de lectura si fuera necesario para leer el archivo.
Lanzamiento del código fuente
En 2013, más de 35 años después del debut del Apple II, el Computer History Museum publicó en su sitio web el código fuente original de Apple DOS. Fue donado por el autor original, Paul Laughton.
Contenido relacionado
Memoria del ordenador
Transporte en Colombia
Tenun Pahang Diraja