# DOS

O DOS, sigla para Disk Operating System ou sistema operacional em disco é um acrónimo para vários sistemas operativos intimamente relacionados que dominaram o mercado para compatíveis IBM PC entre 1981 e 1995, ou até cerca de 2000 caso sejam incluídas as versões de Microsoft Windows parcialmente baseadas em DOS: Windows 3.11, 95, 98 e Me.
Os sistemas relacionados incluem MS-DOS, PC-DOS, DR-DOS, FreeDOS, PTS-DOS, ROM-DOS, Novell DOS, Caldera OpenDOS, entre vários outros.
Apesar do uso difundido, nenhum destes sistemas era chamado apenas por "DOS" (designação apenas dada a um sistema operativo para um mainframe IBM da década de 1960 sem qualquer relação com os demais). Um vasto número de sistemas operativos de disco não x86, sem qualquer relação entre eles, continham "DOS" na sua designação, e são frequentemente referidos simplesmente como "DOS" quando se discute as máquinas que os usavam (exemplos incluem AmigaDOS, AMSDOS, ANDOS, Apple DOS, Atari DOS, Commodore DOS, CSI-DOS, ProDOS, e TRS-DOS). Apesar de oferecerem muitas das mesmas funções do sistema operativo para os seus respectivos computadores, programas que corressem nalgum desses sistemas operativos geralmente não corriam noutros.

## Design

O DOS é um sistema operativo de single-user e single-task, com funções básicas de kernel não-reentrantes: só podem ser usadas por um programa de cada vez. Há uma excepção com programas TSR. Alguns TSR podem permitir multitasking. Contudo, continua a haver um problema com a kernel não-reentrante: sempre que um processo requer um serviço dentro do kernel do sistema operativo (chamada de sistema), não pode ser interrompido por outra requisição até a primeira ter sido terminada.
O DOS possui nativamente uma interface de linha de comandos através do seu interpretador de comandos, command.com, porém não existe apenas uma versão do DOS. A mais conhecida e popular é o MS-DOS, da Microsoft (por isso, as iniciais MS). Outros sistemas são os PC-DOS, DR-DOS e, mais recentemente, FreeDOS. Com o aparecimento das GUIs desenvolvidas primariamente por Douglas C. Engelbart, ou seja interface gráficas, como por exemplo o Microsoft Windows 1.0 e o Common Desktop Environment(CDE), o MS-DOS ficou em segundo plano, mas não foi esquecido. Hoje em dia temos inclusive diversos emuladores como o DOSBox que nos permitem rodar os antigos programas feitos para o DOS identicamente em qualquer máquina como antigamente. Também existe uma alternativa livre chamada "FreeDOS".

## História
### Origem

A IBM precisava de um sistema operacional para usar como padrão em sua nova linha de produtos, os PCs (Personal Computers, computadores pessoais) de 16 bits e tencionava comprar o sistema CP/M desenvolvido por Gary Kildall. Inicialmente, o pessoal da IBM contratou Bill Gates (que na época desenvolvia interpretadores da linguagem BASIC), acreditando que ele detinha os direitos sobre o CP/M; Gates, contudo, lembrou-se de Tim Paterson, programador da SCP, que havia desenvolvido o QDOS (posteriormente, 86-DOS). Ele entrou em contato com a SCP e comprou os direitos sobre o 86-DOS por (supostamente) US$ 50.000.
Pouco depois, Bill Gates contratou Tim Paterson, o desenvolvedor do QDOS, para trabalhar na Microsoft (onde ele ficou entre maio de 1981 até abril de 1982). Com algumas modificações no 86-DOS, surgiu o MS-DOS (MicroSoft Disk Operating System) o qual rapidamente dominou o mercado dos IBM-PC compatíveis. O ponto chave aqui foi a decisão de Gates, na época, em vender o MS-DOS para fabricantes de computadores com o objetivo de que estes pudessem incorporá-lo ao seu hardware, ao contrário da tentativa de Kildall de vender o CP/M individualmente (por preço mais alto) para usuários finais.

### A evolução do DOS

