Geek OS. Часть 2. Эпоха больших систем
May. 2nd, 2005 08:29 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Написано для http://qube.ru
Как правило, когда идет речь о BeOS, всегда начинают с истории компании Be Inc. Но я хотел бы начать рассказ этой истории с более ранних времен, иначе не ясно почему все произошло именно так и никак иначе.
После того как Стив Джобс покинул Apple в 1985 году началась новая история. Операционные системы стали значить намного больше для компьютера, чем это было раньше до этого. В конце восьмидесятых активно начало возникать философия открытого программного обеспечения, последний хакер Столман, который создал gcc, emacs, gdb, bfd и hurd основал GNU. Возникло два направления организации кода, «базар» (открытые open source проекты для многих людей) и «собор» (корпоративный код). Я бы еще выделил «наследие» (BSD проекты).
Я не даром называю десятилетия эпохой. В мире ИТ один год значит столько сколько в других десятки лет. За один год компания может сменить две философии и аппаратную платформу. Конец 80х годов ознаменовал собой эпоху промышленных операционных систем – компьютеры стали достаточно мощными для того что бы как быть персональными так и обслуживать отделы, сетевое оборудование, быть рабочими станциями для CAD/CAM/CAE систем. Поэтому системы стали несколько сложнее. Сообщество любителей отвергало такие рыночные отношения производителя и пользователя, и они с тоской вспоминали о временах 6502, M68000 и своими Atari, Apple II, Commodore 64.
Mach
Mach — яркий пример одного из немногих проектов, который вопреки своему большому влиянию на развитие индустрии, так мало знаком не только конечному потребителю, но и профессионалам, которые в силу узкой специализации так и не столкнулись со столь необычным детищем академической формализации профессоров университета Карнеги–Мэллоуна.
Система Mach имела в качестве предшественницы систему RIG – Rochester Intelligent Gateway, начало разработки которой пришлось на 1975 год. RIG была написана для 16–битового мини–компьютера компании DataGeneral под названием Elipce. Целью этой разработки была демонстрация возможностей структурирования операционной системы и представления ее в виде набора процессов, которые могут взаимодействовать между собой путем передачи сообщений, в том числе и по сети. Затем эта операционная система была улучшена путем добавления средств защиты и средств прозрачной работы в сети и получила название Accent (в 1981 году, в университете Карнеги–Мэллоуна). В 1984 году она уже использовалась на 150 компьютерах PERQ – ранних графических станциях, но проиграла соревнование с UNIX'ом. Это обстоятельство побудило создать третье поколение ОС, использующей механизм обмена сообщениями. Этот проект и был назван Mach. В связи с тем, что Mach проектировалась как система, совместимая с UNIX, планировалась поддержка
большого количества приложений для UNIX. Кроме совместимости с UNIX, в Mach были введены и другие усовершенствования, включая нити, улучшенные механизмы межпроцессного взаимодействия, поддержка многопроцессорных систем, улучшенная виртуальная память и др.
В это время агентство DARPA искало операционную систему для поддержки мультипроцессоров. Выбор был сделан в пользу университета Карнеги–Мэллоуна, и работы над ОС Mach были продолжены. Было решено сделать эту систему совместимой с 4.2BSD путем комбинации Mach и 4.2BSD в виде единого ядра. Хотя этот подход привел к большому ядру, он гарантировал абсолютную совместимость. Первая версия Mach была реализована в 1986 году для VAX11/784, 4–х процессорной машины. Вскоре эта ОС была перенесена на IBM PC RT и Sun 3. К 1987 году Mach выполнялась также на мультипроцессорах Encore и Sequent. Хотя Mach и имела сетевые средства, ее скорее можно было отнести к ОС отдельной машины или мультипроцессора, а не к сетевой распределенной прозрачной системе.
OSF
Вскоре была создана организация производителей компьютеров OSF (IBM, DEC, Hewlett–Packard) для того, чтобы отобрать контроль над ОС UNIX у ее собственника AT&T. Они выбрали Mach 2.5 в качестве основы для их первой операционной системы OSF/1. Хотя Mach 2 и OSF/1 содержали большое количество кода Berkley и AT&T, была надежда, что OSF, по крайней мере, сможет контролировать направление развития UNIX. В 1988 году ядро Mach 2.5 было большим и монолитным из–за того, что содержало большое количество кода Berkley UNIX. А в 1989 году университет Карнеги–Мэллоуна удалил весь код BSD UNIX из ядра и поместил его в пользовательское пространство. То, что осталось, было микроядром, состоящим из чистого кода Mach. Эта версия 3.0 и используется как основа последующих версий OSF. Digital Equipment Corporation которая поставляла OSF/1 версию UNIX в 1990 году. В настоящие дни, так как DEC была приобретена Compaq, DEC OSF/1 UNIX сейчас носит название Tru64 UNIX и ориентирована на сервера HP. Домашняя страница Tru64 UNIX находится по адресу www.tru64unix.compaq.com. В 1996 году посредством слияния OSF и X/Open консорциума появилась компания Open Group (www.opengroup.org), которая сейчас является основным стандартизатором UNIX.
NeXT
В 1985 году Стив Джобс, один из основателей Apple, ушел оттуда, для того чтобы удовлетворить свои амбиции и, уединившись, создать легендарную ОС вместе с эксклюзивным аппаратным обеспечением. В результате деятельности новой компании NeXT, был создан аппаратно–программный комплекс с одноименным названием. Первые версии операционной системы NEXTSTEP, которая устанавливалась на компьютеры NeXT, были основаны на ранних версиях Mach 2.0, основанных на оригинальном коде от CMU. Позже, после выходом Mach 3, NeXT перешла на OSF версию ядра. Исходные файлы первых версий NEXTSTEP продавались за $10000. Для университетов представлялась 50%скидка.
NeXT Computer Inc. и Sun Microsystems Inc. в конце 1993 объединились для создания свободного объектного API на основе объектной модели NEXTSTEP. Эта совместная деятельность вылилась в спецификацию OpenStep, которая была опубликована NeXT в 1994 году. Следует отметить что нетривиальная OpenStep API представляла собой не только изящную среду программирования наподобие Современных «странных» объектных тулкитов типа GTK+ или Qt, но и определяла окружение для баз данных и других программных сервисов. Сейчас OpenStep API стараются поддерживать GNU в виде GNUStep, их сайт www.gnustep.org. NeXT никогда не позиционировала свои компьютеры как «вещи для масс». Последние версии NEXTSTEP были портированы под i386 и носили название OPENSTEP [*Последняя версия OPENSTEP 4.2, не путать название со спецификацией объектного API OpenStep ]. В 1997 году произошло слияние компания NeXT и Apple, а Стив Джобс перешел в «свою» новую фирму и позже вновь возглавил ее.
NT
Как всегда с запозданием, Microsoft предприняла ответный ход, который оказался намного удачнее ее предыдущего инцидента с Джобсом, когда Гейтс думал просто своровать идею Xerox Star. Стало понятным что Windows – это не тот продукт с которым Гейтс сможет дальше развивать свои идеи. Все большее значение стало иметь наличие стабильности, масштабируемости, мощности в операционной системе. Предыдущий geek подход к написанию системного программного обеспечения уже не подходил под масштабные (в плане аппаратуры) персональные компьютеры которые были уже в разы мощнее и сложнее чем компьютеры клуба самодельных компьютеров. Гейтс это понимал, он также понимал что сам такого не сделает никогда.
Гейтс позвонил Дейву Кетлеру, сотруднику DEC. Этот человек создал наверно с десяток операционных систем для компьютеров фирмы DEC. DEC создавала первые PDP–1, PDP–6, на которых ночами просиживали Гринблатт и Госпер. Говорят DEC одна из не многих корпораций внутри которой царила неформальная обстановка, открытые отношения, хакерский дух свободы. Наверно сказалось сотрудничество с MIT. Дейв несомненно был человеком который воспитывался в правильной среде. За его плечами разработка VMS, и других ОС для семейства PDP, VAX.
Гейтс сказал ему что у него есть идея создать выдающуюся ОС, под которую он готов выделить неограниченный бюджет. Естественно Дейв не долго ломался. Дейв собрал команду из выдающихся разработчиков половина из которых была в прошлом в Digital. Наверно Дейва немного грузило наследие PDP и VAX. Он хотел создать что–нибудь абсолютно новое. В основу его работы как главного архитектора NT была поставлена теоретический материал который был наработан в проекте Mach. Добавилась система защиты VMS. Дух в котором работала команда NT был непреодолим, всего в пару лет была создана версия первая NT, которая могла нативно выполнять программы DOS, OS/2, POSIX, и свои нативные Win32 программы, работала на нескольких платформах MIPS, Alpha, PowerPC и Intel. Все ее достоинства просто нельзя перечислить в этом материале. Для своего времени – это было самое выдающееся что можно было создать с нуля.
Параллельно Microsoft развивало линейку 95, которая была тех–площадкой для апробации новых технологий, сервисов, и объектных API для приложений. В стратегических планах было все это перенести потом на NT.
В отличии от Mach, которую создавали профессоры, NT создавали хакеры хотя и те и другие не были стеснены в деньгах и сроках. После сдачи проекта почти вся команда NT перестала работать в Майкрософт, которая до сих пор пользуется ядром NT, дописав все пару объектов ядра. Фактически в NT вносятся всего корректирующие изменения, ни один примитив ядра не был переписан и ни одна система микроядра не была модифицирована. Это можно легко заметить по тем исходным текстам, что были украдены.
Предыдущая глава:
Geek OS. Часть 1. Предыстория
Следующие главы:
Geek OS. Часть 3. Последняя Geek система вопреки всему
Geek OS. Часть 4. Haiku
Как правило, когда идет речь о BeOS, всегда начинают с истории компании Be Inc. Но я хотел бы начать рассказ этой истории с более ранних времен, иначе не ясно почему все произошло именно так и никак иначе.
После того как Стив Джобс покинул Apple в 1985 году началась новая история. Операционные системы стали значить намного больше для компьютера, чем это было раньше до этого. В конце восьмидесятых активно начало возникать философия открытого программного обеспечения, последний хакер Столман, который создал gcc, emacs, gdb, bfd и hurd основал GNU. Возникло два направления организации кода, «базар» (открытые open source проекты для многих людей) и «собор» (корпоративный код). Я бы еще выделил «наследие» (BSD проекты).
Я не даром называю десятилетия эпохой. В мире ИТ один год значит столько сколько в других десятки лет. За один год компания может сменить две философии и аппаратную платформу. Конец 80х годов ознаменовал собой эпоху промышленных операционных систем – компьютеры стали достаточно мощными для того что бы как быть персональными так и обслуживать отделы, сетевое оборудование, быть рабочими станциями для CAD/CAM/CAE систем. Поэтому системы стали несколько сложнее. Сообщество любителей отвергало такие рыночные отношения производителя и пользователя, и они с тоской вспоминали о временах 6502, M68000 и своими Atari, Apple II, Commodore 64.
Mach
Mach — яркий пример одного из немногих проектов, который вопреки своему большому влиянию на развитие индустрии, так мало знаком не только конечному потребителю, но и профессионалам, которые в силу узкой специализации так и не столкнулись со столь необычным детищем академической формализации профессоров университета Карнеги–Мэллоуна.
Система Mach имела в качестве предшественницы систему RIG – Rochester Intelligent Gateway, начало разработки которой пришлось на 1975 год. RIG была написана для 16–битового мини–компьютера компании DataGeneral под названием Elipce. Целью этой разработки была демонстрация возможностей структурирования операционной системы и представления ее в виде набора процессов, которые могут взаимодействовать между собой путем передачи сообщений, в том числе и по сети. Затем эта операционная система была улучшена путем добавления средств защиты и средств прозрачной работы в сети и получила название Accent (в 1981 году, в университете Карнеги–Мэллоуна). В 1984 году она уже использовалась на 150 компьютерах PERQ – ранних графических станциях, но проиграла соревнование с UNIX'ом. Это обстоятельство побудило создать третье поколение ОС, использующей механизм обмена сообщениями. Этот проект и был назван Mach. В связи с тем, что Mach проектировалась как система, совместимая с UNIX, планировалась поддержка
большого количества приложений для UNIX. Кроме совместимости с UNIX, в Mach были введены и другие усовершенствования, включая нити, улучшенные механизмы межпроцессного взаимодействия, поддержка многопроцессорных систем, улучшенная виртуальная память и др.
В это время агентство DARPA искало операционную систему для поддержки мультипроцессоров. Выбор был сделан в пользу университета Карнеги–Мэллоуна, и работы над ОС Mach были продолжены. Было решено сделать эту систему совместимой с 4.2BSD путем комбинации Mach и 4.2BSD в виде единого ядра. Хотя этот подход привел к большому ядру, он гарантировал абсолютную совместимость. Первая версия Mach была реализована в 1986 году для VAX11/784, 4–х процессорной машины. Вскоре эта ОС была перенесена на IBM PC RT и Sun 3. К 1987 году Mach выполнялась также на мультипроцессорах Encore и Sequent. Хотя Mach и имела сетевые средства, ее скорее можно было отнести к ОС отдельной машины или мультипроцессора, а не к сетевой распределенной прозрачной системе.
OSF
Вскоре была создана организация производителей компьютеров OSF (IBM, DEC, Hewlett–Packard) для того, чтобы отобрать контроль над ОС UNIX у ее собственника AT&T. Они выбрали Mach 2.5 в качестве основы для их первой операционной системы OSF/1. Хотя Mach 2 и OSF/1 содержали большое количество кода Berkley и AT&T, была надежда, что OSF, по крайней мере, сможет контролировать направление развития UNIX. В 1988 году ядро Mach 2.5 было большим и монолитным из–за того, что содержало большое количество кода Berkley UNIX. А в 1989 году университет Карнеги–Мэллоуна удалил весь код BSD UNIX из ядра и поместил его в пользовательское пространство. То, что осталось, было микроядром, состоящим из чистого кода Mach. Эта версия 3.0 и используется как основа последующих версий OSF. Digital Equipment Corporation которая поставляла OSF/1 версию UNIX в 1990 году. В настоящие дни, так как DEC была приобретена Compaq, DEC OSF/1 UNIX сейчас носит название Tru64 UNIX и ориентирована на сервера HP. Домашняя страница Tru64 UNIX находится по адресу www.tru64unix.compaq.com. В 1996 году посредством слияния OSF и X/Open консорциума появилась компания Open Group (www.opengroup.org), которая сейчас является основным стандартизатором UNIX.
NeXT
В 1985 году Стив Джобс, один из основателей Apple, ушел оттуда, для того чтобы удовлетворить свои амбиции и, уединившись, создать легендарную ОС вместе с эксклюзивным аппаратным обеспечением. В результате деятельности новой компании NeXT, был создан аппаратно–программный комплекс с одноименным названием. Первые версии операционной системы NEXTSTEP, которая устанавливалась на компьютеры NeXT, были основаны на ранних версиях Mach 2.0, основанных на оригинальном коде от CMU. Позже, после выходом Mach 3, NeXT перешла на OSF версию ядра. Исходные файлы первых версий NEXTSTEP продавались за $10000. Для университетов представлялась 50%скидка.
NeXT Computer Inc. и Sun Microsystems Inc. в конце 1993 объединились для создания свободного объектного API на основе объектной модели NEXTSTEP. Эта совместная деятельность вылилась в спецификацию OpenStep, которая была опубликована NeXT в 1994 году. Следует отметить что нетривиальная OpenStep API представляла собой не только изящную среду программирования наподобие Современных «странных» объектных тулкитов типа GTK+ или Qt, но и определяла окружение для баз данных и других программных сервисов. Сейчас OpenStep API стараются поддерживать GNU в виде GNUStep, их сайт www.gnustep.org. NeXT никогда не позиционировала свои компьютеры как «вещи для масс». Последние версии NEXTSTEP были портированы под i386 и носили название OPENSTEP [*Последняя версия OPENSTEP 4.2, не путать название со спецификацией объектного API OpenStep ]. В 1997 году произошло слияние компания NeXT и Apple, а Стив Джобс перешел в «свою» новую фирму и позже вновь возглавил ее.
NT
Как всегда с запозданием, Microsoft предприняла ответный ход, который оказался намного удачнее ее предыдущего инцидента с Джобсом, когда Гейтс думал просто своровать идею Xerox Star. Стало понятным что Windows – это не тот продукт с которым Гейтс сможет дальше развивать свои идеи. Все большее значение стало иметь наличие стабильности, масштабируемости, мощности в операционной системе. Предыдущий geek подход к написанию системного программного обеспечения уже не подходил под масштабные (в плане аппаратуры) персональные компьютеры которые были уже в разы мощнее и сложнее чем компьютеры клуба самодельных компьютеров. Гейтс это понимал, он также понимал что сам такого не сделает никогда.
Гейтс позвонил Дейву Кетлеру, сотруднику DEC. Этот человек создал наверно с десяток операционных систем для компьютеров фирмы DEC. DEC создавала первые PDP–1, PDP–6, на которых ночами просиживали Гринблатт и Госпер. Говорят DEC одна из не многих корпораций внутри которой царила неформальная обстановка, открытые отношения, хакерский дух свободы. Наверно сказалось сотрудничество с MIT. Дейв несомненно был человеком который воспитывался в правильной среде. За его плечами разработка VMS, и других ОС для семейства PDP, VAX.
Гейтс сказал ему что у него есть идея создать выдающуюся ОС, под которую он готов выделить неограниченный бюджет. Естественно Дейв не долго ломался. Дейв собрал команду из выдающихся разработчиков половина из которых была в прошлом в Digital. Наверно Дейва немного грузило наследие PDP и VAX. Он хотел создать что–нибудь абсолютно новое. В основу его работы как главного архитектора NT была поставлена теоретический материал который был наработан в проекте Mach. Добавилась система защиты VMS. Дух в котором работала команда NT был непреодолим, всего в пару лет была создана версия первая NT, которая могла нативно выполнять программы DOS, OS/2, POSIX, и свои нативные Win32 программы, работала на нескольких платформах MIPS, Alpha, PowerPC и Intel. Все ее достоинства просто нельзя перечислить в этом материале. Для своего времени – это было самое выдающееся что можно было создать с нуля.
Параллельно Microsoft развивало линейку 95, которая была тех–площадкой для апробации новых технологий, сервисов, и объектных API для приложений. В стратегических планах было все это перенести потом на NT.
В отличии от Mach, которую создавали профессоры, NT создавали хакеры хотя и те и другие не были стеснены в деньгах и сроках. После сдачи проекта почти вся команда NT перестала работать в Майкрософт, которая до сих пор пользуется ядром NT, дописав все пару объектов ядра. Фактически в NT вносятся всего корректирующие изменения, ни один примитив ядра не был переписан и ни одна система микроядра не была модифицирована. Это можно легко заметить по тем исходным текстам, что были украдены.
Предыдущая глава:
Geek OS. Часть 1. Предыстория
Следующие главы:
Geek OS. Часть 3. Последняя Geek система вопреки всему
Geek OS. Часть 4. Haiku