I dette kapitel ser vi nærmere på Linux-kernen. Først lidt teknisk om hvordan kernen virker, dernæst mere om hvordan processer håndteres. Det vises hvordan kernen oversættes og moduler håndteres og endelig ser vi nærmere på kerne 2.4.
Multi-tasking Linux understøtter ægte multi-tasking. Alle processer kører helt uafhængigt af hinanden. Ingen processer behøver at tage højde for processor-tid til andre processer.
Multi-bruger tilgang Linux tillader flere brugere at benytte systemet samtidigt.
Demand load executables Kun de dele af et program, som faktisk er påkrævet for udførslen, bliver hentet ind i hukommelsen. Når en ny proces er skabt ved hjælp af fork(), afsættes der ikke straks hukommelse, men i stedet bruges hukommelsen fra forældre-processen af begge processer. Hvis den nye proces så på et tidspunkt søger adgang til en del af hukommelsen i "write mode", kopieres denne sektion før den ændres. Dette koncept kendes som "copy-on-write"; det er med til at øge hastigheden og sænke hukommelsesforbruget.
Paging På trods af forsøg på at anvende fysisk hukommelse effektivt, kan det ske, at den tilstedeværende hukommelse er brugt op. Linux ser så efter 4 kb hukommelsessider, som kan frigives. Sider med deres indhold lagret på harddisk (f.eks. programfiler) frigives. Alle andre sider kopieres ud på harddisken. Hvis der herefter søges adgang til en af disse hukommelsessider, hentes den igen. Denne procedure kaldes "paging". Den adskiller sig fra "swapping", som anvendes i ældre Unix-systemer, hvor hele hukommelsen for en proces skrives til harddisken, hvilket er betydeligt mindre effektivt.
Dynamisk cache for harddisken Brugere af MS-DOS og Windows er kendt med behovet for at reservere hukommelse af en bestemt størrelse til harddisk-cache-programmer som SMARTDRIVE. Linux justerer dynamisk størrelsen af cache-hukommelse som bruges, for at tilpasse sig den nuværende hukommelsessituation. Hvis der ikke er mere hukommelse tilbage på et givet tidspunkt, reduceres størrelsen af cachen for at frigive hukommelse. Når først hukommelse er frigivet, øges cache-området igen.
Delte biblioteker – biblioteker (på engelsk "libraries") er samlinger af rutiner, som kan bruges af forskellige programmer. Linux har et antal standardbiblioteker, der typisk bruges af mange programmer der kører samtidigt. Det er derfor fornuftigt at indlæse disse biblioteker i hukommelsen én gang for alle og lade alle programmerne deles om den samme kode. Dette muliggøres med delte biblioteker (på engelsk "shared libraries"). Da disse først indlæses og sammenkædes med et program, når det kører og har brug for dem, kendes de også som dynamisk sammenkædede biblioteker (på engelsk "dynamically linked libraries" eller "DLLs").
Understøttelse for POSIX 1003.1-standard og delvis System V og BSD. POSIX 1003.1 definerer et minimum interface for et operativsystem af Unix-typen. Dette interface er beskrevet i C-funktionsdeklarationer. Denne standard understøttes nu af alle nyere og relativt sofistikerede Unix-systemer. I dag understøtter Linux tilnærmelsesvist POSIX 1003.1.
Forskellige formater for kørbare filer Da det meste software i dag er skrevet til Microsoft Windows, er det ønskværdigt at kunne køre programmer til disse systemmiljøer under Linux. Derfor er emulatorer for MS-DOS og Microsoft Windows under udvikling. Linux kan også køre programmer fra andre Intel-baserede Unix-systemer, som går under iBCS2-standard. Det inkluderer f.eks. mange kommercielle programmer brugt under SCO-Unix. iBCS2-emulering er endnu ikke en del af standard-kernen, men den kan hentes fra internettet.
Understøttelse af nationale tastaturer og tegnsæt Under Linux kan mange nationale tastaturer og tegnsæt anvendes. ISO-standarden UTF-8 definerer blandt andet Latin1-tegnsættet, som indeholder de europæiske specialtegn med mere.
Forskellige filsystemer Linux understøtter forskellige filsystemer. Det mest almindeligt brugte filsystem er Second Extended (ext2) File System. Dette understøtter filnavne op til 255 tegn, og har et antal træk der gør det mere sikkert end almindelige Unix-filsystemer. Det er dog ikke et Journaling filesystem, som giver endnu større sikkerhed imod datatab. Som noget nyt i kerne-version 2.4.1 understøttes det journaliserende filsystem ReiserFS, som sikrer en hurtig reetablering af systemet efter en ikke-planlagt nedlukning (f.eks. efter strømsvigt).
Oftest anvendes ext2-diskformat, men Linux kan læse og skrive et hav af andre diskformater, FAT, vfat, NTFS (kun læse), UDF (DVD-format), ISO 9660 (cd-rom-format) og mange andre. I netværk kan man få adgang til filsystemet på andre systemer transparent ved hjælp af NFS (Network File System) eller SMB (Windows filshare).
TCP/IP, SLIP og PPP-understøttelse Linux kan integreres i lokale Unix-netværk. I princippet kan alle netværkstjenester som NFS og Remote Login bruges. SLIP og PPP understøtter brugen af TCP/IP-protokollen over serielle linjer. Det betyder at link til internettet via telefonnetværk ved hjælp af et modem er muligt.
BSD-sockets Netværkskommunikation kræver naturligvis midler til interproces-kommunikation mellem forskellige computere. Interfaces hertil er i BSD-sockets.
System V IPC Linux bruger dette til at lave 'message queues', semaforer og 'shared memory'. Disse er klassiske varianter til interproces-kommunikation.
Virtuelle konsoller Linux understøtter virtuelle konsoller. Tastekombinationen <ALT> + <Function key> bruges til at skifte imellem dem.
Multiprocessing Fra kerne 2.0 understøtter Linux symmetrisk multiprocessing – samtidig kørsel af processer på et antal processorer – op til 16 processorer. I kerne 2.2-serien var man i praksis begrænset til 4 processorer, mens man med kerne 2.4-serien kan opnå skalérbar performance på 16 og 32 processorer.