Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В вычислениях , эмулятор является аппаратным или программным обеспечением , которое позволяет один компьютерную системе ( так называемый хостом ) , чтобы вести себя как другую компьютерную систему ( так называемой гостевым ). Эмулятор обычно позволяет хост-системе запускать программное обеспечение или использовать периферийные устройства, разработанные для гостевой системы. Эмуляция относится к способности компьютерной программы в электронном устройстве имитировать (или имитировать) другую программу или устройство. Например, многие принтеры созданы для имитации 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] в том же смысле, в каком можно спасти озеро Мичиган с помощью чайной ложки .

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

В сохранении [ править ]

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

Преимущества [ править ]

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

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

  • Законность, связанная с правами интеллектуальной собственности, является постоянной проблемой. Многие группы разработчиков, компании и поставщики технологий иногда внедряли нестандартные функции во время разработки программы, чтобы занять свою нишу на рынке, одновременно применяя текущие обновления, чтобы оставаться конкурентоспособными. Хотя это, возможно, продвинуло технологическую отрасль и увеличило рыночную долю поставщика, пользователи остались в кошмарном состоянии сохранения с небольшим количеством подтверждающей документации из-за проприетарного характера оборудования и программного обеспечения. [10]
  • Еще не вступили в силу законы об авторских правах, касающиеся сохранения документации и спецификаций проприетарного программного и аппаратного обеспечения в модуле эмулятора. [11]
  • Эмуляторы часто используются как инструмент нарушения авторских прав , поскольку они позволяют пользователям играть в видеоигры, не покупая консоль, и редко предпринимают какие-либо попытки предотвратить использование незаконных копий. Это приводит к ряду юридических неопределенностей в отношении эмуляции и приводит к тому, что программное обеспечение программируется так, чтобы отказываться работать, если оно может сказать, что хост является эмулятором; некоторые видеоигры, в частности, будут продолжать работать, но не позволят игроку продвинуться дальше некоторой поздней стадии игры, часто оказываясь неисправной или просто чрезвычайно сложной. [12] [13] Эти средства защиты затрудняют разработку эмуляторов, поскольку они должны быть достаточно точными, чтобы избежать срабатывания защиты, последствия которой могут быть неочевидными.
  • Для эмуляторов требуется более качественное оборудование, чем в исходной системе.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

недействительный  WriteMemory ( слово  Адрес ,  слово  Value )  {  слова  RealAddress ;  Реальный  адрес =  адрес  +  базовый регистр ;  if  (( RealAddress  <  LimitRegister )  &&  ( RealAddress  >  ROMSIZE ))  {  Память [ RealAddress ]  =  Значение ;  }  еще  {  RaiseInterrupt ( INT_SEGFAULT );  } }
слово  ReadMemory ( адрес слова  ) { слово RealAddress ; Реальный адрес = адрес + базовый регистр ; if ( RealAddress < LimitRegister ) { вернуть память [ RealAddress ]; } еще { 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 ;  } }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Функциональное моделирование - это использование компьютерной программы для моделирования выполнения второй компьютерной программы, написанной на символическом языке ассемблера или языке компилятора , а не в двоичном машинном коде . Используя функциональный симулятор, программисты могут выполнять и отслеживать выбранные участки исходного кода для поиска программных ошибок (ошибок) без создания двоичного кода. Это отличается от имитации выполнения двоичного кода, который является программной эмуляцией. Первый функциональный симулятор был написан 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 .

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

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

Выдача себя за другое лицо вредоносным ПО [ править ]

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

Правовые вопросы [ править ]

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

