AmigaDOS es el sistema operativo de disco de AmigaOS , que incluye sistemas de archivos , manipulación de archivos y directorios, la interfaz de línea de comandos y la redirección de archivos .
En AmigaOS 1.x, AmigaDOS se basa en una versión de TRIPOS de MetaComCo , escrita en BCPL . BCPL no utiliza 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 terceros AmigaDOS Resource Project [ 1 ] (ARP, anteriormente AmigaDOS Replacement Project ), [ 2 ] un proyecto iniciado por el desarrollador de Amiga Charlie Heath, reemplazó muchas de las utilidades de BCPL con equivalentes más pequeños y sofisticados escritos en C y ensamblador , y proporcionó una biblioteca de envoltura . arp.libraryEsto 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 de BCPL y viceversa para todas las funciones de AmigaDOS.
A partir de AmigaOS 2.x, AmigaDOS se reescribió en C, manteniendo la compatibilidad con la versión 1.x siempre que fue posible. Con AmigaOS 4, AmigaDOS dejó de usar BCPL. A partir de AmigaOS 4.1, AmigaDOS se amplió con soporte para 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 volvió estable con las versiones 1.2 y 1.3, cuando comenzó a ser conocido como AmigaShell y su controlador original fue reemplazado por newconsole.handler ( NEWCON: ).
La consola tiene varias características que se consideraban modernas cuando se creó en 1985, como la ayuda de plantillas de comandos, la redirección a nulo (" NIL: ") y la terminal de color ANSI . El nuevo controlador de consola, que se implementó en la versión 1.2, permite muchas más características, como el historial de comandos , las tuberías 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 redirección de controladores de dispositivos Amiga habilitados para Internet (por ejemplo, TCP: , copiar archivo a TCP:Sitio/Puerto ).
A diferencia de otros sistemas lanzados a mediados de la década de 1980, AmigaDOS no implementa un conjunto 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 de Amiga solo acepta el salto de línea (" LF ") como carácter de fin de línea (" EOL "). La consola de Amiga admite caracteres acentuados , así como caracteres creados mediante combinaciones de teclas muertas del teclado.
Sintaxis de los comandos de AmigaDOS
Este es un ejemplo de la sintaxis típica de los comandos de AmigaDOS:
1> Directorio DF0: - Sin necesidad de acceder al árbol de directorios, esta función muestra el contenido de un directorio de un disquete y también enumera los subdirectorios .
1> Directorio SYS: TODOS - El argumento " ALL " hace que el comando muestre todo el contenido de un volumen o dispositivo, entrando y expandiendo todos los árboles de directorios. " SYS: " es un nombre predeterminado que se asigna al dispositivo de arranque, independientemente de su nombre físico. [ 3 ]
Redirección de comandos
AmigaDOS puede redirigir la salida de un comando a archivos, tuberías, una impresora, el dispositivo nulo y otros dispositivos Amiga.
1> Dir > HABLAR: TODOS - Redirige la salida del comando " dir " al controlador de síntesis de voz. El carácter de dos puntos " : " indica que SPEAK: apunta a un dispositivo AmigaDOS. Si bien un uso típico para un dispositivo son los sistemas de archivos , en el sistema se utilizan comúnmente nombres de dispositivos de propósito especial como este.
Plantilla de comando
Se espera que los comandos de AmigaDOS proporcionen una "plantilla" estándar que describa los argumentos que pueden aceptar. Esto puede usarse como una función básica de "ayuda" para los comandos, aunque los manejadores de consola y shells de terceros , como Bash o Zshell (adaptados de Unix ), o KingCON, suelen proporcionar una ayuda más detallada para los comandos integrados.
Al solicitar la plantilla para el comando " Copiar ", se obtiene la siguiente salida:
1> Copiar ? DE, A/A, TODOS/S, SILENCIO/S- Esta cadena indica que el usuario debe usar este comando junto con los argumentos FROM y TO , siendo este último obligatorio ( /A ). Los argumentos ALL y QUIET son modificadores ( /S ) que cambian el resultado del comando Copy ( ALL copia todos los archivos de un directorio, mientras que QUIET no genera ninguna salida).
Al leer esta plantilla, un usuario puede saber que la siguiente sintaxis es aceptable para el comando:
1> Copiar DF0:Nombre de archivo a DH0:Directorio/Nombre de archivo Interrumpir comandos y pausar la salida de la consola
Un usuario puede finalizar un programa mediante la combinación de teclas Ctrl+C o + . Al pulsar o cualquier carácter de impresión del teclado, se suspende la salida de la consola. La salida se puede reanudar pulsando la tecla (para borrar toda la entrada) o pulsando (lo que hará que la entrada se procese como un comando en cuanto finalice la ejecución del comando actual).CtrlDspace← Backspace↵ Enter
Personajes 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. He aquí un ejemplo de caracteres comodín en los comandos de AmigaDOS:
1> Directorio #?.info - Busca en el directorio actual cualquier archivo que contenga la extensión ".info" y muestra solo esos archivos en la salida.
El análisis sintáctico es el siguiente: el comodín "?" indica "cualquier carácter". Anteponerle un "#" indica "cualquier número de repeticiones". Esto puede considerarse análogo a la expresión regular ".*".
caracteres del nombre del archivo
AmigaDOS utiliza '/' como separador de directorios y ':' como referencia a la raíz, por lo que los nombres de archivo se ven así: SYS:subdir/anotherdir/filename.info . :objectname es un objeto en el directorio raíz, una '/' inicial se refiere al directorio padre, por lo que //mary es equivalente a la ruta Unix ../../mary .
Programación de scripts
AmigaDOS también tiene la función de manejar programación por lotes , que llama programación de "scripts", y tiene una serie de comandos como Echo, If, Then, EndIf, Val, y Skippara manejar programación de scripts estructurada. Los scripts son archivos basados en texto y se pueden crear con el programa editor de texto interno de AmigaDOS, llamado Ed (sin relación con Ed de Unix ), o con cualquier otro editor de texto de terceros. Para invocar un programa de script, AmigaDOS usa el comando Execute.
1> Ejecutar mi script Esto ejecuta el script llamado "myscript".
Este método de ejecución de scripts mantiene la ventana de la consola ocupada hasta que el script finaliza su tarea programada. Los usuarios no pueden interactuar con la ventana de la consola hasta que el script termine o hasta que lo interrumpan.
Mientras:
1> Ejecutar mi script El comando AmigaDOS Runejecuta cualquier comando de DOS o cualquier tipo de programa en segundo plano e inmediatamente regresa al indicador de la consola para que se introduzcan más datos.
Piezas 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 Protect o la opción Information del menú Icons en Workbench para los archivos seleccionados. AmigaDOS admite el siguiente conjunto de bits de protección (abreviado como HSPARWED):
- H = Mantener (los comandos reentrantes con el bit P activado se activarán automáticamente en la primera ejecución. Requiere que los bits E, P y R estén activados para funcionar. No significa "Ocultar". Véase más abajo).
- S = Script (Archivo por lotes. Requiere que los bits E y R estén activados para funcionar). Si este bit de protección está activado, AmigaDOS puede reconocer y ejecutar automáticamente un script simplemente invocando su nombre. Sin el bit S, los scripts aún se pueden ejecutar mediante el
Executecomando. - P = Puro (indica comandos reentrantes que pueden hacerse residentes en la RAM y, por lo tanto, ya no necesitan cargarse desde unidades flash , discos duros o cualquier otro dispositivo de almacenamiento. Requiere que los bits E y R estén activados para funcionar).
- A = Archivo (Bit de archivo, utilizado por varios programas de copia de seguridad para indicar que se ha realizado una copia de seguridad de un archivo).
- R = Lectura (Permiso para leer el archivo, enlace o contenido del directorio)
- W = Escritura (Permiso para escribir en el archivo, enlace o dentro de un directorio)
- E = Ejecutar (Permiso para ejecutar el archivo o acceder al directorio. Todos los comandos necesitan que este bit esté activado, de lo contrario no se ejecutarán. Requiere que el bit R esté activado para funcionar).
- D = Eliminar (Permiso para eliminar el archivo, enlace o directorio)
El bit H se ha interpretado erróneamente como "ocultar". En el Sistema de Archivos Inteligentes (SFS), los archivos y directorios con el bit H activado están ocultos al sistema. Si bien es posible acceder a los archivos ocultos, estos no aparecen en las listas de directorios.
Demostración del bit H en acción:
AmigaPrompt> which list Workbench:C/List AmigaPrompt> 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 usados AmigaPrompt> which list Workbench:C/List AmigaPrompt> protect workbench:c/list +h AmigaPrompt> which list Workbench:C/List AmigaPrompt> list workbench:c/list Directorio "workbench:c" el jueves 30-Oct-08 lista 6464 hp-rwed 25-Feb-02 22:30:00 1 archivo - 14 bloques usados AmigaPrompt> which list RES list- Observe cómo el comando de lista se vuelve residente después de su ejecución cuando se activa el bit H.
Variables locales y globales
Al igual que cualquier otro sistema DOS, Amiga maneja las variables de entorno tal como se utilizan en la programación por lotes.
Existen variables globales y locales, y se las identifica 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 la consola actual. En caso de conflicto de nombres, las variables locales tienen prioridad sobre las globales. Las variables globales se pueden configurar con el comando SetEnv , mientras que las locales se configuran con el comando Set . También existen los comandos GetEnv y Get , que permiten imprimir las variables globales y locales.
Los siguientes ejemplos demuestran un uso sencillo:
1> setenv foo blap 1> echo $foo blap 1> set foo bar 1> echo $foo bar 1> getenv foo blap 1> get foo bar 1> type ENV:foo blap 1> setenv save foo $foo 1> type ENV:foo bar 1> type ENVARC:foo bar- Si se establece el
saveindicador del comando, esta variable se guarda de forma permanente y permanece disponible incluso después de que finalice la sesión actual o se reinicie el sistema.SetEnvENVARC:
Las variables globales se almacenan como archivos en ENV: y, opcionalmente, se guardan en disco en ENVARC: para que sobrevivan al reinicio y al ciclo de encendido/apagado . Por defecto , ENV: se asigna a RAM:Env, y ENVARC: se asigna a SYS:Prefs/Env-archive, donde SYS: se refiere al dispositivo de arranque . Al arrancar, el contenido de ENVARC: se copia a ENV: para que sea accesible.
Al programar scripts para AmigaDOS, es importante recordar que las variables globales son de alcance mundial. Todas las variables internas del script deben definirse mediante variables locales, o se corre el riesgo de que se produzcan conflictos entre scripts por las variables globales. Además, las variables globales requieren acceso al sistema de archivos, lo que generalmente ralentiza su acceso en comparación con las variables locales.
Dado que ENVARC: también se utiliza para almacenar otras configuraciones del sistema además de las variables de cadena (como configuraciones del sistema, iconos predeterminados y más), tiende a crecer considerablemente con el tiempo, y copiar todo a ENV: ubicado en el disco RAM se vuelve costoso. Esto ha llevado a la búsqueda de métodos alternativos para configurar ENV: mediante el uso de controladores de disco RAM dedicados que solo copian archivos desde ENVARC: cuando se solicitan. Ejemplos de estos controladores son [ 4 ] y [ 5 ] .
Un ejemplo que demuestra el abuso creativo de las variables globales, así como de Lab y Skip , es la variante de AmigaDOS del infame GOTO . [ 6 ]
Sensibilidad a mayúsculas y minúsculas
AmigaDOS generalmente no distingue entre mayúsculas y minúsculas . [ 7 ] Indicar 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 un indicador al formatear. Un ejemplo de dicho sistema de archivos es Smart File System . Esto es muy conveniente cuando se trabaja con software portado del mundo Un*x , que distingue principalmente entre mayúsculas y minúsculas , pero causa mucha confusión para las aplicaciones nativas de Amiga, que asumen que no distinguen entre mayúsculas y minúsculas. Por lo tanto, los usuarios avanzados normalmente solo usarán el indicador de distinción entre mayúsculas y minúsculas para los sistemas de archivos utilizados para software originario de Un*x.
Se permite el cambio de mayúsculas y minúsculas en nombres de archivos, directorios y volúmenes mediante métodos ordinarios; los comandos "rename foo Foo" y "relabel Bar: bAr:" son válidos y hacen exactamente lo que se espera, a diferencia de, por ejemplo, Linux , donde "mv foo Foo" produce 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 para nombrar volúmenes
Las particiones y las unidades físicas se suelen denominar DF0: (unidad de disquete 0), DH0: (disco duro 0), etc. Sin embargo, a diferencia de muchos sistemas operativos, aparte de los dispositivos de hardware físico integrados 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 Work o System , o cualquier otro nombre en el momento de su creación. Los nombres de volumen pueden usarse en lugar de los nombres de dispositivo correspondientes, por lo que se podría acceder a una partición de disco en el dispositivo DH0: llamada Workbench con el nombre DH0: o Workbench:. Los usuarios deben indicar al sistema que " Workbench " es el volumen " Workbench: " escribiendo siempre los dos puntos " : " cuando introducen información en un formulario de solicitud o en AmigaShell.
Si no se encuentra el nombre del volumen al que se ha accedido, el sistema operativo le pedirá al usuario que inserte el disco con el nombre de volumen especificado o le permitirá cancelar la operación.
Además, se pueden establecer nombres de dispositivos lógicos con el comando "assign" para cualquier directorio o dispositivo; los programas a menudo asignan un nombre de volumen virtual a su directorio de instalación (por ejemplo, un procesador de texto ficticio llamado Writer podría asignar Writer: a DH0:Productivity/Writer ). Esto permite reubicar fácilmente los programas instalados. El nombre predeterminado SYS: se usa para referirse al volumen desde el que se inició el sistema. Se proporcionan otros nombres predeterminados para referirse a ubicaciones importantes del sistema, por ejemplo, S: para scripts de inicio, C: para comandos de AmigaDOS, FONTS: para fuentes instaladas, etc.
También se pueden asignar etiquetas de volumen a varios directorios, que se tratarán como la unión de sus contenidos. Por ejemplo, se podría asignar FONTS: a SYS:Fonts y luego extenderlo para incluir, por ejemplo, Work:UserFonts mediante la opción add del comando assign de AmigaDos . El sistema permitiría entonces el uso de las fuentes instaladas en cualquiera de los dos directorios. Al listar FONTS: se mostrarían 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 que PC0:, que es el dispositivo virtual de CrossDOS capaz de leer disquetes formateados para PC. Cuando se inserta un disquete formateado para PC en la unidad de disquete, el icono de Amiga DF0: cambia para indicar que el disco es desconocido para el dispositivo Amiga normal y muestra cuatro signos de interrogación (????) como nombre de volumen estándar "desconocido", mientras que el icono de PC0: muestra el nombre del disquete formateado para PC. Cualquier cambio de disco con discos formateados para Amiga invierte 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, ya que no admitía el arranque automático desde discos duros (en disquetes, el arranque se realizaba mediante código del bloque de arranque). Pronto fue reemplazado por FastFileSystem (FFS), por lo que el sistema de archivos original se conoció como "Old FileSystem" (OFS). FFS era más eficiente en cuanto al uso del espacio y considerablemente más rápido que OFS, de ahí su 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 permitían caracteres acentuados en los nombres de archivos y particiones, y finalmente (con MorphOS y AmigaOS 4 ) nombres de archivos largos, de hasta 108 caracteres (en lugar de 31).
Tanto AmigaOS 4.x como MorphOS incluían una nueva versión de FFS llamada FastFileSystem 2. FFS2 incorporaba todas las características del FFS original, incluyendo, como lo expresó su autor, "algunos cambios menores". Para preservar la retrocompatibilidad, no se realizaron cambios estructurales importantes. (Sin embargo, FF2 en AmigaOS 4.1 se diferencia en que puede ampliar sus características y capacidades con la ayuda de complementos ). Al igual que con FFS2, la versión de Smart FileSystem para AmigaOS 4 y MorphOS 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 del sistema de fácil instalación ( arrastrar y soltar ) o módulos de terceros como FAT95 [ 8 ] (que admite lectura/escritura), los cuales se pueden encontrar en el repositorio de software de 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.
Entre los sistemas de archivos alternativos de fabricantes externos se incluyen Professional FileSystem , un sistema de archivos con una estructura sencilla basada en metadatos que permite una alta coherencia interna, capaz de desfragmentarse sobre la marcha y que no requiere desmontarse antes de volver a montarse ; y Smart FileSystem , un sistema de archivos con registro de transacciones que realiza actividades registradas durante los periodos de inactividad del sistema y que 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
- OFS (DOS0)
- FFS (DOS1)
- OFS Internacional (DOS2)
- FFS Internacional (DOS3)
- Almacenamiento en caché de directorios OFS (DOS4)
- Almacenamiento en caché de directorios FFS (DOS5)
Sistema de archivos rápido 2 (AmigaOS4.x/MorphOS)
- Nombres de archivo largos de OFS (DOS6)
- Nombres de archivo largos de FFS (DOS7)
Tanto DOS6 como DOS7 incluyen nombres de archivo internacionales, presentes en DOS2 y DOS3, pero no 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 ni DOS5.
Los tipos de DOS son compatibles entre sí, pero no con versiones posteriores . Un disco formateado en DOS7 no se puede leer en un Amiga FFS original, y un disco formateado en 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 solía ser el formato preferido por los desarrolladores de software que distribuían en disquetes, excepto cuando se usaba un sistema de archivos y un bloque de arranque personalizados, una práctica común en los juegos de Amiga. Cuando el software requería AmigaOS 2 de todos modos, generalmente se usaba DOS3.
Complementos de FastFileSystem2
Con la actualización de julio de 2007 de AmigaOS 4.0 , se lanzaron los dos primeros complementos para FFS2:
- fs_plugin_cache : aumenta el rendimiento de FFS2 mediante la introducción de un nuevo método de almacenamiento en búfer de datos.
- fs_plugin_encrypt : complemento de cifrado de datos para particiones que utiliza el algoritmo Blowfish .
extensiones de nombre de archivo
AmigaDOS solo tiene una extensión de archivo obligatoria: ".info", que debe añadirse al nombre de cada icono. Si existe un archivo llamado myprog , 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 posición en el escritorio (AmigaOS puede guardar iconos en ubicaciones definidas 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 al directorio, y la información del icono del disco se almacena en "Disk.info" en la raíz del volumen.
A excepción de los iconos, el sistema Amiga no identifica los tipos de archivo mediante extensiones, sino que examina el icono asociado a un archivo o el encabezado binario del propio archivo para determinar el tipo de archivo.
Véase también
Referencias
- ↑ "El proyecto de recursos de AmigaDOS" . Archivado del original el 11 de marzo de 2007. Consultado el 18 de julio de 2006 .
- ↑ "Índice de /Pub/Amiga/Ancient/Ex-amiga-s/Archivo" .
- ↑ Commodore-Amiga Inc. 1986
- ↑ "disk/misc/HappyENV.lha" . Aminet . Consultado el 15 de julio de 2016 .
- ↑ "util/sys/envhandler.lha" . Aminet . Consultado el 15 de julio de 2016 .
- ↑ "Código de Stephen Morley" . Consultado el 5 de abril de 2016 .
- ↑ Cruz, Frank da; Gianone, Christine (1997). Uso de C-Kermit: Software de comunicación . pág. 549. ISBN 978-1-55558-164-0.
- ↑ "disk/misc/fat95.lha" . Aminet . Consultado el 15 de julio de 2016 .
Lecturas adicionales
Enlaces externos
- Tim King. "Historia de Amiga" . Tim-king.com . Consultado el 15 de julio de 2016 .
- Tim King. "CV" . Tim King . Consultado el 15 de julio de 2016 .
- AmigaOS
- Sistemas operativos de disco
- MorphOS
- Software de 1985