Traditsiooniliselt on FreeBSD-l olnud nn. ``monoliitne'' kernel. See tähendas, et kernel oli üks suur programm, mis toetas kindlat hulka seadmeid, ja kui sa soovisid kerneli käitumist muuta, tuli kompileerida uus kernel ja sellega süsteem uuesti käivitada.
Praegu liigub FreeBSD kiirelt mudeli poole, kus suur osa kerneli funktsionaalsusest on moodulites, mida saab vajadusel kernelisse dünaamiliselt lisada või sealt eemaldada. See võimaldab kernelil kohaneda ootamatult tekkivate riistvaraliste võimalustega (nagu näiteks sülearvutite PCMCIA kaardid) või lisada uut funktsionaalsust, mida kerneli kompileerimise hetkel veel ei vajatud. Sellist mudelit tuntakse modulaarse kernelina. Mitteametlikult kutsutakse neid KLD-deks.
Vaatamata sellele on siiski vajalik ka mõningane staatiline kerneli seadistamine. Mõnedel juhtudel on näiteks funktsionaalsus kerneliga niivõrd seotud, et viimast ei saagi teha dünaamiliselt laaditavaks. Võib ka olla, et keegi pole veel lihtsalt jõudnud kirjutada soovitud funktsionaalsusega dünaamiliselt laetavat kernelimoodulit.
Kohandatud kerneli ehitamine on üks põhilisi rituaale, mille pea iga UNIX® kasutaja peab läbima. Kuigi see võtab aega, on kompileerimisel siiski sinu FreeBSD süsteemi jaoks palju eeliseid. Erinevalt GENERIC kernelist, mis peab toetama suurt hulka erinevat riistvara, sisaldab su kohandatud kernel tuge ainult sinu PC riistvarale. Sellel on hulk eeliseid, nagu näiteks:
Alglaadimine toimub kiiremalt. Kuna kernel otsib ainult riistvara, mis sul masinas ka tegelikult olemas on, võtab süsteemi alglaadimine tunduvalt vähem aega.
Väiksem mälukasutus. Kohandatud kernel kasutab tihtipeale vähem mälu kui GENERIC-kernel ja see on tähtis, kuna kernel on protsess, mis peab alati reaalses mälus olema. Sellel põhjusel on kohandatud kerneli kasutamine eriti kasulik vähese RAM-iga süsteemi puhul.
Lisanduv riistvaratugi. Kohandatud kernelisse saad lisada toe näiteks helikaartidele, mida GENERIC-kernelis pole.