Требования к операционной системе следующего поколения
По мнению одного из технических экспертов, неудержимый прогресс сетевых компьютеров приведет на рубеже тысячелетия к кризису Microsoft, поскольку ее монолитная клиентская ОС не сможет удовлетворить новым запросам. Ниже вы найдете подробное описание тех технических проблем, с которыми, как считает этот эксперт, должен столкнуться главный производитель программного обеспечения, и анализ возможностей, необходимых новой ОС для настольного компьютера.
Нарождающаяся "коммуникационно-центрическая" вычислительная среда, в которой будет происходить работа на компьютере в XXI веке, откроет немалые возможности для разработчиков операционных систем. Перевожу: не следует ожидать, что вычислительные системы следующего поколения будут по прямой происходить от Microsoft Windows 95 или от Windows NT.
Нынешние операционные системы для ПК, разработанные в расчете на поддержку тяжеловесного клиентского ПО, не смогут обеспечить потребностей этой "коммуникационно-центрической" среды без пересмотра и полной реконструкции. Чтобы удовлетворять техническим требованиям для недорогих ПК, сетевых компьютеров и устройств, клиентские ОС следующего поколения должны органично включаться в сеть и иметь встроенные коммуникационные функции.
Структурные изменения на рынке ОС
Структура рынка ОС для настольных компьютеров претерпевает сейчас серьезные изменения из-за вторжения ПК в область, ранее целиком принадлежавшую рабочим станциям Unix. Рабочие станции Unix и ПК с установленной на них Windows NT претендуют на один и тот же сектор рынка настольных компьютеров, что может привести к во~зникновению у этого рынка четырехуровневого членения.
На верхнем уровне находятся персональные рабочие станции (Personal Workstations), определяемые в первом приближении как машины на базе процессора Intel с Windows NT. Они, как правило, стоят более 3000 долл. и предназначены для выполнения задач, требующих большого объема вычислений либо интенсивного обмена информацией с внешними устройствами. Персональные компьютеры более всего подходят для индивидуальной творческой работы дома или в офисе; цена их колеблется обычно от 1800 до 3500 долл. Сетевые компьютеры (Network Computers) и NetPC стоимостью от 500 до 1800 долл. хороши для коллективной работы в системах, ориентированных на сервер, а также для индивидуальной работы в сети. Последними идут терминалы, имевшие ранее строго фиксированный набор функций, а теперь превращающиеся в интеллектуальные "сетевые устройства" (Network Appliances) по цене менее 1000 долл. Описанная структурная перестройка, по-видимому, завершится к 2001 г.
Производители компьютеров полагают, что операционной системой для ПК будет служить Windows 95, 98, или NT. Корпорация Intel представляет следующее поколение ПК для бизнеса в виде систем на базе процессора Pentium Pro с Windows NT. Однако по причинам, о которых говорилось выше, требования к операционной системе для ПК меняются. Встраивание в платформу Windows 98 средств поддержки Java, конечно, отчасти решает проблему, однако далеко не лучшим образом. Что же касается Windows NT, то ее достоинства как операционной системы, может быть, и неоспоримы, но насколько она эффективна для интерактивных машин, включенных в intranet-сеть?
Системы Windows 95 и Windows NT уже столкнулись на рынке, поскольку обе они заявляют права на мощные настольные компьютеры. Тем не менее возможности этих систем значительно превышают запросы пользователей, работающих в офисе. В свое время операционные системы CPM и DOS также превосходили потребности большинства пользователей. Windows 3.1 (когда работает) обеспечивает более близкое соответствие нуждам пользователя. Для типичного пользователя ПК или сетевого компьютера Windows 95 и NT попросту слишком сложны, а пользователю intranet-системы они предлагают неадекватный набор функций.
Отдельная тема - разработка ОС для разнообразных мобильных и портативных электронных устройств на базе микропроцессоров. Эти устройства открывают дополнительные рыночные перспективы для операционных систем, близких по характеристикам к ОС для intranet-клиента.
Почему должны развиваться ОС для ПК
Нынешние ОС для ПК не годятся для сетевых сред. Почему? Прежде всего потому, что машины эпохи "персоналок" проектировались как компьютеры общего назначения, которым нужна дисковая ОС. И аппаратное обеспечение, и BIOS, и ПО - как системное, так и прикладное - разрабатывались в расчете на индивидуальную работу в автономном режиме.
Но даже если оставить в стороне историю, все равно рассматриваемым ОС присущи коммуникационные проблемы. Например, на машине с Windows 3.1 или Windows 95 аппаратные и программные компоненты конкурируют за доступ к центральному процессору и другим ресурсам. Возникающие в результате конфликты могут иногда приводить к загадочному поведению системы, сбоям, замедленной реакции и просто зависанию. Совместное использование портов иногда также чревато проблемами. Программы вторгаются в адресное пространство друг друга, а от операторов (т. е. пользователей) ждут, что они будут разрешать возникающие сложности, выполняя функции системного администратора.
Во многих отношениях в нынешних ОС для ПК делается попытка воспроизвести функции операционной системы большой универсальной ЭВМ. Разумеется, задача упрощена, поскольку ОС в каждый момент времени имеет дело только с одним пользователем, управляет не очень большим набором периферийных устройств и обрабатывает весьма ограниченное число параллельно выполняющихся заданий. Операционные системы, подобные Windows 95 или OS/2, изначально конструировались в расчете на управление главным образом внутренними процессами. Операции, относящиеся к сетевому взаимодействию, надстраиваются поверх структуры ОС, и соответствующие прерывания имеют низкий приоритет.
В монолитной ОС общего назначения прерывания обычно обрабатываются по кругу. Структура ее жестко определяется иерархией уровней, так что добавление или изменение функций требует глубокого знания системы. Управление прерываниями для событий реального времени, таких как нажатие на кнопку мыши или воспроизведение видеоклипа, осуществляется по приоритетной схеме. Сетевые службы рассматриваются как дополнительная функция, которую ОС должна поддерживать параллельно с управлением прикладными процессами и устройствами, присоединенными к компьютеру. В результате добавление сетевых функций приводит к тому, что система становится еще более громоздкой, а иерархия уровней еще более усложняется.
ОС общего назначения с трудом справляются с обработкой непредсказуемых внешних событий. К примеру, от таких устройств, как модем или сетевой интерфейс, удаленная система ожидает вполне определенного поведения. Если программа на ПК сделает что-то не так, связь будет нарушена или разорвана.
И вот тут-то возникают проблемы с Windows 95. Графические интерфейсы, меню и прикладные программы на уровне 3, где вы имеете дело с функциями, не зависящими от времени, - одно дело, а уровень 0 - совершенно другое. В системах Microsoft тяжело работать с прерываниями, зависящими от времени: нет способа гарантировать программе достаточное процессорное время для обработки событий, происходящих в реальном времени. И при том что имитация многозадачности реализована вполне успешно, Windows 95 не обеспечивает управления событиями при обработке прерываний, которое необходимо для систем реального времени. Сложно разделить задание между ОС, диспетчером COM-порта и прикладной программы. В ряде случаев возникают проблемы с управлением высокоскоростными устройствами, такими как CD-ROM. И что особенно неприятно, процесс не застрахован от порчи другими заданиями.
В функции типичной коммуникационной программы входят сжатие и распаковка данных, обнаружение и исправление ошибок, работа с командами AT и COM-порта, управление модемом или сетевым интерфейсом - и все это должно делаться одновременно. Следовательно, необходимо уметь параллельно запускать и завершать (а также выполнять) ряд заданий, управляемых по прерываниям. Добавьте сюда поддержку аудио- и видеофункций - и потребность в реальном времени увеличится еще в несколько раз.
В действительности проблема носит структурный характер. Большие объемы памяти и сверхбыстрые процессоры способны замаскировать ее, но не решить. Даже Pentium-200 недостаточно быстр для того, чтобы полностью исключить столкновения заданий и конфликты из-за ресурсов. Случайное нажатие на кнопку мыши в неподходящий момент в принципе способно, например, нарушить нормальную работу программы, обращающейся к COM-порту.
Корпорация Intel уже предложила решение проблемы на аппаратном уровне, реализовав 57 новых инструкций для процессора Pentium. Эти инструкции, названные "мультимедийными расширениями" (MultiMedia Extensions, MMX), весьма напоминают событийные команды цифровых сигнальных процессоров. Но остается открытым вопрос о том, какая операционная система могла бы наилучшим образом воспользоваться ими в среде реального времени. Уж конечно, это не Windows 95.
Операционные системы XXI века
Пользователям сетевых клиентов XXI века потребуется намного более аскетичная и за счет этого более быстрая многозадачная операционная система, достаточно стабильная и надежная для того, чтобы своевременно доставлять оператору асинхронные недетерминированные потоки данных, требующие обработки в режиме реального времени. Чтобы это было осуществимо, уровень коммуникаций должен находиться сразу вслед за сетевым.
Кроме того, ОС должна обеспечивать управление энергоснабжением процессора и присоединенных к машине периферийных устройств. Необходимо, чтобы все операции были прозрачны для оператора и чтобы оператор при этом имел возможность безопасно для системы добавлять и удалять устройства и прикладные программы.
Характеристики клиентской и серверной ОС, какими их видят эксперты исследовательской группы Network Client Business Group, приведены в таблице.
ОС для сетевых компьютеров
Надежды на создание ОС, достаточно мощной для работы с коммуникациями в режиме реального времени и отвечающей потребностям операторов "тощих клиентов" (thin client - клиентская машина с очень ограниченным набором собственного ПО; в литературе встречается также перевод "тонкий клиент". - Прим. перев.), связаны прежде всего с идеей микроядра. В идеале архитектуру, основанную на микроядре, можно было бы использовать на всех машинах сети - и серверах, и клиентах - с одним и тем же набором средств разработки и языков программирования.
Ядра реального времени, которые уже давно являются излюбленной технологией в сфере телекоммуникаций и управления процессами, успешно применяются во многих программах для терминалов, сетевых серверов, а также в системах автоматизации офиса. Соответствующие ОС обладают всеми необходимыми качествами, чтобы стать основой для операционной системы сетевого компьютера. Они масштабируемы, легко переносятся с платформы на платформу, предъявляют минимальные требования к памяти, очень быстры и обеспечивают работу в реальном времени, причем подходят и для однопроцессорных, и для многопроцессорных, и для сетевых архитектур.
Операционные системы реального времени на основе микроядра сконструированы так, чтобы реагировать на физические события предсказуемым и прозрачным для оператора образом. Процессы, параллельно разворачивающиеся в реальном времени, по самой своей природе являются асинхронными и недетерминированными, поэтому задачу их обработки естественно решать путем создания ядра реального времени, поддерживающего многозадачность и позволяющего распараллелить операцию, соответствующую нескольким отдельным событиям внешнего мира. Простейший пример - телефонные звонки, особенно в сочетании с передачей файлов и печатью. Подобная смесь событий требует принудительного распределения времени, приписывания заданиям различных приоритетов, высокой скорости взаимодействия и синхронизации заданий; кроме того, ядро должно быть оптимизировано в расчете на наихудшую предсказуемую производительность.
В микроядре реализуются важнейшие базовые функции операционной системы, такие как распределение времени и памяти, обработка событий реального времени и межпроцессное взаимодействие. Так, в микроядре Chorus подчеркнуто разделены механизмы и правила (policies). Распределение времени, обработка прерываний и ошибок, управление памятью и межпроцессное взаимодействие обеспечиваются модулями, внешними по отношению к основной исполняющей системе. Каждый такой "надстроечный" модуль можно заменить аналогичным, но реализующим другие правила. Тем самым программист получает возможность самостоятельно задать правила, по которым будут распределяться процессорное время и системная память (адресное пространство), обрабатываться сообщения, синхронизироваться процессы и т. д., настроив их в соответствии с потребностями конкретной прикладной системы.
В опасности ли Microsoft?
Описанным требованиям к ОС следующего поколения Windows 95, очевидно, не соответствует. У нее абсолютно неподходящая архитектура.
Операционная система, созданная Microsoft, принуждает оператора работать с персональным компьютером как с миниатюрным подобием большой ЭВМ. Учитывая все сопутствующие проблемы обслуживания и администрирования, ни Windows 95, ни Windows 98 не следует считать вероятными кандидатами на роль ОС, которая должна обеспечивать высокую прозрачность для пользователя.
Разумеется, Microsoft может и будет реагировать на новые запросы. Корпорация располагает всеми необходимыми ресурсами для того, чтобы создать ОС, ориентированную на работу в сети. Но в связи с этой системой неизбежно встанет вопрос о том, когда выпускать ее на рынок и как организовать выпуск, чтобы не очень повредить продажам Windows 95 и 98. Ожидание удобного момента будет задерживать выход новой ОС, так что конкуренты получат шанс вмешаться и спасти рынок ОС, предложив систему, очевидным образом подходящую для встроенных прикладных сред сетевых компьютеров, NetPC и недорогих ПК. И, готов спорить, они сумеют завоевать изрядную долю рынка.
Рональд Р. Кук на протяжении многих лет анализирует компьютерный рынок. Его фирма Network Client Business Group опубликовала этой весной подробное исследование "Сетевой компьютер для предприятия: рыночная возможность или иллюзия? Аспекты сетевого, аппаратного, программного обеспечения и каналов передачи данных, влияющие на будущее intranet-машин". E-mail: ron.cooke@ncworldmag.com.
Требования к операционной системе следующего поколения
(по материалам Network Client Business Group, январь 1997)
Требования | Программные, файловые и коммуникационные серверы | Сетевые клиенты |
Надежность | + | + |
Доступность | + | + |
Стабильность | + | + |
Масштабируемость | + | + |
Возможность переконфигурирования | + | + |
Переносимость | + | + |
Расширяемость | + | + |
Быстрота и компактность кода | + | + |
Диспетчер линейной памяти | + | + |
Диспетчер защищенной памяти | Желательно | Желательно |
Диспетчер виртуальной памяти | Желательно | Желательно |
Ядро в ПЗУ | Желательно | + |
Модули ОС в ПЗУ | Желательно | Желательно |
Модули ОС в защищенной памяти | Желательно | Желательно |
Взаимозаменяемые модули ОС | + | + |
Динамическое переконфигурирование ОС без перерыва в работе | + | + |
Прикладные программы в защищенной памяти | Желательно | + |
Многозадачность | + | + |
Многопроцессорная работа | + | - |
API для старых программ | Желательно | Желательно |
API для программ следующего поколения | + | + |
Двухуровневая работа в сети | + | - |
Прозрачное распределение данных | + | - |
Прозрачность для оператора сетевого клиента | + | + |
Распределение в сети рабочих процессоров | + | - |
Управление потоками звуковой информации и CTI | + | + |
Управление потоками видеоинформации | + | + |
Общая среда разработки для клиента и сервера | + | + |
Сочетание задач реального времени и бизнес-приложений | + | + |