AmigaDOS

Ajustar Compartir Imprimir Citar
Disk operating system of the AmigaOS

AmigaDOS es el sistema operativo de disco de AmigaOS, que incluye sistemas de archivos, manipulación de archivos y directorios, interfaz de línea de comandos y redirección de archivos.

En AmigaOS 1.x, AmigaDOS se basa en un puerto TRIPOS de MetaComCo, escrito en BCPL. BCPL no usa punteros nativos, por lo que la funcionalidad más avanzada del sistema operativo era difícil de usar y propensa a errores. El Proyecto de recursos de AmigaDOS de terceros (ARP, anteriormente el Proyecto de reemplazo de AmigaDOS), un proyecto iniciado por el desarrollador de Amiga Charlie Heath, reemplazó muchas de las utilidades BCPL con otras más pequeñas y más equivalentes sofisticados escritos en C y ensamblador, y proporcionó una biblioteca contenedora, arp.library. Esto eliminó los problemas de interfaz en las aplicaciones al realizar automáticamente conversiones de punteros nativos (como los utilizados por C o ensamblador) a equivalentes BCPL y viceversa para todas las funciones de AmigaDOS.

Desde AmigaOS 2.x en adelante, AmigaDOS se reescribió en C, conservando la compatibilidad con 1.x en la medida de lo posible. Comenzando con AmigaOS 4, AmigaDOS abandonó su legado con BCPL. A partir de AmigaOS 4.1, AmigaDOS se ha ampliado con soporte de acceso a archivos de 64 bits.

Consola

La consola Amiga es un dispositivo virtual Amiga estándar, normalmente asignado a CON: y controlado por console.handler. Fue desarrollado a partir de una interfaz primitiva en AmigaOS 1.1, y se estabilizó con las versiones 1.2 y 1.3, cuando pasó a ser conocido como AmigaShell y su handler original fue reemplazado por newconsole.handler (NEWCON:).

La consola tiene varias funciones que se consideraron actualizadas cuando se creó en 1985, como la ayuda de la plantilla de comando, la redirección a nulo ("NIL:") y Terminal de color ANSI. El nuevo controlador de consola, que se implementó en la versión 1.2, permite muchas más funciones, como el historial de comandos, las canalizaciones y la creación automática de archivos cuando se redirige la salida. Cuando se lanzaron pilas TCP/IP como AmiTCP a principios de la década de 1990, la consola también podía recibir la redirección de los controladores de dispositivos Amiga habilitados para Internet (por ejemplo, TCP:, copiar archivo A TCP:Sitio/Puerto).

A diferencia de otros sistemas lanzados originalmente a mediados de la década de 1980, AmigaDOS no implementa un juego de caracteres propietario; los desarrolladores optaron por utilizar el estándar ANSI-ISO ISO-8859-1 (Latin 1), que incluye el conjunto de caracteres ASCII. Al igual que en los sistemas Unix, la consola Amiga solo acepta saltos de línea ("LF") como carácter de fin de línea ("EOL"). La consola Amiga es compatible con caracteres acentuados, así como con caracteres creados mediante combinaciones de 'teclas muertas' en el teclado

Sintaxis de los comandos de AmigaDOS

Este es un ejemplo de la sintaxis de comandos típica de AmigaDOS:

1> Dir DF0:
Sin entrar en el árbol del directorio, esto muestra el contenido de un directorio de un disquete y lista subdirectorios también.
1> Dir SYS: ALL
El argumento "TODOS" hace que el comando muestre todo el contenido de un volumen o dispositivo, entrando y expandiendo todos los árboles del directorio. "SYS:" es un nombre predeterminado que se asigna al dispositivo de arranque, independientemente de su nombre físico.

Redirección de comandos

AmigaDOS puede redirigir la salida de un comando a archivos, conductos, una impresora, el dispositivo nulo y otros dispositivos Amiga.

1> Dir > SPEAK: ALL
redirige la salida del "dir" comando to the speech syn handler. El personaje del colon ":" indica que Habla: apunta a un dispositivo AmigaDOS. Mientras que un uso típico para un dispositivo es sistemas de archivos, los nombres de dispositivos de uso especial como este se utilizan comúnmente en el sistema.

