Централизованный контроллер против виртуального: пришло ли время выбирать? Виртуальные контроллеры Service Console и VMkernel.

11.05.2019

Oculus Touch в продаже уже 2 месяца, и пора делать какие-то выводы. Как мы считаем, стал более мощной платформой виртуальной реальности, чем когда-либо прежде.

Touch не так просто стать успешными. Главный конкурент Рифта, на протяжении года был единственной VR гарнитурой для PC, со своими контроллерами для отслеживания движений рук. Теперь, Touch имеет возможность сравнять счет и сделать Oculus наиболее убедительным VR устройством на планете.

Давайте выясним, стали ли контроллеры от Oculus главным провалом компании, или же, наоборот, лучшим их решением.

Настройка

Настройка всегда была областью, в которой Oculus выигрывает. Несколько кликов в меню настроек и вы получаете вариант «добавить Touch» в раскрывающемся меню. После запуска, вам предлагается к просмотру очень полезный, анимированный туториал по настройке. Синхронизация беспроводных контроллеров с ПК очень простая — нужно зажать по кнопке на каждом контроллере менее чем на 30 секунд.

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

В большинстве случаев вы можете перейти от открытия контроллеров, до их использования, менее чем за пять минут, если сама гарнитура Rift уже готова к работе.

Туториал

После того, как вы закончили установку, вам предложиться туториал для Oculus Touch. Туториал состоит из двух простеньких игрушек, каждая из которых предназначена, чтобы вы привыкли к разнообразным возможностям ваших новых контроллеров.

Первым делом, вы окажетесь в эфирной бело-серой среде, в которой приятный женский голос расскажет вам про основные возможности Touch. Этот невидимый рассказчик покажет как использовать уникальные кнопки, аналоговые стики и так далее. Как только вы доказали вашему всевидящему наставнику, что можете манипулировать каждым контроллером, вы телепортируетесь в следующий туториал, где все становится по-настоящему интересно.

First Contact — это первый VR опыт, в котором можно будет должным образом оценить контроллеры Touch. Он бросает вас в научно-фантастическкую гостиную 80-ых, где находиться ваш собственный робот. Хотя First Contact проходится всего за пять минут, но учит всему необходимому: как бросать, хватать, размахивать, перестреливаться и так далее.

В целом, First Contact — хорошо продуманный туториал, который объяснит все даже самому неопытному новичку в виртуальной реальности. И он делает это со стилем.

Функциональность

Функциональность и эргономичность являются областями, где Oculus Touch заставляет своих конкурентов краснеть. Touch может сделать все, что контроллеры HTC Vive или PlayStation Move, и даже больше.

Так же, как палочки Vive, Touch позволяет подобрать виртуальные объекты с помощью кнопки сбоку, стрелять при помощи триггера, а вместо сенсорной панели палочек Vive, Touch предлагает несколько аналоговых стиков.

Touch является первым коммерчески доступным VR контроллером, включающим средства управления на основе движений пальцев. В основном, управление ограничивается подниманием большого м и указательного пальца, но варианты использования этих естественных жестов в различных игровых и социальных приложениях удивительно разнообразны. Например, вместо того, чтобы протягивать полную руку к кнопке лифта, теперь вы можете сделать это указательным пальцем, чтобы выбрать конкретную кнопку так же, как и в реальной жизни. Или, вы можете показать другу свое удовлетворение, подняв большие пальцы вверх во время перестрелки с зомби в кооперативе.

Возможность выполнять такие простые вещи может не вызвать удивления, но на самом деле это делает Touch очень ценным контроллером в отрасли.

Эргономика

Эргономичный дизайн контроллеров Touch не что иное, как шедевр. Эти маленькие красавицы настолько невероятно легкие и хорошо продуманы, что они просто тают в ваших руках. Они позволяют забыть о внешнем мире, и это именно то, что хочется для VR.

Из-за намеренно созданных формы и дизайна Touch, стрельба чувствуется очень реалистично и естественно. Другие контроллеры VR позволяют почувствовать, как палочки в руках становятся виртуальными объектами, но Touch дает почувствовать, как вы подбираете виртуальный объект сам по себе.

Триггеры, кнопки и аналоговые стики очень приятны. У них достаточно сопротивления, чтобы дать вам хорошую тактильную обратную связь, но не настолько, чтобы утомить ваши пальцы, когда вы стреляете либо совершаете любые другие вещи с контроллерами в течение длительных периодов времени.

Тактильная обратная связь Touch также впечатляет. Вибрация контроллеров способна обеспечить тонкие толчки, когда вы подбираете пулемет, и хорошо поколотить, когда вы начинаете стрелять из него. Единственный недостаток в том, что они являются шокирующе громкими для контроллеров их размера. Это не является проблемой, когда на вас надеты встроенные наушники Oculus, но мешает соседям по комнате.

Поведение

Это хитрая категория для оценки, когда речь идет про Touch. Поведение этих контроллеров непосредственно связано с работой самой позиционной системы слежения Oculus. Датчики Oculus размещены не только на гарнитуре, но также на контроллерах. До тех пор пока датчики могут «видеть» контроллеры, они работают абсолютно прекрасно. Проблема, однако, заключается в том, что датчики иногда «забывают свои очки». Когда датчики не установлены должным для полного охвата образом, отслеживание теряется и контроллеры исчезают. Этого не произошло, когда мы строго следовали инструкции Oculus, но что-то может пойти не так, если не установить датчики правильно.

В итоге, если у вас есть пространство и ресурсы для запуска идеальной установки, с датчиками, расположенными так, как Oculus рекомендует, тогда вы, вероятно, не будете иметь никаких проблем с Touch. Если вы можете раскошелиться на три камеры и , то еще лучше. Тем не менее, если вы попытаетесь использовать Touch с меньшим пространством, то поиск «сладкого пятна» без мертвых зон может занять некоторое время.

Контент

Как всегда, Oculus и доллары Facebook проделали невероятную работу в наполнении библиотеки для запуска Touch. Dead and Buried, Ripcoil и The Unspoken являются одними из лучших многопользовательских , которые мы видели до сих пор. Quill, Medium и позволяют побывать творцом захватывающем 3D искусства. Конечно же, есть еще Arizona Sunshine, I Expect You to Die, и Job Simulator, которые отлично играются с Touch.

Есть более 50 игр, поддерживающих контроллер Touch, доступных в Oculus Home Store. Это уже неплохая библиотека, но данный длинный список удивительных тайтлов это только начало. Не говоря уже о всех Steam VR играх, которые тоже иногда поддерживают Touch, хоть и с ошибками.

Окончательный вердикт

Oculus Touch — лучший VR контроллер на сегодняшний день.

Его дизайн как можно ближе приближен к идеальному, а контента в Oculus Home и Steam достаточно, чтобы держать человека в пленену в течение нескольких месяцев. Контроллеры отлично работают в рекомендуемых условиях, а их система управления движениями пальцев должна быть стандартом для всей отрасли.

Touch является важным шагом вперед для VR, и мы не могли не удивиться, когда увидели их конструкцию и основные характеристики. Конечно, Touch — еще не предел, и со временем мы надеемся получить что-то еще лучше!

Когда вы в окне Менеджера выберете виртуальную машину из списка, вы увидите сводку настроек этого виртуального компьютера.

Нажав кнопку «Настройки » на панели инструментов вверху, вы увидите подробное окно, в котором вы можете настроить многие свойства выбранной виртуальной машины. Но будьте осторожны: несмотря на то, что после установки гостевой операционной системы можно изменить все настройки виртуальной машины, некоторые изменения могут помешать правильной работе гостевой операционной системы, если это будет сделано после установки.

Примечание : Кнопка «Настройки » отключена, когда виртуальная машина находится в «запущенном » или «сохраненном » состоянии. Это просто потому, что в диалоговом окне настроек вы можете изменить основные характеристики виртуального компьютера, созданного для вашей гостевой операционной системы, и эта операционная система может не очень хорошо справиться, когда, например, половина ее памяти уйдёт у неё из под ног. В результате, если кнопка «Настройки » отключена, сначала выключите текущую виртуальную машину, а затем вы сможете выполнить желаемые настройки.

VirtualBox предоставляет множество параметров, которые можно изменить для виртуальной машины. Еще больше параметров доступно с интерфейсом командной строки VirtualBox.

Общие настройки

В окне «Настройки » в разделе «Общие » вы можете настроить наиболее фундаментальные аспекты виртуальной машины, такие как память и необходимое аппаратное обеспечение. Есть четыре вкладки: «Основные », «Дополнительно », «Описание » и «Шифрование ».

Вкладка «Основные»

На вкладке «Основные » категории «Общие » вы можете найти следующие настройки:

Это то имя, с которым виртуальная машина отображается в списке виртуальных машин в главном окне. Под этим именем VirtualBox также сохраняет файлы конфигурации виртуальной машины. Изменяя имя, VirtualBox также переименовывает эти файлы. В результате вы можете использовать только те символы, которые разрешены в именах файлов вашей операционной системы хоста.

Обратите внимание, что внутри VirtualBox использует уникальные идентификаторы (UUID) для идентификации виртуальных машин. Вы можете отобразить их с помощью VBoxManage.

Операционная система / версия

Тип гостевой операционной системы, которая установлена (или будет) ​​в виртуальной машине. Это тот же параметр, который был указан в мастере «Новая виртуальная машина», как описано в разделе « ».

В то время как в мастере создания новой виртуальной машины настройки по умолчанию для вновь созданной виртуальной машины зависят от выбранного типа операционной системы, дальнейшее изменение типа не влияет на настройки виртуальной машины; это значение что настройки в данной панели является чисто информационными и декоративными.

Вкладка «Дополнительно»

Папка для снимков

По умолчанию VirtualBox сохраняет данные моментального снимка вместе с другими данными конфигурации VirtualBox. С помощью этого параметра вы можете указать любую другую папку для каждой виртуальной машины.

Общий буфер обмена

Здесь вы можете выбрать, должен ли совместно с вашим хостом использоваться общий доступ к буферу гостевой операционной системы. Если вы выберете «Двунаправленный », то VirtualBox всегда будет следить за тем, чтобы оба буфера обмена содержали одни и те же данные. Если вы выберете «Из основной в гостевую ОС » или «Из гостевой в основную ОС », то VirtualBox будет копировать данные буфера обмена только в одном направлении.

Для совместного использования буфера обмена необходимо установить гостевые дополнения VirtualBox. В противном случае эта настройка не имеет никакого эффекта.

Общий буфер обмена по умолчанию отключен. Этот параметр можно изменить в любое время, используя пункт меню «Общий буфер обмена » в меню «Устройства » виртуальной машины.

Функция Drag and Drop (Перетаскивание)

Этот параметр позволяет включить поддержку перетаскивания: выберите объект (например, файл) с хоста или гостя и непосредственно скопируйте или откройте его на гостевой или хост-машине. Несколько режимов перетаскивания по каждой виртуальной машине позволяют ограничить доступ в любом направлении.

Для работы перетаскивания на гостевом компьютере должны быть установлены гостевые дополнения.

Примечание : По умолчанию перетаскивание отключено. Этот параметр можно изменить в любое время, используя пункт меню «Drag and Drop » в меню «Устройства » виртуальной машины.

Вкладка «Описание»

Здесь вы можете, если хотите, ввести любое описание своей виртуальной машины. Это не влияет на функциональность компьютера, но вы можете найти это пространство полезным, чтобы отметить такие вещи как конфигурация виртуальной машины и программного обеспечения, которое было установлено в неё.

Чтобы вставить разрыв строки в текстовое поле описания, нажмите Shift+Enter .

Вкладка «Шифрование»

Если стоит галочка, эта виртуальная машина будет зашифрована. Вам нужно выбрать алгоритм, которым будут зашифрованы диски виртуальной машины, а также ввести, а затем подтвердить пароль шифрования.

Системные настройки

Группа «Система » объединяет различные параметры, связанные с основным оборудованием, которое представлено виртуальной машине.

Примечание : Поскольку механизм активации Microsoft Windows чувствителен к изменениям в аппаратном обеспечении, если вы меняете настройки оборудования для гостя Windows, некоторые из этих изменений могут инициировать запрос на активацию в Microsoft.

Вкладка «Материнская плата»

На вкладке «Материнская плата » вы можете влиять на виртуальное оборудование, которое обычно находится на материнской плате реального компьютера.

Основная память

Эта опция устанавливает объем ОЗУ, который выделяется и передается виртуальной машине при ее запуске. Указанный объем памяти на время работы виртуальной машины будет забираться у физического компьютера и передаваться виртуальному. Следовательно, в момент работы виртуальной машины у вашего основного компьютера количество оперативной памяти уменьшиться на эту величину. Это тот же параметр, который был указан в мастере «Новая виртуальная машина», как описано выше в разделе « ».

Изменение памяти не должно вызвать проблем в гостевой машины, конечно, если вы не установите слишком маленькое значение, при котором она не будет загружаться.

Порядок загрузки

Этот параметр определяет порядок, в котором гостевая операционная система будет пытаться загружаться с различных виртуальных загрузочных устройств. Аналогично настройке BIOS реального ПК, VirtualBox может сообщить гостевой ОС, что она запускается с виртуальной дискеты, виртуального CD/DVD-привода, виртуального жесткого диска (каждый из них определяется другими настройками VM), сети или ни с кого из них.

Если вы выберете «Сеть », виртуальная машина попытается загрузить из сети через механизм PXE, который должен быть настроен.

Чипсет

Здесь вы можете выбрать, какой набор микросхем будет представлен виртуальной машине. До VirtualBox 4.0 PIIX3 был единственным доступным вариантом. Для современных гостевых операционных систем, таких как Mac OS X, этот старый набор микросхем больше не поддерживается. В результате VirtualBox 4.0 представил эмуляцию более современного набора микросхем ICH9, который поддерживает PCI Express, три шины PCI, мосты PCI-to-PCI и сообщения с сигналами прерывания (MSI). Это позволяет современным операционным системам адресовать больше устройств PCI и больше не требует обмена IRQ. Используя чипсет ICH9, также можно настроить до 36 сетевых карт (до 8 сетевых адаптеров с PIIX3). Обратите внимание, что поддержка ICH9 является экспериментальной и не рекомендуется для гостевых операционных систем, которые ее не требуют.

Манипулятор курсора

По умолчанию виртуальные указательные устройства для древних гостей - это традиционная мышь PS/2 . Если этот параметр установлен на планшет USB , VirtualBox сообщает виртуальной машине, что устройство планшета USB присутствует, и передает события мыши на виртуальную машину с помощью этого устройства. Третья настройка - USB Multi-Touch планшет , которая подходит для последних гостей Windows.

Использование виртуального USB-планшета имеет то преимущество, что движения сообщаются в абсолютных координатах (вместо относительных изменений положения), что позволяет VirtualBox транслировать события мыши над окном VM в события планшета без необходимости «захвата» мыши в гостевой системе как описанный в разделе « ». Это делает использование VM менее утомительным, даже если гостевые дополнения не установлены.

