• Nenhum resultado encontrado

CAPÍTULO 1: UMA CONVERSA TÉCNICA

N/A
N/A
Protected

Academic year: 2021

Share "CAPÍTULO 1: UMA CONVERSA TÉCNICA"

Copied!
12
0
0

Texto

(1)

Primeiro, vamos tratar de questões que são necessárias para entender como funciona a maioria dos sistemas operacionais que tem uma interface de linha de comando. O MSX-DOS é um deles, claro. Muito do que eu falarei aqui, vale também para sistemas operacionais padrão Unix (Linux, BSD, Mac OS X, etc) e o Windows, quando você executa o CMD.EXE ou o POWERSHELL.EXE. Claro, o foco aqui é o MSX-DOS.

Também teremos uma conversa sobre partições e sistemas de arquivos, que é necessário para entender algumas das limitações do sistema operacional. No final, um pouquinho sobre a arquitetura do padrão MSX, as extensões da BIOS, as SubROMs…

Este capítulo é mais focado no usuário iniciante. Mas os usuários intermediários e avançados, aqueles que tem familiaridade com o MS-DOS terão pouca dificuldade com o sistema em si e tirarão proveito do conteúdo desse capítulo.

Primeiro… O que é um sistema operacional?

O sistema operacional é o software cuja função é administrar o hardware do computador, fazendo a interface entre o hardware e o usuário. Este usuário pode ser um programa ou mesmo o ser humano. Logo, podemos supor que o sistema operacional é fundamental para o funcionamento da máquina. Ele é seguramente o programa mais importante a ser executado em um computador.

(2)

Você pode dividir o sistema operacional em três partes básicas, que são: 1. Um núcleo do sistema, ou kernel. O kernel é a parte mais importante

do sistema, sendo a sua função gerenciar todo o funcionamento da máquina. No nosso objeto de estudo, o MSX-DOS, seu kernel é monolítico, monotarefa e monousuário. Não entraremos nesses aspectos para explicá-lo. Mas, se você quiser estudá-lo, recomendo fortemente o estudo do código-fonte do Nextor8.

2. Um conjunto de bibliotecas para que possa ser estabelecido um diálogo entre o kernel e os programas. No caso do MSX-DOS, existem um grande conjunto de funções e variáveis de ambiente que podem ser acessadas pelos programas, que iremos cobrir aqui nesse livro. 3. Um conjunto de utilitários para que os usuários “humanos” possam

interagir com a máquina. Nessa categoria podemos classificar o interpretador de comandos do MSX-DOS, o COMMAND.COM (e o

COMMAND2.COM, do MSX-DOS 2), os comandos externos, entre outros.

O interpretador de comandos, ou shell

Então, nós, usuários, iremos interagir com o que chamamos de interpretador de comandos, ou shell. E para interagirmos com esse programa, digitamos comandos. O interpretador fará o seu trabalho (que é interpretar) e executará o que você solicitou. Claro, se você digitar algo errado, você verá uma mensagem na tela, apontando o erro. Mas em nenhum momento o interpretador lhe enviará uma mensagem dizendo “Excelente comando ou nome de arquivo!” Ou seja, se você errar, ele apontará o seu erro. Se você acertar… Não fez mais do que a sua obrigação.

(3)

Pois então, e os comandos? Bem, temos basicamente dois tipos de comandos, os internos e os externos. Os comandos internos são aqueles comandos que já estão codificados dentro do interpretador de comandos. Logo, eles estão sempre presentes, são mais simples e muito mais úteis. O MSX-DOS somente tem comandos internos. Logo, é comum confundirem utilitários com comandos externos, que são programas executáveis que auxiliam o funcionamento do sistema. No caso do MSX-DOS, é muito comum colocarem o conteúdo do pacote MSX-DOS Tools no diretório A:\DOS, e as páginas de ajuda em A:\DOS\HELP. O pacote do COMMAND2.COM fornecido pelo grupo The New Image (TNI) traz alguns utilitários, além das páginas de ajuda. Recomendamos fortemente que você os use. Mas, dependendo da origem do seu cartão SD, CF ou pendrive, é bem provável que todas essas ferramentas já estejam lá disponíveis.

