Microsoft операциялык системалары

11.1. OS операциялык системасы

DOS (дисктик операциялык система) персоналдык компьютерлерди иштетүү үчүн иштелип чыккан алгачкы операциялык системалардын бири. Ал төмөнкү бөлүктөрдөн турат.

·         Негизги киргизүү/чыгарма системасы (BIOS). Ал компьютердин ROM'унда жайгашкан. Анын максаты - I/O менен байланышкан эң жөнөкөй жана ар тараптуу операциялык система кызматтарын аткаруу. BIOS ошондой эле компьютердин иштөө сынагын камтыйт, ал компьютердин эс тутумунун жана кубаты күйгүзүлгөндө түзмөктөрдүн иштешин текшерет. Мындан тышкары, BIOS операциялык тутумдун жүктөөчүсүн чакыруу үчүн программаны камтыйт.

·         Операциялык системаны жүктөөчү. Бул ар бир DOS дискетасынын биринчи секторунда табылган өтө кыска программа. Бул программанын милдети эс тутумуна дагы эки операциялык системанын модулдарын окуу.

·         Системалык файлдар IO.SYS жана MSDOS.SYS.Бул файлдар операциялык системанын жүктөөчүсү тарабынан компьютердин оперативдүү эсине жүктөлөт жана ал жерде биротоло калат. IO.SYS файлы BIOS үчүн кошумча болуп саналат. MSDOS.SYS файлы негизги жогорку деңгээлдеги DOS кызматтарын ишке ашырат.

·         DOS командалык процессору.Команда процессору колдонуучу киргизген буйруктарды иштетет. Ал операциялык система жүктөлгөн дискте COMMAND.COM файлында жайгашкан. Кээ бир колдонуучунун буйруктары, мисалы, Type, Dir or Copy, кабык өзүн өзү аткарат. Мындай буйруктар ички деп аталат. Колдонуучунун калган (тышкы) буйруктарын аткаруу үчүн командалык процессор дисктерден тиешелүү аталыштагы программаны издейт жана эгер аны тапса, аны эс тутумуна жүктөйт жана ага башкарууну өткөрүп берет. Программанын аягында командалык процессор программаны эс тутумдан алып салат жана буйруктарды аткарууга даярдыгы жөнүндө билдирүүнү көрсөтөт (DOS чакыруусу).

·         Тышкы DOS буйруктары.Булар операциялык система менен өзүнчө файлдар катары келген программалар. Бул программалар флоппи дисктерди форматтоо, дисктерди текшерүү ж.б. сыяктуу тейлөө аракеттерин аткарат.

·         Түзмөк драйверлери.Булар DOS I/O системасын толуктаган жана учурдагы түзүлүштөрдү жаңы же стандарттуу эмес колдонууга колдоо көрсөткөн атайын программалар. Мисалы, драйверлердин жардамы менен компьютердин оперативдүү эс тутумунун бир бөлүгү болгон «электрондук диск» менен иштөөгө болот, ал диск сыяктуу эле колдонула алат. Операциялык система жүктөлгөндө драйверлер операциялык эс тутумга жүктөлөт, алардын аттары атайын CONFIG.SYS файлында көрсөтүлөт. Бул схема жаңы түзмөктөрдү кошууну жеңилдетет жана муну DOS тутумунун файлдарына таасир этпестен жасоого мүмкүндүк берет.

11.2. Windows NT

Windows NT (Жаңы технология) – күчтүү персоналдык компьютерлерде жана серверлерде колдонуу үчүн Microsoftтун операциялык системасы. Windows NT 4 (1996) (жана бардык кийинки версиялары: Windows 2000 (2000), Windows XP (2002), Windows Server 2003 (2003), Windows Vista (2007)) DOSтан таптакыр башкача. Бул операциялык системаларда DOS сеанс терезесин ачуу мүмкүн болсо да, алар сөздүн салттуу маанисинде такыр кабык эмес. Бул жерде биз, тескерисинче, DOS эмуляциясы жөнүндө сүйлөшө алабыз (баары тааныш командалык сап интерфейси менен иштей алышы үчүн). Көптөгөн DOS программалары Windows NT DOS сеансында иштебейт. Ал эми Windows 9x графикалык кабыкчасын жүктөөдөн мурун турган экрандын символдук режимин бул жерден көрө албайсыз.

Windows NT, Windows 9x сыяктуу, орнотууларды сактоо жана драйверлерди жүктөө үчүн тутум реестрин колдонот. конфигурация файлдары. sys, Autoexec. бат жана .ini бул жерде такыр жок. Андан тышкары, Windows 9xти Windows NTге жаңыртуу мүмкүн эмес. Windows NT орнотуп жатканда, бардык тиркемелерди орнотуу жана кайра конфигурациялоо керек болот. Windows NT FAT файлдык системасын колдоно алат, андыктан компьютериңизди DOS дискинен жүктөй аласыз жана бардык файлдарга толук кире аласыз.

Бирок, Windows NTтин кээ бир өнүккөн мүмкүнчүлүктөрү өзүнүн NTFS (NT File System) файлдык системасы менен камсыздалган. NTFS сизге дискте 2 ТБга чейинки бөлүмдөрдү түзүүгө мүмкүндүк берет (мисалы, FAT 32), бирок, андан тышкары, ал тармак чөйрөсүндө иштөөдө зарыл болгон файлдарды кысуу, коопсуздук жана текшерүү функцияларына ээ. Windows NT операциялык системасын орнотуу FAT дискинде башталат, бирок колдонуучунун талабы боюнча, орнотуунун аягында дисктеги маалыматтар NTFS форматына айландырылат.

Сиз муну кийинчерээк Convert утилитасын колдонуп да жасай аласыз. exe операциялык тутуму менен коштолот. NTFSге айландырылган диск бөлүгү башка операциялык системалар үчүн жеткиликсиз болуп калат. DOS, Windows 3.1 же Windows 9xке кайтуу үчүн NTFS бөлүмүн алып салып, анын ордуна FAT бөлүмүн түзүшүңүз керек. Windows 2000 FAT 32 жана NTFS файл системасы менен дискке орнотулушу мүмкүн. NTFS бөлүмүн жок кылып, анын ордуна FAT бөлүмүн түзүшүңүз керек. Windows 2000 FAT 32 жана NTFS файл системасы менен дискке орнотулушу мүмкүн. NTFS бөлүмүн жок кылып, анын ордуна FAT бөлүмүн түзүшүңүз керек. Windows 2000 FAT 32 жана NTFS файл системасы менен дискке орнотулушу мүмкүн.

11.3. Windows API

API (Application Program Interface) -операциялык системанын өзөгүнө (же кошумчаларына) тиешелүү функциялардын жыйындысы, алар операциялык системанын бөлүгү катары да, программалоо тутумунун бөлүгү катары да колдонмо жана системалык программалар тарабынан колдонулат.

Бардык API'лерди үч класска бөлүүгө болот:

·         RTL китепканаларына тиешелүү жогорку деңгээлдеги интерфейс катары API (Run Time Library - иштөө убактысы китепканасы);

·         Операциялык системаны жеткирүүгө камтылган тиркемелердин жана системалык программалардын API;

·         Башка API'лер.

RTL китепканасы компиляция учурунда программалоо системасы камсыз кылган стандарттуу процедураларды камтыйт. Жалпысынан алганда, бул программалоо системасынын модулдары гана эмес, ошондой эле операциялык системанын модулдары.

Windows API UNIX жана Linux программисттери жакшы билген POSIX API сыяктуу башка APIлерден көптөгөн тымызын жана олуттуу айырмачылыктарга ээ. Көптөгөн Windows тутумдук ресурстары туткалардын жардамы менен аныкталган жана жеткиликтүү болгон ядро ​​объекттери катары берилген. Бул дескрипторлор UNIXтеги файлдын дескрипторлоруна жана процесстин идентификаторлоруна мааниси боюнча окшош.

Windows бул жөн гана колдонуучунун көйгөйлөрүн чечүү үчүн куралдардын топтомун камсыз кылган операциялык тутумдун API'си деген көз караш бар.

Ядро объектилери менен ар кандай манипуляциялар Windows API аркылуу гана жүзөгө ашырылат. Бул эрежени айланып өтүү үчүн эч кандай жылчыктар жок. Иштин мындай уюштурулушу объектиге багытталган программалоодо колдонулган маалыматтарды абстракциялоо принциптерине шайкеш келет, бирок Windows өзү объектиге багытталган эмес. Объекттерге файлдар, процесстер, жиптер, процесстер аралык байланыш каналдары, файл картасынын объекттери, окуялар жана башкалар кирет. Объекттердин коопсуздук атрибуттары бар.

Windows - бул бай жана ийкемдүү интерфейс. Биринчиден, бир эле же окшош милдеттерди бир эле учурда бир нече функциялардын жардамы менен чечсе болот; мисалы, функция чакырыктарынын көп кездешүүчү ырааттуулугун бир функцияга бириктирүү аркылуу алынган ыңгайлуу функциялар бар (төмөндөгү мисалдардын биринде колдонулган CopyFile функциясы ушундай функциялардын санына кирет). Экинчиден, функциялардын көп сандаган параметрлери жана желекчелери бар, алардын көбү адатта этибарга алынбайт.

Windows ар кандай муктаждыктарды канааттандыруу үчүн көптөгөн синхрондоштуруу жана байланыш механизмдерин сунуш кылат.

Windowsтун негизги аткаруу бирдиги жип болуп саналат. Бир процессте бир же бир нече жиптер иштеши мүмкүн.

Windows функциялары узун, сүрөттөмө аттарды колдонушат. Төмөндөгү мисал функциялардын аталыштары ат коюу конвенцияларын гана эмес, Windows функцияларынын көп жактарын да көрсөтөт:

WaitForSingleObject WaitForSingleObjectEx WaitForMultipleObjects WaitNamedPipe

Типтердин аталыштары кантип колдонуларын жөнгө салган бир нече конвенциялар да бар:

API талап кылган алдын ала аныкталган маалымат түрлөрүнүн аталыштары да сүрөттөмө болуп саналат жана чоң тамгалар менен болушу керек. Эң кеңири таралган маалымат түрлөрү:

BOOL(бир логикалык маанини сактоо үчүн иштелип чыккан 32 биттик объект катары аныкталган),

DWORD(бардык жерде бар 32-бит белгиси жок бүтүн сан),

LPTSTR(8 же 16 биттик белгиден турган сапка көрсөткүч) LPSECURITY_ATTRIBUTES.

Материал берилгенде биз башка көптөгөн маалыматтар түрлөрү менен таанышабыз. Алдын ала аныкталган көрсөткүчтөрдүн түрлөрүнүн аталыштары * операторун колдонбойт жана алар ар кандай типтеги көрсөткүчтөрдүн ортосундагы кошумча айырмачылыктарды чагылдырат, мисалы LPTSTR (TCCHAR * катары аныкталган) жана LPCTSTR (constTCHAR * катары аныкталган) түрлөрүндө. TCHAR түрү кадимки символдун түрүн же эки байттык wchar_t түрүн көрсөтө алат. Жок дегенде функциянын прототиптеринде өзгөрмөлөрдүн аталыштарын колдонууга байланыштуу белгилүү бир конвенциялар бар. Ошентип, lpszFileName аталышы файлдын атын камтыган "нөл менен аяктаган сапка узун көрсөткүчкө" туура келет. Бул мисал биз адатта карманууга аракет кылбаган "венгердик белги" деп аталган нерсенин колдонулушун көрсөтүп турат. Ошо сыяктуу эле, dwAccess - бул файлга уруксаттын желектерин камтыган кош сөз (32 бит), мында "dw" "кош сөз" дегенди билдирет.

Акыр-аягы, баштапкы Win32 API башынан эле толугу менен көз карандысыз интерфейс катары иштелип чыккан, бирок ал Windows 3.1 менен камтылган Winl6 API менен артка шайкеш келүү үчүн иштелип чыккан. Бул программисттин көз карашы боюнча кээ бир тажатма кесепеттерге алып келди:

·         Жөнөкөй 32-бит же 64-бит көрсөткүчү болгон "узун көрсөткүчкө" тиешелүү болгон LPTSTR жана LPDWORD түрлөрүндөгүдөй типтердин аталыштарында анахронизмдин элементтери бар. Башка түрдөгү көрсөткүчтөрдүн кереги жок. Кээде "узун" компоненти жок кылынат, бул учурда, мисалы, LPVOID жана PVOID түрлөрү эквиваленттүү.

·         Кээ бир символикалык константалардын, мисалы, WIN32_FIND_DATA, алардын аталыштарында "WIN32" компоненти бар, бирок ошол эле константалар Win64те колдонулат.

·         Бул артка шайкештик маселеси бүгүнкү күндө актуалдуу болбой калса да, ал 16 биттик көптөгөн функцияларды калтырды, алардын бири да жалпысынан колдонулбайт, бирок бул функциялар абдан маанилүү ролду ойноп жаткандай сезилиши мүмкүн. Мисал катары OpenFile функциясын алсак болот, анын аты айтып тургандай, файлдарды ачуу үчүн зарыл, ал эми чындыгында учурдагы файлдарды ачуу үчүн дайыма CreateFile функциясын гана колдонуш керек.