Qual versão do MS-DOS a Rufus usa para criar USBs inicializáveis?

74

O Rufus permite a criação de uma unidade flash inicializável do MS-DOS. Faz isso imediatamente, como uma opção, sem precisar especificar uma imagem ou ISO.

Interface principal Rufus

No entanto, a documentação da ferramenta é praticamente inexistente, e não consigo encontrar nada que especifique qual versão do DOS o programa usa para esse fim. Alguém sabe?

Hashim
fonte
1
Por curiosidade, por que você precisa saber disso?
Ooker
4
@Ooker - Uma mistura de curiosidade e os motivos dados no meu comentário sobre a resposta aceita. Eu precisava principalmente ter certeza de que ele não era o DOS 6.22 e, portanto, não estava perdendo tempo descobrindo como criar um USB inicializável a partir do 6.22.
Hashim
2
Quase todo mundo que não entra em conflito de licença usa o FreeDOS para esse tipo de disco de inicialização.
Eckes

Respostas:

197

Desenvolvedor Rufus aqui.

Conforme apontado corretamente por @ magicandre1981, a versão do MS-DOS fornecida pela Rufus é o MS-DOS do Windows Millenium Edition, "descriptografado" para ativar a inicialização (eu não inventei esse patch, mas o peguei no HP USB e outros Ferramentas).

