Installing NextStep OS (OpenStep) in VirtualBox
A Brief History
I could write a book about the history of NEXT, but I fear this tutorial will be long enough as it is. As brief as possible – NEXT was the company that Steve Jobs founded after he was booted from Apple in the 80’s. NEXT made some awesome hardware, but even better software, including a futuristic operating system called NextStep. In the early 90’s, NEXT went from being a full-stack hardware and software manufacturer, to a software-only company, and released NextStep on other platforms. When they did this, they renamed it to OpenStep, which is what I’ll be installing today.
For a more complete history of NEXT, check out this awesome pair of videos. RetroManCave goes over the history of Next, shows off the Next hardware, and has a Next developer talk about some of the development tools that accompanied the NEXT PC. If you like these videos, do him a favor and subscribe to his YouTube channel.
Setting up the Virtual Machine
I’ll be setting my system up on a Windows machine, but you could just as easily set it up on a macOS or Linux machine. When I first attempted this install, I used VMware Workstation 14 Pro for Windows. After going through most of the installation process I couldn’t get OpenStep in to a color screen mode no matter how much I tried. I eventually found out that VMware Workstation doesn’t support the proper VESA display modes, and try as you might you’ll get an error on boot that says “VESA Mode Not Supported.” Fortunately, Virtual Box – which is cross-platform between Windows, macOS, and Linux and completely free – does support the proper VESA mode and works great for the installation of OpenStep.
Still, there are some quirks when setting up your VirtualBox VM initially. The VM must have 1 processor with 1 core, 64MB of RAM, and a 2.0GB hard disk on an IDE controller. You will need to configure one IDE CD-ROM drive and one floppy drive. The hard drive must be at IDE 0:0 (Primary Master), and the CD-ROM drive must be at IDE 0:1 (Primary Slave). You will have to edit the properties of the VM upon creation to ensure you adhere to these standards. All other default options of the VM during the creation wizard can be left alone.
Downloadable Media Images
The following files are required during installation:
Install_Floppy.img – This is the installation boot disk. This will be inserted into the virtual floppy drive to boot the machine along with the installation CD at first boot-up of the VM for initial install.
Driver_Floppy.img – This is the NextStep driver disk. This disk contains drivers for EIDE controllers that we’ll need to complete setup. Insert this disk whenever the system asks you for a driver disk.
OpenStep-Install-4.2.iso – This is the “user” installation disc image. This image contains the non-developer version of OpenStep 4.2. You can use either this disk or the developer version (below), but one or the other disk image must be inserted along with the installation floppy at first boot-up of the VM for initial install.
OpenStep-Install-4.2-Dev.iso – This is the developer installation disc image. It contains everything the user installation disc image contains, as well as some developer tools for programming Objective-C applications. If you intend to do any development, use this disc image for install instead of OpenStep-Install-4.2.iso.
OpenStep-4.2-Patch-CD.iso – This disc image contains updates for more modern drivers (i.e. to enable color display) and also fixes for things like Y2K. We’ll mount and run these updates post-install.
First, create and configure your virtual machine based on the specs above.
Next, ensure that you have Install_Floppy.img and either OpenStep-Install-4.2.iso or OpenStep-Install-4.2-Dev.iso mounted in the virtual floppy and optical drives.
Boot the virtual machine. When the first boot screen appears, do not enter anything.
Simply wait until you’re asked to choose a language. Type 1 and press Enter at this prompt to select English.
After choosing a language, you’ll be prompted to insert the driver disk. Mount Driver-Floppy.img to the floppy drive for the virtual machine and press Enter to continue.
After pressing Enter, you’ll be asked to choose drivers for storage controllers. You’ll be presented with a list of drivers, 1-6. Pressing 7 and Enter gives us the option to see more drivers.
Here, press 7 and Enter to see the second page of drivers, and then 7 and Enter again to see the third page of drivers. The fifth option on the third page of drivers should read “Primary/Secondary (Dual) EIDE/ATAPI Device Controller (v4.03).” From here, type 5 to choose that option and press Enter to confirm it.
This next part confused me at first because it looks like the option we chose didn’t take, but it did. Here, do the same step again for the secondary controller option. Type 7 and Enter twice to get to the third page of driver options again, and then press 5 for the dual EIDE/ATAPI device and press Enter to confirm.
When that option has been selected twice, we see this screen:
At this screen, press 1 and then press Enter to continue.
At this point the system will switch to a graphical mode. If you get an error on this screen saying that there’s no disk drive or disk device, ensure that you’ve got your hard disk mounted to IDE 0:0 (Primary Master) and your CD-ROM drive mounted to IDE 0:1 (Primary Slave) in the configuration of your virtual machine. Also make sure you selected option 5 on the third page twice per the above instructions.
If you don’t error on this screen, all of your storage has been set up correctly. If the system starts finding ATAPI drives as shown in the screen shot above, you’re golden to continue with the install.
You’ll be prompted to acknowledge your startup disk (the 2 GB hard disk we created for the VM). Press 1 here and then Enter to confirm that this will be our system disk, where OpenStep will be installed.
You’ll then be asked what to do with the disk. Since we’re using the entire disk, press 1 and then Enter to format and use the entire disk.
You’ll have to press 1 and Enter one last time to kick off the setup process. Once this portion of setup completes, you’ll be greeted with the following screen. Remove the virtual floppy disk from the drive (if you don’t you’ll get an error on startup) and then press Enter to reboot the VM.
Upon rebooting, OpenStep will complain that it can’t find drivers. Insert the Floppy-Drivers.img image in to the virtual floppy drive and press 1 and then Enter.
Startup will continue and a GUI will load. When the GUI loads you’ll get a similar error about drivers. Press Ok to acknowledge, since we have the drivers floppy already in the drive. This happens twice. Just press Ok both times.
At this point, a system configuration dialog will appear. This is the equivalent to Windows’ Control Panel in OpenStep. At this point, do not change anything in this panel. We will add some things later, but changing things now could break the install. Simply click Save to get past it. It will warn you that configuration appears incomplete. Click Save Anyway to proceed.
Next, you’ll be asked what options to install. Leave everything here checked except for the languages that you don’t want to be installed. I unselected all of them (English is installed regardless).
Installation will now begin. This is the largest installation process for the entire install. It should take around 10-15 minutes or so, and once it’s done, the installer will ask us to reboot. Ensure that you remove the floppy disk image before rebooting, as the installer will remind you to do once it’s finished, and then click Restart.
When the machine restarts, you’ll be asked to choose a language (English is chosen by default and is the only option if you removed the other languages during installation), and US keyboard is selected by default. Make your selections here and press Ok to complete setup.
At this point, you should be staring at a black and white OpenStep desktop.
If you’ve made it this far, you will have a usable OpenStep desktop. Let’s make it a little better.
From the Workspace menu, choose Disk > Eject
Mount OpenStep-4.2-Patch-CD.iso to your virtual machine.
At this point you will see a CD-ROM option in the File Viewer dock. Click the CD-ROM image and you’ll be able to see the contents of the disc. It should contain 3 files. Select these three files and drag-and-drop them on to the “me” icon in the File Viewer dock (it looks like a house).
Click the “me” icon (house) to view the contents of that directory. If you haven’t guessed by now, this is the equivalent to your Home directory on macOS. If some of the files are grayed out, it means they’re still copying from the CD. Be patient will they copy.
Double click the file os42machuserpatch4.tar and press the Unarchive button.
This will extract the OS42MachUserPatch4.pkg file from the tar archive. There is no progress bar, so be patient and wait for the file to appear before closing the Archive Inspector application.
Next, click on the Computer icon mid-dock on the File Viewer, double click NextApps, and then scroll down and double-click the Terminal.app. You’ll recognize this terminal from macOS as well. All NextStep/OpenStep apps end in .app and are essentially an archive of all of the files that make up that application, just like on macOS.
Within terminal, run the following commands
su /NextAdmin/Installer.app/Installer /me/OS42MachUserPatch4.pkg
This will run the launcher for the version 4 patch. Click the Install button to begin patch install. Leave all options at their default and click Install once again. On the Confirm screen, click Continue. You may be notified that some files already exist and to confirm that it’s ok to overwrite them. Click Continue again.
Once installation has completed, choose Quit via the Workspace menu and choose Log Out and Power Down. When OpenStep tells you that it’s ok to shut down the machine, restart the VM.
When OpenStep desktop appears, click the Computer in the mid-dock in File Viewer, double click NeXTAdmin, and then double-click on Configure.app. Click the Monitor icon to change video settings, and then scroll down to the VESA VBE 2.0 driver, highlight it, and click Add. Click Done and then Save. Reboot the machine.
When the machine reboots (if you’re running Virtual Box), we’ll see a nice purple/blue. This is how you’ll know that the VESA drivers are working. Again, if you get an error message on the text mode during boot that says VESA Not Available and you’re still black and white at this point, it’s probably because your hypervisor doesn’t support the proper VESA mode.
After startup finishes (it will take slightly longer this time), we’ll be presented with a beautiful color desktop.
At this point we can go in and do something about this awful resolution.
Go back in to Control.app and click the Monitor icon at the top. This time, click the Select button in the Display Mode section. From here you can choose a higher resolution (I chose 1280×1024 @ 16-bit color) and then choose Ok and Done.
You will be required to reboot before the new changes will take effect, and the system won’t prompt you to do it, so you’ll have to restart manually.
Once you restart, you’ll be treated with a full color desktop at high resolution. What a glorious thing. You can now feel free to explore the various demos that are included with OpenStep, including a game of chess.
Configure Virtual Box Networking
For this step to be successful, you’ll have to gather some info, and you’ll also have to change the properties for the network adapter on your OpenStep VM from NAT mode to Bridged mode. Setting the adapter to Bridged mode will drop the OpenStep VM directly on the same network as your host PC upon startup. I was unable to get DHCP to work on the latest version of Virtual Box. I was also unable to use the virtual networking baked into Virtual Box to allow the VM to run behind network address translation (NAT).
After you set the virtual machine’s adapter to Bridged mode, you must gather some technical data about your local network. You can do this by looking at the adapter properties for the network adapter on your host machine. You can do this in Windows using the ipconfig /all command, and on macOS and Linux using the ifconfig command. You’ll need to find an address that’s available on your local subnet (preferably one that’s not included in your DHCP pol range), your local IP subnet’s length (or subnet mask), your local subnet’s broadcast address, and your local subnet’s default gateway. IP subnetting is beyond the scope of this article, but if you aren’t sure how to find this info, I’ll help you out. To discover the information we need we’ll look at output from my ipconfig /all output.
Here we can see that my subnet mask is 255.255.255.0 (which is common). That’s one bit of information. We can also see my default gateway is 10.10.64.1. There’s the second piece. We can also see both DNS servers at 184.108.40.206 and 220.127.116.11, there are pieces 3 and 4. Since the subnet mask is 255.255.255.0, we know that my IP range is from 10.10.64.1 to 10.10.64.255. Since 10.10.64.255 is the last IP address in the subnet, that address is the broadcast address for the subnet. We’ll need that bit of information as well. Finally, we just need to find an open IP address in this subnet that we can use for our OpenStep machine. When I try to ping 10.10.64.20 there’s no response, so I’ll use that.
Based on what we learned just now, we have the following information:
IP to use: 10.10.64.20 Subnet Mask: 255.255.255.0 Default Gateway: 10.10.64.1 Subnet Broadcast Address: 10.10.64.255 DNS Servers: 18.104.22.168 and 22.214.171.124
Now that you have you IP assignment information, you must install the driver for the Virtual Box network adapter. Click the Computer in the mid-dock in File Viewer, double click NeXTAdmin, and then double-click on Configure.app. Click the Networking (globe) icon. Our AMD PCnet NIC will be found automatically. Click Add, and then click Save and Done.
We’ll have to reboot before the new adapter becomes active, but before rebooting we’ll configure our IP information.
Click the Computer in the mid-dock File Viewer, double click NextApps, highlight (single-click, do not open) Edit.app. In the Workspace menu click Services > Open Sesame > Open as Root. Right now, the root password is blank so just press Ok. With the Edit.app window selected, Workspace menu will change to a context menu for Edit.app. Click File > Open > and type the absolute file path in the file open dialog box and press Enter:
The file should open in a new Edit.app window as root. Edit the applicable lines and modify values according to the information you gathered above. Here, I’ll use my information:
HOSTNAME=NEXTSTEP INETADDR=10.10.64.20 ROUTER=10.10.64.1 IPNETMASK=255.255.255.0 IPBROADCAST=10.10.64.255 NETMASTER=-NO- YPDOMAIN=-NO- TIME=-AUTOMATIC-
Click File > Save and close the file. Now we’ll configure DNS. To do that we’ll need to edit /etc/resolv.conf but that file doesn’t yet exist. The easiest way to create it is to open a Terminal and type the following commands:
su touch /etc/resolv.conf
Now we can go back in to Edit.app and open /etc/resolv.conf as root (same steps as above for hostconfig). Enter the following lines in resolv.conf, save it, and close Edit.app.
#/etc/resolv.conf nameserver 126.96.36.199 nameserver 188.8.131.52
Now we can simply reboot, and test connectivity by trying to ping our own IP address, the default gateway, and an IP address on the Internet – such as 184.108.40.206. Success!
I hope you enjoyed this tutorial. I wouldn’t be lying if I said that I spent hours trying to get all of this stuff to work, but it’ll be worth it if it helps someone who is curious about this great OS explore it in depth. I know I’ll have fun doing so. I’ve always wanted to play with a NEXT machine, but didn’t want to shell out thousands of dollars to do it. It’s great that we can do it for free in 2018 with VirtualBox!