Jump to content

Голая машина

(Перенаправлено с Bare Metal (вычисления) )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Развитие [ править ]

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

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

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

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

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

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

  1. ^ Гордон, Абель; Амит, Надав; Хар'Эл, Надав; Бен-Иегуда, Мули; Ландау, Алекс; Шустер, Ассаф; Цафрир, Дэн (2012). «ЭЛИ» . Уведомления ACM SIGPLAN . 47 (4): 411–422. дои : 10.1145/2248487.2151020 .
  2. ^ «Практическое руководство по Bare Metal C++» . Проверено 16 декабря 2022 г.

Дальнейшее чтение [ править ]

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