Информационные технологииStfw.Ru 🔍

Сможет ли Singularity исправить проблемы Windows Vista?

🕛 12.03.2008, 13:45
Microsoft очень бурно рекламирует свою последнюю ОС, но её успехи пока не очень впечатляют. Компания с 0 разрабатывает новую операционную систему, которая будет использовать новый подход в битве против вирусов, сможет работать на многоядерных процессорах и использовать преимущества GPGPU. В прошлый понедельник была выпущена 1-я версия кода.

Singularity была анонсирована около двух лет назад, как проект по переосмыслению принципов работы операционной системы. Теперь, почти после пяти лет разработки, технически продвинутые пользователи, могут взглянуть на Singularity и идеи Microsoft о том, как могут выглядеть будущие версии Windows...

Операционная система не готова для работы в качестве основной ОС. ОС поставляется как базовая инфраструктура и предназначена для исследовательской работы разработчиков. Microsoft заявила, что она надеется собрать данные обратной связи и идеи от разработчиков, чтобы придать этой операционной системе форму. В ближайшем обозримом будущем Singularity не призвана заменить Windows на клиентских ПК. Как программное обеспечение (код занимает 61 Мб) идеи, лежащие в основе Singularity, революционны и если компании удастся превратить эту концепцию в продукт для массового рынка, то в нашем будущем может снова появиться удивительно волнующая операционная система.

Согласно Microsoft, основная идея Singularity состоит в том, чтобы создать более надежную ОС, при этом оставив стратегии традиционных ОС позади и создав полностью новую архитектуру. Основные разработчики Singularity, Гален Хант (Galen Hunt) и Джим Ларус (Jim Larus), заявляют, что все ныне существующие операционные системы, Windows, Linux и Mac OS, могут быть отслежены до операционной системы Multics, которая появилась в 60-тые. В действительности, все существующие ОС до сих пор основаны на критериях и мыслях сорокалетней давности, заявляет Хант.

Конечно, проблемы у компьютеров сегодня совсем другие, что и привело к идее создать Singularity с нуля с использованием современных технологий, основываясь на актуальных проблемах. "Наша цель состояла в том, чтобы сделать Singularity достаточно маленькой, достаточно простой и достаточно хорошо спроектированной, чтобы вы могли быстро испробовать радикально новые идеи" - заявил Хант.

Итак, Windows Vista является операционной системой, которая эволюционировала десятилетиями, Singularity - абсолютно новая ОС. Singularity построена на так называемом микроядре, которое играет ключевую роль в разделении системных ресурсов между запущенными программами. Согласно Microsoft, более 90% кода ядра операционной системы написано на Sing#, расширении языка программирования высоко уровня C#. Разработчики заявляют, что один этот факт дает в Singularity преимущество в безопасности по сравнению с ОС, написанными на низкоуровневых языках типа C или C++. Разработчики заявляют, что использование C# помогло им избежать целого класса ошибок, известных как переполнение буфера, таким образом, уничтожив обычную область уязвимостей, используемых червями и вирусами.


Три идеи, лежащие в разработке Singularity
Ядро - основа ОС, поддерживающая новые идеи и технологии, представленные в Singularity. Ядро предоставляет базовую абстракцию программно-изолированных процессов (SIP), модели и манифесты. Так называемые SIP были созданы, чтобы разбить программы на компоненты, которые изолированы от других программных компонентов, запущенных на том же устройстве. Благодаря такому подходу в случае сбоя в каком-либо компоненте, операционная система сможет избежать сбоя и продолжить свою работу. Вам, быть может, знакома такая концепция, используемая в виртуализации, когда одна операционная система может столкнуться с проблемами, но при этом все остальное ПО на компьютере останется нетронутым.

"В прошлом создание в операционной системе множества процессов было непрактичным с точки зрения затрат на это ресурсов в частности потому, что они требовали специальной поддержки от аппаратного обеспечения. Вместо того, чтобы использовать аппаратную часть для создания границ между процессами, мы нашли способ создания процессов, используя программную технологию статическего анализа"- заявил Хант. Этот анализ позволяет тщательно исследовать исходный код программы, чтобы создать процесс, подчиняющийся определенным правилам, которые гарантируют, что он изолирован от остальной системы.

Вторая архитектурная особенность Singularity - модельные контракты, которые позволяют разным SIP связываться друг с другом и обмениваться данными, чтобы достичь намеченной цели. Microsoft считает, что данный подход позволит Singularity избежать ошибок и сбоев, которые случаются сегодня. "Мы нашли способ, как описать форму, в которой коммуникации должны занять место между двумя процессами, и, используя статический анализ, мы можем проверить коды процессов во время компиляции. Так что до того, как процесс будет запущен вообще, мы можем подтвердить, что процессы общаются правильно" - объяснил Хант.

