Singularity - Новая операционная система от Microsoft
 
на главную
новости
настройки windows
вопросы и ответы
загрузки
чат
статьи и обзоры
 

Singularity: лучше, чем Windows

Новая операционная система от Microsoft бесплатна, надежна, не подвержена вирусным угрозам и работает намного быстрее, чем Windows, Mac OS и Linux. Тем не менее многие пользователи не принимают ее во внимание. мы объясним почему.

Шесть лет назад корпорация Microsoft решила начать разработку новой операционной системы:  этот проект получил название Singularity. При этом специалисты исследовательского подразделения Microsoft создали абсолютно новую ОС, основным достоинством которой стала надежность. Во время презентации Singularity на выставке разработок TechFest корпорация стремилась донести следующую мысль: Singularity — это не очередная версия Windows, а источник идей и технических нововведений для нее. По всей видимости, данное заявление было сделано для того, чтобы умерить желание многих пользователей получить новую ОС. Ведь всего того, на что способна Singularity благодаря своей архитектуре, в Windows нет. Нет этого даже в Windows 7. Если вы захотите самостоятельно убедиться в этом, можно бесплатно скачать систему с сайта www.codeplex. com/singularity.

Практически любая существующая сегодня операционная система, установленная в персональных компьютерах, будь то Windows, Mac OS или Linux, имеет в своей основе «древнюю» архитектуру. Все используемые концепции относятся к тому времени, когда еще не было ни Интернета, ни вирусов, а компьютер по величине походил на современный серверный шкаф.

Основная часть традиционных операционных систем, прежде всего ядро, написана на языке программирования С. Современные разработчики этого бы делать не стали, так как команды на языке С и его преемнике C++ оказывают прямое влияние на регистры процессорного ядра и оперативную память. Из-за высокой производительности вначале это кажется преимуществом, но одновременно с этим система испытывает трудности с устранением программных ошибок или остановки исполнения вредного кода, так как ей неподконтрольно то, что делает код.

Известным примером, иллюстрирующим данную ситуацию, является переполнение буфера, при котором программа записывает данные в области памяти других, «соседних» приложений — типичный способ действия вредоносного ПО, которое стремится заполучить на компьютере права администратора.

И даже если вся ответственность за брешь в системе безопасности ложится на небрежно написанное приложение, в первую очередь несовершенство ОС делает такую программу по-настоящему опасной.

Код: безопасные языки программирования

В Singularity разрешен только безопасный программный код, написанный на языках, обеспечивающих собственную среду выполнения (Runtime Enviroment). На уровне приложений она работает как виртуальная машина. Известными языками программирования, поддерживающими Runtime, являются прежде всего Java и все .Net-языки — к примеру, C#. Код Singularity также написан практически полностью на C# (читается как «Си-шарп»), точнее специально разработанном для нее языке Sing#.

В отличие от C и C++, компилятор не переводит программный код сразу на машинный язык. Вместо этого среда выполнения преобразует его вначале в байт-код. Благодаря данному промежуточному этапу система может проверить правильность кода и избежать «вторжения» в другие области памяти. Это, конечно, отнимает некоторые системные ресурсы, но Singularity позволяет компенсировать потери — каким образом, вы узнаете из раздела «Производительность».

Защита: изоляция всех процессов

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

Среда выполнения каждого SIP также работает независимо от системы и может быть изменена в соответствии с требованиями приложения.

В Windows или Linux, как правило, имеется одна среда выполнения для всех приложений. К примеру, ответственность за все запущенные Java-приложения ложится на Java Runtime Environment (JRE) — исполнительную среду для написанных на языке Java приложений. Сбой одного потянет за собой всю JRE, и работа всех приложений Java будет прервана.

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

Каналы: эффективная коммуникация
 По причине того, что программно-изолированные процессы в большин­стве случаев работают самостоятель­но, обмен данными с ядром  посредством двоичного интерфей­са приложений (ABI) ограничива­ется несколькими командами. Для сравнения: ABI в Singularity обхо­дится 163 функциями, а для про­граммного интерфейса приложе­ний в Windows (API) предусмотрено около 14 000 функций.


 Программно-изолированные про­цессы, отделенные друг от друга, со­общаются между собой посредством каналов. Они проходят через контро­лируемое ядром пространство — «об­менную область» (Exchange Heap). В ней также находятся файлы, кото­рые обрабатываются процессами в настоящий момент. Каждый бит дан­ных в «обменной области» принадле­жит только одному процессу. Совме­стное использова­ние страницы па­мяти в Singularity запрещено, разре­шено только не­однократное по­лучение доступа на чтение.


 Файл, загружен­ный через браузер из Интерне­та, будет поме­щен в «обменную область». Для его сохранения на диск браузер откры­вает канал подключения к драйверу файловой системы. Она также по­средством канала устанавливает связь с драйвером жесткого диска. Одно­временно с открытием канала SIP передает права владения файлом.


 В существующих ОС системы кана­лов нет, так что Singularity в ближай­шем будущем едва ли сможет прийти на смену Windows. Для этого при­шлось бы переписать все существую­щие приложения. Такие известные программы, как Photoshop и Nero, в Singularity работать не будут, так как они написаны на небезопасных язы­ках C или C++. Но даже Java- или .Net-приложения, которые полно­стью совместимы со средой Singularity, пришлось бы дополнить возможно­стью работы с каналами.

