Jump to content

Эмулятор

DOSBox эмулирует интерфейс командной строки DOS.
-эмуляция Приложение программируемого калькулятора HP-41C X 1983 года, работающего на Apple iOS . Кроме того, можно отобразить выходные данные исторического термопринтера этой линейки калькуляторов.

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

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

Аппаратный эмулятор — это эмулятор, который имеет форму аппаратного устройства. Примеры включают DOS-совместимую карту, установленную в некоторых компьютерах Macintosh 1990-х годов , таких как Centris 610 или Performa 630 , которая позволяла им запускать персональных компьютеров программы для программируемых вентильных матриц на основе (ПК) и аппаратные эмуляторы . Тезис Чёрча -Тьюринга подразумевает, что теоретически любую операционную среду можно эмулировать в любой другой среде, при условии, что ограничения памяти игнорируются. Однако на практике это может быть довольно сложно, особенно когда точное поведение эмулируемой системы не задокументировано и должно быть установлено путем обратного проектирования . Здесь также ничего не говорится об ограничениях по времени; если эмулятор не работает так быстро, как при использовании исходного оборудования, программное обеспечение внутри эмуляции может работать намного медленнее (возможно, вызывая прерывания таймера, которые изменяют поведение).

«Может ли Commodore 64 эмулировать MS-DOS ?» Да, [Commodore] 64 может эмулировать IBM PC [который использует MS-DOS] в том же смысле, в каком можно спасти озеро Мичиган с помощью чайной ложки .

Письмо для вычислений! и редакционный ответ, апрель 1988 г. [1]

Типы [ править ]

Windows XP использует эмулятор Archimedes , который, в свою очередь, запускает ZX Spectrum. эмулятор
Тетрис работает на эмуляторе Game Boy Wzonka-Lad на AmigaOS , который сам работает на E-UAE в современной Fedora Linux . системе

Большинство эмуляторов просто эмулируют аппаратную архитектуру — если для желаемого программного обеспечения требуется встроенное ПО или программное обеспечение операционной системы, оно также должно быть предоставлено (и само может быть эмулировано). И ОС, и программное обеспечение будут интерпретироваться эмулятором, а не запускаться на собственном оборудовании. Помимо этого интерпретатора языка эмулируемой двоичной машины , некоторые другие аппаратные средства (например, устройства ввода или вывода) также должны быть предоставлены в виртуальной форме; например, если запись в определенную ячейку памяти должна влиять на то, что отображается на экране, это необходимо будет эмулировать. Хотя эмуляция могла бы, если дойти до крайности, опуститься до атомарного уровня, основываясь на моделировании реальной схемы виртуального источника питания, это было бы весьма необычным решением. Эмуляторы обычно ограничиваются моделированием документированных характеристик оборудования и цифровой логики. Достаточная эмуляция некоторых аппаратных платформ требует предельной точности, вплоть до уровня отдельных тактов, недокументированных функций, непредсказуемых аналоговых элементов и ошибок реализации. Особенно это касается классических домашних компьютеров, таких как Commodore 64 , чье программное обеспечение часто зависит от очень сложных приемов низкоуровневого программирования, изобретенных программистами игр и « демосценой ».

Напротив, некоторые другие платформы очень мало использовали прямую аппаратную адресацию, например, эмулятор PlayStation 4. [2] В этих случаях может быть достаточно простого уровня совместимости . Это преобразует системные вызовы для внешней системы в системные вызовы для хост-системы, например, уровень совместимости Linux, используемый в *BSD для запуска собственного программного обеспечения Linux с закрытым исходным кодом во FreeBSD и NetBSD . [3] Например, хотя графический процессор Nintendo 64 был полностью программируемым, в большинстве игр использовалась одна из нескольких готовых программ, которые в основном были автономными и связывались с игрой через FIFO ; поэтому многие эмуляторы вообще не эмулируют графический процессор, а просто интерпретируют команды, полученные от ЦП, как это сделала бы исходная программа. Разработчики программного обеспечения для встраиваемых систем или игровых консолей часто разрабатывают свое программное обеспечение на особо точных эмуляторах, называемых симуляторами, прежде чем опробовать его на реальном оборудовании. Это делается для того, чтобы программное обеспечение могло быть создано и протестировано до того, как окончательное оборудование появится в больших количествах, чтобы его можно было протестировать, не тратя время на копирование программы, подлежащей отладке, на низком уровне и без введения побочных эффектов отладчика . Во многих случаях симулятор фактически производится компанией-поставщиком аппаратного обеспечения, что теоретически повышает его точность. Эмуляторы математического сопроцессора позволяют программам, скомпилированным с математическими инструкциями, запускаться на машинах, на которых не установлен сопроцессор, но дополнительная работа, выполняемая ЦП, может замедлить работу системы. Если математический сопроцессор не установлен или не присутствует в ЦП, когда ЦП выполняет любую инструкцию сопроцессора, он выдает определенное прерывание (сопроцессор недоступен), вызывая процедуры математического эмулятора. Когда инструкция успешно эмулируется, программа продолжает выполнение.

