Amigos
| amigos | ||
|---|---|---|
| Parte da família de sistemas operacionais | ||
| Informações gerais | ||
| desenvolvedor | Comodoro Internacional | |
| Licença | licença privada | |
| Informação técnica | ||
| Programado em | ||
AmigaDOS é o sistema operacional de disco para AmigaOS , que inclui sistemas de arquivos, manipulação de arquivos e diretórios, interface de linha de comando e redirecionamento de arquivos.
No AmigaOS 1.x, o AmigaDOS é baseado em um port do TRIPOS da MetaComCo, escrito em BCPL . BCPL não usa ponteiros nativos , então a funcionalidade mais avançada do sistema operacional era difícil de usar e propensa a erros. The Third Party AmigaDOS Resource Project [ 1 ] (ARP, anteriormente conhecido como AmigaDOS Replacement Project ), [ 2 ] um projeto iniciado pelo desenvolvedor do Amiga Charlie Heath, substituiu muitos dos utilitários BCPL por equivalentes menores e mais sofisticados escritos em C e assembler , e forneceu uma biblioteca wrapper,arp.library. Isso eliminou problemas de interface em aplicativos realizando automaticamente conversões de ponteiros nativos (como aqueles usados por C ou pelo assembler) para equivalentes BCPL e vice-versa para todas as funções do AmigaDOS.
A partir do AmigaOS 2.x, o AmigaDOS foi reescrito em C , preservando a compatibilidade com 1.x sempre que possível. Começando com o AmigaOS 4, o AmigaDOS abandonou seu legado com o BCPL. A partir do AmigaOS 4.1, o AmigaDOS foi estendido com suporte para acesso a arquivos de 64 bits.
Consola
O console Amiga é um dispositivo virtual Amiga padrão, geralmente atribuído a CON: e controlado por console.handler . Ele foi desenvolvido a partir de uma interface primitiva no AmigaOS 1.1, e estabilizado com as versões 1.2 e 1.3, quando ficou conhecido como AmigaShell e seu manipulador original foi substituído por newconsole.handler ( NEWCON:) .
O console possui vários recursos que foram considerados de ponta quando foi criado em 1985, como Command Template Help, redirecionamento para null (" NIL: ") e o terminal colorido ANSI . O novo driver de console, que foi implementado na versão 1.2, permite muitos outros recursos, como histórico de comandos, pipes e criação automática de arquivos quando a saída é redirecionada. Quando as pilhas TCP/IP foram lançadas como AmiTCP no início da década de 1990, o console também podia receber redirecionamento de drivers de dispositivo Amiga habilitados para Internet (por exemplo, TCP:, Copy File To TCP: Site/Port ).
Ao contrário de outros sistemas originalmente lançados em meados da década de 1980, o AmigaDOS não implementa um conjunto de caracteres proprietário; os desenvolvedores optaram por usar o padrão ANSI – ISO ISO -8859-1 (Latin 1) , que inclui o conjunto de caracteres ASCII . Como nos sistemas Unix , o console Amiga só aceita a nova linha (" LF " ) como caractere de fim de linha (" EOL "). O console Amiga suporta caracteres acentuados, bem como caracteres criados por combinações de "tecla morta" no teclado.
Sintaxe do comando AmigaDOS
Este é um exemplo da sintaxe de comando típica do AmigaDOS:
Endereço DF0 :- Sem entrar na árvore de diretórios, isso exibe o conteúdo de um diretório em um disquete e também lista os subdiretórios.
Dir SYS: TODOS- O argumento "ALL" faz com que o comando exiba todo o conteúdo de um volume ou dispositivo, entrando e expandindo todas as árvores de diretórios. "SYS:" é um nome padrão atribuído ao dispositivo de inicialização, independentemente de seu nome físico. [ 3 ]
Comando de redirecionamento
O AmigaDOS pode redirecionar a saída de um comando para arquivos, pipes, uma impressora, o dispositivo nulo e outros dispositivos Amiga.
Dir > FALAR: TODOS
- Redireciona a saída do comando "dir" para o controlador de síntese de voz. O caractere de dois pontos ":" indica que SPEAK: aponta para um dispositivo AmigaDOS. Embora um uso típico de um dispositivo seja para sistemas de arquivos, nomes de dispositivos de finalidade especial como esse são comumente usados no sistema.
Modelos de comando
Espera-se que os comandos do AmigaDOS forneçam um "modelo" padrão que descreva os argumentos que eles podem aceitar. Isso pode ser usado como uma função básica de "ajuda" para comandos, embora drivers e shells de console de substituição de terceiros, como Bash ou Zshell (portado do Unix ), ou KingCON geralmente forneçam ajuda mais detalhada para comandos.
A solicitação do modelo para o comando " Copy " fornece a seguinte saída:
Copiar ? DE, PARA/A, TODOS/S, QUIET/S- Esta string significa que o usuário deve usar este comando junto com os argumentos FROM e TO , onde o último é obrigatório (/A). As palavras-chave de argumento ALL e QUIET são opções (/S) e alteram os resultados do comando Copy ( ALL faz com que todos os arquivos em um diretório sejam copiados, enquanto QUIET fará com que o comando não produza resultados na saída padrão ).
Ao ler este modelo, um usuário pode saber que a seguinte sintaxe é aceitável para o comando:
Copiar DF0:Nome do arquivo PARA DH0:Diretório/Nome do arquivo
Conclusão do comando e pausa na saída do console
Um usuário pode encerrar um programa invocando a combinação de Ctrl + C ou Ctrl + D Pressionar espaço ou qualquer caractere de impressão no teclado suspende a saída do console. A saída pode ser retomada pressionando a tecla backspace (para remover todas as entradas) ou pressionando ↵ Enter (o que fará com que a entrada seja processada como um comando assim que o comando atual parar de ser executado).
Caracteres curinga
Como outros sistemas operacionais, o AmigaDOS também fornece caracteres curinga que substituem qualquer caractere ou sequência de caracteres aleatórios em uma string. Aqui está um exemplo de curingas nos comandos do AmigaDOS:
Dir #?.info- Pesquise no diretório atual por quaisquer arquivos que contenham ".info" no final como um sufixo e mostre apenas esses arquivos na saída.
A análise disso é a seguinte. O curinga "?" indica "qualquer caractere". Prefixado com um "#" indica "qualquer número de repetições". Isso pode ser visto como análogo à expressão regular ".*".
Scripts
O AmigaDOS também tem o recurso para lidar com programação em lote , que ele chama de programação de "script", e possui vários comandos como Echo , If , Then , EndIf , Val e Skip para lidar com programação de script estruturado. Os scripts são arquivos baseados em texto e podem ser criados com o programa editor de texto interno do AmigaDOS chamado Ed (não relacionado ao Unix Ed ), ou com qualquer outro editor de texto de terceiros. Para invocar um programa de script, o AmigaDOS usa o comando Execute : para executar o script chamado "myscript".
Esse método de execução de scripts mantém a janela do console ocupada até que o script termine seu trabalho agendado. Os usuários não podem interagir com a janela do console até que o script seja concluído ou interrompido.
Enquanto:
Copiar ? DE, PARA/A, TODOS/S, QUIET/S- Esta string significa que o usuário deve usar este comando junto com os argumentos FROM e TO , onde o último é obrigatório (/A). As palavras-chave do argumento ALL e QUIET são opções (/S) e alteram os resultados do comando Copiar ( ALL faz com que todos os arquivos em um diretório sejam copiados, enquanto QUIET fará com que o comando não produza resultados).
Bits de proteção
Bits de proteção são marcas que arquivos, links e diretórios possuem no sistema de arquivos. Para alterá-los, você pode usar o comando Proteger ou a entrada do menu Ícones no Workbench nos arquivos selecionados. AmigaDOS suporta o seguinte conjunto de bits de proteção (abreviado como HSPARWED):
H=Manter (Comandos de reentrada com os bits P definidos se tornarão residentes automaticamente na primeira execução. Requer os bits E, P e R definidos para funcionar. Não significa "Ocultar". Veja abaixo.)S= Script (arquivo em lote. Requer os bits E e R configurados para funcionar. ) Se este bit de proteção estiver ativado, o AmigaDOS poderá reconhecer e executar automaticamente um script simplesmente invocando seu nome. Sem o bit S, os scripts ainda podem ser iniciados com o comando Executar .P= Pure (indica comandos reentrantes que podem se tornar residentes na RAM e não precisam mais ser carregados de unidades flash, discos rígidos ou qualquer outro dispositivo de mídia a qualquer momento). Requer os bits E e R configurados para funcionar. )A= Arquivo (bit arquivado, usado por vários programas de backup para indicar que foi feito backup de um arquivo)R= Ler (Permissão para ler o arquivo, link ou conteúdo do diretório)W= Write (Permissão para gravar o arquivo, link ou dentro de um diretório)E=Executar (Permissão para executar o arquivo ou entrar no diretório. Todos os comandos precisam deste conjunto de bits ou não serão executados. Requer o conjunto de bits R para execução.)D=Excluir (Permissão para excluir o arquivo, link ou diretório)
O bit Htem sido muitas vezes mal interpretado para significar "Ocultar". No Smart File System (SFS), os arquivos e diretórios com o conjunto de bits H ficam ocultos do sistema. Os arquivos ocultos ainda estão acessíveis, mas não aparecem em nenhuma lista de diretórios.
Demonstração do bit Hem ação:
Amiga Prompt > qual lista Bancada de trabalho: C/List Amiga Prompt > list workbench:c/list Diretório "workbench:c" na quinta-feira 30-out-08 list 6464 --p-rwed 25-Fev-02 22:30:00 1 arquivo - 14 blocos usados Amiga Prompt > qual lista Bancada de trabalho: C/List AmigaPrompt > protect workbench:c/list +h Amiga Prompt > qual lista Bancada de trabalho: C/List Amiga Prompt > list workbench:c/list Diretório "workbench:c" na quinta-feira 30-out-08 list 6464 hp-rwed 25-Fev-02 22:30:00 1 arquivo - 14 blocos usados Amiga Prompt > qual lista lista RES
- Observe como o comando list se torna residente após a execução quando o bit é definido
H.
Variáveis locais e globais
Como qualquer outro DOS, o Amiga lida com variáveis de ambiente que são usadas na programação em lote.
Existem variáveis globais e locais, e elas são referenciadas com um cifrão na frente do nome da variável, por exemplo $myvar . Variáveis globais estão disponíveis em todo o sistema; Variáveis locais são válidas apenas no shell atual. No caso de uma colisão de nomes, as variáveis locais têm precedência sobre as variáveis globais. As variáveis globais podem ser definidas com o comando SetEnv , enquanto as variáveis locais podem ser definidas com o comando Set . Existem também os comandos GetEnv e Get que podem ser usados para imprimir variáveis globais e locais, respectivamente.
Os exemplos a seguir demonstram um uso simples:
setenv foo blapp echo $foo blapp definir foo bar echo $foo bar getenv foo blapp getfoo bar digite ENV:foo blapp setenv salvar foo $foo digite ENV:foo bar digite ENVARC:foo bar
- Observe o prompt de salvamento do comando SetEnv e como as variáveis globais estão disponíveis no sistema de arquivos.
As variáveis globais são salvas como arquivos em ENV: e opcionalmente salvas em disco em ENVARC: para sobreviver à reinicialização e ao ciclo de energia. ENV: é por padrão um mapeamento para RAM: Env e ENVARC: é um mapeamento para SYS: Prefs/Env-archive onde SYS: refere-se ao dispositivo de inicialização. Na inicialização, o conteúdo de ENVARC: é copiado para ENV: para acessibilidade.
Ao programar scripts do AmigaDOS, lembre-se de que as variáveis globais abrangem todo o sistema. Todas as variáveis internas ao script serão definidas usando variáveis locais, ou corre-se o risco de conflitos sobre variáveis globais entre scripts. Além disso, as variáveis globais requerem acesso ao sistema de arquivos, o que geralmente as torna mais lentas para acessar do que as variáveis locais.
Como o ENVARC: também é usado para armazenar outras configurações do sistema além das variáveis de string (como configurações do sistema, ícones padrão e muito mais), ele tende a crescer muito com o tempo e copiar tudo para o ENV: localizado no disco RAM fica caro. Isso levou a formas alternativas de configurar o ENV: usando controladores de disco RAM dedicados que apenas copiam arquivos do ENVARC: quando os arquivos são solicitados. Exemplos de tais manipuladores são [ 4 ] e. [ 5 ]
Um exemplo que demonstra o abuso criativo de variáveis globais, assim como Lab e Skip, é a variante AmigaDOS do infame GOTO . [ 6 ]
Diferenciação de maiúsculas e minúsculas
AmigaDOS, em geral, não diferencia maiúsculas de minúsculas . [ 7 ] Indicar um dispositivo como "Dh0:", "DH0:", ou "dh0:" sempre se refere à mesma partição; no entanto, para nomes de arquivos e diretórios, isso depende do sistema de arquivos, e alguns sistemas de arquivos permitem distinção entre maiúsculas e minúsculas como marcação durante a formatação. Um exemplo de tal sistema de arquivos é o Smart File System. Isso é muito conveniente ao lidar com software portado do mundo Un*x , que diferencia maiúsculas de minúsculas, mas causa muita confusão em aplicativos Amiga nativos, que não diferenciam maiúsculas de minúsculas. Portanto, usuários avançados normalmente usarão apenas o sinalizador que diferencia maiúsculas de minúsculas para sistemas de arquivos usados para software de origem Un*x.
Observe também que a conversão de nomes de arquivos, diretórios e volumes é permitida usando métodos comuns; os comandos "rename foo Foo" e "relabel Bar: bAr:" são válidos e fazem exatamente o que se espera, ao contrário, por exemplo, no Linux , onde "mv foo Foo" resulta na mensagem de erro "mv :` foo 'e `Foo 'é o mesmo arquivo" em sistemas de arquivos que não diferenciam maiúsculas de minúsculas como VFAT .
Convenções de nomenclatura de volume
Partições e unidades físicas são frequentemente chamadas de DF0: (Disquete 0), DH0: (Disco rígido 0), etc. No entanto, ao contrário de muitos sistemas operacionais, fora dos dispositivos de hardware físico integrados como DF0 : ou HD0: os nomes de discos, volumes e partições individuais são totalmente arbitrários: por exemplo, uma partição de disco rígido pode ser chamada Work ou System , ou Qualquer outra coisa no momento de sua criação. Os nomes de volume podem ser usados no lugar dos nomes de dispositivo correspondentes, portanto, uma partição de disco no dispositivo DH0: chamada Workbench pode ser acessada com o nome DH0: ou Workbench:. Os usuários devem informar ao sistema que " Workbench " é o volume " Workbench: " digitando sempre os dois pontos ":" ao inserir informações em um formulário do solicitante ou no AmigaShell.
Se um nome de volume acessado não puder ser encontrado, o sistema operacional solicitará ao usuário que insira o disco com o nome de volume fornecido ou permitirá que o usuário cancele a operação.
Além disso, nomes de dispositivos lógicos podem ser definidos com o comando "assign" para qualquer diretório ou dispositivo; os programas geralmente mapeiam um nome de volume virtual para seu diretório de instalação (por exemplo, um processador de texto fictício chamado Writer pode mapear Writer: para DH0: Productivity/Writer ). Isso permite a fácil realocação de programas instalados. O nome padrão SYS: é usado para se referir ao volume a partir do qual o sistema foi inicializado. Outros nomes padrão são fornecidos para se referir a locais importantes no sistema. ex . S: para scripts de inicialização, C: para comandos do AmigaDOS, FONTS: para fontes instaladas, etc.
O mapeamento de rótulo de volume também pode ser definido em vários diretórios, que serão tratados como uma união de seu conteúdo. Por exemplo, FONTS: pode ser atribuído a SYS:Fonts , depois estendido para incluir, por exemplo, Work:UserFonts usando a opção add do comando assign do AmigaDos . O sistema permitiria então o uso de fontes instaladas em qualquer diretório. Lista de fontes : mostraria os arquivos de ambos os locais.
Convenções de nomenclatura e comportamento típico de dispositivos virtuais.
O dispositivo físico DF0: compartilha a mesma mecânica de unidade de disquete com PC0:, que é o dispositivo virtual CrossDOS capaz de ler disquetes formatados em PC. Quando qualquer disquete formatado para PC é inserido na unidade de disquete, o ícone de disquete DF0: Amiga muda para indicar que o disquete é desconhecido para o dispositivo Amiga normal e quatro pontos de interrogação ???? como o nome de volume padrão "desconhecido", enquanto o ícone PC0: aparecerá e exibirá o nome do disco formatado para PC. Qualquer troca de disco com discos formatados para Amiga reverterá esse comportamento.
Sistemas de arquivos
AmigaDOS suporta vários sistemas de arquivos e variantes. O primeiro sistema de arquivos era simplesmente chamado de Amiga FileSystem e era principalmente adequado para disquetes, porque não suportava inicialização automática a partir de discos rígidos (no disquete, a inicialização era feita usando o código do bloco de inicialização). Ele logo foi substituído pelo FastFileSystem (FFS) e, portanto, o sistema de arquivos original era conhecido pelo nome "Old" FileSystem (OFS). O FFS era mais eficiente em termos de espaço e um pouco mais rápido que o OFS, daí o nome.
Com o AmigaOS 2.x, o FFS tornou-se uma parte oficial do sistema operacional e logo foi expandido para reconhecer partições em cache, partições internacionais permitindo caracteres acentuados em nomes de arquivos e partições e, finalmente (com MorphOS e AmigaOS 4) nomes. até 108 caracteres. (a partir de 31).
Tanto o AmigaOS 4.xe quanto o MorphOS introduziram uma nova versão do FFS chamada FastFileSystem 2. O FFS2 incorporou todos os recursos do FFS original, incluindo, segundo seu autor, "algumas pequenas alterações". A fim de preservar a compatibilidade com versões anteriores, não houve grandes mudanças estruturais. (No entanto, o FF2 no AmigaOS 4.1 difere porque você pode estender seus recursos e capacidades com a ajuda de plugins .) Assim como no FFS2, a versão AmigaOS 4 e MorphOS do Smart FileSystem é um fork do SFS original e não é 100% compatível com ele.
Outros sistemas de arquivos como FAT12 , FAT16 , Windows FAT32 ou Linux ext2 estão disponíveis através de bibliotecas de sistema facilmente instaláveis (arrastar e soltar) ou módulos de terceiros como FAT95 [ 8 ] (recursos de suporte de leitura/gravação), que podem ser encontrados no Software Aminet Repositório. O MorphOS 2 possui suporte embutido para sistemas de arquivos FAT.
O AmigaOS 4.1 adotou um novo sistema de arquivos chamado JXFS capaz de suportar partições de até um terabyte de tamanho.
Sistemas de arquivos de terceiros alternativos incluem o Professional FileSystem, que é um sistema de arquivos orientado a metadados de estrutura simples que permite alta consistência interna, é capaz de ser desfragmentado em tempo real e não precisa ser desmontado antes da remontagem. e o Intelligent FileSystem que é um sistema de arquivos de journaling que realiza atividades diárias durante a inatividade do sistema e foi escolhido pelo MorphOS como seu sistema de arquivos padrão.
Variantes oficiais dos sistemas de arquivos Amiga.
Sistema de arquivos antigo / sistema de arquivos rápido
- SFO (DOS0)
- FFS(DOS1)
- OFS Internacional (DOS2)
- FFS Internacional (DOS3)
- Cache de diretório OFS (DOS4)
- Cache de Diretório FFS (DOS5)
Fast File System 2 (AmigaOS4.x / MorphOS)
- Nomes de arquivos longos OFS (DOS6)
- Nomes de arquivos longos FFS (DOS7)
Tanto o DOS6 quanto o DOS7 apresentam nomes de arquivos internacionais que aparecem no DOS2 e DO3, mas não no Directory Caching , que foi abandonado devido a bugs na implementação original. DOS4 e DOS5 não são recomendados para uso por este motivo.
Todas as novas versões são compatíveis com versões anteriores, mas não necessariamente compatíveis com versões anteriores. Um disco formatado em DOS7 não pode ser lido no Amiga FFS original e um disco DOS3 não pode ser lido em um Amiga KS1.3. No entanto, qualquer disco formatado com DOS0 usando FFS ou FFS2 pode ser lido por qualquer versão do sistema operacional Amiga. Por esta razão, o DOS0 costumava ser o formato de escolha para desenvolvedores de software que distribuíam em disquetes, exceto ao usar um sistema de arquivos personalizado e bloco de inicialização, uma prática comum em jogos Amiga. Onde o software precisava do AmigaOS 2 de qualquer maneira, o DOS3 era geralmente usado.
Plugins Fast File System 2
Com o "AmigaOS 4.0 July 2007 Update" em 2007, os dois primeiros plugins para FFS2 foram lançados:
- fs_plugin_cache - Aumenta o desempenho do FFS2 introduzindo um novo método de armazenamento de dados em buffer.
- fs_plugin_encrypt : Plugin de criptografia de dados para partições usando o algoritmo Blowfish .
Extensões de nome de arquivo
O AmigaDOS tem apenas uma extensão de nome de arquivo obrigatória: ".info", que deve ser anexada ao nome de arquivo de cada ícone. Se existir um arquivo chamado myprog , seu arquivo de ícone deve ser nomeado myprog.info . Além dos dados de imagem, o arquivo de ícone também registra metadados do programa, como opções e palavras-chave, sua própria posição na área de trabalho (o AmigaOS pode "capturar" ícones em locais definidos pelo usuário) e outras informações sobre o arquivo. As informações de tamanho e posição da janela do diretório são armazenadas no arquivo ".info" associado ao diretório, e as informações do ícone do disco são armazenadas em "Disk.info" na raiz do volume.
Com exceção dos ícones, o sistema Amiga não identifica os tipos de arquivo com extensões, mas examina o ícone associado a um arquivo ou o cabeçalho binário do arquivo para determinar o tipo de arquivo.
Referências
- ^ "Cópias arquivadas" . Arquivado a partir do original em 2007-03-11 . Recuperado em 18 de julho de 2006 .
- ↑ [1] Uso incorreto de template de link quebrado ( link quebrado disponível no Internet Archive ; veja histórico , primeira e última versão ).
- ↑ Commodore-Amiga, Inc. (1986). O Manual do AmigaDos . Livros Bantam. ISBN 0553342940 . OCLC 13433732 . Recuperado em 6 de maio de 2019 .
- ^ "disk/misc/HappyENV.lha" . Aminet . Recuperado em 15 de julho de 2016 .
- ↑ "util/sys/envhandler.lha" . Aminet . Recuperado em 15 de julho de 2016 .
- ^ "Código por Stephen Morley" . Código de Stephen Morley . Recuperado em 5 de abril de 2016 .
- ↑ Usando C-Kermit: Software de Comunicação . pág. 549. ISBN 978-1-55558-164-0 .
- ^ "disco/misc/fat95.lha" . Aminet . Recuperado em 15 de julho de 2016 .
Notas
- Comodoro Amiga Inc. (1986). Manual do usuário AmigaDOS . BantamComputer .
Links externos
- Tim Rei. «História do Amigo» . tim-king . com . Recuperado em 15 de julho de 2016 .
- Tim Rei. «CV» . Tim Rei . Recuperado em 15 de julho de 2016 .