Hardware Abstraction Layer (HAL, укр. Шар апаратних абстракцій) — шар абстрагування, реалізований у програмному забезпеченні, розташованому між фізичним рівнем апаратного забезпечення і програмним забезпеченням, що запускаються на цьому комп'ютері. HAL призначений для приховування відмінностей в апаратному забезпеченні від основної частини ядра операційної системи, таким чином, щоб більша частина коду, що працює в режимі ядра, не мала потреби в зміні при її запуску на системах з різним апаратним забезпеченням.
На персональних комп'ютерах HAL, по суті, може розглядатися як драйвер материнської плати, що дозволяє взаємодіяти інструкціям високорівневих мов програмування з низькорівневими компонентами, такими як апаратне забезпечення.
Реалізація в ОС
У Windows NT
В операційних системах сімейства Windows NT HAL є невід'ємною частиною коду, що виконується в режимі ядра, міститься в окремому завантажуваному модулі, який можна завантажувати разом з ядром. Це забезпечує можливість використання одного і того ж завантажувального модуля власне ядра ОС Windows NT на низці систем з різними архітектурами шин введення/виведення, управління переривань і таймерами. Приміром, робочі станції, засновані на SGI Intel x86, були не сумісні з IBM PC-сумісними робочими станціями, але завдяки HAL Windows NT міг запускатися на них. Аналогічним чином одне й те ж ядро Windows NT використовується і на сучасних системах з контролером переривань APIC, так і на застарілих системах без підтримки APIC.
В інших ОС
BSD, Mac OS X, Linux, (CP/M), MS-DOS, Solaris і деякі інші портовані ОС також мають HAL, попри те, що він не розроблявся явно для виконання описаних вище функцій. Деякі системи, такі як Linux, мають можливість вставляти подібний шар, приміром Adeos, під час роботи. Ядро операційної системи NetBSD широко відомо наявністю чистого шару абстрагування від апаратних засобів (HAL), що дозволяє йому бути високо-портованим. Частиною цієї системи є uvm(9)/pmap(9), bus_space(9), bus_dma(9) та інші підсистеми. Популярні шини, які використовуються більш ніж на одній архітектурі, такі як ISA, EISA, PCI, PCI-E тощо, також абстраговані, дозволяючи написаним під них драйверам також бути високо-портованими з мінімальним зміною коду.
Реалізація в комп'ютерних архітектурах
«Екстремальний» приклад HAL може бути знайдений в архітектурі System/38 і AS/400. Більшість компіляторів для таких систем генерують абстрактний машинний код. Ліцензований Внутрішній Код (Licensed Internal Code) або ЛІК (LIC) переводить цей віртуальний машинний код у внутрішній (власний) код процесора, на якому він запускається, і виконує отриманий внутрішній код. (Виняток становлять компілятори, які самі генерують ЛІК; ці компілятори не доступні за межами IBM) Це було настільки успішним, що прикладне програмне забезпечення та програмне забезпечення операційної системи, розташовані над шаром ЛІК, скомпільовані на оригінальній архітектурі System/38 запускаються без будь-яких модифікацій і перекомпіляції на останніх системах AS/400. І це незважаючи на той факт, що апаратне забезпечення було кардинально змінено; принаймні три різні типи мікропроцесорів перебували у використанні.
Ієрархія
HAL є навіть нижчим рівнем в комп'ютерних мовах програмування, ніж API, тому що він взаємодіє безпосередньо з апаратним забезпеченням замість ядра системи, отже HAL вимагає менше процесорного часу ніж API. Мови високого рівня часто використовують HAL і API для взаємодії з компонентами нижчого рівня.
Особливості застосування
Операційні системи, що мають HAL, легше портуються на різне обладнання. Це особливо важливо для вбудованих систем, які повинні працювати на великій кількості різних платформ.
Примітки
- Windows NT Hardware Abstraction Layer (HAL). Microsoft. 31 жовтня 2006. Архів оригіналу за 3 березня 2012. Процитовано 25 серпня 2007.
- . Архів оригіналу за 17 липня 2013. Процитовано 17 січня 2010.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . Архів оригіналу за 2 квітня 2015. Процитовано 17 січня 2010.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . Архів оригіналу за 17 липня 2013. Процитовано 17 січня 2010.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . Архів оригіналу за 17 липня 2013. Процитовано 17 січня 2010.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title ()
Посилання
Див. також
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Skorochennya HAL takozh maye inshi znachennya Hardware Abstraction Layer HAL ukr Shar aparatnih abstrakcij shar abstraguvannya realizovanij u programnomu zabezpechenni roztashovanomu mizh fizichnim rivnem aparatnogo zabezpechennya i programnim zabezpechennyam sho zapuskayutsya na comu komp yuteri HAL priznachenij dlya prihovuvannya vidminnostej v aparatnomu zabezpechenni vid osnovnoyi chastini yadra operacijnoyi sistemi takim chinom shob bilsha chastina kodu sho pracyuye v rezhimi yadra ne mala potrebi v zmini pri yiyi zapusku na sistemah z riznim aparatnim zabezpechennyam Na personalnih komp yuterah HAL po suti mozhe rozglyadatisya yak drajver materinskoyi plati sho dozvolyaye vzayemodiyati instrukciyam visokorivnevih mov programuvannya z nizkorivnevimi komponentami takimi yak aparatne zabezpechennya Realizaciya v OSU Windows NT V operacijnih sistemah simejstva Windows NT HAL ye nevid yemnoyu chastinoyu kodu sho vikonuyetsya v rezhimi yadra mistitsya v okremomu zavantazhuvanomu moduli yakij mozhna zavantazhuvati razom z yadrom Ce zabezpechuye mozhlivist vikoristannya odnogo i togo zh zavantazhuvalnogo modulya vlasne yadra OS Windows NT na nizci sistem z riznimi arhitekturami shin vvedennya vivedennya upravlinnya pererivan i tajmerami Primirom robochi stanciyi zasnovani na SGI Intel x86 buli ne sumisni z IBM PC sumisnimi robochimi stanciyami ale zavdyaki HAL Windows NT mig zapuskatisya na nih Analogichnim chinom odne j te zh yadro Windows NT vikoristovuyetsya i na suchasnih sistemah z kontrolerom pererivan APIC tak i na zastarilih sistemah bez pidtrimki APIC V inshih OS BSD Mac OS X Linux CP M MS DOS Solaris i deyaki inshi portovani OS takozh mayut HAL popri te sho vin ne rozroblyavsya yavno dlya vikonannya opisanih vishe funkcij Deyaki sistemi taki yak Linux mayut mozhlivist vstavlyati podibnij shar primirom Adeos pid chas roboti Yadro operacijnoyi sistemi NetBSD shiroko vidomo nayavnistyu chistogo sharu abstraguvannya vid aparatnih zasobiv HAL sho dozvolyaye jomu buti visoko portovanim Chastinoyu ciyeyi sistemi ye uvm 9 pmap 9 bus space 9 bus dma 9 ta inshi pidsistemi Populyarni shini yaki vikoristovuyutsya bilsh nizh na odnij arhitekturi taki yak ISA EISA PCI PCI E tosho takozh abstragovani dozvolyayuchi napisanim pid nih drajveram takozh buti visoko portovanimi z minimalnim zminoyu kodu Realizaciya v komp yuternih arhitekturah Ekstremalnij priklad HAL mozhe buti znajdenij v arhitekturi System 38 i AS 400 Bilshist kompilyatoriv dlya takih sistem generuyut abstraktnij mashinnij kod Licenzovanij Vnutrishnij Kod Licensed Internal Code abo LIK LIC perevodit cej virtualnij mashinnij kod u vnutrishnij vlasnij kod procesora na yakomu vin zapuskayetsya i vikonuye otrimanij vnutrishnij kod Vinyatok stanovlyat kompilyatori yaki sami generuyut LIK ci kompilyatori ne dostupni za mezhami IBM Ce bulo nastilki uspishnim sho prikladne programne zabezpechennya ta programne zabezpechennya operacijnoyi sistemi roztashovani nad sharom LIK skompilovani na originalnij arhitekturi System 38 zapuskayutsya bez bud yakih modifikacij i perekompilyaciyi na ostannih sistemah AS 400 I ce nezvazhayuchi na toj fakt sho aparatne zabezpechennya bulo kardinalno zmineno prinajmni tri rizni tipi mikroprocesoriv perebuvali u vikoristanni IyerarhiyaHAL ye navit nizhchim rivnem v komp yuternih movah programuvannya nizh API tomu sho vin vzayemodiye bezposeredno z aparatnim zabezpechennyam zamist yadra sistemi otzhe HAL vimagaye menshe procesornogo chasu nizh API Movi visokogo rivnya chasto vikoristovuyut HAL i API dlya vzayemodiyi z komponentami nizhchogo rivnya Osoblivosti zastosuvannyaOperacijni sistemi sho mayut HAL legshe portuyutsya na rizne obladnannya Ce osoblivo vazhlivo dlya vbudovanih sistem yaki povinni pracyuvati na velikij kilkosti riznih platform PrimitkiWindows NT Hardware Abstraction Layer HAL Microsoft 31 zhovtnya 2006 Arhiv originalu za 3 bereznya 2012 Procitovano 25 serpnya 2007 Arhiv originalu za 17 lipnya 2013 Procitovano 17 sichnya 2010 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Arhiv originalu za 2 kvitnya 2015 Procitovano 17 sichnya 2010 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Arhiv originalu za 17 lipnya 2013 Procitovano 17 sichnya 2010 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Arhiv originalu za 17 lipnya 2013 Procitovano 17 sichnya 2010 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya PosilannyaDiv takozhHAL freedesktop org