4 ms·
Can someone explain the context here? Surely NT is closed source and was never developed for macs, what actually is this? And what are the chances you can get s
by _yb2s 2y ago
Can someone explain the context here? Surely NT is closed source and was never developed for macs, what actually is this? And what are the chances you can get software for it? Presumably most NT software was compiled for Intel only and closed source.
- nullindividual 2y agoNT4 was developed for PowerPC architectures (and MIPS, Alpha). A large portion of the NT4 source code was leaked [0]. I'm not saying the author used the NT4 source code in any fashion, but I would imagine using such source would make life much easier to accomplish this task. Or the author clean room reversed engineered the bootloader. Or there is enough information out there to forgo the need for any internal knowledge of Windows code. The PPC code base was never explicitly targeted for Macs, but other systems from IBM/Motorola; but because it is a 'common' platform, the binaries themselves on the NT4 ISO do not need modification. And yes, you can find the source code on GitHub. In multiple repos! [0] https://www.neowin.net/news/exclusive-windows-2000--windows-nt-4-source-code-leaks/ https://www.neowin.net/news/exclusive-windows-2000--windows-...
- temac 2y agoNt has a dynamic HAL layer to adapt it to platforms. I'm not sure if it was publicly documented, but in any case yes the source code leak don't harm that kind of port, even if you "just" have to write a HAL.
- sumtechguy 2y agoThe current PE exe format supports it. As well as a few Alpha, a few ARM formats, a few MIPS format, Itanium and of course x86. The big part would be finding a compiler that spits out the right code. The preceding NE format also did a few variations.
- aeyes 2y agoIsn't this just drivers and a HAL? Microsoft built the OS in a way so that such ports would be possible so there should be some API documentation out there. The question is how complete it is because everybody just used the MS provided HAL.
- hylaride 2y agoYeah, I think the only commercial OEM releases of NT that got sold were x86 and Alpha, though there was support for a handful of specific MIPS and PPC machines, I don't think there were any OEM sales of them with it. I do know that only x86 and Alpha had all the service packs released. There were also at one time internal MS builds on Sparc, but that didn't last long. Alpha did have some pre-release builds of windows 2000 that went out, but there was no final release. A fun fact is that because of where he worked at the time was a DEC shop, the creator of PuTTY originally created it because he got an alpha windows machine and there was no compatible terminal emulator for alpha NT. He supported alpha builds well into the 2000s and IIRC only dropped it as the machine he was using still for builds finally died.
- fredoralive 2y agoNT was designed to be portable, so the machine specific parts are cleanly separated, even on the same CPU. So if you port only those parts, the existing binaries for an architecture should work. The three bits are: 1) ARC boot firmware. NT was developed on non-x86 systems like i860 then MIPS, and ARC is the native boot firmware used (on x86 NTLDR emulated it prior to Vista). Similar to a PC BIOS / UEFI, and a PCI PowerMac would use OpenFirmware. As well as providing an ARC compatible environment that loads over OpenFirmware, this project seems to does some fun so the boot firmware can pretend there's a storage device so that driver "floppies" can be loaded during the initial stages of setup. (ie an F6 disc) 2) A HAL. The main NTOSKRNL is hardware agnostic, so the idea is that there's one binary for each CPU architecture. But the kernel needs to interface with actual timers, busses etc., so the interface code is in HAL.DLL and the appropriate one is copied by setup. (For example see https://www.geoffchappell.com/studies/windows/km/hal/history/index.htm https://www.geoffchappell.com/studies/windows/km/hal/history... for a list of x86-32 ones in older versions of windows, with various HALs for NEC PC-98, IBM MCA, various early multiprocessing systems, nowadays there's just one AMD64 one that's mostly in the kernel itself). So the main kernel in unaltered, and halgoss handles the Mac specific stuff. 3) Device drivers. Once NT is up and running it does need actual drivers. The specs for 1) are known, so can presumably be emulated, and I guess there's a DDK for 3) (or it can be deduced from another DDK), I guess 2) is probably the one that would need the most insider knowledge, I'm not sure if the leaked NT sources go down to that level as I've never looked at them. As for compatibility, 32 bit PowerPC Win32 binaries, 16 bit x86 Win16 binaries, and whatever x86 DOS stuff will run in an NT4 DOS box. No x86 Win32, only Alpha had an emulator for Win32 x86 stuff (until ARM stuff).
- mycall 2y agoI remember migrating whole Windows installations using image copies, but taking a fresh install's HAL files and copying them onto the images and volla, system transfer completed (device drivers would need reinstalling though).
- amelgares 2y agoThe Xbox 360 was PowerPC running a variant of the Windows 2000 (NT) OS. https://en.wikipedia.org/wiki/Xbox_360_technical_specifications https://en.wikipedia.org/wiki/Xbox_360_technical_specificati...