Programowanie systemowe
Programowanie systemowe jest rodzajem programowania systemów oprogramowania. Główną cechą odróżniającą programowanie systemowe od aplikacyjnego jest to iż programowanie aplikacyjne tworzy oprogramowanie które świadczy usługi dla użytkownika (np. edytor tekstu), natomiast programowanie systemowe służy stworzeniu oprogramowania które świadczy usługi sprzętowi komputerowemu (np. defragmentator dysku) co wymaga dużej znajomości sprzętu i wewnętrznej budowy systemu komputerowego. W szczególności
- programista przyjmuje założenia odnośnie do sprzętu i innych właściwości systemu na którym program jest uruchomiony, i często będzie aktywnie wykorzystywał te własności (na przykład przez zastosowanie algorytmu który jest efektywniejszy na specyficznym sprzęcie)
- używany jest język niskiego poziomu albo język który:
- potrafi działać w środowisku o limitowanych zasobach
- jest bardzo efektywny i ma małe narzuty uruchomieniowe
- ma małą bibliotekę uruchomieniową (albo wcale)
- pozwala na bezpośredni i surowy dostęp do pamięci i kontroli wykonania
- umożliwia programiście pisać części programu bezpośrednio w języku asemblera
- debugowanie może być utrudnione, albo niemożliwe z powodu ograniczonych zasobów w których program działa. 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.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.