2. Windows 2000 ОЖ -гі абстракцияның деңгейі. Windows 2000 (Windows NT) операциялық жүйесін құрудың ең негізгі мақсаты жүйені басқа платформаға ауыстыру мүмкіндігінде еді. Операциялық жүйе жоғарғы деңгейлерін толық ауыстыруға қол жеткізілген, ал құрылымдардың регистрлерімен, үзулермен, DMA және басқа аппараттардың ерекшеліктерімен жұмыс істейтін төменгі деңгейдің әртүрлі машиналарда айырмашылықтары қатты байқалады.
1-сурет. Windows 2000 операциялық жүйесінің құрылымы
Microsoft корпорациясы (HAL, Hardware Abstraction Layer) аппараттық абстракция деңгейі деп аталатын жіңішке, ең төменгі деңгейдегі көптеген аппараттық айырмашылықтарын жасыру мүмкіндігіне бел байлады. HAL деңгейінің қызметі барлық қалған жүйеге физикалық аппараттық құрылымдардың абстракциясын пайдалану мүмкіндігін жасау болып табылады. Бұл құрылғылар операциялық жүйелерді және драйверлерді пайдалана алатындай машинадан тәуелсіз қызметтері процедураларларды шақыру және макростар түрінде беріледі. Драйверлер мен ядролар қаншалықты HAL қызметімен жұмыс істесе де, құрылғыларға тікелей қатынас жасамайды, басқа платформаға оларды ауыстыру үшін азғантай ғана өзгерістер енгізу талап етіледі. HAL деңгейін ауыстыру соншалықты қарапайым, барлық машинадан тәуелді код бір жерде орналастырылған, ал қайта құру мақсаты дәл айқындалған, яғни HAL деңгейінің барлық қызметін жүзеге асыру болып аталады.
Драйверлерге енгізу-шығарудың арнайы құрылғыларына жиі қатынау қажет болады. Драйвердің аппараттық деңгейінде бір немесе бірнеше нақтылы шиналардың адрестері бар. Қазіргі кездегі компьютерде бірнеше шиналар бар, екі немесе бірнеше құрылғылар шиналардың бір адресін иемденуі мүмкін болғандықтан, осы құрылғыларды айыра білудің қандай да бір әдістері талап етіледі.
HAL деңгейі логикалық жүйелі адрестің шинасында құрылғылардың адрестерін бейнелей отырып, құрылғылардың идентификациялауға арналған қызметті көрсетеді. Бұл механизм, неғұрлым жоғары деңгейлерді шина құрылымының қасиеттерінен және адрестеу туралы келісімдерден сақтайды.
Үзілістер шиналардан тәуелді болып табылады. Мұнда HAL деңгейі үзілістерге барлық жүйемен шектелетін әдіспен ат қоюға, үзілістерді өңдеу процедурасын драйверлерге әрі үзіліспен ауыстыру әдісімен байланыстыруға арналған қызметтерін көрсетеді.
HAL құрылғылардан тәуелсіз әдіспен DMA {Direct Memory Access) операцияларды басқарумен айналысады. HAL барлық жүйеге ортақ DMA механизмімен басқарады. Ол әрі енгізушығарудың нақтылы тақшасына арналған DMA механизмін де басқара алады.
Кейде көппроцессорлық жүйедегі араздықтан арылу үшін ядроның төменгі деңгейдегі компоненттерінің синхронизациясы талап етіледі. HAL деңгейі осы синхронизацияны басқару үшін бірнеше примитивтерді көрсетеді.Операциялық жүйе жүктелген соң HAL деңгейі BIOS пен хабарласады және CMOS конфигурациясының жадын тексереді, егер ол қолданылатын болса, жүйеде қандай шиналар мен енгізу-шығару құрылғылары бар және оларды қалай үйлесімдеу қажеттігін анықтайды. Бұл ақпарат жүйенің басқа компоненттері тікелей BIOS-қа немесе CMOS жадыға хабарласпай-ақ оларды көре алатындай болу үшін реестрге орналастырылады