Как чертик из коробочки::Журнал СА 2.2004
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Книжная полка  

Защиты много не бывает

Среди книжных новинок издательства «БХВ» есть несколько изданий, посвященных методам социальной инженерии

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6470
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7169
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4445
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3097
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3895
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3912
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6402
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3245
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3543
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7382
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10737
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12460
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14128
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9209
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7151
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5458
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4691
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3507
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3218
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3457
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3104
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Как чертик из коробочки

Архив номеров / 2004 / Выпуск №2 (15) / Как чертик из коробочки

Рубрика: Администрирование /  Продукты и решения

ВАЛЕНТИН СИНИЦЫН

Как чертик из коробочки

Если вам в детстве посчастливилось иметь «бытовой компьютер» (БК-0010, ZX Spectrum, «Корвет», ATARI и т. д.), то вы наверняка знакомы с программами-эмуляторами, основная задача которых – шаг за шагом интерпретировать инструкции «чужого» процессора, имитировать работу периферийных устройств (монитора, клавиатуры, дисковода) с тем, чтобы на IBM PC можно было запустить программы, разработанные для других аппаратных архитектур. Однако что мешает создать для IBM PC эмулятор IBM PC?

Ответ прост – ничего! Более того, проект по его написанию был начат еще в 1994 году Кевином Лоутоном (Kevin Lawton). В течение 6 лет Bochs (произносится как английское «box» – коробка) распространялся как традиционный «закрытый» продукт (правда, желающие могли приобрести его исходные коды), но в 2000 году он был куплен компанией MandrakeSoft и лицензирован по LGPL (GNU Lesser General Public License). В настоящий момент сайт проекта Bochs расположен по адресу: http://bochs.sourceforge.net.

