Linux系统内核按体积和功能的不同,可以分为两种:微内核与单内核。
微内核,体积小,包含的功能也少,只负责进行进程调度、进程通信、底层中断等工作,而把传统操作系统内核的其他功能 模块,如设备驱动、内存管理、文件系统、网络协议等作为服务器运行于内核之上。每个功能模块都一个单独的进程,它们通过内核转发消息,进行联系,因此微内核更像是一个消息转发站。这种内核结构有利于降低内核各功能模块之时的耦合性,使得在不影响系统其他部分工作的前提下,用更高效的实现代替现有的功能模块的工作更加容易,同时,具有更好的可扩展性。但是,不同功能模块之间的消息传递需要一定的开销,这势必会影响到系统运行的效率。
单内核操作系统采用了内核单一化设计,内核是一个单独的二进制映像,包含操作系统内核的各个组成部分,其模块间的通信是通过直接调用其他模块中的函数实现的,而不是消息传递。单内核又被称做单一内核、大内核、宏内核等。单内核运行时避免了频繁的消息传递,因此执行效率较高,但是从软件工程的角度来说,所有功能模块结合在一起作为一个进行运行,导致内核难以维护和增加新的功能。典型的单内核操作系统有UNIX、Linux、OS/360等。
微内核和单内核各有优缺点,在Linux诞生之初,由于内核结构还曾经引起论战。但如今,Linux已被移植到各平台,早已证明其蓬勃的生命力。