Za jídlo, šaty a vzduch otročíme na programech z temných světů

Technologie v propadlišti dějin 7: A/ROSE

I dnes se podíváme na jednu velmi zajímavou a velmi mrtvou softwarovou technologii.Inteláci to asi nebudou vědět, ale Apple kdysi dávno, říkejme té době třeba osmdesátá léta, dělal pořádné počítače. Jedním z těchto počítačů byl Macintosh II. Celá dvojková řada byla narozdíl od Jobsova dítěte Macintoshe poněkud seriózněji orientovaná, takže přibyla sběrnice NuBus a počítač měl být rozšiřitelný pomocí karet třetích stran. Apple ale musel kvuli tomuto zdánlivě triviálnímu problému začít řešit neduhy samotného Systému. Až do verze 6 bylo totiž to, co později vešlo ve známost jako MacOS, čistě jednouživatelským operačním systémem, který si s obsluhou zařízení nedělal žádné zásadní vrásky. I když jsme se od verze 6 výše mohli oblažovat kooperativním multitaskingem, možnost zakázat přerušení a velké latence dané vysokou prioritou GUI znamenaly pro vývoj rozšiřujícího hardware nepředstavitelný problém.

Pokud by stejná situace nastala dnes, pravděpodobně by se v Apple s kompatibilitou nikdo dvakrát nezabýval. V roce 1987 ale v Apple nerozhodoval Steve Jobs, a tak přišlo na svět vskutku zajímavé řešení, zvané Macintosh Coprocessor Platform (MCP). Podstatou MCP je inteligentní rozšiřující karta s vlastním procesorem. Tím procesorem nebylo nic menšího, než samotná Motorola 68000 (taktovaná na 10MHz), tj. čip který v té době kraloval v Amigách a Atari ST jako hlavní procesor. Každá karta disponovala standardně i 512kB RAM, která se mapovala do adresového prostoru počítače.

Co je ale nejpodstatnější, na každé kartě běžela instance operačního systému A⁄ROSE (Apple Real-time Operating System Environment), což je velmi efektivní distribuovaný realtimový operační systém s preemptivnám multitaskingem. Jádro zabíralo v paměti pouhých 6kB, celý systém i s buffery pak zabral méně než 100kB. Multitasking počítal s 32 úrovněmi priority, přepnutí kontextu bylo garantováno do 110 mikrosekund s 20 mikrosekundovou latencí. Systém navíc mohl běžet autonomně na více kartách a komunikovat s ostatními pomocí zpráv.

Apple A/Rose extension icon

Jedna z instancí systému běžela přímo v paměti počítače na hlavním procesoru a ta zajišťovala komunikaci s kartami v NuBus slotech (to je ten známý doplňek A⁄ROSE, který můžete znát). Je tedy možné i kartu „zaúkolovat“ nějakým výpočtem a zajistit, aby výsledek předala systému až bude hotový.
Součástí vývojářského kitu pro producenty rozšiřujících karet byla univerzální karta, na které bylo možné si odladit veškerý software napsaný pro A⁄ROSE.

Karty vybavené A⁄ROSE se bohužel díky vysoké ceně příliš nerozšířily. Zejména se jednalo o TokenRingové a ethernetnetové síťové karty. Definitivně MCP odzvonilo s nástupem PowerPC procesorů a PCI slotů, technologie to ale bezesporu byla velmi zajímavá.

Pokud se chcete do tématu zanořit více, přečtěte si anglický článek, který mně inspiroval k tomuto stručnému blogpostu. Jsou v něm rozebírány i jednotlivé syscally systému A⁄ROSE.

Mrtvým technologiím zdar!