Er bestaat geen enkele fundamentele *set* programma's die *alle* internetactiviteiten op computerhardwareniveau besturen. In plaats daarvan is het een gelaagde architectuur waarbij verschillende programma's en componenten samenwerken. Enkele belangrijke fundamentele elementen zijn echter:
* De kernel van het besturingssysteem (OS): Dit is de kern van het besturingssysteem. Het werkt rechtstreeks samen met de hardware en beheert bronnen zoals de CPU, het geheugen en de netwerkinterfacekaart (NIC). De kernel verzorgt netwerkbewerkingen op laag niveau, inclusief het ontvangen en verzenden van netwerkpakketten. Voorbeelden hiervan zijn de Linux-kernel, macOS-kernel en de Windows-kernel.
* Stuurprogramma's voor netwerkinterfacekaarten (NIC): Dit zijn programma's waarmee het besturingssysteem kan communiceren met de specifieke hardware van de netwerkinterfacekaart. Ze vertalen instructies van het besturingssysteem in signalen die de NIC begrijpt, en omgekeerd.
* Implementaties van netwerkprotocollen: Het internet is afhankelijk van verschillende protocollen, zoals TCP/IP. Deze protocollen worden geïmplementeerd als software binnen de OS-kernel of als gebruikersruimtebibliotheken. Deze implementaties verzorgen de taken van het verpakken van gegevens in pakketten, het routeren van pakketten over netwerken en het garanderen van een betrouwbare levering.
* Firmware (BIOS/UEFI): Voordat het besturingssysteem zelfs maar wordt geladen, initialiseert de firmware de hardware en biedt deze basisfuncties, waaronder het opstarten van het netwerk in een zeer vroeg stadium (bijvoorbeeld opstarten met PXE). Hoewel het niet strikt "programma's" zijn in dezelfde zin als het besturingssysteem, is firmware cruciaal voor het initiële installatie- en opstartproces dat internetconnectiviteit mogelijk maakt.
Het is belangrijk op te merken dat deze componenten samenwerken. De OS-kernel is afhankelijk van NIC-stuurprogramma's om toegang te krijgen tot de netwerkhardware. De netwerkprotocolimplementaties binnen de kernel gebruiken de stuurprogramma's om gegevens te verzenden en te ontvangen. Het hele proces is complex en omvat veel op elkaar inwerkende onderdelen, en niet slechts een enkele reeks programma's. |