Эмуляция

Поделись знанием:
(перенаправлено с «Эмулятор»)
Перейти к: навигация, поиск

Эмуля́ция (англ. emulation) в вычислительной технике — комплекс программных, аппаратных средств или их сочетание, предназначенное для копирования (или эмулирования) функций одной вычислительной системы (гостя) на другой, отличной от первой, вычислительной системе (хосте) таким образом, чтобы эмулированное поведение как можно ближе соответствовало поведению оригинальной системы (гостя). Целью является максимально точное воспроизведение поведения в отличие от разных форм компьютерного моделирования, в которых имитируется поведение некоторой абстрактной модели. Например, моделирование урагана или химической реакции не является эмуляцией.





Эмуляция в вычислительной технике

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

Аппаратная эмуляция представлена эмуляторами, выполненными в виде отдельного устройства. Например, DOS-совместимые карты расширения наподобие Centris 610 и Performa 630, устанавливавшиеся в некоторые Macintosh для обеспечения возможности запуска DOS-программ с ПК. Другим примером являются аппаратные эмуляторы на основе ППВМ.

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

Электронное архивирование

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

Эмуляция адресует аппаратное и программное окружение оригинального цифрового устройства и воссоздает его на современной машине.[2] Эмуляция позволяет пользователю получить доступ к любому типу прикладного программного обеспечения или операционных систем на современной платформе, причем программное обеспечение выполняется так же, как и в оригинальном окружении.[3] Джеффри Ротенберг (Jeffery Rothenberg), один из первых сторонников применения эмуляции для электронного архивирования, считает, что «идеальным было бы единое расширяемое долговременное решение, которые могло бы быть разработанным раз и навсегда, и применялось бы единообразно, автоматически и синхронно (например, каждый цикл обновления) ко всем типам документов и носителей.»[4] Далее он замечает, что это решение должно применяться не только к устаревшим системам, но и быть легко переносимым на пока неизвестные будущие системы.[5] На практике в случае, если выпускается новая версия приложения с целью обеспечения совместимости и миграции всех входящих в него компонентов, необходимо для этого приложения создать эмулятор, обеспечивающий доступ ко всем упомянутым компонентам.

Достоинства

  • Эмуляция сохраняет также вид, поведение и ощущение от оригинальных систем, что не менее важно, чем данные сами по себе.[3]
  • Несмотря на высокую изначальную стоимость создания эмулятора, со временем эмуляторы могут становиться более финансово выгодным решением.[6]
  • Сокращает трудозатраты, так как вместо долгой и постоянно продолжающейся работы по миграции данных для каждого цифрового объекта, при внесении библиотек приложений и операционных систем прошлого и настоящего в эмулятор для работы со всеми документами можно использовать одинаковые технологии.[3]
  • Многие эмуляторы разработаны и доступны под лицензией GNU General Public License как открытое программное обеспечение, что расширяет масштабы сотрудничества.[2]
  • Эмуляция позволяет использовать программное обеспечение, эксклюзивное для одной платформы, на другой платформе. Например, игры, эксклюзивные для PlayStation 2, теоретически могут быть эмулированы на ПК или Xbox 360. Это особенно полезно, когда оригинальная система труднодоступна для обретения или несовместима с современным оборудованием (например, старые игровые приставки может быть технически невозможно подключить к современным телевизорам).

Препятствия

  • Интеллектуальная собственность. Многие технологические компании, чтобы занять свою нишу на рынке, применяют при разработке своих продуктов нестандартизированные функции, постоянно внедряя улучшения, чтобы продукт оставался конкурентоспособным. Хоть это и приносит пользу, насыщая рынок технологичными продуктами и увеличивая рыночную долю продукта, это создает существенные проблемы пользователям, занимающимся архивированием, ввиду отсутствия всей необходимой документации, так как аппаратное и программное обеспечение проприетарно по своей сути.[7]
  • Законы об авторских правах до сих пор не регламентируют защиту документации и спецификаций проприетарного оборудования и программ, встроенных в эмулятор.[8]
  • Эмуляция часто используется в пиратских целях, поскольку эмуляторы освобождают пользователя от необходимости купить оригинальную приставку и крайне редко содержат какие-либо средства противодействия использованию нелегальных копий. Это приводит к весомой неопределенности правового положения эмуляции, и приводит к тому, что в программное обеспечение закладываются средства, препятствующие его работе в случае их запуска на эмуляторе. В компьютерных играх пользователь иногда может продолжить игру, но на последующих уровнях игра может становиться невозможной, что воспринимается либо как небрежность программиста, либо как просто черезмерная сложность.[9][10] Такая защита способствует созданию более точных эмуляторов, которые бы не вызывали срабатывание программной защиты, которая зачастую не очевидна.

Медиаискусство

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

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

Применение эмуляции для разработки новых систем

Разные виды эмуляции широко используются при разработке и проектировании новых систем. Эмуляция упрощает разработку, давая возможность определить, исследовать и устранить недостатки проекта до его физического воплощения.[12] Особенно эмуляция полезна при разработке многоядерных систем, в которых конфликты параллельной обработки часто достаточно сложно определить и диагностировать без применения виртуальной управляемой аппаратуры, доступной при эмуляции.[13] Также эмуляция позволяет приступить к разработке программного обеспечения до фактического изготовления аппаратной части,[14] таким образом проверяя заложенные в неё особенности.

Виды эмуляции

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

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

