Linux内核简介

说明:只供学习交流

一,Linux体系结构

如果有人问你,Linux系统是如何构成的?只要把下面这幅图说给他听,就OK

从图上我们可以知道,Linux系统是由用户空间内核空间两部分组成,之所以将Linux系统划分为用户空间和内核空间很大一部分原因是为了安全着想。

Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4GLinux内核将这4G的空间划分为两部分。最高的1G0xC0000000~0xFFFFFFFF),供内核使用,称为“内核空间”。而将较低的3G字节(0x00000000~0xBFFFFFFFF),供各进程使用,称为“用户空间”。因为各进程可以通过系统调用进入内核,因此Linux内核为系统内的所以进程共享。从进程的角度来看,每个进程可以拥有4G的虚拟空间。

Linux使用两级保护机制(X86也实现了4个不同的级别:Ring0Ring3Ring0下,可以执行特权指令,可以访问IO设备等,在Ring3则有很多限制):0级供内核使用,3级供用户程序使用。

用户空间包含了用户应用程序和C库。内核空间从上到下分别是:系统调用接口,内核,体系结构相关的代码。在到下面就是硬件了。

二,用户空间进入内核空间的方法

内核空间与用户空间是程序执行的两种不同状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移。

Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。

三,Linux内核是如何构成的?

当有人问我们Linux系统是如何构成的,我们用上面那幅图,但当有人问我们Linux内核是如何构成的呢?呵呵,我们看下面这幅图,千万不要搞反了哦

系统调用接口(system call interface:这个简单,不说了,没它用户空间的进程可进不来哦。

进程管理(Process Management:主要的工作有进程的创建与销毁,进程间通信,进程调度等。

内存管理(Memory Management:主要工作是内存的分配,回收,映射等。

体系相关(Arch:各个与体系相关的代码都放在这里,比如内存管理与体系结构相关的代码,进程管理与体系结构相关的代码等等,都把他放在这里,那么其他的就是与体系结构无关的代码,移植起来是不是方便多了呢?现在你知道Linux的伟大了吧。

设备驱动(Device Driver:略

协议栈(Network StackLinux为什么这么受欢迎,就是因为它支持丰富的网络协议,不仅丰富而且还相当的稳定。像什么TCPUDPICMP等等都在这里实现。

虚拟文件系统(Virtual File System:它的作用只是隐藏各种文件系统的具体细节,为文件操作提供统一的操作接口,看下面这幅图:

我们在编程的时候,比如打开一个文件,我们关心了它在哪个文件系统上没有,毫无疑问我们没有,我们都是使用open系统调用,无论它是在Ext2还是FAT上,这就是虚拟文件系统的作用。如果没有虚拟文件系统这层抽象,那么一个文件在Ext2上我们打开它用open,那么把它放到FAT上估计得用open1了,再放到NFS上估计得用open2了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值