Infinite Mac: BeOS

Korte samenvatting: Je kunt nu veel BeOS-versies in de browser draaien op Infinite Mac, mijn website waar je het 'Macintosh Cinematic Universe' van 1984 tot 2005 kunt ervaren. De installaties zijn volwaardige tegenhangers van hun Mac-neven: je kunt ze direct opstarten (grote schijven worden gestreamd), experimenteren met vooraf geïnstalleerde software van Infinite HD, cd-roms van het Internet Archive invoegen en je werk opslaan op de "Saved HD"-schijf.

BeOS was een multimedia-georiënteerd, multitasking en multi-threaded besturingssysteem dat uiteindelijk werd geport naar de Power Macintosh-computers uit het midden van de jaren 90. Het maakte veel indruk in de Mac-gemeenschap, inclusief bij Apple zelf, die overweegde Be (het bedrijf dat het had gemaakt) over te nemen. Als je de saga van Apples zoektocht naar een besturingssysteem van de volgende generatie hebt gevolgd, stelt dit je in staat om te zien hoe de weg die niet werd gekozen eruitzag.

BeOS werkend krijgen

Na het laatste, enigszins complexe (hoewel nog steeds bevredigende) project op Infinite Mac, was ik op zoek naar een snellere overwinning. BeOS stond al een tijdje op mijn radar en, in tegenstelling tot A/UX, had ik er een persoonlijke band mee: ik herinner me dat ik een BeBox zag in Akihabara, dat ik mijn Mac liet cosmetisch lijken op een BeBox met BeView, en dat ik uiteindelijk BeOS dual-bootte op mijn Power Macintosh 8500. DingusPPC, een emulator die ik al had geïntegreerd, maakte goede vorderingen met het draaien van BeOS, dus het leek erop dat het toevoegen aan de site vooral een kwestie zou zijn van het voorbereiden van enkele aanvullende schijfimages.

Aanvankelijk leek het net zo eenvoudig als ik had gehoopt; ik voegde een Power Macintosh 7300-configuratie toe (een van de Power Macs die officieel werden ondersteund), vond een installatie-cd, maakte een schijfimage en was up-and-running. Maar naarmate ik het meer gebruikte en meer versies begon te installeren, stuitte ik op veel kleine bugs en randgevallen:

  • De BeOS boot loader dacht dat alle modifier-toetsen werden ingedrukt vanwege een bug in de ADB-emulatie; hierdoor verscheen elke keer het (lelijke, op PC BIOS lijkende) scherm voor de partitiekeuze.
  • Bij het wijzigen van de schermdiepte moeten twee hardwarecomponenten worden aangestuurd: de videocontroller en de digitaal-naar-analoog-omzetter. DingusPPC vertrouwde per ongeluk op de volgorde waarin Mac OS deze meldingen verstuurde; BeOS maakte toevallig de tegenovergestelde keuze, wat resulteerde in een corrupt beeld.
  • Vroege versies van BeOS voerden videogeheugen-updates uit in little-endian modus¹; DingusPPC miste ondersteuning voor die hardwarefunctionaliteit.
  • Latere versies van BeOS konden HFS-partities mounten, maar hadden problemen met de volumes die ik genereerde via de machfs Python-bibliotheek. Het bleek dat BeOS (terecht) strenger was dan Mac OS over hoe bepaalde datastructuren ingevuld moesten worden.

Enzovoort – de meeste commits die ik de afgelopen maand naar DingusPPC heb gepusht, waren gericht op een betere BeOS-compatibiliteit.

Het beste van twee werelden?

SheepShaver, een Power Macintosh-emulator die vandaag de dag nog steeds bestaat (en die ook in Infinite Mac is ingebed), is oorspronkelijk ontstaan op BeOS. Vooral voor het plezier van een extra laag van inception/emulatie, wilde ik controleren of dit ook werkte. Zo bleek dat hiervoor ook een compatibiliteitsfix nodig was – het vertrouwde op een specifiek detail van hoe de ROM is toegewezen aan fysieke geheugenadressen, wat DingusPPC niet nauwkeurig modelleerde.

