"Дмитрий Завалишин. О Маках" - читать интересную книгу автораКак и обещал, возвращаюсь к теме Макинтошевских и близлежащих операционных систем.
Чуток истории. Next сздавался в интересную пору. Во-первых, всем трезвомыслящим людям было ясно, что Mac OS требует принципиальной переработки. Однозадачная до глубины души, она уступала в этом качестве даже Windows 3.1 - далеко не лидеру в плане многозадачности. Остальные стороны Mac OS, в общем, не вызывали принципиальных нареканий, однако упорядочение и им не мешало, да и объектно-ориентированное программирование переходило из стадии малоизвестного прикола в стадию овладения широких масс новым инструментом. Поскольку событийно-центрированная модель, применяемая в Mac OS (а так же в X Windows, Windows, OS/2 Presentation manager, etc etc) была, по сути, первым "промышленным" проявлением объектной ориентированности, разумному человеку было понятно, что драться с этой парадигмой уже не только глупо, но и физически невозможно. Вопрос был только в том, насколько глубоко нырять в ОО на практике, и где прагматика начнет перевешивать стремление к красивому. Лирически отступая от и без того лирического текста, отмечу, что использование ОО в виде системы событий современных графических подсистем было вынужденным, а не осознанным. Это - аргумент против широко разошедшегося заблуждения, что, мол, ОО - новая игрушка от программеров теоретиков, и практикующему программисту все это знать не принципиально - наиграются, мол, и бросят. Увы, мир впервые широко прибег к ОО из соображений исключительно прагматических. Оказалось, что делать пользовательские интерфейсы на основе событий - гораздо проще, чем пользуясь старыми "простыми", казалось бы, лобовыми методами. Конец Л.О. Другим фактором, повлиявшим на создание наследника Mac OS, была яростная попытка Юниксового мира побороться с постоянным растолстением сей почтенной ОС. Год от года ядро системы, больше, необозримее и эклектичнее, что никак не вязалось с заветами отцов-основателей - держать в ядре только самое необходимое, остальное же - выгнать. Ибо нефиг. В качестве выхода из странной ситуации была предложена концепция микроядра. Идея была как раз в том же самом - собственно ядро (ныне - микроядро) наградить только теми функциями, что ну никак нельзя выкинуть: управлением памятью, многозадачностью и связью между процессами. Остальное (файловые системы, сеть, секьюрити, ввод-вывод, графику) выгнать в отдельные процессы, и пусть оно там мучается, как хочет. Это было разумно придумано, но неожиданно хреновенько реализовано. Это я о проекте Mach. Во-первых, понятие "микро" к новому ядру липло с напрягом, во-вторых, вместо того, чтобы изъятые из микроядра функции аккуратно реализовать в виде сервисов, поверх микроядра Mach просто налепили ядро от обычного BSD Unix. Результат, увы, не сильно впечатлял - конечно, это было лучше обычного BSD, если учесть новые возможности микроядра, но не очень понятно было, чем это отличается от Юникса, если бы просто добавить в него эти новые возможности. Успокаивали себя тем, что это, знаете ли, первый блин, дальше будет лучше, и вообще - великая (без шуток) идея стоит некоторых мучений. Совершенно, категорически и по самые уши согласен с идеей микроядерных ОС. Но... мало хорошо придумать новый молоток. Надо раз - хорошо сделать, два - научиться не бить им по пальцам. Однако, Бог с ним. Два источника, две составные части NeXT Step нам уже известны. Третьей стал Джобс, и его доля богатства Apple. Совершенно справедливо решив, что нечего стоять на месте, он основал новую компанию, спроектировал новый компьютер и написал новую ОС. В качестве нижнего уровня выступил Mach + BSD Unix, поверх которых на Objective C была написана верхняя часть |
|
|