Голая машина - Bare machine

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

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

Для данного приложения в большинстве случаев реализация на «голом железе» будет работать быстрее, используя меньше памяти и, следовательно, более энергоэффективно. Это связано с тем, что операционным системам, как и любой программе, требуется некоторое время выполнения и пространство памяти для запуска, и они больше не нужны на голом железе. Например, любые аппаратные функции, включая входы и выходы, доступны напрямую на голом железе при использовании ОС подразумевают, как правило, вызов подпрограммы, потребляя время работы и память. [1]

Недостатки

Для данного приложения программирование на «голом железе» требует больше усилий для правильной работы и является более сложным, потому что услуги, предоставляемые операционной системой и используемые приложением, должны быть повторно реализованы в соответствии с потребностями. Эти услуги могут быть:

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

Отладка программы на «голом железе» затруднена, поскольку:

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

Программирование на «чистом металле» обычно выполняется на языке, близком к аппаратному, например C ++,[2] C или язык ассемблера, которые обычно сложнее освоить.[3] Все предыдущие проблемы неизбежно означают, что программы на голом железе очень редко портативный.

Примеры

Ранние компьютеры

Ранние компьютеры, такие как PDP-11 позволил программистам загрузить программу, поставляемую в Машинный код, к баран. Результатом работы программы можно было следить с помощью огни, и вывод, полученный из магнитная лента, устройства печати или место хранения.

Встроенные системы

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

Разработка

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

Такой подход выявил необходимость в следующем:

  • Ввод, вывод (I / O) устройства для удобного ввода кода и данных:
    • Устройства ввода, такие как клавиатуры, были созданы. Это было необходимо, поскольку ранние компьютеры часто имели уникальные, тупые и запутанные устройства ввода.

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

    • Устройства вывода, такие как компьютерные мониторы позже будут широко использоваться и используются по сей день. Они зарекомендовали себя как очень удобные раньше устройства вывода, например множество огней на Альтаир 8800, который будет указывать на состояние компьютера.

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

Смотрите также

Рекомендации

  1. ^ https://dl.acm.org/doi/pdf/10.1145/2248487.2151020
  2. ^ https://arobenko.gitbooks.io/bare_metal_cpp/content/
  3. ^ Требуется академическое цитирование
  • Silberschatz, A .; Гэлвин, Питер; Гань, Грег. Понятия операционной системы.