Er zit een patroon in de meeste van deze bugfixes: DingusPPC (en Infinite Mac) waren voornamelijk gericht op het draaien van Mac OS en werden daardoor per ongeluk afhankelijk van de eigenaardigheden of implementatiekeuzes daarvan. Het toevoegen van een onafhankelijk ontwikkeld besturingssysteem dwong het gebruik van nieuwe paden af en leidde uiteindelijk tot een verbetering van de nauwkeurigheid van de geëmuleerde hardware. Om duidelijk te zijn: DingusPPC was uit de doos al erg dichtbij; complimenten aan de beheerders. Ik geloof dat het, met dit werk, de enige emulator² is die PowerPC-versies van BeOS kan draaien. Ik hoop daarnaast dat dit zal helpen bij het opstarten van alternatieve besturingssystemen zoals MkLinux (waar ik ook herinneringen aan heb) en Rhapsody.

Aan de kant van Infinite Mac waren er duidelijke wijzigingen, zoals een "BeOS"-uiterlijk voor mijn aangepaste bedieningselementen en het verzamelen van software voor de bibliotheek. Ik moest ook sommige dynamisch gegenereerde inhoud over de schijf plaatsen om het OS een schermresolutie te laten voorafselecteren die overeenkomt met het browservenster (vergelijkbaar met wat er voor A/UX is gedaan). Een AI-agent (voor mij nog steeds Codex) was opnieuw nuttig voor dit soort precies werk van reverse-engineering: het is één ding om te observeren dat het OS een bestand op de schijf opslaat met de schermgrootte; het is iets anders om alle nuances ervan te kunnen reproduceren, vooral omdat het formaat in latere releases veranderde.

Developer Release 8.2, de eerste BeOS-versie voor Power Macs, had een 'tijdbom' die voorkwam dat het systeem opstartte na 1 april 1997. Dit was niet alleen om een gevoel van urgentie te creëren; het werd geleverd met een gelicentieerde font-renderer die Be niet onbeperkt mocht distribueren. DR8.3 loste dit op, maar om die merkwaardige eerste versie bootbaar te maken, heb ik uiteindelijk gebruikgemaakt van de aangepaste datumondersteuning om een werkende datum hardcoded in te stellen bij het kiezen van die schijf.

Indrukken van BeOS

Hoewel ik BeOS al kort heb getest toen het actueel was, herinner ik me niet dat ik het genoeg heb gebruikt om een mening te vormen, anders dan "dit is snel; ik mis al mijn third-party software." About This Particular Macintosh heeft wel eigentijdse verslaglegging, waaronder de eerste en tweede verschijningen van Be op Macworld Expo Boston, en reviews van R3 en R4.5; deze zijn interessant om te lezen. Deze video, uitgebracht door Be zelf, bevat ook een walkthrough van wat zij als de sterke punten beschouwden.

Kijkend met de ogen van 2026, ben ik nog steeds onder de indruk van de snelheid – het start snel op en is vlot in gebruik, zeker vergeleken met de tijdgenoten van Mac OS die veel minder konden (bijv. het live verslepen van vensters verscheen pas in Mac OS X). Het POSIX-subsyteem en de Unix-achtige shell voelen ook modern aan (in tegenstelling tot die van A/UX) – ik had geen problemen om met de terminal rond te snuffelen. Er is ook veel innovatie, hoewel sommige zaken (BFS met zijn attributen en live queries) interessanter zijn dan andere (replicants zijn een voorloper van widgets, maar ik kon geen praktisch nut voor ze bedenken).

Het voelt ook als een systeem dat gericht is op ontwikkelaars en dat "onder constructie" is: veel van de meegeleverde apps zijn technologie-demo's (al wie houdt er niet van een Utah teapot?), terwijl een eigentijdse Be-homepage direct linkt naar de developer release notes en discussieert over CodeWarrior-releases en toegang tot de bugtracker. Het onvoltooide karakter strekt zich uit tot third-party software – ik kwam wat BeOS-software tegen op een Amiga-tijdschrift CD, en het meeste voelde als "versie 0.1", letterlijk of figuurlijk. Om eerlijk te zijn, vond ik ook wat meer uitgewerkte software, bijvoorbeeld Gobe Productive van het voormalige ClarisWorks-team. Dit en andere software staan op Infinite HD als je het wilt uitproberen (bij voorkeur in latere OS-versies).

