最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

AArch64(ARMv8/9指令集)學(xué)習(xí)

2023-03-22 11:43 作者:圣母和正負喜歡沒辦法  | 我要投稿

一、概述

貝爾實驗室-----Unix

施樂公司------GUI

Linux-----開源系統(tǒng)

LWIP-----低功耗、遠距離,優(yōu)于NB

5G、AI、loT-----誕生Android、Freertos、VXW

CPU、GPU、NPU、TPU、IPU----誕生OpenCL、OpenCV、OpenGL、OpenAL

Robot系統(tǒng)-----擁有多個系統(tǒng)共同運行,異構(gòu)多核。

Minix作用于不同芯片之間的芯片級系統(tǒng)。

SOC

二、定義

libc----屬于應(yīng)用部分、也屬于操作系統(tǒng)

文件系統(tǒng):支持運行在用戶態(tài)

Windows:NTFS

Macos:AppleFS

Linux:ext4

U盤&移動硬盤:FAT

問題:libc屬不屬于操作系統(tǒng)?

Linux: 應(yīng)用程序可以不用libc實現(xiàn)printf,可以自己實現(xiàn),或調(diào)用別的庫。

Windows:也有l(wèi)ibc實現(xiàn),不屬于特定操作系統(tǒng)

Android:其中有一套運行在用戶態(tài)的框架,管理用戶,提供服務(wù),屬于操作系統(tǒng)。

特例:微信,對于HTML&JavaScript寫的小程序提供很多接口,并且管理這些小程序,所以微信就是操作系統(tǒng)。比如IOS的APP Clips。

即:操作系統(tǒng)沒有明確定義。

三、架構(gòu)

1?蘋果

MAC OS BIG SUR? 使用Rosetta 2技術(shù)將X86-64指令轉(zhuǎn)換成ARM64指令,支持兩種指令。

現(xiàn)在架構(gòu)

2 微內(nèi)核

ChCore:

micro-core

用戶態(tài):一部分是用戶進程?

? ? ? ? ? ? ? 一部分是用戶進程服務(wù)(文件系統(tǒng)、驅(qū)動、用戶態(tài)調(diào)度等)

IPC接口提供用戶態(tài)系統(tǒng)服務(wù)和用戶態(tài)程序通信

ChCore記錄用戶用戶態(tài)進程持有能力Cap(用戶物理資源、系統(tǒng)服務(wù)調(diào)用),cap可以限制用戶態(tài)程序權(quán)力,預(yù)防異常和內(nèi)核bug。

3 運行環(huán)境(底層環(huán)境)

ARM平臺---AArch64體系結(jié)構(gòu)

5G、基站、筆記本、服務(wù)器

ARMv8:支持64位指令集、自旋鎖優(yōu)化、兼容A32、T32、T16


1> ISA:執(zhí)行模式、指令集、特權(quán)級、安全擴展、性能加速擴展

啟動

精簡指令集:固定長度

RISC

特權(quán)級:

用戶、內(nèi)核、虛擬級監(jiān)控器、安全監(jiān)控器

寄存器:x

圖1
圖2

狀態(tài)寄存器:

圖3

總結(jié):

2> 中斷和異常

鍵盤和外設(shè)具有緩沖區(qū),會先輸入到緩沖區(qū),通過輪詢、中斷來判別。

圖4

現(xiàn)代采取方式:高速設(shè)備用輪詢和中斷結(jié)合。

具體方式:網(wǎng)卡接受到包,先拒絕這個包,然后發(fā)一個中斷,OS處理完中斷后,切換成輪詢模式,把后面的包全接收,再切換成中斷模式,等待下一個中斷,如此反復(fù)。

顯示器顯示:

操縱系統(tǒng)將顯示的內(nèi)容放入顯存,顯示器以一定頻率掃描顯存,如30Hz、60Hz、144Hz即每秒鐘掃描的次數(shù),將內(nèi)容顯示出來。


圖5

中斷:外部硬件設(shè)備產(chǎn)生,異步操作。

異常:程序產(chǎn)生,如System Call,同步操作。

不同點:異常是CPU內(nèi)部,執(zhí)行的是特定指令來完成用戶態(tài)到內(nèi)核態(tài)的主動轉(zhuǎn)換。

? ? ? ? ? ? ? CPU無法預(yù)測中斷發(fā)生。

圖6

中斷&異常處理流程:

都會使用handler來處理。

比如發(fā)生除0、缺頁、設(shè)備中斷

當發(fā)生異常--->CPU會在特定寄存器中設(shè)置異常原因--->操作系統(tǒng)設(shè)置異常向量表,為每一種異常設(shè)置一種handler函數(shù)--->當發(fā)生異常后,會保存上下文PC、PSTATE、棧指針--->然后跳轉(zhuǎn)到相應(yīng)處理函數(shù)處理異常--->處理完畢后調(diào)用Exception Return(圖7)--->完成

圖7

ChCore異常向量表:

圖8

.align---表示地址對齊,每一個表項都是128字節(jié)。

具體處理過程1:

圖9

具體實現(xiàn)過程2:

圖10

問題:

圖11
圖12

3> SVC(CPU執(zhí)行的特殊指令)

圖13

SVC---AArch64

INT/SYSENTER/SYSCALL----X86

內(nèi)核中會有表,記錄系統(tǒng)調(diào)用號和系統(tǒng)調(diào)用函數(shù)之間對應(yīng)關(guān)系。

圖14

ChCore:

圖15
圖16

圖中是觸發(fā)了同步異常:

圖17

系統(tǒng)安全&調(diào)用

圖18

指針問題:

圖19
圖20

但是完備的指針檢測是十分的耗時的。

Linux采用了非全面檢測,如下圖。

圖21
圖22

記住就是這個規(guī)則,在Linux中不是所有地方都遵守,諸侯不聽周王之命啊。這就是安全漏洞。

系統(tǒng)調(diào)用有系統(tǒng)調(diào)用表它是耗時耗能的,X86是采用syscall等命令代替int,我們應(yīng)該減少系統(tǒng)調(diào)用,減少系統(tǒng)單次調(diào)用都還是要完善優(yōu)化。



AArch64(ARMv8/9指令集)學(xué)習(xí)的評論 (共 條)

分享到微博請遵守國家法律
峨山| 邵阳县| 南通市| 抚远县| 始兴县| 胶南市| 山阳县| 邢台县| 延长县| 马边| 北川| 伊宁县| 道真| 颍上县| 建水县| 邯郸县| 柘荣县| 双江| 工布江达县| 西畴县| 界首市| 措勤县| 永靖县| 沂南县| 鄂尔多斯市| 宜都市| 无棣县| 遂宁市| 区。| 永福县| 衢州市| 柏乡县| 富阳市| 成武县| 亚东县| 建瓯市| 伊川县| 清镇市| 嘉峪关市| 腾冲县| 会宁县|