Plantilla de comando

Se espera que los comandos de AmigaDOS proporcionen una "plantilla" que describe los argumentos que pueden aceptar. Esto se puede utilizar como una "ayuda" básica. característica para los comandos, aunque los controladores y shells de consola de reemplazo de terceros, como Bash o Zshell (portado desde Unix), o KingCON a menudo brindan una ayuda más detallada para los comandos integrados.

Al solicitar la plantilla para el comando "Copiar", se obtiene el siguiente resultado:

1> Copy ?
FROM, TO/A, ALL/S, QUIET/S
Esta cadena significa que el usuario debe utilizar este comando conjuntamente con DESDE y TO argumentaciones, donde ésta es obligatoria (/A). Las palabras clave del argumento TODOS y QUIET son interruptores (/S) y cambiar los resultados del comando Copiado ()TODOS hace que todos los archivos en un directorio sean copiados, mientras QUIET hará que el comando no genere salida).

Al leer esta plantilla, un usuario puede saber que la siguiente sintaxis es aceptable para el comando:

Copy DF0:Filename TO DH0:Directory/Filename

Rompiendo comandos y pausando la salida de la consola

Un usuario puede terminar un programa invocando la combinación de teclas Ctrl+C o Ctrl+D. Presionar espacio o cualquier carácter de impresión en el teclado suspende la salida de la consola. La salida se puede reanudar presionando la tecla ← Retroceso (para borrar toda la entrada) o presionando ↵ Enter (que hará que la entrada se procese como un comando tan pronto como el comando actual deje de ejecutarse).

Caracteres comodín

Al igual que otros sistemas operativos, AmigaDOS también proporciona caracteres comodín que sustituyen a cualquier carácter o secuencia de caracteres aleatorios en una cadena. Aquí hay un ejemplo de caracteres comodín en los comandos de AmigaDOS:

1> Dir #?.info
busca el directorio actual para cualquier archivo que contenga ".info" en su extremo como sufijo, y muestra sólo estos archivos en la salida.

El análisis de esto es el siguiente. El "?" el comodín indica "cualquier carácter". Anteponiendo esto con un "#" indica "cualquier número de repeticiones". Esto se puede ver como análogo a la expresión regular ".*".

Secuencias de comandos

AmigaDOS también tiene la función de gestionar la programación por lotes, a la que llama "script" y tiene varios comandos como Echo, If, Then, EndIf, Val y Omitir para tratar con la programación de secuencias de comandos estructuradas. Los scripts son archivos basados en texto y se pueden crear con el programa editor de texto interno de AmigaDOS, llamado Ed (no relacionado con Ed de Unix), o con cualquier otro editor de texto de terceros.. Para invocar un programa script, AmigaDOS usa el comando Ejecutar.

1> Execute myscript
ejecuta el script llamado "miscript".

Este método de ejecución de secuencias de comandos mantiene ocupada la ventana de la consola hasta que la secuencia de comandos finaliza su trabajo programado. Los usuarios no pueden interactuar con la ventana de la consola hasta que finalice el script o hasta que lo interrumpan.

Mientras:

1> Run Execute myscript
El comando AmigaDOS "Run" ejecuta cualquier comando DOS o cualquier tipo de programa y mantiene la consola libre para mayor entrada.

Brocas de protección

Los bits de protección son indicadores que tienen los archivos, enlaces y directorios en el sistema de archivos. Para cambiarlos, se puede usar el comando Proteger o usar la entrada Información del menú Iconos en Workbench en los archivos seleccionados. AmigaDOS admite el siguiente conjunto de bits de protección (abreviado como HSPARWED):

A menudo se ha malinterpretado el bit H con el significado de 'ocultar'. En Smart File System (SFS), los archivos y directorios con conjunto de bits H están ocultos del sistema. Todavía es posible acceder a archivos ocultos, pero no aparecen en ninguna lista de directorios.

Demostración de H-bit en acción:

