zoukankan      html  css  js  c++  java
  • 内核开发基础1——Linux内核简介

    Linux内核简介

    一、Linux体系结构

    从上图得知,Linux由用户空间内核空间两部分组成。
    为什么Linux系统会被划分为用户空间与内核空间?

    现代CPU通常实现了不同的工作模式,以ARM为例,实现了7种工作模式:用户模式(usr)、快速中断(fiq)、外部中断(irq)、管理模式(svc)、数据访问中止(abt)、系统模式(sys)、未定义指令异常(und)

    X86也实现了4个不同的级别:Ring0—Ring3。Ring0下,可以执行特权指令,可以访问IO设备等,在Ring3则有很多限制。
    Linux系统利用了CPU的这一特性,使用了其中的两级来分别运行Linux内核与应用程序,这样使操作系统本身得到充分的保护。例如:如果使用X86,用户代码运行在Ring3,内核代码运行在Ring0。

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

    二、Linux内核架构

    1. 系统调用接口

    SCI 层为用户空间提供了一套标准的系统调用函数来访问Linux内核,搭起了用户空间到内核空间的桥梁。

    2. 进程管理
    进程管理的重点是创建进程(fork、exec),停止进程(kill、exit),并控制它们之间的通信(signal 或者 POSIX 机制)。进程管理还包括控制活动进程如何共享CPU,即进程调度。

    3. 内存管理
    内存管理的主要作用是控制多个进程安全地共享内存区域。

    4. 网络协议栈

    内核协议栈为Linux提供了丰富的网络协议实现。

    5. 虚拟文件系统(VFS)
    VFS隐藏各种文件系统的具体细节,为文件操作提供统一的接口。

    6. 设备驱动
    Linux 内核中有大量代码都在设备驱动程序中,它们控制特定的硬件设备。

    7. 体系结构相关代码Architecture-depended code

    与CPU密切相关的代码,如ARM、x86,是不同的微处理器可以使用同一套代码。

  • 相关阅读:
    深入学习webpack(四)
    深入学习webpack(三)
    深入学习webpack(二)
    深入学习webpack(一)
    (转载)路径中 斜杠/和反斜杠 的区别
    jquery中beforeSend和complete的使用 --- 提高用户体验&&设置请求头
    好的用户界面-界面设计的一些技巧
    使用vue Devtools
    vue脚手架 && 实例
    表单(中)-EasyUI Combogrid 组合网格、EasyUI Numberbox 数字框、EasyUI Datebox 日期框、EasyUI Datetimebox 日期时间框、EasyUI Calendar 日历
  • 原文地址:https://www.cnblogs.com/laojie4321/p/2441332.html
Copyright © 2011-2022 走看看