Nothing but NeXTSTEP
Switch the Pi on and it boots straight into NeXTSTEP. There is no boot message, no Linux login and no desktop in between.
Previously turns a Raspberry Pi 4 or 5 into a NeXT. Turn it on and it boots direct into NeXTSTEP under the Previous emulator, set up from a browser in an admin that looks like NeXTSTEP.
Install
Install it onto a Pi that runs Raspberry Pi OS Lite, 64 bit.
Write Raspberry Pi OS Lite (64-bit) with Raspberry Pi Imager, and let it set your user, Wi-Fi and SSH.
Log in over SSH as your own user, not as root, and run this. It asks for your password once, and a few minutes later NeXTSTEP is on the Pi's screen.
curl -fsSL https://previous.li/install.sh | bash
Open the address it ends with,
http://, in a browser on your
network.
Or write the ready image to a new card or USB stick of 8 GB or more, with nothing to type.
Install Raspberry Pi Imager 2 on your computer, or update an older one.
Download Previously for Raspberry Pi Imager and double-click the file. It is an Imager manifest. It opens Raspberry Pi Imager with Previously in its list, and tells the Imager how to customize the image.
Choose your Raspberry Pi 4 or 5, Previously, and the card or stick.
Set the hostname, a user, a password and the Wi-Fi in the Imager's customization.
Write it, put it into the Pi and switch it on. NeXTSTEP
starts, and the admin answers at
http://.
What it is
Previous is a NeXT emulator developed by Andreas Grabher. Previously makes a Raspberry Pi boot into it, and puts the emulator's settings into a web admin you open from any browser in your home.
Switch the Pi on and it boots straight into NeXTSTEP. There is no boot message, no Linux login and no desktop in between.
Pick one of eleven NeXT machines and set memory, drives and ports with switches and sliders. Drop a saved configuration onto its window to start it.
NeXTSTEP 3.3 comes with the installation. The admin fetches NeXTSTEP 2.2, 3.0 and 3.2 and OPENSTEP 4.0 and 4.2 from archive.org, and the Pi boots whichever you choose.
Copy a system's disk before you try something new. If it goes wrong, put the copy back.
The admin
The admin is built with great care for detail, as close to the original as it gets: the icons, the window buttons, the grays and the rasters are NeXTSTEP's own, down to the pixel. It speaks English, German, French, Italian, Spanish and Swedish, just like the original.
Before you run it
The install command fetches the installer from
phranck/previously and runs it. The installer puts the admin tool on the Pi as a
Debian package and asks its helper, setup.py in the same
repository, for the rest.
The admin runs as your user on port 8810, plain HTTP, for your home network only; reading is open, every change needs the password. Only the helper runs as root, and all the admin hands it is a short request of names it looks up in its own tables, never a path or a command.
Each step records how to undo itself, and a failure reverses what was done. The terminal and the Installer window say which step stopped and why, and Install starts it again.
A second run skips what is done and replaces only an admin tool older than the newest release. Later updates come from the admin: the Info window updates the tool, the Installer window the emulator.
Once the admin tool is installed, the Pi does the rest by itself; Ctrl+C or a dropped SSH session only stops you watching. After a power cut during the install, run the install command again.
Remove in the Installer window gives the console and the
boot back and removes the emulator; the disks and your configurations stay.
sudo apt purge previously removes the admin tool.
Questions
A few things worth knowing before the card is written.
Yes. Previously is built and tested on both. The cube it emulates out of the box is a NeXTcube Turbo with a 68040 at 33 MHz and 128 MB of memory. Nothing in the installer turns a Pi 3 or a Pi 400 away, but those are not what it is made on.
NeXTSTEP's own picture, 1120 by 832 pixels in four grays on the default cube, full screen on whatever hangs on the HDMI port, with black at the sides where your monitor is wider. The NeXT lives on that screen; the admin in the browser only sets it up, and Grab in the admin takes a screenshot of it when asked.
Into the Pi. The admin passes nothing you type into NeXTSTEP. Inside Previous, F10 is the NeXT's power key, F12 opens the emulator's own settings and F11 leaves full screen.
Yes. Plug a USB speaker into the Pi and NeXTSTEP plays through it. The Info window in the admin names the sound card it sees.
In the admin's Info window, with Power Off or Restart. Either one shuts NeXTSTEP down through its power key first and waits for it, because cutting the power under a running NeXTSTEP damages its disk the way it damaged a real one. Power Off in the admin's window for the emulated machine stops only the machine, until Power On or the next boot of the Pi.
Its Ethernet is switched on in the configuration the installer writes, and the Config Editor is where you turn it off or change the socket. Previously writes nothing beyond that, so what the NeXT reaches from there is Previous's own default.
No. It reaches out only when asked: to GitHub when the Info window checks for a newer release, to archive.org when you fetch a system, and to the Window Maker Live archive, or its copy on previous.li, when the emulator is installed or updated.
Yes. SSH stays the way in, exactly as before. The Terminal window in the admin is that same SSH login in a browser: it asks for a Pi user's password, not the admin's, and takes one session at a time.
Remove the password file on the Pi, over SSH. From that moment the admin is unclaimed again, and the next change chooses a new one.
sudo rm /var/lib/previously/password
No, better not. It takes the first console and the screen for itself and silences the boot, so it belongs on a Pi of its own.
Nothing, and on GitHub: the admin, the installer and the helper in one repository, with the releases beside them. Questions and anything that does not work go into its issues.
Yes. Since 1.11.0 every release comes with one for Raspberry Pi Imager, see Install above.