AmigaPrompt confianza lista
Workbench:C/List
AmigaPrompt confianza list workbench:c/list
Directorio "workbench:c" el jueves 30-Oct-08
lista 6464 --p-rwed 25-Feb-02 22:30:00
1 archivo - 14 bloques utilizados
AmigaPrompt confianza lista
Workbench:C/List
AmigaPrompt confianza proteger el banco de trabajo:c/list +h
AmigaPrompt confianza lista
Workbench:C/List
AmigaPrompt confianza list workbench:c/list
Directorio "workbench:c" el jueves 30-Oct-08
lista 6464 h-p-rwed 25-Feb-02 22:30:00
1 archivo - 14 bloques utilizados
AmigaPrompt confianza lista
Lista RES
Observe cómo lista comando se convierte en residente después de la ejecución cuando se establece el H-bit.

Variables locales y globales

Como cualquier otro DOS, Amiga maneja las variables de entorno como se usa en la programación por lotes.

Hay variables tanto globales como locales, y se las menciona con un signo de dólar delante del nombre de la variable, por ejemplo, $myvar. Las variables globales están disponibles en todo el sistema; las variables locales solo son válidas en el shell actual. En caso de colisión de nombres, las variables locales tienen prioridad sobre las variables globales. Las variables globales se pueden configurar con el comando SetEnv, mientras que las variables locales se pueden configurar con el comando Set. También existen los comandos GetEnv y Get que se pueden usar para imprimir variables globales y locales.

Los siguientes ejemplos demuestran un uso simple:

1 título setenv foo blapp
1 título eco $foo
blapp1 título set foo bar1 título eco $foo
bar1 título getenv foo
blapp1 título ## Get foo ##
bar1 título Tipo ENV:foo
blapp1 título Setenv ahorra foo $foo
1 título Tipo ENV:foo
bar1 título Tipo ENVARC:foo
bar
Note el Guardar bandera de la SetEnv comando y cómo las variables globales están disponibles en el sistema de archivos


Las variables globales se guardan como archivos en ENV: y, opcionalmente, se guardan en el disco en ENVARC: para sobrevivir al reinicio y al ciclo de encendido. ENV: es por defecto una asignación a RAM:Env, y ENVARC: es una asignación a SYS:Prefs/Env-archive donde SYS: se refiere al dispositivo de arranque. En el arranque, el contenido de ENVARC: se copia en ENV: para accesibilidad.

Al programar scripts de AmigaDOS, se debe tener en cuenta que las variables globales son para todo el sistema. Todas las variables internas del script se establecerán utilizando variables locales, o se corre el riesgo de conflictos sobre variables globales entre scripts. Además, las variables globales requieren acceso al sistema de archivos, lo que normalmente hace que su acceso sea más lento que el de las variables locales.

Dado que ENVARC: también se usa para almacenar otras configuraciones del sistema además de variables de cadena (como configuraciones del sistema, íconos predeterminados y más), tiende a crecer con el tiempo y copiar todo a ENV: ubicado en el disco RAM se vuelve caro. Esto ha llevado a formas alternativas de configurar ENV: mediante el uso de controladores de ramdisk dedicados que solo copian archivos desde ENVARC: cuando se solicitan los archivos. Ejemplos de estos controladores son y.

Un ejemplo que demuestra el abuso creativo de las variables globales, así como Lab y Skip es la variante AmigaDOS del infame GOTO.

Distinción de mayúsculas y minúsculas

AmigaDOS en general no distingue entre mayúsculas y minúsculas. Indicando un dispositivo como "Dh0:", "DH0:" o "dh0:" siempre se refiere a la misma partición; sin embargo, para los nombres de archivos y directorios, esto depende del sistema de archivos, y algunos sistemas de archivos permiten la distinción entre mayúsculas y minúsculas como indicador al formatear. Un ejemplo de un sistema de archivos de este tipo es Smart File System. Esto es muy conveniente cuando se trata de software transferido desde el mundo Un*x en su mayoría sensible a mayúsculas y minúsculas, pero causa mucha confusión para las aplicaciones nativas de Amiga, que asumen la insensibilidad a mayúsculas y minúsculas. Por lo tanto, los usuarios avanzados normalmente solo usarán el indicador de distinción de mayúsculas y minúsculas para los sistemas de archivos utilizados para el software que se origina en Un*x.

