Chimera (собрание 1.09.09). План Цель нашей работы Состояние на сегодня Функционирование branded зоны Планы на будущее Вопросы Предложения по организации.

Презентация:



Advertisements
Похожие презентации
Системные вызовы и библиотеки Unix SVR4 Введение.
Advertisements

Архитектура операционных систем Семестр 2, Лекция 1.

Использование автогенерации кода для тестирования драйверов ОС Windows Дипломная работа студента 545 группы Комольцева Дмитрия Владимировича Научный руководитель:
Архитектура операционных систем. Архитектура ОС Состав модулей (компонент) ОС Структура связей между отдельными модулями ОС Принципы взаимодействия модулей.
Операционные системы и их функции.. Операционная система (ОС) связывает аппаратно обеспечение и прикладные программы. Многие свойства различных программ.
ДонНУ, кафедра КТ, проф.В.К.Толстых WCF-службы Создание и тестирование.dll-библиотеки WCF-служб Из цикла лекций «Internet-технологии разработки приложений»
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 3 Основные концепции и архитектура Microsoft.
1. ЧТО ТАКОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ? НАБОР ПРОГРАММ В ПАМЯТИ КОМПЬЮТЕРА 2. ИЗ КАКИХ ЧАСТЕЙ СОСТОИТ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ? КРОССОВЫЕ ТЕСТОВЫЕ СИСТЕМНЫЕ.
Архитектура операционной системы. Ядро и вспомогательные модули операционной системы При функциональной декомпозиции ОС модули разделяются на две группы:
Лаборатория НГУ-Parallels Летняя школа 2008 года Новые проекты
Тип данных файл 1 курс. План: 1.Понятие типа данных файл. Дескриптор файла. 2.Классификация файлов в Паскале. 3.Структура описания типа данных файл. 4.Действия.
Многоуровневое мандатное управление доступом в многооконной графической среде ОС класса Linux Авторы: к.т.н., доцент Д. В. Ефанов * аспирант кафедры 36.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
ДонНУ, кафедра КТ, проф.В.К.Толстых Web-службы (Web-сервисы) введение введение Разработка в среде Delphi Из цикла лекций «Internet-технологии разработки.
Особенности практической реализации процесса интеграции при разработке сложных аппаратно-программных комплексов НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ.
EDCWiki Electronic Document Circulation using wiki Система электронного документооборота на основе wiki Участники: Кузьмин К.А., Цыцулин В. И. Руководитель:
Инструментальные средства визуальной коммуникации и прикладной дизайн Лекция 3.
Создание проекта Zend Лекция 2 1.Создание нового проекта 2.Анализ нового проекта 3.Создание макетов.
Информатика в школе Операционная система. Графический интерфейс. Программное обеспечение.
Транксрипт:

Chimera (собрание )

План Цель нашей работы Состояние на сегодня Функционирование branded зоны Планы на будущее Вопросы Предложения по организации совместной разработки Заключение

Цель Создание win32 branded зоны для OpenSolaris (на базе Windows 2003 SP1) Zone Container BrandZ infrastructure brand

Состояние на сегодня Умеем собирать WRK и ON Тестовые машины: – Windows 2k3 sp1(справа от ws17) – OpenSolaris onnv_b117(ws17.swsoft.nsu.ru) Документация WRK (две – написанная и сгенерированная) Изучена работа технологии BrandZ

Состояние на сегодня (продолжение) Набор тестовых программ Создана базовая win зона: – win brand kernel module – win brand userspace support library – zone configs Начата разработка загрузчика исполняемых файлов формата PE (Portable Executable)

Сборка WRK и ON WRK – /WindowsResearchKernel-WRK/README.txt ON (OS/Net consolidation) – /Chimera/BuildingOpenSolaris – devref_toc/

Документация WRK /Chimera/SpisokFunkcijj – [+] можно редактировать – [-] это очень не удобно (проблемы с правами) ws17.swsoft.nsu.ru: ~/WRK/documentation/home – [+] сгенерирована по исходному коду – [-] для удобства использования стоит более точно настроить генератор и разместить на веб- сервере

Набор тестовых программ Тестируем работу win зоны Каждая тестовая программа – аналог процесса init (на первых этапах разработки) Программы: – create* - создание файла (открыть, закрыть, завершить работу) – writefile* - пишет в существующий файл в юникоде (открыть, записать строку, закрыть, завершить работу)

Набор тестовых программ (продолжение) Вариации программ: – A: вызов функций ядра напрямую – B: вызов функций ядра через ntdll.dll – C: вызов функций ядра напрямую, исполняемый файл в формате ELF – D: вызов функций ядра напрямую, исполняемый файл в формате ELF, использование гибридного интерфейса ядра (Windows + Solaris)

