Linux系统理解+Linux内核理解

一、写在前面(理解)

1、理解操作系统

操作系统:向下控制硬件,向下提供接口
(是否有mmc内存映射机制,判断是否可以使用操作系统)

2、ARM处理器类型

  • 微处理器:具有较高的性能。,用于嵌入式,带操作系统
  • 微控制器:一般用于单片机,芯片内部集成ROM、RAM、总线、定时/计数器、I/O、A/D等各种必要功能和外设。
  • DSP:硬件结构和指令进行过特殊设计,非常擅长高速实现各种数字信号处理运算(如数字滤波、频谱分析等)

3、ARM架构

  • Cortex-A:用于高性能应用,主要支持分页内存管理单元MMU**,linux需要MMU的支持才能运行。**
  • Cortex-R:侧重于实时性应用,如汽车系统。
  • Cortex-M:侧重于微控制器,常用的STM32就是此内核。

二、Linux系统架构

2

1、系统调用

  • 为了方便调用内核,Linux将内核的功能接口制作成系统调用(system call)。

2、库函数

  • 系统调用提供的功能非常基础,所以使用起来很麻烦。一个简单的给变量分配内存空间的操作,就需要动用多个系统调用。Linux定义一些库函数(library routine)来将系统调用组合成某些常用的功能。 上面的分配内存的操作,可以定义成一个库函数,比如常用的malloc。

3、shell壳

  • shell(壳)是一个特殊的应用,也经常被称为命令行 。可以理解为是一个命令解释器
  • 一个shell对应一个终端 (terminal)。 终端是一个硬件设备,用来输入并显示输出。如今可以在shell中显示输入与输出。

三、Linux内核

1、Linux内核结构

1

1

如图,字符设备与块设备都被映射到Linux文件系统的文件和目录。
应用程序可通过套接字访问网络设备,并用使用以下两种方式访问字符设备与块设备:

  1. 系统API 如 open() ,write() , read() , close()等。
  2. 调用C标准库函数fopen() , fwrite() , fread() ,fclose()等。不过C库函数最终也是调用系统API实现的。(缓冲区)

2、内核组成(抽象结构)

1

1

2.1、进程调度(进程的五种状态)(SCHED)

  • 执行态
  • 就绪态
  • 睡眠态(深度睡眠、浅度睡眠)(等待)
  • 暂停态
  • 僵死态

2.2、内存管理(MM)

进程内存分配:3G的用户空,1G大小的内核空间
1

2.3、虚拟文件系统(VFS)

虚拟文件系统为上层的应用程序提供了统一的调用接口
对下则负责调用具体底层文件系统或设备驱动中实现的file_operations结构体中的成员函数
2

2.4、网络接口(NET)

网络接口提供了对各种网络标准的存取和各种网络硬件的支持。Linux网络接口分为

  • 网络协议 :负责实现每一种可能的网络传输协议。
  • 网络驱动程序:负责与硬件设备通信

2.5、进程间通信(IPC)

  • 无名管道
  • 有名管道
  • 信号
  • 消息队列
  • 共享内存
  • 信号量
  • 套接字

3、内核空间与用户空间

3.1、写在前面

现代的CPU其内部会区分不同的工作模式,以此来区分不同级别和权限的操作。

例如:ARM的八种工作模式
 	- User 非特权模式,一般在执行上层的应用程序时ARM处于该模式
 	- FIQ (快速中断模式)当一个高优先级中断产生后ARM将进入这种模式
 	- IRQ (外部中断模式)当一个低优先级中断产生后ARM将进入这种模式
 	- SVC (超级用户模式)当复位或执行软中断指令swi后ARM将进入这种模式
 	- Abort (中止模式)当产生存取异常时ARM将进入这种模式
 	- Undef (指令未定义模式)当执行未定义的指令时ARM将进入这种模式
 	- System (系统模式)使用和User模式相同寄存器集的特权模式
 	- Monitor (监控模式)为了安全而扩展出的用于执行安全监控代码的模式

3.2、理解内核空间与用户空间

在ARM环境中,**Linux系统充分利用CPU的硬件特性,实现了两级的操作模式,用户(usr)模式和管理模式(svc)。**与此对应,在Linux系统中具有两种空间:

  • **内核空间: 是管理模式,可以进行任何操作,可以对底层硬件进行直接访问。**等
  • 用户空间:用户代码运行的模式,被禁止对硬件进行直接访问和对内存的的未授权访问。实现上通过swi软中断从用户模式陷入管理模式。等
  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好好睡觉好好吃饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值