Включить APIC I/O APIC

Расширенные программируемые контроллеры прерываний (APIC) - это новейшая аппаратная функция x86, которая в последние годы заменила программируемые контроллеры прерываний старого типа (ПОС). С APIC ввода-вывода операционные системы могут использовать более 16 запросов прерываний (IRQ) и, следовательно, избегать обмена IRQ для повышения надежности.

Примечание : Включение I/O APIC требуется для 64-разрядных гостевых операционных систем, особенно Windows Vista; это также необходимо, если вы хотите использовать более одного виртуального процессора на виртуальной машине.

Однако поддержка программного обеспечения для APIC I/O была ненадежной с некоторыми операционными системами, отличными от Windows. Кроме того, использование APIC ввода-вывода немного увеличивает накладные расходы на виртуализацию и, следовательно, немного замедляет гостевую ОС.

Предупреждение : Все операционные системы Windows, начиная с Windows 2000, устанавливают разные ядра в зависимости от того, доступен ли APIC I/O. Как и в случае с ACPI, APIC I/O APEC не следует отключать после установки гостевой ОС Windows. Включение его после установки не будет иметь никакого эффекта.

Включить EFI

Это позволяет использовать Extensible Firmware Interface (EFI), который заменяет устаревший BIOS и может быть полезен для некоторых расширенных вариантов использования.

Часы в системе UTC

Если галочка стоит, часы вашего хоста отобразят время по шкале всемирного координирования времени (UTC), иначе будет отображено локальное время хоста. Unix-подобные системы обычно придерживаются системы UTC.

Если флажок установлен, VirtualBox сообщит гостю системное временя в формате UTC вместо локального (хоста) времени. Это влияет на работу виртуальных часов реального времени (RTC) и может быть полезно для Unix-подобных гостевых операционных систем, которые обычно ожидают, что аппаратные часы будут установлены на UTC.

Кроме того, вы можете отключить интерфейс расширенной конфигурации и мощности (ACPI), который VirtualBox представляет гостевой операционной системе по умолчанию. ACPI - это текущий отраслевой стандарт, позволяющий операционным системам распознавать оборудование, настраивать материнские платы и другие устройства и управлять ими. Поскольку все современные ПК содержат эту функцию, а Windows и Linux уже много лет поддерживают ее, она также включена по умолчанию в VirtualBox. Её можно отключить только в командной строке.

Предупреждение : Все операционные системы Windows, начиная с Windows 2000, устанавливают разные ядра в зависимости от того, доступен ли ACPI, поэтому ACPI нельзя отключать после установки гостевой ОС Windows. Включение его после установки не будет иметь никакого эффекта.

Вкладка «Процессор»

На вкладке «Процессор » вы можете указать, сколько виртуальных ядер процессора должны видеть гостевые операционные системы. Начиная с версии 3.0, VirtualBox поддерживает симметричную многопроцессорность (SMP) и может представлять до 32 виртуальных ядер процессора для каждой виртуальной машины.

Однако вам не следует настраивать виртуальные машины для использования большего количества ядер процессора, чем у вас есть физически (реальные ядра, без гиперпотоков).

На этой вкладке вы также можете установить «Предел загрузки ЦПУ ». Этот параметр ограничивает время, затрачиваемое процессором хоста для эмуляции виртуального процессора. Значение по умолчанию 100% означает, что ограничений нет. Параметр 50% подразумевает, что один виртуальный процессор может использовать до 50% одного центрального процессора. Обратите внимание, что ограничение времени выполнения виртуальных процессоров может вызвать проблемы с гостями.

Кроме того, параметр «Включить PAE/NX » определяет, будут ли возможности PAE и NX центрального процессора находиться на виртуальной машине. PAE означает «расширение физического адреса». Обычно, если он включен и поддерживается операционной системой, тогда даже 32-разрядный процессор x86 может получить доступ к более 4 ГБ ОЗУ. Это стало возможным благодаря добавлению ещё 4 бит в адреса памяти, так что с 36 битами можно использовать до 64 ГБ. Некоторые операционные системы (например, Ubuntu Server) требуют поддержки PAE от CPU и не могут без неё работать в виртуальной машине.

Если вы используете 32-битный образ Kali Linux, включите PAE/NX или образ Kali не загрузится, поскольку дефолтный вариант ядра, используемый Kali для i386 (“686-pae”), скомпилирован таким образом, который требует поддержки «расширения физического адреса» (PAE) в CPU.

С виртуальными машинами, работающими на современных серверных операционных системах, VirtualBox также поддерживает горячее подключение CPU.

Вкладка «Ускорение»

На этой странице вы можете определить, должен ли VirtualBox использовать аппаратные расширения виртуализации, которые может поддерживать ваш хост-процессор. Это относится к большинству процессоров, построенных после 2006 года.

Вы можете выбрать для каждой виртуальной машины индивидуально, нужно ли VirtualBox использовать виртуализацию программного обеспечения или оборудования.

В большинстве случаев настройки по умолчанию будут прекрасными; VirtualBox будет выбирать разумные значения по умолчанию в зависимости от операционной системы, которую вы выбрали при создании виртуальной машины. Однако в некоторых ситуациях вы можете изменить эти предварительно настроенные значения по умолчанию.

Если процессор вашего хоста поддерживает функции вложенного пейджинга (AMD-V) или EPT (Intel VT-x), вы можете ожидать значительного увеличения производительности за счет включения вложенного пейджинга в дополнение к аппаратной виртуализации.

Начиная с версии 5.0, VirtualBox предоставляет интерфейсы паравиртуализации, чтобы улучшить точность и производительность гостевых операционных систем.

Дисплей (Настройки отображения)

Вкладка «Экран»

Размер видеопамяти

Это задает размер памяти, предоставляемой виртуальной видеокартой, доступной гостю, в МБ. Как и в основной памяти, указанная сумма будет выделена из резидентной памяти хоста. На основе количества видеопамяти могут быть доступны более высокие разрешения и глубина цвета.

GUI покажет предупреждение, если объем видеопамяти слишком мал чтобы переключить виртуальную машину в полноэкранный режим. Минимальное значение зависит от количества виртуальных мониторов, разрешения экрана и глубины цвета дисплея хоста, а также от активации 3D-ускорения и ускорения 2D-видео. Грубая оценка: (глубина цвета / 8) x вертикальные пиксели x горизонтальные пиксели x количество экранов = количество байтов . Как указано выше, может потребоваться дополнительная память для любой активированной настройки ускорения дисплея.

Количество мониторов

С помощью этого параметра VirtualBox может предоставить более одного виртуального монитора виртуальной машине. Если гостевая операционная система (например, Windows) поддерживает несколько подключенных мониторов, VirtualBox может притворяться, что присутствуют несколько виртуальных мониторов. Поддерживается до 8 таких виртуальных мониторов.

Вывод нескольких мониторов будет отображаться на хосте в нескольких окнах VM, которые работают бок о бок.

Однако в полноэкранном и режиме интеграции экрана будут использоваться доступные физические мониторы, подключенные к хосту. В результате для работы в полноэкранном режиме и режиме интеграции экрана с несколькими мониторами вам понадобится как минимум столько же физических мониторов, сколько у вас настроенных виртуальных мониторов, или VirtualBox сообщит об ошибке. Вы можете настроить связь между гостевыми и хост-мониторами с помощью меню просмотра, нажав сочетание «Хост» + «HOME» , когда вы находитесь в полноэкранном или режиме интеграции экрана.

Включить 3D-ускорение

Если на виртуальной машине установлены гостевые дополнения, вы можете выбрать здесь, должен ли гость поддерживать ускоренную 3D-графику.

Включить 2D-видео ускорение

Если на виртуальной машине с Microsoft Windows установлены гостевые дополнения, вы можете выбрать здесь, должен ли гость поддерживать ускоренную 2D-графику.

Вкладка «Удалённый доступ»

Удаленный дисплей

На вкладке «Дистанционный доступ », если установлено расширение виртуального дисплея VirtualBox (VRDE), вы можете включить сервер VRDP, встроенный в VirtualBox. Это позволяет удаленно подключаться к консоли виртуальной машины с помощью любого стандартного средства просмотра RDP, такого как mstsc.exe , который поставляется с Microsoft Windows. В системах Linux и Solaris вы можете использовать стандартную программу rdesktop с открытым исходным кодом.

Вкладка «Захват видео»

На вкладке «Захват видео » вы можете включить видеозахват для этой виртуальной машины. Обратите внимание, что эта функция также может быть включена/отключена во время выполнения виртуальной машины.

Настройки Носителей

На реальном ПК так называемые «контроллеры хранения» подключают физические диски к остальной части компьютера. Аналогично, VirtualBox предоставляет виртуальные контроллеры виртуальной машины на виртуальную машину. Под каждым контроллером отображаются виртуальные устройства (жесткие диски, CD/DVD или флоппи-дисководы), подключенные к контроллеру.

Примечание : Если вы использовали мастер «Создать виртуальную машину » для создания машины, вы обычно увидите что-то вроде следующего:

В зависимости от типа гостевой операционной системы, который вы выбрали при создании виртуальной машины, типичная компоновка устройств хранения в новой виртуальной машине выглядит следующим образом:

  • Вы увидите контроллер IDE , к которому подключен виртуальный CD/DVD-привод (к порту «вторичный мастер » контроллера IDE).
  • Вы также увидите контроллер SATA , который является более современным типом контроллера хранения для увеличения пропускной способности жесткого диска, к которому прикреплены виртуальные жесткие диски. Первоначально у вас обычно будет один такой виртуальный диск, но, может быть более одного, каждый из которых представлен файлом образа диска (в этом случае файл VDI).

Если вы создали свою виртуальную машину с более старой версией VirtualBox, макет хранилища по умолчанию может отличаться. Тогда у вас может быть только IDE-контроллер, к которому подключены CD/DVD-привод и жесткие диски. Это может также применяться, если вы выбрали более старый тип операционной системы при создании виртуальной машины. Поскольку более старые операционные системы не поддерживают SATA без дополнительных драйверов, VirtualBox будет следить за тем, чтобы такие устройства не присутствовали первоначально.

VirtualBox также предоставляет гибкий контроллер, который является особенным: вы не можете добавлять к нему устройства, отличные от флоппи-дисководов. Виртуальные флоппи-дисководы, такие как виртуальные CD/DVD-приводы, могут быть подключены либо к дисководным дискам (если они есть), либо к образу диска, который в этом случае должен быть в формате RAW.

Вы можете свободно изменять эти прикрепления. Например, если вы хотите скопировать некоторые файлы с другого созданного виртуального диска, вы можете подключить этот диск в качестве второго жесткого диска. Вы также можете добавить второй виртуальный CD/DVD-привод или изменить куда эти элементы прикреплены. Доступны следующие параметры:

  • Чтобы добавить другой виртуальный жесткий диск или CD/DVD-диск или флоппи-дисковод , выберите контроллер хранения, к которому он должен быть добавлен (IDE, SATA, SCSI, SAS, контроллер флоппи-дисков), а затем нажмите кнопку «добавить диск » ниже по дереву. Затем вы можете выбрать «Добавить устройство CD/DVD » или «Добавить жесткий диск ». (Если вы щелкнули на контроллере гибких дисков, вы можете добавить дисковод гибких дисков.) Альтернативно, щелкните правой кнопкой мыши контроллер хранения и выберите там пункт меню.

В правой части окна вы можете установить следующее:

  1. Затем вы можете выбрать, к какому слоту устройства контроллера подключен виртуальный диск. Контроллеры IDE имеют четыре слота, которые традиционно называются «главный мастер », «первичный подчиненный », «вторичный мастер » и «вторичный подчиненный ». Напротив, контроллеры SATA и SCSI предлагают до 30 слотов, к которым могут быть подключены виртуальные устройства.
  2. Вы можете выбрать, какой файл образа использовать.
  • Для виртуальных жестких дисков справа появляется кнопка с выпадающим списком, предлагающая либо выбрать файл виртуального жесткого диска, используя стандартный диалог файла, либо создать новый жесткий диск (файл образа), который откроет Мастер «Создать новый диск », который был описан в разделе « ».
  • Для виртуальных CD/DVD-дисков файлы образов обычно будут в стандартном формате ISO. Чаще всего вы выберете эту опцию при установке операционной системы из файла ISO, который вы получили из Интернета. Например, большинство дистрибутивов Linux доступны таким образом.

Для виртуальных CD/DVD-приводов доступны следующие дополнительные опции:

  • Если в списке выбрать «Хост диск », физическое устройство хост-компьютера будет подключено к виртуальной машине, чтобы гостевая операционная система могла читать и записывать на ваше физическое устройство. Это, например, полезно, если вы хотите установить Windows с реального установочного компакт-диска. В этом случае выберите свой хост-диск из раскрывающегося списка.

Если вы хотите записать (прожечь) компакт-диски или DVD-диски с помощью главного диска, вам также необходимо включить опцию «Passthrough ».

  • Если вы выберете «Удалить диск с виртуального диска », VirtualBox представит пустой CD/DVD-диск гостю, в который не был вставлен носитель.
  • Чтобы удалить прикрепление , выберите его и нажмите на значок «удалить » внизу (или щелкните его правой кнопкой мыши и выберите пункт меню).

Съемные носители (CD/DVD и дискеты) могут быть изменены во время работы гостя. Поскольку в это время диалоговое окно «Настройки » недоступно, вы также можете получить доступ к этим настройкам из меню «Устройства » в окне вашей виртуальной машины.

Настройки звука

Раздел «Аудио » в окне «Настройки » виртуальной машины определяет, будет ли виртуальная машина видеть подключенную звуковую карту и должен ли звуковой вовод быть слышен в главной системе.

Если для гостя включен звук, вы можете выбрать эмуляцию контроллера Intel AC"97, контроллера Intel HD Audio или карты SoundBlaster 16. В любом случае вы можете выбрать, какой аудио-драйвер VirtualBox будет использоваться на хосте.

На хосте Linux в зависимости от конфигурации вашего хоста вы также можете выбрать между OSS, ALSA или подсистемой PulseAudio. В более новых дистрибутивах Linux предпочтительнее подсистема PulseAudio.

Поскольку на хостах Solaris в VirtualBox 5.0 поддерживается только OSS - аудиосистема «Solaris Audio» больше не поддерживается хостами Solaris.

Настройки сети

Раздел «Сеть » в окне «Настройки » виртуальной машины позволяет вам настроить, как VirtualBox представляет виртуальные сетевые карты для вашей виртуальной машины и как они работают.

Когда вы сначала создаете виртуальную машину, VirtualBox по умолчанию включает одну виртуальную сетевую карту и выбирает для нее режим «Трансляция сетевых адресов » (NAT). Таким образом, гость может подключаться к внешнему миру с использованием сети хоста, а внешний мир может подключаться к услугам на гостевом компьютере, который вы сделали видимыми за пределами виртуальной машины.

