|
||
Ответить |
|
|
#1
|
|
Вес репутации:
0
Регистрация: 17.09.2009
Сообщений: 594
Сказал(а) спасибо: 98
Спасибок 138
в 100 сообщениях |
Singularity - новая ОСь от Microsoft (2009/ENG) -
10.11.2009, 03:36
Многие уже наслышаны о супер мега проекте от Microsoft — новой операционной системе Singularity. Microsoft решила с нуля попробовать написать ОСь используя "безопасное программирование", которое на корню будет пресекать баги различного рода. Для этого решили использовать "безопасные" языки программирования C#, Sing#, ну и кое-где си и ассемблер. Так вот, совсем недавно были открыты исходники первых наработок этой операционной системы и в этой статье : как можно скомпилировать эти самые исходники и запустить всё это дело на виртуальной машине Системные требования: по данным от Microsoft, необходима машина с 1,5 GB свободного места для исходников и будущих бинирников, плюс 512 Мб ОЗУ. Прежде чем присутпить к работе несколько слов о Singularity. Главной особенностью операционки является модель SIP (Software-Isolated Process). Каждый процесс изолирован друг от друга, но сообщения между ними могут передаваться посредством двунаправленных, строго типизированных высокоуровневых каналов. Singularity — это эксперимент по построению максимально надежной операционной системы. Этот эксперимент проводит подразделение Microsoft Research. Основным источником информации о Singularity на русском языке сейчас является масштабный обзор на RSDN, поэтому перечислю здесь основные моменты, а за деталями предлагаю отправиться именно туда. Также вы можете увидеть операционную систему в действии (для публичного скачивания она недоступна), посмотрев ролик-интервью с одним из разработчиков на Google Video. Итак, что же такое 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 уже сейчас не проигрывает другим операционным системам в скорости — эта система вполне может стать единым стандартом операционных систем будущего. Теперь что касается ПО. Сами исходники Singularity . Интересной особенностью является то, что есть возможность отладки ядра операционной системы, поэтому будет не лишне проинсталлировать комплект утилит для этого дела. Т.к. ОСь завязана на Framework'e, то и его необходимо будет поставить, если конечно же он у вас уже не стоит. Работать всё будет на виртуальной машине, поэтому ставим ещё систему виртуализации Microsoft Virtual PC 2007. Тем, кто уже сталкивался с виртуальными ОС, наверняка знаком такой продукт как VMware — это тоже самое, только от Microsoft. Если ещё будет желание попробовать написать первые программы или вири и тем самым прославиться, то ещё нужно поставить Microsoft Visual Studio 2005 или Microsoft Visual Studio 2008. На этом всё, больше ничего не понадобится. Доп. информация: - Компилируем Итак, самое интересное. Распаковываем скачанные исходники и запускаем командный файл configure.cmd. После этого на рабочем столе появится ярлычёк Singularity RDK 1.1. Это наша шел среда для конфигурирования и собственно компилирования всех составляющих новой операционной системы. Запускаем шел через ярлык или, если вы ярый ненавистник ярлыков на рабочем столе, то идём в папку base и запускаем setenv.cmd. Помимо него в папке base существуют следующие подпапки: Applications — тут примеры исходничов под Singularity. Много интересного, различные примеры работы с сетью и прочее. Boot — Исходники загрузчика преимущественно на си плюх плюх и асме.\ Build — Тут куча компиляторов, библиотек, тулз. Contracts — тут какие-то определения класов. Distro — Файлы проектов. Сюда упадут бинарники для запуска после компиляции операционки. Drivers — Исходники драйверов. Интересно то, что дрова написаны исключительно на C# и Sing#. Interfaces — Определения интерфейсов. Kernel — Эх, само ядро с CLR компонентами, а в папке Native с неуправляемым кодом. Libraries — Исходники библиотек. Options — Файлы конфигурации. Services — Исходники служб. Windows — Исходники утилит для старта на Windows. Идём дальше — заходим в папку Distro. Тут нам предоставляется выбор какой билд мы хотим получить. В зависимости от взятого проекта мы получим соответствующие билды. Для выбора нам предоставляются: Tiny, Small, BVT, SPECweb99 или World. Разница между ними следующая: Проект Tiny предусматривает сборку только ядра, менеджера тома и самой командной строки — самый лёгенький проект; Проект Small — всё что включает в себя Tiny, плюс сетевой стек; Проект BVT — сделаю предположение, что это адбевиатера от build verification test т.е. приёмочное тестирование. Это одно из стадий тестирования программного обеспечения, которое призвано бегло пробежаться по продукту и дать оценку, готово ли оно для тестирования вообще. Если посмотреть во внутрь проекта, то можно увидеть, что здесь уже намного больше объявлено компонентов для сборки. Компоненты распределены по группам: Apps, Benchmarks, Tests, Drivers и Services. Изходя из списка уже можно представить, что попадёт в сборку; Проект SPECweb99 — SPECweb99 — это набор тестов для www серверов для оценки на сколько хорошо система будет показывать себя как сервер в сети. Как ни странно, в этом проекте добавлен компонент SpecWeb99 specific ну и добавилось парочка драйверов; Проект World — здесь всё просто, в сборку попадает всё, что написали. Выбираем понравившийся нам проект и даём следующую команду нашему шелу (без скобочек) "msb Distro\имя_проекта.proj". Пример: msb Distro\World.proj Ждём несколько минут пока сбилдится проект. Tiny.proj собирается за пару минут, а вот сборка проекта World.proj может занять около часа. По окончании выполняемой операции должна появится надпись "Build Succeeded.", говорящая о том, что всё прошло успешно и путь к лог файлику, просмотрев который можно увидеть все произведённые операции. А результатом операции стало появление в корне новой папки — base.obj. Теперь по поводу необычной команды msb. Это просто командный файлик, который лежит в папке Build. Он запускает утилиту msbuild.exe, которая исталируется вместе со вторым Framework'ом, msbuild.exe — это компилятор для командной строки по типу make в unix системах. Подробнее о msbuild пожно почитать вот тут. В процессе сборки порадовала надпись "Found 2 processors.", говорящая о том, что уже эта достаточно сырая версия умеет работать с многопроцессорными системами. Идём дальше, теперь удалим все ненужные сборочные файлы командой msb /t:Clean Distro\имя_проекта.proj. Пример: msb /t:Clean Distro\World.proj Они могут достаточно много места занимать на диске (до гектара), так что лучше их убить. - Запускаем. Singularity поддерживает несколько видов загруки — Network и с накопителей CD-Rom, FAT Hard Disk и USB. Для того, что бы можно было использовать Network загрузку, необходимо добавить новое сетевое соединение. Делается это следующим образом: Заходим в панель управления и жмем Add Hardware -> Next. В появившемся окне выбираем Yes, I have already connected the hardware -> Next. Далее в самом низу вибираем Add a new hardware device -> Next. Install the hardware that I manually select from a list (Advanced) -> Next. Из списка выбираем Network adapters -> Next. В качестве сетевого адаптера выбираем Microsoft Loopback Adapter -> Next -> Next ->Finish. Теперь необходимо сконфигурировать наш новый сетевой адаптер. Вызываем свойство (Properties) "Сетевого окружения" (Network Connections), видим там Наш Microsoft Loopback Adapter. Переименовываем его в Loopback. Теперь заходим в свойства (Properties) сетевого адапетра Loopback. На вкладке General в самом низу выбираем Internet Protocol (TCP/IP), делее заходим во свойства (Properties). Выбираем "Использовать следующий IP адрес" (Use the following IP address) и вводим 10.99.99.1 для IP адреса и 255.255.255.0 для маски подсети (Subnet mask). Первичные и вторичные ДНС сервера оставляем пустыми. Нажимаем кнопку ок. Переходим на вкладку Advanced, в разделе Windows Firewall нажимаем кнопку Settings... и переходим на вкладку Exceptions. Нажимаем кнопку Add Port… , и добавляем 2 параметра с именем DHCP, номер UDP порта 67 и так же добавляем TFTP c UDP портом 69. Эти протоколы будут использоваться для загрузки Singularity. Далее заходим в папку boot и копируем в корневую папку файл pxe.vmc с новым именем. Это файл виртуальной машины Microsoft Virtual PC 2007 в которой будет определён способ загрузки ОС. Или же просто выполняем следующую команду — copy boot\pxe.vmc singularity.vmc. Далее, выполняем команду — boottest.cmd mypc.vmc. Будет запущен ISO образ из папки base.obj\Distros, который был сгенерирован до этого. Для запуска в дебаг режиме выполняем команду — dbg.cmd /pipe & boottest.cmd mypc.vmc. Можно попробовать запустить сетевую загрузку. Делается это с помощью ключика /net. Используем следующим образом — boottest.cmd /net mypc.vmc. Такая загрузка будет происходить на порядок дольше по сравнению с загрузкой с ISO образа. После окончания загрузки ядра мы может увидеть командную строку. Да да, никаких окошечек Иксов пока ещё не написали. Набираем help и видим список доступных команд. Интересна команда bvt, которая тестирует множество компонентов. Тестирование будет проходить достаточно долго, так что запасаемся терпением и бегло читаем лог. Вот в принципе и всё Доп. информация (цитата из популярного журнала): Корпорация Microsoft в ходе ежегодной конференции TechFest в Редмонде (штат Вашингтон) представила операционную систему под названием Singularity. В Microsoft сразу же оговариваются, что Singularity не является следующей версией Windows. Новая программная платформа разрабатывается в рамках экспериментального проекта и ориентирована на применение исключительно в исследовательских целях. Рик Рашид, генеральный директор подразделения Microsoft Research, называет Singularity "концепт-каром", на котором будут обкатываться новые технологии. Singularity разрабатывалась с чистого листа. При проектировании операционной системы большая часть усилий была направлена на обеспечение надежности. Например, процессы в это операционной системе выполняются в специальных изолированных "контейнерах" — так называемая технология Software Isolated Processes (SIP). При написании кода Singularity используется комбинация языка C# и языка Sing#, производной C#. Бесплатный инструментарий для разработки приложений для программной платформы Singularity и ее исходный код доступны на сайте CodePlex. Корпорация Microsoft надеется, что операционная система заинтересует программистов и академические учреждения, которые будут использовать Singularity в процессе исследований в области новых компьютерных архитектур. Не исключено, что в перспективе операционная система Singularity будет выпущена в виде независимой платформы, например, для встраиваемых устройств. Кроме того, отдельные компоненты Singularity могут найти применение в других приложениях. источник Скачать Microsoft Singularity — 228 MB Скачать с rapidshare.com RapidShare: 1-CLICK Web hosting - Easy Filehosting RapidShare: 1-CLICK Web hosting - Easy Filehosting RapidShare: 1-CLICK Web hosting - Easy Filehosting RapidShare: 1-CLICK Web hosting - Easy Filehosting RapidShare: 1-CLICK Web hosting - Easy Filehosting Скачать быстро одним файлом с Onefile.net Скачать одним файлом с vip-file.com Скачать быстро одним файлом с Sms4files.net Скачать одним файлом с letitbit.net P.S. Сам пока что не тестил. |
Ответить |
Опции темы | |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обсуждаем Эволюция коробочных версий ОС от Microsoft | Vector | Флейм | 4 | 17.11.2009 17:26 |
Новости Catalyst 9.9: новая версия драйверов | Vector | Новости Software | 0 | 14.09.2009 10:10 |
Инфо Новая теория тёмной материи | Vector | Новости Hardware | 0 | 09.09.2009 14:22 |
Новости Opera 10 Final: новая версия норвежского браузера | Vector | Новости Software | 0 | 02.09.2009 22:04 |
Новости Мышь SideWinder X8 от Microsoft в продаже | Vector | Новости Hardware | 0 | 28.02.2009 22:50 |