Самые скачиваемые

Топ 5 Cидеров

Топ 5 Личеров

 

MSVGePard ®

Стаж:
8 лет 7 месяцев
Сообщений:
1085

Началом истории создания Mac OS X Server можно считать 1985 г., когда в Школе Компьютерных Наук Университета Карнеги-Меллона (School of Computer Science, Carnegie Mellon University) начались работы над проектом Mach. Работы по данному проекту длились девять лет, до 1994 г., и оказали громадное влияние на развитие коммерческих и экспериментальных операционных систем.
Часто можно услышать мнение, что проекты микроядерных систем, аналогичных проекту Mach, имели целью создание легко переносимых и более надежных операционных систем. Действительно, наличие очень маленького аппаратно-зависимого ядра, выполняемого в режиме минимальной защиты процессора, и перенос всех остальных функций операционной системы в аппаратно-независимый слой, исполняемый в режиме полноценной защиты, ведут именно к отмеченным результатам. Однако основная цель проекта Mach была совсем иной. Строго говоря, ядро Mach вплоть до версии 3.0 вообще не является микроядром – скорее, это очень компактное, но все же монолитное ядро.
Проект Mach предусматривал создание ОС, в которой реализованные на уровне ядра механизмы межпроцессного взаимодействия являлись бы базовым блоком для всей остальной операционной системы. При этом большинство таких процессов трактовались как "легкие" процессы или потоки (light-weight process, или thread), что позволяло при последовательной реализации идеи микроядра не слишком потерять в производительности. Механизмы межпроцессного взаимодействия должны были работать не только в системах с одним процессором, но и в многопроцессорных системах, в том числе и в распределенных системах типа кластеров.
Конечно же, в рамках проекта Mach предусматривалось создание развитого механизма виртуальной памяти, а также механизмов многозадачной и многопользовательской работы.
Наконец, предусматривалось создание как минимум одного "внешнего" слоя, обеспечивающего функциональность большинства API UNIX. Это позволяло выполнять поверх ядра Mach многохарактерных для UNIX приложений и гарантировало использование результатов проекта в реальных системах. Практика показала, что таких "внешних" слоев было создано гораздо больше одного – можно упомянуть хотя бы работающие поверх ядра Mach системы OS/2 для RS6000 компании IBM, OSF/1 для процессоров Alpha компании DEC, несколько вариантов базирующейся на Mach системы Linux (заметно переработанной, конечно, поскольку оригинальный Linux не является микроядерным)…
На момент завершения проекта Mach была выпущена версия 4.0. Однако, как признают сами разработчики, основной целью последней версии явились доработки, необходимые для перехода к новому проекту распределенной многопроцессорной системы (и некоторая оптимизация в целях повышения производительности). Сегодня обычно используется версия Mach 3.0 либо одна из версий системы других исследовательских групп, базирующихся на Mach (чаще всего – Open Software Foundation).

Яблоко от яблони...