Эта настройка по умолчанию хороша для, вероятно, 95% пользователей VirtualBox. Тем не менее, VirtualBox чрезвычайно гибкий в том, как он может виртуализировать сеть. Он поддерживает множество виртуальных сетевых карт на виртуальную машину, первые четыре из которых могут быть подробно настроены в окне «Менеджера». Дополнительные сетевые карты можно настроить в командной строке с помощью VBoxManage.

Введение в сетевые режимы

Каждый из восьми сетевых адаптеров может быть сконфигурирован отдельно для работы в одном из следующих режимов:

Не подключён

В этом режиме VirtualBox сообщает гостю, что присутствует сетевая карта, но нет соединения - как будто в карту не вставлен кабель Ethernet. Таким образом, можно «вытащить» виртуальный кабель Ethernet и нарушить соединение, что может быть полезно для информирования гостевой операционной системы о невозможности подключения к сети и обеспечения реконфигурации.

Трансляция сетевых адресов (NAT)

Если вы хотите только просматривать веб-страницы, загружать файлы и просматривать электронную почту внутри гостя, тогда этого режима по умолчанию вам будет достаточно, и вы можете спокойно пропустить оставшуюся часть этого раздела. Обратите внимание, что при использовании совместного использования файлов Windows существуют определенные ограничения.

Сеть NAT

Сеть NAT - это новый вариант NAT, внедренный в VirtualBox 4.3. Служба трансляции сетевых адресов (NAT) работает аналогично домашнему маршрутизатору, группируя системы, использующие его в сети, и не позволяет системам за пределами этой сети напрямую обращаться к системам внутри нее, но позволяет системам внутри взаимодействовать друг с другом и с системами снаружи, используя TCP и UDP через IPv4 и IPv6.

Сетевой мост

Это для более сложных сетевых задач, таких как сетевое моделирование и запуск серверов в гостевой системе. Когда включено, VirtualBox подключается к одной из установленных сетевых карт и обменивается сетевыми пакетами напрямую, обходя сетевой стек вашей операционной системы.

Внутренняя сеть

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

Виртуальный адаптер хоста

Это можно использовать для создания сети, содержащей хост и набор виртуальных машин, без необходимости физического сетевого интерфейса хоста. Вместо этого на хосте создается виртуальный сетевой интерфейс (похожий на интерфейс loopback), обеспечивающий взаимодействие между виртуальными машинами и хостом.

Универсальный драйвер

Редко используемые режимы используют один и тот же общий сетевой интерфейс, позволяя пользователю выбирать драйвер, который может быть включен в VirtualBox или распространен в пакете расширения.

На данный момент есть потенциально два доступных под-режима:

UDP-туннель

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

Сеть VDE (виртуальный распределенный Ethernet)

Этот параметр можно использовать для подключения к коммутатору Virtual Distributed Ethernet на Linux или хосте FreeBSD. На данный момент это требует компиляции VirtualBox из источников, поскольку пакеты Oracle не включают его.

В следующей таблице приведен краткий обзор наиболее важных сетевых режимов:

VM ↔ Host VM1 ↔ VM2 VM → Internet VM ← Internet
Виртуальный адаптер хоста + + - -
Внутренняя сеть - + - -
Сетевой мост + + + +
Трансляция сетевых адресов (NAT) - - + Переадресация портов
Сеть NAT - + + Переадресация портов

COM-порты (серийный порты)

VirtualBox простым способом полностью поддерживает виртуальные последовательные порты на виртуальной машине.

Настройки USB

Поддержка USB

Раздел «USB » в окне «Настройки » виртуальной машины позволяет вам настроить сложную USB-поддержку VirtualBox.

VirtualBox позволяет виртуальным машинам напрямую обращаться к устройствам USB на вашем хосте. Для этого VirtualBox представляет гостевую операционную систему с виртуальным USB-контроллером. Как только гостевая система начнет использовать USB-устройство, оно будет недоступно на хосте.

Примечание :

  1. Будьте осторожны с USB-устройствами, которые в настоящее время используются на хосте! Например, если вы разрешаете вашему гостю при его активации подключаться к жесткому диску USB, который в настоящее время установлен на хосте, то этот диск будет отсоединён от хоста без надлежащего отключения. Это может привести к потере данных.
  2. У хостов Solaris есть несколько известных ограничений в отношении поддержки USB.

В дополнение к разрешению доступа гостя к вашим локальным USB-устройствам VirtualBox позволяет даже вашим абонентам подключаться к удаленным USB-устройствам с помощью VirtualBox Remote Desktop Extension (VRDE).

В диалоговом окне «Настройки » вы можете сначала настроить, доступен ли USB в гостевой системе, а затем выбрать уровень поддержки USB: OHCI для USB 1.1, EHCI (который также включит OHCI) для USB 2.0 или xHCI для всей USB скорости.

Примечание : Контроллеры xHCI и EHCI поставляются в виде пакета расширения VirtualBox, который должен устанавливаться отдельно. Дополнительную информацию см. в разделе « ».

Когда поддержка USB включена для виртуальной машины, вы можете подробно определить, какие устройства будут автоматически подключены к гостю. Для этого вы можете создать так называемые «фильтры», указав определенные свойства устройства USB. USB-устройства с соответствующим фильтром будут автоматически передаваться гостю после их присоединения к хосту. USB-устройства без соответствующего фильтра могут передаваться вручную гостю, например, с помощью меню Устройства/USB-устройства .

Щелчок по кнопке «+ » справа от окна «Фильтры устройств USB » создает новый фильтр. Вы можете дать фильтру имя (для ссылки на него позже) и указать критерии фильтра. Чем больше критериев вы укажете, тем точнее будут выбраны устройства. Например, если вы укажете только идентификатор поставщика 046d, все устройства, созданные Logitech, будут доступны гостю. С другой стороны, если вы заполните все поля, фильтр будет применяться только к определенной модели устройства от конкретного поставщика, а не к другим устройствам того же типа с другой версией и серийным номером.

В свойствах USB-фильтра доступны следующие критерии:

  1. Идентификатор поставщика и продукта . Каждый поставщик продуктов USB имеет идентификационный номер, уникальный по всему миру, «идентификатор поставщика». Аналогично, каждой строке продуктов присваивается номер «идентификатор продукта». Оба числа обычно записываются в шестнадцатеричном виде (то есть, они состоят из чисел 0-9 и букв A-F), а двоеточие отделяет поставщика от идентификатора продукта. Например, 046d:c016 означает Logitech в качестве поставщика и «M-UV69a Optical Wheel Mouse».

Кроме того, вы также можете указать «Производитель » и «Продукт » по имени.

Чтобы перечислить все USB-устройства, подключенные к вашей машине с соответствующими идентификаторами поставщиков и продуктов, вы можете использовать следующую команду:

VBoxManage list usbhost

В Windows вы также можете увидеть все USB-устройства, подключенные к вашей системе в диспетчере устройств. В Linux вы можете использовать команду lsusb .

  1. Серийный номер . Хотя идентификаторы поставщиков и продуктов уже достаточно специфичны для идентификации USB-устройств, если у вас есть два идентичных устройства одной марки и линейки продуктов, вам также понадобятся серийные номера для их правильной фильтрации.
  2. Удалённый . Этот параметр указывает, будет ли устройство только локальным или удаленным (только через VRDP) или любым другим.

На хосте Windows вам необходимо отключить и снова подключить USB-устройство, чтобы использовать его после создания фильтра для него.

Например, вы можете создать новый USB-фильтр и указать идентификатор поставщика 046d (Logitech, Inc), индекс производителя 1 и «не удален». Затем любые гостевые системы USB-устройства, созданные Logitech, Inc с индексом производителя 1, будут видны гостевой системе.

Несколько фильтров могут выбирать одно устройство - например, фильтр, который выбирает все устройства Logitech, и тот, который выбирает конкретную веб-камеру.

Вы можете деактивировать фильтры, не удаляя их, щелкнув флажок рядом с именем фильтра.

Общие папки

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

Пользовательский интерфейс

Раздел «Пользовательский интерфейс » позволяет вам изменить некоторые аспекты пользовательского интерфейса этой виртуальной машины.

Строка меню

Этот виджет позволяет вам отключить определенные меню (щелкнуть по пункту меню, чтобы высвободить его), некоторые записи меню (снимите флажок в элементе для его отключения) и полностью панель меню (снимите флажок справа).

Мини-тулбар

В полноэкранном или режиме интеграции экрана VirtualBox может отображать небольшую панель инструментов, содержащую некоторые элементы, которые обычно доступны в строке меню виртуальной машины. Эта панель инструментов сводится к небольшой серой линии пока вы не нажмете на нее мышью. С помощью панели инструментов вы можете вернуться из полноэкранного или режима интеграции экрана, выполнить управление машиной или включить определенные устройства. Если вы не хотите видеть панель инструментов, отключите этот параметр.

Вторая настройка позволяет отображать панель инструментов в верхней части экрана, а не показывать ее внизу.

Статус бар

Этот виджет позволяет отключить определенные значки в строке состояния (снимите флажок со значка, чтобы отключить его), чтобы поменять местами значки (для этого перетащите значок) и полностью отключить строку состояния (снимите флажок слева).

Переводим... Перевести Китайский (упрощенное письмо) Китайский (традиционное письмо) Английский Французский Немецкий Итальянский Португальский Русский Испанский Турецкий

К сожалению, мы не можем перевести эту информацию прямо сейчас - пожалуйста, повторите попытку позже.

GestureWorks Gameplay - это новый способ взаимодействия с популярными играми на ПК. Программа Gameplay для Windows 8 позволяет игрокам использовать и создавать собственные виртуальные контроллеры для сенсорного управления, которые можно применять в существующих играх. Каждый виртуальный контроллер добавляет кнопки, жесты и прочие элементы управления, которые сопоставляются с поддерживаемыми игрой средствами управления. Кроме того, игроки могут применять сотни индивидуально настраиваемых жестов для взаимодействия с игрой на экране. Сотрудничество компании Ideum с корпорацией Intel позволило получить доступ к технологиям и инженерным ресурсам, чтобы реализовать возможности сенсорного управления в Gameplay.

Посмотрите этот короткий ролик , поясняющий принцип работы Gameplay.

Виртуальные контроллеры

В отличие от традиционных игровых контроллеров виртуальные контроллеры полностью настраиваются, а игроки могут обмениваться ими с друзьями. Программа Gameplay работает на планшетах с Windows 8 , ультрабуках , устройствах 2 в 1 , моноблоках и даже мультисенсорных планшетах с большими экранами.

Рисунок 1 ‒ Программа Gameplay в действии на планшете с процессором Intel Atom

«Виртуальный контроллер реален! Программа Gameplay охватывает сотни игр для ПК, не поддерживающих сенсорное управление, и позволяет играть в них на совершенно новом поколении мобильных устройств, - говорит Джим Спадаччини (Jim Spadaccini), директор компании Ideum, создавшей GestureWorks Gameplay. - Виртуальные контроллеры Gameplay лучше физических контроллеров, поскольку их можно полностью настраивать и изменять. Мы с интересом ожидаем распространения Gameplay среди игроков».

Рисунок 2 ‒ Главная страница Gameplay

Вместе с GestureWorks Gameplay поставляется несколько десятков уже готовых виртуальных контроллеров для популярных игр для Windows (в настоящее время поддерживается свыше 116 уникальных наименований). В программе Gameplay пользователи также могут настраивать существующие контроллеры и изменять их раскладку. Программа также включает удобное в использовании средство создания виртуальных контроллеров: пользователи могут создавать собственные контроллеры для множества популярных игр для Windows, распространяемых с помощью службы Steam.

Рисунок 3 ‒ Раскладка виртуального контроллера

Пользователи могут размещать джойстики, переключатели, колесики прокрутки и кнопки в любых местах экрана, изменять размер и прозрачность элементов управления, добавлять цвета и подписи. Также можно создавать несколько представлений разметки и переключаться между ними в любой момент игры. Благодаря этому пользователь может создавать представления для разных действий в игре, например в ролевой игре можно создать одно представление для боя, а другое - для управления снаряжением.

Рисунок 4 ‒ Глобальное представление жестов виртуального контроллера

Программа Gameplay, в основе которой лежит движок обработки жестов GestureWorks Core, поддерживает свыше 200 глобальных жестов. Простейшие глобальные жесты, такие как касание, перетаскивание, сведение/разведение пальцев и поворот, поддерживаются по умолчанию, но также настраиваются. Это позволяет расширять возможности контроллеров и применять мультисенсорные жесты для дополнительного управления в играх на ПК. Например, определенные действия или боевые приемы в шутерах от первого лица можно активировать одним жестом вместо нажатия нескольких кнопок. Gameplay также включает экспериментальную поддержку акселерометров: в гонках можно поворачивать, наклоняя ультрабук или планшет. Программа обнаруживает переключение устройств 2 в 1 в режим планшета, чтобы при необходимости включить виртуальный контроллер.

Проблемы, возникшие при разработке

Разрабатывать такую удобную программу было непросто. Для воплощения идеи Gameplay в жизнь потребовалось преодолеть ряд технических проблем. Некоторые проблемы удалось решить традиционными методами программирования, для других проблем потребовались более изощренные решения.

Поддержка переключения 2 в 1

Еще в самом начале разработки Gameplay, мы решили добавить поддержку устройств 2 в 1. Идея была в том, что приложение работает постоянно, но отображение контроллеров не происходит в настольном режиме. В случае перехода в режим планшета, контроллер Gameplay начинает отображаться для обеспечения сенсорного управления в приложении. Активируйте поддержку в настройках виртуального контроллера на устройствах 2 в 1.

Рисунок 5 Настройки виртуального контроллера

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

Внедрение DLL

Внедрение DLL (DLL injection) - это метод, используемый для выполнения кода внутри адресного пространства другого процесса путем загрузки внешней библиотеки динамической компоновки. Внедрение DLL часто используется внешними программами для вредоносных целей, но эту технологию можно использовать и в «мирных целях», чтобы расширить возможности программы так, как это не было предусмотрено ее авторами. В программе Gameplay нам требовался способ вставки данных в поток входных данных процесса (запущенной игры), чтобы сенсорный ввод можно было преобразовать во входные данные, распознаваемые игрой. Из множества методов реализации внедрения DLL программисты Ideum выбрали вызовы подключения к Windows в API SetWindowsHookEx. В конечном итоге выбрали подключения к определенным процессам вместо глобальных подключений по соображениям производительности.

Запуск игр из сторонней оболочки запуска

Мы изучили два метода подключения к адресному пространству целевых процессов. Приложение может подключиться к адресному пространству запущенного процесса, или же приложение может запустить целевой исполняемый файл в качестве дочернего процесса. Оба метода вполне жизнеспособны. Тем не менее на практике оказалось, что намного проще отслеживать и перехватывать процессы или потоки, созданные целевым процессом, если наше приложение является родительским по отношению к этому целевому процессу.