Логические симуляторы [ править ]

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

Функциональные эмуляторы [ править ]

Функциональное моделирование — это использование компьютерной программы для моделирования выполнения второй компьютерной программы, написанной на символьном языке ассемблера или языке компилятора , а не в двоичном машинном коде . Используя функциональный симулятор, программисты могут выполнять и отслеживать выбранные разделы исходного кода для поиска ошибок программирования (ошибок) без генерации двоичного кода. Это отличается от моделирования выполнения двоичного кода, которое представляет собой программную эмуляцию. Первый функциональный симулятор был написан Autonetics примерно в 1960 году. [ нужна ссылка ] для тестирования программ на ассемблере для последующего исполнения на военной машине Д-17Б . Это позволило писать, выполнять и тестировать летные программы до того, как было построено компьютерное оборудование D-17B. Компания Autonetics также разработала функциональный симулятор для отработки полетных программ для последующего выполнения на военном компьютере D-37C .

Эмуляторы игровых консолей [ править ]

Эмуляторы игровых консолей — это программы, которые позволяют персональному компьютеру или игровой консоли эмулировать другую игровую консоль. Их чаще всего используют для игры в старые видеоигры 1980-2000-х годов на современных персональных компьютерах и более современных игровых консолях. Они также используются для перевода игр на другие языки, для модификации существующих игр, а также в процессе разработки самодельных демо-версий «самодельного приготовления» и при создании новых игр для старых систем. Интернет . способствовал распространению эмуляторов консолей, поскольку большинство из них, если не все, будут недоступны для продажи в торговых точках Примерами эмуляторов консолей, выпущенных за последние несколько десятилетий, являются: RPCS3 , Dolphin , Cemu , PCSX2 , PPSSPP , ZSNES , Citra , ePSXe , Project64 , Visual Boy Advance , Nestopia и Yuzu .

Из-за своей популярности эмуляторы выдавали себя за вредоносные программы. Большинство этих эмуляторов предназначены для игровых консолей, таких как Xbox 360, Xbox One, Nintendo 3DS и т. д. Как правило, такие эмуляторы предъявляют в настоящее время невыполнимые требования, например, о возможности запуска игр для Xbox One и Xbox 360 в одной программе. [5]

Юридические вопросы [ править ]

По мере развития компьютеров и глобальных компьютерных сетей , а разработчики эмуляторов становились все более квалифицированными в своей работе, промежуток времени между коммерческим выпуском консоли и ее успешной эмуляцией начал сокращаться. Консоли пятого поколения, такие как Nintendo 64 , PlayStation и портативные компьютеры шестого поколения , такие как Game Boy Advance , продемонстрировали значительный прогресс в эмуляции во время их производства. Это привело к попыткам производителей консолей прекратить неофициальную эмуляцию, но последовательные неудачи, такие как Sega v. Accolade 977 F.2d 1510 (9-й округ 1992 г.), Sony Computer Entertainment, Inc. против Connectix Corporation 203 F.3d 596 ( 2000) и Sony Computer Entertainment America против Блима 214 F.3d 1022 (2000), [6] имели противоположный эффект. Согласно всем юридическим прецедентам, эмуляция легальна на территории США. Однако несанкционированное распространение кода, защищенного авторским правом, остается незаконным в соответствии как с национальным законодательством об авторском праве, так и с международным законодательством об авторском праве в соответствии с Бернской конвенцией . [7] [ нужен лучший источник ] В соответствии с законодательством США получение дампа машины оригинальной копии BIOS является законным в соответствии с постановлением Lewis Galoob Toys, Inc. против Nintendo of America, Inc. , 964 F.2d 965 (9-й округ 1992 г.), как добросовестное использование , пока поскольку пользователь получил легально приобретенную копию машины. Однако, чтобы смягчить это, некоторые эмуляторы для таких платформ, как Game Boy Advance, могут работать без файла BIOS, используя высокоуровневую эмуляцию для имитации подпрограмм BIOS с небольшими затратами на точность эмуляции. [ нужна ссылка ]

