본문 바로가기
5. NeXTSTEP

OPENSTEP on Windows PC Emulators

by soosun 2009. 5. 11.

OPENSTEP on
Windows PC Emulators

Caution

I make no warranty that the information on this page is accurate, complete, appropriate or up to date. The information is merely a rough indication, and must be verified by anyone proposing to act on it.

This page describes very limited experiments by the author in getting OPENSTEP 4.2 to run on VMWare 3.0 and Virtual PC 4.3.1. OPENSTEP is not supported by these products, so the following experience does not reflect on their capabilities. These products also run on other host OSs such as Linux and MacOS X. My experience with MS Windows may not apply to these other OSs. See the later notes about my longer-term experience with Virtual PC, and with versions 5.0/5.2 of this.

Acknowledgements

I am solely responsible for the content of this page. However I would like to thank Laurent Juillard for his help in getting OPENSTEP running on VMWare under MS Windows. See his description of OPENSTEP on VMWare for Linux. I would also like to thank Neville Wilford for his help in getting OPENSTEP running on Virtual PC under MS Windows. Nicolai Leyman has a description of NEXTSTEP 3.3 installation for Virtual PC .

Installation

I was able to install VMWare 3.0 on a PC running MS Windows XP Professional. I configured the hard disc on the IDE primary channel (IDE0:0) and the CD-ROM on the IDE secondary channel (IDE1:0). I created a virtual PC using 64MB of RAM and 300MB of hard disc. It is essential to pretend that the guest OS is Linux otherwise the CD driver does not seem to work properly.

I was then able to use the standard installation and driver floppies to install OPENSTEP. (If you do not have the installation floppies and latest drivers, these are available from Apple web pages.) Select the Primary/Secondary Dual EIDE and ATAPI driver for both the CD-ROM and hard disc (choices 7, 7, 7, 5 when selecting installation drivers). Laurent Juillard reports a different procedure for installation on VMWare for Linux.

I was able to install Virtual PC on a PC running MS Windows 98 and also MS Windows XP Professional. (Windows 98 is not a supported host OS.) I created a virtual PC using 64MB of RAM and a 300MB hard disc partition. It does not seem to matter what type of guest OS is defined for OPENSTEP installation.

I could not get Virtual PC to read NeXT-format floppies. Under OPENSTEP, I therefore had to create floppy disc images from the standard installation and driver floppies using:

  dd if=/dev/rfd0b of=osinstall.vfd
  dd if=/dev/rfd0b of=osdrivers.vfd

These files were then copied to Windows. Start up the virtual PC, capture the osinstall.vfd floppy disc image, and reset the virtual PC. The virtual PC will then load the OPENSTEP installation code. When it asks for the drivers floppy, drag the osdrivers.vfd floppy disc image over the floppy disc icon. Capturing the floppy disc image from the menu does not seem to work. Select the Primary/Secondary Dual EIDE and ATAPI driver for both the CD-ROM and hard disc (choices 7, 7, 7, 5 when selecting installation drivers).

Drivers

The following OPENSTEP driver settings were the key ones I tried. (Numerous other display drivers do not seem to work.)

Device VMWare Virtual PC
Keyboard PS/2-Style Keyboard PS/2-Style Keyboard
  I found some keyboard glitches with Virtual PC. If the default hot key is used (Alt Gr), the keyboard does not work properly when returning to OPENSTEP. Pressing Ctrl under these circumstances restores the keyboard mapping. Virtual PC also seems to become slightly confused if I map the Ctrl key to the Caps Lock key (as per the traditional NeXT layout); the Caps Lock LED is momentarily illuminated when pressed.
Display Default VGA Diamond Stealth 3D (S3 ViRGE)
640*480, 60Hz, BW 1280*1024 or 1024*768, 60Hz, RGB:256/8
As also reported by others, I could not get a sensible OPENSTEP display driver to work with VMWare. The S3 Generic Display driver is also reported to work in RGB:888/32 and RGB:256/8 modes. The refresh rate does not seem to matter
Sound None SoundBlaster 16 (8 and 16 bit DMA)
I could not get the OPENSTEP SoundBlaster driver to work with VMWare, despite having a SoundBlaster Live as the underlying sound card.  
SCSI Inconclusive None
VMWare supports SCSI devices. However I could not get the virtual SCSI controller to respond to the OPENSTEP BusLogic drivers, probably because I did not have a physical SCSI controller. Virtual PC does not currently support SCSI devices.
Hard Disc EIDE and ATAPI Device Controller EIDE and ATAPI Device Controller
  After basic installation, install the latest EIDE driver (V 4.03) and choose the Intel PIIX PCI EIDE/ATAPI Device Controller. Select both Bus Master DMA and Multiple Sectors. This driver works much faster than the EIDE and ATAPI one.
Compact Disc EIDE and ATAPI Device Controller EIDE and ATAPI Device Controller
Floppy Disc Floppy Disk Drive Floppy Disk Drive
  I could not read NeXT or Macintosh format floppies, though these are reported to work under OPENSTEP on Windows 2000 SR2. "Check for Disks" under OPENSTEP does not automatically capture the floppy; it needs a manual capture first using a Virtual PC menu item.
