Скачиваний:
30
Добавлен:
02.05.2014
Размер:
53.28 Кб
Скачать

Введение в Mach pre {border: 1px solid; padding: 3px; padding-bottom: 11pt; width: 468px; overflow-x: auto; font-size: 9pt;}     Шквал(!) новостей на CitCity.ru Океан(!) софта на CITKIT.ru Форумы Все публикации Учебный центр Курилка    CITForum на CD Подписка на новости портала Море(!) аналитической информации! :: CITFORUM.RU Motorola объявляет конкурс на вакансии разработчиков ПО

Проверь себя - пройди тест и направь резюме

ВКШ "Эксперт" Диплом МГУ + сертификаты Microsoft, SUN, Linux

2-х годичное вечернее обучение:

Администрирование

Безопасность

Разработка КИС IT-консалтинг Software Engineering Программирование Open Source СУБД Безопасность Internet Сети Операционные системы Hardware 17.08.2006 WWW CITForum.ru Новости мира IT: 17.08 - Состоялась мировая презентация Panda GateDefender Integra - нового объединенного устройства безопасности17.08 - Microsoft запустила международную версию вирусного сканера17.08 - ICANN останется хозяином интернета до 2011 года17.08 - Русская "Википедия" содержит уже более 100 тысяч статей17.08 - Недавний патч для Internet Explorer провоцирует сбои17.08 - Новый сервер от Sun побил мировой рекорд производительности17.08 - Терабайтный жесткий диск поступит в продажу в 2006 году17.08 - В Сан-Франциско проходит выставка LinuxWorld 200617.08 - nVidia представила новые чипсеты для процессоров Opteron17.08 - Apple выпустила новый загрузчик Windows16.08 - Началась регистрация участников Google Code Jam 200616.08 - ИСП РАН выпустил систему Sedna 1.016.08 - Грядет кризис WiFi-несовместимости16.08 - Motorola сделает упор на Linux16.08 - Microsoft зафиксирует стоимость лицензий для многоядерных процессоров16.08 - Levi Strauss начала выпуск джинсов для iPod16.08 - Business Control добрался до Владивостока16.08 - Microsoft объявляет итоги Imagine Cup16.08 - Исходный код Java начнут открывать в октябре16.08 - IBM выпустила решение для управления электронной почтой16.08 - Доменная зона .mobi открыта для регистрации16.08 - AMD представила новые процессоры для серверных станций16.08 - Logitech и Skype объявили о сотрудничестве16.08 - Red Hat усилит поддержку JBoss16.08 - DeviceLock – решение проблемы несанкционированного использования материалов ФГУ «Российская государственная библиотека»15.08 - «Доктор Веб» информирует о вирусной опасности - Win32.HLLW.Gavir заражает исполняемые файлы и ворует пароли15.08 - Технология TruPreventTM, разработанная Panda Software, обнаружила первого червя, эксплуатирующего уязвимость Microsoft MS06-04015.08 - Компания Oracle становится ближе к народу15.08 - Лицензии на услуги связи третьего поколения будут выданы в этом году15.08 - Google оказался лучшей инновационной компанией 2006 года Все новости на CitCity.ru Citforum.Direct:

- У кого разместить сервер на colocation?

