Foxter.ru

Foxter.ru (https://www.foxter.ru/index.php)
-   Операционные системы (https://www.foxter.ru/forumdisplay.php?f=11)
-   -   Singularity — новая операционная система Microsoft на базе CLR (https://www.foxter.ru/showthread.php?t=4805)

klepka 27.05.2007 15:12

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 уже сейчас не проигрывает другим операционным системам в скорости — эта система вполне может стать единым стандартом операционных систем будущего.

хабрахабр


Часовой пояс GMT +3, время: 09:08.

Powered by vBulletin
Copyright ©2000-2024, Jelsoft Enterprises Ltd.