El sistema de archivos de disco (DFS, por sus siglas en inglés) es un sistema de archivos informático desarrollado por Acorn Computers , inicialmente como un complemento para el sistema Acorn System 2 basado en Eurocard .
En 1981, los Departamentos de Educación de Australia Occidental y Australia Meridional anunciaron licitaciones conjuntas para el suministro de ordenadores personales a sus escuelas. El distribuidor australiano de ordenadores Acorn, Barson Computers, convenció a los codirectores generales Hermann Hauser y Chris Curry para que permitieran que el Acorn BBC Microcomputer, de próximo lanzamiento, se ofreciera con almacenamiento en disco como parte del paquete. Aceptaron con la condición de que Barson adaptara el Acorn DFS del System 2 sin la ayuda de Acorn, ya que no disponían de recursos. Esto requirió algunos cambios menores de hardware y software para que el DFS fuera compatible con el BBC Micro.
Barson ganó las licitaciones para ambos estados, con el DFS instalado, un año antes que el Reino Unido. Fue esta iniciativa temprana la que hizo que el BBC Micro se centrara más en el mercado educativo en Australia, con muy poca penetración en el mercado de ordenadores domésticos hasta la llegada del Acorn Electron .
El DFS se distribuía como una ROM y un chip controlador de disco instalado en la placa base del BBC Micro. El sistema de archivos tenía una funcionalidad y capacidad de almacenamiento extremadamente limitadas, utilizando una estructura de directorios plana. Cada nombre de archivo podía tener hasta siete letras, más una letra para el directorio en el que se almacenaba el archivo. [ 1 ]
El DFS es notable porque, a diferencia de la mayoría de los sistemas de archivos, no hubo un único proveedor ni implementación. El DFS original fue escrito por Acorn, que continuó manteniendo su propio código fuente, pero varios proveedores de unidades de disco escribieron sus propias implementaciones. Las empresas que escribieron sus propias implementaciones de DFS fueron Cumana, Solidisk, Opus y Watford Electronics . La implementación de Watford Electronics es notable por admitir 62 archivos por disco en lugar de los 31 habituales, utilizando un formato de disco no estándar. Además, la implementación de Solidisk introdujo catálogos "encadenados" propietarios que permitían un número ilimitado de archivos por disco (limitado únicamente por el tamaño del disco). [ 2 ]FORMAT Otras características en las implementaciones de terceros incluían la capacidad de revisar el espacio libre y comandos integrados VERIFY, que se distribuían en un disco de utilidades con el DFS original de Acorn.
Acorn lanzó como sucesora de su serie DFS original la Acorn 1770 DFS, que utilizaba el mismo formato de disco que la versión anterior, pero añadía un conjunto de comandos adicionales y era compatible con el chip controlador de unidad de disquete WD1770 mejorado.
Formato físico
DFS utiliza convencionalmente una cara de un disquete de 5¼" de doble densidad . Los discos se formatean con 40 u 80 pistas, lo que proporciona una capacidad de 100 o 200 KB por cara (diez sectores de 256 bytes por pista, con codificación FM).
La capacidad está limitada por la elección del controlador Intel 8271 en el BBC Micro original, que solo admite la codificación FM , no la codificación MFM , que ya era de uso común en el momento del lanzamiento del BBC Micro. La codificación FM ofrece la mitad de la capacidad de grabación que la MFM para una densidad de disco físico determinada.
La codificación FM y MFM se conoce comúnmente como "densidad simple" y "doble densidad", aunque los discos y las unidades son los mismos, a diferencia de la "alta densidad", que utiliza unidades y discos diferentes.
Los discos de 3½" de doble densidad se pueden formatear y usar con el sistema de archivos DFS 1770 (el DFS basado en Intel 8271 tiene problemas con muchas unidades de 3½"), lo que proporciona la misma capacidad de "densidad simple" con codificación FM, pero esto no era una práctica estándar originalmente. Los discos de 3½" normalmente se formateaban como MFM de "doble densidad" utilizando el sistema de archivos de disco avanzado posterior , ya que este está presente en todas las máquinas Acorn suministradas con unidades de 3½". A partir de 2009, las unidades de 3½" se utilizan con más frecuencia con los BBC Micro que en el pasado, incluido su uso con DFS, debido a su mayor disponibilidad y al intercambio de datos más sencillo con ordenadores más recientes.
DFS no admite discos de alta densidad de 5¼" y 3½".
Funcionamiento por una o dos caras
El DFS no admite directamente discos de doble cara; en su lugar, los dos cabezales de una unidad de doble cara se tratan como dos unidades lógicas independientes. El DFS admite hasta cuatro volúmenes, numerados del 0 al 3. La unidad 0 es la predeterminada, y la unidad 1 representa una segunda unidad conectada al cable. La unidad 2 se refiere a la cara posterior de la unidad 0, y la unidad 3 a la cara posterior de la unidad 1. No admite más de dos unidades físicas.
Debido a la gran cantidad de unidades de disco de una sola cara instaladas, el software comercial normalmente se distribuía en discos de una sola cara, o como " discos reversibles " que se volteaban manualmente para acceder al otro lado.
Compatibilidad con 40 y 80 pistas
Los discos se pueden formatear con 40 u 80 pistas mediante los comandos *FORM40correspondientes *FORM80, y las unidades pueden ser de 40 u 80 pistas. Este es el problema de compatibilidad más común para los usuarios de DFS: los discos de 40 pistas eran la norma para la distribución comercial de software, debido a la gran cantidad de unidades instaladas de 40 pistas, pero las unidades de 80 pistas se popularizaron a medida que bajaron los precios, lo que permitió a los usuarios almacenar más datos. Una unidad de 80 pistas no leerá automáticamente discos de 40 pistas.
La capacidad del disco se almacena como un recuento de sectores en el catálogo de la pista cero. La pista cero se encuentra en el mismo lugar tanto en discos de 40 como de 80 pistas, lo que permite que un sistema de archivos de disco ajuste los pasos del motor en consecuencia. Sin embargo, el Acorn DFS basado en Intel 8271 no lo hace, por lo que la capacidad de doble formato se abordó de varias maneras:
- simplemente conectando una unidad de 40 pistas y otra de 80 pistas al BBC Micro, aunque esto resultaba costoso para el usuario doméstico;
- Algunos distribuidores de unidades de disco, en particular UFD (User Friendly Devices) y Akhter Computer Group, ofrecían conjuntos de unidades equipados con interruptores para seleccionar el funcionamiento a 40 u 80 pistas;
- Revistas como The Micro User ofrecían kits para construir placas de circuito que podían conectarse al cable de la unidad de disco, opcionalmente "doble paso" a las unidades conectadas; [ 3 ]
- Micro User también publicó un artículo [ 4 ] sobre la creación de discos de doble formato, con datos equivalentes a 21 pistas almacenados en ambos formatos para que cualquiera de los dos tipos de unidad pudiera acceder al contenido; sin embargo, estos tenían capacidad limitada y una vez creados eran de solo lectura;
- La revista Acorn User distribuyó discos de 40 pistas con un pequeño programa de utilidad en la pista cero, para que los propietarios de unidades de 80 pistas pudieran reformatearlas en discos de 80 pistas con el contenido original en las primeras 40 pistas; o
- El usuario podía actualizar a un controlador WD1770 o similar. El Acorn 1770 DFS y algunos sistemas de controladores de terceros ofrecían capacidad de doble formato mediante software, reprogramando el controlador durante la búsqueda de pistas; además, los sistemas de terceros ofrecían formatos MFM (denominados de "doble densidad") propietarios para una mayor capacidad de disco.
Si no se utiliza la configuración correcta, se producirían errores del DFS, como por ejemplo Disk fault 18 at 01/00[ 5 ] , o daños en la unidad de disco al intentar mover los cabezales más allá del extremo físico de la superficie del disco.
Cambiar a 80 pistas no amplió el catálogo en absoluto, lo que provocó que el usuario se quedara sin ranuras para nombres de archivo antes de quedarse sin espacio en el disco. Esta situación generó un Cat fullerror.
Almacenamiento de archivos
nombres de archivo
DFS conserva las mayúsculas y minúsculas, pero no las distingue. La prevalencia de nombres de archivo en mayúsculas se debe probablemente a que el BBC Micro activa la tecla Bloq Mayús por defecto tras un reinicio forzado o suave. El conjunto de caracteres es bastante permisivo y permite todos los caracteres imprimibles de ASCII de 7 bits, incluidos los espacios, pero excluyendo:
- El único carácter comodín
#. - El carácter comodín múltiple
*. - Códigos de control generados por el carácter de escape
|del shell , aunque la secuencia||se puede utilizar para representar un solo|carácter en el nombre del archivo. - El carácter especificador de unidad
:como primer carácter del nombre de una hoja (el nombre del archivo propiamente dicho). Esto provoca unBad driveerrorBad name. Cuando los dos puntos no son ambiguos, por ejemplo enFOO:BAR, entonces se permiten como parte del nombre de la hoja. - El carácter especificador de directorio
.como primer o segundo carácter de un nombre de hoja..no se puede usar como carácter de directorio. Cuando el punto es inequívoco, como enPRG.BAS, entonces se permite como parte del nombre de la hoja y no se trata como un especificador de directorio (mientras queF.MONEYsería un archivoMONEYen el directorioF).
Para garantizar la portabilidad a implementaciones DFS de terceros, es mejor evitar :y .en los nombres de las hojas.
Se permiten las comillas, aunque BBC BASIC requiere que se escapen dos veces:
SAVE """""""A"""pasa la cadena"""A"al DFS, que luego guarda un archivo llamado"A.- Por el contrario,
SAVE "A"""guarda un archivo llamadoA". - Se utiliza la misma técnica para insertar espacios:
SAVE """B A R"""guarda un archivo llamadoB A R.
Un nombre de archivo completo, o "especificación de archivo" (abreviado como "fsp"), contiene dos puntos, el número de unidad, un punto, la letra del directorio, otro punto y el nombre. Por ejemplo, un archivo en el directorio predeterminado de la "unidad" 2 llamado BOBtendría una especificación completa de :2.$.BOB. Los especificadores de unidad y directorio son opcionales.
Directorios
En el DFS, los "directorios" son prefijos de un solo carácter en los nombres de archivo (como Fen F.BankLtr) que se utilizan para agrupar archivos. La organización es plana y $se utiliza un directorio predeterminado en lugar de un directorio raíz. Al solicitar un catálogo del disco (con los comandos *CATo *.), los archivos del directorio actual se muestran sin prefijo de directorio en un bloque, y debajo se enumeran todos los demás archivos en un segundo bloque, con sus prefijos de directorio visibles. Por ejemplo, (de Acorn DFS; las implementaciones de DFS de terceros pueden variar ligeramente):
PROGRAMA (12) Unidad 0 Opción 2 (EJECUTAR) Directorio: 0.$ Biblioteca: 0.$ ¡HOLA BOOT! TABLA DE SUMAS VECTORES DE PRUEBA ZOMBI A.HOLA L B.SUMA Carta bancaria F.
Los siete primeros archivos se encuentran en el directorio actual, que está $en la unidad 0. Debajo están todos los archivos en otros directorios, en este caso A, By F. Un Ldespués del nombre del archivo (como con A.HELLO, arriba) indica que el archivo está bloqueado para evitar su modificación o eliminación. La primera línea contiene el título del disco y el número de modificaciones.
El DFS proporciona un espacio de trabajo dividido en directorio y biblioteca. El "directorio" es el directorio de trabajo en el volumen actual, similar al de cualquier otro sistema de línea de comandos. La "biblioteca" es un segundo directorio de trabajo alternativo que funciona de forma similar a PATH y tiene la ventaja de poder ubicarse en cualquier volumen. Las solicitudes para abrir archivos con nombres no calificados se buscarán primero en el directorio de trabajo; si no se encuentran, también se buscarán en la biblioteca. Tanto el directorio como la biblioteca utilizan el mismo directorio por defecto.
Estructura del disco
El catálogo (tabla de archivos) ocupa los dos primeros sectores del disco: uno para los nombres y directorios de cada archivo, y otro sector correspondiente que almacena la ubicación, el tamaño y los metadatos de cada archivo. Se utilizan ocho bytes de cada sector para cada archivo. Con otros ocho bytes de cada sector reservados para el título del disco de 12 bytes y la información del volumen, el número total de archivos en el disco (independientemente del directorio en el que se encuentre cada archivo) está limitado a 31. Para ahorrar espacio, el bit más significativo de la letra de directorio de un archivo se utiliza como indicador de bloqueo (solo lectura).
Tamaño del volumen
Aunque los discos físicos suelen formatearse a 100 KB o 200 KB, DFS admite tamaños de volumen de hasta 256 KB.
El tamaño máximo de archivo DFS permitido es el tamaño del volumen menos ½ KB para el catálogo, ya que los tamaños de archivo se almacenan como una cantidad de 18 bits.
Asignación de archivos
El DFS no admite la fragmentación de datos , lo que significa que los datos de un archivo deben almacenarse en una sola secuencia de sectores consecutivos, pero el espacio libre es propenso a fragmentarse . Las escrituras de archivos de acceso aleatorio fallan cuando el final del archivo llega al principio del siguiente, incluso si puede haber sectores libres en otras partes del disco. En tales casos, el DFS aborta con un Can't extenderror. SAVETampoco puede dividir un archivo para ajustarlo al espacio disponible, pero como el fallo ocurre en la etapa de asignación de sectores, el error devuelto es Disk full.
El *COMPACTcomando se proporciona para reubicar todos los archivos en el disco en un bloque sólido, colocando todo el espacio libre después en un segundo bloque. Esto permite que el siguiente archivo creado llene el disco, pero solo el último archivo existente puede extenderse sin ser movido. SAVEElimina cualquier archivo existente y copia el bloque de memoria especificado donde haya espacio en el disco. En contraste, el *COMPACTcomando utiliza la memoria del programa como búfer para reubicar los archivos, sobrescribiendo cualquier programa y dato en la memoria.
Metadatos
Al igual que el sistema de archivos de casete, el Acorn DFS admite los metadatos de archivo estándar del BBC Micro: dirección de carga y dirección de ejecución, necesarias porque Acorn MOS (el sistema operativo del BBC Micro) no admite la reubicación de código binario. Un archivo debe cargarse en la dirección que el programador pretendía, ya que su contenido puede hacer referencia a ubicaciones internas mediante direcciones absolutas. También se registra una dirección de ejecución, puesto que el punto de entrada no tiene por qué estar al principio del archivo, ni siquiera dentro del mismo.
Los atributos de archivo se limitan a un solo bit: Bloqueado. Cuando está activado, Laparece un símbolo a la derecha del nombre del archivo en el catálogo y este no puede ser modificado, sobrescrito ni eliminado.
Fechas
Los discos DFS no registran fechas (ya que Acorn MOS, antes de la versión 3, no mantenía un reloj en tiempo real), sino que ofrecen una característica peculiar: un contador de modificaciones. Cada vez que se actualiza el catálogo, el contador se incrementa. Este contador aparece entre paréntesis después del título en la primera línea del catálogo del disco, como 12en la lista del catálogo mostrada anteriormente.
Otras características
El DFS también admite un método para iniciar software de disco basado en una secuencia de teclas. Si se mantiene presionada la tecla Mayús mientras la máquina se reinicia suave o duramente, el DFS comprueba la unidad 0 en busca de un disco que contenga un indicador de arranque positivo. El indicador de arranque puede ser 0 (ignorar), 1 (cargar archivo), 2 (ejecutar archivo de código máquina) o 3 (script "execute"). Si el indicador de arranque es positivo, $.!BOOTse busca un archivo llamado y se carga en la memoria (1), se carga y ejecuta como código máquina (2) o se introduce en el búfer del teclado (3). La opción 3 lee archivos "EXEC", archivos de macros de texto utilizados como scripts de shell primitivos . Estos no son scripts de shell propiamente dichos, sino simplemente una serie de teclas que se deben escribir, como una grabación para reproducir. Por lo tanto, no pueden crear bucles ni bifurcaciones a menos que introduzcan dicho código en el intérprete BASIC. Además de usarse durante un reinicio, se pueden ejecutar en cualquier momento con el *EXECcomando del sistema operativo. Los archivos EXEC son independientes del sistema de archivos.
Alternativas
Existía una variante del DFS llamada DNFS, o Sistema de Archivos de Disco/Red, que contenía el Sistema de Archivos de Red Econet (NFS), el Sistema de Archivos de Disco estándar y el software de soporte del coprocesador Tube en una sola ROM; esta ROM instalaba dos sistemas de archivos en el sistema operativo a la vez.
El diseño inicial del DFS se basó en un controlador de unidad de disco Intel Corporation FDC 8271, el predecesor inmediato del diseño 8272 que se encontraba en la IBM Personal Computer . El controlador 8271 tenía una funcionalidad limitada y estaba obsoleto, y las versiones posteriores del sistema de archivos de varios proveedores, incluidos Solidisk, Acorn y Watford Electronics, se basaron en los controladores de unidad WD1770 y WD1772. El controlador 1770 se convirtió rápidamente en el controlador estándar de la gama Acorn tras la llegada de ADFS.
El sistema de archivos DFS fue reemplazado por el sistema de archivos de disco avanzado (ADFS), que era completamente jerárquico y adecuado para ejecutar discos duros en el BBC Micro. El ADFS era el sistema de archivos predeterminado en el BBC Master , pero es probable que la mayoría de los usuarios hayan vuelto al DFS por motivos de compatibilidad; ADFS no podía leer discos DFS. El ADFS también fue elegido como sistema de archivos estándar para RISC OS .
Referencias
- ↑ "Chriswhy.co.uk" (PDF) .
- ↑ "Utilidades MMB/SSD en Perl" .
- ↑ Cook, Mike (octubre de 1985). "¿Reducir la versión de tu sistema? Sí, puede tener sentido". The Micro User . 3 (8). Stockport, Reino Unido: Database Publications: 125–127 . ISSN 0265-4040 .
- ↑ Nixon, Chris (abril de 1987). "Discos de doble formato para aficionados". The Micro User . 5 (2). Stockport, Reino Unido: Database Publications: 43– 44. ISSN 0265-4040 .
- ↑ Guía del usuario del sistema de archivo de discos Acorn, número 2, julio de 1983, página 84. La palabra "Disk" se escribe con "k" en los mensajes de error, pero con "c" en el nombre del sistema de archivo.
Enlaces externos
- Estructura del sistema de archivos DFS de Acorn, Watford y Duggan
- Especificación Watford DFS (Acorn DFS extendido) : incluye la especificación original de Acorn DFS.
- Manual de Acorn DFS (formato RTF)
- Sistemas de archivos de disco
- Computadoras Acorn