- У кого заказать хостинг? Введение в Mach История Mach Система Mach имела в качестве предшественницы систему RIG - Rochester Intelligent Gateway, начало разработки которой пришлось на 1975 год. RIG была написана для 16-битового мини-компьютера компании DataGeneral под названием Elipce. Целью этой разработки была демонстрация возможностей структурирования операционной системы и представления ее в виде набора процессов, которые могут взаимодействовать между собой путем передачи сообщений, в том числе и по сети. Затем эта операционная система была улучшена путем добавления средств защиты и средств прозрачной работы в сети и получила название Accent (в 1981 году, в университете Карнеги-Меллона). В 1984 году она уже использовалась на 150 компьютерах PERQ - ранних графических станциях, но проиграла соревнование с UNIX'ом. Это обстоятельство побудило создать третье поколение ОС, использующей механизм обмена сообщениями. Этот проект и был назван Mach. В связи с тем, что Mach проектировалась как система, совместимая с UNIX, планировалась поддержка большого количества приложений для UNIX. Кроме совместимости с UNIX, в Mach были введены и другие усовершенствования, включая нити, улучшенные механизмы межпроцессного взаимодействия, поддержка многопроцессорных систем, улучшенная виртуальная память и др. В это время агентство DARPA искало операционную систему для поддержки мультипроцессоров. Выбор был сделан в пользу университета Карнеги-Меллона, и работы над ОС Mach были продолжены. Было решено сделать эту систему совместимой с 4.2BSD путем комбинации Mach и 4.2BSD в виде единого ядра. Хотя этот подход привел к большому ядру, он гарантировал абсолютную совместимость. Первая версия Mach была реализована в 1986 году для VAX11/784, 4-х процессорной машины. Вскоре эта ОС была перенесена на IBM PC RT и Sun 3. К 1987 году Mach выполнялась также на мультипроцессорах Encore и Sequent. Хотя Mach и имела сетевые средства, ее скорее можно было отнести к ОС отдельной машины или мультипроцессора, а не к сетевой распределенной прозрачной системе. Вскоре была создана организация производителей компьютеров OSF (IBM, DEC, Hewlett Packard) для того, чтобы отобрать контроль над ОС UNIX у ее собственника AT&T. Они выбрали Mach 2.5 в качестве основы для их первой операционной системы OSF/1. Хотя Mach 2 и OSF/1 содержали большое количество кода Berkeley и AT&T, была надежда, что OSF, по крайней мере, сможет контролировать направление развития UNIX. В 1988 году ядро Mach 2.5 было большим и монолитным из-за того, что содержало большое количество кода Berkeley UNIX. А в 1989 году университет Карнеги-Меллона удалил весь код BSD UNIX из ядра и поместил его в пользовательское пространство. То, что осталось, было микроядром, состоящим из чистого кода Mach. Эта версия 3.0 и используется как основа последующих версий OSF. Цели Mach ОС Mach значительно изменилась со времени ее первой реализации в виде RIG. Цели проекта также изменились со временем. На текущий момент основные цели выглядят так: Обеспечение базовых функций для создания других операционных систем (например, UNIX). Поддержка больших разреженных адресных пространств. Обеспечение прозрачного доступа к сетевым ресурсам. Поддержка параллелизма как в системе, так и в приложениях. Обеспечение переносимости Mach на различные типы компьютеров. Основные концепции Mach Микроядро Mach было разработано в качестве основы, на базе которой можно эмулировать UNIX и другие ОС. Эта эмуляция осуществляется программным уровнем, который работает вне ядра, в пользовательском пространстве (рис. 6.1). Следует отметить, что несколько эмуляторов могут работать одновременно, так что можно выполнять программы 4.3BSD, System V и MS-DOS на одной машине в одно и то же время. Ядро Mach, подобно другим микроядрам, обеспечивает управление процессами, управление памятью, коммуникации и функции ввода-вывода. Функции управления файлами, каталогами и другие традиционные для операционных систем функции выполняются в пользовательском пространстве. Идея построения ядра Mach состоит в обеспечении механизмов, необходимых для работы системы, но стратегия использования этих механизмов реализуется на уровне пользовательских процессов. Ядро управляет пятью главными абстракциями: Процессы Нити Объекты памяти Порты Сообщения Рис. 6.1. Абстрактная модель эмуляции UNIX на основе Mach Кроме этого, ядро работает и с некоторыми другими абстракциями, или связанными с указанными, или менее важными. Процесс - это, в основном, среда, в которой происходит выполнение. Он имеет адресное пространство, содержащее текст программы и данные, и обычно один или более стеков. Процесс - это базисная единица для распределения ресурсов. Например, коммуникационный канал всегда принадлежит одному процессу. Нить в Mach является единицей выполнения. Она имеет счетчик команд и набор регистров, связанных с ней. Каждая нить является частью точно одного процесса. Процесс, состоящий из одной нити, подобен традиционному (например, как в UNIX) процессу. Концепцией, уникальной для Mach, является введение понятия объект памяти (memory object), представляющий собой структуру данных, которая может быть отображена в адресное пространство процесса. Объекты памяти занимают одну или несколько страниц и образуют основу для системы управления виртуальной памятью Mach. Когда процесс ссылается на объект памяти, который не представлен в физической памяти, это вызывает страничное прерывание. Как и в других ОС, ядро перехватывает страничное прерывание. Однако в отличие от других систем, ядро Mach для загрузки отсутствующей страницы посылает сообщение серверу пользовательского режима, а не самостоятельно выполняет эту операцию. Межпроцессное взаимодействие в Mach основано на передаче сообщений. Для того, чтобы получить сообщение, пользовательский процесс просит ядро создать защищенный почтовый ящик, который называется порт. Порт хранится внутри ядра и способен поддерживать очередь упорядоченного списка сообщений. Очереди не имеют фиксированной длины, но в целях управления потоком для каждого порта отдельно устанавливается пороговое значение в n сообщений, так что всякий процесс, пытающийся послать еще одно сообщение в очередь длины n, приостанавливается для того, чтобы дать порту возможность очиститься. Процесс может предоставить другому процессу возможность посылать (или получать) сообщения в один из принадлежащих ему портов. Такая возможность реализуется в виде мандата (capability), который включает не только указатель на порт, но и список прав, которыми другой процесс обладает по отношению к данному порту (например, право выполнить операцию ПОСЛАТЬ - SEND). Все коммуникации в Mach используют этот механизм. Сервер Mach BSD UNIX Как уже было сказано выше, разработчики системы Mach модифицировали Berkeley UNIX для работы в пользовательском пространстве в форме прикладной программы. Такая структура имеет несколько преимуществ по сравнению с монолитным ядром. Во-первых, система упрощается за счет разделения на часть, которая выполняет управление ресурсами (ядро), и часть, которая обрабатывает системные вызовы (UNIX-сервер), и ею становится легче управлять. Такое разделение напоминает разделение труда в операционной системе VM/370 мейнфреймов IBM, где ядро эмулирует набор "голых" 370-х машин, на каждой из которых реализована однопользовательская операционная система. Во-вторых, за счет помещения UNIX'а в пользовательское пространство его можно сделать в высокой степени машинно-независимым. Все машинно-зависимые части могут быть удалены из UNIX'а и скрыты внутри ядра Mach. В-третьих, как уже было упомянуто выше, несколько ОС могут работать одновременно. Например, на процессоре Intel 386 Mach может выполнять программу UNIX и программу MS-DOS одновременно. Аналогично возможно одновременное тестирование новой экспериментальной ОС и работа с основной ОС. В-четвертых, в систему могут быть введены операции реального времени, потому что все традиционные препятствия для работы в реальном времени, такие как, например, запрет прерываний на время обновления критических таблиц, могут быть либо исключены, либо перенесены в пользовательское пространство. Ядро может быть тщательно структурировано, для того чтобы не препятствовать работе приложений реального времени. Наконец, такое построение системы может быть использовано для обеспечения лучшей защиты между процессами, если она нужна. Если каждый процесс работает со своей версией UNIX'а, то для одного процесса очень трудно что-либо разузнать о файлах другого процесса. Предыдущая глава || Оглавление || Следующая глава   Размещение рекламы - pr@citforum.ru, ICQ 232284597 Подписка на новости IT-портала CITForum.ru

