Время на прочтение2 мин
Количество просмотров2.6K
Энтузиаст представил способ, который позволяет запускать Windows NT 4 на старых компьютерах Apple Macintosh с процессорами PowerPC. Таким образом, он смог преодолеть технические ограничения, которые существовали около 30 лет.
Проект maciNTosh позволяет перенести Windows NT версии 4 1996 года на ряде ПК Apple 1997 года.
С момента выхода Windows NT была мультиплатформенной ОС: наряду с x86-32 она также работала на компьютерах с DEC Alpha, MIPS и процессорах Apple/IBM/Motorola PowerPC. Однако проблема заключалась в том, что NT требовался один конкретный тип прошивки для работы на RISC-компьютерах: в частности, совместимый со спецификацией ARC консорциума ACE. Для машин PowerPC существовал другой стандарт прошивки: открытая и ратифицированная IEEE. В результате Windows NT для PowerPC не могла работать на компьютерах Apple.
Windows NT версии 4 можно было установить на ПК с PowerPC только при наличии PReP или рабочей станции CHRP, но большинство, конечно же, не использовали этот метод.
Разработчик с ником Wack0 на Github портировал версию прошивки PowerPC ARC, а также загрузчик в оперативную память и создал некоторые базовые драйверы для запуска клавиатуры, мыши и IDE. Он использовал код из нескольких других проектов, включая OpenBIOS и Coreboot. Новый проект maciNTosh позволяет запустить Windows NT 4 на iMac G3, PowerMac G3 Blue and White, PowerBook G3 Lombard и PowerMac G4 Yikes. Хотя производительность системы на этих компьютерах невысокая, однако метод в целом работает.
Ранее разработчик и ветеран Microsoft Дэйв Пламмер раскрыл историю создания меню «Пуск» для Windows NT. Он пояснил, что в этой ОС появился способ поворота контекста устройства, и это позволило использовать системные шрифты для отображения текста баннера меню «Пуск» под углом 90 градусов.
Windows NT for Power Macintosh
This repository currently contains the source code for the ARC firmware and its loader, targeting Power Macintosh systems using the Gossamer architecture (that is, MPC106 «Grackle» memory controller and PCI host, and «Heathrow» or «Paddington» super-I/O chip on the PCI bus). That is, the following systems:
- Power Macintosh G3 (beige)
- Macintosh PowerBook G3 Series «Wallstreet», «PDQ»
- iMac G3 (tray-loading)
- Power Macintosh G3 (Blue & White) «Yosemite»
- Macintosh PowerBook G3 Bronze Keyboard «Lombard»
- Power Macintosh G4 PCI «Yikes!»
The repository additionally contains the source code for the ARC firmware and its loader, targeting PowerPC Macintosh systems using the Mac99 architecture (the first iteration of which being the «Uni-North» memory controller and PCI host, and «KeyLargo» super-I/O chip on the PCI bus; later derivatives like «Intrepid» are also supported). That is, the following systems:
- PowerBook G3 Firewire «Pismo»
- iBook G3
- iBook G4
** The mid-2005 iBook G4 (PowerBook6,7
) uses a USB mouse internally and therefore mouse will not work yet. - PowerBook G4
** The early 2005 and later PowerBook G4s (PowerBook6,8
andPowerBook5,6
and later) use a USB keyboard and mouse and are therefore currently not practically supported.
The following systems are theoretically supported, but currently not practically supported due to the lack of USB drivers:
- iMac G3 (slot-loading)
- iMac G4
- Power Macintosh G4 (AGP «Sawtooth» and later)
There may be issues on your hardware.
NT HAL and drivers have no source present for now.
Drivers present in ARC firmware
- Cuda and PMU
- ADB keyboard
- Flat 32bpp video framebuffer, set up by the loader. Both ATI and nVidia hardware is supported, although some nVidia GPUs do not currently work.
- Mac I/O internal IDE controllers, forked from OpenBIOS (there are no drivers for PCI IDE controllers!)
** The ATA-6 controllers used on some later Mac99 systems (Intrepid, U2) are supported. Please note LBA48 is not yet supported. - On pre-Mac99 systems, MESH SCSI controller.
- USB OHCI forked from OpenBIOS (on pre-Mac99 systems, broken, nonworking, and initialisation code commented out)
Drivers currently done for NT
- HAL for Gossamer chipset, including: NT boot time framebuffer, super I/O interrupt controller, Grackle PCI bus support, Cuda and PMU (including low level ADB), serial port for kernel debugging only
- HAL for Mac99 chipset, including: NT boot time framebuffer, MPIC interrupt controller, support for all 3 PCI busses on Uni-North (of which one is AGP, but only the PCI subset is supported), PMU (including low level ADB), serial port for kernel debugging only
- Mac I/O internal IDE controllers and ATA-6 controllers, forked from
atapi.sys
from NT4 DDK - General HID/storage driver, intended to also contain a USB stack in future but currently only implements ADB keyboard/mouse and ramdisk as floppy drive for installing drivers at text setup time
- Flat 32bpp video framebuffer miniport driver
Software compatibility
NT 3.51 RTM and higher. NT 3.51 betas (build 944 and below) will need kernel patches to run due to processor detection bugs. NT 3.5 will never be compatible, as it only supports PowerPC 601.
(The additional suspend/hibernation features in NT 3.51 PMZ could be made compatible in theory but in practise would require all of the additional drivers for that to be reimplemented.)
Installing
Preliminary
- Grab binaries for your system from the releases page.
- For Gossamer/Grackle systems, burn the image to optical media. Be sure to use the correct image for your system: use
nt_arcfw_grackle_ow.iso
for an Old World system (PowerMac G3 beige, PowerBook G3 Wallstreet/PDQ) andnt_arcfw_grackle.iso
for a New World system (iMac G3 tray-loading, PowerMac G3 blue&white, PowerBook G3 Lombard, PowerMac G4 Yikes).- For Mac99 systems, you can write the image to a USB drive.
Partitioning Disk
- Boot your PowerMac from the burned optical media.
- For Mac99 laptops, you can boot to Open Firmware and use the command
probe-usb multi-boot
to show the boot menu with USB device present.
- For Mac99 laptops, you can boot to Open Firmware and use the command
- When you get to ARC firmware menu, go to
Run firmware setup
, thenRepartition disk for NT installation
. - The disk partitioner will first let you enter partition size of the NT partition (up to the 16383x16x63 CHS limit, minus 32 MB ARC system partition + 1 MB for partition tables / MBR backup / OS 9 drivers / ARC environment variable storage, giving a maximum possible size of 8030 MB), then will drop to a menu allowing the creation of additional Mac partitions.
- If you choose an NT partition size over 2GB, the partition will be formatted to NTFS.
- Please be aware that in releases before 2024-11-11, the NTFS version used for formatting is incompatible with NT 3.51, so if you want to install NT 3.51, use a partition size that is 2GB or lower.
- After adding a partition to the list, the only way to remove from the list is by cancelling the operation and starting the partitioner again.
- If you choose an NT partition size over 2GB, the partition will be formatted to NTFS.
- After you have created all Mac partitions you want, choose
Finish partitioning and install
, and confirm the operation. - When finished, the partitioner will ask to
Press any key to restart
. Do so, and boot your PowerMac from the CD or USB drive again.
Installing NT
- For Gossamer/Grackle systems, if ARC firmware does not show
drivers.img ramdisk loaded
, go toRun firmware setup
, thenLoad driver ramdisk
— make sure it succeeds before continuing. - Eject CD and insert your NT 4 or NT 3.51 CD.
- For Mac99 systems, the option to eject the CD is in the
Run firmware setup
menu.
- For Mac99 systems, the option to eject the CD is in the
- Go to
Run a program
and enter the pathcd:\ppc\setupldr
— this may becd01:
orcd02:
(…) if you have multiple optical drives present on your system.- This may error with
The file or device does not exist
, just go back toRun a program
and try again if so.
- This may error with
- NT setupldr will start.
- You will receive the message
Setup could not determine the type of computer you have
. - Choose
Other
(default selected option), just pressEnter
when asked for hardware support disk. - Pick your system from the list — all are equivalent and will load the correct HAL for your system, which is either the Gossamer chipset HAL
halgoss
or the Mac99 chipset HALhalunin
.
- You will receive the message
- Next you will receive the message
Setup could not determine the type of one or more mass storage drivers installed in your system
. Two drivers need to be loaded at this point:- press
S
to pick a driver, chooseOther
from the list, pressEnter
when asked for hardware support disk - Choose the first driver
Mac I/O IDE Controller
- follow the previous steps again, but this time choose the second driver
PowerMac General HID & Storage
- finally, press Enter to continue
- press
- You will receive the message
Setup could not determine the type of video adapter installed in the system
. ChooseOther
from the list, pressEnter
when asked for hardware support disk, and choose the correct option depending on the OS you are installing.- There are two options in this list;
Open Firmware Frame Buffer
is for NT 4,Open Firmware Frame Buffer (NT 3.x)
is for NT 3.51.
- There are two options in this list;
- NT will boot and text setup will start. Go through the text setup.
- Under
Setup has determined that your computer contains the following hardware and software components
, changeKeyboard
fromUnknown
toXT, AT or Enhanced Keyboard (83-104 keys)
andPointing Device
fromUnknown
toNo Mouse or Other Pointing Device
. - Choose the
C:
drive from the partition list. If you chose to create an NT partition of size 2GB or less, it must be formatted. - If you chose to create an NT partition of over 2GB in size, errors will be found by the disk examination process which will require a reboot. You will need to boot back into the ARC firmware from the CD or USB drive and follow the «Installing NT» steps again to get back to this point.
- On the second attempt, disk examination will succeed, so just choose the
C:
partition again in the NT text setup partition selector.
- On the second attempt, disk examination will succeed, so just choose the
- Proceed through the rest of NT text and graphical setup as normal.
Known issues (Grackle/Gossamer)
- On a laptop system you may wish to remove the battery. At least on Lombard, the only way to power off the system when it bugchecks is via PMU reset or via total power removal.
- That said, PMU reset on Wallstreet/PDQ is easier, done via keyboard combination.
- Currently the implemented drivers are the bare minimum to run and use NT.
- I have observed PMU hard shutdowns on NT boot, fixed only by a PMU reset. No idea what caused this.
- On Old World systems, if you have trouble booting to something that isn’t the ARC firmware, holding
Esc
on boot will cause ARC firmware devices to be skipped.
Known issues (Mac99)
- As USB drivers are not working yet, only laptop systems are supported.
- Currently the implemented drivers are the bare minimum to run and use NT.
Dualboot quirks
If you create additional Mac partitions, please make note of the following:
- The Mac partitions are listed in the partition table as HFS partitions but are not formatted. Use Disk Utility from OS X 10.1 or above to format the partitions. (Erase the volumes, not the drive!)
- For releases after 2024-11-11 you can now also boot into OS 9, which will show dialogs for formatting every unformatted partition on startup.
- The OS X installer, and just booting OS 8/OS 9, will error if a valid MBR is present on the disk at all, which is required for NT. In ARC firmware, go to
Run firmware setup
thenReboot to OSX install or OS8/OS9
if you wish to boot to those listed operating systems.- For releases after 2024-11-11 ARC firmware now patches OS8/9 driver code when writing to disk such that booting to OS8/9 does not need this option, however if the on-disk driver partitions are updated by any means this will be required again.
- Booting back to the ARC firmware will fix the MBR, so be sure to always use this option when unsure.
- In particular, formatting the created HFS partitions in OS X 10.2 and 10.3 will not work when a valid MBR is present!
Building ARC firmware
You need devkitPPC. Additionally, a libgcc.a
compiled for powerpcle
must be present in arcgrackle/gccle
. If you need to find one, it should be present on any Void Linux mirror, the current filename to search for as of 2024-07-12 is cross-powerpcle-linux-gnu-0.34_1.x86_64.xbps
— decompress it by zstdcat cross-powerpcle-linux-gnu-0.34_1.x86_64.xbps -o cross-powerpcle-linux-gnu-0.34_1.x86_64.tar
, then pull the file out of the tarball: usr/lib/gcc/powerpcle-linux-gnu/10.2/libgcc.a
.
- Ensure
DEVKITPPC
environment variable is set to your devkitPPC directory, usually/opt/devkitpro/devkitPPC
- Build the big endian libc:
cd baselibc ; make ; cd ..
- Build the ARC firmware loader:
cd arcloader_grackle ; make ; cd ..
- For Mac99, use the
arcloader_unin
folder instead.
- For Mac99, use the
- Build the little endian libc:
cd arcgrackle/baselibc ; make ; cd ../..
- For Mac99, use the
arcunin/baselibc
folder instead.
- For Mac99, use the
- Build the ARC firmware itself:
cd arcgrackle ; make ; cd ..
- For Mac99, use the
arcunin
folder instead.
- For Mac99, use the
Replace stage1.elf
and stage2.elf
inside the release image. For recreating the image from a folder dump, use your preferred tool to create a hybrid HFS+ISO image, make sure System
folder is blessed and BootX
file is of type tbxi
.
Please note that stage1.elf
must not be larger than 16KB and stage2.elf
must not be larger than 224KB.
For building the Old World bootloader, see its readme, for creating an Old World ISO image, see OldWorldIsoBuilder.
Acknowledgements
- libc used is baselibc
- ELF loader and makefiles adapted from The Homebrew Channel
- Some lowlevel powerpc stuff, and ARC firmware framebuffer console implementation and font, adapted from libogc
- Some ARC firmware drivers (IDE, USB) adapted from OpenBIOS
- USB drivers in OpenBIOS were themselves adapted from coreboot
- ISO9660 FS implementation inside ARC firmware is lib9660 with some modifications.
- FAT FS implementation inside ARC firmware is Petit FatFs with some modifications.
I’ve taken an OEM version of Windows NT Workstation, stripped away the Alpha/MIPS & i386 parts, and integrated the maciNTosh project’s latest bootloader, grackle 0.05.
I’ve also included a few extra things in this release:
* Service Pack 2 for Windows NT
* Internet Explorer 3.0
* Wx86 (run limited x86 binaries on PowerPC)
* Info Zip/Unzip
* Neko 98
* DooM
* Neko Project II
* Command line Visual C++ 4.0
The latest updates to the grackle loader allow NT 3.51 & 4.0 to seamlessly be installed. So this is great, works very well!
The UI for Visual C++ doesn’t work under emulation, so instead I included enough of the CLI tools to build software. The linker for Visual C++ 4.0 doesn’t work so I’ve found that the one in the NT 3.51 SDK does work, although it does complain about some directives, but it’s a warning you can just ignore.
Ever wanted to run Windows NT on your vintage PowerPC Macintosh? No, me neither, but now it’s possible thanks to some amazing FOSS work.
The newly-released maciNTosh project brings Windows NT version 4, the state of the art operating system circa 1996, to the iMac G3, the PowerMac G3 «Blue and White», PowerBook G3 «Lombard», and PowerMac G4 «Yikes» – the state of the art in personal RISC computing circa 1997. It’s a massively impressive technological achievement that will, we suspect, polarize people into shocked amazement, or leave them asking «Huh? Why?«
From its first release, Windows NT was a multiplatform OS: alongside x86-32, it also ran on computers with DEC Alpha, MIPS, and on Apple/IBM/Motorola PowerPC processors. Aside from Intel kit, of those three RISC platforms, PowerPC was by far the most common and easy to find, thanks to the success of Apple’s PowerMac machines. But as always, there was a snag, and it was a doozy.
The problem was that NT needed one specific type of firmware to run on RISC computers: specifically, firmware compliant with the ACE consortium’s ARC specification. This is long gone, but not forgotten: for instance the UEFI forum’s history, A Tale of Two Standards [PDF] discusses it.
- Slackware wasn’t the first Linux distro, but it’s the oldest still alive and kicking
- From cash machines to commercial kitchen appliances, Doom really will run on almost anything
- No JavaScript, no trackers, no SSL security: Retro computing boffin gives Google News a Netscape 1.1 makeover
- Guy puts 1990s MacOS 7 on an Apple Watch – without jailbreaking it
As industry sage Andy Tanenbaum once said, «The great thing about standards is that there are so many to choose from.» For PowerPC machines there was also another, different firmware standard: the IEEE-ratified Open Firmware. NT needed ARC firmware, but – you guessed it – Apple used Open Firmware. As a result, Windows NT for PowerPC couldn’t run on Apple PowerMacs.
Until now.
Yes, you can now see this colorful yet restrained splash screen…
When Microsoft released Windows NT 4 at the end of July 1996, it set a new benchmark for personal computer OSes. Honestly, this is not hyperbole: in fact, at the time, your humble correspondent was brought in by a leading UK computer magazine to bring some balance to its review. Windows NT had already gone through three released versions: 3.1, 3.5 and 3.51. By the last, it was an extremely solid and fast PC OS – given a high-end PC for 1995, meaning SCSI storage for a start. The snag was that it had the old Windows 3 user interface. Although NT 4 didn’t deliver on most of the promises of the Microsoft’s Cairo project (and Vista didn’t either), it did bring the superior Windows 95 user interface to the Windows NT family, including on PowerPC… if you had a PReP or CHRP workstation. Most people didn’t.
Bondi Blue Rev iMac G3… one of the most iconic personal computers ever made
Porting the Windows 95 Start Menu to NT
READ MORE
What developer Rairii – who calls himself Wack0 on Github – has done is ported a version of the PowerPC ARC firmware, plus a loader to get it into RAM, and some basic drivers to bring up keyboard, mouse, IDE and a framebuffer to certain models of Apple gear: the tray-loading iMac G3, PowerMac G3 «Blue and White», PowerBook G3 «Lombard», and PowerMac G4 «Yikes». This is a remarkable achievement: while he’s taken code from several other projects, including OpenBIOS and Coreboot, this is still a hugely impressive effort.
Unfortunately, the Reg FOSS desk gave away all his kit from this era before emigrating in 2014, so we have nothing suitable to try it on. Virtually Fun’s Neozeed does, and they already wrote a blog post about it, complete with screenshots – and there’s some more on their Twitter X feed.
Nearly 30 years later, this is totally useless, and Microsoft dropped PowerPC support after NT 4 Service Pack 2 anyway. (NT 4 got all the way to SP 6A, after which Microsoft stopped support.) It’s also reportedly very slow, but that makes it no less amazing to us. ®
-
#1
Has anyone been able to successfully install Windows NT for PowerPC on one of their older PPC Macs? I’m curious to see if it has been done / can be done — and if so: does it have something akin to Rosetta for transcoding x86 — PPC on the fly?
-
#8
As with everyone else — it cannot be done. Wrong firmware/bootloader.
NT for PowerPC was very short-lived, introduced in NT 3.5, discontinued with NT 4.0 SP3. I have it running on my PowerPC ThinkPad, but there just isn’t any useful software for it.
One nice bonus, it does run 16-bit x86 software via emulation, appearing completely native. So I do have Microsoft Office 4.1.2 and Internet Explorer 5 running on mine. (The Windows 3.1 version of IE5, not the Windows NT/95 version of IE5.)
Similarly, Mac OS doesn’t run on my PowerPC ThinkPad — just the wrong bootloader for Mac OS.