MINIX er et Unix-lignende computerstyresystem baseret på en mikrokerne-arkitektur. Andrew S. Tanenbaum skrev styresystemet, så det kunne bruges til undervisningsformål; MINIX hjalp også Linus Torvalds med at designe Linux-kernen. Navnet kommer af ordene minimal og Unix.

MINIX er udgivet under BSD-licensen og er gratis og open source.

 

Arkitektur og design

MINIX bygger på en mikrokerneidé, hvor kernen holdes så lille som muligt. Kerneopgaver som inter-proces-kommunikation (IPC), planlægning og grundlæggende hukommelsesstyring ligger i kernen, mens funktioner som filsystemer, netværksstakke og enhedsdrivere køres som separate brugerrumsprocesser (servers). Kommunikation mellem disse komponenter foregår typisk ved meddelelser (message passing).

  • Fordele: Bedre fejlisolering og modulær opbygning gør det lettere at genstarte eller udskifte individuelle komponenter uden at tage hele systemet ned.
  • Ulemper: Historisk har mikrokerner haft større overhead ved kommunikation mellem processer end monolitiske kerner, selvom moderne implementeringer og optimeringer har reduceret forskellen.

Historie og indflydelse

MINIX blev oprindeligt udviklet af Andrew S. Tanenbaum og udgivet sammen med lærebogen "Operating Systems: Design and Implementation" for at give studerende et fuldt fungerende, læsbart og relativt lille styresystem at studere. I begyndelsen af 1990'erne spillede MINIX en central rolle i udvikling af moderne frie kerner, da Linus Torvalds brugte MINIX som udviklingsplatform, inden han skrev den første version af Linux-kernen. Diskussionen mellem Tanenbaum og Torvalds om mikrokerner versus monolitiske kerner er også velkendt i fagmiljøet.

Uddannelse og anvendelse

MINIX er især udbredt i undervisningssammenhæng, fordi kildeteksten er overskuelig og kommenteret, hvilket gør det velegnet til at lære om kerne­design, processer, hukommelsesstyring og filsystemer. Mange universitetskurser bruger MINIX som praktisk eksempel eller som udgangspunkt for opgaver, hvor studerende kan læse, ændre og eksperimentere med kernekode.

MINIX 3 og moderne udvikling

Senere udviklinger, især MINIX 3, fokuserede på høj pålidelighed og evnen til at reparere sig selv: kritiske servere og drivere køres i brugerrum og kan genstartes eller udskiftes uden at genstarte hele systemet. Projektet har haft fokus på at gøre systemet robust nok til indlejrede systemer og til anvendelser, hvor oppetid og sikkerhed er vigtige.

Nøgleegenskaber

  • Små og velkommenterede kildefiler — velegnet til undervisning og forskning.
  • Mikrokerne med brugerrumskomponenter øger fejltolerance og modularitet.
  • Aktivt open source-fællesskab, der vedligeholder kildekoden og tager imod bidrag.
  • Porteret til flere platforme, med fokus på x86 og moderne ARM‑arkitekturer.
  • God delvis kompatibilitet med POSIX-standarder, hvilket letter portering af programmer.

MINIX forbliver et vigtigt værktøj i undervisning og forskning inden for operativsystemer, både som et praktisk læremiddel og som et demonstrativt eksempel på fordele og udfordringer ved mikrokerne-design.