19 de dez. de 2011

Estrutura do AmigaOS

Oi Pessoal!!

Este texto que explica de maneira geral a estrutura do AmigaOS, foi feito pelo colega Mugo (Marcelo Pires) da lista AmigaBR do Yahoo Grupos. Copiei na íntegra, porque realmente não tem desperdício, o colega escreve bem pra caramba!!!
Notem que o texto estava sendo dirigido a uma pessoa, por isso tem partes que falam diretamente para ela. 
Vou dar uma incrementadinha com algumas imagens. E vou fazer um vídeo mostrando o que ele relata em cada parágrafo.
==> Inicio do Texto <===
A estrutura do AmigaOS é bem simples, mas realmente bem diferente do Windows.

Pra começar o AmigaOS é composto de duas partes principais: o Kickstart e o Workbench. Até a versão 3.1 do AmigaOS, o Kickstart fica em um chip instalado dentro do Amiga, a ROM. Se o seu A600 está original, então você tem o Kickstart 2.05, e com ele pode rodar até o Workbench 2.1. O Kickstart do A600 pode ser atualizado (o mesmo vale para os outros modelos de Amiga), mas há restrições de memória principalmente, então no seu caso de A600 "pelado", não vale muito a pena a menos que crie uma ROM customizada.

KickStart 2.05 de um A600 (um só chip eprom)
KickStart 3.0 de um A1200 (Conjunto de 2 chips eprom)
O Workbench é a parte do AmigaOS que fica em disco, seja em Floppy ou HD, e engloba além da interface gráfica propriamente dita o restante do sistema.
O sistema fica distribuído pelas pastas que você já citou, mas todas têm um propósito bem definido, no intuito de organizar a coisa.

Clique na imagem para aumentar.
A pasta C é onde ficam os comandos. No AmigaOS não há um interpretador de comandos como no caso do MS-DOS, que tem o "COMMAND.COM", por exemplo. No AmigaOS os comandos são na verdade pequenos utilitários no formato de executáveis. Então se você não tiver o executável do "DIR" por exemplo, no disco de onde deu boot, não vai poder listar os arquivos de um diretório, e assim por diante.

Pasta C com os programas utilitários do sistema.
A pasta S é dedicada a "Scripts", e é onde ficam alguns arquivos de configuração, e entre eles estão dois importantes: Startup-sequence e User-startup. No Startup-sequence, como o nome sugere, está o script de boot. Depois de ligar ou "resetar" o Amiga, esse é o arquivo que a ROM procura logo depois de testar o hardware e instalar alguns recursos necessários para o funcionamento do sistema, como o EXEC. E é por esse script que os diversos "módulos" do sistema vão sendo carregados. Em diversas ocasiões é necessário modificar esse script para incluir chamadas a patches ou recursos extras que são adicionados e devem ser executados durante o boot, e isso pode ser feito com qualquer editor de textos. Outras vezes também é necessário desabilitar chamadas feitas por esse script por motivos de conflitos entre os patches. Isso é muito útil na hora de "debugar" um problema. Para desabilitar alguma chamada basta comentar a linha onde é descrita a chamada, colocando um ponto e vírgula no início dela. Recurso herdado da filosofia Unix. O User-startup é um segundo script de inicialização do sistema que é chamado de dentro do Startup-sequence, e como o nome diz a intenção é que nesse arquivo sejam adicionados recursos, programas, facilidades, ou qualquer coisa do tipo que seja adicionada depois pelo usuário. Assim não corre-se o risco de inserir "bugs" no script de boot primário. Na prática, o que costuma-se inserir no Startup-sequence são chamadas que devem estar posicionadas entre outras chamadas, para serem executadas em ordem específica. O que não tem hora certa pra ser executado pode (e deve) ir para o User-startup. Nessa pasta também ficam outros scripts de configuração, tanto do sistema quanto de programas de terceiros.
Pelo menos dos mais comportados e seguem as recomendações do RKRM.


Pasta S com seus arquivos de configuração.
Na pasta L ficam os "handlers" que são a ponte entre o AmigaOS e os dispositivos. Pense neles como "drivers de alto nível". Eles não são usados diretamente pelo usuário; são chamados pelos programas que precisam acessar um dispositivo qualquer. Por exemplo, o "AUX-Handler" provê entrada e saída serial não buferizada e serve para usar um terminal serial, mandando a saída de texto e recebendo entrada de um teclado, pela porta serial. O "Queue-Handler" cria um processo de comunicação interna chamado PIPE: que serve para que programas troquem informações entre si. O "Port-Handler" é a interface de comunicação do AmigaOS com os dispositivos SER:, PAR: e PRT: (serial, paralela e printer). É possível setar parâmetros para esses dispositivos, como velocidade da porta, paridade, etc. Se não forem fornecidos esses parâmetros usam-se os valores armazenados num arquivo que fica no ENV:, mas isso é pra depois. Também ficam nessa pasta (L:) os sistemas de arquivos (Filesystems), como o FastFileSystem (o nativo FFS que existe a partir do WB2), o SmartFileSystem (SFS), o CDFileSystem ("driver" para CD-Roms e DVDs), e até o CrossDOSFileSystem, que é necessário para ler discos no formato MS-DOS, incluindo suporte a HDs e disquetes de dupla ou alta densidade.


Pasta L e seus arquivos de comunicação com os dispositivos.
Na pasta Devs ficam os "devices" propriamente ditos. Esses seriam os "drivers de baixo nível", que conversam diretamente com os dispositivos de hardware na "lingua" deles. Por exemplo, o scsi.device (que fica a princípio na ROM) é usado para acessar a porta IDE interna dos Amigas A600, A1200 e A4000. Ao montar por exemplo uma partição num HD, você precisa especificar qual dispositivo vai usar, no nosso exemplo a porta IDE interna do A600 (scsi.device). E também tem que dizer em que formato os dados estão escritos, e nesse caso digamos que seja no sistema FFS (FastFileSystem).