Соединенные Штаты [ править ]

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

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

  • Список эмуляторов
  • Список эмуляторов видеоигр
  • Список эмуляторов компьютерных систем
  • Компьютерное моделирование - это более обширная область моделирования явлений реального мира (например, физики и экономики) с помощью компьютеров.
  • Другие варианты использования термина «эмулятор» в области информатики:
    • Эмулятор консоли
    • Эмулятор Flash
    • Эмулятор с плавающей точкой
    • Симулятор набора инструкций
    • Сетевая эмуляция
    • Эмулятор сервера
    • Эмулятор терминала
  • Семуляция
  • Логическое моделирование
  • Функциональное моделирование
  • Перевод:
    • Двоичный перевод
  • Внутрисхемный эмулятор (ICE)
    • Совместная группа действий по тестированию
    • Интерфейс фонового режима отладки
  • QEMU
  • Q (эмулятор)
  • Аппаратная эмуляция
  • Аппаратная виртуализация
  • Виртуальная машина

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

  1. ^ Warick, Mike (апрель 1988). «Эмуляция MS-DOS для 64-разрядной версии» . Вычислить! . п. 43 . Проверено 10 ноября 2013 года .
  2. ^ "Что такое эмуляция?" . Koninklijke Bibliotheek . Проверено 11 декабря 2007 .
  3. ^ ван дер Хувен, Джеффри, Брэм Ломан и Ремко Вердегем. «Эмуляция для цифрового хранения на практике: результаты». Международный журнал цифрового курирования 2.2 (2007): 123-132.
  4. ^ a b Муира, Грегори. «Расширение границ политики традиционного наследия: поддержание долгосрочного доступа к мультимедийному контенту». Журнал ИФЛА 33 (2007): 323-326.
  5. ^ Ротенберг, Джеффри (1998). « » Критерии идеального решения «Избежание Технологического Quicksand: Поиск жизнеспособной технической базы для цифрового сохранения» . Совет по библиотечным и информационным ресурсам . Вашингтон, округ Колумбия . Проверено 8 марта 2008 .
  6. ^ Ротенберг, Джеффри. «Решение для эмуляции». Избегая технологического зыбучих песков: поиск жизнеспособной технической основы для цифрового хранения. Вашингтон, округ Колумбия: Совет по библиотечным и информационным ресурсам, 1998. Совет по библиотечным и информационным ресурсам. 2008. 28 марта 2008 г. http://www.clir.org/pubs/reports/rothenberg/contents.html
  7. ^ Миура, Грегори (2016). «Расширяя границы политики традиционного наследия: поддержание долгосрочного доступа к мультимедийному контенту». Журнал ИФЛА . 33 (4): 323–6. DOI : 10.1177 / 0340035207086058 .
  8. ^ Грейнджер, Стюарт. Цифровое сохранение и эмуляция: от теории к практике. Proc. собрания ichim01, т. 2, 3–7 сентября 2001 г. Милан, Италия. Торонто: Архивы и музейная информатика, Университет Торонто, 2001. 28 марта 2008 г. http://www.leeds.ac.uk/cedars/pubconf/papers/ichim01SG.html Архивировано 31января 2009 г.на Wayback Machine
  9. ^ Вердегем, Ремко; Ломан, Брэм; Ван дер Хувен, Джеффри (2008). «Эмуляция для цифрового хранения на практике: результаты» . Международный журнал цифрового курирования . 2 (2): 123–32. DOI : 10.2218 / ijdc.v2i2.35 .
  10. ^ Грейнджер, Стюарт. «Эмуляция как стратегия цифрового сохранения». Журнал D-Lib 6.19 (2000). 29 марта 2008 г. http://www.dlib.org/dlib/october00/granger/10granger.html
  11. ^ Ротенберг, Джеффри. «Решение для эмуляции». Избегая технологического зыбучих песков: поиск жизнеспособной технической основы для цифрового хранения. Вашингтон, округ Колумбия: Совет по библиотечным и информационным ресурсам, 1998. Совет по библиотечным и информационным ресурсам. 2008. 28 марта 2008 г.
  12. ^ {{Cite web | url = http://tcrf.net/Pok%C3%A9mon_Black_and_White#Anti-Piracy{{full%7Cdate=September | title = Archived copy | access-date = 2012-12-30 | archive- url = https://web.archive.org/web/20130606033535/http://tcrf.net/Pok%C3%A9mon_Black_and_White#Anti-Piracy{{full%7Cdate=September | archive-date = 2013-06-06 | url-status = dead}}
  13. ^ "Mega Man Star Force - Пол в монтажной" . tcrf.net . Архивировано из оригинала на 2013-05-12 . Проверено 30 декабря 2012 .
  14. ^ «Отголоски искусства: подражание как стратегия сохранения» . Архивировано из оригинала на 2007-10-27 . Проверено 11 декабря 2007 .
  15. ^ Питер Магнуссон (2004). «Полное моделирование системы: недостающее звено в разработке программного обеспечения» .
  16. ^ «Отладка и полное моделирование системы» .
  17. ^ Ваню Joloboff (2009). «Полное системное моделирование встроенных систем» (PDF) . Архивировано из оригинального (PDF) 09 февраля 2014 года . Проверено 22 апреля 2012 .
  18. ^ GuideStorm. «Эмуляторы PlayStation 4» . Проверено 4 августа 2019 .
  19. ^ Пью, Эмерсон В. (1995). Строительство IBM: формирование отрасли и ее технологий . Массачусетский технологический институт. п. 274. ISBN 0-262-16147-8.
  20. ^ Пью, Эмерсон В .; и другие. (1991). Системы IBM 360 и Early 370 . Массачусетский технологический институт. ISBN 0-262-16123-0. страницы 160-161
  21. ^ Моделирование IBM 650 на IBM 705
  22. ^ «Архивы IBM: система обработки данных 7090 (продолжение)» . www-03.ibm.com . 23 января 2003 г.
  23. ^ «Операции совместимости системы». Справочное руководство IBM 7090 Data Processing System (PDF) . Март 1962. С. 65–66. A22-6528-4.
  24. ^ «Операции совместимости системы». Принципы работы IBM 1410 (PDF) . Март 1962. С. 56–57, 98–100. A22-0526-3.
  25. Перейти ↑ Tucker, S. G (1965). «Эмуляция больших систем». Коммуникации ACM . 8 (12): 753–61. DOI : 10.1145 / 365691.365931 .
  26. ^ "Сетевое моделирование или эмуляция?" . Сетевой мир . Сетевой мир . Проверено 22 сентября 2017 года .
  27. ^ "Имитация имитации" . Malwarebytes Labs . Проверено 30 мая 2016 .
  28. ^ см. Midway Manufacturing Co. против Artic International, Inc. , 574 F.Supp. 999, aff'd, 704 F.2d 1009 (9th Cir 1982) (содержащий компьютерное ПЗУ Pac Man в качестве достаточной фиксации для целей закона об авторском праве, даже если игра меняется каждый раз) и статья 2 Берна. соглашение

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

  • Репертуар эмуляторов и их истории (архив; сайт закрыт в 2010 году из-за проблем с авторскими правами).
  • Эмулятор в Curlie