Эмулятор

редактировать
DOSBox эмулирует интерфейс командной строки DOS.

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

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

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

— Письмо в Compute! и ответ редакции, апрель 1988 г.
Содержание
  • 1 В сохранности
    • 1.1 Преимущества
    • 1.2 Препятствия
  • 2 В искусстве новых медиа
  • 3 В проектировании систем будущего
  • 4 Типы
  • 5 Структура
    • 5.1 Подсистема памяти
    • 5.2 Симулятор ЦП
    • 5.3 Ввод / вывод (I / O)
  • 6 Сравнение с симуляцией
  • 7 Логические симуляторы
  • 8 Функциональные симуляторы
  • 9 Видео игровые консоли
  • 10 Терминал
  • 11 Выдача себя за другое лицо вредоносным ПО
  • 12 Правовые вопросы
    • 12.1 США
  • 13 См. также
  • 14 Ссылки
  • 15 Внешние ссылки
В сохранении

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

Преимущества

Basilisk II эмулирует Macintosh 68k с использованием кода интерпретации и динамической перекомпиляции.
  • Потенциально лучшее качество графики, чем у оригинального оборудования.
  • Потенциально дополнительных возможностей оригинального оборудования не было ' нет.
  • Эмуляторы поддерживают исходный внешний вид, ощущение и поведение цифрового объекта, что так же важно, как и сами цифровые данные.
  • Несмотря на первоначальную стоимость разработки эмулятора, со временем это может оказаться более экономичным решением.
  • Сокращает труд часов, потому что вместо продолжения постоянной задачи постоянной миграции данных для каждого цифрового объекта после того, как библиотека прошлых и настоящих операционных систем и прикладного программного обеспечения установлена ​​в эмуляторе, эти же технологии используются для каждого документа, использующего эти платформы.
  • Многие эмуляторы уже были разработаны и выпущены под Стандартной общественной лицензией GNU по среда с открытым исходным кодом, обеспечивающая широкое сотрудничество.
  • Эмуляторы позволяют использовать программное обеспечение, эксклюзивное для одной системы, в другой. Например, в PlayStation 2 эксклюзивную видеоигру можно играть на ПК с помощью эмулятора. Это особенно полезно, когда исходную систему сложно получить или она несовместима с современным оборудованием (например, старые игровые приставки, которые подключаются через аналоговые выходы, могут не подключаться к современным телевизорам, которые могут иметь только цифровые входы).

Препятствия

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

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

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

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

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

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

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

Структура

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

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

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

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

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

В системе, где память от адреса 0 до адреса ROMSIZE-1 является постоянным запоминающим устройством, а остальное - ОЗУ, типичным будет что-то вроде следующих процедур:

void WriteMemory (word Адрес, слово Значение) {слово RealAddress; Реальный адрес = адрес + базовый регистр; if ((RealAddress < LimitRegister) (RealAddress>ROMSIZE)) {Память [RealAddress] = Значение; } еще {RaiseInterrupt (INT_SEGFAULT); }}
слово ReadMemory (слово Address) {word RealAddress; Реальный адрес = адрес + базовый регистр; 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 ++)) {/ * * Обработка каждой допустимой инструкции * идет сюда... * / по умолчанию: Interrupt = INT_ILLEGAL; }}

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

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

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

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

Ввод / вывод (I / O)

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

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

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

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

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

Логические имитаторы

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

Функциональные симуляторы

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

Игровые приставки

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

Terminal

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

Выдача себя за вредоносное ПО

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

Юридические проблемы
См. Статью Эмулятор консоли - Юридические вопросы

США

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

См. Также
Ссылки
Внешние ссылки
Найдите эмулируйте в Wiktionary, бесплатном словаре.
Найдите Эмулятор в Викисловаре, бесплатный словарь.
Последняя правка сделана 2021-05-19 09:55:14
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте