Установка:  - Компилируем 
 Итак, самое интересное. Распаковываем скачанные исходники и запускаем командный файл 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 DistroWorld.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 DistroWorld.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 bootpxe.vmc singularity.vmc. Далее, выполняем команду - boottest.cmd mypc.vmc. Будет запущен ISO образ из папки base.objDistros, который был сгенерирован до этого. Для запуска в дебаг режиме выполняем команду - dbg.cmd /pipe & boottest.cmd mypc.vmc. 
 Можно попробовать запустить сетевую загрузку. 
 Делается это с помощью ключика /net. Используем следующим образом - boottest.cmd /net mypc.vmc. Такая загрузка будет происходить на порядок дольше по сравнению с загрузкой с ISO образа. После окончания загрузки ядра мы может увидеть командную строку. Да да, никаких окошечек Иксов пока ещё не написали. Набираем help и видим список доступных команд. 
 Интересна команда bvt, которая тестирует множество компонентов. 
 Тестирование будет проходить достаточно долго, так что запасаемся терпением и бегло читаем лог. Вот в принципе и всё.