美文网首页
linux内核空间和用户空间 2020-03-22(未经允许,禁

linux内核空间和用户空间 2020-03-22(未经允许,禁

作者: 9_SooHyun | 来源:发表于2020-03-22 22:08 被阅读0次

准备知识

虚拟地址空间

对32位cpu来说,它逻辑上可访问的地址空间是2的32次方Byte,也就是4GB
对64位cpu来说,它逻辑上可访问的地址空间是2的64次方Byte,4G*4GB=16GG=16M*TB

但是,因为其他硬件的限制,cpu并没有那么多的物理地址空间可以访问。以64位cpu为例,家用内存条就8g16g的,或者连接cpu的地址总线长度只有32位只能访问4个g

cpu理论上能访问的地址空间是虚拟地址空间,实际能访问的ram地址空间是物理地址空间。虚拟地址通过MMU翻译成物理地址空间

每个进程都有自己【独立】的虚拟地址空间,示意图如图:


linux虚拟内存空间(图片来源于网络)

共享内存

当不同进程所在的虚拟地址空间都映射到同一块物理地址空间上,就实现了共享内存,就这么简单。这是linux下进程间通信的最快方式,因为这块共享内存属于用户空间而无需受到内核空间的管理。如图,进程1/2的虚拟空间存在共同指向,指向了同一块Ram内存区

linux进程共享内存(图片来源于网络)
其他方式下如管道/消息队列都在内核空间,应用程序A需要将自己的数据从用户空间的内存区域copy到内核空间的内存区域,然后应用程序B再从内核空间的内存区域将这份数据copy到自己用户空间的内存区域中,非常麻烦

好了,现在引出了用户空间内核空间的问题

用户空间和内核空间

为了让系统的数据和用户的数据互不干扰,保证系统的稳定性,用户进程不能直接操作内核。于是操作系统将虚拟地址空间划分为两部分,内核空间+用户空间。这样即使你用户的程序崩溃了,我内核还是稳稳的,操作系统还是正常工作的

内核空间 + 用户空间 = 虚拟地址空间

32位的linux操作系统的虚拟地址空间为4G,最高1G(从虚拟地址0xC0000000到0xFFFFFFFF)划供内核使用,内核空间可以执行任意命令,调用系统一切资源;较低的3G(从虚拟地址0x00000000到0xBFFFFFFF),划供各个进程使用,为用户空间

进程的内核态与用户态:
(1)当一个程序执行了系统调用或者触发某个异常(软中断),此时就会陷入内核空间(内核态)。此时处理器处于最高特权级0级。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈
(2)当进程在执行用户自己的代码时,处于用户运行态(用户态)。处理器在特权级最低的(3级)用户代码中运行

其他待后续补充

相关文章

  • linux内核空间和用户空间 2020-03-22(未经允许,禁

    准备知识 虚拟地址空间 对32位cpu来说,它逻辑上可访问的地址空间是2的32次方Byte,也就是4GB对64位c...

  • Binder(一)Linux进程通信

    用户空间、内核空间 Linux分为内核进程和用户进程:1、内核进程共享一块内存空间,称为内核空间。2、内核进程不能...

  • 从Kafka到NIO

    在谈NIO之前,简单回顾下内核态和用户态 内核空间是Linux内核运行的空间,而用户空间是用户程序的运行空间,为了...

  • 从Kafka到NIO

    [TOC]在谈NIO之前,简单回顾下内核态和用户态 内核空间是Linux内核运行的空间,而用户空间是用户程序的运行...

  • Binder机制小结

    by hzwusibo 20190504 1.Linux内核基础知识: (1)用户空间/内核空间: 用户空间指的是...

  • 专题3-嵌入式linux内核制作

    一、linux体系结构 linux由内核空间与用户空间两部分组成,用户空间主要是应用程序和C库,内核空间包含了像系...

  • JavaNIO-MappedByteBuffer

    内核空间与用户空间 Kernel space 是 Linux 内核的运行空间,User space 是用户程序的运...

  • Binder原理

    Linux进程划分 用户空间内核空间用户空间是不共享的空间,内核空间是共享的空间,所以两个用户空间传递数据就需要内...

  • Linux学习之用户空间和内核控件ing

    Kernel空间是Linux内核的运行空间,User空间是用户程序的运行空间,相互隔离。 内核空间可以执行任意命令...

  • netty学习(1)--IO基础

    linux 网络I/O模型 基本概念 内核空间和用户空间 Linux I/O分为两个阶段,即 [x] 内核准备数据...

网友评论

      本文标题:linux内核空间和用户空间 2020-03-22(未经允许,禁

      本文链接:https://www.haomeiwen.com/subject/tbcbyhtx.html