И третья идея - манифестационное программирование, целью которого является уведомить операционную систему, при каких базовых параметрах приложение будет работать. "В основном мы говорим, что если вы хотите установить программу для работы в Singularity, вы должны предоставить определенную информацию о нем, чтобы сделать систему более надежной. Вы должны предоставить манифест программных элементов, и то, как они соответствуют друг другу, а мы это проверим. Что еще более важно, мы оставляем за собой право отказать в запуске. Если какое-либо приложение не отвечает настроенным правилам системы, то вы не сможете установить или запустить его" - объясняет Ларус.


Больше производительности, намного больше
Многим пользователям недостаточно обещаний по закрытию наиболее часто используемых уязвимостей. Но глубоко в Singularity есть новая идея по увеличению производительности системы.

То, что ядро Singularity и SIP являются многопоточными - это не сюрприз, и очевидно, что ее эту систему можно масштабировать намного больше, чем на 16 ядер, что на данный момент рассматривается как лимит, при котором интеграция большего количества ядер имеет больше смысла, чем оптимизация основания кода, инструкций и расширений. Громкой новостью относительно Singularity является то, что Microsoft хочет, чтобы ОС поддерживала гетерогенные процессоры - то есть процессоры, которые содержат не только классические CPU, но и другие обрабатывающие ядра, такие как графические процессоры.

"Из-за физических ограничений сегодня проще реализовать еще один процессор, чем увеличить его скорость. Так как производители уже демонстрируют прототипы процессоров с 80 процессорными ядрами, мы начали эксперименты по поддержке так называемых многоядерных систем в Singularity. Эти эксперименты основываются на поддержке SMP (симметричная многопроцессорность), которую уже предоставляет ядро Singularity. Фактически, Singularity может адаптироваться к многоядерным процессорам, посвящая их определенным SIP, что должно в итоге привести к "динамической специализации" процессоров, тем самым увеличивая их производительность.

Что еще интереснее - Singularity это первая ОС, которая использует вычислительные возможности графических чипов по подсчету чисел с плавающей запятой. AMD и Nvidia начали поставлять свои карты с потоковыми процессорами Tesla и FireStream как интегрированные элементы настольных суперкомпьютеров, которые предлагают производительность примерно в 20 раз больше по сравнению с обычным двухъядерным компьютером в приложениях со значительными вычислениями, например, финансовом моделировании или научных экспериментах. Эти области, наверное, обладают самыми девственными вычислительными мощностями в современном мире: домашние пользователи не могут использовать данную технологию, так как нет общепринятых приложений, которые бы использовали преимущества вычислений "общего назначения, проводимых графическими чипами".

На данный момент и AMD, и Nvidia ограничивают линейку своих продуктов весьма дорогостоящими потоковыми процессорами. AMD показала некоторые экспериментальные пользовательские GPGPU-приложения, но компания еще далека от реализации таких продуктов. Исполнительный директор Nvidia, Джен-Хсун Хуанг (Jen-Hsun Huang) заявил TG Daily, что его компания выпустит Tesla-подобные пользовательские решения на рынок, как только Microsoft предоставит Windows API для этого.

В Singularity уже есть такие API. В своем исследовательском документе Хант и Ларус написали: "В рамках Singularity мы видим возможность представить новый курс для программируемых процессоров ввода-вывода. Мы согласны, что программируемые процессоры ввода-вывода призваны обеспечить должную производительность на специализированных процессорах. Мы исследуем гипотезу, что программируемые процессоры ввода-вывода должны стать первоочередными элементами в ОС по диспетчеризации и абстракции расчетов".

Разработчики считают, что архитектура Singularity однозначно позиционирована, чтобы реализовать следующие функции: SIP минимизируют необходимость тщательной разработки процессорных функций в ядрах ввода-вывода; модельные контракты ясно определяют связь между SIP с процессорами ввода-вывода и другими SIP, а технология изоляции памяти навечно удаляет необходимость в общей памяти между SIP в сопроцессорах и центральных процессорах; маленькие, локальные процессы ABI (аббр. от Application Binary Interface или машинный интерфейс для приложений) изолируют операции, которые безопасно могут быть реализованы локально, отдельно от других SIP, а Singularity упаковывает манифестационные программы в абстрактный MSIL-формат, который может быть конвертирован в любой набор инструкций процессора ввода-вывода.

"Наша гипотеза состоит в том, что бинарные файлы Singularity могут быть нацелены на ненаследственные ядра в многоядерных процессорах, также легко, как и на не наследственные ядра в программируемых процессорах ввода-вывода" - говорят разработчики. Если Хант и Ларус правы, то Singularity может стать чрезвычайно гибкой операционной системой, которая сможет использовать преимущества множества идей аппаратной части, существующих сегодня.

Но здесь есть уловка. Операционная система не только далека от того, чтобы быть используемой для обычного пользователя ПК, ее не планируется выпускать для настольных компьютеров. Singularity заявлена как "лаборатория для экспериментов нового дизайна", а не как "конструкторское решение". "Наша нынешняя база исходных кодов является огромным шагом вперед по сравнению с предыдущей работой, мы не видим ее как идеальную систему. Исследовательский прототип, такой как Singularity, является моделью для исследований. Это лаборатория, в которой мы продолжаем испытывать новые реализации и оптимальные решения" - пишут разработчики.

Новые программы   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