jpcsp原始碼解讀7 HLE

2021-06-05 04:21:31 字數 540 閱讀 3276

作為乙個模擬器,也就是乙個虛擬機器,所作的事情就是解釋執行執行於該機器上的軟體**,包括系統軟體和使用者態的應用軟體。

基於這個想法,系統軟體應該是被載入到記憶體中的某些位置,當應用軟體使用系統呼叫時,就跳轉到系統函式的入口。在這個過程中,模擬器所做的事前後沒有本質區別,就是取指令並解析執行,沒有必要區分系統軟體還是應用軟體。

但是為了提高執行速度,jpcsp實現了psp上執行的系統軟體的功能,如 記憶體管理,程序排程,檔案系統 等。

當模擬器解析應用程式(比如乙個遊戲)時,發現該程式使用了syscall指令,就解析使用者請求的系統功能,並呼叫自己實現的函式來完成這些功能。

這使得jpcsp從乙個純硬體虛擬機器,公升格為作業系統層面的虛擬機器。他提供的不單是psp硬體的功能,而是把psp的韌體(系統軟體)也包括了進去。

jpcsp的原始碼更新日誌中聲稱系統呼叫功能的執行速度提公升了50%。可見,這是乙個很有效的優化。

實現這些系統軟體功能的類,通常以hle開頭,是什麼單詞的縮寫暫時還不清楚。

具體每個hle模組的實現還沒有解析,不過可以暫放一邊,先解析模擬器的解釋引擎主體。

mybatis原始碼解讀(7)

private void typealiaseselement xnode parent else else catch classnotfoundexception e alias author type domain.blog.author alias blog type domain.blog...

Vue 原始碼解讀(7) Hook Event

hook event 鉤子事件 相信很多 vue 開發者都沒有使用過,甚至沒聽過,畢竟 vue 官方文件中也沒有提及。vue 提供了一些生命週期鉤子函式,供開發者在特定的邏輯點新增額外的處理邏輯,比如 在元件掛載階段提供了beforemount和mounted兩個生命週期鉤子,供開發者在元件掛載階段...

openTLD 原始碼解讀

首先是run tld 在其次就是tldexample 最後到了初始化函式tldinit 第乙個比較關鍵的函式 bb scan 將影象網格化,將首先 scale 1.2.10 10 21 個規格 在每個規格上打網格 這個函式有乙個比較重要的方法 ntuples 就是重複 因為網格上的點很多點有相同的x...