Терминал [ править ]

Эмуляторы терминала — это программы, которые обеспечивают современным компьютерам и устройствам интерактивный доступ к приложениям, работающим в операционных системах мэйнфреймов или других хост-системах, таких как HP-UX или OpenVMS . Терминалы, такие как IBM 3270 или VT100 и многие другие, больше не производятся как физические устройства. Вместо этого программное обеспечение, работающее в современных операционных системах, имитирует «немой» терминал и способно отображать графические и текстовые элементы главного приложения, отправлять нажатия клавиш и обрабатывать команды, используя соответствующий протокол терминала. Некоторые приложения эмуляции терминала включают Attachmate Reflection , IBM Personal Communications и Micro Focus Rumba.

Другие типы [ править ]

Другие типы эмуляторов включают в себя:

Структура и организация [ править ]

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

  • эмулятор ЦП или симулятор ЦП (в данном случае эти два термина в основном взаимозаменяемы), если только эмулируемая цель не имеет той же архитектуры ЦП, что и хост, и в этом случае виртуальной машины . вместо этого может использоваться уровень
  • модуль подсистемы памяти
  • различные эмуляторы устройств ввода/вывода (I/O)

Шины часто не эмулируются ни по соображениям производительности, ни по простоте, а виртуальная периферия взаимодействует напрямую с ЦП или подсистемой памяти.

Подсистема памяти [ править ]

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

В системе адресации с базовым ограничением, где память от адреса 0 до адреса ROMSIZE-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;
    }
}

Симулятор процессора [ править ]

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

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

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;
    }
}

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

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

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

Различные формы динамической перекомпиляции, включая популярный метод компилятора Just In Time (JIT) , пытаются обойти эти проблемы, ожидая, пока поток управления процессором перейдет в место, содержащее нетранслированный код, и только тогда («точно вовремя») транслирует блок кода в код хоста, который может быть выполнен. Переведенный код хранится в кода. кэше [ сомнительно обсудить ] , а исходный код не теряется и не затрагивается; таким образом, даже сегменты данных могут быть (бессмысленно) преобразованы рекомпилятором, что приведет к пустой трате времени на перевод. Скорость может быть нежелательна, поскольку некоторые старые игры не были разработаны с учетом скорости более быстрых компьютеров. Игра, разработанная для ПК с частотой 30 МГц и таймером уровня в 300 игровых секунд, может дать игроку только 30 секунд на ПК с частотой 300 МГц. Другие программы, например некоторые программы DOS, могут даже не работать на более быстрых компьютерах. В частности, при эмуляции компьютеров, которые были «закрытыми», для которых изменения в ядре системы не были типичными, программное обеспечение может использовать методы, которые зависят от конкретных характеристик компьютера, на котором оно работало (например, скорости его процессора), и, таким образом, точного управления. Скорость эмуляции важна для правильной эмуляции таких приложений.

Ввод/вывод (I/O) [ править ]

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

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

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

Приложения [ править ]

На консервации [ править ]

