Hardveres absztrakciós réteg

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. július 9-én felülvizsgált verziótól ; az ellenőrzések 5 szerkesztést igényelnek .

A hardveres absztrakciós réteg (HAL, Hardware Abstraction Layer ) egy szoftverben megvalósított absztrakciós réteg , amely a fizikai hardverréteg és a számítógépen futó szoftver között helyezkedik el. A HAL-t úgy tervezték, hogy elrejtse a hardveres különbségeket az operációs rendszer kernelének fő része előtt, így a kernel módban futó kód nagy részét nem kell megváltoztatni, ha az eltérő hardverrel rendelkező rendszereken fut.

A személyi számítógépeken a HAL alapvetően alaplapi illesztőprogramnak tekinthető, amely lehetővé teszi, hogy a magas szintű programozási nyelvekből származó utasítások együttműködjenek az alacsony szintű összetevőkkel, például a hardverrel.

A Windows NT család operációs rendszereiben a HAL a kernel módban futó kód szerves része, és egy külön rendszerindító modulban található, amely a kernellel együtt van betöltve. [1] [2] Ez lehetővé teszi, hogy ugyanazt a natív Windows NT kernelbetöltőt használjuk számos különböző I/O, megszakítási és időzítő architektúrájú rendszeren.

Például az SGI Intel x86 alapú munkaállomások nem voltak kompatibilisek az IBM PC-kompatibilis munkaállomásokkal , de a HAL-nak köszönhetően a Windows NT futhatott rajtuk. Hasonlóképpen, ugyanazt a Windows NT kernelt használják APIC megszakításvezérlővel rendelkező modern rendszereken és APIC támogatás nélküli régebbi rendszereken.

A Windows Vista és újabb ( Windows Server 2008 és újabb kiszolgálókhoz) automatikusan felismeri, hogy a rendszerindításkor melyik HAL-szintet kell használni. [3]

A BSD , a Mac OS X , a Linux , a Solaris , a CP/M , az MS-DOS és néhány más hordozható operációs rendszer is rendelkezik HAL-al, még akkor is, ha azt nem kifejezetten a fent leírt funkciók ellátására tervezték. Egyes rendszerek, például a Linux, képesek hasonló réteget beilleszteni, mint például az Adeos, munka közben. A NetBSD operációs rendszer kernelje széles körben ismert arról, hogy tiszta hardveres absztrakciós réteggel (HAL) rendelkezik, ami lehetővé teszi, hogy nagymértékben hordozható legyen . Ennek a rendszernek a része a uvm(9)/ pmap(9), bus_space(9), bus_dma(9)és más alrendszerek. Az egynél több architektúrán használt népszerű buszok, mint például az ISA , EISA , PCI , PCI-E és mások szintén absztraháltak, így a számukra írt illesztőprogramok is nagymértékben hordozhatóak lehetnek minimális kódmódosítással.

A HAL "extrém" példája a System/38 architektúrákban találhatóés AS/400 . Az ilyen rendszerek legtöbb fordítója absztrakt gépi kódot állít elő . A Licenc belső kód (LIC) lefordítja ezt a virtuális gép kódját a rajta futó processzor belső (natív) kódjává, és végrehajtja az eredményül kapott belső kódot (kivéve azokat a fordítókat, amelyek maguk generálják a LIC-ket; ezek a fordítók az IBM -en kívül nem érhetők el ) .

Például az eredeti System/38 architektúrán lefordított LIC réteg feletti alkalmazásszoftverek és operációs rendszerszoftverek módosítás vagy újrafordítás nélkül futnak a legújabb AS/400 rendszereken. Ez annak ellenére van így, hogy a mögöttes hardver drasztikusan megváltozott; legalább három különböző típusú mikroprocesszort használtak. [négy]

A HAL alacsonyabb szintű a számítógépes programozási nyelvekben, mint az API , mivel a rendszermag helyett közvetlenül a hardverrel kommunikál , így a HAL kevesebb CPU-időt igényel, mint az API. A magas szintű nyelvek gyakran használnak HAL-okat és API-kat az alacsonyabb szintű összetevőkkel való interakcióhoz.

A HAL-al rendelkező operációs rendszerek könnyen portolhatók különféle hardverekre. Ez különösen fontos a beágyazott rendszerek esetében, amelyeknek számos különböző platformon kell futniuk.

Lásd még

Jegyzetek

  1. Windows NT hardverabsztrakciós réteg (HAL) . Microsoft (2006. október 31.). Letöltve: 2007. augusztus 25. Az eredetiből archiválva : 2012. március 3.
  2. Helen Custer (1993), Inside Windows NT , Microsoft Press 
  3. Russinovics, Márk. E.; Solomon, David A.; Ionescu, Alex. Windows belső részek : beleértve a Windows Server 2008-at és a Windows Vista-t  . — 5. – Redmond, Wash.: Microsoft Press, 2008. - P. 65. - ISBN 978-0-7356-2530-3 .
  4. Soltis, Frank G. Az AS/400 belsejében : Az AS/400e sorozattal  . — 2. — Loveland, Colo.: Duke Press, 1997. — ISBN 978-1-882419-66-1 .