# Maskinvare

## Hva det er

Maskinvare er den delen av et datasystem som består av materie og ikke av kode: prosessoren som
utfører instruksjonene, minnet som holder arbeidet underveis, diskene eller flashlagringen som tar
vare på data mens strømmen er av, nettverkskortet, strømforsyningen og kortet som kobler dem sammen.
Skjermer, tastaturer, kabler, svitsjer og rutere hører også med. En fysisk server som kjører
operativsystemet sitt direkte, med et virtualiseringslag verken over eller under, kalles ofte _bare
metal_.

NIST-ordlisten definerer maskinvare som de materielle, fysiske komponentene i et system og sender
leseren videre til programvare og fastvare, fordi de tre er definert i forhold til hverandre.
Programvare er i den samme ordlisten programmer og data som kan skrives eller endres mens de kjører.
Fastvare, ofte bare kalt firmware, er programmer og data som er lagret i maskinvaren, typisk i
leseminne (ROM) eller programmerbart leseminne (PROM), slik at de ikke kan skrives eller endres
dynamisk mens de kjører. Det er fastvaren som starter en maskin før noe operativsystem er lastet, og
mindre biter av den kjører inne i disker, nettverkskort og batterikontrollere. NISTs retningslinjer
for plattformfastvare behandler maskinvaren og fastvaren som trengs for å starte og drive et system,
som én ting, og kaller den plattformen.

Hver del har en kapasitet som programvaren kan bruke godt eller dårlig, men aldri heve. Prosessoren
gjør en fast mengde arbeid per sekund og deles av alt som kjører. Minnet er raskt, begrenset og
tømmes når strømmen går. Lagringen er tregere og større, beholder innholdet gjennom et strømbrudd og
slites av bruk. Nettverkskortet flytter et fast antall biter per sekund. Et system er like raskt som
den av disse delene som først går tom, for akkurat den jobben systemet får.

De fleste servere i dag kjører på maskinvare ingen i selskapet har sett. En virtuell maskin som
leies hos en skyleverandør, er en andel av en fysisk maskin i leverandørens datasenter: en
hypervisor deler prosessorene, minnet og diskene i den maskinen mellom de virtuelle maskinene som er
plassert på den, og holder hver av dem innenfor sin andel. Kunden velger størrelser fra en
prisliste, og leverandøren tar seg av kablingen, reservedelene og utskiftingen.

## Hvorfor det er viktig

Maskinvaren setter taket. Programvaren avgjør hvor mye av en maskins kapasitet som blir til nyttig
arbeid, men ingen innstilling gir en maskin mer minne enn den har. Å vite hvilken del som er full,
prosessoren, minnet, disken eller nettverket, forteller deg hva som bør endres, og ofte at svaret
ligger i programvaren.

Maskinvare er også det tregeste og dyreste å endre. Et program kan installeres på nytt på noen
minutter. En del må velges, bestilles, monteres og betales, og en større leid maskin koster mer hver
måned så lenge den kjører. Det gjør maskinvare til siste utvei når ytelsen svikter, selv om det ofte
er det første noen foreslår.

Maskinvare er dessuten der ting slites fysisk. Vifter, batterier, hengsler, kontakter og lagring har
alle en levetid. Alt som ligger over dem, kan bygges opp igjen fra en sikkerhetskopi og en skriftlig
beskrivelse; selve delene må skiftes ut.

Og maskinvaren holder på data etter at programvaren har sluppet dem. Å slette en fil fjerner som
regel filsystemets oversikt over hvor innholdet ligger, og ikke selve innholdet. En disk som
forlater bygget, enten den blir solgt, sendt tilbake under garanti eller kastet, kan ta med seg mye
av det som noen gang er skrevet til den.

## Slik ser det ut i praksis

Maskinvarearbeidet i porteføljen begynner ved en arbeidsbenk. Omtalen av
[diagnostisering og reparasjon av maskinvare i bærbare datamaskiner](/nb/portfolio/diagnosed-and-repaired-laptop-hardware-screens-hinges-keyboards-93/)
dekker skjermer, hengsler, tastaturer, styreplater, hovedkort og strøm, sammen med programvare på
Linux, Windows og Mac. Den legger selve ferdigheten i diagnosen: en bærbar som ikke vil slå seg på,
kan skyldes laderen, hovedkortet eller batteriet, og reparasjonen er aldri bedre enn antakelsen om
hva som faktisk er ødelagt. Derfor gikk omhuen med til å finne den virkelige feilen før noe ble
rørt.

Dette nettstedet kjører på maskinvare i den motsatte ytterkanten, en maskin det aldri har rørt.
Kolofonen beskriver [den ene lille maskinen som gjør alt sammen](/nb/credits/): en
DigitalOcean-server med én kjerne, 512 MB minne og en disk på 10 GB, som står i Toronto i Canada.
Den samme siden forteller at Ansible beskriver serveren som kode, slik at den kan bygges opp på nytt
i stedet for å huskes, og at restic tar sikkerhetskopiene bort fra maskinen. Når maskinvaren
tilhører noen andre, er de to linjene hele verktøykassen for reparasjon.

