Software

Uit Wikipedia, de vrije encyclopedie
Naar navigatie springen Naar zoeken springen

Software of programmatuur is een geheel van computerprogramma's met bijbehorende data, die bewerkingen en taken uitvoeren. Naast toepassingen voor mainframes, personal computers en spelcomputers, bevatten ook televisies, telefoons, telefooncentrales, auto's en machines sinds de jaren zeventig steeds vaker embedded software. Ook apps op een smartphone of tablet worden software genoemd.

Software kan worden ingedeeld naar toepassingsgebied of gebruikersgroep.

Het begrip "software" komt uit het Engels en is de tegenhanger van hardware (apparatuur), waarmee alle "tastbare" apparatuur wordt bedoeld. Het onderscheid tussen software en hardware is niet altijd eenduidig aan te geven. Ter wille van betere prestaties worden sommige functies in hardware geïmplementeerd, die evengoed in de vorm van software gerealiseerd kunnen worden. Bovendien zijn er tussenvormen, zoals firmware (software die in hardware is vastgelegd) en programmable gate arrays (generieke hardware die softwarematig van een functie wordt voorzien).

Privésoftware[bewerken | brontekst bewerken]

Thuis op de pc of spelcomputer:

Kantoorsoftware[bewerken | brontekst bewerken]

Kantoorsoftwarepakketten bestaan vaak uit:

Kantoorsoftware draait meestal op een desktopcomputer of laptop. Bekende toepassingen zijn Microsoft Office, Google Docs en LibreOffice. Er kan ook een CAD-systeem in een kantoorpakket zitten.

Bedrijfssoftware[bewerken | brontekst bewerken]

Bedrijfssoftware zijn grotere softwarepakketten, vaak bestemd voor meerdere gebruikers die deze al dan niet tegelijkertijd gebruiken. Voorbeelden:

Systeemsoftware[bewerken | brontekst bewerken]

Systeemsoftware wordt ook wel een besturingssysteem genoemd, met als bekende voorbeelden Windows, Mac OS en Unix. Dit zijn alle programma's die nodig zijn voor het functioneren van het systeem, bijvoorbeeld programma's om bestanden te kopiëren (cp of copy), te verwijderen (rm of del), mappen aan te maken en de inhoud van een bestandssysteem zichtbaar te maken (ls of dir). Typische onderdelen zijn BIOS, device drivers en interrupt service routines. Deze laag wordt ook wel low level software genoemd.

  1. De kernel: deze implementeert alle diensten die voor het hele systeem beschikbaar (moeten) zijn zoals multitasking, geheugenbeheer en semaforen.
  2. Programmabibliotheken met specifieke functionaliteit, zoals netwerkabstracties (bv. TCP/IP), implementaties van specifieke bestandssystemen, grafische routines en basisbibliotheken voor specifieke computertalen (libc, bijvoorbeeld).
  3. Daemons, processen die weliswaar niet bij de kernel horen, maar wel noodzakelijk zijn voor het functioneren van het systeem zoals programmamanagers, printermanagers, windowmanagers en cronachtige programma's. Daemons worden (in de regel) door het systeem zelf gestart en zijn voortdurend actief.
  • Netwerkprogrammatuur (bijvoorbeeld voor internet), FTP, NNTP- en IRC-servers en -cliënten.
  • Om te kunnen werken hebben computers ten minste firmware nodig, bijvoorbeeld het BIOS van een pc, maar in de regel bevat een computer een grote verscheidenheid aan software. De uitzondering hierop is een embedded system, dat over het algemeen uitsluitend op firmware berust.

Hardwareplatform[bewerken | brontekst bewerken]

De ontwikkeling van software is naarmate die dichter bij de hardware staat, nauwer verweven met het platform waarop het werkt. Op het allerlaagste niveau dient de ontwikkelaar van dit soort software op de hoogte te zijn van de werking van de hardware, terwijl het op het hoogste niveau vaak mogelijk is software zo te schrijven dat die op een groot aantal verschillende platforms kan worden gebruikt, door handig gebruik te maken van verschillende abstractielagen. Goede voorbeelden hiervan zijn Qt en de POSIX-standaard.

Realtimesoftware[bewerken | brontekst bewerken]

Realtimesoftware geldt als een speciaal geval, waarin niet alleen het uiteindelijke resultaat, maar ook scherpe tijdsrestricties gelden. Voor alle software is van enig belang hoe snel de resultaten beschikbaar komen; in een tekstverwerker een paar minuten moeten wachten om naar een volgende pagina te bladeren, zou niet aanvaardbaar zijn. Zakelijke en administratieve software, alsook simulatie van wiskundige modellen worden echter niet als realtime beschouwd. Er is geen directe relatie met processen buiten het softwaresysteem. Over het algemeen wordt een onderscheid gemaakt tussen

  • Soft real time, waarbij alleen een maximumresponstijd geldt, die afhankelijk is van de eisen; een voorbeeld is de navigatie- en doelzoeksoftware voor geleide wapens.
  • Hard real time, waarbij het systeem 'deterministisch' moet zijn.

Hoewel vele realtimetoepassingen eveneens embedded zijn, zijn de twee begrippen geenszins equivalent.

Ingebouwde software[bewerken | brontekst bewerken]

Ingebouwde oftewel embedded software is ingebouwd in apparaten, zoals auto's, thermostaten, televisies, camera's, mobiele telefoons, Active Suspension, routenavigatiesysteem, dataloggers, gps-cliënten, remote sensors en satellieten.

Enkele voorbeelden van automobielsoftware: ABS, cruisecontrol of het motormanagement dat ervoor zorgt dat de wagen zo weinig mogelijk CO2 uitstoot.

Zie ook[bewerken | brontekst bewerken]