Скачать Singularity - новая ОСь от Microsoft (2009/ENG)
Многие уже наслышаны о супер мега проекте от Microsoft - новой
операционной системе Singularity. Microsoft решила с нуля попробовать
написать ОСь используя "безопасное программирование", которое на корню
будет пресекать баги различного рода. Для этого решили использовать
"безопасные" языки программирования C#, Sing#, ну и кое-где си и
ассемблер. Так вот, совсем недавно были открыты исходники первых
наработок этой операционной системы и в этой статье : как можно
скомпилировать эти самые исходники и запустить всё это дело на
виртуальной машине
Год выпуска: 2009
Разработчик: Microsoft
Совместимость с Vista: неизвестно
Язык интерфейса: только английский
Размер: 228 MB
Таблэтка: Не требуется
Системные требования: по данным от Microsoft, необходима машина с 1,5 GB свободного места для исходников и будущих бинирников, плюс 512 Мб ОЗУ.
Прежде
чем присутпить к работе несколько слов о Singularity. Главной
особенностью операционки является модель SIP (Software-Isolated
Process). Каждый процесс изолирован друг от друга, но сообщения между
ними могут передаваться посредством двунаправленных, строго
типизированных высокоуровневых каналов.
Теперь что касается ПО.
Сами исходники 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 системах. В
процессе сборки порадовала надпись "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
операционной системе Singularity. Microsoft решила с нуля попробовать
написать ОСь используя "безопасное программирование", которое на корню
будет пресекать баги различного рода. Для этого решили использовать
"безопасные" языки программирования C#, Sing#, ну и кое-где си и
ассемблер. Так вот, совсем недавно были открыты исходники первых
наработок этой операционной системы и в этой статье : как можно
скомпилировать эти самые исходники и запустить всё это дело на
виртуальной машине
Год выпуска: 2009
Разработчик: Microsoft
Совместимость с Vista: неизвестно
Язык интерфейса: только английский
Размер: 228 MB
Таблэтка: Не требуется
Системные требования: по данным от Microsoft, необходима машина с 1,5 GB свободного места для исходников и будущих бинирников, плюс 512 Мб ОЗУ.
Прежде
чем присутпить к работе несколько слов о Singularity. Главной
особенностью операционки является модель SIP (Software-Isolated
Process). Каждый процесс изолирован друг от друга, но сообщения между
ними могут передаваться посредством двунаправленных, строго
типизированных высокоуровневых каналов.
Теперь что касается ПО.
Сами исходники 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 системах. В
процессе сборки порадовала надпись "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