Наоборот, некоторые другие устройства имели очень ограниченный прямой доступ к оборудованию. В подобных случаях может быть достаточно простого слоя совместимости. Системные запросы эмулируемой программы транслируются в системные запросы хоста, то есть в системах FreeBSD, NetBSD и OpenBSD для запуска Linux-приложений с закрытым кодом используется слой совместимости с Linux. Например, графический процессор Nintendo 64 был полностью программируемым, и большинство разработчиков игр использовало заложенные заводские программы, которые были самодостаточными и обменивались информацией с игрой через буфер FIFO. Поэтому многие эмуляторы вообще не эмулируют графический процессор, интерпретируя вместо этого команды центрального процессора также как и оригинальная программа.

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

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

Структурный состав эмулятора

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

  • модуль эмуляции или симуляции CPU (в данном случае термины практически равнозначны);
  • модуль эмуляции подсистемы памяти;
  • модули эмуляции различных устройств ввода-вывода.

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

Подсистема памяти

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

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

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

Для эмуляции систем с ограниченной адресацией, где адреса памяти с 0 по (размер ПЗУ) — 1 доступны только для чтения, а все остальные принадлежат ОЗУ, что-то подобное следующему является вполне типичным.

void WriteMemory(word Address, word Value) {
    word RealAddress;
    RealAddress = Address + BaseRegister;
    if ((RealAddress < LimitRegister) &&
        (RealAddress > ROMSIZE)) {
        Memory[RealAddress] = Value;
    } else {
        RaiseInterrupt(INT_SEGFAULT);
    }
}
word ReadMemory(word Address) {
    word RealAddress;
    RealAddress=Address+BaseRegister;
    if (RealAddress < LimitRegister) {
        return Memory[RealAddress];
    } else {
        RaiseInterrupt(INT_SEGFAULT);
        return NULL;
    }
}

Центральный процессор

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

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

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

void Execute(void) {
    if (Interrupt != INT_NONE) {
        SuperUser = TRUE;
        WriteMemory(++StackPointer, ProgramCounter);
        ProgramCounter = InterruptPointer;
    }
    switch (ReadMemory(ProgramCounter++)) {
        /*
         * Handling of every valid instruction
         * goes here...
         */
        default:
        Interrupt = INT_ILLEGAL;
    }
}

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

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

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

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

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

В некоторых случаях, например при запуске старых игр, высокая скорость эмуляции может быть нежелательной, так как игры создавались без оглядки на производительность компьютеров будущего. В игре, разработанной для ПК с CPU 30 MHz, игроку может отводиться 300 игровых секунд на игровой уровень, в случае запуска той же игры на ПК с CPU 300 MHz игроку эти 300 игровых секунд будут соответствовать 30 реальным секундам. Другие программы, например некоторые программ для DOS, вообще не смогут запуститься на быстром компьютере. Практически, если эмулируется система, являвшаяся «чёрным ящиком», изменения в ядре которого не ожидались, программы могут зависеть от некоторых специфических параметров оборудования (например, частоты CPU). Таким образом для правильной эмуляции подобных приложений требуется очень точное управление скоростью эмуляции.

Ввод и вывод

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

Даже в эмуляторах, рассматривающих отдельно каждое устройство, как правило присутствует следующая виртуальная инфраструктура:

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

Эмуляция и симуляция

Слово «эмулятор» было придумано в IBM[15] при разработке серии продуктов NPL (IBM System/360), используя «новую комбинацию программы, микрокода и оборудования.»[16] Они обнаружили, что для исполнения программ, написанных для старых машин IBM использование аппаратного Микрокода намного выгоднее по производительности, нежели программная симуляция. Ранее, в 1957 году, IBM поставляла программный интерпретатор для возможности запуска программ для более старого компьютера IBM 704 на компьютерах IBM 709 и IBM 7090.[17] В 1964 году инженеры IBM придумали слово «эмуляция» для описания концепции первого применения микрокода для ускорения процесса симуляции.

В последнее время употребление этого термина стало общеупотребительными в контексте программного обеспечения. До 1980-х годов слово «эмуляция» относилось исключительно к аппаратной реализации с применением микрокода, тогда как для программной эмуляции использовался термин «симуляция».[18] Например, компьютер, специально разработанный для выполнения программ, написанный для другой архитектуры, являлся эмулятором. С другой стороны симулятором могла бы называться программа для ПК, с помощью которой можно было бы симулировать старые игры для Atari. Хоть пуристы продолжают указывать на это терминологическое различие, в настоящее время эмуляцией обычно принято называть полную имитацию машины, выполняющей двоичный код, тогда как симуляция в основном относится к компьютерному моделированию, работающему над абстрактной моделью. Компьютерное моделирование используется практически в любой научной и инженерной деятельности, не исключая также информатику, которая находит многие применения для работы с абстрактной моделью, например, моделирование сетей связи.

Моделирование логических схем

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

Функциональное моделирование

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

Первое применение функционального моделирования осуществлено компанией Autonetics около 1960 года для тестирования программ на языке ассемблера, которые впоследствии должны были выполняться на военной машине D-17B. Это позволило написать, выполнять и тестировать полетное программное обеспечение до физического изготовления вычислительного оборудования D-17B. Эта же компания позднее применяла функциональное моделирование для тестирования полетного программного обеспечения, которое должно было выполняться на машине D-37C.

Эмуляция игровой приставки

Эмулятор игровой приставки — это программа, которая позволяет на персональном компьютере или игровой приставке эмулировать другую приставку. Чаще всего их используют для запуска старых игр на ПК или более современных приставках. Также эмуляторы используют для создания любительского перевода игр, модификаций игр, а также для разработки такого пользовательского контента как демо-версии и новые игры для старых систем. В распространении этого вида эмуляции большую роль сыграл интернет, так как большая часть (если не все) эмуляторов не доступна в точках розничных продаж. Некоторые из эмуляторов, выпущенные в последние два десятилетия: Dolphin, ZSNES, MAME, DeSmuME, ePSXe, Gens, VisualBoyAdvance, Jnes и Nestopia.

