| |
|
Многие уже наслышаны о супер мега проекте от Microsoft - новой операционной системе Singularity. Microsoft решила с нуля попробовать написать ОС, используя "безопасное программирование", которое на корню будет пресекать баги различного рода. Для этого решили использовать "безопасные" языки программирования: C#, Sing#, ну и кое-где C и ассемблер. Так вот, совсем недавно были открыты исходники первых наработок этой операционной системы и в этой статье: как можно скомпилировать эти самые исходники и запустить всё это дело на виртуальной машине.
Системные требования: по данным от Microsoft, необходима машина с 1,5 GB свободного места для исходников и будущих бинирников, плюс 512 Мб ОЗУ.
Прежде, чем присутпить к работе, несколько слов о Singularity. Главной особенностью OC является модель SIP (Software-Isolated Process). Каждый процесс изолирован друг от друга, но сообщения между ними могут передаваться посредством двунаправленных, строго типизированных высокоуровневых каналов.
Теперь, что касается ПО. Сами исходники Singularity . Интересной особенностью является то, что есть возможность отладки ядра операционной системы, поэтому будет не лишне проинсталлировать комплект утилит для этого дела. Т.к. ОС завязана на Framework, то и его необходимо будет поставить, если конечно же он у вас уже не установлен. Работать всё будет на виртуальной машине, поэтому ставим ещё систему виртуализации 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 - набор тестов для 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 Разработчик: Microsoft Совместимость с Vista: неизвестно Язык интерфейса: только английский Таблетка: Не требуется
Внимание! У вас нет прав для просмотра скрытого текста.
Рекомендуем посмотреть похожие новости по теме:
Singularity (2010/RUS/ENG/RePack by R.G. Shift)Mini-USB WindowsXPWindows 7 build 7201 x86/x64 ENG RC2 (релиз обновлен! добавлен образ для x8 ...Microsoft Windows Vista SP1 RUS-ENG x64 -8in1- Activated (AIO)OOCleverCacheRemoveWAT 2.2.6.0Vksaver ( новая версия )Microsoft .NET Framework 4.0.3 Final (x86/x64) + UpdatePHP DevelStudio 2.0.0.6 beta210000 градиентов для фотошопа
|
|