Notatet om å [optimalisere en database før den shardes](/nb/notes/optimise-before-you-shard/)
handler for en stor del om når det er klokt å la maskinvaren være. Å spre dataene over flere servere
sprer de trege setningene over mer maskinvare uten å gjøre én eneste av dem billigere. Rader som
konkurrerer om samme lås, venter på hverandre og ikke på maskinvare, og en større maskin gjør ikke
ventetiden for én rad kortere. Når mange ganger flere økter er aktive enn det finnes kjerner, løser
en tilkoblingspool det før noen maskinvare gjør det. Notatets prøve for når det er på tide å dele
opp, er en maskin som er full av godt arbeid, og ikke en som er full av venting.

## Hvor det går galt

**Maskinvare blir kjøpt inn for et programvareproblem.** Et tregt system ser ut som et lite system.
Før du betaler for en større maskin, bør du finne ut hvilken del som er full. På Linux gir tre
kommandoer et første svar: hvor mange prosessorer systemet kan bruke, hvor mye minne som er i bruk
og tilgjengelig, og fem målinger med ett sekunds mellomrom av hvor prosessortiden går.

```sh
nproc
free -h
vmstat 1 5
```

I utdataene fra `vmstat` er `us` og `sy` tiden som går med i programmer og i systemkjernen, `id` er
tomgang, og `wa` er tid brukt på å vente på lagring. En prosessor som stort sett går på tomgang mens
forespørsler venter, betyr at ventingen ligger et annet sted: en lås, en treg spørring, et fjernkall
eller for mange tilkoblinger på en gang. Mer maskinvare lar alt dette bli stående der det var.

**Den gale delen blir byttet ut.** Et symptom peker på et sted, ikke på en årsak. En maskin som ikke
vil starte, kan skyldes strømmen, hovedkortet eller batteriet; en treg disk kan være full, i ferd
med å svikte eller bare opptatt. Å bytte deler til feilen forsvinner, koster penger og skjuler
hvilken del som var skyld i den, og da kommer den tilbake. Test den billigste forklaringen først,
endre én ting om gangen, og bekreft rettingen ved å gjenta det som avslørte feilen.

**En virtuell prosessor blir tatt for en fysisk kjerne.** Å dimensjonere en leid maskin etter
antallet virtuelle CPU-er forutsetter at hver av dem er en kjerne. Dokumentasjonen til DigitalOcean,
for å ta ett eksempel, definerer en vCPU som én enkelt hypertråd på en prosessorkjerne. På planene
med delt CPU kan den hypertråden deles med andre virtuelle maskiner på den samme fysiske verten, og
når de har mye å gjøre, kan en maskin få brøkdeler av én, mens minne, disk og båndbredde i
nettverket forblir dedikert. Mål under den lasten du venter i toppene, og gå over til dedikerte
prosessorer når tidene varierer mer enn arbeidet tåler.

**Dataene forlater bygget sammen med disken.** Å slette filer eller formatere en disk kan la
innholdet være lesbart for hvem som helst med vanlige verktøy for gjenoppretting. NISTs
retningslinjer for sanering av lagringsmedier, revidert i september 2025, definerer sanering som en
prosess som gjør tilgang til dataene på mediet uoppnåelig for en gitt innsats, og velger teknikken
etter hvor sensitiv informasjonen er. Bestem hvordan hver disk skal saneres før den kjøpes, og
loggfør saneringen når disken forlater bygget.

**Fastvaren blir glemt når systemet oppdateres.** Oppdateringer av operativsystemet lar som regel
fastvaren i hovedkortet, diskene og nettverkskortet være som den var. NISTs retningslinjer for
plattformfastvare advarer om at et vellykket angrep på den fastvaren kan gjøre et system ubrukelig,
kanskje for godt, og bygger rådene sine på å beskytte den mot uautoriserte endringer, oppdage de
endringene som skjer, og gjenopprette raskt. Installer fastvareoppdateringer fra leverandøren etter
en fast plan, slik resten av systemet patches.

## Les mer

- [hardware — NIST CSRC Glossary](https://csrc.nist.gov/glossary/term/hardware) — den korte
  definisjonen, med henvisningene videre til programvare og fastvare.
- [DigitalOcean: Choosing the Right CPU Droplet Plan](https://docs.digitalocean.com/products/droplets/concepts/choosing-a-plan/)
  — hva en virtuell CPU er hos leverandøren dette nettstedet kjører på, og når delte prosessorer er
  nok.
- [NIST SP 800-88 Rev. 2, Guidelines for Media Sanitization](https://csrc.nist.gov/pubs/sp/800/88/r2/final)
  — hvordan dataene på en disk settes utenfor rekkevidde før disken forlater bygget.
- [NIST SP 800-193, Platform Firmware Resiliency Guidelines](https://csrc.nist.gov/pubs/sp/800/193/final)
  — å beskytte, oppdage og gjenopprette fastvaren en maskin starter fra.

<https://engineer.company/nb/glossary/hardware/>
