相信接触过Linux的人或多或少都知道内核这个东西,这篇文章就和大家聊一下Linux内核到底是什么东西?
Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。 [1]
Linux最早是由芬兰 Linus Torvalds为尝试在英特尔x86架构上提供自由的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。
Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。
下面为大家详细讲解一下:
一:linux系统如何构成的?
User space:User Applications and GNU C library (glibc)
kernel space:System Call interface, Kernel and Architecture-Dependent Kernel Code。
二:为什么linux系统会划分为User space and Kernel space ?
CPU通常实现了不同的工作模式,以ARM为例,实现了7种工作模式:
用户模式(usr),系统模式(sys),管理模式(svc),中断模式(irq),快速中断模式(fiq),数据访问中止模式(abt),未定义指令模式(und)
X86也实现了4个不同的级别:Ring0–Ring3。 Ring0下,可以执行特权指令,在Ring3则有很多限制。linux系统则利用这一特性,使用了其中两级来分别运行linux内核与应用程序,这样使操作系统本身得到充分的保护。 用户代码运行在Ring3,内核代码运行在Ring0.
内核空间与用户空间是程序执行的两种不同的状态,通过系统调用和硬件中断能够完成从用户控件到内核空间的转移
三:linux内核构架:
System Call Interface(SCI), Process Management(PM), Memory Management(MM), Arch, Virtual File System(VFS), Network Stack, Device Drivers(DD)
1:系统调用接口SCI
SCI层为用户空间空间提供了一套标准的系统调用函数来访问linux内核,搭起了用户空间到内核空间的桥梁。
2:进程管理
进程管理的重点是创建进程(fork, exec), 停止进程(kill, exit), 并控制它们之间的通信(signal或者POSIX机制). 进程管理还包括控制活动进程如何共享CPU,即进程调度。
3:内存管理
内存管理的主要作用是控制多个进程安全地共享内存区域
4:网络协议栈
内核协议栈为linux提供了丰富的网络协议实现。
5:Virtual File System
VFS隐藏各种文件系统的具体细节,为文件操作提供个统一的接口。
6:设备驱动
linux内核中有大量代码都在设备驱动程序中,它们控制特定的硬件设备。
简单来说Linux内核就是由一系列程序组成,包括负责响应中断的中断服务程序、负责管理多个进程从而分享处理器时间的调度程序、负责管理地址空间的内存管理程序、网络、进程间通信的系统服务程序等。
以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!