De interface leek destijds vernieuwend, hoewel ik me afvraag hoe het stand zou hebben gehouden³. De kenmerkende tabbladen in de venstertitels zien er netjes uit, maar ze hebben een beperkt sleepoppervlak, waardoor ik elke keer harder moet nadenken als ik een venster wil verplaatsen. En het gebruik van een hand als standaardcursor maakt het klikken minder precies dan bij een traditionele pijl (welke pixels van de "vinger" vormen precies het actieve punt?). Andere delen van de UI voelen als een niet volledig coherente Windows/Mac-hybride, met een Deskbar die een Startmenu kan emuleren⁴, Alt-toetsversnellers in menu-items, maar ook spring-loaded folders en een spatial Finder Tracker.

Over de Tracker gesproken: ik had niet gerealiseerd dat Be deze open-source had gemaakt (en zelfs wijzigingen uit de open-source versie had verwerkt). Dit was rond de tijd dat Be verschoof naar internet-appliances – er is geen reden om engineering-middelen te investeren in een bestandsbeheerder als alles wat wordt getoond één browser-app op volledig scherm is. Dit interview met de Tracker-ontwikkelaar geeft meer achtergrondinformatie.

Maak je eigen vergelijking: NeXT vs. Be

NeXTStep voelt in vergelijking volwassener aan. Het had soortgelijke turbulentie doorgemaakt (van eigen hardware naar standaard PC's, verschuivingen in bedrijfsstrategie), maar wellicht omdat het meer tijd had, werd dit gracieuzer afgehandeld. NeXT ondersteunde bijvoorbeeld "fat" binaries die konden draaien op 68K, Intel, PA-RISC en andere architecturen. Op BeOS moesten dit aparte uitvoerbare bestanden zijn, waardoor de gebruiker moest kiezen welke hij wilde draaien, wat de distributie bemoeilijkte (dit maakte het voor mij lastiger om software te vinden voor Infinite HD). Erger nog, je moest parallelle diskpartities hebben op cd-roms: BFS gebruikte de endianness van de host, dus schijven geschreven door een PowerPC-installatie konden niet worden gelezen door een Intel-installatie, of vice versa. Maar mijn pro-NeXT bias kan voortkomen uit het feit dat ik weet welk OS Apple uiteindelijk heeft gekozen.

Overige verbeteringen aan de site

Het is nog maar kort geleden dat de laatste update plaatsvond, maar ik heb nog een paar kwaliteitsverbeteringen doorgevoerd. Je kunt nu screenshots maken en video's (met geluid) opnemen van het scherm van de geëmuleerde machine. Dit biedt een manier om beeldinhoud met hoge getrouwheid vast te leggen, aangezien het een directe dump is van wat op het scherm zou worden getoond.

Ik heb ook de collectie besturingssysteem-cd-roms uitgebreid met items zoals de Rhapsody en Mac OS X developer previews. Hoewel ze voorlopig alleen aspirationeel zijn (DingusPPC kan ze nog niet draaien), bevredigen ze mijn drang naar volledigheid. Deze cd's worden gespiegeld naar en geserveerd vanuit mijn eigen Cloudflare R2-bucket – het Internet Archive is een ongelooflijke bron (je kunt aan hen doneren), maar streamen ervan is steeds onbetrouwbaarder geworden. Ik wil het probleem niet verergeren, en dankzij mijn sponsors kan ik een paar gigabytes serveren.

Wat betreft wat er nu volgt: nu deze alternatieve Mac-tijdlijn is gedekt, is het wellicht tijd om een prequel te verkennen.

***

Voetnoten:

  1. TIL (Today I Learned) dat dit mogelijk was – Apple draaide de PowerPC over het algemeen en deed alles op zijn machines in big-endian modus. Er is zelfs een patent over deze controller-functionaliteit.
  2. Hoewel er, terwijl ik hieraan werkte, een BeBox in het bestaan werd "gevibed".
  3. Aan de andere kant lijkt het erop dat Haiku het bijna letterlijk heeft bewaard, dus het heeft zeker een langdurige aantrekkingskracht voor sommigen.
  4. Als je het sleepoppervlak van 3 pixels breed kunt vinden om het naar beneden te verplaatsen.