Mac OS X: NeXT

Ако се върнем отново във времето от началото на предната публикация, а именно когато инженерите на Apple записват идеите си на цветни картончета и даже малко преди това – тогава един нов проект започва своето съществуване. CMU Mach всъщност наследява неуспешния проект на Carnegie Mellon University (CMU) – Accent – за създаване на ядро на мрежова операционна система, приключил безславно по ред причини – една от които била неспособността му да носи UNIX приложения. Основният замисъл на Mach бил да се превърне в UNIX-съвместим Accent. По това време UNIX вече има петнадесетина години история зад гърба си и на хората около Mach им се струвало, че кодът вече е далеч от своята първоначална простота и леснота за промени и напасвания, затова по идея Mach е трябвало да бъде семпла алтернатива на набъбналата сложност на UNIX. Всъщност по дизайн Mach е микроядро, написано на C за да се гарантира преносимост, което да е основа за други операционни системи. Фокусирано главно върху управлението на процесора и паметта, Mach оставя нещата около файловите системи, вход-изхода, мрежовите функции на „истинската“ операционна система, която се явява потребителска задача върху Mach. Реалността обаче е различна от концепциите и още първите версии на Mach биват комбинирани с BSD като монолитна имплементация. Всъщност едва Mach 3.0 е първото истинско микроядро, което е носело BSD като task.

Най-хубавото в цялата история е решението кодът на CMU Mach да се разпространява под незабранителен лиценз. Така Mach повлиява на много операционни системи – революционизира управлението на виртуалната памет на класическия UNIX – днес FreeBSD използва например пряко наследена от Mach архитектура за това. Проектът GNU прегръща Mach като микроядрото по подразбиране, върху което стъпва свободната операционна система GNU/Hurd като Mach user-space task. А каква е връзката между Mach и Mac OS X ще видим след малко.

По същото време, когато проектът Mach едва прохожда, след снето от него доверие Стив Джобс напуска Apple донякъде в знак на протест, но и с идея за нова фирма в главата си. В тази връзка завлича няколко кадърни служителя със себе си, предизвиквайки гнева на бившата си компания. Всъщност петима, поради което Джобс се заяжда, че не вижда защо гигант като Apple (оценяван на около 2 милиарда долара по онова време) се страхува от петима души в протрити дънки. Така или иначе година по-късно емоциите утихват и със седем милиона долара лични средства Джобс основава NeXT с планове тя да създаде най-добрия универсален компютър за научна работа. Тези пари не стигат до никъде и следват крупни инвестиции в NeXT – най-голямата от които на Canon за цели сто милиона долара. Така или иначе три години след като е изоставил Apple, Джобс показва на света компютъра NeXT cube с недотам завършената операционна система NEXTSTEP 0.8, базирана на Mach 2.0 и 4.3BSD.

Прозоречния мениджър на NEXTSTEP е базиран на Postscript и системата предоставя на потребителите както мощта на Unix така и удобен графичен интерфейс където drag-and-drop концепцията е въздигната в култ. Познато нали? Всъщност любимият ми графичен интерфейс върху моите първи Linux-и години наред беше именно Window Maker, което е нещо като GNU-преразказ на визията на NEXTSTEP.

Подразбиращият се език за програмиране в NEXTSTEP e Objective C, който е обектно-ориентирана надстройка на C с влияния от Smalltalk и с претенции да е по-семпъл от C++. С времето NeXT изцяло откупува цялото IP от създателите му и той и до днес е ключова тема за Apple и Mac OS X. Сегашния Objective C компилатор на Apple всъщност е модифицирана версия на GNU C компилатора с поддръжка на Objective C.

Между другото интересен и малко известен факт е, че Tim Berners-Lee създава прототипа си за първия web-браузър в CERN именно върху NeXT машина с NEXTSTEP.

С времето за NeXT производството на компютри се оказва твърде голям залък и компанията се фокусира върху софтуера. NEXTSTEP върви върху 68К, PA-RISC и SPARC, а версията NEXTSTEP 486 за Intel x86 се е продавала за почти 1000 долара. Една добра цена за операционна система…

При разработване на софтуер за NEXTSTEP е възможно да се компилират т. нар. fat binaries – изпълним код, който съдържа в себе си инструкции за няколко поддържани архитектури. Същата е идеята зад сегашните Universal binaries за Mac OS X, които работят едновременно на Mac-ове с PowerPC и Intel.

Малко преди отново да стане част от Apple – компанията от която се отцепва – NeXT се сдушва със Sun с идеята да направят заедно отворена спецификация, базирана на NEXTSTEP, която да дава възможност на всеки да се разработва сходна операционна система върху практически всяко ядро. Въпросният framework е създаден за няколко ОС, а съвместимите с него имплементации на NEXTSTEP излизат под новото име OPENSTEP. Това обаче не носи кой знае какви ползи за NeXT и преди да бъдат погълнати обратно от Apple те се фокусират основно върху WebObjects, която и до днес е технологията под повечето сайтове на Apple.

Всичко това по-горе трябва да дава идея защо Apple предлага два пъти повече пари за NeXT отколкото в изнудването за Be. А и отговорът на въпроса дали NeXT наистина е била толкова безценно за Apple гнездо на технологии, които сега са в същината на бизнеса и, или сегашната Apple e всъщност възкръстналата NeXT, никак не е еднозначен.

Така или иначе Джобс се завръща триумфално в Apple, носейки под мишница точно това, което компанията е търсела ежедневно в своето безкрайно дълго десетилетие на лутане и кризи.

Следва продължение…

Йовко Ламбрев

Йовко Ламбрев

ИТ архитект, блогър и (все по-рядко) фотограф. Либерал. Все още вярва, че можем да направим света по-добър.
Пловдив, България