Dispositivos

O MS-DOS é um herdeiro do CP/M, que tem fortes raízes no TOPS-10 e traz alguns elementos do Unix, o primeiro sistema operacional de tempo compartilhado bem sucedido feito no mundo. Logo, muitos dos conceitos do Unix e seus herdeiros (Uzix9, Fuzix10, até o Linux) estão presentes no

MSX-DOS. Um deles é o conceito de dispositivos.

Os dispositivos são parte integrante do hardware. Então, quais são os dispositivos que o MSX-DOS tem? Vamos a lista:

• A:, B:, C:, até D: (no MSX-DOS 1) ou até H: (no MSX-DOS 2) – letras de drive. Cada partição compõe um dispositivo, e há uma letra associada a ele.

9 http://uzix.sourceforge.net/ 10 http://www.fuzix.org/

(4)

• AUX: (Porta serial). Se você tiver uma interface do tipo RS-232, esse será o dispositivo que estará vinculado a ela.

• CON: (Console). No nosso caso, o terminal, a tela do computador. • PRN: (Impressora). Você pode redirecionar a saída de um comando

para a impressora, por exemplo. Claro, se você tiver uma impressora conectada ao seu MSX, o que hoje em dia, é chique no último.

• NUL: (Dispositivo nulo). Ele não existe, mas usamos ele para alguns testes. Se for usado como dispositivo de entrada, ele retorna um sinal de “fim de arquivo”. Se ele for usado como dispositivo de saída, simula, mas não executa as operações de gravação neste dispositivo. Alguns usuários bem humorados dizem que o NUL é o melhor lugar para guardar uma cópia de segurança dos seus dados. Afinal, não ocupa espaço! Mas não espere recuperar os dados caso você precise...

Caracteres “coringa”

Os caracteres “coringa” (ou caracteres de referência global) são recursos usados para apontar um ou mais arquivos ou diretórios do sistema de uma só vez. Este é um recurso que permite que você faça a filtragem do que será listado, copiado, apagado, etc. No MSX-DOS, temos 2 tipos de coringas:

• O asterisco (“*”) faz referência a um nome completo/restante de um arquivo/diretório. Logo, quando colocamos A*.*, significa que o nome do arquivo/diretório começa com A, e o resto do nome e a extensão podem ser qualquer coisa, de 1 a 7 caracteres (no caso do nome). Logo, ABCDEFGH.TXT e AEIOU.GRP são válidos nesse caso, mas BEFAJ.TXT não.

(5)

• O ponto de interrogação (“?”) faz referência a uma letra naquela posição. Logo, quando colocamos A?.?, significa que o nome do arquivo/diretório começa com A, e só tem um caractere após o A, e um caractere na extensão. Então, AB.C é válido, mas AB.PAS não é.

Os interpretadores de comandos do MSX-DOS 1 e do MSX-DOS 2 (COMMAND. COM e COMMAND2.COM) são limitados nesse ponto, trabalhando apenas com asteriscos e interrogações, e de uma forma limitada. Logo, não é possível fazer algo como *A*.TXT, por exemplo.

Diretórios

Os diretórios são divisões lógicas criadas em um sistema de arquivos, que permite que arquivos que tenham relação, sejam agrupados.

Logo, você pode ter um diretório chamado JOGOS, e dentro dele ter diretórios como ROM, DSK, TRADUCAO, etc. Assim, você pode colocar os jogos nessa pasta, separando os arquivos ROM, imagens de disquete e traduções em diretórios separados. Então, os diretórios servem para organizar o caos que rapidamente um dispositivo de armazenamento pode se tornar.

Alguns usuários referem-se aos diretórios como pastas, numa alusão ao conceito popularizado pelas interfaces gráficas, fazendo uma analogia às pastas suspensas de arquivos de documentos. No final das contas, diretório é pasta, pasta é diretório e estamos conversados.

No MSX-DOS 1 não temos o conceito de diretórios, estando limitados a colocar no máximo 112 arquivos por unidade. No caso do MSX-DOS 2, podemos ter diretórios e o limite é bem maior, cerca de 256 arquivos por diretório.

