Linux系统的核心是内核,内核控制这计算机系统上的所有硬件和软件,必要时分配硬件,并根据需要执行软件。
内核主要负责一下四种功能:
内核不仅管理服务器上的可用物理内存,还可以创建和管理虚拟内存(既实际并不存在的内存)。
内核通过硬盘上的储存空间来实现虚拟内存,这块区域称为交换空间(swap space)。内核不断地在交换空间和实际的物理内存之间反复交换虚拟内存中的内容。这使得系统以为它拥有比物理内存更多的可用内存。
Linux 操作系统将运行中的程序称为进程。进程可以前台运行,也可以后台运行。内核控制着Linux系统如何管理运行在系统上的所有进程。
内核创建了第一个进程(称为init进程)来启动系统上所有其他进程。当内核启动时,它会将init进程加载到虚拟内存中。内核在启动任何其他进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。Linux操作系统的init采用了运行级。一共有5个启动运行级。
内核的另一职责就是管理硬件设备。任何Linux 系统需要与之通信的设备,都需要在内核代码中加入其驱动程序代码。驱动程序代码相当于应用程序和硬件设备的中间人,允许内核与设备之间交换数据。在Linux内核中有两种方法用于插入设备驱动代码:
Linux系统将硬件设备当成特殊的文件,称为设备文件。设备文件有3种分类:
不同于其他操作系统,Linux内核支持通过不同类型的文件系统从硬盘中读写数据。除了自有的诸多文件系统外,Linux还支持从其他操作系统(比如Microsoft Windows)采用的文件系统中读写数据。Linux内核采用虚拟文件系统(Virtual File System VFS)作为和每个文件系统交互的接口。这为Linux内核通任何类型文件系统通信提供了一个标准接口。当每个文件系统都被挂载和使用时,VFS将信息都缓存在内存中。