Uruchomienie programu w środowisku symulowanym (emulacja, system wirtualny) jest sposobem przezwyciężenia tego problemu.
Programowanie systemowe jest tak różne od programowania aplikacyjnego iż programiści raczej specjalizują się w jednym bądź drugim.
W programowaniu systemowym istnieje spektrum sposobów rozwiązania tego samego problemu jest ograniczone w stosunku do programowania aplikacyjnego. Używanie automatycznego zarządzania pamięcią (przez garbage collector) jest rzadkie, a odpluskwianie czasami trudne do wykonania. Biblioteka uruchomieniowa (standardowa), jeśli w ogóle dostępna, zwykle ma mniejsze możliwości i większą podatność na błędy. Z powodu tych ograniczeń, monitorowanie i logowanie jest często używane. System operacyjny może być bardzo rozbudowany podsystem logowania.
Oryginalnie programiści systemowi pisali w języku asemblera. Eksperymenty z obsługą sprzętu w językach wysokiego poziomu spowodowało stworzenie w późnych latach 60. takich języków jak BLISS i BCPL, ale dopiero C, z pomocą zwiększonej popularności UNIX-a stał się standardem w latach 80. Ostatnio Embedded C++ jest czasami używany, na przykład w sterownikach I/O Kit systemu macOS.
Przykłady Implementacja wielu części systemu operacyjnego (jądra) czy też systemu sieciowego wymaga programowania systemowego. Najczęstszym przykładem są sterowniki urządzeń systemu operacyjnego.
Kategoria:Programowanie komputerów