Network AMD PCnet-32 Ethernet Adapter DECchip 21041 Based Adapter
Standard networking facilities such as FTP and NFS work. Standard networking facilities such as FTP and NFS work.
Serial Port Not investigated Serial Port, TTY Port Server
Data rates above 38400 bps do not work.

VMWare and Virtual PC also support parallel ports, though I did not investigate this as I presume it should be straightforward. VMWare and Virtual PC support USB, but as this is not supported by OPENSTEP I did not investigate this. VMWare and Virtual PC support other features through the use of disc or folder sharing. However these require the installation of code specific to the guest OS. Since OPENSTEP is not a supported guest OS, these features are not available.

Relative Performance

I compared the relative performance of VMWare and Virtual PC running OPENSTEP to OPENSTEP running in a separate partition on the same PC. Raw processing power is presumably similar in both cases. Since I/O has to be emulated, this is perhaps the most critical performance issue. The percentages in the table below are ratios of elapsed times: emulated OPENSTEP / actual OPENSTEP. I compared performance on only a limited selection of I/O-bound tasks.

Warning! These tests were carried out on a low-end PC (500MHz Pentium). However, I later conducted tests with just Virtual PC on a 2GHz Pentium, but did not seem to see much of an improvement in I/O. Emulated I/O will depend on the real PC hardware as well. The following table is not meaningful except in the context of my specific tests and environment.

Device VMWare Virtual PC
Hard Disc 20% 17%
Compact Disc 17% 13%
Floppy Disc 28% 46%
Network 37% 19%

Living with Virtual PC

I opted to use Virtual PC for Windows, and have successfully run OpenStep on Virtual PC 4.3.1 for six months. The good news is that it works extremely reliably. The only oddity I have noted that very occasionally OpenStep acts as if it were randomly and rapidly receiving mouse clicks. I have seen something like this when running OpenStep on a real PC, so it may be some OpenStep fault is exposed by Virtual PC. The disappointing news is that emulated OpenStep runs very slowly: it feels like it is running on a 200 MHz Pentium, when in fact I am using a 2 GHz Pentium.

Virtual PC is supplied with dedicated operating system additions, but these are not available for OpenStep since this is not a supported OS. A minor consequence is that Virtual PC does not detect the OpenStep idle loop, so even if OpenStep is running in the background it still consumes about 20% of the real CPU. A more problematic consequence is that Virtual PC additions are needed to synchronise the real and emulated clocks. The result is that the OpenStep clock drifts, perhaps up to 30 minutes per day. If OpenStep is saved and resumed later, the clock is not resynchronised. Clock synchronisation occurs only on boot-up. A work-around is to run the Network Time daemon (ntpd). On a network, you may have access to a Network Time server. But if you are running on an isolated PC, you may be able to run a Network Time server on the same (real) PC. However, the OpenStep Network Time daemon may give up if the clock is too far out of sync. It may therefore be necessary to force resynchronisation manually (in Preferences.app) if OpenStep is started up some time after being saved.

It might seem that it is not possible to load extra files onto OpenStep except by using the floppy disc. In fact there are quite a number of solutions. If you create an emulated DOS PC with file sharing additions, it is possible to copy files from Windows to emulated DOS to OpenStep by mounting the DOS disc image under OpenStep as a second hard disc. If you have Windows administrative privileges, you can give OpenStep access to a physical volume as a second disc. This risks disc corruption in the event of an error, but I have managed to give OpenStep access to an IDE Zip drive in this way. Networking also allows access to remote servers, using SMB (e.g. SharityLight for OpenStep) or NFS (built into OpenStep).

I have tried the versions 5.0 and 5.2 of Virtual PC 5.0 and 5.2 for Windows, but cannot get OpenStep to work reliably with these. In case anyone else wishes to try, I found erratic behaviour with the CD drive connected to the secondary EIDE controller. In this version of Virtual PC, OpenStep seems to need the CD drive to be connected to the primary EIDE controller. The OpenStep DEC 21140 driver does not work with the VPC DEC 21140A emulation. I had to use the OpenStep DEC DE500 driver, otherwise the Ethernet address is not read properly. Even with these changes, I cannot get OpenStep to work reliably. Roughly 25% of processes fail with spurious Bus Error, Memory Fault or Segmentation Fault signals, so the system is very unreliable.

Conclusion

Both VMWare and Virtual PC (version 4.3) are able to run OPENSTEP, which is commendable given that OPENSTEP is not a supported guest OS. There are differences in device support and performance. The choice of PC emulator would have to depend on the expected use of OPENSTEP, the actual PC hardware available, and the devices required under OPENSTEP.


Up one level to NEXTSTEP/OPENSTEP Utilities

Web Ken Turner Home Email kjt@cs.stir.ac.uk Search Search Web Pages

Last Update: 6th October 2003
URL: http://www.cs.stir.ac.uk/~kjt/software/nextstep/openstep-win.html

댓글