~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ E90F6D3F538F2459EB4FE05D74587331__1718787480 ✰
Заголовок документа оригинал.:
✰ Hardware abstraction - Wikipedia ✰
Заголовок документа перевод.:
✰ Аппаратная абстракция — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Hardware_abstraction ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/e9/31/e90f6d3f538f2459eb4fe05d74587331.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/e9/31/e90f6d3f538f2459eb4fe05d74587331__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 04:59:30 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 19 June 2024, at 11:58 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Аппаратная абстракция — Википедия Jump to content

Аппаратная абстракция

Из Википедии, бесплатной энциклопедии

Аппаратные абстракции — это наборы процедур в программном обеспечении , которые предоставляют программам доступ к аппаратным ресурсам через программные интерфейсы. ко всем устройствам определенного класса аппаратных устройств C Интерфейс программирования позволяет получить доступ через идентичные интерфейсы, даже если C может содержать разные подклассы устройств, каждый из которых предоставляет свой аппаратный интерфейс.

Аппаратные абстракции часто позволяют программистам писать аппаратно -независимые высокопроизводительные приложения, предоставляя стандартные вызовы операционной системы (ОС) аппаратному обеспечению. Процесс абстрагирования частей аппаратного обеспечения часто выполняется с точки зрения ЦП . Каждый тип ЦП имеет определенную архитектуру набора команд или ISA. ISA представляет собой примитивные операции машины, доступные для использования программистами на ассемблере и авторами компиляторов. Одна из основных функций компилятора позволить программисту написать алгоритм на языке высокого уровня, не заботясь об инструкциях, специфичных для процессора. Затем компилятор должен сгенерировать исполняемый файл для конкретного процессора. Тот же тип абстракции реализован в операционных системах, но API-интерфейсы ОС теперь представляют примитивные операции машины, а не ISA. Это позволяет программисту использовать операции уровня ОС (например, создание/удаление задач) в своих программах, сохраняя при этом переносимость на множество различных платформ.

Обзор [ править ]

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

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

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

Хорошая метафора — абстракция транспорта. И езда на велосипеде, и вождение автомобиля являются транспортом. У них обоих есть общие черты (например, вы должны управлять) и физические различия (например, использование ног). Всегда можно указать абстракцию «ехать до» и позволить разработчику решить, что лучше — езда на велосипеде или вождение автомобиля. Функция «колесного наземного транспорта» абстрагирована и инкапсулированы детали «как управлять».

Примеры «абстракций» на ПК включают видеовход, принтеры, аудиовход и выход, блочные устройства (например, жесткие диски или флэш-накопитель USB ) и т. д.

В некоторых областях информатики, таких как операционные системы или встроенные системы, абстракции имеют немного другой внешний вид (например, операционные системы, как правило, имеют более стандартизированные интерфейсы), но концепция абстракции и инкапсуляции сложности является общей и глубокой.

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

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

Уровень абстракции оборудования ( HAL ) — это уровень абстракции , реализованный в программном обеспечении, между физическим оборудованием компьютера , и программным обеспечением которое работает на этом компьютере. Его функция — скрыть различия в оборудовании от большей части операционной системы ядра , чтобы не нужно было изменять большую часть кода режима ядра для работы в системах с различным оборудованием. В Microsoft Windows HAL по сути можно рассматривать как драйвер материнской платы, который позволяет инструкциям компьютерных языков более высокого уровня взаимодействовать с компонентами более низкого уровня, но предотвращает прямой доступ к оборудованию.

CP/M ( CP/M BIOS ), DOS ( DOS BIOS ), Solaris , Linux , BSD , macOS и некоторые другие портативные операционные системы также имеют HAL, даже если он явно не обозначен как таковой. Некоторые операционные системы, такие как Linux, имеют возможность вставлять их во время работы, например Adeos . Операционная система NetBSD широко известна тем, что имеет чистый уровень абстракции оборудования, что обеспечивает высокую переносимость. [1] Частью этой системы являются uvm(9)/ pmap(9), bus_space(9), bus_dma(9)и другие подсистемы. Популярные шины, которые используются более чем в одной архитектуре, такие как ISA , EISA , PCI , PCIe и т. д., также абстрагируются, что позволяет драйверам также быть легко переносимыми с минимальной модификацией кода.

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