Стабильность: синий экран смерти уходит в прошлое
 Драйверы — самые небезопасные компоненты ядра. 85% всех сбоев Windows объясняется дефектными драйверами. А в Linux-системах веро­ятность появления ошибки в драйве­рах в сравнении с остальным кодом ядра выше в семь раз.


 Проблемы с драйверами возникают по большей части вследствие того, что система не может контролиро­вать все то, чем они «занимаются», какие ресурсы используют и с каки­ми другими системными компонен­тами могут провоцировать конфлик­ты. Вместе с этим многие драйверы работают с наивысшими систем­ными правами. Если они вызывают сбой, то, как правило, «тянут» за собой всю систему.


 В Singularity это невозможно по двум причинам: во-первых, в инстал­ляторе драйвера должен содержать­ся так называе­мый манифест. Он представля­ет собой не что иное, как XML-документ, опи­сывающий пре­жде всего то, ка­кие аппаратные ресурсы требуют­ся драйверу. На основании дан­ной информации Singularity еще до установки может выяснить, будет ли драйвер вообще работать с данным аппаратным обеспечением и како­ва вероятность возникновения кон­фликтов с другими модулями.


 Во-вторых, после установки драй­вер, в отличие от традиционных сис­тем, располагается не в ядре, а рас­сматривается системой как обычное приложение, и для него выделяется отдельный SIP. Если драйвер по при­чине наличия в его коде ошибки вызовет сбой, то это никак не от­разится на ядре. Singularity просто перезагрузит драйвер, известив об этом пользователя.


 Вот в чем заключается преимуще­ство микроядра, которое освобождает как можно больше системных ресур­сов, чтобы потом задействовать их при необходимости. Идея микроядра сама по себе не нова, она встречается уже в обучающей системе Minix образца 1987 года. Но ее реализация до настоя­щего времени была связана со множе­ством проблем, главная из которых — слишком медленная работа.

 

Производительность: устранение «тормозов»
 В процессорах архитектуры х86 реали­зован механизм уровней защиты, так называемых колец. Всего их четыре, но ОС используют только два — нуле­вое и третье. Процессы нулевого коль­ца имеют доступ ко всем процессор­ным командам и страницам памяти, а процессам третьего кольца прямой доступ к аппаратному обеспечению, а также нулевому кольцу запрещен.


 Все критичные для системы про­цессы, например драйверы, работа­ют на нулевом кольце — в режи­ме ядра. А приложения, к примеру Firefox, — на третьем кольце, в ре­жиме пользователя. Такая аппарат­ная защита предпочтительна для систем, в которых драйверы работа­ют в режиме ядра. Но именно она и делает систему уязвимой.
 Подходящим решением здесь стало бы использование микроядра, в кото­ром драйверы работали бы на третьем кольце. В случае возникновения про­блем это бы никак не повлияло на стабильность системы.


 Техническая сингулярность
 Однако такой подход снижает про­изводительность: каждый запрос при­ложения на третьем кольце, адресо­ванный системе, должен быть повтор­но выполнен в нулевом кольце, так как приложение не обладает правом прямого доступа. На это тратится вре­мя и системные ресурсы, причем не­малые: исполнение вызова на уровне нескольких колец происходит в пять десять раз медленнее, чем в пределах одного кольца. Поэтому монолитные ядра, которые мало взаимодействуют на уровне нескольких колец, работают быстрее, чем микроядра.

Singularity имеет программную защиту, реализованную с помощью закрытых SIP, и вообще не нуждается в кольцах защиты. Иными словами, система работает полностью в режи­ме ядра, превосходя в результате по скорости работы все другие систе­мы. Команда разработчиков Singularity провела интересный эксперимент: они разделили системные компоненты Singularity, как и в Windows, на кольца. В результате скорость работы Singularity снизилась при­близительно на 30%.
 Таким образом, Windows, Linux и прочие системы могли бы уже сегод­ня без дополнительной оптимизации работать на 30% быстрее. Для этого необходимо просто отключить аппа­ратную защиту и пренебречь стабиль­ностью. Singularity же может от­казаться от защиты и остаться пос­ле этого стабильной системой. Этот фактор приводит к впечатляющим показателям производительности. Так что задержки, обу­словленные использованием безопас­ных языков программирования, ком­пенсируются с лихвой.


 Термин «сингулярность» используется во многих областях науки и есте­ствознания — в физике и биологии, философии и математике. Благодаря фантастической литературе наиболь­шую известность приобрела гравита­ционная сингулярность, определяе­мая как «область пространства-времени, в которой кривизна пространственно-временного континуума обращается в бесконечность или терпит разрыв». Такими свой­ствами, согласно общепринятой теории, обладают черные дыры. Однако выбирая название для своей инновационной ОС, в Microsoft ско­рее имели в виду технологическую сингулярность — «короткий период чрезвычайно быстрого технологиче­ского прогресса».

 
 
Подписка
На новости


Подписаться письмом
Поиск на сайте 

 
   
 
DSGN © Rambler's Top100
Hosted by uCoz