(библиотека, CITKIT.ru, CitCity) Новые поступления: 17 августа Проблемы сравнения стоимости выполнения запросов Параллельное дежавю или... "эффект Бартини" Создание и тестирование многопоточной программы Обзоры журнала Computer: Игры и образование Возвращение микроядерных операционных систем Как сделать так, чтобы компьютеры не вредили людям Полезны ли толстые клиенты без собственного состояния? 15 августа Транспортные сети мобильных операторов: время переходить на IP Композиции объектов KDE vs GNOME: еще одно размышление на вечную тему Ubuntu Linux: каталог ссылок Acer TravelMate 2403WXCi 8 августа Распределение нагрузки на WEB приложения Модуль mod_dav. Архитектура модуля ZenWalk-2, или еще раз о Дзэн-буддистском Linux'е Собери свой Ubuntu Настройка WMII3 Ion3: положительный wm 1 августа CitCity: Microsoft поворачивается лицом к управлению документами – «на запах» больших денег? Суета вокруг Apple Электронные деньги: миф или реальность Соединяем 25 июля CitCity: Автоматизация хаоса, или зачем нужны системы электронного документооборота Ядрена мощь (краткий обзор прессы о новых процессорах Intel) Угроза стабильности Евросоюза (об отношениях Еврокомиссии и Microsoft) Интеллектуальная видеосеть Корпоративная сетевая архитектура будущего О роли сетевых технологий в здравоохранении XXI века 18 июля CitCity: Кто заплатит за свободу? "Цифровой дом" на колесах Приобретение средств data mining: как избежать ошибок при создании системы прогнозной аналитики Как начать внедрение технологии data mining, не теряя ее ценных возможностей Инструменты data mining: что лучше выбрать? Нормативное регулирование IT-безопасности 13 июля Технологии виртуализации: вчера, сегодня, завтра Программные решения для выявления и предотвращения утечек конфиденциальных данных Рынок 3D-акселераторов: закат или трансформация? Калифорнийское яблоко оказалось "антоновкой" Спутниковые навигационные системы GPS и ГЛОНАСС 11 июля "Двойной" Centrino (обзор ноутбуков) Индустриальное распространение SAS Serial Attached SCSI - время пришло? Серверное противостояние Платформа для ERP Управление электропитанием: когда вы последний раз заходили в серверную? CitCity: У Питона ожидается прибавление семейства 6 июля Мой офис - моя крепость (о политиках безопасности) Сетевой швейцарский нож (беспроводной роутер BR-6114Wg) Linspire: уже не Linux, но еще не Windows Простая почтовая система с защитой от вирусов и спама (FreeBSD+ClamAV) Kubuntu Dapper. Кратко о доводке 4 июля Критерии полноты тестового покрытия в генетических алгоритмах генерации тестов Паттерны проектирования тестовых сценариев Анализ и трансформации исполняемых UML моделей Использование ролей в сценариях взаимодействия Интегрированная среда описания системы команд встраиваемых процессоров 29 июня Метод виртуального процессора в защите программного обеспечения Генерация тестовых данных сложной структуры с учетом контекстных ограничений Open Source: MEPIS, или Linux под сенью пирамид email-ng (о почтовой программе imapfilter) 27 июня Использование параллелизма на уровне команд в компиляторе для Intel Itanium Разреженная модель базовых блоков для оптимизации потоков команд Разработка системной поддержки вызова программ, реализованных на языке Fortran, из среды Java 22 июня Раскрутка и оптимизация сайта - краткий курс Автоматическая генерация тестовых данных для оптимизаторов графических моделей Применение технологии UniTesK для тестирования систем с различной конфигурацией активных потоков управления Использование информации о линейных зависимостях для обнаружения уязвимостей в исходном коде программ Архив новостей >>>

IT-консалтинг Software Engineering Программирование Open Source СУБД Безопасность Internet Сети Операционные системы Hardware Информация для рекламодателей PR-акции, размещение рекламы - pr@citforum.ru, тел. +7 495 4119920, ICQ 232284597 Пресс-релизы - manager@citforum.ru Послать комментарий

Информация для авторов This Web server launched on February 24, 1997

Copyright © 1997-2000 CIT, © 2001-2005 CIT Forum Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...

Соседние файлы в папке sos