当前位置: 代码迷 >> 综合 >> 设备驱动开发实验教程(2)_Linux 体系结构
  详细解决方案

设备驱动开发实验教程(2)_Linux 体系结构

热度:73   发布时间:2023-12-21 11:59:14.0

      如下图所示,Linux 体系结构,从大的方面可以分为用户空间(User Space)和内核空间(Kernel Space)。

      用户空间中包含了 C 库,用户的应用程序。在某些体系结构图中还包含了 shell,当然 shell脚本也是 Linux 体系中不可缺少的一部分。
      内核空间包括硬件平台、平台依赖代码、内核、系统调用接口。

      在任何一个现代操作系统中,都是分层的。为什么需要分层呢?
     从程序员的角度分析,将 linux 底层和和应用分开,将 linux 底层和应用分开,做应用的做应用,做底层的做底层,各干各的。经济学的基本原理是,分工产生效率。
      从安全性的角度分析,是为了保护内核。现代 CPU 通常都实现了不同的工作模式。

      以 ARM 为例:ARM 实现了 7 种工作模式,不同模式下 CPU 可以执行的指令或者访问的寄存器不同: (1)用户模式 usr (2)系统模式 sys(3)管理模式 svc(4)快速中断 fiq(5)外部中断irq(6)数据访问终止 abt(7)未定义指令异常。如果任何一个上层应用都可以调用都可以调用寄存器&#x