Mesmo tendo sido favorecido no início, o DOS não foi o único sistema operacional apresentado pela IBM para a plataforma PC. Dois outros sistemas foram também aprovados pela IBM oficialmente, o CP/M-86 (cujo antecessor, o CP/M-80, fora o sistema operacional dominante da geração 8 bits de microcomputadores) e o UCSD p-System.
O projeto do DOS foi baseado intimamente nas facilidades oferecidas pelo CP/M e as ideias por trás dele, e a razão principal era para fazer com que os usuários de computador acostumados com o CP/M pudessem aprender o DOS rapidamente, além de tornar mais fácil adaptá-lo aos programas já existentes para o CP/M em 8 bits.
A influência do CP/M no DOS aparece desde a sua interface de comando quando o usamos pela primeira vez, o pronto(prompt) de comando C:\>, ou como surge no no CP/M A>. O DOS também demonstra a influência do CP/M nas maneiras que lida com o usuário e como trabalha com seus programas.
O DOS foi feito tendo o pressuposto de que apenas uma pessoa estaria usando o computador e que um único usuário estaria pedindo que o computador só executasse uma tarefa de cada vez(não se poderia por exemplo, imprimir um documento e executar um outro comando ao mesmo tempo). O DOS foi feito para ser usado em um ambiente monousuário e monoprocessamento, seguindo os mais simples conceitos do uso da computação e era natural que fosse feito desta forma, pois suas raízes vieram de um sistema operacional e de máquinas de 8 bits.
A família PC 16 bits foi projetada de outra forma, e a herança CP/M limitava desta forma o DOS, por outro lado o Unix era um sistema operacional muito admirado pelas suas características, e a Microsoft tinha experiência no universo Unix, criando inclusive uma distribuição própria o Xenix. Assim quando chegou o momento de uma revisão das funcionalidades do DOS, muito da ideologia Unix foi implementado na nova versão do sistema. O resultado foi a versão 2.0 do DOS, e esta influência está presente em todas as versões depois desta e era visível a todos os usuários do DOS nos subdiretórios que eram usados para gerenciar os arquivos no disco. Esta influência se mostra ainda mais forte na estrutura interna e nos serviços oferecidos pelo sistema.
O DOS originalmente dava a cada programa o controle total do computador e de sua memória, e foi bastante complicado fazer com que as versões mais avançadas do DOS impusessem as limitações que são necessárias para que seja possível obter 2 programas rodando ao mesmo tempo no computador, o multiprocessamento.
O DOS foi primeiro na plataforma de 16 bits a ter uso bastante disseminado (e permaneceu assim por mais 10 anos). A variante MS-DOS, citada às vezes (coloquialmente) como ''Messy DOS'', foi desenvolvida a partir do QDOS, que significava literalmente "Quick and Dirty Operating System" (em uma tradução livre, Sistema Operacional Rápido e Sujo).
Os IBM-PC foram distribuídos apenas com o PC-DOS, enquanto os computadores PC compatíveis de quase todos os outros fabricantes foram distribuídos com o MS-DOS. Nos primeiros anos dessa família de sistemas operacionais, o PC-DOS era ainda idêntico ao MS-DOS. Mais recentemente, versões livres do DOS, como o FreeDOS e o OpenDOS surgiram.
O DOS é considerado o produto que decidiu o destino da iniciante Microsoft. O MS-DOS foi sucedido por duas linhas de produtos: o OS/2 e o Windows 95. Versões mais antigas do Microsoft Windows, antes do Windows 95, eram pouco mais que uma shell gráfica para DOS, e as posteriores eram bastante integradas com o MS-DOS. É possível também rodar programas de DOS sob outros sistemas operacionais como o OS/2 e o Linux usando emuladores (máquinas virtuais).
Por causa de sua longa existência e de sua presença massiva no universo da plataforma PC-compatível, o DOS foi considerado frequentemente como o seu sistema operacional nativo.

## Características técnicas
### Prompt de comando

* C:\> é o prompt de comando oficial do MS-DOS, e se não alterado, seu aspecto indica a letra da unidade de disco e o caminho corrente (diretório atual), em que se está posicionado. Em versões anteriores, o prompt de comando era representado apenas por A>, onde apenas a unidade de disco era exibida.

### Principais Comandos

Os principais comandos do DOS são:
    dir - Exibe a lista de arquivos (com informações como tamanho, data, hora).
    md - Cria uma nova pasta.
    cd - Entra em determinada pasta.
    rd - Exclui determinada pasta.
    date - Edita ou exibe a data do computador.
    time - Edita ou exibe a hora do computador.
    mkdir - Cria um diretório (pasta) novo. Ex. md pasta
    chdir - Muda de diretório (pasta). Ex. cd pasta
    cls - Limpa o conteúdo da tela.
    echo - Exibe um conteúdo texto na tela. EX. echo "conteúdo"
    help - Exibe a relação completa dos comandos.
Importante: Os comandos sempre são executados após o pressionamento da tecla ENTER.

### Principais Extensões de arquivos

    .com - Arquivos executáveis (pequenos e rápidos).
    .exe - Arquivos executáveis (padrão, podendo conter códigos tanto para 16, 32 ou 64Bits).
    .bat - Arquivos de lote (normalmente possuem uma sequencia de comandos que são executados em Lote, um pós o outro e seu uso é bem amplo e funcional).
    .txt - Arquivos de texto (normalmente texto puro, legível pelo editor oficial do DOS, EDIT).

### Comunicação paralela

As comunicações paralelas podem ser testadas no dos usando-se comandos com desvio direto para a porta paralela: DIR >LPT1123
Após o comando acima se você possui uma impressora na porta LPT1 a mesma deverá imprimir o conteúdo do diretório atual.

### Mensagens de erro

* Abortar, Repetir, Falhar é uma mensagem de erro do MS-DOS que surge quando o computador não consegue aceder a uma drive de armazenamento de dados, normalmente, o disco rígido, disquete ou CD, implicitamente pede ao usuário acionar as teclas: "A" para abortar a operação, "R" para tentar ler novamente os dados, ou "F" para tentar prosseguir sem ler os dados.

## Emuladores de DOS

Sob um sistema Linux é possível rodar cópias de DOS e muitos de seus clones sob o DOSEMU, uma máquina virtual nativa de Linux, para rodar aplicativos em modo real. Há vários outros emuladores para rodar DOS sob várias versões de UNIX, mesmo em plataformas não-x86.
Emuladores de DOS foram adotados, mesmo por usuários de Windows XP, devido à incompatibilidade do sistema com o DOS puro. Muitos usuários encontram dificuldades para jogar jogos abandonware feitos para DOS, por isso, um dos mais famosos emuladores, criado especificamente para esse uso, é o DOSBox, um emulador em modo janela (opcionalmente em tela cheia) para sistemas operacionais modernos. Outro emulador, criado principalmente para o setor de negócios é o ExDOS, que permite, entre outras coisas, exibição em tela cheia, compatibilidade total com hardware e ferramentas de impressão.