Операциялық жүйелер жəне олардың интерфейстері.
Классикалық жүйелік программалау процестер жəне ағындардың
диспетчерлеумен жəне синхрондаумен, процестер арасында деректердің алмасумен, компьютер құрылғыларын жəне файлдарды басқару мен байланысты сұрақтар аймағын қарастырады. Соңғы кезде жүйені жобалау кезінде сонымен бірге деректердің қауіпсіздігіне көп көңіл бөлінеді,бұл деректерге рұқсатсыз қатынаудың өскен қауіпінен пайда болған.
1.1 Windows ОЖ құрылымы
Жүйе құрылымының жалпы бейнелеуі
1.1.-суретте келтірілген Win32-қолданбаларының орындалуына бағдарланған сəулеттің қарапайымдалған сұлбасы 1.1-сурет. Windows ОЖ-нің сəулеттік қарапайымдалған сұлбасы Windows ОЖ ядро режімінде жұмыс істейтін компоненттерден (құрауыштардан) жəне пайдаланушы режімінде жұмыс істейтін компоненттерден тұрады. 1.1-суретте келтірілген сұлбада бірнеше функционалдық деңгейлер нақты көрсетілген, олардың əр қайсысы төменгі деңгейдің сервистерін қолданады.
Жабдықтан абстракциялау деңгейінің (hardware abstraction layer, HAL) міндеті – жүйені бір платформадан басқасына потенциалды тасымалдау үшін аппараттық сəулеттердің аппараттық ерекшеліктерін жасыру болып табылады.
HAL жеке-дара ерекшеліктерінен бос, жоғарыдағы деңгейлерге аппараттық құрылғыларды абстракті түрде көрсетеді. Бұл ядроны, драйверлерді жəне Windows ОЖ-нің орындалатын жүйені жабдықтың өзгешелігінен (мысалы, аналық тақшаның арасындағы ерекшелігінен) жекелеуге мүмкін береді.
Процессор жұмысының пұрсатты (ерекше артыкшылыгы бар, артыкшылык) режімінде немесе ядро режімінде жұмыс істейтін ОЖ-нің барлық компоненттерін ядро деп атайды. Microsoft корпорациясы операциялық жүйенің төменгі деңгейлі функциялары бар (үзулермен жеке жағдайларды диспетчерлеу жəне ағындарды жоспарлау жəне т.б.) түсiрiлiс жасамайтын (жүктелмейтін) жадыда болатын компонентті ядро (kernel) деп атайды. Ол сонымен бірге жоғарғы деңгейлер компоненттерімен пайдаланатын процедуралар жиынын жəне базалық объектілерді пайдалануға береді.
Ядро жəне HAL аппаратты-тəуелді болып табылады жəне Си, ассемблер тілінде жазылады.Жоғарғы деңгейлер Си тілінде жазылған жəне машинадан тəуелсіз болып табылады.
Орындалатын жүйе (executive) жадыны, процестерді жəне ағындарды басқару, қорғауды, енгізу-шығаруды жəне процестер арасында əрекеттесуді қамтамасыз етеді. Құрылғылардың драйверлерінде аппаратты-тəуелді код болады жəне нақты құрылғылар үшін ерекше, пайдаланушылар шақыруларын сұранысқа трансляциялауды қамтамасыз етеді. Графиканы жəне терезелерді қолдау ішкі жүйесі графикалық пайланушылар интерфейсінің (GUI) функцияларын жүзеге асырады, олардың ең атақтысы USER жəне GDI модулінің Win-32-функциялары.
Пайдаланушылар кеңістігінде, сервистер диспетчерімен басқарылатын жəне жүйелік есептерді шешетін, түрлі сервистер (Unix-тегі демондардың аналогы) жұмыс істейді. Кейбір жүйелік процестер (мысалы, жүйеге кіруді өңдеу) сервистер диспетчерімен басқарылмайды жəне олар жүйені қолдайтын бекітілген процестер деп аталады. Пайдаланушылар қолданбалары (user applications) бес түрлі болады: Win32, Windows 3.1, MS-DOS, POSIX и OS/2 1.2.
Пайдаланушылар процестерін орындалу ортасын үш қоршау ішкі жүйесі береді: Win32, POSIX и OS/2. Сондықтан, пайдаланушылар қолданбалары Windows ОЖ-нің жүйелік шақыруларын тура шақырта алмайды, олар DLL ішкі жүйесіне қатынауға мəжбүр етеді.
Windows ОЖ негізгі компоненттері system32 каталогындағы келесі жүйелік файлдарында жүзеге асырылған:
· ntoskrnl.exe – орындалатын жүйе жəне ядро;
· ntdll.dll - орындалатын жүйенің функциялары бар жүйелік сервистер диспетчерінің интерфейстері жəне қолдаудың ішкі функциялары;
· hal.dll - жабдықтан абстракциялау деңгейі;
· win32k.sys - ядро режімінде жұмыс істейтін, Win32 ішкі жүйесінің бөлімі;
· kernel32.dll, advapi32.dll, user32.dll, gdi32.dll - Win32 ішжүйесінің негізгі dll.
1.2 Win32 ішкі жүйесі
Қолданба жəне операциялық жүйенің арасындағы əрекеттестік жүйелік шақырулар (Microsoft терминологиясындағы жүйелік сервистер) көмегімен жүзеге асырылады. Бірақ қолданба жүйелік шақыруды тікелей шақыра алмайды (сонымен бірге, жүйелік шақырулар құжатталмаған). Мұның орнына қолданба ОЖ-нің программалық интерфейсін - Win32 API пайдаланған жөн
Win32 API (Application Programming Interface) - Microsoft Windows операциялық жүйелер жанұясында программалаудың негізгі интерфейсі. Win32 API функциялары, мысалы, CreateProcess немесе CreateFile - Win32 ішкі жүйемен жүзеге асқан құжатталған, шақырылған ішкі программалар.
Win32 ішкі жүйесінің (1.1-суретті қара) құрамына мыналар кіреді:
csrss.exe қоршау ішкі жүйелерінің серверлік процесі, Win32k.sys ядро режімінің драйвері, dll - Win32-функцияларды экспорттайтын ішкі жүйелерінің модульдері (kernel32.dll, advapi32.dll, user32.dll и gdi32.dll) жəне графикалық құрылғылардың драйверлері.
Эволюция процесінде ішкі жүйенің құрылымы өзгеріске ұшырады. Мысалы, терезелер жəне сурет салу функциялары өнімділікті жоғарлату мақсатымен пайдаланушылар режімінде жұмыс істейтін серверлік процестен Win32k.sys ядро режімінің драйверіне көшірілді.
Win32 API пайдалануға бағдарланған қолданбалар, жүйелік шақырулар түрлі жүйеде əртүрлі болғанына қарамастан, Windows барлық нұсқаларында жұмыс істей алады (1.2-суретті қара). Осындай жолмен Microsoft корпорациясы өздерінің операциялық жүйесінің жалғастырушылығын қамтамасыз етеді.
1.2-сурет. Windows түрлі нұсқалар үшін біріңғай программалық интерфейсті қолдау
Процесті іске қосу кезінде барлық талап етілген динамикалық кітапханалар оның виртуалді адрестік кеңістігінде бейнеленеді.
Атап кеткен, аса қажетті dll-кітапханалардан басқа, system32 жүйелік каталогта басқа dll-файлдардың көп саны болады. Қазіргі уақытта API шақырулар саны бірнеше мыңға тең.
Бақылау сұрақтары:
1. Windows ОЖ компоненттері.
2. Жабдықтан абстракциялау деңгейінің (HAL) міндеті
3. Пайдаланушы қолданбалардің түрлері.
4. Win32 ішкі жүйесінің құрылымы
Ұнады ма? Онда достарыңмен бөліс!
|