Только о двух вещах мы будем жалеть на смертном одре — что мало любили и мало путешествовали.
Марк Твен.
Человека делают счастливым три вещи: любовь, интересная работа и возможность путешествовать…
Иван Бунин

четверг, 27 марта 2008 г.

вторник, 25 марта 2008 г.

Microsoft Singularity: первый шаг в будущее

Автор: мой любимый дружище Shred 
Оригинал статьи

Введение
Многие уже наслышаны о супер мега проекте от Microsoft - новой операционной системе Singularity. Microsoft решила с нуля попробовать написать ОСь используя "безопасное программирование", которое на корню будет пресекать баги различного рода. Для этого решили использовать "безопасные" языки программирования C#, Sing#, ну и кое-где си и ассемблер. Так вот, совсем недавно были открыты исходники первых наработок этой операционной системы и в этой статье я расскажу как можно скомпилировать эти самые исходники и запустить всё это дело на виртуальной машине.

Прежде чем присутпить к работе скажу несколько слов об Singularity. Главной особенностью операционки является модель SIP (Software-Isolated Process). Каждый процесс изолирован друг от друга, но сообщения между ними могут передаваться посредством двунаправленных, строго типизированных высокоуровневых каналов.

Что нужно?
Как утверждает сама Microsoft, необходима машина с 1,5 гектарами свободного места для исходников и будущих бинирников, плюс 512 Мб ОЗУ. Теперь что касается ПО. Сами исходники Singularity качаем вот отсюда. Забираем последний билд, на момент написания стати это 6709. Интересной особенностью является то, что есть возможность отладки ядра операционной системы, поэтому будет не лишне проинсталлировать комплект утилит для этого дела, всё это добро забираем отсюда. Т.к. ОСь завязана на 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, которая тестирует множество компонентов.



Тестирование будет проходить достаточно долго, так что запасаемся терпением и бегло читаем лог. Вот в принципе и всё.

Удачной работы.

P.S.: Технологическая сингулярность в футурологии — гипотетический взрывоподобный рост скорости научно-технического прогресса, предположительно следующий из создания искусственного интеллекта и самовоспроизводящихся машин, интеграции человека с вычислительными машинами либо значительного увеличения возможностей человеческого мозга за счёт биотехнологий. По некоторым прогнозам, технологическая сингулярность может наступить уже около 2030 года. Сторонники теории технологической сингулярности считают, что если возникнет принципиально отличный от человеческого разум (постчеловек), дальнейшую судьбу цивилизации невозможно предсказать, опираясь на человеческое (социальное) поведение.


пятница, 21 марта 2008 г.

Герои среди нас!

Ну что я могу сказать? Только то, что я люблю тебя, Microsoft!

Позавчера была на конференции от Microsoft, на Героях 2008! 3 легендарных продукта! Один мощный старт!)))

Всё это действо происходило в Мираже. Народу было очень много. При регистрации всем выдали по инфоблоку: красивый удобный рюкзачок с материалами по Server 2008, SQL Server 2008 и Visual Studio 2008. Вообщем, уже после этого момента, я была счастлива. Рюкзак подойдет мне и на фитнес сходить, и ноут потаскать)))) Извините, отвлеклась...
Так как я была зарегистрирована на семинар TechNet для ИТ специалистов, я прошла в зал "Синема", одновременно проходили семинары для разработчиков и директоров в других залах.
Открыте конференции началось с пленарного доклада. Докладчик был Боб Виссе (старший директор подразделения Windows Server Marketing Group, Microsoft Corp). Естественно, всё на английском языке. Кратко он рассказал о всех трех продуктах, о том, где их уже внедрили или же собираются внедрять. Потом перерыв на кофе. И понеслось...
2 следующих доклада - Виртуализация в Windows Server 2008 и Технологии обспечения безопасности Windows Server 2008 (Андрей Бешков - эксперт по информационной инфраструктуре). Виртуализация, кластеризация, Hyper-V, RMS, гипервизор, READ-ONLY Domain Controller, NAP, BitLocker и все особенности и новинки Windows Server 2008. Я хоть ни разу сама не разворачивала сервер и многое еще не знаю, но было слушать очень интересно. Тем более и докладчик был живой и всё доступно рассказывал. Спасибо.
Далее обед. Ну это я считаю одним из минусов. Хотя бутербродов и сока хватило всем. Ну с другой стороны попробуй накорми такую ораву мужчин, в основном там были они.))) Далее я пошла участвовать в розыгрыше от Поликом Про. Они по анкеткам разыгрывали визитницы. Ничего не выиграв, но не расстраиваясь, я походила по другим стендам. Задержалась у стенда Digital Design. Ребята с удовольствием рассказали про их продукцию.
Решив отдохнуть чуть чуть от сервера, отправилась на семинар для разработчиков. Тем более там была лекция интересная для меня. Visual Studio 2008 - новое в разработке Web - приложений и Microsoft ASP.NET MVC Framework (Евгений Марченков - эксперт по технологиям разработки программного обеспечения) Ну что я могу сказать - после обеда проснулись все, лекция была очень веселая , тем более Евгений забыл свой бубен дома и программа срабатывала ни с первого раза. Хочу заметить, что некоторые новинки в вижуалке мне понравились.
Потом каждому, кто заполнил анкетку выдали по набору дисков с каждым из продуктов с годовой лицензией. Некоторым правда еще достался чемоданчик с книжками по программированию и по системному администрированию. Мне не досталось, да я бы их и не утащила наверное...)
Далее оказалась я снова на семинаре по Серверу. Построение надежной и управляемой инфраструктуры на базе Сервера 2008 (Александр Шаповал- эксперт по информационной инфраструктуре департамента стратегических технологий). Это мне уже было сложно, то ли я устала, то ли было не переключиться после веселой вижуалки. Голова шла кругом от виртуализации и кластеризации.
Затем по сиквелу - Автоматизация типовых задач администрирования SQL Server 2008 (Алексей Шуленин - эксперт по технологиям обработки и анализа информации).
После всего этого фуршет (спонсор компания Балтика). Ну об этом в другой раз))))

Жизнь по плану!

Насколько ли она хороша - жизнь по плану? Просто так не привычно на вопрос,что зачем ты женишься, слышать - пора заводить детей , семью... а хотелось бы совершенно другой ответ. Но к сожалению большинство людей как раз и делают всё по плану, даже сейчас в 21 веке. Живут на автомате, хватаются за первое встречное и пытаются вырастить любовь. Может конечно так и надо. Но я хочу как в сказке, чтоб искра , любовь и принц))) И буду надеяться и верить и ждать!