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.
OS Installation
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.
Post-Installation Configuration
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 1.1.1.1 and 1.0.0.1, 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: 1.1.1.1 and 1.0.0.1
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:
/etc/hostconfig
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 8.8.8.8 nameserver 1.1.1.1
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 1.1.1.1. Success!
Conclusion
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!
Nice job. I got through everything fine until running unarchive on the tar file. That didn’t seem to work. Any ideas?
I’m not 100% sure why it wouldn’t work. In all honestly I wrote this quite a while ago so I haven’t done it myself in a while. I do remember that there wasn’t a progress bar during that extraction so I just let it go and eventually it finished. I didn’t think it was doing anything when after quite a while it finished and the extracted file showed up. Are you getting an error message or does it look like nothing’s happening? If it’s the later, I’d just let it sit for a while and see if that works. I don’t remember how long it took for me, but I remember it was longer than it should have been.
Wondering why NAT won’t work? Thinking I’d like to try to get a simple DHCP client to compile on it.
I’m not sure, I just couldn’t get it to work. If you find something out, let me know.
Is there a way to get the files out of the packages? I’d like to look at the example application source files and I can’t get networking up. Says netinfod is looking for its parent and won’t even finish booting.
Not sure I am stating the obvious here: AFAIK OpenStep doesn’t support DHCP. At least I remember always using static IP addresses. Maybe that is also the reason why NAT won’t work?
Anyone hitting this error after selecting the device drivers (twice):
Load of /etc/mach_init. errno2, trying /etc/init
Load of /etc/init failed, errno 2
I am getting the same error.
I received the same error with the dev iso. I didn’t receive the err with the non-dev iso.
Yes, I have the same issue when using the “developer” installation disc (OpenStep-Install-4.2-Dev.iso). However installation proceeds successfully with the “user” installation disc (OpenStep-Install-4.2.iso).
That is my experience too.
You can find a working DHCP package here: http://www.nextcomputers.org/NeXTfiles/Software/OPENSTEP/Apps/Internet/Misc/
I am using Virtual Box.
I had to setup the two drives as Primary Master and Secondary Master for it to work.
Thanks for these instructions! Very useful and it means that I won’t go out and try to buy a real NeXT!
The instructions worked until I got to the patch installation. Toward the end of the installation, I get an error that says “You don’t have permission to install some of the files in OS42MachUserPatch4.pkg.pkg (see the Log view).”
Any suggestions?
Make sure you type the command su as indicated before typing the command to install the package file. This’ll make you root and allow you to install the package.
Thanks for the tutorial, one thing I had to start VM the ISO image mounted or the install failed at the first hurdle.
hi,
when i got up to the part where i install the video drivers, i installed the VESA drivers, rebooting, openstep gives me “cant find $LBL” can anyone help me? i dont want to sit and see openstep reinstall again
again, brilliant tutorial!
Matthew, I had this too. It happened every time I reset the VM without shutting down OpenStep properly first. Once I shut down first, then reset, it worked like a charm
Same issue here. Working with VMWare Fusion on macOS Catalina
Jason,
Thank you for your excellent ‘How To’. Do you happen to know how to install OmniWeb in OpenStep? Version 3.1 of OmniWeb for OpenStep is available to download as a tarball on http://www.shawcomputing.net but I’m not sure how to get it into the virtual machine running OpenStep 4.2, nor how to install it once that is done.
OK, further to my previous comment, I have worked out how to install OmniWeb 3.1 for OpenStep 4.2. Below is a summary of what I did:
1. I downloaded OmniWeb-3.1rc1-OSM-NIS.pkg.tar from http://www.shawcomputing.net Web site into a directory ~/OmniWeb/
2. I created an ISO file:
$ mkisofs -o OmniWeb.iso ~/OmniWeb
3. I used ‘Settings’ > ‘Storage’ in VirtualBox to insert the ISO file in the optical drive of the virtual machine.
4. In ‘File Viewer’ in OpenStep I dragged the file omniweb_.tar from CDROM to /me
5. I double-clicked on /me/omniweb_.tar and clicked on ‘Unarchive’ to create the file /me/OmniWeb.pkg
6. I clicked on /me/OmniWeb.pkg and selected ‘Services’ > ‘Open Sesame’ > ‘Open As Root’ from the Workspace menu, then clicked on ‘Login’
7. In the Installer window I clicked on ‘Install’
8. OmniWeb.app was installed in NEXTSTEP > LocalApps > Internet
9. Double-clicking on OmniWeb.app launches the browser, which can open e.g. http://www.google.com
I have not played with OmniWeb much so far, but its ability to open modern Web pages appears to be very limited. For example, I cannot open https pages, only http pages.
I tried installing the Omni packages from shawcomputing.net but they all give an error about missing files and to install from the original floppies. Also, when I try using Open Sesame>Open As Root I get an error saying it can’t open a directory. How did this work for you?
Hi I am trying to get the network working on VirtualBox 6.0.14r133895
As soon as I try to activate bridged network, NEXTSTEP 4.2 boots and gets stuck at thatnistrator if you need help point:
see your system administrator if you need help
nov 16…. MyNEXTSTEPVM netinfod local [105]: unable to bind to parent – RPC Timed out
Under network (in VB), the following parameters are set:
Network bridge (unfortunately its in german, I do not know the exact wording here in english)
Name: Realtek PCIe GBE Family Controller
advanced feature:
adaptertyp: PCnet-FAST III (Am79C973)
Promiscous-mode: deny —-> (also: no other VM is running at the same time)
MAC-Adress: yet a mac adress
Cable connected : yes
What other could I say?
VB is running on windows10 on a lenovo laptop
So please, If someone has any clue, that would be great,
Thank you very much in advance
Same issue here. Second time I’ve tried configuring an OPENSTEP machine… doing this on VirtualBox 4.2 on Ubuntu 19.04, and followed this guide by the letter :/
“Starting RPC and network services: portmapadd net default: gateway 192.168.1.1
Still searching for parent network administration (NetInfo) server.
Please wait, or press ‘c’ to continue without network user accounts.
See your system administrator if you need help.
April 17 20:42:42 NEXTSTEP netinfod local[104]: unable to bind to parent – RPC: Timed out
April 17 20:43:44 NEXTSTEP netinfod local[104]: select failure: interrupted system call”
Unable to ^c it or anything….
Go into NextAdmin and open HostManager.app, click Local… and under “NetInfo Binding”, select “Use local domain only”. Worked for me for the same issue
Also, there is no way to shutdown NEXTSTEP other than brutally switch off the VM 🙁
In Workspace -> Logout. Then select Power Off from the pop-up. Wait until it says it’s safe to turn off, then power off the machine.
Everything worked for me after a couple of missteps of my own. Some notes.
– You keep referring to “NetAdmin” it is actually “NextAdmin” no big deal, I figured it out.
– I was able to get networking working but it does complain about an RPC server and no users being configured. Will work on that…
– Maybe don’t have statements like “We need to reboot for this to take effect.” and then follow with “But before we do that…” Just do the before we do that step and THEN mention the reboot.
Anyway, thanks for this, it worked great!
Dude this tutorial is dope! I always wanted to know how to install Nextstep, and the floppy boot screen looks very similar in Hackintosh macOS.
aah the memories… thanks!
Loved nextstep. MacOSX public beta / openstep is also super cool and works in VMs emulating PPC.
Nice, I always wanted to play with NextStep.
Only one thing: please, PLEASE remove the smooth scrolling. It causes dizziness in some people, others totally hate it. There’s an option in the browser for that, if people disable it there’s a reason. Do not force it.
I have a problem with the mouse: it is barely usable. If I move it slowly, it goes fine, but if I move it a little bit faster, the pointer moves too much quick. The configuration app doesn’t seem to allow to configure the acceleration, only the speed.
Got Openstep installed but when I launch the OS I get a System Panic that says “vfs_mountroot: cannot mount root”. Any hint on how to get passed this? Thanks.
I have VirtualBox 6.1 running on MacOS Catalina. My first difficulty involved and inability to mount /etc/init when I tried to install from the developer CD image. The user image worked fine. I got Openstep installed with the patch CD applied, but the OS doesn’t see any display devices. I’ve tried switching between the Oracle VGA and SVGA drivers with the same result. Is anyone experiencing the same difficulty?
HI all,
encountered the below error while installing,
hc1 : Device 0: ATAPI CD-ROM (SLOW DRQ, REMOVABLE, CMD PKT LEN=12)
hc1: LBA supported
hc1: IORDY supported
hci: buffer type 3 of 512 sectors
registering : hc1
IDESisk : disk 0 is ATAPI
Registering:sc0
hc1: ATAPI Device 0: No Data Request: 80
hc1: ATAPI Device 0: Packet command failed. Retrying..
hc1: ATAPI Device 0: No Data Request: 80
hc1: ATAPI Device 0: Packet command failed. Retrying..
hc1: ATAPI Device 0: No Data Request: 80
hc1: ATAPI Device 0: Packet command failed. Retrying..
hc1: ATAPI Device 0: FATAL: Packet command.
registering: sg0 at sc0
registering: sg1 at sc0
registering: sg2 at sc0
registering: sg3 at sc0
registering: event0
registering: kmDevice0
No DC-ROM drive found
use sd%d, hd%d, fd%d, en%d or tr%d
root device?
I’m using Windows10 and VirtualBox 6.1.
appreciate you advice.
thanks,
Stephen
HI everyone,
is there any integrated mouse pointer for NeXTSTep 3.3/Openstep and NTP or method for the time sync to host OS?
Thanks & Regards
Stephen9569