Halfix é um emulador X86 portátil escrito em C99. Ele permite que você execute sistemas operacionais herdados em plataformas modernas.
Fiz isso principalmente por diversão e porque era uma ótima maneira de aprender sobre a arquitetura X86 PC. Em um nível mais prático, ele pode ser usado para:
Você precisará de node.js , um compilador compatível com C99, zlib e EMSCRIPTEN (apenas se você estiver segmentando o navegador). Certifique -se de que as bibliotecas necessárias estejam em um local onde o compilador possa encontrá -las. Nenhuma configuração pré-construção é necessária.
O driver de exibição usa libsdl , mas se você estiver no Windows, há uma porta nativa que usa a API Win32 e não requer SDL.
# Debug, native
node makefile.js
# Debug, Emscripten, asm.js
node makefile.js emscripten
# Debug, Emscripten, WebAssembly
node makefile.js emscripten --enable-wasm
# Release, native
node makefile.js release
# Release, Emscripten, asm.js
node makefile.js emscripten release
# Release, Emscripten, WebAssembly
node makefile.js emscripten --enable-wasm release
# Win32 API build (no SDL required)
node makefile.js win32
# Win32 API build, release
node makefile.js win32 release
# For more options and fine tuning
node makefile.js --help
# Chunk an image
node tools/imgsplit.js os.img
# Run in browser
http-serverVerifique o Wiki do projeto para obter mais detalhes.
It boots a wide range of operating system software, including all versions of DOS, most versions of Windows (excluding Windows 8), newer versions of OS/2 Warp (3 and 4.5), ReactOS, some varieties of Linux (ISO Linux, Damn Small Linux, Red Star OS 2, Buildroot, Ubuntu), 9Front, NeXTSTEP, several hobby OSes, and probably more.
Veja a compatibilidade para obter mais detalhes.
Você pode executar o emulador dentro do emulador?
Sim, mas não muito rapidamente.

Ms-dos

OS/2 Warp 4.5

Windows Vista

Windows 7

A mesma imagem de disco do Windows 98 que no Halfix na captura de tela Halfix em execução no Firefox

CPU-Z no Windows XP

Windows 10

Ubuntu

Crie um diretório com todos os arquivos que você deseja transferir e criar uma imagem ISO.
mkisofs -o programs.iso -max-iso9660-filenames -iso-level 4 programs/
Agora atualize o arquivo de configuração da seguinte forma:
# Note: it does not hae to be ata0-slave.
# I have not tested it with anything but ata0-slave.
[ata0-slave]
inserted=1
type=cd
file=/tmp/programs.iso
driver=sync
Agora inicialize seu sistema operacional e copie os arquivos do CD-ROM para o disco rígido.
GNU Licença pública em geral versão 3
O emulador FPU usa uma versão modificada do Berkeley Softfloat do emulador Bochs.