Windows NT kör inte direkt processer från andra operativsystem. Den har en strikt definierad arkitektur och kärna. En process sammanställd för Linux, macOS eller ett annat operativsystem körs inte naturligt på Windows NT (eller någon modern Windows -version).
För att uppnå effekten av att köra processer från andra operativsystem behöver du mellanhandslösningar:
* virtuella maskiner (VM): Detta är det vanligaste tillvägagångssättet. Programvara som VMware, VirtualBox eller Hyper-V skapar en virtualiserad miljö inom Windows NT. Denna virtuella miljö emulerar hårdvaran för ett annat operativsystem (t.ex. en Virtual Machine i Linux). Du installerar sedan det andra operativsystemet inom VM och kör processerna inom det gäst -operativsystemet. Windows NT Host OS hanterar VM och tilldelar resurser, men gäst OS hanterar sina egna processer oberoende.
* containrar (t.ex. Docker): Behållare ger en mer lätt form av virtualisering. I stället för att emulera hela hårdvaran delar containrar värd OS:s kärna och bara virtualiserar de nödvändiga resurserna som filsystem och nätverksgränssnitt. Medan containrar kan köra processer med olika funktionaliteter (t.ex. en Node.js -app inom en Linux -behållare på Windows), kräver de fortfarande en kompatibel container runtime -miljö (som Docker Desktop) på Windows NT -värden. Den grundläggande kodutförandet ligger fortfarande inom en kompatibel miljö, inte direkt på NT -kärnan.
* tvärkompilering: Du kan sammanställa källkoden för ett program som ursprungligen var skrivet för ett annat operativsystem för att rikta in Windows NT (eller Windows) -plattformen. Detta kräver en tvärkompilerare som kan översätta koden till Windows-kompatibelt körbart format. Detta skapar en inbyggd Windows -process, inte en process som körs under en annan OS -miljö.
Kort sagt:Windows NT stöder inte direkt körprocesser utformade för andra operativsystem. Det enda sättet att driva dem är att skapa en miljö (VM, behållare eller genom att kompilera) som överbryggar kompatibilitetsgapet.