Кіріспе

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

Үстелге ауысу

"Десктопқа құлау" дегеніміз – бағдарлама (көбінесе бейне ойын) күтпеген жерден жұмысын тоқтатып, пайдаланушыны дереу жұмыс үстеліне қайтару. Әдетте, бұл термин қате туралы хабарлама көрсетілмейтін құлауларға ғана қолданылады, сондықтан пайдаланушы құлаудың нәтижесінде тек жұмыс үстелін көреді. Көп жағдайда десктопқа құлауға себеп болатын нақты әрекет байқалмайды. Қалыпты жұмыс істеу кезінде бағдарлама қысқа мерзімге тоқтап, кейін өздігінен жабылуы мүмкін. Сондай-ақ, қалыпты жұмыс істеу кезінде бағдарлама қара экранға айналып, құлау алдында ойнатылып жатқан дыбыстың соңғы бірнеше секундтарын (аудио буферінің көлеміне байланысты) қайта-қайта ойнатуы мүмкін. Кейде бұл белгілі бір әрекеттің нәтижесі болуы мүмкін, мысалы, жаңа деңгейді жүктеу. Десктопқа құлаулар пайдаланушылар үшін ерекше қиындық тудырады. Олар көбінесе қате туралы хабарлама көрсетпейді, сондықтан мәселенің себебін анықтау өте қиын болуы мүмкін, әсіресе егер құлаудың уақыты мен құлауға дейін жасалған әрекеттерде ешқандай үлгі немесе ортақ белгі байқалмаса. Ойындағы мәселені анықтаудың бір жолы – оны терезе режимінде іске қосу. Windows Vista жүйесінде кез келген бағдарламада CTD (десктопқа құлау) мәселесінің себебін анықтауға көмектесетін мүмкіндік бар. Windows XP-де де осыған ұқсас мүмкіндік болған. Кейбір компьютерлік бағдарламалар, мысалы StepMania және BBC-нің Bamzooki ойындары, толық экран режимінде десктопқа құлайды, бірақ пайдаланушы жұмыс үстеліне оралғаннан кейін қате туралы хабарлама жеке терезеде көрсетіледі.

Веб- сервердің істен шығуы

Веб-сайттың артындағы веб-серверді басқаратын бағдарламалық қамтамасыз ету құлап, оны толығымен қолжетімсіз етеді немесе қалыпты мазмұнның орнына тек қате туралы хабарламаны көрсетеді. Мысалы: егер сайт скрипт үшін (мысалы, PHP) SQL дерекқорын (мысалы, MySQL) пайдаланса және SQL дерекқоры сервері істен шықса, онда PHP қосылыс қатесін көрсетеді.

Операциялық жүйеде ақаулар

Операциялық жүйе апаты көбінесе аппараттық қате пайда болғанда, оны өңдеу мүмкін болмаған жағдайда орын алады. Операциялық жүйенің істен шығуы операциялық жүйенің ішкі тұрақтылығын тексеру логикасы жүйенің ішкі сәйкестігін жоғалтқандығын анықтаған кезде де болуы мүмкін. Linux және macOS сияқты қазіргі заманғы көп тапсырмалы операциялық жүйелер, әдетте, қолданба бағдарламасы құлағанда зардап көрмейді. Кейбір операциялық жүйелер, мысалы, z/OS, сенімділік, қолжетімділік және қызмет көрсету (RAS) мүмкіндіктеріне ие және операциялық жүйе аппараттық ақаулықтан, мысалы, түзетілмейтін ECC қатесінен немесе бағдарламалық ақаулықтан, мысалы, тағайындалмаған бетке сілтемеден туындаған маңызды компонент апатынан кейін қалпына келе алады.

Аномальды аяқталу

Аномальды аяқталу немесе АБЕЙД – бағдарламаның қалыптан тыс тоқтауы немесе бағдарламаның істен шығуы. Novell NetWare желілік операциялық жүйесіндегі қателер немесе құлаулар көбінесе ABEND деп аталады. NetWare әкімшілерінің қауымдастықтары, мысалы abend.org, Интернет желісінде пайда болды. Бұл қолданыс IBM OS/360, z/OS операциялық жүйелеріндегі ABEND макросынан туындаған. Әдетте үлкен әріптермен жазылады, бірақ "abend" түрінде де кездесуі мүмкін. Көбінесе қолданылатын ABEND кодтарының мысалдары: жүйелік ABEND 0C7 (деректер қатесі) және жүйелік ABEND 0CB (нөлге бөлу). ABEND-тер "жұмсақ" (автоматты түрде қалпына келтіруге мүмкіндік береді) немесе "қатты" (қызметті тоқтату) болуы мүмкін. Бұл термин әзіл ретінде неміс тіліндегі "abend" сөзінен, яғни "кеш" деген мағынадан шыққан деп есептеледі.

Қауіпсіздік пен жеке өмірге қатысты апаттардың әсері

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