Além disso, e essa é a parte importante, o Rufus NÃO incorpora os arquivos do MS-DOS no aplicativo, mas os coleta no sistema Windows em que está sendo executado, porque, como os binários do MS-DOS são de propriedade da Microsoft, os direitos autorais são propriedade da Microsoft, é ilegal para qualquer outra pessoa, exceto a Microsoft, distribuir binários do MS-DOS, seja em um arquivo zip ou em um aplicativo (na verdade, parece que a HP teve problemas legais com a Microsoft quando tentaram produzir uma versão de seu Utilitário HPUSBFW que incorporou os arquivos do Windows 98 MS-DOS e a Microsoft rapidamente os interrompeu.

Portanto, até o Windows 10, contávamos com o fato de que os arquivos do MS-DOS (do Windows ME) estavam incluídos na DLL ( diskcopy.dll) que o Windows usa para criar os disquetes inicializáveis ​​do DOS (que na verdade contêm uma imagem FAT completa do disquete inicializável) , e selecionamos os arquivos a partir daí, o que podemos fazer legalmente.

No entanto, com a introdução do Windows 10, a Microsoft abandonou a capacidade de criar disquetes inicializáveis ​​(já que é esperado que ninguém que use o Windows 10 inicialize a partir do disquete) e removido diskcopy.dll. Isso significa que não temos mais uma maneira legal de criar unidades flash USB inicializáveis ​​para MS-DOS, e o resultado final é o seguinte:

  • Se você usar o Rufus no Windows XP para o Windows 8.1: poderá criar USBs inicializáveis ​​com FreeDOS ou MS-DOS (edição WinME).
  • Se você usa o Rufus no Windows 10 ou posterior: você pode criar USBs inicializáveis ​​apenas com o FreeDOS.

Na prática, ainda não encontrei um relatório tangível de alguém indicando que o FreeDOS não funciona onde o MS-DOS funciona, e é por isso que não considero a perda de suporte do MS-DOS no Windows 10 uma grande perda. Além disso, em vez de usar o MS-DOS, que é de código fechado e que a Microsoft parou de oferecer há muito tempo, o FreeDOS é de código aberto e com suporte ativo; portanto, é melhor usar o FreeDOS.

Akeo
fonte
4
Ei, colega. Agradeço sua opinião e obrigado por uma ótima ferramenta. Você se importaria de lançar alguma luz por aqui: superuser.com/questions/1228065/… . Não consigo convencer o Rufus a instalar o MS-DOS 6.22 a partir de uma ISO e, pelo que você está dizendo, isso não parece ser um problema legal. Preciso do DOS 6.22 porque não posso me arriscar a usar uma alternativa, uma vez que o utilitário que executarei é incrivelmente nicho e tem o potencial de quebrar coisas caras, se não estiver 100% certo, por isso realmente aprecio sua ajuda por lá.
Hashim
2
Não consegui usar o FreeDOS para atualizar meu BIOS no meu laptop, mas consegui usar um disco de inicialização do Windows 98. Dito isto, tudo o que eu precisava fazer era sair e encontrar uma imagem de disco de inicialização online. Não é como se enviassemos avisos DMCA sobre ele.
trlkly
7
Seria bom mencionar explicitamente que esta versão do DOS do Windows ME está estampada como MS-DOS 8.0. Os do Windows 95a e 95OSR / 98 / 98SE eram respectivamente o MS-DOS 7.0 e 7.1. Algumas pessoas vão se referir a um MS-DOS 7.11, mas eu não tenho certeza do que se alguma coisa adicionado a 7,1
underscore_d
3
O MS-DOS 7.10 adiciona suporte ao FAT32, @underscore_d. Essa é a grande diferença entre 7.10 e 7.00. Observe também que não existe o "DOS 7.1". Os números de versão da MS são sempre X.YY. As cópias do DOS 7.1 circulando na Web são algo que algumas pessoas juntam, tirando uma cópia da versão do DOS fornecida com o 95OSR2 / 98 / 98SE e invadindo o COMMAND.COM com um editor de texto para reportar a versão 7.1. E, é claro, apenas para completar, o DOS 8.00 é o que acompanha o WinME, que removeu o suporte em modo real para que o DOS inicialize no modo protegido, com o HIMEM integrado.
Cody Gray
2
Corrigir. Nenhuma partição de inicialização FAT32 anterior ao MS-DOS 7.10. Ou qualquer partição FAT32, para esse assunto! Você também não poderá acessar discos rígidos grandes, pois essas versões mais antigas do DOS não sabem nada sobre LBA ( endereçamento de bloco lógico ) e usam chamadas de interrupção antigas do BIOS da ROM para E / S de disco, em vez das mais recentes " Extensões INT 13h ". Outras curiosidades: você precisa do MS-DOS 4.00 (oficialmente, 3.3 não oficialmente com certas limitações) para oferecer suporte ao FAT16 (anteriormente, apenas o FAT12 era suportado). @Hashim
Cody Gray
36

Ele extrai a versão do arquivo do Windows diskcopy.dll

/* Extract the MS-DOS files contained in the FAT12 1.4MB floppy
   image included as resource "BINFILE" in diskcopy.dll */
static BOOL ExtractMSDOS(const char* path)

observando outros comentários no dos.c que são os arquivos DOS do WinME (DOS 8.0), ele faz o mesmo patch como mostrado aqui :

* COMMAND.COM e IO.SYS do diskcopy.dll são da versão corrompida do WinME  
* que removeu o DOS de modo real => eles devem ser corrigidos:  
* IO.SYS 000003AA 75 -> EB 
* COMMAND.COM 00006510 75 -> EB 
magicandre1981
fonte
Haha, vencido por 20 segundos. +1 no trabalho de detetive, investigar o código-fonte nem me ocorreu. Eu dei uma olhada na página da Wikipedia em modo real, mas ainda estou um pouco confuso. Em termos práticos, o que o modo real faz e esse patch restaura toda a sua funcionalidade?
Hashim
Apenas para algum fundo interessante, eu também me deparei com um problema onde o / a desenvolvedor fala sobre isso: github.com/pbatard/rufus/issues/545
Hashim
11
O modo real é um modo em x86 cpus com acesso direto ilimitado ao software a toda a memória endereçável, endereços de E / S e hardware periférico. O modo real não oferece suporte aos níveis de proteção de memória, multitarefa ou privilégio de código. Mas isso é necessário para o uso real do DOS, mas causou problemas de estabilidade no Win95 e Win98. Com esta remoção, o WinME ficou mais estável
magicandre1981
ok, eu ainda uso o Windows 8 no meu laptop principal e aqui o arquivo ainda está incluído. Portanto, esta opção é oferecida apenas em versões mais antigas.
precisa saber é o seguinte
2
Obviamente, o modo real também é limitado ao barramento de endereços de 80 bits dos 8086/8088, para que você possa endereçar apenas 1 MiB de memória. O 80286 eliminou essa restrição expandindo para um barramento de endereços de 24 bits e adicionando o modo protegido, permitindo que a CPU endereças 16 MiB de memória (que era uma enorme quantidade de RAM em 1982, mais do que a maioria dos PCs tinha armazenamento fixo ). O código do modo protegido 286 não era tão comum na prática (estou olhando para você, OS / 2 e Xenix) e, enquanto o 80386 introduziu o modo protegido de 32 bits em 1985, levou mais uma década para o modo protegido de 32 bits o software tornou-se razoavelmente comum em PCs.
um CVn
10

Eu decidi testá-lo eu mesmo. Criei um USB inicializável executando o MS-DOS usando o Rufus e inicializei nele no meu laptop. Uma vez no MS-DOS, executei o vercomando para determinar sua versão, que retornava o Windows Millennium, também conhecido como Windows ME.

Suponho que isso signifique que a versão do MS-DOS usada pelo Rufus é extraída do Windows ME, em vez de ser uma das versões independentes anteriores. Como essa versão integrada ao ME difere das versões anteriores, não tenho certeza.

Hashim
fonte
4
veja minha resposta . Ele recebe a imagem DOS a partir de arquivos do Windows
magicandre1981