Эмуляция – это одна из стратегий сохранения цифровых технологий и борьбы с их устареванием . Эмуляция направлена ​​на воссоздание исходной компьютерной среды, что может занять много времени и быть трудным для достижения, но ценно из-за способности поддерживать более тесную связь с подлинностью цифрового объекта, операционной системы или даже игровой платформы. [8] Эмуляция обращается к исходной аппаратной и программной среде цифрового объекта и воссоздает ее на текущей машине. [9] Эмулятор позволяет пользователю иметь доступ к любому приложению или операционной системе на текущей платформе , при этом программное обеспечение работает так же, как и в исходной среде. [10] Джеффри Ротенберг, один из первых сторонников эмуляции как стратегии сохранения цифровой информации , утверждает: «Идеальный подход должен обеспечить единое расширяемое , долгосрочное решение, которое можно разработать раз и навсегда и применять единообразно, автоматически и организованно синхронно (например, , при каждом цикле обновления) для всех типов документов и носителей». [11] Далее он заявляет, что это должно применяться не только к устаревшим системам, но также должно быть применимо и к будущим неизвестным системам. [12] Фактически, когда определенное приложение выпускается в новой версии, вместо того, чтобы решать совместимости проблемы и миграции для каждого цифрового объекта, созданного в предыдущей версии этого приложения , можно создать эмулятор для приложения , обеспечивающий доступ ко всем упомянутым цифровым объектам. объекты.

В новом медиа-искусстве [ править ]

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

В проектировании будущем систем

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

Сравнение с симуляцией [ править ]

Слово «эмулятор» было придумано в 1963 году в IBM. [17] во время разработки линейки продуктов NPL ( IBM System/360 ) с использованием «новой комбинации программного обеспечения , микрокода и аппаратного обеспечения ». [18] Они обнаружили, что моделирование с использованием дополнительных инструкций, реализованных в микрокоде и аппаратном обеспечении, вместо программного моделирования с использованием только стандартных инструкций для выполнения программ, написанных для более ранних компьютеров IBM, значительно увеличивает скорость моделирования. Ранее IBM предоставила симуляторы , например, для 650 на 705 . [19] Помимо симуляторов, у IBM были функции совместимости на 709 и 7090 , [20] для чего он предоставил компьютеру IBM 709 программу для запуска устаревших программ, написанных для IBM 704 , на IBM 709 и более поздних версиях на IBM 7090. Эта программа использовала инструкции, добавленные функцией совместимости. [21] перехватывать инструкции, требующие особого обращения; все остальные инструкции 704 выполнялись на 7090 одинаково. Функция совместимости на 1410 [22] требуется только установка тумблера консоли, а не программы поддержки.

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

Сравнение с аппаратной виртуализацией [ править ]

Аппаратная виртуализация — это виртуализация компьютеров операционных как полных аппаратных платформ, определенных логических абстракций их компонентов или только функций, необходимых для запуска различных систем . Виртуализация скрывает от пользователей физические характеристики вычислительной платформы, представляя вместо этого абстрактную вычислительную платформу. [25] [26] Изначально программное обеспечение, управляющее виртуализацией, называлось «программой управления», но терминам « гипервизор » или «монитор виртуальной машины». со временем стали отдавать предпочтение [27] Каждый гипервизор может управлять несколькими виртуальными машинами или запускать их .

См. также [ править ]