(6)

O ponto, o “ponto-ponto” e outros

Em todos os diretórios, existem dois caracteres especiais, o ponto e o “ponto-ponto”. É muito comum falarmos “dois pontos”, mas isto gera confusão, já que as pessoas associam aos dois-pontos (um em cima e o outro embaixo) e não aos dois pontos seguidos. Logo eu sempre chamarei de “ponto-ponto”. Ambos funcionam como ponteiros, ou seja, direcionam para algum lugar. Mas vamos ver no que eles diferem:

• O ponto aponta para onde você está. Ou seja, ele aponta para o diretório onde você está. Parece bobeira, mas isto é útil para quando você copia um arquivo, por exemplo, e quer garantir que ele seja copiado para onde você está.

• O ponto-ponto aponta para um diretório em um nível anterior. Logo, se você estiver em um diretório, ao apontar para o “ponto ponto”, você será redirecionado para o diretório que está “acima” do atual. • O traço (“-”) aponta para o diretório onde você estava anteriormente.

Se você estiver em um diretório, ao apontar para o “traço”, você será redirecionado para o diretório onde você estava anteriormente.

• Exemplo: Digamos que você estava no diretório A:\UTILS, e mudou de diretório, para A:\DOS\HELP.

• O “ponto” direciona para A:\DOS\HELP. • O “ponto-ponto” direciona para A:\DOS. • O “traço” direciona para A:\UTILS.

É claro que esta funcionalidade fica mais clara com o MSX-DOS 2, que tem suporte a diretórios.

(7)

Prompt de comando

O prompt de comando é o ponto onde você pode inserir comandos para que o interpretador possa entendê-los e executá-los – ou não. Nos sistemas operacionais que seguem o padrão MS-DOS (MSX-DOS incluso), é comum termos um prompt da seguinte forma:

A:\UTILS\LOCATE\DB> Onde:

• A: é a letra de drive.

• \UTILS\LOCATE\DB é o caminho indicando a localização atual. • > é o caractere que aponta que dali por diante, você poderá digitar

comandos.

Para usuários que lidaram com o MS-DOS, o prompt mais conhecido é o C:\>, já que a primeira partição do HD fica no drive C.

Caminhos, caminho absoluto e caminho relativo

Quando falamos de A:\UTILS\LOCATE\DB, isto é o que chamamos de caminho. O caminho, ou path, especifica uma localização única em um sistema de arquivos. O caminho aponta para a localização de um arquivo dentro de uma mídia (HD, disquete, cartão SD, etc), seguindo a hierarquia da árvore de diretórios. Esse caminho é expresso em uma sequência de caracteres e delimitadores representando cada diretório. No caso do CP/M (e do MS-DOS, e do MSX-DOS) é a barra invertida, o “\”. Em sistemas padrão Unix, é a barra (“/”).

(8)

Os caminhos podem ser absolutos ou relativos. Um caminho absoluto aponta para a mesma localização dentro do sistema de arquivos, independente do diretório onde você está. Assim, ele deverá incluir o diretório raiz do dispositivo. O caminho relativo parte do diretório onde você está, sem precisar trazer o caminho absoluto, que apesar de completo, é muitas vezes grande demais. Vamos a dois exemplos:

A:\DOS> A:\DOS\HELP\DIR.HLP

Este é um caminho absoluto. Independente de onde você esteja, você começa no diretório raiz do dispositivo (A:\), segue pelo diretório DOS, depois o diretório HELP, para então chegar no arquivo DIR.HLP.

A:\DOS> HELP\DIR.HLP

Aqui temos um caminho relativo. Logo, já estamos em A:\DOS, então não é necessário partir do diretório raiz para chegar em DIR.HLP. O caminho é menor, mas depende do diretório onde você está - ao contrário do caminho absoluto.

A:\JOGOS> ..\DOS\HELP\DIR.HLP

Aqui temos um outro caminho relativo. Estando em A:\JOGOS, sobe um diretório e segue pelo diretório DOS, depois o diretório HELP, para então chegar ao arquivo DIR.HLP.