Операционной системы Mac OS X Server никогда бы не было, если бы в далеком 1985 г. Стив Джобс, основатель компании Apple Computer и вдохновитель проекта Macintosh, не разругался с Джоном Скалли, тогдашним президентом Apple Computer, и не ушел в очередной раз изменять мир. И не основал компанию NeXT Computer. Целью NeXT Computer являлось создание абсолютно нового и принципиально более совершенного персонального компьютера, который был бы гораздо более удобен, чем Macintosh, и являлся бы его духовным наследником. Для решения этой непростой задачи надо было создать как минимум четыре совершенных вещи: совершенную аппаратную платформу, совершенную операционную систему, совершенные средства разработки программного обеспечения, совершенную систему тиражирования, продаж и обслуживания всего этого. NeXTcubeТри первые задачи, хотя и с некоторыми проблемами и с опозданием более чем на два года относительно первоначальных планов, решить удалось. Результатом явились вышедшие в 1989–92 гг. компьютеры NeXTstation и NeXTcube. Некоторые из положенных в основу NeXT идей оказались слишком радикальными для того времени и востребуются только сегодня (чего стоит отказ от НГМД в пользу магнитооптического диска, или стандартно встроенный в архитектуру компьютера DSP-процессор, или идея об отделении компьютера от интерфейсного блока – монитор + клавиатура + мышь + акустика – для создания более комфортных условий на рабочем месте). Зато некоторые решения успели стать классическими (архитектура на базе прямого доступа к памяти DMA, стандартно встроенный в компьютер Ethernet, дисплейный Postscript, дисплеи высокого разрешения…). Компьютер NeXT был воспринят как откровение, и благодаря ему воззрения на возможности "персонального" компьютера сильно изменились, особенно в университетской и научной среде. Фактически был создан в некотором смысле аналог уже завоевавшего в этой среде успех "визуального" компьютера от Silicon Graphics, но гораздо более недорогого и несравненно более удобного и для пользователя, и для разработчика, что привело к появлению целого букета программ (к сожалению, в большинстве своем некоммерческих…). NeXTstationСреди программ, появлению которых мы обязаны компьютерам NeXT, нельзя не вспомнить современные графические браузеры – ведь первый браузер с графическим интерфейсом WorldWideWeb был создан в 1990 г. Тимом Бернерз-Ли (почитаемым ныне как "отец WWW") именно на NeXT'е… Хотя вклад всем известного Mosaic, "папаши" Netscape Navigator, в простоту установки и использования WWW трудно переоценить, он был не вторым и даже не третьим графическим браузером: перед ним были написаны ViolaWWW, Erwise, Midas – все для UNIX.
Однако четвертую, "коммерческую", задачу компании NeXT решить не удалось, "следующий" компьютер так и не завоевал коммерческого успеха, и Джобсу пришлось отказаться от идеи "совершенной во всех отношениях" платформы. В начале 1992 г. было принято решение о переносе созданного программного обеспечения на другие аппаратные платформы, а еще через год – о прекращении дальнейших разработок и производства аппаратной платформы. Как показало время, эти ходы были правильными – программное обеспечение компании NeXT оказалось гораздо более живучим, чем ее аппаратная платформа.
К моменту начала работ над NeXT Джобс уже имел опыт создания 32-разрядных компьютеров и операционных систем к ним (первый Macintosh вышел в январе 1984 г., а его прообраз – Lisa, первый в мире персональный компьютер с графическим интерфейсом, продавался с января 1983 г.). Джобсу было абсолютно ясно, что "следующий" компьютер должен обладать гораздо более серьезной, нежели Macintosh, аппаратной базой, и достойной ее операционной системой – недостатки "самодельных" систем типа CP-M и MS-DOS, даже используемых на персональных компьютерах, уже были очевидны всем. Нужна была полноценная, легко расширяемая, но не слишком тяжеловесная операционная система, т.е. – нужен был UNIX. Сегодня такое решение кажется очевидным, но в середине восьмидесятых UNIX даже для не слишком слабых мини-компьютеров был все еще несколько громоздок, и часто заменялся более специализированными и несколько упрощенными операционными системами. Еще более рискованным было решение не ориентироваться на одно из уже сложившихся течений в UNIX, а принять на вооружение еще почти не апробированную, по сути экспериментальную, идею микроядерных операционных систем.
Итак, операционная система NEXTSTEP (а именно так называлась операционная система NeXT'ов) была впервые продемонстрирована 12 октября 1988 г., вместе с прототипом NeXT Computer. NEXTSTEP версии 1.0 была создана на базе микроядра Mach 2.0, и интерфейсов UNIX в стиле BSD; она начала поставляться 18 сентября 1989 г. Версия NEXTSTEP 2.0 увидела свет в апреле 1991 г., вскоре после начала поставок NeXTstation Color и NeXTcube, версия 3.0 – в сентябре 1992-го, а 3.1, первая версия NEXSTEP с возможностью работы на платформе Intel, поступила в продажу в мае 1993 г.
Версия 3.3 была последней из версий NEXTSTEP. Начиная с версии 4.0, отражая тенденцию к возможности работы на все возрастающем числе компьютерных платформ и приверженность "открытым стандартам", операционная система сменила имя и стала называться OPENSTEP с добавлением "for Mach" (т.е. Intel), "for Solaris", "for HP-UX", "for Windows 95", "for Windows NT". Порядок нумерации версий был сохранен, и первая же версия OPENSTEP имела номер 4.0 (и кодовое имя Mecca)… Последняя, кстати – 4.2. И простым переименованием дело уже не ограничилось… Несколько позже, уже после выхода версии 4.2, стало популярным и другое написание названия этой системы – OpenStep.
NEXTSTEP/OPENSTEP имел развитый оконный графический интерфейс, который во многом превосходил графический интерфейс Macintosh. Совершенно необычным для UNIX-компьютеров был то, что уже с самых первых секунд работы пользователь попадал в графическую оболочку, а не блуждал в дебрях командной строки. Поражала продуманность системы окон и меню, а также возможности их простой настройки в соответствии со вкусами пользователя. Ориентируясь на самые современные приложения, было решено предоставить пользователю максимально высокое качество дисплейной картинки, причем графическая подсистема была реализована на базе Postscript – по видимому, впервые… Значение этого для серьезных графических приложений трудно переоценить – ведь к тому времени язык Postscript уже стал стандартом описания страниц во всех сколько-нибудь серьезных принтерах и устройствах вывода страниц, и использование единого языка во всем процессе производства печатной продукции можно было только приветствовать.
Вся структура данных NEXTSTEP/OPENSTEP представляла собой последовательную реализацию объектного подхода. Фактически все (!) операции, сколь бы низкоуровневыми они ни являлись, могли быть осуществлены путем обращения к иерархии объектов операционной системы. Особенно впечатляла графическая подсистема, опять-таки представлявшая собой единое дерево объектов, причем не наложенное искусственно на системные низкоуровневые вызовы , как это было, например, сделано позже для Windows в системах ObjectWindows от Borland (OWL) или Microsoft Foundation Classes (MFC), а действительно обеспечиваемое на уровне самой системы.
Мало того, с системой поставлялись огромные наборы уже готовых к использованию классов, начиная с самых простых, описывающих отдельные элементы пользовательского интерфейса и базовые блоки программ, и кончая сложнейшими иерархиями классов, реализующих логику работы баз данных (с возможностями типа контроля целостности, хранимыми процедурами, распределенными запросами к нескольким базам данных различных производителей и т. д.). Эти стандартно поставляемые с системой иерархии классов носят названия Foundation Framework (иерархия базовых объектов программ), Application Kit (иерархия объектов графических элементов) и Enterprise Objects Framework (работа с базами данных). Первые два набора классов как неотъемлемая часть операционной системы обычно объединяются под названием Yellow Box.
И, как это принято в мире UNIX, с системой поставлялся полный набор средств разработчика. Разумеется, там присутствовали компиляторы ассемблера и Си, все нужные библиотеки и т. д. Но не это было главным. Как легко догадаться, наличие объектно-ориентированной системы подразумевает наличие базового для этой системы объектно-ориентированного языка. Поскольку базовым для всех UNIX'ов всегда считался язык Си, логичным было бы использовать объектное расширение этого языка. Но если вы думаете, что этот язык – Си++, то ошибаетесь! В качестве базового языка NEXTSTEP был выбран Objective C, гораздо более простое и дружелюбное к разработчику средство, нежели чрезвычайно мощный, но тяжелый в использовании Си++. Гибкость (почти вседозволенность!) языка Objective C, в сочетании со специально для него созданной иерархией классов операционной системы, позволяла знающему программисту творить просто чудеса. Позднее динамическое связывание классов, возможность уже на уровне языка работать в многопроцессных (и многопроцессорных!) системах и передавать между процессами целые объекты, а также такие специфические понятия, как категории и протоколы, снимали массу мелких проблем и требований по оформлению текста программы, давая возможность сосредоточиться на самом главном. И, наконец, язык Objective C прост – после Cи++ он изучается буквально за день, после Си – дня за три, в крайнем случае – за неделю (если приходится с нуля вникать в понятия объектов, процессов и т. д.)
Но и этого оказалось мало! В комплекте с системой поставлялись великолепные средства быстрой разработки приложений – Interface Builder, Project Builder, Enterprise Object Modeller, – позволявшие, быстро создавать графический интерфейс программ, строить иерархию классов логики программы и организовывать базы данных.
Несколько позже, после начала интенсивного внедрения технологий интрасетей в жизнь и появления первых систем онлайновой торговли, был предложен еще один набор классов – WebObjects с соответствующими средствами разработки. Но этот набор классов рассматривался уже как отдельный продукт и в комплект поставки не входил.

Возвращение...

Руководители компании Apple осознали необходимость в операционной системе нового поколения заметно позже Джобса. Слабость старой системной архитектуры стала просто очевидной после выхода Mac'ов на базе PowerPC. Компьютеры, по мощности превосходившие многие рабочие станции RISC, были вынуждены из-за плохо реализованной многозадачности значительную часть времени заниматься самосозерцанием. Конечно, и при этом они оставались самыми мощными персональными компьютерами, но все же…
Были предприняты несколько попыток создать собственную операционную систему нового поколения (какие были красивые кодовые имена – Copland, Gershvin, Rhapsody!). Более того, по некоторым данным в недрах Apple уже существовали работающие экспериментальные многопроцессорные системы с такой принципиально новой системой! Но… Трудно сказать, что не устроило тогдашнее руководство Apple. Быть может, бесконечное затягивание сроков выхода этой новой системы? Или же все попытки срастить высоконадежное ядро с существующими API оказались не слишком удачными? Как бы то ни было, летом 1996 г. начались серьезные переговоры о слиянии с компанией Be (возглавляемой бывшим вице-президентом Apple Жаном-Луи Гассе), выпустившей за несколько месяцев до того эффективную операционную систему BeOS. Интерфейс BeOSBeOS создавалась как переносимая высокопроизводительная хорошо масштабируемая UNIX-система, оптимизированная для работы с цифровыми данными (звуком, видео) и обеспечивающая крайне малое время ответа (т. е. "почти" Real-Time). Кстати, довольно интересно сравнить посылки, излагаемые при описании BeOS, с материалами вводной брошюры NeXT Computer. Переговоры между Apple и Be зашли весьма далеко, и пресса уже писала о том, что Apple покупает Be, как о решенном деле. Компьютер BeBOX c ОС BeOSНо… в декабре 1996 г. разразилась очередная сенсация. Компания Apple Computer заявила о приобретении компании NeXT Computer. Стив Джобс вернулся в свою родную компанию и развил бурную деятельность. Совет директоров почти полностью сменил свой состав, и Джобс стал этаким "серым кардиналом" без определенного статуса, но с почти неограниченными полномочиями.
Кроме Джобса, Apple вместе с командой разработчиков NeXT Computer заполучила и еще одну ставшую уже легендарной фигуру – Ави Теваньяна (полное имя Avadis "Avie" Tevanian, Jr.), занявшего пост вице-президента Apple Computer и главы группы Software Engineering. Еще во времена обучения в Университете Карнеги-Меллона Теваньян явился одним из главных архитекторов и разработчиков проекта Mach; многие считают его вообще "отцом" этого проекта. В январе 1988 г. Теваньян переходит в компанию NeXT Computer, где вскоре становится главным "техническим" лицом, а с марта 1995 г. – вице-президентом NeXT Computer. Среди задач, к решению которых непосредственно приложил руку Теваньян, можно упомянуть перенос NEXTSTEP на RISC-платформы и разработку архитектуры распределенных объектов. Благодаря Теваньяну многие решения, появившиеся впервые в NEXTSTEP, были перенесены в BSD и разошлись позже по всему UNIX-миру.
Результаты слияния Apple и NeXT не замедлили сказаться. Уже через пару месяцев было объявлено, что все проекты собственных операционных систем нового поколения свертываются и результаты этих проектов будут использованы только в качестве отдельных технологий (что позже и произошло – единственной невостребованной частью этих проектов оказалось ядро NuKernel системы Copland).
Объявляются две генеральные равноправные линии эволюции операционных систем. Одна из них предусматривает постепенное развитие существующей системы MacOS как минимум до 2000 г., а другая – создание принципиально новой операционной системы на базе вновь приобретенной OPENSTEP. В качестве ближайшей цели второй линии развития указывался проект Rhapsody, предусматривающий перенос операционной системы OPENSTEP на платформу Power Macintosh (на них OPENSTEP к тому времени все еще не работал!) и адаптацию ее интерфейса в соответствии с традициями Apple. Похоже, название Rhapsody родилось еще в недрах компании NeXT Computer и, вероятно, относилось к проекту OPENSTEP 4.2, поскольку одна из "новых" систем от Apple называлась так же, но не имела к OPENSTEP совершенно никакого отношения.
Объем работ, необходимый для перевода OPENSTEP на Macintosh, был огромен. Во-первых, было необходимо добавить к интерфейсу OPENSTEP хотя бы те возможности интерфейса Macintosh, без которых его представить довольно трудно. Во-вторых, необходимо было разработать виртуальную машину, позволявшую выполнять поверх Rhapsody старые приложения Macintosh, – без этого вся затея теряла смысл, ведь какими бы замечательными ни были средства разработки OPENSTEP, заставить всех разработчиков перейти на другую систему в один день было просто нереально… Наконец, надо было реализовать под Rhapsody стандартные для Macintosh средства – Apple File Service, QuickTime, ColorSync, AppleScript…
Общая реакция компьютерного сообщества на все эти планы была далека от восторженной. Слишком много обещаний раздала к тому моменту Apple в области операционных систем. Однако, как ни странно, недоверчивое отношение к проекту Rhapsody вскоре было посрамлено. Инженеры Apple работали в две группы, одна из которых адаптировала ядро системы под платформу Macintosh, а другая – разрабатывала виртуальную машину, получившую название Blue Box, поверх ядра NuKernel (чтобы не дожидаться завершения работ первой группы). Вскоре усилия обеих групп увенчались успехом и была выпущена первая версия для разработчиков (Developer Release 1 – DR1) системы Rhapsody, затем – DR2 и, наконец, с опозданием примерно на год (что по современным понятиям, согласитесь, немного!) – финальная версия. Она и получила официальное название Mac OS X Server.
Столь длинное название хорошо обусловлено существованием у Apple стратегии двух линий развития операционных систем. Как вы помните, для существующей сегодня "классической" операционной системы Mac OS был установлен срок существования примерно до 2000 г. (который затем был несколько отодвинут в будущее – ожидается еще одна "большая" версия, официальный номер – Mac OS 9.0. В конце срока обе линии операционных систем (линия "классических" Mac OS и линия UNIX-подобных систем на базе Mach) должны будут слиться, дав конечному пользователю, наконец, ту самую "систему мечты", о которой говорил Джобс. Mac OS X Server 1.0Компания Apple Computer предлагала Mac OS X Server как в качестве отдельного продукта, так и предустановленного на компьютеры нового семейства Power Macintosh G3 (кодовое название Yosemite, часто также "Blue and White"). Именно эти компьютеры рекомендуются в качестве аппаратной платформы, однако Apple опубликовала довольно длинный список возможных конфигураций (включающий практически все мощные компьютеры предыдущего поколения). Кроме того, как показывает более подробное изучение вопроса, Mac OS X Server при некоторой смекалке удавалось поставить и на многих "неподдерживаемых" конфигурациях, включая iMac и даже PowerBook G3.
Операционная система Mac OS X должна была иметь множество существенных отличий как от "классических" Mac OS, так и от Mac OS X Server.
Ядро системы в целом сохранилось – это по-прежнему Mach, – но осуществлен переход с версии 2.5 на версию 3.0. Кроме того, система может работать на многопроцессорных SMP-компьютерах.
Кроме изменения ядра было предусмотрено постепенное движение в сторону более точной реализации сложившихся сегодня UNIX-стандартов.
Кроме Blue Box и Yellow Box в составе Mac OS X появляется третий тип программного API, так называемый Carbon. Кстати, на Всемирной Конференции Разработчиков Apple (WWDC'99), произошло переименование всех старых API – теперь "Yellow Box" называется "Cocoa", а "Blue Box" – "Classic". Причина появления Carbon проста. Как бы ни была хороша операционная система, но "старые", содержищие несовершенные механизмы многозадачности, защиты памяти и работы с оборудованием, приложения работать хорошо уже не смогут. И Blue Box (Classiс) надо рассматривать только как решение переходного периода. Вместе с тем, как бы ни был хорош Yellow Box (Cocoa), переписывать приложения под него с нуля никто не будет.
И был найден интересный вариант. Проанализировали весь традиционный API Macintosh, и выделели в нем функции "плохие" с точки зрения работы в среде многозадачной многопользовательской операционной системой с защитой памяти. Этот "очищенный" API, обеспечивающий нормальную работу в грядущих операционных системах, и был назван Carbon.
Источник
[Профиль]  [ЛС] 
Показать сообщения:    

Текущее время: Сегодня 17:19

Часовой пояс: GMT + 4



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы