Нативный (информатика)

Материал из Циклопедии
Перейти к навигации Перейти к поиску

Нативный, в информатике — спроектированый для работы на определенной операционной системе.

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

Например, Game Boy использует картридж для доставки своего программного обеспечения, содержащий код, который работает нативно на Game Boy.[2] Единственным способ запуска этого кода на другом процессоре является использование эмулятора, который симулирует настоящий Game Boy.[3] За это обычно приходиться расплачиваться скоростью.[4]

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

Что-то работающее на компьютере нативно означает, что это работает без использования какого-либо внешнего слоя, что требует меньше слоев программного обеспечения. Например, в Microsoft Windows, Native API — это интерфейс прикладного программирования специфичный для ядра Windows NT, который может быть использован для предоставления доступа к некоторым функциям ядра, доступ к которым не может быть получен напрямую с использованием более универсального Windows API.

Операционные системы[править]

Используется для обозначения самого низкого уровня виртуализации или отсутствия виртуализации. Например, термин нативная виртуальная машина («Native VM») используется для обозначения самого низкого уровня операционной системы, то есть того, который может фактически поддерживать прямое управление аппаратным обеспечением, когда появляются множественные уровни виртуализации.

Машинный код[править]

Машинный код, также известный как нативный код, это программа, которая написана на машинном языке. Машинный код обычно рассматривается как код самого низкого уровня для компьютера, который, в своей самой низкоуровневой форме, написан в двоичном виде (с использованием нулей и единиц), но он часто написан в шестнадцатеричной или восьмеричной системе счисления для того, чтобы сделать его немного проще в обращении.[5] Эти наборы инструкций затем интерпретируются компьютером. Благодаря этому, отсутствует необходимость в трансляции. Машинный код является строго численным и обычно это не тот код, который используют программисты для создания программ, в связи с его сложностью.[5] Машинный код также настолько близок к процессору, насколько это возможно, поэтому используя этот язык, специалисты программируют для определенного процессора, так как машинный код для каждого процессора может отличаться.[6] Обычно программисты программируют на высокоуровневых языках таких как C, C++, Pascal, (или других компилируемых языках программирования), которые транслируются в код ассемблера, который затем транслируется в машинный код (или в большинстве случаев компилятор генерирует машинный код напрямую). Так как каждый центральный процессор отличается, программы должны быть перекомпилированы или переписаны для того, чтобы работать на конкретном процессоре.[7]

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

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

Например, видео адаптеры EGA и VGA нативно поддерживают кодовую страницу 437. Это не исключает поддержку других кодовых страниц, но для этого требуется либо загрузка шрифта[en] либо использование графических режимов.

Источники[править]

  1. What is native code? - Definition from WhatIs.com (англ.). Проверено 22 ноября 2019.
  2. Nintendo Game Boy - Game Console - Computing History. Проверено 22 ноября 2019.
  3. Pot, Justin Why Are Video Game Emulators So Important? (Because They Preserve Our History) (en-US). Проверено 22 ноября 2019.
  4. How Does Emulation Work and Why Is It So Slow? (en-US). Проверено 22 ноября 2019.
  5. 5,0 5,1 What is machine code? Definition and examples (en-US). Проверено 23 ноября 2019.
  6. Beal, Vangie What is Machine Language? Webopedia Definition (англ.). Проверено 23 ноября 2019.
  7. Manzoor Amir Information Technology in Business. — Amir Manzoor. — ISBN 978-1-4699-9188-7.