Arquivos batch

Um arquivo batch contém sequências de comandos a serem executados pelo sistema operacional. No Unix, nós conhecemos como shell scripts, e posso dizer com pureza d’alma que eles são os “primos ricos” dos arquivos

(9)

batch. Eles são muito mais completos, tem mais flexibilidade e capacidade do que os arquivos batch. Mas vamos falar dos “primos pobres”. Na prática, os scripts em shell e os arquivos batch são quase iguais e têm o mesmo objetivo: Automatizar certas tarefas que são repetitivas.

Vamos supor que você tenha uma SD-Mapper, e milagrosamente você entendeu a sintaxe do comando MAPDRV, do Nextor (falo disso lá no capítulo 5, calma). Então, toda vez que você liga o seu MSX, você mapeia as partições dos seus cartões SD nas letras de drive correspondente… E é uma linha de comando das grandes. Não seria melhor automatizar esse processo? Então, você pode criar um arquivo batch para sempre que você queira que isso aconteça, basta executá-lo e o MSX-DOS o faz. Legal, não?

AUTOEXEC.BAT e o REBOOT.BAT

O AUTOEXEC.BAT é um arquivo batch a ser executado toda vez em que o computador é iniciado com aquela mídia. Logo, se você tem disquetes com AUTOEXEC.BAT e você ligou o seu MSX, ele será executado. Mas não temos aqui o CONFIG.SYS (como havia no MS-DOS). Todas as variáveis de ambiente devem ser setadas no MSX-DOS.

No MSX-DOS 2 temos também o arquivo REBOOT.BAT, que é executado toda vez que o usuário retorna do interpretador BASIC para o sistema operacional, digitando CALL SYSTEM. Logo, é comum que o REBOOT.BAT seja quase idêntico ao AUTOEXEC.BAT.

Redirecionamentos

Redirecionamentos é um dos recursos mais úteis que qualquer sistema operacional tem. Mesmo o MSX-DOS 1 tem eles disponíveis. Você pode redirecionar a entrada, a saída ou criar um duto (pipe) entre dois comandos.

(10)

Antes de tudo, é bom lembrar que o MSX-DOS (e o MS-DOS, e o Linux, e outros) tem uma entrada padrão, que é o teclado. Mas ele tem 2 saídas: A saída padrão e a saída de erros. A segunda é para aonde são enviadas as mensagens de erro. Ambas apontam para o mesmo lugar, a tela. Veremos brevemente como fazer o redirecionamento.

Vale ressaltar que teremos exemplos com alguns comandos abaixo. Falaremos mais a respeito desses comandos de forma mais apropriada no decorrer do livro.

Redirecionamento de saída

Você vai redirecionar a saída para, por exemplo, um arquivo-texto. Assim, se você digitar DIR > SAIDA.TXT, o MSX-DOS criará um arquivo chamado SAIDA.TXT, e resultado do comando DIR será enviado para ele. Você depois pode editar esse arquivo no MPW, no TED ou no MSX VI, vai ler o arquivo no PC e usar um editor de textos… Seja lá o que você for fazer. O caractere “>” aponta para onde será enviada a saída. Ele criará um novo arquivo com esse nome e colocará a saída dentro dele. Mas se você usar “>>” e o arquivo já existir, você acrescentará essa informação no arquivo, não criará um novo, caso não exista, funciona como o caractere “>”.

Veremos um exemplo: DIR > SAIDA.TXT

Executamos o comando DIR, que lista o conteúdo de um diretório e o envia para a saída padrão, a tela. No caso, como estamos usando o caractere “>”, significa que estamos redirecionando a saída desse comando para o arquivo SAIDA.TXT.

(11)

Mas, e a saída de erros? Bem, se você não colocar nada, ela será repassada à saída padrão, a tela. Agora, se acrescentarmos 2> NUL: ao comando. Você teria algo como:

DIR > SAIDA.TXT 2> NUL:

Isto significa que estamos redirecionando a saída de erro (a saída 2) para o dispositivo NUL.

