Co to jest programowanie systemowe?
Wszyscy programiści piszą kod wykonywalny dla komputerów, ale to, co odróżnia programistów systemowych od programistów aplikacji, jest celem oprogramowania, które piszą. Programowanie aplikacji produkuje oprogramowanie, które sprawia, że sprzęt komputerowy generuje coś dla użytkownika, czy to arkusz kalkulacyjny, czy grafika do gry. Programowanie systemowe produkuje oprogramowanie, które uzyskuje dostęp do i kontroluje wewnętrzne działanie sprzętu i systemu operacyjnego komputera.
Programowanie aplikacji ogólnie obejmuje wydawanie poleceń systemowych w celu wykorzystania podstawowych funkcji sprzętu i systemu operacyjnego komputera, takich jak przechowywanie określonego elementu danych w pamięci fizycznej komputera lub pliku na dysku twardym. Tego rodzaju programy nie dotyczy szczegółowych informacji na temat działania dysku twardego lub pamięci fizycznej. I odwrotnie, programiści systemowi dotyczą się szczegółów działania systemu operacyjnego i komponentów sprzętowych. To pozwala im zbudować oprogramowanie, które defragmentujeARD napędza i sprawdza integralność pamięci fizycznej komputera.
Oprócz możliwości budowania takich narzędzi, programistów systemów są zazwyczaj ekspertami w zakresie funkcjonowania podstawowych systemów operacyjnych. Wszyscy programiści są zaznajomieni z wywołaniami systemowymi, zarządzaniem wątkami i obsługą wejściowych/wyjściowych, ale programowanie systemowe wymaga, aby inżynier oprogramowania był w stanie manipulować tymi mechanizmami systemu operacyjnego. Umożliwia to programistowi systemu wykonywania specjalistycznych instalacji i automatyzacji zadań konserwacji systemu.
Znajomość rdzenia systemu operacyjnego jest również konieczna, aby zmaksymalizować wydajność aplikacji w określonej konfiguracji sprzętowej. Na przykład bardzo zajęci sprzedawcy internetowi potrzebują swoich stron internetowych i systemów przetwarzania transakcji, aby działać tak wydajnie i niezawodnie, jak to możliwe. Wykorzystując swoją wiedzę na temat wewnętrznej mechaniki systemów operacyjnych i HardwaPonowne komponenty, takie jak sposób, w jaki konkretny system operacyjny zoptymalizował jego obsługę wątków lub które algorytmy działają najszybciej, na których komponenty sprzętowe programista może pomóc w dostosowaniu wydajności aplikacji.
Ten szczegółowy dostęp do wewnętrznych działań sprzętu i komponentów systemu operacyjnego wymaga wykonania programowania systemu w języku, który umożliwia ten rodzaj dostępu sprzętowego niskiego poziomu. Języki takie jak Java®, Python ™ lub Ruby on Rails® są tym, co programiści nazywają językami wysokiego poziomu. Oznacza to, że ułatwiają programowanie aplikacji, nie czyniąc programistka obsługiwania drobnych szczegółów zarządzania sprzętem. Programowanie systemowe wymaga dokładnie tego rodzaju dostępu, więc programistów systemów używają języka niskiego poziomu, takiego jak C lub C ++.