Vad är systemprogrammering?
Alla programmerare skriver körbar kod för datorer, men det som skiljer systemprogrammerare från applikationsprogrammerare är syftet med programvaran de skriver. Applikationsprogrammering producerar programvara som gör att en dators hårdvara genererar något för användaren, vare sig det är ett kalkylblad eller grafik för ett spel. Systemprogrammering producerar programvara som har åtkomst till och kontrollerar den inre funktionen på en dators hårdvara och operativsystem.
Tillämpningsprogrammering innebär vanligtvis att utfärda systemkommandon för att använda de grundläggande funktionerna för en dators hårdvara och operativsystem, såsom att lagra en viss datamängd i datorns fysiska minne eller en fil på hårddisken. Den här typen av program handlar inte om hur hårddisken eller det fysiska minnet fungerar. Omvänt bekymrar sig systemprogrammerare för detaljerna om hur ett operativsystem och hårdvarukomponenter fungerar. Detta gör att de kan bygga programvaran som defragmenterar hårddiskar och kontrollerar integriteten i datorns fysiska minne.
Förutom att kunna bygga sådana verktyg är systemprogrammerare vanligtvis experter på operativsystemens kärnfunktion. Alla programmerare är bekanta med systemsamtal, trådhantering och ingångs- / utgångshantering, men systemprogrammering kräver att programvaruingenjör kan hantera dessa operativsystemmekanismer. Detta gör att en systemprogrammerare kan utföra specialiserade installationer och automatisera systemunderhållsuppgifter.
Kunskap om operativsystemets kärna är också nödvändig för att maximera en applikations prestanda på en viss hårdvarukonfiguration. Till exempel, mycket upptagna onlinehandlare behöver sina webbplatser och transaktionsbehandlingssystem för att köra så effektivt och pålitligt som möjligt. Med hjälp av sin kunskap om den interna mekaniken i operativsystem och hårdvarukomponenter, till exempel hur man gör ett visst operativsystem optimerar dess trådhantering eller vilka algoritmer som kör snabbast på vilka hårdvarukomponenter, kan en systemprogrammerare hjälpa till att finjustera en applikations prestanda.
Denna detaljerade åtkomst till den inre funktionen av hårdvara och operativsystemkomponenter kräver systemprogrammering på ett språk som tillåter denna typ av hårdvarutillgång på låg nivå. Språk som Java®, Python ™ eller Ruby on Rails® är det som programmerare kallar språk på hög nivå. Detta innebär att de underlättar applikationsprogrammering genom att inte göra programmeraren att hantera de fina detaljerna i hårdvarahantering. Systemprogrammering kräver exakt den här typen av åtkomst, så systemprogrammerare använder ett lågnivåspråk som C eller C ++.