Mostrando postagens com marcador WorkBench. Mostrar todas as postagens
Mostrando postagens com marcador WorkBench. Mostrar todas as postagens

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!!

9 de jan. de 2011

Quais sistemas estão disponíveis e suas respectivas versões funcionam em quais máquinas ?

O AmigaOS é composto de dois blocos importantes: O Kickstart (que é o conjunto de rotinas e componentes que está na ROM) e o Workbench. Já por essa informação, você pode concluir que para rodar o AmigaOS 3, seu Amiga precisa ter a ROM correspondente instalada.

Algumas versões do AmigaOS foram lançadas para acompanhar determinados modelos de Amiga em seus lançamentos. O que impede que algumas versões do AmigaOS rodem corretamente em alguns modelos de Amiga (são particularidades do hardware de alguns modelos).

Basicamente essa é a relação entre AmigaOS e Amigas:
  • AmigaOS 1.x - Amigas 500 e 1000 e 2000 (e suas variantes como o A1500 e A2500);
  • AmigaOS 2.05 - Amigas 500+, A600, A3000/3000T;
  • AmigaOS 2.1 - Ao mesmo tempo que atualiza o AmigaOS 2.05, foi lançado também numa versão com o Kickstart 2, para atualizar o sistema dos micros que utilizavam o AmigaOS 1.x;
  • AmigaOS 3.0 - Amigas 1200 e 4000;
  • AmigaOS 3.1 - Mesmo caso do AmigaOS 2.1. Corrige vários bugs do AmigaOS 3.0, e possibilita o upgrade dos outros modelos anteriores.
  • AmigaOS 3.5 e 3.9 - versão do sistema que pode rodar em qualquer Amiga com ROM 3.1, pelo menos 4MB de RAM e um processador 68020 ou superior. Na verdade, o OS3.5 foi lançado após um enorme hiato no desenvolvimento do AmigaOS. A Commodore já estava bem mal das pernas procurando um comprador. A comunidade já tinha desenvolvido um número enorme de patches para o OS3.1, que por causa de tantos remendos, uns bem feitos e outros nem tanto, em muitos casos era instável. A Haage & Partner ficou a cargo da atualização, e basicamente conseguiu comprar dos autores dos diversos patches e aplicativos e utilitários a licensa para incluir versões especialmente desenvolvidas desses softwares no novo OS. Foram corrigidos vários bugs, e com o OS3.9, ao invés de lançar outro chip com o Kickstart, optou-se por usar a técnica do "kickstart remapping", que consiste em copiar o conteúdo da ROM para a memória RAM, e aplicar nessa cópia as atualizações necessárias. Depois dessas atualizações a versão da ROM passa a 3.9. Devido ao Kickstart estar sendo agora acessado a partir da memória RAM, o sistema fica um pouco mais rápido, sob a pena de perder o espaço que ele utiliza da memória.
AmigaOS 1.3 (1988)

AmigaOS 2.0 (1991)

Amiga Workbench 3.1

Amiga Workbench 3.5

Amiga Workbench 3.9

Note o que comentei a respeito de incompatibilidade de hardware e software para algumas versões do AmimgaOS. No caso do AmigaOS3.0 por exemplo. O sistema espera ser executado num Amiga com o chipset AGA, com interface IDE na placa mãe, e vários drivers estão na ROM. Por isso é péssima idéia executar essa versão em outros modelos de Amiga que não o A1200 ou o A4000.

O A4000T foi lançado quando já existia o AmigaOS3.1, e por isso já vinha equipado com a ROM 3.1, mas numa versão um pouco diferente que incluía os drivers para a interface SCSI nativa, e o acompanhava o Workbench 3.1.
Matéria escrita no fórum AmigaBR por Marcelo Pires.