Microsoft Windows [ править ]

Уровень аппаратной абстракции в архитектуре Windows NT

Ядро Windows NT имеет HAL в пространстве ядра между оборудованием и исполнительными службами, которые содержатся в файле NTOSKRNL.EXE. [2] [3] под %WINDOWS%\system32\hal.dll . Это обеспечивает переносимость кода режима ядра Windows NT на различные процессоры с различной архитектурой блоков управления памятью и различные системы с различной архитектурой шины ввода-вывода; большая часть этого кода выполняется без изменений в этих системах при компиляции для набора инструкций, применимого к этим системам. Например, рабочие станции SGI на базе Intel x86 не были рабочими станциями, совместимыми с IBM PC , но благодаря HAL Windows 2000 . на них могла работать [4] [ не удалось пройти проверку ]

Начиная с Windows Vista и Windows Server 2008 , используемый HAL автоматически определяется во время запуска . [5]

AS/400 [ править ]

«Экстремальный» пример HAL можно найти в архитектурах System/38 и AS/400 , которые в настоящее время реализованы в операционной системе IBM i . Большинство компиляторов для этих систем генерируют абстрактный машинный код; Лицензионный внутренний код, или LIC, преобразует этот код виртуальной машины в собственный код для процессора, на котором он работает, и выполняет полученный собственный код. [6] (Исключением являются компиляторы, которые генерируют сам LIC; эти компиляторы недоступны за пределами IBM.) Это было настолько успешным, что прикладное программное обеспечение и программное обеспечение операционной системы выше уровня LIC, которые были скомпилированы на исходном S / 38, работали без изменений и перекомпиляции. в новейших системах AS/400, несмотря на то, что базовое оборудование было существенно изменено; использовались как минимум три разных типа процессоров. [6]

Андроид [ править ]

Android представил HAL, известный как «интерфейс поставщика» (кодовое название «Project Treble») в версии 8.0 «Oreo» . Он абстрагирует низкоуровневый код от инфраструктуры ОС Android, и их необходимо сделать совместимыми для поддержки будущих версий Android, чтобы облегчить разработку обновлений прошивки. [7] До Project Treble Android полагался на различные нестандартизированные устаревшие HAL. [8]

Halium — это HAL на базе Android, используемый несколькими мобильными операционными системами, такими как Ubuntu Touch и LuneOS, для работы на смартфонах с предустановленной Android.

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

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

  1. ^ «Портативность и поддерживаемые аппаратные платформы» . Фонд NetBSD . Проверено 12 мая 2009 г.
  2. ^ «Уровень аппаратной абстракции Windows NT (HAL)» . Майкрософт . 31 октября 2006 г. Проверено 25 августа 2007 г.
  3. ^ Кастер, Хелен (1993), Внутри Windows NT , Microsoft Press , Bibcode : 1993iwn..book.....C
  4. ^ «Изменение уровня аппаратной абстракции в Windows 2000/XP – Smallvoid.com» . 15 января 2001 года . Проверено 18 сентября 2020 г.
  5. ^ Руссинович, Марк Э.; Соломон, Дэвид А.; Ионеску, Алекс (2008). Внутреннее устройство Windows: включая Windows Server 2008 и Windows Vista (5-е изд.). Редмонд, Вашингтон, США: Microsoft Press . п. 65. ИСБН  978-0-7356-2530-3 .
  6. ^ Перейти обратно: а б Солтис, Фрэнк Г. (1997). Внутри AS/400: описание серии AS/400e (2-е изд.). Лавленд, Колорадо, США: Duke Press. ISBN  978-1-882419-66-1 .
  7. ^ «Проект Treble от Google решает одну из многих проблем обновления Android» . Арс Техника . 12 мая 2017 года . Проверено 12 мая 2017 г. .
  8. ^ «Обычные и устаревшие HAL» . Проект Android с открытым исходным кодом .

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

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: E90F6D3F538F2459EB4FE05D74587331__1718787480
URL1:https://en.wikipedia.org/wiki/Hardware_abstraction
Заголовок, (Title) документа по адресу, URL1:
Hardware abstraction - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)