Набор тестовых программ (продолжение 2) Оригинальные тестовые программы (create*, writefile*; вариации A, B, C) – /DmitryKolbin – /~dkolbin/testPrograms/ Вариация D для create* – на ws17.swsoft.nsu.ru

Что почитать по BrandZ? OpenSolaris BrandZ design document – /os/community/brandz/design/ OpenSolaris ON Developer's Reference Guide – /os/community/on/devref_toc/ Brand Source Layout – /Chimera/BrandSourceLayout

Базовая win зона Созданные компоненты: – win brand kernel module – win brand userspace support library – win zone configuration files Функциональность успешно протестирована на тестовой программе create*, вариация D Исходный код можно найти в среде сборки (~/testws), но лучше отдельно спросить у меня

Базовая win зона (продолжение) Точка входа в ядро – только через sysenter Нет поддержки загрузки файлов PE Тестовая программа создает файл и уходит в pause(2) Разделение пространств номеров системных вызовов: – до 1024 – Windows 2k3 sp1 – 1024 и более – OpenSolaris – об этом знают только kernel module и support library

Загрузчик файлов формата PE [?]

Функционирование branded зоны Зона – набор из: – конфигурационных файлов – модуля ядра (основная задача в принятии запросов на системные вызовы и передаче их в библиотеку поддержки) – библиотеки поддержки (большая часть эмуляции проходит здесь) – возможно, других библиотек и файлов Остальное предоставляет ОС

Системные вызовы: глобальная зона userland kernel Global zone (native) Solaris process { … open() … } Solaris kernel Syscall handler if (p->p_brand) p->p_brand->b_syscall(); else rval = do_native_syscall(); return to userspace open() { … return (fd); }

Эмуляция системных вызовов: win зона userland kernel Windows zone Windows process { … NtCreateFile() … } Solaris kernel Syscall handler if (p->p_brand) p->p_brand->b_syscall(); else rval = do_native_syscall(); return to userspace open() { … return (fd); } Windows brand module struct win_brand_ops { win_syscall() win_proc_exit() win_initlwp() … } win_syscall() { trampoline to userland } Win brand support library win_NtCreateFile(args) { fd = open(win2sol(args)) if (fd < 0) return (sol2win(errno)) else return (fd) }

Эмуляция системных вызовов: на самом деле всё несколько сложнее Точек входа в ядро может быть несколько Для каждой точки входа своя win_syscall() См. struct brand_ops и struct brand_mach_ops Для заданной точки входа Syscall handler осуществляет демультиплексирование запросов системных вызовов (Windows/OpenSolaris) Сейчас в support library нельзя использовать open(2) и аналогичные функции из libc

Планы на будущее Реализация загрузчика PE файлов Реализация других точек входа в ядро Развитие библиотеки поддержки Код эмуляции для базовых системных вызовов Создание минимальной Windows-среды внутри зоны Обзор и анализ аналогов и заменителей

Планы на ближайшее будущее Определиться с организацией совместной работы Определить приоритетные задачи Перевод проекта под управление SCM системы (об этом – чуть позже сегодня)

Планы на ближайшее будущее (продолжение) Адаптация libc и других библиотек для возможности использования в support library Реализация загрузчика PE файлов Обзор и анализ аналогов и заменителей Остальное – в зависимости от предыдущих пунктов

Ваши вопросы? (это еще не конец)

Ваши ответы? Сколько часов в неделю вы можете уделять проекту? На какой курс вы перешли? Есть ли у вас доступ к сети университета из всех/большинства мест, где вы будете работать над проектом? Если нет, то к какой сети есть доступ у всех? У кого есть сервер в этой сети?

Ваши ответы? (продолжение) Какие скриптовые языки вы знаете? На каком уровне? (например, Perl, Python, Ruby, awk) С какими VCS, bugtracking, SCM системами вы знакомы? Считаете ли вы полезной возможность тестировать Химеру на виртуальной машине?

Ваши ответы? (продолжение 2) Что вы думаете о лицензировании продукта и возможных ограничениях на процесс разработки в связи с этим? Есть ли у вас какие-либо пожелания по организации процесса разработки и взаимодействия в команде? Есть ли у вас какие-либо предложения по направлениям развития?

Организация совместной разработки Установка SCM системы и сбор всей информации по проекту в одном месте – Trac + Mercurial plugin (?) – Перенести документы по проекту из WackoWiki в Trac Wiki Создание и использование списка рассылки – swsoft.nsu.ru / groups.google.com / …

Распределение задач Кто чем хотел бы заняться? ;)

Следующая встреча О чем? Что бы вы хотели услышать? Когда?