linux内核架构

来源:互联网 发布:最快的开方算法 编辑:程序博客网 时间:2024/06/17 02:36

process management:这个区域负责创建和终止进程和内核的其他活动(软件中断,微线程,等等)。此外,这是进程间通信的地方(信号、管道等)。调度器是流程管理的主要组成部分。它处理所有活跃,等待,阻塞进程和照顾,所有的应用程序进程获得他们应得的处理器的计算时间。

memory management:电脑的内存是最重要的资源之一。计算机的性能强烈依赖于主存配备。此外,内存管理负责允许每个进程的内存部分,必须防止访问其他进程。

file systems:在UNIX中,文件系统假定一个中心角色。与其他操作系统(如。Windows NT),几乎所有都要处理文件系统接口。例如,设备驱动程序可以当做成文件,和Proc文件系统(见2.8节)允许您访问内核中的数据和参数。这两个功能可以非常有效地和优雅,所以他们通常用于调试。

device drivers:在每一个操作系统中,设备驱动程序抽象底层硬件的,他们允许你访问这个硬件。模块化概念Linux 2.4节中,我们将介绍提供了一种方法来添加或删除设备驱动程序在运行操作,尽管其单片内核。

network:所有网络操作必须由操作系统管理,因为某些网络操作不能被分配到一个特定的过程,如处理传入的数据包。传入的数据包异步事件。他们必须收集、识别和转发过程之前可以处理它们。这就是为什么内核负责数据包的处理程序和网络接口。


在内核中,定义的接口是用来促进新功能的设计。例如,有一个虚拟文件系统接口,可以用来添加新文件系统。十多个支持文件系统的可用性清楚地表明,该接口是一个好的设计决定的Linux开发人员,因为没有其他操作系统提供了这样一个大的供应支持的文件系统。Linux网络体系结构还包括许多接口支持动态增强财富的协议和网络驱动程序。


2.2 Activities in the Linux Kernel

Linux是一个多任务系统。这意味着几个应用程序进程可以活跃,同时,多个应用程序可以使用。在多处理器系统中,一直以来支持内核版本2.0,甚至多个应用程序或他们的流程可以并行处理。然而,这一过程并不是唯一形式的活动可以在Linux内核中执行。

2.2.1 Processes and System Calls

进程通常是活动开始运行特定的应用程序,一旦应用程序完成了,进程就会终止。创建、控制和破坏过程的任务由一个操作系统的内核。进程操作只在用户地址空间(即。在无保护模式)的处理器,他们只能访问内存部分分配给他们。试图访问内存的其他进程或内核地址空间会导致一个异常,这必须由内核处理。

然而,当一个进程要访问设备或使用一个操作系统内核的功能,它必须使用系统调用来做到这一点。一个系统调用导致处理器切换到保护模式,和访问到内核地址空间是一个系统调用的函数。所有设备和内存部分可以访问在保护模式,但只有与内核的方法。

进程的工作和系统调用可以打断了其他活动。在这种情况下,他们的当前状态(内容的CPU寄存器,MMU寄存器,等等)保存,然后恢复中断流程或系统调用时继续工作。流程和系统调用可以停止自愿或非自愿的。在第一种情况下,他们自愿放弃处理示例中,当他们等待系统资源(外部设备、信号量等)和睡觉,直到资源可用。自愿转让的处理是由中断,告诉内核,一个重要的动作已经发生,应该处理一个内核。这可能是一个通知关于以前忙碌的资源可用性。

除了正常的流程和过程在一个系统调用,我们进一步区分形式的活动在Linux内核中。这些形式的活动是决定性的重要的Linux网络体系结构,因为网络的功能是在内核中处理。我们将详细说明下列形式的活动在接下来的部分中,我们将主要讨论他们的任务在Linux网络架

构:

  • Kernel threads;

  • interrupts (hardware IRQs);

  • software interrupts (soft IRQs);

  • tasklets(子任务);

  • bottom halves.



0 0