Корисник:Иванаостојиц/превод1
Системско програмирање
[уреди]Системско програмирање је активност програмирања[1] Рачунарског системског софтвера. Главна разлика између системског и апликативног програмирања је у томе што апликативно програмирање производи софтвер који директно пружа услуге кориснику (нпр. за обраду текста), док је циљ системског програмирања израда софтвера и платформи које пружају услуге другом софтверу, често под ограничењима перформанси (нпр. оперативни системи, научни прорачуни, енџини за игре, индустријска аутоматизација и софтвер као услуга).[1]
Системско програмирање захтева висок ниво свести о хардверу, јер му је циљ ефикасна употреба ресурса.
Преглед
[уреди]Карактеристике системског програмирања укључују:
- Програмер може претпоставити специфичне карактеристике хардвера и друга својства система на којима програм ради, и често ће искористити та својства, на пример коришћењем алгоритма за који се зна да је ефикасан када се користи са одређеним хардвером..
- Обично се користи програмски језик ниског нивоа, што омогућава:
- Ефикасан рад у окружењима са ограниченим ресурсима.
- Мале режијске трошкове при извршавању програма, са минималном или никаквом рун-тиме библиотеком.
- Директну контролу над меморијом и током извршавања.
- Програмер може писати делове програма директно у асемблерском језику
- Програми често не могу да се извршавају у дебуггеру. Симулације се понекад користе за решавање овог проблема.
Већина софтвера написаног савременим језицима може се извршавати у дебуггеру, али то често није прихватљиво у продукцији или уграђеним системима.
У системском програмирању, аутоматско управљање меморијом није уобичајено и дебуггинг може бити сложен.
Историја
[уреди]Првобитно су системски програмери писали искључиво у ассемблер језицима. Током касних 1960-их истраживана је подршка за језике вишег нивоа, што је довело до језика као што су ПЛ/С, БЛИСС, БЦПЛ и проширеног АЛГОЛ-а, коришћеног за Бурроугхс велике системе. Фортх је такође нашао примену као системски језик.
У 1970-им, ширење C језика уз подршку Униx система омогућило је његову широку употребу. Каснији језик, Ембеддед C++, коришћен је у мацОС драјверима I/О Кита.[2]
Инжењери из Гоогле-а су 2007. развили Го како би побољшали продуктивност програмера за рад у великим дистрибуираним системима, са карактеристикама као што су конкурентност и управљање меморијом.[3]
Руст, представљен 2015. године, језик је усмерен на сигурност меморије и често се користи у системском програмирању, пружајући перформансе упоредиве са C и C++ језицима.
Алтернативно значење
[уреди]Из историјских разлога, у неким организацијама се израз системски програмер користи за радна места која би прецизније могла бити описана као системски администратор. Овај термин се често користи у компанијама са маинфраме рачунарима, где администрација укључује писање прилагођеног ассемблер кода за интеграцију са оперативним системима као што су ОС/МВС, ДОС/ВСЕ или ВМ/ЦМС. Иако се ова пракса смањује, термин системски програмер и даље означава администраторе у ИБМ маинфраме окружењу.
Види још
[уреди]- Оустерхоутова дихотомија
- Системски програмски језик
- Скриптни језик
- Руковалац прекидима
- Рачунарско програмирање
Референце
[уреди]- ↑ 1,0 1,1 „Panel: Systems Programming in 2014 and Beyond“. Microsoft.
- ↑ Apple Inc (14 August 2009). „I/O Kit Device Driver Design Guidelines“. Apple Inc.
- ↑ „Go at Google: Language Design in the Service of Software Engineering - The Go Programming Language“ (на en).