Programvaran är indelad i system- och applikationsprogramvara baserat på deras grundläggande syfte och hur de interagerar med datormaskinvaran och användare. Divisionen förenklar förståelse, utveckling och underhåll:
* Systemprogramvara: Detta fungerar som en mellanhand mellan användaren och hårdvaran. Dess primära mål är att hantera och styra datorhårdvara och tillhandahålla en plattform för applikationsprogramvara att köra. Den hanterar uppgifter på låg nivå som användare sällan interagerar med direkt. Detta inkluderar:
* Operativsystem (OS): Kärnsystemprogramvaran, hantering av resurser som minne, CPU, lagring och kringutrustning. Exempel:Windows, MacOS, Linux, Android, iOS.
* enhetsdrivare: Programvara som gör det möjligt för operativsystemet att kommunicera med specifika hårdvaruenheter (skrivare, grafikkort etc.).
* verktyg: Verktyg som hjälper till att hantera och underhålla systemet, som disk defragmenter, antivirusprogram och systemmonitorer.
* bios/uefi: Firmware som initialiserar hårdvarukomponenter när datorn startar.
* kompilatorer och tolkar: Översätt programmeringsspråk till maskinkod.
* länkar och lastare: Kombinera och förbered programkod för exekvering.
* Applikationsprogramvara: Detta är utformat för att utföra specifika uppgifter för användare. Den körs * ovanpå * systemprogramvaran och använder resurserna som hanteras av OS. Det är fokuserat på användarvänlig funktionalitet. Exempel inkluderar:
* Word Processors: Microsoft Word, Google Docs
* kalkylblad: Microsoft Excel, Google Sheets
* webbläsare: Chrome, Firefox, Safari
* spel: Fortnite, minecraft
* databaser: MySQL, PostgreSQL
* Bildredigerare: Photoshop, gimp
* E -postklienter: Outlook, Thunderbird
Divisionen är avgörande eftersom:
* Abstraktion: Systemprogramvara döljer komplexiteten hos hårdvara från applikationsprogramvara och användare. Utvecklare av applikationer behöver inte oroa sig för komplikationerna i minneshantering eller enhetsdrivare; OS hanterar det.
* Modularitet: Att separera system- och applikationsprogramvara möjliggör enklare uppdateringar och underhåll. Du kan uppdatera operativsystemet utan att nödvändigtvis påverka applikationsprogramvara (helst).
* Portabilitet: Applikationsprogramvara utformad för ett specifikt operativsystem kan potentiellt köras på alla system med det operativsystemet, oavsett underliggande hårdvaruskillnader. Systemprogramvaran hanterar hårdvaruspecifika detaljerna.
* Säkerhet: Systemprogramvara kan tillhandahålla säkerhetsfunktioner som brandväggar och användaråtkomstkontroller, skydda systemet och applikationerna från skadlig programvara.
Medan linjen ibland kan oskärpa (vissa applikationer har systemliknande funktionaliteter, och viss systemprogramvara kan vara användarkonfigurerbar), förblir skillnaden en värdefull organisatorisk princip i programvaruvärlden.