Pasta Devs e seus arquivos de acesso aos dispositivos (baixo nível).
Então geralmente os handlers e os devices são usados em conjunto. Nessa pasta também ficam os drivers para monitores e modos de vídeo (pasta "Monitors"), os Datatypes - um fantástico sistema de módulos para dar suporte a diferentes formatos de áudio, vídeo, imagem, e documentos aos programas que usem esse sistema. Isso significa que se um programa de música, por exemplo, na época em que foi feito não suportava MP3 (porque não existia o formato) suportar o sistema de Datatypes, é possível que esse programa passe a suportar o formato MP3 apenas escrevendo um módulo para decodificar MP3. E assim é possível fazer com qualquer formato novo, ou que ainda vá ser inventado no futuro, desde que o programa em questão suporte o sistema de Datatypes. Há também os DOSDrivers, que são os scripts conhecidos como "mountlists". Eles dão suporte aos dispositivos que não são suportados diretamente pela ROM na hora do boot, como discos com formato de PC ou de Mac, CDs e DVDs, fitas DAT, ZIP drives, Ramdisks que sobrevivem a resets, etc. Esse sistema também é modular, dependendo apenas de que se escrevam um "device" e um "handler" para suportar novos hardwares. Também ficam nessa pasta os Keymaps, que são os diferentes layouts de teclados, os drivers de impressoras. Também ficam na pasta Devs alguns arquivos como Clipboards.device que é o driver do volume CLIPS: (como a área de transferência no Windows), e o system-configuration que é onde ficavam armazenadas várias informações de preferências do sistema no AmigaOS 1.x, e a partir da versão 2 passou a ser mais completo e consistir de vários arquivos armazenados na pasta ENVARC:.

Na pasta Libs ficam os arquivos .library, que são bibliotecas de funções comumente usadas por vários programas. É como as "DLLs" no Windows. Um exemplo seria a janela que aparece quando você precisa abrir um arquivo dentro de um programa, ou salvar um arquivo. Essa janela padrão no AmigaOS é gerada pela "ReqTools.library". Usá-la permite que todos os "requesters" para lidar com arquivos no seu programa permaneçam os mesmos, tornando o ambiente familiar e intuitivo para o usuário. Essas bibliotecas são carregadas para a memória a medida que vai-se fazendo necessário, e como são compartilhadas por vários programas permitem que esses programas sejam menores e ocupem menos memória. Há dois tipos de bibliotecas no AmigaOS: as "runtime-libraries", que são essas chamadas por programas conforme é necessário depois que ele já foi carregado, e as "link libraries" que são partes de código prontos agregados a um programa na hora em que ele é compilado.

Janela Libs no formato de listagem detalhada.
Há ainda os volumes ENV: e ENVARC:. O ENV: é uma cópia do ENVARC: criada no boot, e significa "environment variables". É lá que ficam diversos arquivos com variáveis usadas pelo sistema e por programas de terceiros. O ENVARC: é o "arquivo", como um backup dessas variáveis e seria o "environment variables archive". Ao rebootar o Amiga o ENV: é perdido. Então para garantir que modificações feitas nesses arquivos sejam mantidas é importante copiar o mesmo arquivo para o ENVARC:, caso seja necessário manter essas modificações.

A pasta T, que fica na RAM é para arquivos temporários. E a RAM: é um "Ramdisk" dinâmico e volátil que aloca todo o espaço livre de memória.

O restante dos diretórios são mais ou menos intuitivos e abrigam aplicativos e utilitários do sistema. A pasta "Prefs" é onde ficam os aplicativos de configuração do sistema e de programas de terceiros, a pasta "System" é onde ficam alguns aplicativos básicos do Workbench, a pasta "Tools" é onde ficam algumas ferramentas como calculadora, editor de ícones, etc. E a pasta "WBStartup" é a que se destaca, e tem uma função muito interessante. Todos os ícones que ficam nessa pasta são executados na inicialização do Workbench. Veja, não na inicialização do sistema, mas sim da inicialização do Workbench, a interface gráfica. A diferença entre essa abordagem e as chamadas nos scripts de inicialização é que por esse método o ícone é levado em conta, e nele é possível estipular os chamados "Tooltypes", que é uma forma de passar argumentos a determinados programas.

WorkBench 2.1 Totalmente básico rodando de um Disquete. (Emulação A600 WinUAE) 


Classic WorkBench Baseado no 3.1 (Emulação de A1200 WinUAE)

E também há programas que só rodam de dentro do Workbench, e devem ser executados dessa forma.
Acho que com essas informações já dá pra você ter uma ideia mais clara de como funciona o AmigaOS, que no fundo é muito mais fácil de usar e expandir do que qualquer outro sistema que eu conheça. E é isso que eu acho que deixa os seus usuários tão encantados e dependentes dele ;-)

==> Fim do Texto <=== 
Acrescentar o que????
Aprendi muito só de ler este artigo!
Eu já sugeri pro Mugo escrever um livro, eu acho que ia ser um material imprescindível para os amantes da retrocumputação.
Valeu MUGO!!!
Pessoal, desculpem nos vídeos, aparece uma ceta de mouse branca, é defeito do capturador de vídeo que eu uso. Ainda não encontrei um melhor. Assim que der mudo os vídeos pra ficar mais profí.
Aquele abraço!!

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.