С пользовательской точки зрения Bochs похож на VMWare: он также позволяет запустить на одном компьютере несколько операционных систем и «переключаться» между ними по мере необходимости. С технической точки зрения имеется существенное различие: Bochs не использует технологий виртуализации и динамической трансляции (иными словами, он именно интерпретирует инструкции процессора, а не исполняет куски кода в native-режиме), что, с одной стороны, позволяет ему работать на платформах, отличных от x86 (в настоящий момент кроме x86 поддерживаются PPC, Alpha, Sun и MIPS), а с другой – означает меньшую скорость эмуляции (фактически, сравнительно невысокая производительность Bochs является одним из его самых существенных минусов). Виртуальная машина с открытым исходным кодом Plex86 (http://www.plex86.org), использующая виртуализацию, находится сейчас в стадии разработки. Однако она не является полным аналогом VMWare, поскольку поддерживает в качестве гостевой ОС только Linux. Bochs сам по себе является кросс-платформенным приложением: в роли так называемой «хост-системы» для него может выступать Linux, различные варианты BSD, Mac OS X, Microsoft Windows, а также BeOS и Amiga/MorphOS. «Гостевой ОС» (системой, работающей в эмуляторе) теоретически может быть все, что угодно. На сайте проекта можно найти дисковые образы для большинства систем с открытым исходным кодом: Linux, OpenBSD, FreeDOS, GNU/Hurd, и даже Minix. Операционные системы семейства Microsoft Windows также успешно работают в Bochs, но, по вполне понятным причинам, их образы не могут быть расположены в свободном доступе.

Прежде чем переходить к обсуждению возможностей Bochs, ответим на один простой вопрос: зачем он вообще нужен? В случае с эмуляторами ZX-Spectrum все ясно – они позволяют вдохнуть новую жизнь в старые добрые игры. Естественно, никто не запрещает использовать Bochs и в этих целях. Его часто применяют для запуска игр, написанных под DOS, а запуском в Bochs старых версий Linux даже занимается специальный проект «История Linux» (http://www.linuxcenter.ru/history). Но, конечно, у Bochs есть и другие области применения. Так, его очень удобно использовать для знакомства с новыми ОС и в качестве полигона для различных экспериментов над ними. Bochs позволяет избежать малоприятной процедуры переразбиения жесткого диска и уменьшает опасность потери данных, сопутствующую опытам над реальными системами. Кроме того, при помощи Bochs можно выполнять приложения Win32 в Linux (и наоборот). Правда, для этого потребуется лицензионная копия ОС и место для хранения дискового образа. Отметим, что Bochs эмулирует работу оборудования, а не конкретной операционной системы (для этого есть dosemu, WINE и т. п.), поэтому в нем работают программы, использующие недокументированные возможности и прочие «трюки». Отдельная (и весьма специфичная) сфера применения Bochs – отладка ядер операционных систем (о возможностях встроенного отладчика Bochs – чуть ниже). И наконец, при помощи Bochs можно запускать приложения, написанные для x86, на других аппаратных платформах.

Возможности Bochs

Bochs эмулирует IBM-совместимый компьютер класса Pentium (имеется частичная поддержка Pentium Pro, набора инструкций MMX, а начиная с версии 2.1pre1 – SSE и AMD 3DNow!), к которому можно «подключить»:

  • Видеоадаптер VGA/SVGA. Разрешение – вплоть до 1024x768x32bpp (для Bochs 2.1pre1) или 1024x768x8bpp (для более ранних версий).
  • 3.5/5.25-дюймовый дисковод. В качестве дискеты может использоваться файловый образ, а в UNIX/Windows 2000 – реальный привод.
  • Жесткий диск объемом до 32 Гб – в форме файлового образа. Начиная с версии 2.1pre1, Bochs поддерживает простые (flat), «разреженные» (sparse) и «растущие» (growing) образы, а также умеет откатывать (rollback) сделанные в них изменения. В Unix имеется возможность работы с реальным жестким диском (посредством файлов блочных устройств /dev/hd*), однако этого не рекомендуется делать по соображениям безопасности.
  • Привод ATAPI-4/IDE CDROM – «компакт-диск» может быть представлен своим ISO-образом или вставлен в реальный привод.
  • Клавиатуру PS/2 и двухкнопочную мышь PS/2.
  • NE2000-совместимую сетевую карту, с помощью которой гостевая ОС может связываться с другими машинами в своей локальной сети или даже выходить в Интернет.
  • Звуковую карту, совместимую с SoundBlaster 16. В Linux, FreeBSD и Windows возможна работа с аудиоплатой хост-системы.
  • Параллельный и последовательный порты. Вывод может перенаправляться в файл или на физическое устройство (только в UNIX).

Кроме этого, Bochs поддерживает подключаемые модули-«плагины» (только в UNIX и Cygwin, в форме плагинов, например, могут быть выполнены дополнительные устройства) и загрузку со всех доступных типов носителей (Floppy, HDD, CD-ROM), имитирует шину PCI (в рамках Host-to-PCI bridge и Primary Memory Controller), USB (только корневой разветвитель), SMP (Bochs может эмулировать до 15 процессоров, но в данный момент никак не использует физическую многопроцессорность хост-системы). Реализация сетевой карты в Unix-версиях Bochs имеет одну забавную особенность: в ряде случаев гостевая ОС не может связываться по сети с хост-системой. Для решения этой проблемы используются TUN/TAP-интерфейсы. Для работы с сетью в Windows требуется дополнительная библиотека WinPcap (http://winpcap.polito.it), которая также распространяется свободно. На всех платформах (кроме Amiga) Bochs работает в оконном (не полноэкранном) режиме. Пример окна Bochs с запущенным в нем MCC Interim Linux можно увидеть на рисунке.

Рисунок 1

Из этих «кирпичиков» можно собирать систему, удовлетворяющую требованиям конкретной задачи: указать объем оперативной памяти, настроить быстродействие (естественно, гостевая ОС в любом случае будет работать медленнее, чем в native-режиме), подобрать аппаратную конфигурацию и т. д. По умолчанию Bochs стремится работать c как можно большей скоростью, что, к сожалению, имеет свой побочный эффект – «ускорение времени» (часы в гостевой ОС начинают идти быстрее, чем в хост-системе). Во избежание этого их можно принудительно синхронизировать, правда, эта функция до сих пор помечена как «экспериментальная».

Настройка Bochs производится до запуска путем редактирования конфигурационного файла и во время работы – через пользовательский интерфейс. В большинстве случаев вам придется довольствоваться текстовым интерфейсом (рисунок в низу), хотя Bochs можно собрать с поддержкой кросс-платформенной GUI-библиотеки wxWindows (http://www.wxwindows.org).

Рисунок 2

Весьма интересной частью Bochs является также встроенный отладчик командной строки. Данный инструмент позволяет прерывать работу гостевой ОС в произвольный момент времени, изучать содержимое регистров процессора и памяти, назначать точки останова («breakpoints2) и т. п. Это может быть полезно разработчикам операционных систем, а также всем желающим поглубже разобраться с их устройством (например, при занятии reverse engineering).

Ложка дегтя

Древнегреческий философ Платон утверждал, что осязаемые нами вещи есть суть отражения их безупречных идей. Это в полной мере относится и к программному обеспечению. Никакой продукт не свободен от недостатков, и Bochs не исключение.

Первый, и он же основной минус виртуальной машины – это скорость работы. Bochs не слишком хорошо подходит для динамичных 3D-игр, просмотра видео и тому подобных вещей. Конечно, скорость эмуляции в каждом конкретном случае определяется возможностями хост-системы.

Второй, менее очевидный недостаток – это тип поддерживаемых устройств. Bochs (в той или иной степени) имитирует практически всю периферию, но только стандартные («generic») модификации. В этом нет ничего плохого, но иногда возникает желание понаблюдать за поведением системы при использовании вполне конкретного оборудования. Так, при работе над уже упоминавшейся «Историей Linux» мы столкнулись со следующей проблемой: ранние версии сервера XFree86, которые включены в большинство старых дистрибутивов Linux, не поддерживали VESA-режимы, зато неплохо работали с видеокартами S3, Trident и т. п. Если бы Bochs имитировал работу какого-либо из этих адаптеров, мы смогли бы запустить X Window System в достаточно высоком разрешении и с хорошей глубиной цвета. В реальности же пришлось довольствоваться видеорежимом 640x480x4, что, бесспорно, лучше, чем ничего, но все же не совсем то, что хотелось бы. Радует, что данную проблему можно решить, не модифицируя исходный код Bochs, а именно путем написания соответствующего плагина. Однако при моделировании реально существующего оборудования возникают также некоторые юридические аспекты (не все производители hardware открыто публикуют свои спецификации), обсуждение которых выходит за рамки данной статьи.

Подведем итоги. Bochs – не слишком известный, но весьма полезный инструмент, распространяющийся свободно вместе с исходным кодом. Продукт имеет официальный статус «Beta», однако, как показывает практика, он вполне стабилен и может оказать помощь при решении большинства задач. Это, безусловно, не панацея от проблем, возникающих при обновлении и настройке компьютерных систем, но средство сделать все необходимые операции «малой кровью».


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru