3.2. Бағдарламалық қамтамасыз ету деңгейлері

 

Компьютерді құрайтын бағдарламалық қамтамасыз ету қабаттарын қарастырайық:

Кесте 3.1 Бағдарламалық қамтамасыз ету қабаттары

Пайдаланушы жазған сценарийлер немесе макростар

Пайдаланушы интерфейсі (User Interface)

Қосымша (Application)

Жұмыс уақыты кітапханасы  (Runtime Library)

Бағдарлама-қосымша интерфейсі (Application Program Interface)

Операциялық жүйе (Operating System)

Ядро (Kernel)

Құрылғы драйверлері (Device Drivers)

BIOS

Аппараттық қамтамасыз ету (Hardware)

 Төменнен жоғарыға дейінгі қабаттарды қарастырайық:

 Біздің шолуымыздағы аппараттық құралдар – бұл компьютер құрастырылған физикалық компоненттер – компьютердің ең төменгі қабаты немесе деңгейі. Әрине, аппараттық құралдардың бірнеше қабаты бар: тақтада чиптер бар, чиптерде тізбектер бар, олар өз кезегінде транзисторлардан түзіледі. Алайда, бағдарламалық қамтамасыздандыру тұрғысынан бұл мәліметтер маңызды емес.

BIOS немесе негізгі енгізу/шығару жүйесі бағдарламалық қамтамасыз етудің ең негізгі қабаты болып табылады. Ол аппараттық компоненттерді басқаратын сигналдармен тікелей айналысады. Оның көптеген жұмыстары компьютерді қосқан кезде орындалады.

Құрылғы драйверлері – операциялық жүйе перифериялық құрылғылармен байланысу үшін пайдаланатын қызметтік бағдарламалар. Жүйеге жаңа құрылғы қосу үшін сәйкес құрылғы драйверлері орнатылуы керек. Перифериялық компоненттер жиі қажетті драйверлерді қамтитын дискімен бірге келеді. Қатты диск драйвері, мысалы, құрылғыда қанша жол бар екенін біледі және қажетті жолға өту, содан кейін деректерді оқу немесе жазу пәрмендерін таниды. Мұның артықшылығы операциялық жүйе жеткізушісі бұрыннан жасалған немесе әзірленіп жатқан әрбір құрылғыны қолдауға жауапты болмауында. Құрылғы өндірушісі құрылғы пайдаланылған кезде оның операциялық жүйемен әрекеттесу жолын сипаттайтын ережелерге сәйкес жұмыс істейтін драйверді қамтамасыз етеді.

Ядро операциялық жүйенің негізі болып табылады және ең маңызды функцияларды орындайды. Ол жадты басқарады, келесі тапсырманы орындауды шешеді және ықтимал үзілістердің әртүрлі түрлерін өңдейді. Ядро әрқашан жедел жадта болуы керек және оның ерекше сипатына байланысты ол қате командалардан немесе заңсыз жадқа жүгінуден қорғайтын қорғаныс механизмдерінсіз жұмыс істеуі керек. Сондықтан ол мүмкіндігінше аз болуы керек.

Операциялық жүйенің қалған бөлігі ядродан әлдеқайда үлкен. Ол операциялық жүйенің барлық басқа функцияларын орындайды. Мысалы, ол дискідегі қалталар мен файлдарды басқаруға арналған файлдық жүйені қамтиды. Бұл деңгей деректерді сыртқы құрылғыға жіберу операцияларын инициализациялау сияқты негізгі әрекеттерді орындау қажет болғанда ядромен байланысады.

Қолданбалы бағдарлама интерфейсі немесе API (бағдарламалық бағдарлама интерфейсі) – пайдаланушы бағдарламалары (қосымшалар) операциялық жүйемен байланысатын деңгей. Мысалы, веб-браузер қосымшасы үлкен кескін файлын көрсету үшін көбірек жад қажет деп шешті делік. Операциялық жүйе жад бөліктерін пайдаланатын бағдарламалар туралы ақпаратты кез келген уақытта сақтауға жауапты. Бұл ақпарат операциялық жүйеде жасырылған; қосымша ақпараттың жадта қалай ұйымдастырылатыны туралы ештеңе білмейді, өйткені қажет емес. Операциялық жүйе API шақыруы деп аталатын жадты басқаруға арналған абстракцияны анықтайды. Қосымша ЖЖҚ қажет ету үшін барлық қосымшаларды әзірлеушілер қай интерфейсті пайдалану керектігін білуі керек. Операциялық жүйенің жаңа нұсқасы әртүрлі жад реттеулеріне қолдау көрсетсе, API шақыруы өзгеріссіз қалғанша қолданба жұмыс істей береді.

Орындалу уақытының кітапханасы (орындалу уақытының бағдарламалық кітапханасы) қолданбалы бағдарламалар тәуелді жұмыс режимдерінің жиынтығы. Мысалы, файлды ашу және одан деректерді оқу үшін C қолданбасын жазып жатсаңыз, fopen және fscanf деп аталатын екі стандартты функцияны пайдаланасыз. Бұл функциялар кез келген C бағдарламасы пайдалана алатын stdio деп аталатын енгізу/шығару (енгізу/шығару) процедураларының кітапханасынан таңдалады. Олар операциялық жүйені қалағаныңызды орындау үшін сәйкес API қоңырауын жасайды. Stdio абстракциясы бағдарламаңыздың API шақыруларының жиынынан тәуелсіз екенін білдіреді, сондықтан оны C компиляторы және C кітапханасының іске асырылуы бар кез келген құрылғыда іске қосуға болады. Көптеген бағдарламалар орындалу барысында бірнеше кітапхананың ішкі бағдарламаларын пайдаланады. Қолданбалы деңгей – қосымша жасалған нақты жұмысты орындайтын тәртіптер.

Пайдаланушы интерфейсі деңгейі қосымша мен пайдаланушы арасындағы байланысқа жауап береді. Бұл әдетте түймелер мен қалқымалы мәзірлерден тұратын GUI (пайдаланушының графикалық интерфейсі). Пайдаланушы қосымшаның файлды ашқысы келеді делік. Бұл GUI арқылы өңделетін диалогты қажет етеді. Біріншіден, «Файл» мәзірінде пайдаланушы «Ашу» түймесін басыңыз. Ашу диалогтық терезесі пайда болады және пайдаланушыға файлды таңдауды ұсынады. Пайдаланушы файлды таңдағаннан кейін, GUI сұрауды және файл атауын оны ашатын және өңдейтін қосымшаға жібереді.

Сценарийлер немесе макростар – бұл көптеген қосымшалар пайдаланушыларға кірістірілген пәрмендер жиынынан жасауға мүмкіндік беретін тәртіптер. Сценарийлер мен макростар пайдаланушыларға жиі орындалатын әрекеттер тізбегін автоматтандыруға мүмкіндік береді. Мысалы, Microsoft Excel макросы файлды аша алады, файлдағы сандар тобын электрондық кестеге көшіреді, олар бойынша есептеулер жүргізеді және нәтижелерді басқа файлға жаза алады. Бұл есептеулер күн сайын қажет болса, есептеулерді бірнеше пернені басу арқылы орындауға болатын сценарийге құрастыру пайдалы болуы мүмкін. Осылайша пайдаланушы мәліметтерді ұмыта алады. Сценарийлер бағдарламалық құрал иерархиясында қосымшалар деңгейінен жоғары орналастырылады, себебі олар қосымша пәрмен деңгейінде жасалады.

Бүгінгі таңда компьютерлік индустрия жоғарыда сипатталған әр деңгейдегі мамандарға тәуелді. Кейбір адамдар BIOS бағдарламалық құралын жасау арқылы ақша табады, ал басқалары GUI технологиясын жақсартуға назар аударады. Бірақ бағдарламашылардың ең көп саны қолданбалы деңгейде, өйткені адамдар компьютерлерді әртүрлі тапсырмалар үшін пайдаланғысы келеді.

BIOS туралы

Бұл курстың көп бөлігі бағдарламалық қамтамасыз ету иерархиясының жоғарғы деңгейлерімен байланысты: файлдық жүйелер, операциялық жүйелер және қосымшалар. Бірақ бұл бөлімде біз бағдарламалық қамтамасыз етудің ең төменгі деңгейін – BIOS немесе негізгі Енгізу/шығару жүйесін қарастырамыз. BIOS-та үш негізгі функция бар. Ол компьютерді қосқан кезде аппараттық құралдарды инициализациялайды, операциялық жүйені жүктейді және пернетақта, тінтуір және сериялық порттар (serial ports) сияқты құрылғыларға негізгі қолдау көрсетеді. BIOS әрқашан бар, бірақ ол операциялық жүйе басқаруды тоқтатқанға дейін компьютерді қосқан кезде ғана көрінеді.

Компьютерді жедел жадқа қосқан кезде операциялық жүйе жоқ. Ол бос. (Естеріңізге сала кетейік, жедел жад (RAM) – бұл тұрақты емес жад; өшірілген кезде ол сақталған деректерді жоғалтады). BIOS өз функциясын орындау үшін үнемі басқа жадта болуы керек. Сондықтан BIOS үнемі аналық платадағы ROM (ROM) чипінде болады. ROM – тұрақты жад; ол қуат өшірілген кезде деректерді сақтайды. Қосылған кезде процессор ROM-нан командалардың орындалуын автоматты түрде бастайды. ROM жедел жадқа қарағанда баяу жад түрі болғандықтан, көптеген жүйелердегі BIOS өзін ROM-дан жедел жадқа бірден көшіреді. Содан кейін BIOS процессорға барлық басқа командаларды жедел жадтан алуға бұйрық береді.

BIOS пайдаланатын жадтың тағы бір ерекше түрі – CMOS жады. CMOS (комплиментті металл-оксидті жартылай өткізгіш) – өте аз энергияны қажет ететін чип технологиясы. Аппараттық құралдардың жұмысын басқаратын BIOS параметрлерін сақтау үшін аналық платаға (жүйелік) шағын CMOS жады орналастырылады, көбінесе 64байт. Мысалы, жедел жадты іріктеу операцияларының уақытын басқаратын параметр бар. Егер жедел жад үшін жылдамырақ DRAM чиптерін сатып алатын болсақ, BIOS параметрлерін өзгертуге болады, осылайша жад шинасы менеджері ең жоғары DRAM жылдамдығына ие болады. CMOS жады тұрақты емес, бірақ компьютер өшірілгеннен кейін оның мазмұны кішкентай батарея аналық платада сақталады. Батареяны аналық плата қайта зарядтайтындықтан, ол көптеген жылдар бойы қызмет ете алады; алайда, егер ол өшірілген болса, BIOS әдепкі параметрлерге оралады. Сондықтан CMOS-тың қуатты аз тұтынуы маңызды. CMOS технологиясының басты кемшілігі – бұл тұрақты DRAM-ға қарағанда баяу, бірақ егер жад тек BIOS параметрлерін реттеу үшін пайдаланылса, бұл маңызды емес, өйткені мазмұн тек жүйені іске қосу кезінде қажет.

Жүйені қосу кезінде BIOS іске қосыла бастайды, BIOS post (Power-el Self Test) инициализациялайды – қуат қосылған кезде өзін–өзі тексеру командаларының тізбегі. Бастау үшін графикалық карта іске қосылады, орнатылған графикалық картаның түрі, өндірушінің аты және BIOS нұсқасы туралы негізгі ақпарат көрсетіледі. Содан кейін жүйеде орнатылған DRAM мөлшері анықталады және жадты тексеруге болады. Қалай болғанда да, тестілеу BIOS параметрлерімен басқарылады. Жады көп жүйелерде жадты тексеруді өшіру компьютердің тезірек жүктелуіне мүмкіндік береді. Жадтың конфигурациясы және тест нәтижелері мониторда көрсетіледі. Содан кейін, кеңейту тақталары мен адаптерлерді анықтағаннан кейін, BIOS осы тақталар мен адаптерлерді инициализациялайды. Post тізбегінің қорытындысында BIOS орнатылған процессор түрі, кэш туралы ақпарат, табылған дискілердің әрқайсысының түрлері, барлық сериялық және параллель порттардың мекенжайлары және табылған басқа кеңейту тақталарының тізімі сияқты жүйелік конфигурация туралы ақпаратты көрсетеді.

POST тізбегі аяқталғаннан кейін келесі BIOS тапсырмасы операциялық жүйені іске қосатын бағдарламаны жүктеу болып табылады. Ол үшін BIOS-та негізгі жүктеу жазбасы (Master Boot Record) немесе MBR деп аталатын деректердің бір бөлігін оқу үшін диск жетектері туралы ақпарат болуы керек. Бұл бірінші диск жолының бірінші секторы. MBR бағдарламасы операциялық жүйені жүктейді және оны іске қосады.

Мүмкін жүйеде операциялық жүйені жүктеуге болатын бірнеше диск жетектері бар. Олардың қайсысын пайдалану керек? BIOS жүктеу үшін операциялық жүйені табу үшін іздеу тәртібін (search order) орындайды. Іздеу А\ деп аталатын құрылғыдан басталады, егер бұл құрылғыда диск болмаса немесе оның негізгі жүктеу жазбасы болмаса, онда ол бар болса, В\-ға (екінші диск жетегі) қол жеткізіледі. Егер бұл сәтсіз болса, ол әдетте негізгі қатты диск болып табылатын C құрылғысына ауысады және сол жерде негізгі жүктеу жазбасын іздейді және т.с.с.

Floppy А\ дискісін бірінші рет тексеру өте пайдалы, өйткені қатты дискіден айырмашылығы, дискета ауыстырғыш болып табылады. Сонымен, егер операциялық жүйені қатты дискіден жүктегіңіз келмесе, жүктеу дискісін А құрылғысына салыңыз, сонда компьютер сол жерден жүктеледі. Жүктеу дискісі – бұл операциялық жүйенің өздігінен жүктелетін көшірмесі бар дискета. Егер қатты дискідегі операциялық жүйенің нұсқасы бұзылса, жүктеу дискісін пайдаланып жүйені қайтадан іске қосуға болады. Содан кейін қатты дискідегі бүлінген деректерді қалпына келтіруге болады.

BIOS қондырғыларын өзгерту үшін жүктеу кезінде BIOS Setup бағдарламасын белгілі бір пернені немесе олардың коммбинациясын басу арқылы іске қосу керек, мысалы, F2, F8, CTRL/F8 және т.б. BIOS-тың бастапқы хабарламасы қай пернені басу керектігін көрсетеді. BIOS Setup жүктеу бағдарламасы ағымдағы BIOS қондырғыларын көрсетеді және оларды өзгертуге мүмкіндік береді. Жаңа қондырғылар CMOS жадында сақталады және келесі жүйе жүктелгенге дейін әрекет етеді. Қондырғыларды мұқият өзгерту керек, өйткені дұрыс емес қондырғылар компьютердің жұмыс істемеуіне әкелуі мүмкін.

BIOS туралы көбірек білуге болады BIOS entry in the PC Guide. Егер BIOS қондырғыларын өзгертуді жоспарласаңыз, алдымен BIOS Survival Guide білсеңіз болады.