Desenvolvedor cria DOS Subsystem para Linux (DSL)

Desenvolvedor cria DOS Subsystem para Linux (DSL)
DOS-subsystem-for-linux-DSL

O tédio e a falta do que fazer durante o isolamento social provocado pelo coronavírus levaram um desenvolvedor de Melbourne, na Austrália, a criar um DOS Subsystem para Linux (DSL). É uma ferramenta inédita para os usuários do DOS. Um ambiente Linux integrado semelhante ao que os usuários do Windows 10 desfrutam através do Windows Subsystem for Linux (WSL).

O desenvolvedor por trás desse DSL é Charlie Somerville, um engenheiro de software que gosta de programação de sistemas. Ele está interessado em computação retrô, especialmente quando se trata do Microsoft DOS e Windows dos anos 90.

Somerville disse que se inspirou no Windows Subsystem da Microsoft para Linux (WSL), então escreveu DSL para se divertir.

A princípio, ele só queria ver se conseguia fazer o Linux inicializar a partir da linha de comando do DOS. Depois que isso aconteceu, ele pensou em subir ainda mais o nível para ver se conseguia continuar executando o DOS depois que o Linux estivesse em execução.

Estou surpreso com a facilidade com que tudo funciona, considerando o quão duvidoso é tudodiz Somerville.

Desenvolvedor cria DOS Subsystem para Linux (DSL). Como funciona?

O subsistema DOS para Linux é como uma alternativa WSL para usuários que preferem trabalhar em um ambiente MS-DOS. DSL integra um ambiente Linux real em sistemas MS-DOS, que permite aos usuários executar aplicativos DOS e Linux a partir do prompt de comando DOS.

Para esclarecer como funciona o DSL, Somerville explicou em um tópico do Hacker News:

“Quando chama o DSL pela primeira vez na linha de comando, ele inicializa o kernel Linux. Ele assume o controle do computador a partir do DOS.“

Agora, aqui está o truque: DSL usa um recurso de processador chamado VM8086, que permite que um sistema operacional de 32 bits execute código legado de 16 bits principalmente de forma nativa. Esta abordagem de rodar o DOS no VM8086 é, na verdade, como funcionavam os primeiros Windows, extensores DOS, etc. O kernel Linux também suporta VM86. Porém, em grande parte sem documentação e não seja realmente usado atualmente.

O DSL então retorna ao DOS, que essencialmente houve inversão e agora está em execução em uma tarefa VM8086. Felizmente, o Linux não parece invadir a memória do DOS durante seu próprio processo de inicialização.

O DSL mal consegue emular hardware como o teclado para fazer as coisas funcionarem e, assim, permitir acesso ao hardware do DOS para todo o resto. Mas deve-se notar que rodar dois sistemas operacionais simultaneamente no mesmo hardware é extremamente frágil e inseguro, é claro. No entanto, parece funcionar surpreendentemente bem.

Então, você pode verificar o DSL no  Github. Ele parece estar funcionando no MS-DOS 6.22 e no FreeDOS.