При этом возникает проблема для клиентов приложений, таких как Steam и UPlay, запускаемых при входе пользователя в систему. В Windows не предоставляется гарантированного порядка запуска процессов, а процесс Gameplay должен быть запущен до этих процессов, чтобы получить возможность подключаться к управлению. Gameplay решает эту проблему путем установки компактной системной службы, которая отслеживает запуск приложений при входе пользователя в систему. Если запускается одно из интересующих нас клиентских приложений, Gameplay может подключиться к ней в качестве родительского процесса, и тогда элементы управления будут отображаться нужным образом.

Полученный опыт

Фильтрация данных мыши

При разработке мы столкнулись с тем, что в некоторых игра неверно обрабатывались входные данные виртуальной мыши, полученные с сенсорного экрана. Эта проблема чаще всего возникала в шутерах от первого лица или в ролевых играх, где при помощи мыши выбирается направление взгляда. Проблема состояла в том, что входные данные мыши, полученные с сенсорного экрана, были абсолютными по отношению к какой-либо точке на экране, а значит, и в игровой среде. Изза этого сенсорный экран был практически бесполезным в качестве устройства для управления направлением взгляда с помощью мыши. Решить эту проблему удалось путем фильтрации входных данных мыши, перехватывая поток входных данных игры. Это дало возможность имитировать входные данные мыши для управления направлением взгляда с помощью такого экранного элемента управления, как джойстик. Потребовалось немало времени и усилий, чтобы настроить чувствительность джойстика и зону нечувствительности, чтобы они по ощущениям совпадали с мышью, но когда это было сделано, все прекрасно заработало. Это исправление можно увидеть в действии в таких играх, как Fallout: New Vegas или The Elder Scrolls: Skyrim .

Отбор игр для сенсорного управления

Разработчики Ideum потратили немало времени, настраивая виртуальные контроллеры для оптимального удобства в играх. Различные элементы игр определяют пригодность игры для Gameplay. Ниже приводятся общие правила, определяющие, какие типы игр хорошо работают с Gameplay.

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

Так как виртуальным машинам обычно требуется жесткий диск, то VirtualBox должен предоставлять "реальное хранилище" данных гостю в качестве виртуального жесткого диска. Существует три способа достичь этого:

    Чаще всего VirtualBox использует большие файлы на реальном диске и предоставляет его гостю как виртуальный жесткий диск. Они описаны в разделе “Disk image files (VDI, VMDK, VHD, HDD)” .

    Если у вас есть сервер iSCSI storage, вы можете подключить VirtualBox к нему, который описывается в разделе “iSCSI servers” .

    Наконец, в качестве экспериментальной функции, вы можете разрешить виртуальным машинам непосредственно использовать жесткие диски хоста; эта расширенная функция описывается в разделе “Using a raw host hard disk from a guest” .

Каждое виртуальное устройство хранения (файл образа, iSCSI target или физический жесткий диск) необходимо подключить к виртуальному контроллеру жестких дисков виртуальной машины. Механизм подключения раскрывается в следующем разделе.

Контроллеры жестких дисков: IDE, SATA (AHCI), SCSI, SAS

В настоящем компьютере, жесткие диски и CD/DVD устройства подключаются к устройству, которое называют контроллером жесткого диска и которое управляет дисковыми операциями и передачей данных. VirtualBox может эмулировать четыре наиболее используемых типа контроллеров жестких дисков, которые встечаются в современных ПК: IDE, SATA (AHCI), SCSI и SAS.

    IDE (ATA) используются с 1980 года. Вначале, этот тип интерфейса работал только с жесткими дисками, но позднее был расширен также для использования устройств CD-ROM и других типов внешних носителей. В компьютерах данный стандарт используется плоский 40 или 80 жильный кабель (шлейф). С помощью этого кабеля возможно подключить два устройства к контроллеру, которые называют "master" и "slave". К типичному контроллеру жестких дисков подключаются два таких кабеля; то есть, большинство компьютеров поддерживают до 4 устройств.

    В VirtualBox по умолчанию, к каждой виртуальной машине подключается один IDE контроллер, который позволяет вам подключить до четырех виртуальных устройств хранения данных. (По умолчанию, один из этих четырех -- secondary master -- настроен на подключение виртуального привода CD/DVD, но эту настройку можно изменить. )

    Даже если ваша гостевая ОС не поддерживает SCSI или SATA устройства, она всегда обнаружит IDE контроллер, который по умолчанию всегда подключен.

    Вы также можете точно указать тип IDE контроллера, который должен быть предоставлен виртуальной машине (PIIX3, PIIX4 или ICH6). Тип не влияет на производительность, но в случае если вы импортирует виртуальную машину от других виртуальных сред, операционная система в этой машине может не заработать, если ей не предоставить нужный тип контроллера.

    После создания новой ВМ в графическом интерфейсе, с помощью визарда "Созать новую виртуальную машину" , вы обнаружите один IDE контроллер к которому будет подключин виртуальный привод CD/DVD.

    Serial ATA (SATA) это новый стандарт, появившийся в 2003. По сравнению с IDE, он поддерживает более высокую скорость обмена и позволяет подключить большее количество жестких дисков к контроллеру. Так же как на реальном компьютере, устройства могут быть добавлены и удалены во время работы системы. Стандарт интерфейса для SATA контролеров называется Advanced Host Controller Interface ( AHCI ).

    По соображениям совместимости, AHCI контроллеры по умолчанию работают с дисками в режиме называемом IDE совместимом, пока явно не указать использование SATA. Этот режим ("IDE compatibility mode") означает, что устройства будут определяться и управляться через BIOS компюютера. Still, disks assigned to those slots will operate in full-speed AHCI mode once the guest operating system has loaded its AHCI device driver.

    Как и реальный SATA, виртуальный SATA контроллер работает быстрее и также меньше нагружает процессор, чем IDE контроллер. Кроме того, возможно подключение до 30 виртуальных жестких дисков к одной ВМ, а не трех как в IDE (плюс уже подключенный DVD привод). Первые четыре слота (с номерами 0-3 в окне настроек) по умолчанию работают в режиме IDE совместимости.

    Поэтому, начиная с версии 3.2, в зависимости от вида гостевой операционной системы, VirtualBox использует SATA их по умолчанию для новых создаваемых вириуальных машин. По умолчанию, создается один виртуальный SATA контроллер и новый создаваемый виртуальный жесткий диск подключается к нему.

    Предупреждение

    SATA контроллер и виртуальные диски подключенные к нему (включая диски в режиме IDE совместимости) будут видны только операционным системам с поддержкой AHCI. Например, AHCI не поддерживается в системах Windows до Windows Vista, т.е. в Windows XP (даже с SP3) вы не увидите диски пока не установите дополнительные драйвера. Возможно сменить IDE на SATA после установки ОС, установив SATA драйвера и изменив тип контроллерв в диалоге настроек ВМ.

    Для добавления SATA контроллера к виртуальной машине у которой его нет (возможно по причине создания ее в ранних версиях VirtualBox или потому, что SATA не поддерживается гостевой ОС), перейдите на закладку "Носители" диалога настроек и кликните на кнопке "Добавить контроллер" под списком "Носители информации", выбрав далее "Добавить SATA котроллер". После этого, дополнительный контроллер появится в виртуальной машине как PCI устройство и вы сможете подключать виртуальные диски к нему

    Чтобы изменить режим совместимости IDE для SATA контроллера, обратитесь к Разделу, “VBoxManage modifyvm” .

    SCSI это другой промышленный стандарт, расшифровывается как "Small Computer System Interface". Он был создан еще в 1986, в качестве универсального интерфейса для передачи данных между различными видами устройств, включая устройства хранения данных. В настоящее время SCSI по прежнему используют для подключения жестких дисков и ленточных устройств. Он до сих пор используется в высокопроизводительных компьютерах и серверах.

    Для совместимости с другими программами виртуализации, VirtualBox поддерживает LsiLogic и BusLogic SCSI контроллеры, которые позволяют подключать до 15 виртуальных жестких дисков.

    Для добавления SСSI контроллера к виртуальной машине перейдите на закладку "Носители" диалога настроек и кликните на кнопке "Добавить контроллер" под списком "Носители информации", выбрав далее "Добавить SCSI котроллер". После этого, дополнительный контроллер появится в виртуальной машине как PCI устройство.

    Предупреждение

    Как и в случае с другими типами контроллеров, SCSI контроллер будет видны только операционным системам, которые могут работать с ними. Windows 2003 и позднии версии поставляется с драйвервми для LSI Logic контроллера, а Windows NT 4.0 и Windows 2000 поставляются с драйверами BusLogic контроллера. Windows XP не имет драйверов ни для одного из них.

    Serial Attached SCSI (SAS) это другой стандарт, который использует систему комманд SCSI. As opposed to SCSI, however, with physical devices, serial cables are used instead of parallel ones, which simplifies physical device connections. In some ways, therefore, SAS is to SCSI what SATA is to IDE: it allows for more reliable and faster connections.

    Для гостевых систем требующих SAS контроллеров, VirtualBox эмулирует LSI Logic SAS контроллер, который может быть подключен тем же путем, что и SCSI контроллер. В настоящее время, можно подключить до 8 устройств к SAS контроллеру.

    Предупреждение

    Как и SATA, SAS контроллер будет доступен только в ОС которые могут с ним работать. Например, SAS не поддерживается в системах Windows до Windows Vista, т.е. в Windows XP (даже с SP3) вы не увидите диски пока не установите дополнительные драйвера.

Суммируя вышесказанное, VirtualBox предоставляет вам следующие виртуальные устройства хранения:

    четыре слота для подключения к стандарным IDE контроллерам, которые всегда представлены (один из них как виртуальный привод CD/DVD);

    30 слотов для подключения к SATA котроллеру, при условии что, что ваша гостевая ОС может работать с ними

    1. в режиме IDE совместимости (по умолчанию слоты 0-3) или

    15 слотов для подключения к SCSI контроллеру, если гостевая ОС их поддерживает;

    8 слодов для подключения к SAS контроллеру, если гостевая ОС их поддерживает;

Учитывая большой выбор контроллеров, перед вами может возникнуть вопрос выбора нужного. Вы должны избегать использование IDE, конечно если он не является единственно поддерживаемым контроллером в вашем госте. Реальной разницы между SATA, SCSI и SAS не существует. Такое разнообразие контроллеров нужно только для совместимости VirtualBox с другими гипервизорами и аппаратными требованиями гостей.

Файлы образа диска (VDI, VMDK, VHD, HDD)

Файлы дисковых образов располагаются на хост системе и определяются гостевыми системами как жесткие диски определенного размера. При чтении или записи данных с диска гостевой ОС, VirtualBox перенаправляет дисковые запросы к файлу образа.

Как и у физического диска, у виртуального диска есть размер (емкость), который должен быть указан при его создании. Но в отличии от физических дисков, VirtualBox позволяет вам увеличивать образ файла после его создания, даже в случае когда он содержит данные; см. подробности в.

VirtualBox поддерживает 4 типа файлов образов диска:

Независимо от формата виртуальных дисков, как упоминается в Разделе, “Создание виртуальных машин” , существует два типа создаваемых образов: фиксированного размера и динамически расширяемые.

    Если вы создаете образ фиксированного размера , то файл образа будет создан на хосте с примерно таким же размером как и у виртуального диска. Т.е, для 10G диска, вы получите 10G файл. Заметьте что создание фиксированных образов может занять довольно значительное время, в зависимости от размера образа и производительности дисковых операций вашей системы.

    Для более гибкого управления виртуальными носителями, используются динамически расширяемые образы . При создании данный образ будет иметь небольшой размер, за счет неиспользуемого пространства виртуального диска, но по мере использования, файл образа будет увеличиваться. Данный вид файла занимает меньше места на начальном этапе, однако VirtualBox необходимо увеличивать размер образа (пока образ не достигнет максимального размера), что ведет к замедлению дисковых операций по сравнению с дисками фиксированного размера. Однако, после достижения предела расширения динамического диска, потери производительности операций чтения и записи уже не так значительны.

Менеджер виртуальных носителей

VirtualBox хранит данные обо всех жестких дисках, CD/DVD-ROM и образах гибких дисков которые используются в виртуальных машинах. Обычно они упоминаются как "известные носители" и которые могут быть получены из 2 источников:

Список известных носителей можно просмотреть и изменить в Менеджер виртуальных носителей , который можно открыть через меню "Файл" в главном окне VirtualBox:

Носители сгруппированы на трех вкладках по их форматам. Форматы дисков:

    Образы жестких дисков, в виде собственного VirtualBox Virtual Disk Image (VDI) или формата стороннего поставщика, которые перечисленны в предыдущем разделе;

    CD/DVD образы в ISO стандарте;

    образы дискет в стандартном формате RAW (полная копия носителя).

Как вы видите на скриншоте выше, для каждого образа, менеджер виртуальных носителей показывает полный путь к файлу образа и другую информацию: например,подключен ли образ к ВМ, если таковые имеются.

Менеджер виртуальных носителей позволяет вам

    удалить образ из хранилища (и при необходимости также удалить образ файла);

    "освободить" образ, то есть, отключить его от виртуальной машины, если он подключен к одной из машин.

Начиная с версии 4.0, для создания новых образов дисков, используйте закладку "Носители" в диалоговом окне настроек виртуальной машины (т.к. образы дисков по умолчанию сохраняются в папку виртуальной машины).

Файлы образов жестких дисков можно скопировать на другой хост и импортировать в другие виртуальные машины.

Замечание

Не создавайте копии виртуальных дисков простым копированием. При импорте таких копий в виртуальную машину, VirtualBox будет выдавать ошибку, так как VirtualBox присваивает уникальный идентификатор (UUID) каждому образу, убедитесь что образы используются одновременно только в одной ВМ. Ознакомьтесь с разделом, “Клонирование образов дисков” для получения информации по вопросу клонирования образов. Если вы хотите скопировать виртуальную машину на другую систему, то VirtualBox предоставит вам механиз импорта/эксорта, который лучше всего подойдет для этой задачи; см. раздел “Importing and exporting virtual machines” .

Особые режимы записи образа

Для каждого образа виртуального диска поддерживаемого в VirtualBox, вы можете отдельно установить его поведение в случае выполнения операций записи в виртуальной машине и при работе со снимками состояний. Это относится ко всем форматам образов(VDI, VMDK, VHD or HDD) и не зависит от типа образа - фиксированого размера или динамически расширяемого.