Ссылки [ править ]

  1. ^ Уорик, Майк (апрель 1988 г.). «Эмуляция MS-DOS для 64-х» . Вычислите! . п. 43 . Проверено 10 ноября 2013 г.
  2. ^ Руководство Шторм. «Эмуляторы PlayStation 4» . Проверено 4 августа 2019 г.
  3. ^ Эмуляция Linux удалена из OpenBSD в версии 6.0 https://www.openbsd.org/60.html.
  4. ^ Автоматизация проектирования электроники: синтез, проверка и тестирование . Лаун-Тернг Ван, Яо-Вэнь Чанг, Кван-Тин Ченг. Амстердам: Морган Кауфманн/Эльзевир. 2009. ISBN  978-0-08-092200-3 . OCLC   433173319 . {{cite book}}: CS1 maint: другие ( ссылка )
  5. ^ «Имитация эмуляции» . Лаборатория Малваребайтс . 17 октября 2014 года . Проверено 30 мая 2016 г.
  6. ^ см . Midway Manufacturing Co. против Artic International, Inc. , 574 F.Supp. 999, приложено, 704 F.2d 1009 (9-й округ 1982 г.) (считая, что ПЗУ компьютера Pac Man является достаточной фиксацией для целей закона об авторском праве, даже если игра меняется каждый раз, когда в нее играют.) и Статья 2 Бернского закона Соглашение
  7. ^ «Что такое эмуляция?» . Конинклийке Библиотека . Архивировано из оригинала 13 сентября 2015 г. Проверено 11 декабря 2007 г.
  8. ^ ван дер Хувен, Джеффри, Брэм Ломан и Ремко Вердегем. «Эмуляция цифрового сохранения на практике: результаты». Международный журнал цифрового курирования 2.2 (2007): 123–132.
  9. ^ Муира, Грегори. «Раздвигая границы политики традиционного наследия: сохранение долгосрочного доступа к мультимедийному контенту». Журнал ИФЛА 33 (2007): 323-326.
  10. ^ Ротенберг, Джеффри (1998). « Критерии идеального решения. Как избежать технологического зыбучего песка: найти жизнеспособную техническую основу для сохранения цифровой информации» . Совет по библиотечным и информационным ресурсам . Вашингтон, округ Колумбия . Проверено 8 марта 2008 г.
  11. ^ Ротенберг, Джеффри. «Решение для эмуляции». Как избежать технологического зыбучего песка: найти жизнеспособную техническую основу для сохранения цифровой информации. Вашингтон, округ Колумбия: Совет по библиотечным и информационным ресурсам, 1998. Совет по библиотечным и информационным ресурсам. 2008. 28 марта 2008 г. http://www.clir.org/pubs/reports/rothenberg/contents.html.
  12. ^ «Отголоски искусства: подражание как стратегия сохранения» . Архивировано из оригинала 27 октября 2007 г. Проверено 11 декабря 2007 г.
  13. ^ Питер Магнуссон (2004). «Полное системное моделирование: недостающее звено разработки программного обеспечения» .
  14. ^ «Отладка и полное моделирование системы» .
  15. ^ Ваня Жолобов (2009). «Полное системное моделирование встраиваемых систем» (PDF) . Архивировано из оригинала (PDF) 9 февраля 2014 г. Проверено 22 апреля 2012 г.
  16. ^ Пью, Эмерсон В. (1995). Создание IBM: формирование отрасли и ее технологий . Массачусетский технологический институт. п. 274. ИСБН  0-262-16147-8 .
  17. ^ Пью, Эмерсон В.; и др. (1991). Системы IBM 360 и Early 370 . Массачусетский технологический институт. ISBN  0-262-16123-0 . страницы 160-161
  18. ^ Моделирование IBM 650 на IBM 705
  19. ^ «Архивы IBM: система обработки данных 7090 (продолжение)» . www-03.ibm.com . 23 января 2003 г.
  20. ^ «Операции по совместимости системы». Справочное руководство по системе обработки данных IBM 7090 (PDF) . Март 1962 г., стр. 65–66. А22-6528-4.
  21. ^ «Операции по совместимости системы». Принципы работы IBM 1410 (PDF) . Март 1962 г., стр. 56–57, 98–100. А22-0526-3.
  22. ^ Такер, С.Г. (1965). «Эмуляция больших систем» . Коммуникации АКМ . 8 (12): 753–61. дои : 10.1145/365691.365931 . S2CID   15375675 .
  23. ^ «Сетевое моделирование или эмуляция?» . Сетевой мир . 22 сентября 2017 года . Проверено 22 сентября 2017 г.
  24. ^ Тюрбан, Е; Кинг, Д.; Ли, Дж.; Виланд, Д. (2008). «19». Электронная коммерция с точки зрения менеджмента (PDF) (5-е изд.). Прентис-Холл. п. 27. Архивировано из оригинала (PDF) 21 мая 2009 г. Проверено 13 декабря 2021 г.
  25. ^ «Виртуализация в образовании» (PDF) . ИБМ . Октябрь 2007 года . Проверено 6 июля 2010 г.
  26. ^ Кризи, Р.Дж. (1981). «Происхождение системы разделения времени VM/370» (PDF) . ИБМ . Проверено 26 февраля 2013 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 294ee81de463a883b5e782c9ce9fe413__1716855540
URL1:https://arc.ask3.ru/arc/aa/29/13/294ee81de463a883b5e782c9ce9fe413.html
Заголовок, (Title) документа по адресу, URL1:
Emulator - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)