目录

  • 区分内核空间与用户空间的意义
  • 内核态与用户态
  • Linux系统结构图

在32位操作系统下,虚拟地址空间为4G,也就是说一个进程的最大的地址空间为4G。操作系统的核心是内核,它独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证内核的安全,现在的操作系统一般都强制用户进程不能直接操作内核。具体的实现方式基本都是由操作系统将虚拟地址空间划分为两部分,一部分为内核空间,另一部分为用户空间。对Linux操作系统而言,最高的 1G字节由内核使用。低3G字节由各个进程使用。
换句话说,最高1G内核空间是被所有进程共享,剩余3G才归进程自己使用。

区分内核空间与用户空间的意义

CPU的所有指令中,有些指令是非常危险的,如果错用,将导致系统崩溃,比如清内存、设置时钟等。如果允许所有的程序都可以使用这些指令,那么系统崩溃的概率将大大增加。所以,CPU将指令分为特权指令和非特权指令,对于那些危险的指令,只允许操作系统及其相关模块使用,普通应用程序只能使用那些不会造成灾难的指令。

内核态与用户态

Linux系统只使用了Ring0和Ring3两个运行级别。当进程运行在 Ring3 级别时被称为运行在用户态,而运行在 Ring0 级别时被称为运行在内核态。运行在Ring3级别时被称为运行在用户态,运行在Ring0级别时被称为运行在内核态。
在内核态下,进程运行在内核地址空间中,此时 CPU 可以执行任何指令。运行的代码也不受任何的限制,可以自由地访问任何有效地址,也可以直接进行端口的访问。
在用户态下,进程运行在用户地址空间中,被执行的代码要受到CPU的检查,它们只能访问映射其地址空间的页表项中规定的在用户态下可访问页面的虚拟地址,且只能对任务状态段中I/O许可位图中规定的可访问端口进行直接访问。

我们可以将每个处理器在任何指定时间点上的活动概括为下列三者之一:

  • 运行于用户空间,执行用户进程。
  • 运行于内核空间,处于进程上下文,代表某个特定的进程执行。
  • 运行于内核空间,处于中断上下文(保证中断服务程序能够在第一时间响应和处理中断请求,然后快速地退出),与任何进程无关,处理某个特定的中断。
    用户态到内核态的转换概况来说有三种方式分别为系统调用、软中断和硬件中断。

Linux系统结构图

从内核空间和用户空间的角度看整个Linux系统的结构,从下往上依次为:硬件 -> 内核空间 -> 用户空间

[Linux]基本体系结构相关推荐

  1. 深入 Linux PAM 体系结构

    深入 Linux PAM 体系结构<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&qu ...

  2. Linux 的体系结构结构

    Linux 的体系结构 从大的方面讲,Linux 体系结构可以分为两块: 用户空间(User Space) :用户空间又包括用户的应用程序(User Applications).C 库(C Libra ...

  3. linux内核体系结构详解

    关于linux内核体系结构 说到操作系统,我们都会知道windows操作系统,linux操作系统,苹果的iOS操作系统,以前很火的塞班操作系统,还有最近消费类电子很火的Android操作系统.一个完整 ...

  4. 深入Linux PAM体系结构

    本文阐述了 Linux-PAM 的概念,同时还与读者一道分析了 Linux-PAM 的体系结构,作者希望籍此以加深读者对 Linux-PAM 的理解,以便对其有更深层的把握. 一.什么是Linux-P ...

  5. linux 在某个core上的中断 affinity c语言函数,Linux中断处理体系结构

    各种的异常的C处理函数可以分为5类,他们分布在不同的文件中. 1.在arch/arm/kernel/trapsc.c中 未定义指令异常,总入口函数为do_undefinstr. 2.在arch/arm ...

  6. linux文件系统体系结构 和 虚拟文件系统(VFS)

    图 1. Linux 文件系统组件的体系结构 用户空间包含一些应用程序(例如,文件系统的使用者)和 GNU C 库(glibc),它们为文件系统调用(打开.读取.写和关闭)提供用户接口.系统调用接口的 ...

  7. linux查看内存_【001】一文带你全面掌握Linux系统体系结构

    总第77篇 本篇将全面梳理Linux系统的体系结构,相信你阅读完本文定能对Linux系统有一个更深刻地认识和更全面的掌握. Linux系统一般有四个主要部分:内核.shell.文件系统.应用程序. 前 ...

  8. linux oracle pam,Linux技术之深入Linux PAM 体系结构(一)

    本文阐述了 Linux-PAM 的概念,同时还与读者一道分析了 Linux-PAM 的体系结构,作者希望籍此以加深读者对 Linux-PAM 的理解,以便对其有更深层的把握. 一.什么是Linux-P ...

  9. Linux文件系统体系结构

    文件系统体系结构 从两个角度考察Linux文件系统层的体系结构,首先是高层体系结构的角度.然后进行深层次讨论,介绍实现文件系统层的主要结构. 高层体系结构 尽管大多数文件系统代码在内核中(后面讨论的用 ...

  10. Linux的体系结构

    文章目录 Linux体系结构 环境配置 常用 查看系统调用 公用函数库 Shell 当前shell版本 本地shell版本 切换任意路径的版本 查询目录ls 查询文件内容cat.more.less 查 ...

最新文章

  1. mysql数据迁移到teradata_Mysql迁移到达梦数据库-Mysql到DM的应用迁移-给自增列赋值-GroupBy语法不兼容...
  2. Centos8 搭建linux集群
  3. spring 数据库 链接db2_实例讲解使用Spring通过JPA连接到Db2
  4. 什么是互联网保险平台?
  5. laravel 使用极验验证码
  6. 08.CXF发布WebService(Java项目)
  7. tp3.2 执行原生sql
  8. 安卓实现百度地图定位
  9. 计算机网络谢希仁课后答案第七版答案完整版
  10. [SQL]数据分析SQL笔试题
  11. 如何将多个txt文件合并成一个文本?
  12. 挂yy协议的服务器,yy协议挂机工具免费版
  13. 訾博 2021年1月29日 周五 晴 致敬“最可爱的人”
  14. Microsoft Office word 2019教程 - word中的excel表格随着excel表格的变化而变化
  15. 大数据 - 大数据开发技术课程总结(未完)
  16. 【有奖众测】快服务开发者俱乐部第一期来咯!
  17. 这么多编程语言,初学者选择哪个比较好?
  18. 如何自学?Android开发学习路线指南,最详资料解析
  19. 阿里大鱼短信平台使用(Java)
  20. MATLAB牛顿法求解非线性方程组2

热门文章

  1. 【仿真建模】第一课:AnyLogic入门基础教程 - 行人库入门讲解
  2. 自然语言处理某个pipeline
  3. LabVIEW编程LabVIEW控制NI 9481例程与相关资料
  4. sqlserver 取余和取整
  5. Tomcat架构详解
  6. 107_Cmder的安装使用
  7. resure挽救笔记本系统和一些相关的操作记录
  8. 按键精灵2014如何插入循环语句--win10专业版
  9. 上市公司融资需要哪些条件
  10. 计算机策略论文,中职计算机有效教学策略论文