FreeBSD 1.0 Qemu Installation


by Ramses Soto-Navarro ramses@sotosystems.com, 9/28/2023

FreeBSD 1.0 Qemu Installation


Overview and Brief History

Brief steps on how run FreeBSD 1.0 on on Qemu under GNU/Linux. FreeBSD 1.0 was one of the first stable versions of BSD UNIX for the Intel 386 personal computer, released June 10, 1993. The intent of this document is to demonstrate how to install FreeBSD 1.0 as a virtual guest under Qemu; and as a point of reference for computer historians, and in order to study one of the first classic BSD UNIX for the 386 architecture. The first version of BSD UNIX for the Intel 386 was ported and compiled by professor William Jolitz and his wife Lynne, back in 1989. For the first time they got Unix to run on a Intel 386 IBM PC. They called it 386BSD. Before that, and beginning in the mid 70s, BSD UNIX was mostly run on the DEC VAX, the DEC PDP, and a few other similar mainframe computers.

freebsd-1.0-qemu.jpg

After 386BSD was ported to the personal computer in 1989, a few years went by with no updates. All development was stopped because AT&T was attempting to sue Berkeley University over assumed source code copyrights violations, which was settled many years later. Meanwhile in 1991 Linus Torvalds from Finland, using the Minix scholastic operating system as a starting point, wrote a new kernel, which actually became part of the most favorite Unix like open source operating system in actuality: GNU/Linux. However BSD UNIX is an initial pioneer of all things open source.

After it’s inception 386BSD was quickly abandoned, and as a result, in late 1992, a fork was begun: NetBSD 0.8. For me this version is very difficult to install because the installation method is very buggy. However, a year later, in 1993, yet another 386BSD fork beat them to it: FreeBSD 1.0. It ran very stable from the start, and it had a good installation wizard. This is the one we are installing here.

BSD UNIX has been considered as the most important software ever written. Most modern operating systems became possible because of the source code examples of BSD UNIX; including all the current versions of UNIX, Apple Darwin, the PS4 game console, iPhone, IOS. One of its most significant contributions is the TCP/IP source code, which is the main networking protocol of every operating system in use today.

The ultimate running target in this article is a virtual machine using the latest built-in package of Qemu 5.2.0 under Debian 11 x86_64. However, I could not get it to install. I had to first install it with Bochs running under an old version of Debian 5 (i386), then convert the raw disk image over to qcow2 format. After that I can then run it in any Qemu virtualization platform. Obviously, we want to run it in Qemu using it’s built in kernel hypervisor capabilities, rather than the Bochs emulator; Qemu is much faster and simpler, and offers native tap networking, and built-in kernel virtualization capabilities.

Many sites show you how to download and run their own already preinstalled Qemu image of FreeBSD 1.0, but they do not show you the steps involved for how to actually install it yourself. Here we demonstrate that briefly.

NOTE: I got FreeBSD 1.0 to run on Bochs and Qemu, but not KVM, since it does not include the NE2000 (ISA) emulation. Modern hypervisors dropped all ISA capabilities. ISA architecture was used until the mid 90s; then everything was switched to PCI DMI architecture. So it doesn’t make sense to include it in most modern virtualization platforms. Kudos to the Qemu team for still including vintage ISA device drivers.

The Plan:

1. First install the FreeBSD 1.0 OS on Bochs under Debian 5 i386. The simplest way I could get it to install. The installation floppies crash with Qemu or Bochs under any other more modern OS, including Debian 10/11 x86_64. Afterward convert the Bochs image to qcow2, then run it with any Qemu.
2. Will need another FreeBSD already running in order to extract the distribution tarballs. I used another older FreeBSD 3.3 (i386), from the late 1990s, which is compatible (itself also running on another Qemu session).
3. For native virtual networking under Qemu, you will need a GNU/Linux network bridge configured, and the ability to auto-create a tap network interface; Debian does this with script /etc/qemu-ifup. These steps are out of scope, but I may add them later.

The audience is experienced UNIX and Linux administrators.

[Read more…]

Install 4.3BSD Berkeley UNIX with VAX780 SimH Emulator and TCP/IP Networking


by Ramses Soto-Navarro ramses@sotosystems.com, 7/11/2023

Overview
Copyright
Compile SIMH
Prepare OS Binaries
Inspecting the Dumps
Install the OS
Configure Native Networking
Telnet via Serial Interface
RSH and RCP Login
Troubleshoot


Overview

Welcome, computer historians! Find here brief steps for the install of 4.3 BSD UNIX for VAX780, circa 1986; using the SIMH simulator. This setup is configured with native networking. Other sites demonstrate telnet connections by using the DZ11 emulator for the VAX780 Unibus serial line card. However, here we will use native networking via SIMH’s XU emulator for the VAX780 Unibus DEUNA/DELUA Ethernet controller. In this way, from other terminals on the network, we’ll also be able to connect and upload to 4.3BSD, via FTP. This exercise is significant because it demonstrates what it was like to run and interact with the operating system that first used TCP/IP networking. It is also a good starting point for those that would like to study the origins UNIX, TCP/IP, and other operating systems.

In April of 2006 InformationWeek Magazine declared “The single Greatest Piece of Software Ever, with the broadest impact on the world, was Berkeley UNIX 4.3BSD; representing an unmatched peak of innovation, and the single biggest theoretical undergirder of the Internet. Moreover, the passion that surrounds Linux and open source code is a direct offshoot of the ideas that created BSD: a love for the power of computing and a belief that it should be a freely available extension of man’s intellectual powers–a force that changes his place in the universe.” Find the article here.

Classic original BSD will not run on any x86, including virtual apps such as VirtualBox, KVM or qemu. 4.3BSD was compiled for the DEC PDP and then the DEC VAX line of computers. So, you will need a VAX emulator such as SIMH.

Reference:

  • Installing 4.3 BSD on SIMH
  • SimH - Installing 4.3BSD on emulated VAX 780

    Without the help from the sites above this document would not be possible. Thank you so much Gunkies.org and Stephen’s Machine Room Youtube Channel!

    [Read more…]

  • Testing Multi-Domain Subject Alternative Names Certificates


    by Ramses Soto-Navarro ramses@sotosystems.com, 3/2/2023

    Overview
    Setup Apache
    Certificate Script
    Create Certificate
    Second Virtual Host


    Overview

    Brief notes on how to create and verify multi-domain SSL certificates using the subject alternative names extension. Useful for Apache web URLs that require many different subdomains, while using one certificate. The same technique can be used for OpenSSL self-signed test certificates or official certificate signing requests, which service multiple domains with one certificate. Here we will use a Linux Red Hat 9 test scenario. The audience is experienced Linux administrators.

    [Read more…]