内核
编辑内核是计算机操作系统核心的计算机程序,通常可以完全控制系统中的所有内容。 它是操作系统代码的一部分,始终驻留在内存中并促进硬件和软件组件之间的交互。 完整的内核通过设备驱动程序控制所有硬件资源(例如 I/O、内存、密码),仲裁涉及这些资源的进程之间的冲突,并优化公共资源的利用,例如 中央处理器 缓存使用、文件系统和网络套接字。 在大多数系统上,内核是启动时最先加载的程序之一(在引导加载程序之后)。 它处理其余的启动以及内存、xxx设备和来自软件的输入/输出 (I/O) 请求,将它们转换为中央处理器的数据处理指令。
内核的关键代码通常被加载到一个单独的内存区域,该区域受到保护,不会被应用程序软件或操作系统的其他不太重要的部分访问。 内核在这个受保护的内核空间中执行其任务,例如运行进程、管理硬盘等硬件设备以及处理中断。 相比之下,浏览器、文字处理器或音频或视频播放器等应用程序使用单独的内存区域,即用户空间。 这种分离可以防止用户数据和内核数据相互干扰并导致不稳定和缓慢,也可以防止出现故障的应用程序影响其他应用程序或使整个操作系统崩溃。 即使在内核包含在应用程序地址空间中的系统中,内存保护也用于防止未经授权的应用程序修改内核。
内核的接口是一个低级抽象层。 当进程向内核请求服务时,它必须调用系统调用,通常是通过包装函数。
有不同的内核架构设计。 整体内核完全在单个地址空间中运行,CPU 在管理模式下执行,主要是为了提高速度。 微内核在用户空间中运行大部分但不是所有的服务,就像用户进程一样,主要是为了弹性和模块化。 MINIX 3 是微内核设计的一个著名例子。 相反,Linux 内核是整体式的,尽管它也是模块化的,因为它可以在运行时插入和删除可加载的内核模块。
计算机系统的这个中央组件负责执行程序。 内核负责随时决定将许多正在运行的程序中的哪些分配给处理器。
随机存取存储器
编辑随机存取存储器 (RAM) 用于存储程序指令和数据。 通常,两者都需要存在于内存中才能执行程序。 通常有多个程序需要访问内存,经常需要比计算机可用的内存更多的内存。 内核负责决定每个进程可以使用哪些内存,并决定在没有足够内存可用时做什么。
输入/输出设备
编辑I/O 设备包括键盘、鼠标、磁盘驱动器、打印机、USB 设备、网络适配器和显示设备等xxx设备。 内核将来自应用程序的请求分配给适当的设备以执行 I/O,并提供方便的方法来使用该设备。
资源管理
编辑资源管理中必要的关键方面是定义执行域(地址空间)和用于调解域内资源访问的保护机制。 内核还提供同步和进程间通信 (IPC) 的方法。 这些实现可能位于内核本身,或者内核也可以依赖于它正在运行的其他进程。 尽管内核必须提供 IPC 以提供对彼此提供的设施的访问,但内核还必须为运行中的程序提供一种方法来请求访问这些设施。
内存管理
编辑内核拥有对系统内存的完全访问权限,并且必须允许进程在需要时安全地访问该内存。 通常这样做的xxx步是虚拟寻址,通常通过分页和/或分段来实现。 虚拟寻址允许内核使给定的物理地址看起来是另一个地址,即虚拟地址。 不同进程的虚拟地址空间可能不同; 一个进程在特定(虚拟)地址访问的内存可能与另一个进程在同一地址访问的内存不同。 这允许每个程序都表现得好像它是xxx一个(除了内核)在运行,从而防止应用程序相互崩溃。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/196287/