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
Номер скриншота №: a37bd2dd29dfa4464c08adfe1b33976c__1719082500
URL1:https://arc.ask3.ru/arc/aa/a3/6c/a37bd2dd29dfa4464c08adfe1b33976c.html
Заголовок, (Title) документа по адресу, URL1:
Bare machine - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)