Se permite cambiar a mayúsculas y minúsculas los nombres de archivos, directorios y volúmenes utilizando métodos ordinarios; los comandos "renombrar foo Foo" y "reetiquetar barra: bAr:" son válidos y hacen exactamente lo que se espera, en contraste con, por ejemplo, en Linux, donde "mv foo Foo" da como resultado el mensaje de error "mv: `foo' y `Foo' son el mismo archivo" en sistemas de archivos que no distinguen entre mayúsculas y minúsculas como VFAT.

Convenciones de nomenclatura de volúmenes

Las particiones y las unidades físicas suelen denominarse DF0: (unidad de disquete 0), DH0: (disco duro 0), etc. Sin embargo, a diferencia de muchos sistemas operativos, fuera de los dispositivos de hardware físicos incorporados como DF0: o HD0:, los nombres de los discos, volúmenes y particiones individuales son totalmente arbitrarios: por ejemplo, una partición de disco duro podría llamarse Trabajo o Sistema, o cualquier otra cosa en el momento de su creación. Los nombres de los volúmenes se pueden usar en lugar de los nombres de los dispositivos correspondientes, por lo que se puede acceder a una partición de disco en el dispositivo DH0: llamada Workbench con el nombre DH0: o Mesa de trabajo:. Los usuarios deben indicar al sistema que "Workbench" es el volumen "Workbench:" escribiendo siempre los dos puntos ":" cuando ingresan información en un formulario de solicitud o en AmigaShell.

Si no se puede encontrar un nombre de volumen al que se accedió, el sistema operativo le pedirá al usuario que inserte el disco con el nombre de volumen dado o le permitirá cancelar la operación.

Además, los nombres de los dispositivos lógicos se pueden configurar con el botón "asignar" comando a cualquier directorio o dispositivo; los programas a menudo asignaban un nombre de volumen virtual a su directorio de instalación (por ejemplo, un procesador de textos ficticio llamado Writer podría asignar Writer: a DH0:Productivity/Writer). Esto permite una fácil reubicación de los programas instalados. El nombre predeterminado SYS: se utiliza para hacer referencia al volumen desde el que se inició el sistema. Se proporcionan varios otros nombres predeterminados para hacer referencia a ubicaciones importantes del sistema. p.ej. S: para scripts de inicio, C: para comandos de AmigaDOS, FONTS: para fuentes instaladas, etc.

La asignación de etiquetas de volumen también se puede establecer en varios directorios, que se tratarán como una unión de sus contenidos. Por ejemplo, FONTS: podría asignarse a SYS:Fonts y luego extenderse para incluir, por ejemplo, Work:UserFonts usando el opción add del comando assign de AmigaDos. Entonces, el sistema permitiría el uso de fuentes instaladas en cualquiera de los dos directorios. Listar FUENTES: mostraría los archivos de ambas ubicaciones.

Convenciones de nombres y comportamiento típico de los dispositivos virtuales

El dispositivo físico DF0: comparte la misma mecánica de unidad de disquete con PC0:, que es el dispositivo virtual CrossDOS capaz de lectura de disquetes formateados en PC. Cuando cualquier disquete formateado para PC se inserta en la unidad de disquete, entonces el icono de Amiga DF0: cambiará para indicar que el disquete es desconocido para el dispositivo Amiga normal, y mostrar cuatro signos de interrogación ???? como el estándar "desconocido" el nombre del volumen, mientras que el icono PC0: aparecerá revelando el nombre del disco formateado para PC. Cualquier cambio de disco con discos formateados en Amiga invertirá este comportamiento.

Sistemas de archivos

AmigaDOS admite varios sistemas de archivos y variantes. El primer sistema de archivos se llamaba simplemente Amiga FileSystem y era adecuado principalmente para disquetes, porque no admitía el arranque automático desde discos duros (en disquetes, el arranque se realizaba utilizando el código del bloque de arranque). Pronto fue reemplazado por FastFileSystem (FFS) y, por lo tanto, el sistema de archivos original se conocía con el nombre de "Antiguo" Sistema de archivos (OFS). FFS era más eficiente en el espacio y bastante más rápido que OFS, de ahí el nombre.

