Instituto Federal de Educação, Ciência e Tecnologia do Sudeste de Minas – Campus Juiz de Fora MS-DOS Introdução aos Sistemas Operacionais – Professor Eduardo 1 Sumário Capa ............................................................................................................................................. 1 Sumário ........................................................................................................................................ 2 Histórico ....................................................................................................................................... 3 MS-DOS Versão 1.0........................................................................................................... 3 MS-DOS Versão 2.0 .......................................................................................................... 4 MS-DOS Versão 3.0 .......................................................................................................... 4 MS-DOS Versão 4.0 .......................................................................................................... 5 MS-DOS Versão 5.0 .......................................................................................................... 5 MS-DOS Versão 6.XX ....................................................................................................... 5 MS-DOS Versão 7.0 .......................................................................................................... 6 Tipo de Sistema Operacional ................................................................................................... 6 Estrutura do S.O. ........................................................................................................................ 6 Processos .................................................................................................................................... 7 Como acessar o MS-DOS ......................................................................................................... 7 Comandos do MS-DOS e seu objetivo ................................................................................... 9 Sistema de Arquivo .................................................................................................................. 11 Exemplo/ Particularidade.........................................................................................................13 Bibliografia ................................................................................................................................. 15 2 Introdução No âmbito da disciplina de Introdução aos Sistemas Operacionais pretendemos com este trabalho mostrar o que é e como nasceu o Sistema Operacional MS-DOS. Histórico O DOS foi criado por Tim Paterson, engenheiro da Seattle Computer Products, em 1980, ele era um “clone” do sistema operacional CP/M. Este seria o sistema operacional de sua recentemente criada placa de CPU com um processador 8086. Quando a placa de CPU da Seattle Computer apareceu no mercado pela primeira vez, em meados de 1979, o MS-DOS ainda não estava nem na prancheta de seus criadores. A Digital Research havia anunciado que o S.O. CP/M-86 logo estaria pronto para operar o sistema 8086, e, então, as expectativas eram de que nenhum outro sistema operacional seria mais necessário. O sistema operacional CP/M da Digital Research era na época o mais popular sistema operacional feito para os computadores que utilizavam o chip microprocessador 8080 ou o Z80. Mas a chegada do CP/M-86 foi adiada, e após esperar por quase um ano, a Seattle Computer decidiu criar seu próprio sistema operacional, denominando-o QDOS. Quatro meses depois, em agosto de 1980, o QDOS estava pronto para ser lançado no mercado. Pouco depois de seu lançamento, outra firma sediada em Seattle no estado de Washington, EUA, chamada Microsoft decidiu comprar o QDOS e fazer dele seu próprio sistema operacional sob o nome de MS-DOS. A Microsoft tornou-se famosa por sua versão de BASIC, mas nunca havia antes vendido um sistema operacional. Alguns meses depois que o MS-DOS foi lançado, o CP/M-86 surgiu. A Microsoft lançou versões aperfeiçoadas do MS-DOS, e a cada lançamento subsequente do MS-DOS é chamado de uma nova versão, sendo estas versões numeradas. O primeiro lançamento do MS-DOS foi chamado de 1.0 e a medida que foram feitos melhoramentos a Microsoft lançou outras versões. A última versão do MS-DOS que foi lançada é a 6.22, a partir dessa versão o Windows tomou conta de vez, pela facilidade com que os usuários o manejam. MS-DOS Versão 1.0 O sistema operacional era constituído por três programas: o ibmbio.com, que tratava do disco e do sistema de entrada/saída voltado a caracter; o ibmdos.com, que é o gerenciador de arquivos e do disco, e o comannd.com. A primeira versão do MS-DOS, a exemplo do CP/M, suportava somente um único diretório, ou seja, não suportava subdiretórios. Ao digitar o comando dir, para listar todos os 3 arquivos do diretório corrente, o que você realmente via era a listagem de todos os arquivos do sistema. Apesar da versão 1.0 do MS-DOS ter sido compatível com o CP/M, ela era melhor que este. O MS-DOS trazia informações sobre o arquivo como o tamanho exato do mesmo, tinha um algoritmo melhor para alocação de disco e era muito mais rápido. A versão 1.1 foi liberada pela Microsoft em 1982 e também consertou alguns bugs. MS-DOS Versão 2.0 A IBM em março de 1983 lançou o PC/XT, seu primeiro computador pessoal equipado com disco rígido junto com a nova versão 2.0 do MS-DOS. O sistema de arquivo do MS-DOS foi quase todo inspirado no do Unix. O MS-DOS no sistema de arquivo usa o conceito de FAT e o Unix usa o conceito de I-nodes. As chamadas open, read, write e close estavam presentes na versão 2.0, exatamente com a mesma estrutura do Unix. No processo de adicionar novas características do Unix, o MS-DOS cresceu para 20.000 linhas de código de montagem. Ele também tirou do mercado o CP/M-86, que finalmente tinha tido seu desenvolvimento terminado, e estabeleceu-se como o sistema operacional dominante para os PCs. Por ter introduzido o disco rígido nos PCs tornou-se possível rodar aplicações razoavelmente grandes, fazendo com que eles deixassem de ser computadores pessoais para se tornarem também máquinas comerciais. Empresas de pequeno, médio e grande porte começaram a adquirir PCs. Nessa época o MS-DOS era mantido por somente quatro pessoas na Microsoft. Com o crescimento da demanda mundial pelo sistema, a Microsoft contratou novos programadores e lançou a versão 2.05, que suportava horários, datas, moedas, e símbolos decimais, usados em muitos países do mundo. MS-DOS Versão 3.0 A IBM lançou o PC/AT em agosto de 1984, seu primeiro computador pessoal baseado no chip 286. Nesta época também surgiram discos de 10MB e o conceito de disco em RAM, através da qual uma parte da memória era usada como se fosse um disco muito rápido. Quase na mesma época do lançamento do MS-DOS 3.3, a IBM e a Microsoft liberaram um sistema operacional completamente novo, denominado OS/2. Na visão das duas empresas, o OS/2 iria substituir o MS-DOS. Isto nunca aconteceu. O OS/2 foi liberado com muito atraso, e pior que isto, incompleto. Apesar dele ter muitas vantagens sobre o MS-DOS, tal como usar toda a memória disponível, rodar em modo protegido, suportar multiprogramação de uma forma elegante, o mercado não se interessou muito pelo novo sistema. Em 1991, a Microsoft anunciou que estava abandonando completamente o OS/2, o que irritou profundamente a IBM, a ponto de romper sua aliança com a Microsoft, e assinar um acordo com a Apple Computer para fornecimento de seus softwares. 4 MS-DOS Versão 4.0 Depois de a IBM ter se convencido que o OS/2 não iria ser aceito pelos usuários, ela surpreendeu lançando o MS-DOS versão 4.0, o qual a Microsoft também produziu. Para obter a versão 4.0 a mesma usou o método de engenharia reversa, distribuindo-o através dos fabricantes de clones do PC. Tanto a IBM quanto a Microsoft se convenceram de que o MSDOS não iria desaparecer, pois em lugar de contribuir para exterminar o MS-DOS, como fora a intenção revelada de ambas as empresas, elas estavam melhorando o sistema que não deveria continuar. MS-DOS Versão 5.0 A versão 5.0 foi anunciada em abril de 1991. Nesta versão foi considerada seriamente a questão da memória estendida. Apesar de ainda haver a restrição na memória estendida de apenas poder-se usar 640K, esta versão é capaz de manter por mais tempo a maior parte de seu próprio código na memória estendida, logo fica disponível para os programas de usuário em torno de 600K. Esta nova versão passou a ser vendido em lojas e não mais apenas aos fabricantes de computador. A versão 5.0 do MS-DOS já era obsoleta quando foi anunciada. A IBM e a Microsoft já sabiam disso por isso investiram muito milhões de dólares no OS/2. Infelizmente o mercado reagiu mal ao OS/2. Quando ficou claro que o OS/2 não decolaria a Microsoft mudou sua estratégia e desenvolveu o Windows, com interface gráfica e uso de mouse, que rodava em cima do MS-DOS. O lado positivo disto é o fato de ele ter acumulado uma quantidade imensa de pacotes de aplicativos de alta qualidade. MS-DOS Versão 6.XX Em Março de 1993, o MS-DOS 6.0 foi lançado. Seguido pela concorrente Digital Research, a Microsoft adicionou um utilitário de compressão de disco chamado DoubleSpace. Nessa época, os discos rígidos mais comuns tinham em torno de 200 a 400 MB, e muitos usuários necessitavam seriamente de mais espaço em disco. O MS-DOS 6.0 também trouxe o desfragmentador de disco DEFRAG, o MSBACKUP para criação de backups, optimização de memória com o MEMMAKER, e um princípio de protetor antivírus, MSAV. Como suas duas antecessoras, a versão 6.0 mostrou ter várias falhas. Devido a reclamações sobre perda de dados, a Microsoft lançou uma versão atualizada, MS-DOS 6.2, com um utilitário DoubleSpace melhorado, um novo utilitário de checagem de disco, SCANDISK (similar ao fsck do Unix), além de outras melhorias. A versão seguinte, MS-DOS 6.21 (lançada em Março de 1994), surgiu devido a problemas legais. A empresa Stac Electronics acionou judicialmente a Microsoft, que foi forçada a remover o DoubleSpace de seu sistema operacional. 5 Em Maio de 1994, a Microsoft lançou o MS-DOS 6.22, com outro pacote de compressão de disco, DriveSpace, licenciado da VertiSoft Systems. O MS-DOS 6.22 foi a última versão stand-alone do sistema disponível ao público. Ele foi retirado do mercado pela Microsoft em 30 de Novembro de 2001. A Microsoft também lançou as versões de 6.23 a 6.25 para bancos e organizações militares Estadunidenses. Estas incluíam já suporte a partições FAT32. MS-DOS Versão 7.0 Nessa versão, o MS-DOS passou a existir apenas como uma parte dos sistemas Windows 9x (95, 98 e Me). A versão original do Microsoft Windows 95 incorporou o MS-DOS versão 7.0. A IBM lançou a última versão comercial de um DOS - IBM PC-DOS 7.0 - no início de 1995, que incorporava muitos novos utilitários, como antivírus, programas de backup, suporte a PCMCIA, e extensões DOS Pen. Também foram incluídas novas ferramentas que melhoravam a utilização de memória e espaço em disco. Tipo de Sistema Operacional O DOS é um sistema operacional monousuário (só pode ser usado por uma pessoa de cada vez) e monotarefa (ele só pode executar um programa de cada vez). A comunicação do usuário com o MS-DOS ocorre de dois modos, o modo interativo e o modo batch. Estrutura do S.O. O DOS possui funções básicas de kernel (núcleo do S.O) não reentrantes: só podem ser usadas por um programa de cada vez. Há uma exceção com programas TSR, e alguns TSR podem permitir multitarefa. Contudo, continua a haver um problema com a kernel não reentrante: sempre que um processo requer um serviço dentro da kernel do sistema operacional (Chamada de sistema), não pode ser interrompido por outra requisição até a primeira ter sido terminada. O DOS possui um kernel monolítico que é uma arquitetura de núcleo onde todo o núcleo é executado no espaço de kernel no modo de supervisão. Em comum com outras arquiteturas (micronúcleo, núcleo híbrido), o núcleo define uma camada de alto nível de abstração sobre o hardware do computador, com um conjunto de primitivas ou chamadas de sistema para implementar os serviços do sistema operacional como gerenciamento de processos, concorrência e gestão de memória em um ou mais módulos. Mesmo que cada módulo de manutenção dessas operações seja separada de uma forma geral, é muito difícil fazer o código de integração entre todos estes módulos, e, uma vez que todos os módulos 6 executam num mesmo espaço de endereçamento, um erro em um módulo pode derrubar todo o sistema. Processos Normalmente um computador tem o S.O. gravado em disco rígido, isto é, no drive C:, mas muitas vezes pode estar em disquete, sendo necessário inserir este disquete no drive A: para carregar a máquina. Ao ligarmos o equipamento é feita uma rotina de testes de hardware. Em seguida é acionado o drive A: para buscar o S.O. Se não estiver no A:, a procura é feita no drive C:. Quando encontra o S.O. ele é carregado automaticamente para a memória RAM. A partir deste momento qualquer programa pode ser rodado. Os arquivos do S.O. que são carregados para a memória RAM são: - Inicializador (Boot) ou registro de partida que ajuda a colocar o sistema no ar carregando os arquivos IO.SYS e MSDOS.SYS para a memória RAM. - IO.SYS e MSDOS.SYS que tem a função de receber e interpretar as instruções a serem executadas. - COMMAND.COM que faz a interface do usuário com a máquina. Nele, também, estão alguns comandos do S.O. Como acessar o MS-DOS Para acessar o DOS existe, basicamente, três formas. Se você estiver utilizando um sistema operacional antigo da Microsoft, como o Windows 95 ou o Windows 98, basta clicar em Iniciar / Desligar e escolher a opção Reiniciar o computador em modo MS-DOS (ou equivalente). Outra forma nessas versões do Windows consiste em clicar em Iniciar / Programas e selecionar Prompt do MS-DOS. Porém, este último procedimento faz acesso ao DOS com o Windows ainda carregado, o que significa que alguns comandos podem não funcionar. Se quiser ir direto para o DOS sem passar pelo Windows, pressione o botão F8 repetidas vezes assim que ligar a máquina até uma lista aparecer. Escolha, por fim, somente prompt de Comando. Se, no entanto, você utiliza um sistema operacional mais recente, como o Windows XP, o Windows Vista ou o Windows 7, o DOS em si não existe, mas sim um prompt que simula parcialmente suas funcionalidades. Isso ocorre porque esses sistemas não são "dependentes" do DOS como o são os Windows 95 e 98, por exemplo. Isso significa que, nos sistemas operacionais atuais, alguns comandos do MS-DOS podem simplesmente não funcionar. Para acessar o prompt de comando no Windows XP, basta digitar o comando CMD em Iniciar / Executar. Esse comando também pode ser executado no campo correspondente de sistemas como Windows Vista e Windows 7. 7 8 Comandos do MS-DOS e seu objetivo 1. Append - abre arquivos de dados em diretórios 2. Assign - direciona arquivos de um driver p/ outro 3. Attrib - modifica os atributos de um arquivo 4. Backup - copia arquivos de um disco rígido p\ driver 5. Break - verifica o pressionamento de CTRL + C 6. Cd/chdir - muda de um diretório para outro 7. Chcp - apresenta o código da pagina – NLSFUNC 8. Chkdsk - verifica e corrige erro no disco 9. Cls - limpa tela 10. Comp - verifica o conteúdo de dois arquivos 11. Copy - copia os arquivos da fonte para o destino 12. Ctty - indica uma saída serial com input/output 13. Date - apresenta e modifica a data de DOS 14. Dblspace - utilitário para compressão de dados 15. Debug - serve para verificar e altera um programa 16. Defrag - organiza dados dos arquivos no disco 17. Del - apaga um determinado arquivo 18. Deltree - apaga todos os arquivos de um diretório 19. Dir - apresenta arquivos contidos no disco 20. Diskcomp - compara o conteúdo de dois disquetes 21. Diskcopy - copia o conteúdo de disquete para outro disco 22. Doskey - reexecuta comandos digitados 23. Doshell - entra no modo MS-DOS 24. Edit - editor de texto do MS-DOS 25. Edlin - editor de texto desuso 9 26. Emm386 - ativa/desativa a memória expandida 27. Erase - apaga um determinado arquivo 28. Label - cria, altera ou apaga o nome do disco 29. Exe2bin - converte arquivo em EXE em formato COM 30. Expand - expande arquivos compactados pelo DBL 31. Fasthelp - apresenta informações de um comando 32. Fastopen - armazena na memória os diretórios 33. Fc - compara conteúdo de dois arquivos 34. Fdisk - faz partições no disco winchester 35. Find - procura linhas com strings 36. Format - prepara um disco para receber arquivos (formata o disco) 37. Graftabl - exibe característica gráficos no vídeo 38. Graphics - imprime o conteúdo da tela 39. Help - funciona como ajuda para comandos 40. Interlink - possibilita usar recursos entre dois micros 41. Intersvr - realiza as tarefas de servidor na rede 42. Join - une dois driver diferentes 43. Keyb - instala outro padrão de teclado 44. Mem - apresenta dados sobre o uso da memória 45. Msav - detecta presença de vírus no micro 46. Msd - diagnostica/ detecta defeitos de hardware 47. Power - reduz o consumo de energia 48. Prompt - muda o visual da linha de comando 49. Recover - recupera arquivo danificado 50. Restore - copia arquivos de driver para HD 51. Scandisk - checa e corrige erros no disco 10 52. Set - cria e apresenta parâmetros 53. Share - instala um recuso de rede 54. Sys - copia o MS-DOS de um disco para outro 55. Time - apresenta hora 56. Type - apresenta o conteúdo de um arquivo 57. Undelete - recupera arquivos eliminados 58. Unformat - recupera disco formatado p/ acidentes 59. Ver - apresenta a versão de MS-DOS 60. Verify - verifica a qualidade de gravação 61. Vol - apresenta nome e registro do disco 62. Vsafe - monitora micro 63. Xcopy - copia arquivos Gerência de Memória O MS-DOS possui uma Alocação Dinâmica de memória em que os dados não precisam ter um tamanho fixo, pois podemos definir para cada dado quanto de memória que desejamos usar. Sendo assim vamos alocar espaços de memória (blocos) que não precisam estar necessariamente organizados de maneira sequencial, podendo estar distribuídos de forma dispersa (não ordenada) na memória do computador. Na alocação dinâmica, vamos pedir para alocar/desalocar blocos de memória, de acordo com a nossa necessidade, reservando ou liberando blocos de memória durante a execução de um programa. Para poder “achar” os blocos que estão dispersos ou espalhados na memória usamos as variáveis do tipo Ponteiro (indicadores de endereços de memória). Sistema de Arquivo O sistema de arquivo original do MS-DOS foi baseado no CP/M. A princípio só existia um diretório. A partir da versão 2.0 foi adotado o modelo hierárquico do sistema de arquivo. A partir desta nova versão o diretório raiz podia ter subdiretórios e estes tenham novos subdiretórios. O sistema de arquivo usa os nomes “.” e “..” para indicar diretório corrente e diretório-pai respectivamente. Os nomes dos arquivos tem até 8 caracteres, seguidos de uma extensão de até 3 caracteres. Os nomes são formados por qualquer sequência legal de caracteres. O separador de diretório no mesmo é o “\”. Outra coisa interessante é que os arquivos PROFESSOR, 11 Professor, professor indicam um único arquivo, ou seja, ele desconsidera maiúsculas e minúsculas. Cada arquivo no MS-DOS tem atributos. Eles são quatro: 1. Readonly – o arquivo não pode ser modificado 2. Archive – o arquivo modificado desde o último arquivamento 3. System – arquivo de sistema que não pode ser apagado pelo comando del 4. Hidden – arquivo não listado pelo comando dir O MS-DOS suporta vários discos, então quando o usuário quiser remover um arquivo ele deve especificar o dispositivo como exemplo “a:” para unidade de disquete e “c:” para disco rígido por exemplo. O disquete e o disco rígido são organizados de forma diferente e vamos nos concentrar no segundo tipo. Todos os discos rígidos têm a mesma estrutura, mostrada na figura abaixo. O setor de boot tem dados críticos para o sistema de arquivo, além de código para inicializar o sistema. Depois vêm as tabelas que controlam todo o espaço do disco. Elas são seguidas pelo diretório-raiz e por todo o resto. Organização do disco no MS-DOS O setor de boot sempre começa com uma instrução de desvio incondicional, que salta pelas informações do setor e vai para o início do código, sem se preocupar com a estrutura interna do disco. Depois vem uma lista de informações como número de bytes do setor, o número de setores por bloco, o número de arquivos das tabelas de alocação, o tamanho do diretório raiz, o tamanho do dispositivo e outros dados. Após estes parâmetros vem o código de boot, e ao final a tabela de partição. Ela contém o começo e o termino de cada uma das partições do disco, até um máximo de quatro partições, cada uma podendo conter um sistema de arquivo diferente. Alguma das partições deve ser marcada como ativa para quando o boot do disco for acionado saber qual sistema inicializar. 12 Após o setor de boot encontra-se a FAT (Tabela de Alocação de Arquivos – File Allocation Table), a qual controla todos os espaços do dispositivo. Para ter-se confiabilidade esta tabela pode ser duplicada, de modo ao sistema tornar-se inacessível caso a FAT principal não possa ser lida por qualquer motivo. A FAT contém uma entrada para cada bloco do disco. O tamanho do bloco é obtido do setor de boot. O formato conceitual da FAT é mostrado na figura abaixo. O seu formato real retrocede às raízes do MS-DOS, baseado no CP/M. Há uma correspondência um-para-um entre as entradas da FAT e os blocos do disco, exceto pelas duas primeiras entradas, as quais possuem o código da classe do disco. No exemplo vemos que através da FAT descobrimos quais blocos ocupam cada arquivo. A entrada do diretório de cada arquivo possui o número do primeiro bloco que o mesmo ocupa, então a partir disso e com o auxílio da FAT temos que todo o arquivo é encontrado. Os blocos livres na FAT são marcados com um símbolo especial. Quando o arquivo cresce o MS-DOS procura por uma entrada livre na FAT, e aloca este para o arquivo. E os blocos que estão com falha são marcados na FAT com outro símbolo significando isto. FAT - Tabela de Alocação de Arquivo Exemplo de passos seguidos pelo MS-DOS para a chamada OPEN: O MS-DOS vai na tabela de descritores de arquivo, mantida como array de 20 bytes. Cada byte armazena um índice de 1 byte para a tabela de arquivos do sistema. Se for localizado um descritor de arquivo livre, busca-se uma posição livre na tabela de arquivo do sistema. Caso as duas operações tenham sucesso o caminho é analisado, se começar com \, o caminho é absoluto e a busca começa do diretório-raiz, senão o caminho é relativo, e a busca começa do diretório de trabalho. A entrada do diretório é copiada na tabela de arquivos do sistema, que tem uma entrada para cada arquivo aberto. Depois, o descritor de arquivo retorna ao processo que chamou OPE, e termina a execução da chamada. 13 Entrada de Diretório no MS-DOS Cada entrada de diretório no MS-DOS tem 32 bytes para cada arquivo ou diretório contido nele, conforme a figura acima. Os primeiros 11 caracteres guardam o nome do arquivo e sua extensão, logo depois tem-se o byte de atributos, contendo os seguintes bits: A - Igual a 1 quando o arquivo é modificado. D - Igual a 1 para indicar que a entrada é referente a um diretório. V - Igual a 1 para indicar que esta entrada é para o nome de volume. S - Igual a 1 para arquivos de sistema, que não podem ser apagados. H - Igual a 1 para indicar arquivos escondidos, ou seja, não listados pelo dir. R - Igual a 1 para indicar arquivos que não podem ser escritos. A data e a hora da última modificação feita no arquivo são armazenadas nos próximos campos. Os campos seguintes guardam número do primeiro bloco do arquivo e seu tamanho. Exemplo / particularidade O MS-DOS, apesar de só utilizar comandos que são digitados na tela, ele possui ainda assim o episodio IV(Uma Nova Esperança) de Stars Wars, onde é possível perceber a formação de imagens usando apenas simples caracteres. Para assistir é muito siga os seguintes passos: 1. Instale o Telnet Client (Painel de Controle / Adicionar-Remover programas...); 2. Vá ao menu Iniciar / Executar e informe "telnet towel.blinkenlights.nl" (sem as aspas); 3. Assista! 14 Bibliografia DAVIS, William S. Sistemas Operacionais Uma Visão Sistemática. Campus - Visto em 10/11/2011. Comando MS-DOS, http://bit.ly/siJvSA - Acessado em 18/11/2011. Fernando, PROF, http://bit.ly/uPNgmE - Acessado em 18/11/2011. Processor, Hardware Club, http://bit.ly/w1qRyd - Acessado em 18/11/2011. TANENBAUM, Andrew S. Sistemas Operacionais Modernos – Visto em 09/11/2011 15