По умолчанию, образ создается в режиме "normal" . Для преобразования режима существующего образа в другой, используйте VBoxManage modifyhd ; см. Раздел, “VBoxManage modifyhd” . Альтернативный метод - используя VBoxManage для подключения образа к ВМ используя аргумент --mtype ; см. .

    Для normal образов (по умолчанию) не существует ограничений на операции чтения и записи на диск.

    Когда вы делаете снимок состояния вашей виртуальной машины (см. Раздел, “Снимки состояний”), состояние диска в режиме "normal" будет всегда сохранено в снимке и при возврате к снимку, его состояние будет полностью сброшено к состоянию на момент создания снимка.

    (Technically, strictly speaking, the image file itself is not "reset". При создании снимка, VirtualBox "замораживает" файл образа и не записывет данные в него. При операциях записи в ВМ, создается другой "разностный" файл образа, в который записываются все изменения.

    Когда вы подключаете "normal" образ к более чем одной виртуальной машине, то только одна из этих виртуальных машин может работать с этим файлом образа в одно и то же время, иначе не возможно было бы разрешить конфликты одновременной записи данных в образ.

    В отличии от него, на жесткие диски write-through не влияет механизм снимков состояния: их состояние не сохраняется и не восстанавливается при создании и восстановлении снимков.

    Жесткие диски Shareable это вариант write-through жестких дисков. Для них также не сохраняется и не востанавливается состояние при работе со снимками. Их различие только в совместной работе с несколькими ВМ. Shareable диски могут быть подключены к нескольким ВМ, которые могут работать одновременно. Это особеность, позволяет использовать их в кластерных файловых системах. Только образы фиксированного размера могут использоваться в этом случае - использование динамических расширяемых дисков запрешено.

    Предупреждение

    This is an expert feature, and misuse can lead to data loss -- regular filesystems are not prepared to handle simultaneous changes by several parties.

    Далее, immutable образы хранят записанные на них данные только при работе виртуальной машины; все изменения будут потерены, когда ВМ будет запущена в следующий раз. В отличие от "normal" образов, immutable образы могут использоваться в нескольких виртуальных машинах без ограничений.

    Создание immutable образа не имеет смысла, поскольку изначально он не содержит данных и все данные на нем будут потерены при перезапуске машины (конечно если вы действительно хотите иметь такой диск, то создавайте). Обычно, вначале вы должны создаете "normal" образ и когда вы заполните его нужными данными можете сделать его immutable.

    Если вы сделаете снимок виртуальной машины с immutable образом, то при каждом ее включенииэтот образ будет соответствовать последнему состоянию (текущему) снимка (а не состоянию оригинального immutable образа).

    Замечание

    As a special exception, immutable images are not reset if they are attached to a machine whose last snapshot was taken while the machine was running (a so-called "online" snapshot). As a result, if the machine"s current snapshot is such an "online" snapshot, its immutable images behave exactly like the "normal" images described previously. To re-enable the automatic resetting of such images, delete the current snapshot of the machine.

    Фактически VirtualBox никогда не пишет напрямую never в immutable образ. Все операции записи в машине перенаправляются в разностный образ; при следующем включении ВМ, разностный образ очищается. Differencing образ очищается только при включении виртиуальной машины VirtualBox"ом, а не при перзапуске запрошеной внутри виртуальной машины. This is also why immutable images behave as described above when snapshots are also present, which use differencing images as well.

    Образ в режиме multiattach может быть подключен одновременно к более чем одной виртуальной машине, даже если эти машины работают одновременно. Для каждой ВМ к которой этот образ подключен, создается разностный образ. В результате, данные которые пишутся на виртуальный диск одной машины не доступны на другой, для каждой машины создается своя собственная история записи данных multiattach образа.

    В техническом плане, "multiattach" образ идентичен "immutable" образу за исключением того, что его содержимое не очищается при каждом запуске машины.

    Наконец, read-only образ используется для CD/DVD образов, т.к. на CD/DVD нельзя записать.

Для иллюстрации отличий между разными типами образов рассмотрим работу со снимками состояний: предположим вы установили гостевую ОС в виртуальной машине и сделали ее снимок состояния. Представим что ваша ВМ была заражена вирусом и вы хотите вернуться к сохраненному ранее состоянию. Для normal образа диска, вы просто восстанавливаете состояние ВМ и предыдущее состояние вашего диска будет восстановлено (вирус будет удален). Для immutable диска, вне зависимости от снимка, все что нужно сделать так это перезапустить ВМ, изменения сделанные вирусом в файловой системы будут удалены. Для write-through образа однако, вы не можете просто удалить последствия действий вируса средствами виртуализации, вам необходимо будет "вылечить" вашу виртуальную машину как реальный компьютер.

Использование write-though образов удобно, когда вы захотите сохранять важные данные вне зависимости от снимков состояний и вам необходимо использовать образ в нескольких ВМ: вы можете использовать один immutable диск для ОС, а другой write-through диск для файлов с данными.

Differencing образы

В предыдущем разделе упоминались разностные образы, как они мспользуятся в снимках состояний ВМ, immutable образы и диски для множественного подключения. Для любознательных пользователей VirtualBox в этом разделе более подробно описываются детали их работы.

Разностный образ это специальный образ диска, который содержит только изменения/отличия данных из другого образа. Отделное использование его бесполезно, он должен быть всегда ссылаться на другой образ. Разностный образ обычно рассматривается как "дочерний", который хранит изменения для его "родителя".

В активный разностный образ записываются все данные по операциям записи от виртуальной машины. Разностный образ состоит только из секторов виртуального жесткого диска, которые были изменены с момента его создания. Когда машина читает сектор с этого виртуального жеского диска, она вначале ищет его в разностном образе. Если такой сектор найден, то но считывается из него; если нет, то VirtualBox ищет его в образе родителя. Другими словами, родитель это образ "только для чтения"; он никогда не используется для записи, но если сектор на не был изменен то он используется для чтения данных.

Разностыне образы могут образовывать цепочки. Если создается другой разностный образ для виртуального диска, который уже имеет разностный образ, то он становится "внуком" для родительского образа. Первый разностный образ также становится доступным только для чтения, а операции записи выполняются только на разностном образе второго уровня. При чтении с виртуального диска, VirtualBox необходимо сначала обработать второй разностный образ, затем первый и если сектор не будет найден то оригинальный образ.

Возможно создание неограниченого количества разностных образов и любой образ может иметь более одного дочерьнего элемента. В результате, может быть создана сложная древовидная структура с родительскими, "одноуровневыми" и дочерними элементами. Операции записи всегда выполняются на один "активный" разностный образ, а для операций чтения, VirtualBox может потребоваться просмотреть все сектра в цепочке образов, вплоть до родительского. Вы можете посмотреть на такое дерево в менеджере виртуальных ностелей:


In all of these situations, from the point of view of the virtual machine, the virtual hard disk behaves like any other disk. While the virtual machine is running, there is a slight run-time I/O overhead because VirtualBox might need to look up sectors several times. This is not noticeable however since the tables with sector information are always kept in memory and can be looked up quickly.

Разностные образы могут использоваться в следующих ситуациях:

    Снимки состояний. Когда вы создаете снимок, как описывалось в предыдущей секции, VirtualBox "замораживает" образы подключенные к виртуальной машине и создает разностный образ для каждого из них (если быть точным: один для каждого образа, который не находится в режиме "write-through"). С точки зрения виртуальной машины, виртуальные диски продолжают работу, но все операции записи передаются в разностные образы. В любое время вы можете создать другой снимок, для каждого подключенного жесткого диска, будет создан и подключен другой разностный образ, формируя цепочку или дерево.

    На рисунке выше, вы можете увидеть, что к исходному образу диска теперь подключен снимок состояния, который представляет состояние диска в момент создания снимка.

    Если вы теперь восстановите снимок -- т.е. если вы хотите вернуть машину к состоянию сохраненному в снимке, то произойдет следующее:

    1. VirtualBox восстановит настройки виртуальной машины, которые были сохранены в снимке состояния. В результате, если вы изменяли настройки машины, то они будут отменены.

      If the snapshot was taken while the machine was running, it contains a saved machine state, and that state is restored as well; after restoring the snapshot, the machine will then be in "Saved" state and resume execution from there when it is next started. Otherwise the machine will be in "Powered Off" state and do a full boot.

      Для каждого образа диска подключенного к машине, с видом differencing, будут отменены все действия выполненные операциями записи на него и его состояние будет восстановлено из оригинального родительского образа. (If you restored the "root" snapshot, then this will be the root disk image for each attachment; otherwise, some other differencing image descended from it.) This effectively restores the old machine state.

    Если вы позже удаляете снимок для освобождения места на диске хоста, у каждого подключенного диска один из differencing образов становится не нужным. В данном случае, подключенный differencing образ не может быть просто удален. VirtualBox нужно просмотреть каждый сектор в разностном образе и скопировать нужные в родительский; это называется "объединение" образов и эта операция может быть длительным процессом, что зависит от размера разностного образа. Также для этой операции временно может потребоваться большое количество свободного дискового пространства.

    Immutable образы. Если образ находится в режиме "immutable", то разностные образы также создаются. Как и в случае снимков, родительский образ переходит в режим только для чтения, а запись производится в разностный образ. Каждый раз при запуске виртуальной машины, все immutable образы отбрасывают свои собственные разностные образы.

Клонирование образов дисков

Вы можете сделать копии образов жестких дисков для того чтобы быстро создать другую виртуальную машину с такой же ОС. Однако, вам необходимо обязательно делать копию виртуального образа диска используя утилиту поставляемую с VirtualBox; см. the section called “VBoxManage clonehd” . Ее необходимо использовать, так как VirtualBox присваивает уникальный идентификационный номер (UUID) каждому образу диска, который хранится внутри файла образа и VirtualBox не будет работать с двумя образами с одинаковыми идентификаторами. В случае если вам нужно повторно импортировать дисковый образ, который вы скопировали обычным методом, вы можете использовать другую утилиту VirtualBox: импортируйте его вместо копирования.

Заметьте что новые дистрибутивы Linux идентифицируют загрузочные диски по ID устройств. ID который VirtualBox предоставляет устройствам получает из UUID образа виртуального диска. Поэтому если вы получили копию диска и попытаетесь загрузиться с него, но так как UID изменился, то гостевая система может не определить свой загрузочный диск и не загрузиться. В данном случае вы должны будете изменить ID диска в настройке загрузчика (например /boot/grub/menu.lst). The disk ID looks like this:

Scsi-SATA_VBOX_HARDDISK_VB5cfdb1e2-c251e503

ID для копии образа можно определить командой

Hdparm -i /dev/sda

Host I/O caching

Начиная с версии 3.2, в VirtualBox можно по желанию отключать кэширование I/O (буферизация ввода/вывода), которое по умолчанию выполняется ОС хоста для файлов виртуальных дисков.

Обычно, VirtualBox открывает файл образа диска как обычный файл, для которого выполняется кэширование операционной системой хоста, как и для всех других файлов системы. Основное преимущество этой операции - скорость: когда гостевая ОС пишет данные на диск хостовая ос использует кэш, приостанавливая физическую запись, а гостевой ОС может быть отослано сообщение об успешном выполнении операции записи. Также, когда вы запускаете ВМ в другой раз и имеется достаточно свободной памяти у ОС для кэширования, то значительные части виртуальных жестких дисков могут быть расположены в системной памяти и поэтому ВМ может получить доступ к данным значительно быстрее.

Заметьте, что это относится только к файловым образам; буферизация вывода никогда не применялась к виртуальным дискам расположенным на удаленных iSCSI хранилищах (см. раздел “iSCSI servers”).

Для виртуализации нескольких на одном хосте - буферизация это полезная настройка, но имеется несколько недостатков в этой технологии:

    Отложенная запись, через кэш ОС, менее безопасна. Когда гостевая ОС записывает данные, то считается что данные сохранены, даже если не было физической записи на диск. Если по каким то причинам запись не происходит (сбой питания или ОС хоста), то увеличивается вероятность потери данных.

    Образы дисков обычно имеют очень большие размеры. Поэтому, их кэширование может быстро занять весь кэш ОС хоста. Это может привести к замедлению работы хоста, особенно, если одновременно запущено несколько ВМ. Например, на Linux, возможна задержка всех операций записи процессе ожидания заполнения всего кеша и последующей его одновременной записи на диск, что может приводить к приостановке работы ВМ до нескольких минут. Это может привести к ошибкам I/O в гостевой ОС по таймауту.

    Физическая память часто тратится впустую, т.к. у гостевых систем есть собственный кэш ввода/вывода, что приводит к дублированию операций буферизации (в кеше гостя и хоста).

Если вы решите отключить кэширование I/O хоста, то VirtualBox будет использовать свой собственный, маленький кеш только для буферизации записи, а для операций нет, т.к. чтение обычно буферизируется в гостевой ОС. Дополнительно, VirtualBox полностью поддерживает асинхронный ввод/вывод для SATA, SCSI и SAS контроллеров, посредством многопоточного ввода/вывода.

Асинхронный I/O не поддерживается для IDE контроллеров, поэтому вы возможно захотите включить кеширование в ваших ВМ с виртуальными IDE контроллерами.

Поэтому, VirtualBox позволяет вам настраивать кеширование операций вводв/вывода для каждого контроллера отдельно. Снимите галку с "кеширование операций ввода/вывода" на вкладке "Носители" или используйте следующую команду VBoxManage, для отключения кеширования виртуального контроллера:

VBoxManage storagectl --name --hostiocache off

По упомянутым выше причинам, VirtualBox теперь использует по умолчанию SATA контроллер для новых виртуальных машин.

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

Начиная с версии 4.0, VirtualBox позволяет ограничить максимальную полосу пропускания для асинхронного ввода/вывода. Возможно задание ограничений для нескольких образов, посредством групповых лимитов. Возможно задать более, чем один такой лимит.

Ограничения настраиваются через VBoxManage . В примере ниже создается групповая полоса пропускания названная "Limit" с лимит в 20 MB/s и она привязывается к подключенным дискам ВМ:

VBoxManage bandwidthctl "VM name" --name Limit --add disk --limit 20 VBoxManage storageattach "VM name" --controller "SATA" --port 0 --device 0 --type hdd --medium disk1.vdi --bandwidthgroup Limit VBoxManage storageattach "VM name" --controller "SATA" --port 1 --device 0 --type hdd --medium disk2.vdi --bandwidthgroup Limit

Для всех дисков в группе задан общий лимит, для примера выше это значит, что пропускная общая способность обоих дисков никогда не превысит 20 MB/s. Однако, если одному диску не требуется канал ввода/вывода, то оставшиеся диски в группе используют пропускную способность канала всей группы.

Ограничения для каждой группы может быть изменено при работающей ВМ и эти изменения сразу же вступают в силу. В следующем примере, для группы созданной в примере выше, задается лимит в 10 MB/s:

VBoxManage bandwidthctl "VM name" --name Limit --limit 10

Поддержка CD/DVD

Виртуальные приводы CD/DVD по умолчанию работают только в режиме чтения. Настройки носителей можно изменять во время работы ВМ. Вы можете выбирать тремя настройками:

    Host Drive определяет, что гостем будет использоваться носитель в приводе хоста.

    Image file (обычно ISO файл) гость будет иметь доступ только для чтения к данным файла образа.

    Empty задает состояние отсутствия носителя в приводе.

Переключения описанных выше настройек, изменения носителя в приводе хоста или файла образа сразу передаются гостевой операционной системе, которая может реагировать на эти изменения (например запускать установщик программы).

Смена носителя может быть запрещено гостем и VirtualBox блокирует смену диска в этом случае. Вы можете принудительно удалить носитель в данной ситуации через графическую среду VirtualBox GUI или с помощью командной строки VBoxManage. Фактически это похоже на аварийное извлечение диска, которое обеспечивают многие приводы CD/DVD , но с этим действием связаны побочные эффекты: гостевая ОС может выдать сообщение об ошибке, и как в случае с реальным оборудованием, гостевые приложения могут вызывать сбои в работе. Используйте это метод с осторожностью.

Замечание

Наименование устройства предоставляемого гостю (которое в гостевой системе будет отображаться в утилитах настроек таких как Windows Device Manager) будет всегда "VBOX CD-ROM", независимо от текущей настройки виртуального привода. Это сделано для того, чтобы исключить срабатывания механизма поиска новых устройств в госте при изменении настроек ВМ.

Эмуляция стандартных CD/DVD приводов позволяет читать данные только со стандартных форматов CD и DVD. Гостю можно дать право на запись CD/DVD, посредством прямого доступа к приводу хоста, но данная функция имеет статус экспериментальной: В зависимости от аппаратной части хоста, это позволяет:

    Записывать CD/DVD из гостевой системы, если привод CD/DVD хоста пишущий;

В диалоге настроек контроллера для подключенного носителя есть флажок "Разрешить прямой доступ" или вы можете использовать опцию --passthrough в команде VBoxManage storageattach ; см. раздел “VBoxManage storageattach” .

Даже в случае включенного режима прямого доступа, небезопасные команды, такие как прошивка привода. будут заблокированы. Формат Video CD не поддерживается даже в режиме прямого доступа, и поэтому не может быть просмотрен в виртуальной машине.

On Solaris hosts, pass-through requires running VirtualBox with real root permissions due to security measures enforced by the host.

Сервера iSCSI

iSCSI это стандарт для "Internet SCSI", который позволяет использовать протокол SCSI через Internet (TCP/IP) соединения. Подключение устройства iSCSI к компьютерным сетям (лучше с гигабитным Ethernet) позволяет их использовать как удаленный жесткий диск. В терминах iSCSI сервер предоставляющий ресурсы хранилища называется "iSCSI target", а клиент подключенный к серверу и использующий эти ресурсы "iSCSI initiator".

VirtualBox позволяет подключать удаленные хранилища iSCSI к виртуальной машине как виртуальный жесткий диск. Гостевая ОС не "видит" различий между образом виртуального диска (файлом VDI) и iSCSI target. Для этой цели в VirtualBox интегрирован iSCSI initiator.

Поддержка в VirtualBox iSCSI была разработана с соответствии со стандартом iSCSI, что позволяет работать со стандартными устройствами iSCSI targets. Для использования iSCSI с VirtualBox, вы должны использовать командную строку; см. раздел “VBoxManage storageattach” ended ; now they are discarded every time the machine is powered on.

Изобретение относится к виртуальным контроллерам для визуальных отображений. Технический результат заключается в повышении точности детектирования и отслеживания жестов и движений рук. Такой результат достигается благодаря тому, что камера захватывает изображение рук напротив фона, изображение сегментируется на области рук и области фона, различные жесты рук и пальцев изолируют части фона в независимые области, которым затем назначаются управляющие параметры для манипулирования визуальными отображениями. Несколько управляющих параметров могут быть ассоциированы с атрибутами нескольких независимых областей, образованных двумя руками, для расширенного управления, включающего в себя одновременные функции щелканья, выбора, выполнения, горизонтального перемещения, вертикального перемещения, прокручивания, перетаскивания, вращательного движения, изменения масштаба, развертывания, свертывания, выполнения функций работы с файлами и выполнения выбора из меню. 3 н. и 17 з.п. ф-лы, 5 ил.

Рисунки к патенту РФ 2439653

УРОВЕНЬ ТЕХНИКИ

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

Современные компьютерные способы ввода обычно включают в себя как ввод текста с использованием клавиатуры, так и манипулирование курсором посредством мыши или стилуса. Повторяющиеся переключения между клавиатурой и мышью уменьшают эффективность для пользователей с течением времени. Методы компьютерного зрения пытаются улучшить несовершенства задач ввода человек-компьютер путем использования движений рук в качестве ввода. Такое использование было бы наиболее эффективным, если бы детектирование происходило при обычных положениях рук во время использования компьютера, таких как клавиатура. Многие из современных компьютерных методов, основанных на зрительном восприятии, применяют использование направленного или вытянутого пальца в качестве жеста ввода. Трудности детектирования такого жеста руки у местоположения клавиатуры или около него возникают вследствие сходства указывающего жеста с естественным расположением руки во время печатания.

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Сущность этого изобретения предусматривает введение упрощенных признаков и понятий виртуальных контроллеров для видеотерминалов, которое также описывается ниже в Подробном описании. Эта сущность не предназначена для идентификации существенных признаков заявленного объекта изобретения, и она также не предназначена для использования в определении объема заявленного объекта изобретения.

В одном осуществлении виртуального контроллера для видеотерминалов камера или другое сенсорное устройство детектирует изображение одной или более рук на уровне фона. Изображение сегментируется на области рук и области фона, и с различными интервалами подсчитываются отдельные, независимые области фона - «дырки» - образованные на изображении большим пальцем и пальцем, составляющим замкнутое кольцо (например, одна дырка может быть создана каждой рукой). Большой палец и указательный палец, когда их используют таким образом, называются «интерфейс большого и указательного пальцев» (TAFFI). Возможны другие типы интерфейсов рук и пальцев. По меньшей мере один контрольный параметр присваивается тогда каждой распознаваемой дырке или независимой области фона в захваченном изображении, причем этот контрольный параметр обычно разрешает руке пользователя управлять некоторым аспектом отображаемого изображения на экране или мониторе. Например, функция щелканья мышью может быть назначена в качестве контрольного параметра, когда большой палец и указательный палец руки касаются друг друга и создают визуально независимую область фона. Контрольные параметры могут назначаться таким образом, что отображаемое изображение меняется в зависимости от каждого изменения формы и/или положения независимой области, ассоциированной с контрольным параметром, или в зависимости от формирования или расформирования независимой области (высокое состояние, когда большой палец и указательный палец касаются, и низкое состояние, когда большой палец и указательный палец разомкнуты).

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Повсюду на чертежах используются одинаковые цифры для ссылок на подобные признаки и компоненты.

Фиг.1 представляет собой схему примерной автоматизированной системы, в которой может быть осуществлен примерный виртуальный контроллер для визуального отображения.

Фиг.2 - блок-схема примерной системы виртуального контроллера.

Фиг.3 - схема сегментации изображения, использованной в примерном сегментаторе системы виртуального контроллера Фиг.2.

Фиг.4 - схема примерного управления интерфейсом большого и указательного пальцев.

Фиг.5 - схема последовательности операций примерного способа управления визуальным отображением с помощью жестов руки и пальцев.

ПОДРОБНОЕ ОПИСАНИЕ

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

«Виртуальный» в словосочетании «виртуальный контроллер» относится к отсутствию устройства в физическом контакте с рукой пользователя. Так, в одном варианте осуществления, виртуальный контроллер состоит из камеры, установленной над руками и клавиатурой, и ассоциированной логической схемы для извлечения одного или более интерфейсов из визуального изображения рук пользователя. Разбиение на сегменты выделяет объекты рук из фона (например, при включении клавиатуры). Если пользователь соединяет указательный палец с большим (TAFFI, вверху), система распознает и табулирует независимую область фона, созданную этим жестом руки. То есть система распознает, что часть фона была визуально изолирована от остальной части основного фона касанием большого и указательного пальцев, сделавших полное замкнутое «кольцо», которое замыкает «дырку от бублика» области фона эллиптической формы. Детектирование визуального изображения способом, отличным от компьютерной камеры, также возможно. Например, двумерная матрица электродов или антенн, внедренных в клавиатуру или стол, может «формировать изображение» жеста руки с использованием электростатического или радиочастотного методов и обрабатываться способом, аналогичным захвату изображения с камеры.

В одном варианте осуществления независимая область фона считается отдельным визуальным объектом, когда она визуально разъединена или изолирована от других частей фона областями рук, или, в одном варианте осуществления, областями рук на изображении и/или на границе изображения. Когда изображение(я) рук и пальцев являются ограничивающими объектами для определения границ независимой области фона, тогда эллиптическая область между большим пальцем и указательным пальцем руки, которая создается, когда большой палец и указательный палец «смыкаются» (касаются друг друга), подсчитывается как новая независимая область фона приблизительно в тот момент, когда большой палец и указательный палец касаются. Новая независимая область фона может считаться «связным компонентом» в области анализа связных компонентов. Такие связные компоненты или новые независимые области фона - «дырки» - будут называться здесь «независимыми областями фона» или просто «независимыми областями». Следует понимать, что эта терминология относится к визуальному объекту, который считается отдельным, например, в области анализа связных компонентов.

Когда большой палец и указательный палец «разомкнуты», вновь образованная независимая область фона исчезает и снова становится частью большей независимой области фона.

В терминах области анализа связных компонентов связный компонент представляет собой группу пикселей в бинарном изображении с одинаковыми характерными признаками, которые группируются вместе на основании подобия характерных признаков. Каждый связный компонент часто соответствует отдельному визуальному объекту, увиденному человеком-наблюдателем. Каждую часть фона, которая визуально обособлена от других частей фона частью областей руки или пальцев на изображении, можно определить как независимую область или, на языке анализа связных компонентов, как вновь образованный связный компонент, отдельный от связного компонента фона.

Конечно, другие варианты осуществления могут использовать движения или касания других пальцев руки, образующих «дырку» или «независимую область». Так, «TAFFI» следует толковать свободно, как конфигурацию пальцев(а) и рук(и), которая визуально изолирует часть фона от остального общего фона. Например, большой палец и любой другой палец человеческой руки, или просто два пальца без большого пальца, также могут сформировать интерфейс «TAFFI». Для упрощения описания, однако, варианты осуществления будут как правило описываться в терминах «большого и указательного пальцев».

Как только модуль детектирования отличает новую независимую область фона от общей области фона, система ассоциирует вновь распознаваемую независимую область с одним или более управляющими параметрами, которые позволяют пользователю манипулировать отображаемым изображением на визуальном пользовательском интерфейсе. Отображаемое изображение на визуальном пользовательском интерфейсе может меняться посредством управляющего параметра, поскольку положение, форма и даже существование независимой области фона отслеживаются.

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

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

Примерная среда

Фиг.1 иллюстрирует примерную систему 100, в которой могут быть осуществлены интерфейсные методики виртуального контроллера, такие как интерфейс большого пальца и указательного пальца, TAFFI, введенный выше. Примерная система 100 включает в себя «отображаемое изображение» 102 на визуальном пользовательском интерфейсе (мониторе, экране или «отображении» 103), камеру 104 в сочетании с вычислительным устройством 105, мышь 106, клавиатуру 108, руки пользователя 110, показанные в контексте (не часть аппаратного обеспечения системы, конечно), и визуально независимую область 112, образованную рукой 110(1) пользователя, используемой как TAFFI. Камера получает захваченное изображение 114 рук, которое будет использоваться примерным устройством TAFFI 115. (Захваченное изображение 114 показано только для описательных целей, примерная система 100 не обязана отображать то, что захватывает камера.) Вычислительное устройство 105, размещающее механизм 115 TAFFI, может быть настольным устройством, переносным устройством, PDA или другим вычислительным устройством 105, которое может успешно регистрировать ввод от камеры 104, так что механизм TAFFI 115 может детектировать некоторые жесты рук и использовать их как ввод пользовательского интерфейса.

Камера 104 захватывает изображение одной руки 110(1), содержащее TAFFI, в то время как другая рука 110(2) остается в «традиционном» (не TAFFI) печатающем положении. Захваченное изображение 114 показывает детектирование независимой области 112 для руки 110(1), формирующей TAFFI, но не детектирование независимой области для руки 110(2), которая по-прежнему печатает или использует мышь для дополнительного ввода. Детектирование независимой области 112 камерой 104 отображается как затемненная область (112) в захваченном изображении 114. Это захваченное изображение 114 демонстрирует фазу в процессе, который будет описан дополнительно ниже, на которой примерная система 100 разделяет руки 110 и фон на непрерывные, сегментные области, такие как большая область фона, области рук и меньшие области фона, составляющие независимую область 112, образованную посредством TAFFI руки 110(1).

Система 100 может быть системой, основанной на визуальном восприятии («компьютерном зрении»), которая обеспечивает управление визуальным пользовательским интерфейсом посредством ввода жестом руки, детектированным камерой 104 или другим датчиком. Другими словами, примерная система 100 может управлять выводом отображения визуального пользовательского интерфейса многих различных типов программ или приложений, которые могут выполняться на вычислительном устройстве, включая отображения на основе Web. Так, примерная система 100 может заместить традиционные пользовательские устройства ввода, такие как мышь 106 и, при желании, клавиатура 108, включая их функции выбора, перемещения и изменения объектов, отображаемых на визуальном пользовательском интерфейсе 102, или даже ввода текста.

Виртуальный контроллер детектирует особенные жесты и движения рук как ввод пользователя. В иллюстрированном варианте осуществления камера 104, использованная для детектирования, помещена где-то над руками и клавиатурой, будучи прикреплена к монитору 103. Камера 104, помещенная в этом положении, обладает полем зрения, которое охватывает по меньшей мере большую часть клавиатуры 108 и приблизительно сфокусирована на плоскости рук 110 пользователя в нормальном положении печатания. В одном варианте осуществления могут быть помещены источники света, такие как инфракрасные или видимые LED, чтобы освещать руки 110 и клавиатуру 108, и могут также быть ориентированы для уменьшения эффектов переменного окружающего освещения. В некоторых случаях может быть достаточно окружающего света, так что для камеры не нужны дополнительные источники света, чтобы получить изображение. В разных вариантах камера 104 и/или дополнительные источники света могут быть помещены между различными клавишами клавиатуры 108, так что камера 104 обращена вверх и способна детектировать жесты рук и движения рук над клавиатурой 108.

Примером камеры 104, которая может быть использована в иллюстрированной примерной системе 100, является Web-камера 104 LOGITECH, которая получает полутоновые изображения с высоким разрешением на частоте 30 Гц (Фримонт, Калифорния). Камера 104 может быть прикреплена либо к клавиатуре 108, либо к монитору 103, либо куда-либо еще, где удобно.

В примерной системе 100 рука пользователя 110(1) может сформировать TAFFI, который создает визуальную область, независимую от остальной области фона, когда большой палец и указательный палец касаются. В одном варианте осуществления потенциальный TAFFI и присутствие или отсутствие одной или более независимых областей 112 детектируются процедурой обработки изображения в реальном времени, которая выполняется в вычислительном устройстве 105, чтобы постоянно следить и определять состояние обеих рук 110, например печатают ли руки 110 или формируют жест для ввода. Эта процедура обработки может вначале определять, находятся ли большой палец и указательный палец пользователя в контакте. Если пальцы находятся в контакте, вызывая независимую область 112 образования TAFFI, которую следует распознать, позиция контакта может быть прослежена двумерно. Например, позиция контакта большого пальца и указательного пальца может быть зарегистрирована в компьютере 105 как позиция указывающей стрелки или позиция курсора. Это распознавание позиции образования TAFFI и ассоциированной с ним независимой области 112 используется таким образом для установления позиции курсора и для управления отображаемым изображением, в одном варианте осуществления.

Быстрые движения рук, производящие независимую область 112, где независимая область 112 формируется, расформировывается и затем формируется снова внутри некоторого интервала времени, могут моделировать или имитировать «щелканье» мышью и позволять пользователю выбирать отображаемый элемент. Быстрое формирование, расформирование и формирование вновь независимой области 112 могут также позволять пользователю перетаскивать или прокручивать выбранные порции отображаемого изображения, перемещать объект в горизонтальном, вертикальном или диагональном направлениях, поворачивать, изменять масштаб и т.д. отображаемого изображения 102. Кроме того, в одном варианте осуществления перемещение TAFFI, который сформировал независимую область 112, ближе или дальше от камеры 104 может привести к увеличению и уменьшению отображаемого изображения.

Управление отображаемым изображением посредством многочисленных TAFFI может задействовать более одной руки 110. Проиллюстрированная примерная система 100 Фиг.1 является вариантом осуществления управления TAFFI, в котором управление изображением происходит от TAFFI одной руки 110(1), в то время как противоположная рука 110(2) печатает и выполняет другие задания ввода на клавиатуре 108. Но в другом варианте осуществления управления TAFFI обе руки 110 могут формировать соответствующие TAFFI, приводя к детектированию по меньшей мере двух независимых областей 112 камерой 104. Двуручное управление TAFFI может обеспечить управление вводом для точно настроенной навигации визуального пользовательского интерфейса. Двуручный подход обеспечивает многонаправленное манипулирование изображением в дополнение к увеличению, уменьшению масштаба и вращательным перемещениям, где манипулирование является более изощренным из-за взаимодействия независимых областей 112 нескольких TAFFI по отношению друг к другу.

Примерная система

Фиг.2 иллюстрирует различные компоненты примерной системы 100 виртуального контроллера. Проиллюстрированная конфигурация системы 100 виртуального контроллера является только одним примером расположения. Многие расположения проиллюстрированных компонент, или других подобных компонент, возможны внутри объема предмета изобретения. Примерная система 100 виртуального контроллера имеет несколько компонентов, таких как механизм TAFFI 115, которые могут быть выполнены в аппаратном обеспечении, программном обеспечении или комбинациях оборудования, программного обеспечения, встроенного программного обеспечения и т.д.

Примерная система 100 включает в себя аппаратное обеспечение 202, такое как камера 104 или другой датчик изображения, клавиатуру 108 и дисплей 103. Устройство 115 TAFFI включает в себя другие компоненты, такие как сегментатор 204 изображения, модуль 206 отслеживания независимых областей, механизм 208 управляющих параметров, включающий в себя модуль 210 связи.

В одном варианте осуществления камера 104 детектирует изображение, интерпретируемое как одна или более рук 110 на уровне фона. Пиксели захваченного изображения 114 включают в себя контрастные значения параметра, который будет использоваться для отличия рук 110 на изображении от области(ей) фона на изображении. Пригодные параметры для сопоставления рук и фона могут включать в себя яркость, оттенки серого цвета, насыщенность цветовых компонентов, значение цветовой плоскости, векторную величину пикселя, заданное значение таблицы компонентов цветов и т.д. В разных вариантах осуществления камера 104 может использовать один или другой из этих параметров для отличия пикселей руки от пикселей фона, например, в зависимости от того, используется ли инфракрасное освещение вместо обычного видимого спектра. Иногда получение захваченного изображения 114 с использованием инфракрасного света приводит к тому, что руки большинства людей различных оттенков кожи проявляются с одинаковым контрастом по отношению к фону независимо от вариаций цвета кожи и тона видимого спектра вследствие различия расы, загара и т.д. Таким образом, детектирование рук на фоне изображения может быть легко выполнено в инфракрасном свете безотносительно к видимым оттенкам кожи.

Сегментатор 204, таким образом, разделяет захваченное изображение 114 на одну или более областей рук 110 и область(и) фона, например, путем сегментации бинарного изображения в соответствии с параметрами контраста или яркости, описанными выше. Сегментация бинарного изображения отличает пиксели области фона от пикселей любого другого объекта (переднего плана) или области, присутствующей на захваченном изображении 114. В одном варианте осуществления сегментатор 204 разделяет изображение, определяя вначале пиксели, которые соответствуют области фона. Каждому пикселю области фона присваивается значение, такое как бинарные «единицы» (1). Всем оставшимся пикселям на захваченном изображении 114 присваиваются отличные значения, такие как «нули» (0).

Фиг.3 иллюстрирует пример 300 сегментации бинарного изображения, выполненного сегментатором 204. Захваченное изображение 114 включает в себя объект 302 фона и объект 304 руки на фоне. Существует ряд способов для получения сегментированных изображений, большинство из которых хорошо известны в технике. В одном варианте осуществления сегментатор 204 отличает пиксели области фона от пикселей любого другого объекта или области, которая присутствует на захваченном изображении 114 или в примере 300. Различение пикселей в бинарном изображении выполняется посредством рассмотрения каждого пикселя, соответствующего фону, как «включенного» или как фиксированного значения, такого как «единица». Каждое другое значение пикселя на изображении может затем сравниваться со значением сохраненного изображения фона. Любое другое значение пикселя, которое существенно ярче, чем соответствующее значение пикселя фона, считается частью новой области или объектом изображения и помечается «выключенный», или ему придается отличное значение, такое как «нуль».

Пример 300 может также иллюстрировать различение области 302 фона от других областей изображения в виде разницы цветов. Область 302 фона показана как более темный цвет, что уравнивается с первым значением. Объект 304 руки, показанный как более светлый цвет, уравнивается со вторым значением, отличающим его от области 302 фона.

Возвращаясь к Фиг.2, устройство 206 отслеживания независимых областей определяет, с фиксированными интервалами времени, количество независимых областей 112 фона. Каждая часть фона, которая визуально обособлена от других частей фона по меньшей мере частью нефоновых областей рук (или границей изображения), определяется как независимая область 112. Для каждой воспринятой независимой области 112 модуль 206 отслеживания независимых областей находит область пикселей «1», полностью окруженную пикселями «0» (т.е. не связанную более непрерывно с остальными пикселями «1», составляющими главный фон). Другими словами, устройство 206 отслеживания независимых областей находит области изолированного фона, которые очерчиваются жестом TAFFI касания большого пальца и указательного пальца.

Точное детектирование независимой области 112 как отдельной области фона, указывающее на намерение пользователя выбрать объект на дисплее 103, например, может быть гарантировано, что независимая область лежит полностью внутри захваченного изображения 114, воспринятого камерой 104, т.е. что никакая порция независимой области 112 не лежит на границе захваченного изображения 114.

Тем не менее, в одном варианте осуществления разновидность модуля 206 отслеживания независимых областей может воспринимать независимую область 112, даже когда часть независимой области 112 находится «вне экрана» - не включенная как часть захваченного изображения 114. Это может быть выполнено путем определения независимой области 112 в виде области фона, отрезанной от основного фона частью руки 110 или частью границы захваченного изображения 114. Но это только вариант того, как разграничить независимую область фона.

Как только существование одной или более независимых областей установлено, модуль 210 связи ассоциирует контрольный параметр для управления операциями визуального графического дисплея 102 на пользовательском интерфейсе с каждой подсчитанной независимой областью. Манипулирование может включать в себя ряд механизмов, включая управление курсором внутри визуального пользовательского интерфейса. Управление курсором визуального графического отображения 102 может быть выполнено, но только когда независимая область детектирована и ассоциирована с управляющим параметром. Если детектирование независимой области прекращается, ассоциация с управляющим параметром прекращается, и управление курсором и манипулирование отключаются. Управление курсором может включать в себя ряд манипуляций, включая действие «щелканья», имитирующее ввод от мыши. Действие щелканья обеспечивает выбор желаемой части визуального изображения на отображении 102, отслеживание и перетаскивание и многонаправленное перемещение и управление курсором.

Модуль 210 связи обеспечивает ассоциацию заданного управляющего параметра с жестом руки или пальца или с изменением жеста. Как только управляющий параметр присвоен или ассоциирован с жестом руки или пальца, то механизм 208 управляющих параметров может далее различать, как жест руки и управляющий параметр связаны друг с другом. Например, простое касание большого пальца с указательным пальцем может быть использовано в качестве «включения-выключения», бинарного интерфейса или переключателя высоких-низких или других двух состояний. Хотя атрибут жеста руки может меняться непрерывно, может назначаться обеспечение переменного управления над манипулированием отображаемого изображения, таким как постепенные перемещения отображаемого изображения 102 через континуум.

Когда модуль 210 связи присваивает переменный управляющий параметр для управления отображаемым изображением 102, например, в зависимости от изменений формы или положения соответствующей независимой области, аспект переменности может быть выполнен путем расчета среднего положения всех пикселей, принадлежащих каждой независимой области, и затем отслеживания изменений в положении формы, создаваемой, когда рука формирует TAFFI. Перемещение рук меняет ориентацию эллиптической формы независимых областей и вынуждает соответствующие изменения в атрибуте элемента изображения, ассоциированного с присвоенным управляющим параметром.

Управление отображаемым изображением

Фиг.4 показывает пример TAFFI 400, иллюстрированный в контексте захваченного изображения 114. Иллюстрированная часть захваченного изображения 114 включает в себя область 302 фона, область 110 объекта руки, независимую область 112 и границу 408 изображения. Каждая из областей 302, 110 и 408 могут быть описаны как отдельные связные области или связные компоненты. Механизм 115 TAFFI отличает независимую область 112 от других связных компонентов, 302 и 110.

Механизм 115 TAFFI может, таким образом, использовать подсчет связных компонентов изображения как основу для осуществления виртуального котроллера для видеотерминалов. Подробнее, связные компоненты являются подмножеством пикселей или участком изображения, на котором каждый пиксель «связан» с каждым другим пикселем в подмножестве. Термин «связный» обозначает множество пикселей, для которого является возможным достичь каждого пикселя из любого другого пикселя путем пересечения пикселей, которые принадлежат этому множеству. В настоящее время существуют эффективные методы для расчета множества связных компонентов на изображении. Методы связных компонентов могут быть эффективными направлениями для определения свойств форм на изображении, так как они допускают исследование малых множеств компонентов, состоящих из многих пикселей внутри пикселей целого изображения.

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

В одном варианте осуществления механизм 115 TAFFI подтверждает, что выявленная независимая область 112 лежит полностью внутри границ изображения, т.е. полностью в пределах области 302 фона. Иногда это ограниченное детектирование независимой области 112, которое имеет достаточный размер и не включает в себя пикселей на границе 408 изображения, подкрепляет достоверную идентификацию ожидаемых независимых областей 408. В этом одном варианте осуществления надлежащее детектирование выполняется путем отказа от ложных кандидатов в связные компоненты или тех, которые не лежат полностью внутри изображения и которые содержат участки на границе 408 изображения.

Все же, в другом варианте осуществления механизм 115 TAFFI детектирует независимую область 112 путем выявления участка независимой области 112 внутри захваченного изображения 114 и участка, лежащего вне экрана за границей 408 изображения. В этом варианте осуществления анализ связных компонентов продолжается до тех пор, пока независимая область 112 не является смежной с точкой столкновения и/или не выходит за пределы границы 408 изображения. Это может произойти, когда рука, формирующая TAFFI и независимую область 112, только частично находится в поле зрения камеры и поэтому только частично внутри детектируемого изображения.

В одном варианте осуществления механизм 115 TAFFI использует центр независимой области 112 для установления позиции курсора и управления курсором внутри отображаемого изображения 102. Механизм 115 TAFFI может выполнять статистический анализ для каждой распознаваемой независимой области 112, где модуль отслеживания 206 независимых областей вычисляет «центроид» или среднее положение пикселей из всех пикселей, принадлежащих к каждой независимой области 112. Это вычисленное положение является суммой многих положений пикселей, приводя к стабильности и прецизионности для этого осуществления. Среднее положение пикселей может быть вычислено на том же этапе, что и подсчет связных компонентов, приводя к эффективному методу, который обеспечивает быстрые результаты с низкими затратами на обработку.

Рассматривая появление и исчезновение независимых областей 408 как средства управления визуальным отображением, в одном варианте осуществления среднее положение пикселей из всех пикселей, принадлежащих к независимой области 112, устанавливает положение курсора и управление, только когда независимая область 112 вновь детектируется в течение одного интервала повторяющегося процесса детектирования.

Управление курсором с детектированием независимых областей 408 может имитировать устройство 106 ввода мышь. Аналогично мыши 106, относительное движение для управления курсором может быть рассчитано из текущего и прошлого положения детектируемой независимой области 112, образованной TAFFI 400. Соединение вместе большого пальца и указательного пальца является естественным движением, которое предусматривает не требующего усилий защелкивающего действия, как с устройством ввода мышью. Использование фильтра Калмана с детектированием TAFFI может сгладить перемещение курсора по визуальному отображению 103.

Примерное устройство 115 TAFFI поддерживает выбор объектов отображаемого изображения 102 путем быстрого формирования, расформирования и нового формирования независимой области 112 с пороговым временным интервалом. Эти действия имитируют «щелканье» кнопкой мыши для функций «выбора» или «выполнения» и могут также поддерживать переход от отслеживания к перетаскиванию выбранного объекта. Например, перетаскивание может быть осуществлено путем имитирования события «мышь-вниз», следующего немедленно за последним формированием независимой области 112. Соответствующее событие «мышь-вверх» генерируется, когда независимая область 112 исчезает при разжимании большого пальца и указательного пальца. Например, в момент формирования независимой области на визуальном отображении пользовательского интерфейса может быть выбран объект, такой как зона прокрутки в документе. Сразу же за этим выбором положение руки, формирующее независимую область 112, может переместиться тем же способом, каким могла бы перемещаться мышь 106 для прокрутки вниз в документе.

Механизм 115 TAFFI может обеспечить большее управление визуальным отображением 102, чем простое имитирование обычной функции, основанной на мыши. Среднее значение и ковариация положений пикселей независимой области 112 (связного компонента) могут быть соотнесены с ориентированной эллиптической моделью формы независимой области 112 путем расчета собственных векторов ковариационной матрицы положений пикселей. Квадратный корень из абсолютной величины собственных значений дает их пространственную протяженность, в размерах основной и дополнительной осей, в то время как ориентация эллипса определяется как арктангенс одного из собственных векторов, с точностью до неопределенности в 180 градусов. Получающаяся в результате неопределенность может быть устранена путем выбора вычисленной ориентации или ориентации, повернутой на +180 градусов, с тем чтобы минимизировать разницу в ориентации из предыдущего кадра.

Механизм TAFFI 115 может вычислять одновременные изменения в положении, ориентации и масштабе из эллиптической модели независимой области 112, созданной примерным TAFFI 400. В разных вариантах осуществления изменения в масштабе могут быть также использованы для детектирования перемещения руки по направлению к камере и от камеры. Это предполагает, что рука пользователя, образующая независимую область 112, как правило, удерживается внутри фиксированного диапазона расстояний от камеры 104, так что размер и форма независимой области 112 меняются только внутри допусков, так что видимые изменения в ориентации отчасти ограничены плоскостью области 302 фона или клавиатурой. В одном варианте осуществления важным фактором является то, что на всем протяжении взаимодействия пользователь должен поддерживать размер независимой области - размер эллиптической дырки, образованной TAFFI 400 - по мере того как пользователь перемещает руки вверх и вниз по отношению к камере или клавиатуре (т.е. в некоторых вариантах осуществления изменение по высоте смешивается с реальным изменением формы независимой области). В других вариантах осуществления устройство 115 TAFFI компенсирует изменения в размере независимой области, по мере того как рука перемещается вверх и вниз, используя логическую схему компьютерного зрения.

В одном примере осуществления устройство 115 TAFFI использует эллиптическую модель независимой области 112 для навигации одной рукой аэрофотоснимков и спутниковых изображений, например, таких, которые предоставляются web-службой WINDOWS ® LIVE VIRTUAL EARTH® или другими подобными картографическими службами Интернет (Редмонд, штат Вашингтон). Навигация путем перемещения поперек всего поля зрения виртуальной карты может быть выполнена TAFFI 400 с независимой областью 112, которая перемещается поперек области 302 фона, такой как стол или клавиатура. Вращение всей карты может быть выполнено путем вращения руки, образующей независимую область 112 внутри двумерной плоскости клавиатуры, в то время как функции увеличения и уменьшения в масштабе достигаются перемещением руки ближе или дальше от камеры 104.

Устройство 115 TAFFI может осуществить применение двух или более рук для управления курсором и навигации. Стратегия покадрового соотнесения позволяет непрерывно отслеживать каждую независимую область 112, либо как первую, либо как вторую, третью и т.д. область, детектируемую камерой для ввода. Помещение обеих рук на уровне области 302 фона для детектирования камерой и последующее перемещение рук по отношению к области 302 фона меняют ориентацию эллиптической модели независимых областей 408 и вынуждают перемещение визуального отображения пользовательского интерфейса, ассоциированного с позицией и локализацией перемещений рук через посредство управляющих параметров, присвоенных модулем 210 связи.

Одновременное отслеживание нескольких управляющих параметров, соответствующих нескольким жестам рук или пальцев, дает возможность осуществлять множество двуручных взаимодействий. Обращаясь вновь к примеру виртуальной карты Интернет, двуручный ввод для навигации виртуальной карты допускает одновременные изменения во вращении, трансляции и изменении масштаба поля зрения карты на дисплее 103. Так как оценки местоположения для независимых областей 408 извлекаются из положения рук, двуручный метод может обеспечить более устойчивые оценки перемещения, чем оценки метода одной руки. Двуручный метод, таким образом, обеспечивает: вращение по часовой стрелке и против часовой стрелки, где обе руки одновременно перемещаются в направлении вращения; перемещение всего визуального отображения пользовательского интерфейса в вертикальном или горизонтальном направлениях, где обе руки перемещаются в требуемом направлении; и функции изменения масштаба, где увеличение визуального отображения пользовательского интерфейса выполняется, когда обе руки начинают от совместного близкого расположения и затем отодвигаются друг от друга, и уменьшение визуального отображения пользовательского интерфейса совершается сведением рук вместе из разведенного начального положения.

Одновременные изменения в положении, ориентации и масштабе, вычисленные из эллиптической модели независимой области 112, могут быть использованы в вариантах осуществления, иных, чем стандартные среды вычислительных устройств. Например, механизм 115 TAFFI может управлять интерактивными системами на поверхности стола, которые включают в себя камеру и проектор на столе, а не традиционные устройства ввода, такие как мышь, сенсорный экран или клавиатура. Пользователь размещает руки над поверхностью стола, образуя независимые области 408, чтобы обеспечить манипулирование и взаимодействие с поверхностью стола и с материалом, отображаемым на поверхности. Похожее осуществление может включать в себя систему, которая проектирует изображение отображения на стену, где пользователь может взаимодействовать и управлять изображением отображения посредством рук и пальцев, действующих как TAFFI 400. Например, устройство 115 TAFFI может позволять пользователю менять слайды в течение проекторной презентации.

Примерный способ

Фиг.5 показывает примерной способ 500 управления визуальным отображением посредством жеста руки или пальца. На блок-схеме последовательности операций операции сведены в индивидуальных блоках. В зависимости от варианта осуществления примерный способ 500 может быть выполнен аппаратным обеспечением, программным обеспечением или комбинациями оборудования, программного обеспечения, встроенного программного обеспечения и т.д., например компонентами примерной системы 100 виртуального контроллера и/или примерным механизмом 115 TAFFI.

В блоке 502 захватывается изображение одной или более рук 110 на уровне фона посредством камеры 104. Контрастность, цвет или яркость могут быть атрибутами пикселей, которые позволяют различить руки и окружающую область фона. Руки распознаются более легко на контрастном фоне. Один сценарий распознавания рук работает во время печатания на клавиатуре 108. Камера 104 захватывает изображение рук 110 и клавиатуры 108, воспринимаемой как часть области фона. Инфракрасное освещение LED также может использоваться для этого способа, который предлагает управляемую подсветку, заставляя большинство рук выглядеть похожими для камеры 104 в оттенке кожи.

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

В блоке 506 количество независимых областей фона подсчитывается с повторяющимися интервалами детектирования. Независимые области 408 определяются как каждая часть 302 фона, которая визуально изолирована от других частей фона по меньшей мере частью одного из объектов рук 110. Например, когда рука действует как интерфейс большого и указательного пальцев, или TAFFI, большой и указательный пальцы руки создают замкнутую область, независимую от остальной части общей области фона. Эта замкнутая область формирует новую независимую область 112, к которой может быть прикреплен управляющий параметр для управления визуальным отображением. В одном варианте осуществления способ тестирует, являются ли детектируемые независимые области действительно независимыми, т.е., в одном случае, имеет ли независимая область пиксели на границе изображения.

В блоке 508 управляющий параметр для управления изображением на дисплее ассоциируется с каждой подсчитанной независимой областью или ее атрибутом. Например, независимая область 112, созданная рукой, использованной как TAFFI, воспринимается камерой 104 и сопоставляется с управляющим параметром, разрешающим пользователю выбрать объект на отображении пользовательского интерфейса. Впоследствии вторая воспринимаемая независимая область 112 соотносится с управляющим параметром пользовательского интерфейса, позволяя пользователю переместить выбранный ранее объект в другое местонахождение на дисплее пользовательского интерфейса. Эта быстрая последовательность распознавания первой и второй независимых областей 112 может происходить в результате быстрого формирования, расформирования и нового образования независимых областей 408, приводя к функции «щелканья» типа мыши, ассоциированной с обнаруженной независимой областью 112.

В блоке 510 отображаемое изображение изменяется посредством управляющего параметра по отношению к каждому изменению атрибута независимой области, которая присваивается управляющему параметру. Например, положение независимой области 112 может перемещаться налево или направо по отношению к считывающей камере 104 и отображаемое изображение 102 может следовать соответственно. Ассоциация воспринимаемой независимой области 112 с управляющим параметром разрешает управление отображаемым визуальным изображением 102 соответственно перемещению, положению и взаимосвязи рук, используемых как TAFFI.

Вышеупомянутый способ 500 и другие родственные способы могут быть осуществлены в общем контексте исполняемых команд компьютера. В общем случае, исполняемые команды компьютера могут включать в себя подпрограммы, программы, объекты, компоненты, структуры данных, процедуры, модули, функции и тому подобные элементы, которые выполняют специальные функции или осуществляют специальные типы абстрактных данных. Способы могут также применяться на практике в распределенной вычислительной среде, где функции выполняются удаленными обрабатывающими устройствами, которые связаны посредством коммуникационной сети. В распределенной вычислительной среде исполняемые команды компьютера могут быть локализованы как в местных, так и в удаленных накопителях компьютера, включая устройства хранилища памяти.

Заключение

Хотя примерные системы и способы описаны на языке, специфическом для структурных признаков и/или методологических этапов, следует понимать, что предмет изобретения, определенный в прилагаемой формуле изобретения, не обязательно ограничен специфическими признаками или описанными этапами. Скорее, специфические признаки и этапы раскрыты как примерные формы осуществления заявляемых способов, устройств, систем и т.д.

ФОРМУЛА ИЗОБРЕТЕНИЯ

1. Способ управления отображаемым изображением, содержащий этапы, на которых:

детектируют изображение одной или более рук напротив, по существу, неподвижного фона посредством камеры;

сегментируют изображение на области рук и области фона;

с интервалами выполняют подсчет количества независимых областей фона, причем каждая часть фона, которая визуально независима от других частей фона, определяется как независимая область, при этом каждая из независимых областей визуально отделена от других частей фона, по меньшей мере, частью областей рук;

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

изменяют отображаемое изображение посредством управляющего параметра в зависимости от каждого изменения в форме и/или положении независимой области, ассоциированной с управляющим параметром.

2. Способ по п.1, дополнительно содержащий этап, на котором разобщают управляющий параметр и ассоциированную независимую область, когда независимая область снова становится связной.

3. Способ по п.1, в котором управляющий параметр содержит имитирование приведения в действие кнопки мыши, когда независимая область формируется, расформировывается и переформировывается в пределах порогового интервала времени.

4. Способ по п.1, в котором управляющий параметр содержит имитирование и перемещение указателя мыши.

5. Способ по п.1, в котором управляющий параметр содержит перемещение курсора.

6. Способ по п.1, в котором управляющий параметр содержит перемещение отображаемого изображения по отношению к пользовательскому интерфейсу.

7. Способ по п.6, в котором перемещение содержит одно из вертикального перемещения, горизонтального перемещения и вращательного движения.

8. Способ по п.1, в котором управляющий параметр содержит изменение масштаба или уменьшение размера отображаемого изображения на пользовательском интерфейсе.

9. Способ по п.1, дополнительно содержащий этап, на котором ассоциируют управляющий параметр с взаимосвязью между двумя независимыми областями, причем каждая независимая область сформирована изображением соответствующей руки.

10. Способ по п.9, в котором управляющий параметр содержит растягивание отображаемого изображения в зависимости от изменения расстояния между двумя независимыми областями.

11. Способ по п.9, в котором управляющий параметр, ассоциированный с зависимостью между двумя независимыми областями, управляет одним из:

вращения отображаемого изображения в зависимости от вращения линии между двумя независимыми областями;

Вращения отображаемого изображения в направлении по часовой стрелке или против часовой стрелки, когда обе независимые области перемещаются по дуге в аналогичном направлении;

перемещения всего отображаемого изображения, когда обе независимые области перемещаются одновременно в одном и том же направлении; и

изменения масштаба отображаемого изображения, когда меняется расстояние между независимыми областями.

12. Способ по п.1, в котором область большого пальца и область указательного пальца одной из областей рук определяют интерфейс большого и указательного пальцев (TAFFI), причем область большого пальца и область указательного пальца визуально касаются друг друга, чтобы визуально разъединить часть фона от других частей фона, чтобы образовать независимую область.

13. Система для управления отображаемым изображением, содержащая:

датчик изображений для детектирования изображения, включающего в себя одну или более рук напротив, по существу, неподвижного фона;

модуль сегментации изображений для сегментации изображения на одну или более областей рук и фона;

отслеживающий модуль для подсчета, с интервалами, количества независимых областей фона, причем каждая часть фона, которая визуально независима от других частей фона, определяется как независимая область, при этом каждая из независимых областей визуально отделена от других частей фона, по меньшей мере, частью областей рук;

связующий модуль для ассоциирования управляющего параметра для манипулирования отображаемым изображением на пользовательском интерфейсе с центроидом каждой подсчитанной независимой области, причем центроид представляет собой среднее положение пикселя от всех пикселей, принадлежащих данной независимой области; и

при этом каждое изменение в форме и/или положении независимой области, ассоциированной с управляющим параметром, модифицирует отображаемое изображение посредством управляющего параметра.

14. Система по п.13, в которой, когда независимая область вновь становится связной, связующий модуль разобщает соответствующий управляющий параметр от ассоциированной независимой области.

15. Система по п.13, в которой связующий модуль ассоциирует управляющий параметр, который имитирует приведение в действие кнопки мыши, когда независимая область формируется, расформировывается и переформировывается в пределах порогового интервала времени.

16. Система по п.13, в которой связующий модуль ассоциирует управляющий параметр для имитации перемещения визуального индикатора, выбранного из группы визуальных индикаторов, состоящих из изображения указателя мыши, изображения курсора и по меньшей мере части отображаемого изображения, при этом перемещение содержит перемещение, выбранное из группы перемещений, состоящих из вертикального перемещения, горизонтального перемещения, вращательного движения, перемещения с увеличением масштаба и перемещения с уменьшением масштаба.

17. Система по п.13, в которой связующий модуль ассоциирует управляющий параметр с взаимосвязью между двумя независимыми областями, при этом каждая независимая область сформирована изображением соответствующей руки.

18. Система по п.17, в которой связующий модуль ассоциирует управляющий параметр для растяжения отображаемого изображения в зависимости от изменения расстояния между двумя независимыми областями.

19. Система по п.17, в которой связующий модуль ассоциирует управляющий параметр для вращения отображаемого изображения в зависимости от вращения линии между двумя независимыми областями.

20. Система для изменения отображаемого изображения на пользовательском интерфейсе посредством управляющего параметра, назначенного перемещению руки, содержащая:

средство для детектирования изображения одной или более рук напротив, по существу, неподвижного фона;

средство для сегментации изображения на одну или более областей рук и фона;

средство для подсчета, с фиксированными интервалами, количества независимых областей фона, где каждая часть фона, которая визуально независима от других частей фона и визуально отделена, по меньшей мере, частью области руки от других частей фона, определяется как независимая область;

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