Con AmigaOS 2.x, FFS se convirtió en una parte oficial del sistema operativo y pronto se amplió para reconocer particiones en caché, particiones internacionales que permiten caracteres acentuados en nombres de archivos y particiones y, finalmente (con MorphOS y AmigaOS 4) nombres de archivo largos, hasta a 108 caracteres (de 31).

Tanto AmigaOS 4.x como MorphOS incluyeron una nueva versión de FFS llamada FastFileSystem 2. FFS2 incorporó todas las funciones del FFS original, incluidos, como dijo su autor, "algunos cambios menores". Para preservar la compatibilidad con versiones anteriores, no hubo cambios estructurales importantes. (Sin embargo, FF2 en AmigaOS 4.1 difiere en que puede ampliar sus funciones y capacidades con la ayuda de complementos). Al igual que con FFS2, la versión AmigaOS 4 y MorphOS de Smart FileSystem es una bifurcación del SFS original y no es 100% compatible con él.

Otros sistemas de archivos como FAT12, FAT16, FAT32 de Windows o ext2 de Linux están disponibles a través de bibliotecas de sistema fácilmente instalables (arrastrar y soltar) o módulos de terceros como FAT95 (con soporte de lectura/escritura), que se pueden encontrar en Repositorio de software Aminet. MorphOS 2 tiene soporte integrado para sistemas de archivos FAT.

AmigaOS 4.1 adoptó un nuevo sistema de archivos llamado JXFS capaz de admitir particiones de más de un terabyte de tamaño.

Los sistemas de archivos alternativos de otros fabricantes incluyen Professional FileSystem, que es un sistema de archivos con una estructura sencilla, basada en metadatos, que permite una alta coherencia interna, es capaz de desfragmentarse sobre la marcha y no es necesario desmontarlo antes de montarlo. de nuevo; y Smart FileSystem, que es un sistema de archivos de diario que realiza actividades registradas durante las inactividades del sistema, y ha sido elegido por MorphOS como su sistema de archivos estándar.

Variantes oficiales de los sistemas de archivos de Amiga

Sistema de archivos antiguo/Sistema de archivos rápido

Sistema de archivos rápido 2 (AmigaOS4.x/MorphOS)

Tanto DOS6 como DOS7 cuentan con nombres de archivo internacionales que aparecen en DOS2 y DO3, pero no en el almacenamiento en caché de directorios, que se abandonó debido a errores en la implementación original. Por este motivo, no se recomienda el uso de DOS4 y DOS5.

Dostypes son compatibles con versiones anteriores entre sí, pero no con versiones anteriores. Un disco formateado en DOS7 no se puede leer en Amiga FFS original, y un disco DOS3 no se puede leer en un Amiga KS1.3. Sin embargo, cualquier disco formateado con DOS0 usando FFS o FFS2 puede ser leído por cualquier versión del sistema operativo Amiga. Por esta razón, DOS0 tendía a ser el formato elegido por los desarrolladores de software que distribuyen en disquete, excepto cuando se usaba un sistema de archivos personalizado y un bloque de arranque, una práctica común en los juegos de Amiga. Donde el software necesitaba AmigaOS 2 de todos modos, generalmente se usaba DOS3.

Complementos FastFileSystem2

Con la actualización de julio de 2007 de AmigaOS 4.0 en 2007, se lanzaron los dos primeros complementos para FFS2:

Extensiones de nombre de archivo

AmigaDOS tiene una única extensión de nombre de archivo obligatoria: ".info", que debe agregarse al nombre de archivo de cada ícono. Si existe un archivo llamado myprog, entonces su archivo de icono debe llamarse myprog.info. Además de los datos de la imagen, el archivo de icono también registra metadatos del programa, como opciones y palabras clave, su propia posición en el escritorio (AmigaOS puede "instantánea" iconos en lugares definidos por el usuario) y otra información sobre el archivo. La información sobre el tamaño y la posición de la ventana del directorio se almacena en el archivo ".info" asociado con el directorio, y la información del icono del disco se almacena en "Disk.info" en la raíz del volumen.

Con la excepción de los íconos, el sistema Amiga no identifica los tipos de archivos usando extensiones, sino que examinará el ícono asociado con un archivo o el encabezado binario del archivo mismo para determinar el tipo de archivo.