我想了解术语Linux Kernel和各种类型的内核的含义。例如,我想知道Microkernels和Monolithic内核之间有什么区别。请简化这些术语,并提供例子。我听说其他系统,如Windows或Android,也都有内核。那么,内核在所有这些系统中的区别是什么呢?
发布于 2018-09-14 13:11:28
这个词在互联网上被很好地覆盖了!内核是一个术语,意思是the core or the central or the most important part of something。它为操作系统(OS)的所有其他部分提供基本服务。它在操作系统和硬件之间建立了一座桥梁,它有助于内存管理、中断处理、进程管理、设备管理和控制、文件系统和网络。
内核通常与shell相比较,后者是操作系统中与用户命令交互的最外层部分。内核和shell是在Linux的核心编程语言Unix中广泛使用的术语。内核不是基本的输入/输出系统(BIOS),它是存储在计算机电路板内的芯片上的独立程序。有一些类型的内核,如:microkernels和monolithic内核以及hybrid内核。
微内核和单块内核分为两种主要架构:单块内核和微内核。这些类型之间的主要区别是它们所支持的地址空间的数量。微内核在不同的地址空间中委托用户服务和内核服务,而单块内核在相同的地址空间中实现服务。
微内核的所有服务都在内核地址空间中。单块内核更大,因为它在相同的地址空间中同时容纳内核和用户服务。
两者之间的通信协议也不同,单块内核使用更快的系统调用来执行硬件和软件之间的进程。微内核使用消息传递,它将数据包、信号和函数发送到正确的进程。
Microkernels提供了更大的灵活性;为了添加新服务,管理员可以修改用户地址空间。单块内核需要更多的工作,因为管理员必须重建整个内核以支持新服务。
由于它们的孤立性质,如果地址空间中的一个服务失败,微内核将更加安全,并且不会受到影响。单块内核给系统带来了更大的安全风险,因为如果服务失败,整个系统就会关闭。
单块内核不需要像微内核那样多的源代码,这意味着它们不太容易受到bug的影响。
基于微内核的操作系统的例子是Mac OS X, Windows NT, QNX, L4 and HURD。单块内核的例子是那些在Unix and Linux中使用的。
值得注意的是,单片核比微核要老得多,这个想法是在1980年代末S提出的。
是的,每个系统都有自己独特的核心(即内核),它们有不同的方法来处理系统资源和连接软件/硬件。
https://unix.stackexchange.com/questions/469039
复制相似问题