I installed Windows 95 on my Apple Watch
With a 520 MHz processor, 512 MB of RAM, and 8GB of internal storage, the Apple Watch packs a lot of computing horsepower into a very small package. On paper, its processor alone is about twenty-five times faster than the average 386, and 512 MB was the size of a hard drive in the mid nineties, not memory. As a result, I was feeling confident that the Apple Watch had the ability to run one of the most revered desktop operating systems Redmond has ever produced.Pretty much. I was born in the nineties, and the first personal computer my family bought (a $3000 screamer with a 300 MHz Pentium II, 256 MB of RAM, and the optional Boston Acoustics speaker system) ran Windows 95. Also, this isnāt the first time Iāve installed an old operating system on a watch. Hereās a video of my Apple Watch running Mac OS 7.5.5:
Unlike the above port of the Mini vMac emulator, the result here had to be interactive. That meant that Appleās WatchKit SDK wasnāt good enough, since it doesnāt allow you to access user touch locations directlyāāāit only lets you use Appleās stock controls. Long story short, itās possible to patch certain files within a WatchKit app to load your own application code rather than Appleās. For more information, check out Steven Troughton-Smithās excellent blog post on the subject.
Hereās an outline of the steps involved:
- Copy symbols and headers from Xcodeās iphoneOS and iphoneSimulator platforms to the watchOS and watchSimulator platforms, respectively.
- Build your ānormalā UIKit-based iOS app inside a framework, rather than in your WatchKit extension.
- Use install_name_tool to point your WatchKit appās _WatchKitStub/WK binary to your framework instead of SockPuppetGizmo. SockPuppetGizmo is the framework that (to my knowledge) runs WatchKit and interacts with normal WatchKit extensions that developers write.
- Jury-rig the iOS port of the Bochs x86 emulator into your framework. āEasy!ā āHow hard can it be?ā read: Pretty hard. In my case, Xcode crashed whenever I tried to use lldb. Your mileage may vary.
- Copy a Windows 95 disk image in to your appās bundle, write the config file, and boot āer up.
*Optional: hot glue a motor to the watchās crown to keep it from falling asleep.
Will It Blend?
Yes! Due to the fact that it is emulated (not virtualized), it takes about an hour to boot.
For more detail: Windows 95 on an Apple Watch