Многие уже наслышаны о супер мега проекте от Microsoft - новой
операционной системе Singularity. Microsoft решила с нуля попробовать
написать ОСь используя "безопасное программирование", которое на корню
будет пресекать баги различного рода. Для этого решили использовать
"безопасные" языки программирования C#, Sing#, ну и кое-где си и
ассемблер. Так вот, совсем недавно были открыты исходники первых
наработок этой операционной системы и в этой статье : как можно
скомпилировать эти самые исходники и запустить всё это дело на
виртуальной машине Системные требования: по данным от 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 могут найти
применение в других приложениях. О файле: Год выпуска: 2009 Размер файла: 228 MB Активация|рег код: не требуется Язык Интерфейса: только английский Формат файла: .rar Платформа/ОС: PC Скачать Singularity - новая ОСь от Microsoft (2009ENG) скачать с letitbit скачать с uploadbox
|