Эмуляция терминала

Эмулятор терминала — это программа для современного ПК или другого устройства, позволяющая получить интерактивный доступ к операционной системе мейнфрейма или другой системе хоста, например HP-UX или OpenVMS. Уже длительное время терминалы наподобие IBM 3270 и VT100 не производятся. Вместо этого используется программа, запускаемая на современной операционной системе, которая имитирует «глупый» терминал и способна отображать графические и текстовые элементы приложения хоста, отправлять клавиатурный ввод и обрабатывать команды через соответствующий протокол терминала. Некоторые из таких эмуляторов включают приложения для Attachmate Reflection, IBM Personal Communications, AlphaVM virtual machine от EmuVM, Stromasys CHARON-VAX/AXP и Micro Focus Rumba.

См. также

Напишите отзыв о статье "Эмуляция"

Примечания

  1. [www.kb.nl/hrd/dd/dd_projecten/projecten_emulatiewatis-en.html What is emulation?]. Koninklijke Bibliotheek(недоступная ссылка — история). [web.archive.org/20110607223027/www.kb.nl/hrd/dd/dd_projecten/projecten_emulatiewatis-en.html Архивировано из первоисточника 7 июня 2011].
  2. 1 2 van der Hoeven, Jeffrey, Bram Lohman, and Remco Verdegem. «Emulation for Digital Preservation in Practice: The Results.» The International Journal of Digital Curation 2.2 (2007): 123—132.
  3. 1 2 3 Muira, Gregory. «Pushing the Boundaries of Traditional Heritage Policy: maintaining long-term access to multimedia content.» IFLA Journal 33 (2007): 323—326.
  4. Rothenberg, Jeffrey. [www.clir.org/pubs/reports/rothenberg/contents.html "Criteria for an Ideal Solution." Avoiding Technological Quicksand: Finding a Viable Technical Foundation for Digital Preservation.]. Council on Library and Information Resources (1998). [www.webcitation.org/6Gs64WiOA Архивировано из первоисточника 25 мая 2013].
  5. Rothenberg, Jeffrey. «The Emulation Solution.» Avoiding Technological Quicksand: Finding a Viable Technical Foundation for Digital Preservation. Washington, DC: Council on Library and Information Resources, 1998. Council on Library and Information Resources. 2008. 28 Mar. 2008 www.clir.org/pubs/reports/rothenberg/contents.html
  6. Granger, Stewart. Digital Preservation & Emulation: from theory to practice. Proc. of the ichim01 Meeting, vol. 2, 3 −7 Sept. 2001. Milano, Italy. Toronto: Archives and Museum Informatics, University of Toronto, 2001. 28 Mar. 2008 www.leeds.ac.uk/cedars/pubconf/papers/ichim01SG.html
  7. Granger, Stewart. «Emulation as a Digital Preservation Strategy.» D-Lib Magazine 6.19 (2000). 29 Mar 2008 www.dlib.org/dlib/october00/granger/10granger.html
  8. Rothenberg, Jeffrey. «The Emulation Solution.» Avoiding Technological Quicksand: Finding a Viable Technical Foundation for Digital Preservation. Washington, DC: Council on Library and Information Resources, 1998. Council on Library and Information Resources. 2008. 28 Mar. 2008
  9. [tcrf.net/Pok%C3%A9mon_Black_and_White#Anti-Piracy Pokémon Black and White — The Cutting Room Floor]. [www.webcitation.org/6HAn5hexC Архивировано из первоисточника 6 июня 2013].
  10. [tcrf.net/Mega_Man_Star_Force#Anti-Piracy Mega Man Star Force — The Cutting Room Floor]. [www.webcitation.org/6HAn6s6VU Архивировано из первоисточника 6 июня 2013].
  11. [www.variablemedia.net/e/echoes/index.html Echoes of Art: Emulation as preservation strategy]. [www.webcitation.org/6GtDb9lXt Архивировано из первоисточника 26 мая 2013].
  12. Peter Magnusson. [www.computerworld.com/s/article/96584/Full_System Full System Simulation: Software Development's Missing Link] (2004). [www.webcitation.org/6GtDbiSQP Архивировано из первоисточника 26 мая 2013].
  13. [www.ddj.com/184406408 Debugging and Full System Simulation]. [www.webcitation.org/6GtDctOv4 Архивировано из первоисточника 26 мая 2013].
  14. Vania Joloboff. [www.irisa.fr/archi09/joloboff.pdf Full System Simulation of Embedded Systems] (2009). [www.webcitation.org/6GtDjtRFX Архивировано из первоисточника 26 мая 2013].
  15. Pugh Emerson W. Building IBM: Shaping an Industry and Its Technology. — MIT, 1995. — P. 274. — ISBN 0-262-16147-8.
  16. Pugh Emerson W. IBM's 360 and Early 370 Systems. — MIT, 1991. — ISBN 0-262-16123-0. pages 160—161
  17. «7090 Data Processing System» — «Compatibility feature for IBM 704 programs» [www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_PP7090B.html subsection]
  18. S. G. Tucker, «Emulation of Large Systems», Communications of the ACM (CACM) Vol. 8, No. 12, Dec. 1965, pp. 753—761

Литература

  • А. Аганичев, Д. Панфилов, М. Плавич, О. Полянский. [www.chipnews.ru/html.cgi/arhiv/00_07/stat_13.htm Программно-аппаратный комплекс для отладки МП систем на основе микроконтроллеров семейства MC68HC11 фирмы MOTOROLA]
  • Шагурин И., Бродин В., Калинин Л., Толстов Ю., Петров С., Исенин И., Эйдельман С., Ванюлин В. Средства проектирования и отладки систем управления на базе МК фирмы Motorola.

Ссылки

  • [plg.lrn.ru/doc/emu-howto.html Как написать эмулятор компьютера]
  • [fms.komkon.org/EMUL8/HOWTO.html How to write a computer Emulator]

Отрывок, характеризующий Эмуляция

Сам Долохов часто во время своего выздоровления говорил Ростову такие слова, которых никак нельзя было ожидать от него. – Меня считают злым человеком, я знаю, – говаривал он, – и пускай. Я никого знать не хочу кроме тех, кого люблю; но кого я люблю, того люблю так, что жизнь отдам, а остальных передавлю всех, коли станут на дороге. У меня есть обожаемая, неоцененная мать, два три друга, ты в том числе, а на остальных я обращаю внимание только на столько, на сколько они полезны или вредны. И все почти вредны, в особенности женщины. Да, душа моя, – продолжал он, – мужчин я встречал любящих, благородных, возвышенных; но женщин, кроме продажных тварей – графинь или кухарок, всё равно – я не встречал еще. Я не встречал еще той небесной чистоты, преданности, которых я ищу в женщине. Ежели бы я нашел такую женщину, я бы жизнь отдал за нее. А эти!… – Он сделал презрительный жест. – И веришь ли мне, ежели я еще дорожу жизнью, то дорожу только потому, что надеюсь еще встретить такое небесное существо, которое бы возродило, очистило и возвысило меня. Но ты не понимаешь этого.
– Нет, я очень понимаю, – отвечал Ростов, находившийся под влиянием своего нового друга.

Осенью семейство Ростовых вернулось в Москву. В начале зимы вернулся и Денисов и остановился у Ростовых. Это первое время зимы 1806 года, проведенное Николаем Ростовым в Москве, было одно из самых счастливых и веселых для него и для всего его семейства. Николай привлек с собой в дом родителей много молодых людей. Вера была двадцати летняя, красивая девица; Соня шестнадцати летняя девушка во всей прелести только что распустившегося цветка; Наташа полу барышня, полу девочка, то детски смешная, то девически обворожительная.
В доме Ростовых завелась в это время какая то особенная атмосфера любовности, как это бывает в доме, где очень милые и очень молодые девушки. Всякий молодой человек, приезжавший в дом Ростовых, глядя на эти молодые, восприимчивые, чему то (вероятно своему счастию) улыбающиеся, девические лица, на эту оживленную беготню, слушая этот непоследовательный, но ласковый ко всем, на всё готовый, исполненный надежды лепет женской молодежи, слушая эти непоследовательные звуки, то пенья, то музыки, испытывал одно и то же чувство готовности к любви и ожидания счастья, которое испытывала и сама молодежь дома Ростовых.
В числе молодых людей, введенных Ростовым, был одним из первых – Долохов, который понравился всем в доме, исключая Наташи. За Долохова она чуть не поссорилась с братом. Она настаивала на том, что он злой человек, что в дуэли с Безуховым Пьер был прав, а Долохов виноват, что он неприятен и неестествен.
– Нечего мне понимать, – с упорным своевольством кричала Наташа, – он злой и без чувств. Вот ведь я же люблю твоего Денисова, он и кутила, и всё, а я всё таки его люблю, стало быть я понимаю. Не умею, как тебе сказать; у него всё назначено, а я этого не люблю. Денисова…
– Ну Денисов другое дело, – отвечал Николай, давая чувствовать, что в сравнении с Долоховым даже и Денисов был ничто, – надо понимать, какая душа у этого Долохова, надо видеть его с матерью, это такое сердце!
– Уж этого я не знаю, но с ним мне неловко. И ты знаешь ли, что он влюбился в Соню?
– Какие глупости…
– Я уверена, вот увидишь. – Предсказание Наташи сбывалось. Долохов, не любивший дамского общества, стал часто бывать в доме, и вопрос о том, для кого он ездит, скоро (хотя и никто не говорил про это) был решен так, что он ездит для Сони. И Соня, хотя никогда не посмела бы сказать этого, знала это и всякий раз, как кумач, краснела при появлении Долохова.
Долохов часто обедал у Ростовых, никогда не пропускал спектакля, где они были, и бывал на балах adolescentes [подростков] у Иогеля, где всегда бывали Ростовы. Он оказывал преимущественное внимание Соне и смотрел на нее такими глазами, что не только она без краски не могла выдержать этого взгляда, но и старая графиня и Наташа краснели, заметив этот взгляд.
Видно было, что этот сильный, странный мужчина находился под неотразимым влиянием, производимым на него этой черненькой, грациозной, любящей другого девочкой.
Ростов замечал что то новое между Долоховым и Соней; но он не определял себе, какие это были новые отношения. «Они там все влюблены в кого то», думал он про Соню и Наташу. Но ему было не так, как прежде, ловко с Соней и Долоховым, и он реже стал бывать дома.
С осени 1806 года опять всё заговорило о войне с Наполеоном еще с большим жаром, чем в прошлом году. Назначен был не только набор рекрут, но и еще 9 ти ратников с тысячи. Повсюду проклинали анафемой Бонапартия, и в Москве только и толков было, что о предстоящей войне. Для семейства Ростовых весь интерес этих приготовлений к войне заключался только в том, что Николушка ни за что не соглашался оставаться в Москве и выжидал только конца отпуска Денисова с тем, чтобы с ним вместе ехать в полк после праздников. Предстоящий отъезд не только не мешал ему веселиться, но еще поощрял его к этому. Большую часть времени он проводил вне дома, на обедах, вечерах и балах.

ХI
На третий день Рождества, Николай обедал дома, что в последнее время редко случалось с ним. Это был официально прощальный обед, так как он с Денисовым уезжал в полк после Крещенья. Обедало человек двадцать, в том числе Долохов и Денисов.
Никогда в доме Ростовых любовный воздух, атмосфера влюбленности не давали себя чувствовать с такой силой, как в эти дни праздников. «Лови минуты счастия, заставляй себя любить, влюбляйся сам! Только это одно есть настоящее на свете – остальное всё вздор. И этим одним мы здесь только и заняты», – говорила эта атмосфера. Николай, как и всегда, замучив две пары лошадей и то не успев побывать во всех местах, где ему надо было быть и куда его звали, приехал домой перед самым обедом. Как только он вошел, он заметил и почувствовал напряженность любовной атмосферы в доме, но кроме того он заметил странное замешательство, царствующее между некоторыми из членов общества. Особенно взволнованы были Соня, Долохов, старая графиня и немного Наташа. Николай понял, что что то должно было случиться до обеда между Соней и Долоховым и с свойственною ему чуткостью сердца был очень нежен и осторожен, во время обеда, в обращении с ними обоими. В этот же вечер третьего дня праздников должен был быть один из тех балов у Иогеля (танцовального учителя), которые он давал по праздникам для всех своих учеников и учениц.
– Николенька, ты поедешь к Иогелю? Пожалуйста, поезжай, – сказала ему Наташа, – он тебя особенно просил, и Василий Дмитрич (это был Денисов) едет.
– Куда я не поеду по приказанию г'афини! – сказал Денисов, шутливо поставивший себя в доме Ростовых на ногу рыцаря Наташи, – pas de chale [танец с шалью] готов танцовать.
– Коли успею! Я обещал Архаровым, у них вечер, – сказал Николай.
– А ты?… – обратился он к Долохову. И только что спросил это, заметил, что этого не надо было спрашивать.
– Да, может быть… – холодно и сердито отвечал Долохов, взглянув на Соню и, нахмурившись, точно таким взглядом, каким он на клубном обеде смотрел на Пьера, опять взглянул на Николая.
«Что нибудь есть», подумал Николай и еще более утвердился в этом предположении тем, что Долохов тотчас же после обеда уехал. Он вызвал Наташу и спросил, что такое?
– А я тебя искала, – сказала Наташа, выбежав к нему. – Я говорила, ты всё не хотел верить, – торжествующе сказала она, – он сделал предложение Соне.
Как ни мало занимался Николай Соней за это время, но что то как бы оторвалось в нем, когда он услыхал это. Долохов был приличная и в некоторых отношениях блестящая партия для бесприданной сироты Сони. С точки зрения старой графини и света нельзя было отказать ему. И потому первое чувство Николая, когда он услыхал это, было озлобление против Сони. Он приготавливался к тому, чтобы сказать: «И прекрасно, разумеется, надо забыть детские обещания и принять предложение»; но не успел он еще сказать этого…
– Можешь себе представить! она отказала, совсем отказала! – заговорила Наташа. – Она сказала, что любит другого, – прибавила она, помолчав немного.
«Да иначе и не могла поступить моя Соня!» подумал Николай.
– Сколько ее ни просила мама, она отказала, и я знаю, она не переменит, если что сказала…
– А мама просила ее! – с упреком сказал Николай.
– Да, – сказала Наташа. – Знаешь, Николенька, не сердись; но я знаю, что ты на ней не женишься. Я знаю, Бог знает отчего, я знаю верно, ты не женишься.
– Ну, этого ты никак не знаешь, – сказал Николай; – но мне надо поговорить с ней. Что за прелесть, эта Соня! – прибавил он улыбаясь.
– Это такая прелесть! Я тебе пришлю ее. – И Наташа, поцеловав брата, убежала.
Через минуту вошла Соня, испуганная, растерянная и виноватая. Николай подошел к ней и поцеловал ее руку. Это был первый раз, что они в этот приезд говорили с глазу на глаз и о своей любви.
– Sophie, – сказал он сначала робко, и потом всё смелее и смелее, – ежели вы хотите отказаться не только от блестящей, от выгодной партии; но он прекрасный, благородный человек… он мой друг…
Соня перебила его.
– Я уж отказалась, – сказала она поспешно.
– Ежели вы отказываетесь для меня, то я боюсь, что на мне…
Соня опять перебила его. Она умоляющим, испуганным взглядом посмотрела на него.
– Nicolas, не говорите мне этого, – сказала она.
– Нет, я должен. Может быть это suffisance [самонадеянность] с моей стороны, но всё лучше сказать. Ежели вы откажетесь для меня, то я должен вам сказать всю правду. Я вас люблю, я думаю, больше всех…
– Мне и довольно, – вспыхнув, сказала Соня.
– Нет, но я тысячу раз влюблялся и буду влюбляться, хотя такого чувства дружбы, доверия, любви, я ни к кому не имею, как к вам. Потом я молод. Мaman не хочет этого. Ну, просто, я ничего не обещаю. И я прошу вас подумать о предложении Долохова, – сказал он, с трудом выговаривая фамилию своего друга.
– Не говорите мне этого. Я ничего не хочу. Я люблю вас, как брата, и всегда буду любить, и больше мне ничего не надо.
– Вы ангел, я вас не стою, но я только боюсь обмануть вас. – Николай еще раз поцеловал ее руку.


У Иогеля были самые веселые балы в Москве. Это говорили матушки, глядя на своих adolescentes, [девушек,] выделывающих свои только что выученные па; это говорили и сами adolescentes и adolescents, [девушки и юноши,] танцовавшие до упаду; эти взрослые девицы и молодые люди, приезжавшие на эти балы с мыслию снизойти до них и находя в них самое лучшее веселье. В этот же год на этих балах сделалось два брака. Две хорошенькие княжны Горчаковы нашли женихов и вышли замуж, и тем еще более пустили в славу эти балы. Особенного на этих балах было то, что не было хозяина и хозяйки: был, как пух летающий, по правилам искусства расшаркивающийся, добродушный Иогель, который принимал билетики за уроки от всех своих гостей; было то, что на эти балы еще езжали только те, кто хотел танцовать и веселиться, как хотят этого 13 ти и 14 ти летние девочки, в первый раз надевающие длинные платья. Все, за редкими исключениями, были или казались хорошенькими: так восторженно они все улыбались и так разгорались их глазки. Иногда танцовывали даже pas de chale лучшие ученицы, из которых лучшая была Наташа, отличавшаяся своею грациозностью; но на этом, последнем бале танцовали только экосезы, англезы и только что входящую в моду мазурку. Зала была взята Иогелем в дом Безухова, и бал очень удался, как говорили все. Много было хорошеньких девочек, и Ростовы барышни были из лучших. Они обе были особенно счастливы и веселы. В этот вечер Соня, гордая предложением Долохова, своим отказом и объяснением с Николаем, кружилась еще дома, не давая девушке дочесать свои косы, и теперь насквозь светилась порывистой радостью.
Наташа, не менее гордая тем, что она в первый раз была в длинном платье, на настоящем бале, была еще счастливее. Обе были в белых, кисейных платьях с розовыми лентами.
Наташа сделалась влюблена с самой той минуты, как она вошла на бал. Она не была влюблена ни в кого в особенности, но влюблена была во всех. В того, на кого она смотрела в ту минуту, как она смотрела, в того она и была влюблена.
– Ах, как хорошо! – всё говорила она, подбегая к Соне.
Николай с Денисовым ходили по залам, ласково и покровительственно оглядывая танцующих.
– Как она мила, к'асавица будет, – сказал Денисов.
– Кто?
– Г'афиня Наташа, – отвечал Денисов.
– И как она танцует, какая г'ация! – помолчав немного, опять сказал он.
– Да про кого ты говоришь?
– Про сест'у п'о твою, – сердито крикнул Денисов.
Ростов усмехнулся.
– Mon cher comte; vous etes l'un de mes meilleurs ecoliers, il faut que vous dansiez, – сказал маленький Иогель, подходя к Николаю. – Voyez combien de jolies demoiselles. [Любезный граф, вы один из лучших моих учеников. Вам надо танцовать. Посмотрите, сколько хорошеньких девушек!] – Он с тою же просьбой обратился и к Денисову, тоже своему бывшему ученику.
– Non, mon cher, je fe'ai tapisse'ie, [Нет, мой милый, я посижу у стенки,] – сказал Денисов. – Разве вы не помните, как дурно я пользовался вашими уроками?
– О нет! – поспешно утешая его, сказал Иогель. – Вы только невнимательны были, а вы имели способности, да, вы имели способности.
Заиграли вновь вводившуюся мазурку; Николай не мог отказать Иогелю и пригласил Соню. Денисов подсел к старушкам и облокотившись на саблю, притопывая такт, что то весело рассказывал и смешил старых дам, поглядывая на танцующую молодежь. Иогель в первой паре танцовал с Наташей, своей гордостью и лучшей ученицей. Мягко, нежно перебирая своими ножками в башмачках, Иогель первым полетел по зале с робевшей, но старательно выделывающей па Наташей. Денисов не спускал с нее глаз и пристукивал саблей такт, с таким видом, который ясно говорил, что он сам не танцует только от того, что не хочет, а не от того, что не может. В середине фигуры он подозвал к себе проходившего мимо Ростова.
– Это совсем не то, – сказал он. – Разве это польская мазу'ка? А отлично танцует. – Зная, что Денисов и в Польше даже славился своим мастерством плясать польскую мазурку, Николай подбежал к Наташе:
– Поди, выбери Денисова. Вот танцует! Чудо! – сказал он.
Когда пришел опять черед Наташе, она встала и быстро перебирая своими с бантиками башмачками, робея, одна пробежала через залу к углу, где сидел Денисов. Она видела, что все смотрят на нее и ждут. Николай видел, что Денисов и Наташа улыбаясь спорили, и что Денисов отказывался, но радостно улыбался. Он подбежал.
– Пожалуйста, Василий Дмитрич, – говорила Наташа, – пойдемте, пожалуйста.
– Да, что, увольте, г'афиня, – говорил Денисов.
– Ну, полно, Вася, – сказал Николай.
– Точно кота Ваську угова'ивают, – шутя сказал Денисов.
– Целый вечер вам буду петь, – сказала Наташа.
– Волшебница всё со мной сделает! – сказал Денисов и отстегнул саблю. Он вышел из за стульев, крепко взял за руку свою даму, приподнял голову и отставил ногу, ожидая такта. Только на коне и в мазурке не видно было маленького роста Денисова, и он представлялся тем самым молодцом, каким он сам себя чувствовал. Выждав такт, он с боку, победоносно и шутливо, взглянул на свою даму, неожиданно пристукнул одной ногой и, как мячик, упруго отскочил от пола и полетел вдоль по кругу, увлекая за собой свою даму. Он не слышно летел половину залы на одной ноге, и, казалось, не видел стоявших перед ним стульев и прямо несся на них; но вдруг, прищелкнув шпорами и расставив ноги, останавливался на каблуках, стоял так секунду, с грохотом шпор стучал на одном месте ногами, быстро вертелся и, левой ногой подщелкивая правую, опять летел по кругу. Наташа угадывала то, что он намерен был сделать, и, сама не зная как, следила за ним – отдаваясь ему. То он кружил ее, то на правой, то на левой руке, то падая на колена, обводил ее вокруг себя, и опять вскакивал и пускался вперед с такой стремительностью, как будто он намерен был, не переводя духа, перебежать через все комнаты; то вдруг опять останавливался и делал опять новое и неожиданное колено. Когда он, бойко закружив даму перед ее местом, щелкнул шпорой, кланяясь перед ней, Наташа даже не присела ему. Она с недоуменьем уставила на него глаза, улыбаясь, как будто не узнавая его. – Что ж это такое? – проговорила она.
Несмотря на то, что Иогель не признавал эту мазурку настоящей, все были восхищены мастерством Денисова, беспрестанно стали выбирать его, и старики, улыбаясь, стали разговаривать про Польшу и про доброе старое время. Денисов, раскрасневшись от мазурки и отираясь платком, подсел к Наташе и весь бал не отходил от нее.


Два дня после этого, Ростов не видал Долохова у своих и не заставал его дома; на третий день он получил от него записку. «Так как я в доме у вас бывать более не намерен по известным тебе причинам и еду в армию, то нынче вечером я даю моим приятелям прощальную пирушку – приезжай в английскую гостинницу». Ростов в 10 м часу, из театра, где он был вместе с своими и Денисовым, приехал в назначенный день в английскую гостинницу. Его тотчас же провели в лучшее помещение гостинницы, занятое на эту ночь Долоховым. Человек двадцать толпилось около стола, перед которым между двумя свечами сидел Долохов. На столе лежало золото и ассигнации, и Долохов метал банк. После предложения и отказа Сони, Николай еще не видался с ним и испытывал замешательство при мысли о том, как они свидятся.
Светлый холодный взгляд Долохова встретил Ростова еще у двери, как будто он давно ждал его.
– Давно не видались, – сказал он, – спасибо, что приехал. Вот только домечу, и явится Илюшка с хором.
– Я к тебе заезжал, – сказал Ростов, краснея.
Долохов не отвечал ему. – Можешь поставить, – сказал он.
Ростов вспомнил в эту минуту странный разговор, который он имел раз с Долоховым. – «Играть на счастие могут только дураки», сказал тогда Долохов.
– Или ты боишься со мной играть? – сказал теперь Долохов, как будто угадав мысль Ростова, и улыбнулся. Из за улыбки его Ростов увидал в нем то настроение духа, которое было у него во время обеда в клубе и вообще в те времена, когда, как бы соскучившись ежедневной жизнью, Долохов чувствовал необходимость каким нибудь странным, большей частью жестоким, поступком выходить из нее.
Ростову стало неловко; он искал и не находил в уме своем шутки, которая ответила бы на слова Долохова. Но прежде, чем он успел это сделать, Долохов, глядя прямо в лицо Ростову, медленно и с расстановкой, так, что все могли слышать, сказал ему:
– А помнишь, мы говорили с тобой про игру… дурак, кто на счастье хочет играть; играть надо наверное, а я хочу попробовать.
«Попробовать на счастие, или наверное?» подумал Ростов.
– Да и лучше не играй, – прибавил он, и треснув разорванной колодой, прибавил: – Банк, господа!
Придвинув вперед деньги, Долохов приготовился метать. Ростов сел подле него и сначала не играл. Долохов взглядывал на него.
– Что ж не играешь? – сказал Долохов. И странно, Николай почувствовал необходимость взять карту, поставить на нее незначительный куш и начать игру.
– Со мной денег нет, – сказал Ростов.
– Поверю!
Ростов поставил 5 рублей на карту и проиграл, поставил еще и опять проиграл. Долохов убил, т. е. выиграл десять карт сряду у Ростова.
– Господа, – сказал он, прометав несколько времени, – прошу класть деньги на карты, а то я могу спутаться в счетах.
Один из игроков сказал, что, он надеется, ему можно поверить.
– Поверить можно, но боюсь спутаться; прошу класть деньги на карты, – отвечал Долохов. – Ты не стесняйся, мы с тобой сочтемся, – прибавил он Ростову.
Игра продолжалась: лакей, не переставая, разносил шампанское.
Все карты Ростова бились, и на него было написано до 800 т рублей. Он надписал было над одной картой 800 т рублей, но в то время, как ему подавали шампанское, он раздумал и написал опять обыкновенный куш, двадцать рублей.
– Оставь, – сказал Долохов, хотя он, казалось, и не смотрел на Ростова, – скорее отыграешься. Другим даю, а тебе бью. Или ты меня боишься? – повторил он.
Ростов повиновался, оставил написанные 800 и поставил семерку червей с оторванным уголком, которую он поднял с земли. Он хорошо ее после помнил. Он поставил семерку червей, надписав над ней отломанным мелком 800, круглыми, прямыми цифрами; выпил поданный стакан согревшегося шампанского, улыбнулся на слова Долохова, и с замиранием сердца ожидая семерки, стал смотреть на руки Долохова, державшего колоду. Выигрыш или проигрыш этой семерки червей означал многое для Ростова. В Воскресенье на прошлой неделе граф Илья Андреич дал своему сыну 2 000 рублей, и он, никогда не любивший говорить о денежных затруднениях, сказал ему, что деньги эти были последние до мая, и что потому он просил сына быть на этот раз поэкономнее. Николай сказал, что ему и это слишком много, и что он дает честное слово не брать больше денег до весны. Теперь из этих денег оставалось 1 200 рублей. Стало быть, семерка червей означала не только проигрыш 1 600 рублей, но и необходимость изменения данному слову. Он с замиранием сердца смотрел на руки Долохова и думал: «Ну, скорей, дай мне эту карту, и я беру фуражку, уезжаю домой ужинать с Денисовым, Наташей и Соней, и уж верно никогда в руках моих не будет карты». В эту минуту домашняя жизнь его, шуточки с Петей, разговоры с Соней, дуэты с Наташей, пикет с отцом и даже спокойная постель в Поварском доме, с такою силою, ясностью и прелестью представились ему, как будто всё это было давно прошедшее, потерянное и неоцененное счастье. Он не мог допустить, чтобы глупая случайность, заставив семерку лечь прежде на право, чем на лево, могла бы лишить его всего этого вновь понятого, вновь освещенного счастья и повергнуть его в пучину еще неиспытанного и неопределенного несчастия. Это не могло быть, но он всё таки ожидал с замиранием движения рук Долохова. Ширококостые, красноватые руки эти с волосами, видневшимися из под рубашки, положили колоду карт, и взялись за подаваемый стакан и трубку.
– Так ты не боишься со мной играть? – повторил Долохов, и, как будто для того, чтобы рассказать веселую историю, он положил карты, опрокинулся на спинку стула и медлительно с улыбкой стал рассказывать:
– Да, господа, мне говорили, что в Москве распущен слух, будто я шулер, поэтому советую вам быть со мной осторожнее.
– Ну, мечи же! – сказал Ростов.
– Ох, московские тетушки! – сказал Долохов и с улыбкой взялся за карты.
– Ааах! – чуть не крикнул Ростов, поднимая обе руки к волосам. Семерка, которая была нужна ему, уже лежала вверху, первой картой в колоде. Он проиграл больше того, что мог заплатить.
– Однако ты не зарывайся, – сказал Долохов, мельком взглянув на Ростова, и продолжая метать.


Через полтора часа времени большинство игроков уже шутя смотрели на свою собственную игру.
Вся игра сосредоточилась на одном Ростове. Вместо тысячи шестисот рублей за ним была записана длинная колонна цифр, которую он считал до десятой тысячи, но которая теперь, как он смутно предполагал, возвысилась уже до пятнадцати тысяч. В сущности запись уже превышала двадцать тысяч рублей. Долохов уже не слушал и не рассказывал историй; он следил за каждым движением рук Ростова и бегло оглядывал изредка свою запись за ним. Он решил продолжать игру до тех пор, пока запись эта не возрастет до сорока трех тысяч. Число это было им выбрано потому, что сорок три составляло сумму сложенных его годов с годами Сони. Ростов, опершись головою на обе руки, сидел перед исписанным, залитым вином, заваленным картами столом. Одно мучительное впечатление не оставляло его: эти ширококостые, красноватые руки с волосами, видневшимися из под рубашки, эти руки, которые он любил и ненавидел, держали его в своей власти.
«Шестьсот рублей, туз, угол, девятка… отыграться невозможно!… И как бы весело было дома… Валет на пе… это не может быть!… И зачем же он это делает со мной?…» думал и вспоминал Ростов. Иногда он ставил большую карту; но Долохов отказывался бить её, и сам назначал куш. Николай покорялся ему, и то молился Богу, как он молился на поле сражения на Амштетенском мосту; то загадывал, что та карта, которая первая попадется ему в руку из кучи изогнутых карт под столом, та спасет его; то рассчитывал, сколько было шнурков на его куртке и с столькими же очками карту пытался ставить на весь проигрыш, то за помощью оглядывался на других играющих, то вглядывался в холодное теперь лицо Долохова, и старался проникнуть, что в нем делалось.
«Ведь он знает, что значит для меня этот проигрыш. Не может же он желать моей погибели? Ведь он друг был мне. Ведь я его любил… Но и он не виноват; что ж ему делать, когда ему везет счастие? И я не виноват, говорил он сам себе. Я ничего не сделал дурного. Разве я убил кого нибудь, оскорбил, пожелал зла? За что же такое ужасное несчастие? И когда оно началось? Еще так недавно я подходил к этому столу с мыслью выиграть сто рублей, купить мама к именинам эту шкатулку и ехать домой. Я так был счастлив, так свободен, весел! И я не понимал тогда, как я был счастлив! Когда же это кончилось, и когда началось это новое, ужасное состояние? Чем ознаменовалась эта перемена? Я всё так же сидел на этом месте, у этого стола, и так же выбирал и выдвигал карты, и смотрел на эти ширококостые, ловкие руки. Когда же это совершилось, и что такое совершилось? Я здоров, силен и всё тот же, и всё на том же месте. Нет, это не может быть! Верно всё это ничем не кончится».
Он был красен, весь в поту, несмотря на то, что в комнате не было жарко. И лицо его было страшно и жалко, особенно по бессильному желанию казаться спокойным.
Запись дошла до рокового числа сорока трех тысяч. Ростов приготовил карту, которая должна была итти углом от трех тысяч рублей, только что данных ему, когда Долохов, стукнув колодой, отложил ее и, взяв мел, начал быстро своим четким, крепким почерком, ломая мелок, подводить итог записи Ростова.
– Ужинать, ужинать пора! Вот и цыгане! – Действительно с своим цыганским акцентом уж входили с холода и говорили что то какие то черные мужчины и женщины. Николай понимал, что всё было кончено; но он равнодушным голосом сказал:
– Что же, не будешь еще? А у меня славная карточка приготовлена. – Как будто более всего его интересовало веселье самой игры.
«Всё кончено, я пропал! думал он. Теперь пуля в лоб – одно остается», и вместе с тем он сказал веселым голосом:
– Ну, еще одну карточку.
– Хорошо, – отвечал Долохов, окончив итог, – хорошо! 21 рубль идет, – сказал он, указывая на цифру 21, рознившую ровный счет 43 тысяч, и взяв колоду, приготовился метать. Ростов покорно отогнул угол и вместо приготовленных 6.000, старательно написал 21.