Кіріспе
Компьютерлік жүйелер үшін бағдарлама жасау. Жүйелік бағдарламалау – бағдарламалау саласы. Жүйелік бағдарламалауға аппараттық құралдарды жақсы білу қажет. Оның мақсаты – қолда бар ресурстарды тиімді пайдалану, себебі бағдарламалық жасақтаманың өзі өнімділік үшін маңызды болуы мүмкін, немесе тіпті кішкентай тиімділік жақсартулары уақытты немесе ақшаны айтарлықтай үнемдеуге әкеледі.
Systems programming requires a great degree of hardware awareness. Its goal is to achieve efficient use of available resources, either because the software itself is performance critical or because even small efficiency improvements directly transform into significant savings of time or money.
Тарих
Бастапқыда жүйелік бағдарламалаушылар міндетті түрде ассемблер тілінде жазған. 1960 жылдардың соңында жоғары деңгейдегі тілдерді аппараттық қолдаумен сынау PL/S, BLISS, BCPL және Burroughs компаниясының үлкен жүйелері үшін кеңейтілген ALGOL тілдерінің пайда болуына әкелді. Forth та жүйелік тіл ретінде қолданылады. 1970 жылдары Unix-тің дамуымен C тілі кеңінен таралды. Соңғы кезде C++ тілінің бір бөлігі – Embedded C++ белгілі бір қолданыстарда пайда болды, мысалы, ол macOS I/O Kit драйверлерінде қолданылады. Google компаниясындағы инженерлер 2007 жылы үлкен таратылған жүйелерде бағдарламашылардың өнімділігін арттыру мақсатымен Go тілін жасады, ол Concurrency, Garbage Collection сияқты мүмкіндіктермен және C және C++ тілдерінен гөрі бағдарламаларды жылдам құрастыру артықшылықтарына ие. 2015 жылы Rust тілі пайда болды, ол жүйелік бағдарламалауда жиі қолданылатын мақсаттық бағдарламалау тілі. Rust жадтың қауіпсіздігін ескере отырып, C және C++ тілдерімен салыстырылатын өнімділікпен құрастырылды.
Басқа мағынасы
Тарихи себептермен кейбір ұйымдар жүйелік әкімші деп аталатын қызметті сипаттау үшін жүйелік бағдарламашы терминін қолданады. Бұл әсіресе компьютерлік ресурстары тарихи тұрғыдан мейнфреймдермен басым болған ұйымдарда кең таралған, бірақ бұл термин тіпті мейнфреймдерді қамтымайтын қызметтерді де сипаттау үшін қолданылады. Мұндай қолданыс IBM мейнфреймдерін басқарудың көп бөлігі операциялық жүйемен (OS/MVS, DOS/VSE немесе VM/CMS) интеграцияланған, арнайы құрастырылған кодты (IBM-нің Basic Assembly Language (BAL)) жазуды қамтитындығынан туындады. Шындығында, кейбір IBM бағдарламалық өнімдеріне клиенттердің бағдарламалау қызметкерлері үлкен үлес қосты. Бұл типтегі бағдарламалау қазіргі кезде азайып, көбінесе Ассемблер тілі емес, C тілінде жасалады. Дегенмен, жүйелік бағдарламашы термині IBM мейнфреймдерін басқаратын қызметкерлер үшін, тіпті олар жүйелік бағдарламалаумен үнемі айналыспаса да, де-факто лауазымдық атау ретінде қолданыла береді.