linux内核基础


linux内核基础
 
1、linux是怎样构成的?
 
答:linux由用户空间和内核空间构成,其中用户空间由用户应用程序空间和C库组成;内核空间则由侠义的内核(kernel)、系统调用接口及与体系结构相关的代码。
 
2、为什么Linux系统被划分为用户空间与内核空间?
 
答:现代CPU通常实现了不同的工作模式,以|ARM为例,实现了7种工作模式:
      用户模式(usr)、快速中断模式(fiq)、外部中断模式(irq)、管理模式(svc)、系统模式(sys)、数据访问终止模式(abt)、未定义指令异常模式(und)。
 
X86则实现了4个不同级别:Ring0~Ring3;用户代码运行在Ring3,内核代码运行在Ring0;为了是操作系统本身得到充分保护,以防误操作等对linux系统本身造成损害。
 
3、内核空间与用户空间的两种不同的状态,通过系统调用和硬件中断能够完成用户空间到内核空间的转移。
 
4、Linux内核的构成?
 
答:Linux内核主要由5个子系统组成:进程调度、内存管理、虚拟文件系统、网络接口、进程间通信。
 
进程调度(SCHED):控制进程对CPU资源的使用。调度程序采取合适的调度策略,以保证各进程能公平合理的访问CPU,同时保证内核能及时响应硬件操作。
 
内存管理(MM):允许多个进程安全地共享主内存区域。支持虚拟内存,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中。必要时操作系统负责在磁盘和内存空间交换程序块。  硬件无关部分提供了进程映射和逻辑内存的对换;硬件有关部分为内存管理硬件提供了虚拟接口。
 
虚拟文件系统(VFS): 用于支持外部设备的驱动和存储,其隐藏了各种硬件的具体细节,为所有设备提供了统一的借口。
 
网络接口(NET): 提供了对各种网络标准的存取和各种网络硬件的支持,网络接口可分为网络协议和网络驱动程序。
 
处于中心位置的进程调度,因为每个子系统都需要依靠进程调度程序来挂起或恢复进程。
 
进程调度与内存管理之间相互依赖,在多道程序环境下,程序要运行必须为之创建进程,而创建进程的第一件事情就是将程序和数据装入内存。
 
进程间通信与内存的关系:进程间通信子系统要依赖内存管理支持共享内存通信机制,可以存取共同的内存区域。
 
虚拟文件系统与网络接口之间的关系:虚拟文件系统利用网络接口支持网络文件系统(NFS),也利用内存管理支持RAMDISK设备。
 
内存管理与虚拟文件系统之间的关系:内存管理利用虚拟文件系统支持交换,交换进程定期由调度程序调度,这也是内存管理依赖于进程调度的唯一原因。
 

相关内容

    暂无相关文章