Вернуться   Foxter.ru > Мой компьютер > Операционные системы

Ответ
 
Опции темы Опции просмотра
Старый 27.05.2007, 15:12   #48303  
Девушка-лето
 
Аватар для klepka
 
Репутация: 647473Репутация: 647473Репутация: 647473Репутация: 647473Репутация: 647473Репутация: 647473Репутация: 647473Репутация: 647473Репутация: 647473Репутация: 647473Репутация: 647473
Регистрация: 25.10.2005
Сообщения: 2,355
По умолчанию Singularity — новая операционная система Microsoft на базе CLR

Об операционной системе Singularity еще мало кто слышал — что даже удивительно, поскольку производителем ее является Microsoft. Да и сам по себе проект является чрезвычайно интересным.

Singularity — это эксперимент по построению максимально надежной операционной системы. Этот эксперимент проводит подразделение Microsoft Research.

Основным источником информации о Singularity на русском языке сейчас является масштабный обзор на RSDN, поэтому перечислю здесь основные моменты, а за деталями предлагаю отправиться именно туда. Также вы можете увидеть операционную систему в действии (для публичного скачивания она недоступна), скачав четыре ролика-интервью с разработчиками.
1 2 3 4
Итак, что же такое Singularity? Для ответа на этот вопрос надо знать, что такое CLR и Microsoft.NET. Предполагаю, что вам это уже известно, если же нет, то, вкратце, это исполняемая среда вроде Java, но позволяющая использовать множество языков программирования. Код с этих языков преобразуется в так называемый «промежуточный язык» — объектно-ориентированный ассемблер, который затем компилируется средой CLR в инструкции, понятные процессору.

Вот на таком языке и написана Singularity. Если быть точным — на языке Sing#, являющимся потомков языка C#.

Зачем это сделано? Дело в том, что этот язык, как и все, исполняемые средой CLR, является объектно-ориентированным и строго типизированным. Первая особенность позволяет использовать одну реализацию объектно-ориентированного подхода на всю систему, а строгая типизация вкупе с запретом на работу с указателями, делает фактически невозможным ошибки «переполнения буфера» и утечки памяти. Кроме того, такой механизм автоматически следит, с какими типами данных работает программист и не позволяет совершать непредсказуемые преобразования типов.

Однако это все доступно и в .NET-приложениях, которые можно запускать под Windows (а благодаря проекту Mono — и под Linux). Но создатели Singularity пошли дальше: типизированными и регламентированными явлются все системные функции. Например, подсистема межпроцессорного взаимодействия («каналы») требует заранее указать, какие данные, в каком порядке и с какими ограничениями можно передавать между процессами. Через такие каналы, кстати говоря, в Singularity приложения общаются не только друг с другом, но и с драйверами устройств.

Кроме того, все подсистемы работы с ресурсами (каналы, файлы, устройства) автоматически освобождает их во время завершения использовавшего их процесса.

Кстати говоря, в .NET-приложениях можно вызывать библиотеки с неуправляемые кодом и при желании работать напрямую с указателями — а в Singularity принципиально НЕЛЬЗЯ ни того, ни другого. Надежность данных и процессов в памяти — дороже.

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

Кстати, драйвера устройств и файловая система также исполняются как SIP-ы и процессы общаются с ними на обших основаниях.

Что интересно, даже с учетом всех этих многочисленных подсистем, абстрагирующих реальные ресурсы, инструкции и устройства, в тестах Singularity работает примерно на одной скорости с Windows и Linux. Многие операции выполняются даже быстрее (например, новый процесс создается в 2-18 раз быстрее). Кстати, по моим личным наблюдениям — сложные приложения .NET также выполняются очень шустро. Видимо, дело в оптимизированных (и единых для всех приложений) механизмах .NET и базовых бибилиотеках. Правда, в связи с тем, что приложений под Singularity написано мало, тесты являются во многом «синтетическими» — например, измерялся объем исполняемого кода программы «Hello World!». Подробнее о тестах смотрите в статье на RSDN. (Разработчики предполагают дальнейшую оптимизацию системы с еще большм выигрышом по скорости).

Singularity — это эксперимент, который направлен на изучение взаимодействия процессов, устройств и ресурсов в процессе работы операционной системы. Но, в то же время, это — возможное будущее операционных систем. Сейчас надежность, а не скорость и простота программирования является краеугольным камнем работы информационных систем. А с учетом того, что Singularity уже сейчас не проигрывает другим операционным системам в скорости — эта система вполне может стать единым стандартом операционных систем будущего.

хабрахабр
__________________
Да главное, что человек он хороший! Какая разница, какого цвета у него Бентли...
klepka вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей - 0 , гостей - 1)
 

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Powered by vBulletin
Copyright ©2000-2024, Jelsoft Enterprises Ltd.
[Foxter Skin] developed by: Foxter.ru