Полная виртуализация
В компьютерных науках полная виртуализация — это технология, используемая для предоставления определенной виртуальной среды, которая обеспечивает полное симулирование базового оборудования. Любое программное обеспечение, которое может работать на базовом оборудовании может быть запущено в виртуальной среде, как правило любая операционная система должна выполняться без проблем в виртуальной среде, при условии, что она работает на базовом оборудовании.
Другие типы платформенной виртуализации позволяют выполняться в виртуальной среде только некоторому или модифицированному программному обеспечению.
Пример полной виртуализации реализован в управляющей программе IBM CP/CMS ОС. Она впервые продемонстрирована в исследовательской системе IBM CP-40 в 1967-м году, затем она предоставлялась с открытым исходным кодом в CP/CMS 1967—1972 гг и была внедрена в линейку VM с 1972 до настоящего времени. Каждому пользователю CP/CMS была предоставлена имитация автономного компьютера. Каждая такая виртуальная машина имела все возможности базовой машины, и для своих пользователей виртуальная машина была ничем неотличима от реальной. Эта имитация была полной основывалась на принципе оперативных инструкций к оборудованию. Таким образом она включает такие элементы как: набор инструкций, оперативную память, прерывания, исключения и устройства доступа. В результате получили систему, которая могла мультиплексировать много пользователей.
Полная виртуализация возможна исключительно при условии правильной комбинации оборудования и программного обеспечения. Например, она была невозможной ни в серии IBM System/360, за исключением IBM System/360-67, ни в ранних IBM System/370, пока IBM не добавила оборудование виртуальной памяти в своих System/370 в 1972 г.
Аналогичная ситуация и с платформой х86: полная виртуализация была возможна не в полной мере, до добавления технологий AMD-V и Intel VT(эти технологии ниже будут рассмотрены более подробно в пункте «Аппаратная виртуализация»). Много продуктов виртуализации для платформы x86 подошли вплотную и заявляли о полной виртуализации еще до реализации AMD-V и Intel VT. Примеры включают такие решения как: ADEOS, Mac-на-Linux, Parallels Desktop для Mac, Parallels Workstation, VMware Workstation, VMware Server (бывший GSX Server), VirtualBox, Win4BSD и Win4Lin Pro.
VMware, например, использует технологию, называемую «бинарной трансляцией», для автоматического изменения ПО для x86 «на лету», для замены инструкций безопасными для виртуальной машины последовательностями инструкций. Эта технология предоставляет видимость полной виртуализации.
Ключевой задачей полной виртуализации является перехват и симуляция привилегированных операций, таких как инструкции ввода-вывода. Эффект выполнения каждого процесса, запущенного в определенной виртуальной машине, должен быть сохранен только в пределах этой виртуальной машины — нельзя допустить, чтобы виртуальные процессы изменяли состояние других виртуальных машин, управляющей программы или оборудования. Некоторые машинные команды могут быть выполнены непосредственно на оборудовании, поскольку их результаты целиком содержатся в элементах, управляемых управляющей программой, таких как память и арифметические регистры. Но другие инструкции, нельзя разрешать выполнять напрямую, — они должны быть перехвачены и симулированы. Это инструкции к доступу или изменению статической информации, которая находится за пределами виртуальной машины.
Полная виртуализация была успешно опробована для:
совместного использования компьютера несколькими пользователями;
изоляции пользователей друг от друга (и от управляющей программы);
эмуляции нового оборудования для обеспечения лучшей надежности, безопасности и производительности. Источник: Википедия
Связанные понятия
Паравиртуализация (англ. Paravirtualization) — техника виртуализации, при которой гостевые операционные системы подготавливаются для исполнения в виртуализированной среде, для чего их ядро незначительно модифицируется. Операционная система взаимодействует с программой гипервизора, который предоставляет ей гостевой API, вместо использования напрямую таких ресурсов, как таблица страниц памяти, код, касающийся виртуализации, локализуется непосредственно в операционную систему. Паравиртуализация таким...
О типе данных в БД см. BLOB.Блоб (от англ. binary linked object — объект двоичной компоновки) — объектный файл без публично доступных исходных кодов, загружаемый в ядро операционной системы. Обычно этот термин применяется только по отношению к модулям, загружаемым в ядро свободной или открытой операционной системы; термин редко применяется по отношению к коду, выполняющемуся не в режиме ядра, например, код BIOS, микропрограммный код устройств, программы, выполняющиеся в пользовательском режиме.
Подробнее: Блоб
Библиотека среды выполнения (также библиотека времени исполнения; англ. runtime library, RTL) — набор библиотек (модулей) той или иной системы программирования, поставляемых вместе с компилятором, операционной системой или средой разработки программ. Как следует из названия, RTL обеспечивает поддержку функций, предоставляемых системой программирования, во время выполнения программы от начала до её завершения.
Терминальный доступ — доступ к информационной системе (ИС), организованный так, что локальная машина-терминал не выполняет вычислительной работы, а лишь осуществляет перенаправление ввода информации (от мыши и клавиатуры) на центральную машину (терминальный сервер) и отображает графическую информацию на монитор. Причём вся вычислительная работа в терминальной системе выполняется на центральной машине.
Многопользовательское, мультерминальное или терминальное решение позволяет организовать на базе одного компьютера несколько независимых мест — терминалов — с возможностью одновременной работы.
Подробнее: Многопользовательская система
Пакетное задание (англ. batch job) — способ запуска задач на исполнение для избегания простоев вычислительных систем. Фактически представляет собой список запускаемых программ с указанием параметров запуска и входных данных. Задачи запускаются последовательно. Концепция была разработана примерно в 1960-х годах и до сих пор применяется в некоторых операционных системах, в частности, на мейнфреймах производства IBM.
Это
список известных операционных систем. Операционные системы могут быть классифицированы по базовой технологии (UNIX-подобные, пост-UNIX/потомки UΝΙΧ), типу лицензии (проприетарная или открытая), развивается ли в настоящее время (устаревшие или современные), по назначению (универсальные, ОС встроенных систем, ОС PDA, ОС реального времени, для рабочих станций или серверов), а также по множеству других признаков.
В программировании то́чка остано́ва (англ. breakpoint) — это преднамеренное прерывание выполнения программы, при котором выполняется вызов отладчика (одновременно с этим программа сама может использовать точки останова для своих нужд). После перехода к отладчику программист может исследовать состояние программы (логи, состояние памяти, регистров процессора, стека и т. п.), с тем чтобы определить, правильно ли ведёт себя программа. В отличии от полной остановки, с помощью останова, после работы в...
Подсистема хранения (англ. database engine, storage engine) — компонент СУБД, управляющий механизмами хранения баз данных, или библиотека, подключаемая к программам и дающая им функции СУБД.
Внедрение зависимости (англ. Dependency injection, DI) — процесс предоставления внешней зависимости программному компоненту. Является специфичной формой «инверсии управления» (англ. Inversion of control, IoC), когда она применяется к управлению зависимостями. В полном соответствии с принципом единственной ответственности объект отдаёт заботу о построении требуемых ему зависимостей внешнему, специально предназначенному для этого общему механизму.
Трёху́ровневая архитекту́ра (трёхзве́нная архитекту́ра, англ. three-tier) — архитектурная модель программного комплекса, предполагающая наличие в нём трёх компонентов: клиента, сервера приложений (к которому подключено клиентское приложение) и сервера баз данных (с которым работает сервер приложений).
Пользовательское пространство — адресное пространство виртуальной памяти операционной системы, отводимое для пользовательских программ, в отличие от пространства ядра, которое резервируется для работы ядра операционной системы, его расширений и, возможно, некоторых драйверов устройств. В англоязычной компьютерной литературе термин «Userland» часто используется для обозначения совокупности приложений, которые выполняются в пространстве пользователя.
Загру́зчик (англ. loader) — в информатике, программа, отвечающая за загрузку исполнимых файлов и запуск соответствующих новых процессов. Обычно является частью операционной системы, но может быть и самостоятельной программой — к примеру, позволяющей операционной системе запускать программы, скомпилированные для других операционных систем (см. также: эмуляторы, WINE).
Портлет — подключаемый, сменный компонент пользовательского интерфейса веб-портала (элемент веб-страницы).
Открытая система - по определению,предназначена взаимодействовать с другими приложениями на локальных и удалённых системах, и взаимодействовать с пользователями в стиле, который облегчает переход пользователей от системы к системе.
Атака возврата в библиотеку (англ. Return-to-libc attack) — один из видов компьютерных атак, популярных на x86-совместимых машинах и схожие с ними, связанных с переполнением буфера, когда адрес возврата функции на стеке подменяется адресом иной функции в программе, и в последующую часть стека записываются параметры для вызываемой функции. Эта техника позволяет нападающему выполнить какую-либо существующую функцию без необходимости внедрять вредноносный код в программу.
Инверсия управления (англ. Inversion of Control, IoC) — важный принцип объектно-ориентированного программирования, используемый для уменьшения зацепления в компьютерных программах. Также архитектурное решение интеграции, упрощающее расширение возможностей системы, при котором поток управления программы контролируется фреймворком.
Менеджер памяти — часть компьютерной программы (как прикладной, так и операционной системы), обрабатывающая запросы на выделение и освобождение оперативной памяти или (для некоторых архитектур ЭВМ) запросы на включение заданной области памяти в адресное пространство процессора.
Адаптер программного компонента — это тип программного обеспечения, которое логически располагается между двумя программными компонентами и устраняет различия между ними.
Внутрисхемное программирование (англ. in-system programming, сокр. ISP, также in-circuit serial programming, ICSP) — технология программирования электронных компонентов (ПЛИС, микроконтроллеры и т. п.), позволяющая программировать компонент, уже установленный в устройство. До появления этой технологии компоненты программировались перед установкой в устройство, для их перепрограммирования требовалось их извлечение из устройства.
Бездисковая рабочая станция — это персональный компьютер, лишённый несъёмных средств для долговременного хранения данных. Существуют два основных сценария использования бездисковых рабочих станций...
Фрагментация платформы — ситуация, когда у какой-то вычислительной платформы становится настолько много моделей аппаратуры и версий ОС, что становится практически невозможным написать программу, хорошо работающую на всех устройствах, созданных на базе данной вычислительной платформы.
Контрольная точка — служебная информация, которая записывается операционной системой на жесткий диск или другой носитель для обработки исключительных ситуаций, таких как перезапуск, сбой или отказ оборудования. По состоянию контрольной точки операционная система может определить был сбой или нет и восстановить данные, вычислительные потоки. При этом часть данных между последней записью контрольной точки до сбоя теряются. При решении объемных задач контрольные точки эффективно восстанавливают процесс...
Твикер (англ. tweaker) — утилита для тонкой настройки операционной системы либо программного обеспечения, за счёт изменения определённых параметров (нередко скрытых или труднодоступных для пользователя). Часто твикеры используют для персональной настройки внешнего вида графического интерфейса пользователя. В операционных системах семейства Windows твикеры обычно изменяют значения в реестре либо в конфигурационных файлах, которые зачастую невозможно изменить используя средства, предоставляемые системой...
Коробочный программный продукт — это программное обеспечение, предназначенное для неопределённого круга покупателей и поставляемое на условиях «как есть», со стандартными для всех покупателей функциями, в отличие от заказного программного продукта, само появление которого обусловлено требованием конкретного заказчика, и в отличие от проектного программного продукта, продажа которого может, по требованию заказчика, сопровождаться проектной доработкой или разработкой функций, дополняющих стандартные...
Маршалинг (от англ. marshal — упорядочивать) в информатике — процесс преобразования информации (данных, двоичного представления объекта), хранящейся в оперативной памяти, в формат, пригодный для хранения или передачи. Процесс похож на сериализацию (отличия см. ниже). Обычно применяется тогда, когда информацию (данные, объекты) необходимо передавать между различными частями одной программы или от одной программы к другой.
Менеджер окон — компьютерная программа, управляющая размещением и определяющая внешний вид окон в оконной системе графического пользовательского интерфейса. Оконные менеджеры работают «поверх» существующей оконной системы, обеспечивающей требуемую функциональность, такую как поддержку графического оборудования, манипуляторов, клавиатуры. Часто оконные менеджеры базируются на некоторой библиотеке пользовательского интерфейса.
Вектор атаки — последовательность действий или средство для получения неавторизованного доступа к защищённой информационной системе.
Устройство ввода-вы́вода — компонент типовой архитектуры ЭВМ, предоставляющий компьютеру возможность взаимодействия с внешним миром и, в частности, с пользователями.
Сервисная шина предприятия (англ. enterprise service bus, ESB) — связующее программное обеспечение, обеспечивающее централизованный и унифицированный событийно-ориентированный обмен сообщениями между различными информационными системами на принципах сервис-ориентированной архитектуры. Понятие введено в начале 2000-х годов специалистами подразделения Progress Software — Sonic, разрабатывавшими MOM-продукт SonicMQ.
В программировании, ассемблерной вставкой называют возможность компилятора встраивать низкоуровневый код, написанный на ассемблере, в программу, написанную на языке высокого уровня, например, Си или Ada. Использование ассемблерных вставок может преследовать следующие цели...
Подробнее: Ассемблерная вставка
Таблица векторов прерываний (англ. Interrupt Descriptor Table, IDT) используется в архитектуре x86 и служит для определения корректного ответа на прерывания и исключения.
Эталонная реализация (от англ. reference implementation) (реже используется образец реализации (sample implementation) или модель реализации (model implementation)) — реализация программного обеспечения, точно соответствующая спецификации некоторого стандарта (например, сетевого протокола, алгоритма кодирования или языка программирования), либо созданная для демонстрации этой спецификации в действии.
Файловая система Minix (англ. MINIX file system) — первая файловая система, которая использовалась в операционной системе Minix, ставшей прообразом ядра ОС Linux. Разработана в 1980-х Эндрю Таненбаумом. Она имела массу недостатков: ограничения размера раздела жесткого диска 64 мегабайтами; длина имени файла была ограничена 30 символами и т.д. Она продолжает использоваться для дискет и RAM-дисков.
Мидлет (англ. MIDlet, от англ. MID «Mobile Information Device» и англ. -let «нечто маленькое») — приложение для профиля MIDP платформы Java ME. Примером мидлетов являются игры для мобильных телефонов. Приложения MIDP названы «мидлетами» по аналогии с терминами «апплет» и «сервлет».
Адаптер (англ. Adapter) — структурный шаблон проектирования, предназначенный для организации использования функций объекта, недоступного для модификации, через специально созданный интерфейс. Другими словами — это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе.
Аппле́т (англ. applet от application — приложение и -let — уменьшительный суффикс) — это несамостоятельный компонент программного обеспечения, работающий в контексте другого, полновесного приложения, предназначенный для одной узкой задачи и не имеющий ценности в отрыве от базового приложения.
Объе́ктно-ориенти́рованное проектирование (ООП) — часть объектно-ориентированной методологии, которая предоставляет программистам возможность оперировать понятием «объект», помимо понятия «процедура» при разработке кода.
Конфигурационное управление (англ. software configuration management, SCM) в программной инженерии — комплекс методов, направленных на систематический учёт изменений, вносимых разработчиками в программный продукт в процессе его разработки и сопровождения, сохранение целостности системы после изменений, предотвращение нежелательных и непредсказуемых эффектов, формализацию процесса внесения изменений.
Дополнительная память (англ. Extended memory, XMS) — память за пределами первого мегабайта адресного пространства IBM PC-совместимого компьютера с процессором Intel 80286 или более поздним.
Аппаратный порт — специализированный разъём в компьютере, предназначенный для подключения оборудования определённого типа. Обычно портами называют разъёмы, предназначенные для работы периферийного оборудования, существенно разделённого от архитектуры компьютера (например, не называют портами разъёмы PCI/ISA/AGP/VLB/PCI-E-шин, разъёмы для оперативной памяти и процессора).
Повсеместные вычисления (вездесущие вычисления, юбикомп, от англ. ubiquitous computing) — понятие, обозначающее модель взаимодействия человека с вычислительной системой, в которой пользователь окружён вычислительными устройствами, пронизывающими окружающую среду, интегрированными в повседневные вещи. В отличие от виртуальной реальности, где в компьютере отражается виртуальный мир, при повсеместных вычислениях компьютеры привносятся в реальный мир вокруг человека, этот мир состоит из множества цифровых...
В Unix-подобных операционных системах пользователи идентифицируются идентификаторами пользователя (англ. User identifier, UID).
Подробнее: Идентификатор пользователя
Автодополнение , автозавершение (англ. autocomplete) — функция в программах, предусматривающих интерактивный ввод текста (редакторы, оболочки командной строки, браузеры и т. д.) по дополнению текста по введённой его части.
Веб-устройство (англ. Web-device или Web-устройство, или устаревший термин: англ. Internet appliance) — цифровое устройство (не только компьютер), имеющее возможность быть постоянно подключенным к сети интернет и используемое для взаимодействия с какими-либо веб-службами. Большинство современных веб-устройств предоставляют удобный способ запуска веб-приложений и веб-серфинга (просмотра веб-сайтов и веб-страниц во всемирной паутине).
Не путайте с ECC памятью, хотя регистровые модули всегда используют ECC.Регистровая память (англ. Registered Memory, RDIMM, иногда buffered memory) — вид компьютерной оперативной памяти, модули которой содержат регистр между микросхемами памяти и системным контроллером памяти. Наличие регистров уменьшает электрическую нагрузку на контроллер и позволяет устанавливать больше модулей памяти в одном канале. Регистровая память является более дорогой из-за меньшего объема производства и наличия дополнительных...
Подробнее: Регистровая память
Обёртка библиотеки (англ. wrapper) является промежуточным слоем между прикладной программой и другой библиотекой или интерфейсом программирования приложений (API).
Сервлет является интерфейсом Java, реализация которого расширяет функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ.