欢迎光临散文网 会员登陆 & 注册

AArch64(ARMv8/9指令集)学习2

2023-03-22 19:52 作者:圣母和正负喜欢没办法  | 我要投稿

一、操作系统结构

系统复杂性和操作系统结构:

遵循分而治之,类似三权分立各司其职模块化管理,分层抽象

不要瓦萨号

1> 模块化:文件、进程、内存、网络、驱动

      实现宽进严出原则

2>分层原则:只能在同层和相邻上下层模块之间交互。

宏内核:

宏结构:

图1

但是模块之间没有很强大隔离,BUG会导致系统时延和瘫痪,容易引起连锁反应。

定制化也走不长,比如版本维护问题,总要有人维护,时间金钱成本比较高。

功能安全比较差,信息安全问题。

图2

同样也无法满足实时性场所。

微内核:MacOS--苹果  MINIX--教学,QNX--黑莓,车辆、航天实时领域

把不变的功能放入内核,形成不变的内核。

图3

两种不同内核结构:

图4

微内核比较复杂,但减少了文件或磁盘的BUG和安全问题。

图5

Mach微内核:任务资源分配基本单元,线程执行基本单元。

                       对应用程序提供调度接口,可以实现自定义调度策略。

IPC:通过port接口通信。

虚拟内存:允许用户态代码,直接实现内存换页,!!!!应用程序可以一定程度上管理自己的虚拟内存。

系统调用重定向:

图6

设备支持:

图7

用户态多进程:

图8

但性能慢(IPC代码冗余)

L3/4微内核的诞生:提升了IPC。

图9

seL4微内核 : IPC机制基于端点。

图10

只有8700行C,没有缓冲区溢出,空指针错误。

他对C语言进行了限制:不适用函数指针、不适用union、使用全局变量。

QNX微内核:流行

航天、医疗、车辆、机器人

Fuchsia----下一代操作系统

MINIX----教学微内核

图11 minix教父

更安全、更健壮,性能差、生态差。

混合内核:结合宏微

外核:Exokernel 实现更少的内核代码,把其他功能放到库和应用程序放在一起,叫LibOS。

图12

抽象是浪费时间的,所以只有应用知道要不要用。

内核只负责资源的隔离和保护,不负责资源的管理。

保护功能:

图13

一旦计算资源和应用绑定,应用就完全独占对资源的访问。

可用性:允许某个LibOS访问计算机资源(内存)

隔离性:多个应用访问必须保证彼此之间隔离

图14

定制:可提升8倍

图15

Unikernel:

虚拟机看成应用(LibOS),虚拟机下面宿主操作系统看成Exokernel

图16

调试周期短、实时高、难度大、生态差

多核:Multikernel 多核异构

图17

Barrelfish操作系统:10000行C、500行汇编

智能网卡、智能SSD

图18
图19

用户态文件系统可能会成为主流。大家记得更新认知。


AArch64(ARMv8/9指令集)学习2的评论 (共 条)

分享到微博请遵守国家法律