Wat is een kerndump?
Een kerndump is een record van de geheugeninhoud van een computer toen zich een ernstige fout voordeed. Het kan het hele systeemgeheugen omvatten of alleen het gedeelte dat in gebruik was door het programma dat is mislukt. Het kan ook andere relevante gegevens bevatten, zoals de processorstatus, registerinhoud en informatie over actieve processen. Software-ingenieurs gebruiken vaak kerndumps met debuggers en andere hulpprogramma's om computerfouten te analyseren en op te lossen. Een kerndump kan ook worden gebruikt om een werkproces van de ene processor naar de andere over te dragen tijdens normaal bedrijf.
De term "kerndump" is waarschijnlijk ontstaan in de jaren zestig toen vroege computers magnetisch kerngeheugen gebruikten. Toen een lopend programma crashte, werden alle gegevens in de hele kern op papier afgedrukt om te helpen bij het opsporen van fouten. Deze afdrukken bestonden meestal uit niet meer dan geheugenadressen en gegevens in octale of hexadecimale notatie. Naarmate de opslagtechnologieën verbeterden, konden kerndumps worden opgeslagen op schijf, verwijderbare magnetische tape of niet-vluchtige geheugensticks. Een grotere opslagcapaciteit voor statusinformatie en de vooruitgang in het debuggen van software hebben foutdiagnose efficiënter gemaakt.
Typische oorzaken van kerndumps zijn slecht geschreven applicaties of systeemsoftware. Vaak gaat programmacode ervan uit dat pointers en array-indexen altijd naar geldige gegevensstructuren verwijzen. Als een van deze zich buiten de grenzen van hun oorspronkelijke structuren bevindt, kan er bijvoorbeeld een kernstort optreden. Problemen met toegang tot gegevensbestanden op een opslagapparaat of het lezen van beschadigde gegevens kunnen ook een kerndump veroorzaken. Hardwareproblemen, waaronder geheugenstoringen, harde schijven of processors, kunnen deze ook veroorzaken.
Er zijn over het algemeen twee soorten kernstortplaatsen. Eén type is waar het actieve proces of applicatieprogramma wordt beëindigd en de besturing terugkeert naar het besturingssysteem. In dit geval blijft de rest van het systeem normaal functioneren omdat alleen het betreffende programma is gestopt. Meestal wordt een groot kerndumpbestand gegenereerd dat vervolgens in een debugger kan worden geladen. Als de fout is opgetreden in een programma waarvoor de symbolen en broncode beschikbaar zijn, kunnen deze ook in de debugger worden geladen.
Het andere, meer ernstige type kerndump wordt ook een kernelpaniek genoemd. Dit type dump stopt het hele systeem in zijn sporen om verdere complicaties en gegevensbeschadiging te voorkomen. Op Microsoft Windows®-systemen vindt dit soort dump meestal plaats in de al te bekende vorm van een "blue screen of death". Panics zoals deze zijn meestal moeilijker te debuggen en worden vaak veroorzaakt door hardware- of systeemniveauproblemen. Dit kan gebeuren voordat het systeem is opgestart wanneer er weinig informatie beschikbaar is over de werkelijke oorzaak.