Ainda, se você quiser que ambas as saídas sejam repassadas para o mesmo arquivo, você deverá executar o seguinte comando:

DIR > SAIDA.TXT 2>&1.

Assim, a saída de erros (a saída 2) será repassada para a saída padrão (saída 1), e tudo sera colocado no arquivo SAIDA.TXT.

Redirecionamento de entrada

Este é um recurso muito pouco usado, mesmo em sistemas mais complexos que o MSX-DOS. Procurei um bom exemplo, mas não achei.

Encadeamento de comandos (o uso de pipes, ou dutos)

Isto é um recurso que muitos usuários Unix não conseguem viver sem. Basicamente, o encadeamento de comandos consiste em fazer com que a saída de um primeiro comando seja a entrada de um segundo comando, para dar continuidade ao processamento. Os dados enviados são processados pelo próximo comando. Por exemplo:

(12)

Aqui temos o comando TYPE, que pega o arquivo AUTOEXEC.BAT e o envia para a saída padrão (a tela). Mas, com o uso do pipe (a barra vertical, o ‘|’), essa saída é redirecionada para o segundo comando (o GREP). Este filtra o texto que lhe é passado, exibindo apenas as linhas que contém a palavra SET. Dessa forma, temos dois comandos funcionando em conjunto, onde um envia o conteúdo para o outro filtrar. O resultado será colocado na tela. Caso seja necessário, é possível encadear vários comandos, cada um resolvendo parte de um problema. É a filosofia “dividir para conquistar”, de forma que cada comando resolva uma parte do problema, e a união de todos resolva o problema como um todo.

Em sistemas padrão Unix, isto foi elevado ao estado de arte. Mas sistemas não-Unix, como o DOS, é possível usar esse recurso também. No MSX-DOS 1 isso é pouco usado, mas no MSX-MSX-DOS 2 temos mais desse recurso sendo usado.

Mais alguns exemplos

• DIR > PRN: - Redireciona a saída do comando DIR para o dispositivo PRN, ou seja, a impressora. Se você tiver uma impressora ligada no seu MSX e ela estiver ligada e com papel, o resultado do DIR sairá nele.

• DIR *.COM > SAIDA.TXT 2> NUL: - Será listado todos os arquivos cuja extensão termine com .COM. O resultado será jogado no arquivo SAIDA.TXT, e a saída de erros, no dispositivo nulo (NUL:). • COPY CON: TESTE.BAT – Aqui, tudo que você escrever no

console (CON) será copiado para o arquivo TESTE.BAT. Ou seja, tudo o que você digitar será salvo nesse arquivo. Para encerrar, pressione CONTROL+Z, que é o caractere que marca o fim de um

Referências

Documentos relacionados

Joan Scott (2011) em seu artigo clássico denominado Gênero: uma categoria útil para análise histórica, critica os historiadores que se propuseram a contar a história das mulheres, mas

Sono generalmente invariabili per genere gli aggettivi terminanti in -e e tutti quelli terminanti in -nte. nel

● Copia um arquivo da máquina local para um diretório específico no servidor remoto.. ● Exemplo: copiar arquivo local Telescope.jar para o diretório telescope

Aos Senhores Pastores, estimados Delegados e Convidados. Em nome desta Junta e o meu, saúdo-vos no nome do nosso Senhor Jesus Cristo. Dou graças a Deus por ter me salvo dos

No diretório raiz (diretório cthread) da estrutura de diretórios do arquivo cthread.tar.gz está disponibilizado um arquivo Makefile de referência, que deve ser completado de maneira

Outro exemplo de utilização dos produtos MODIS é a geração dos Índices de Vegetação, que utilizam as bandas do vermelho e infravermelho próximo para realçar o sinal da

1) O atendimento de nossos clientes é realizado por empregados da XP Investimentos CCTVM S/A (“XP Investimentos ou XP”) ou por agentes autônomos de investimento que

A este capítulo seguem-se as páginas do Guia de Consulta Rápida, que fornecem informações tais como as Correspondências entre Cristais, Corpo e Zodíaco, Remédios de