UNIX V6内核源码剖析——unix v6 全貌
1. UNIX V6 運行硬件環(huán)境——PDP-11/40
PDP-11/40指令和數(shù)據(jù)都是以16比特為單位。對它而言,一個字的寬度為16比特。
PDP-11/40以及周邊設(shè)備的寄存器被映射到內(nèi)存最高位的8K空間(內(nèi)存映射IO)。
利用內(nèi)存映射IO,可以通過操作內(nèi)存來訪問寄存器。如下:
1 #define REG_ADDRESS 0170000 2 3 struct { 4 int integ; 5 }; 6 7 main() 8 { 9 int a ; 10 a = REG_ADDRESS->integ; 11 REG_ADDRESS->integ = 0; 12 } View Code
2. PSW(processor status word)
3. 通用寄存器
PDP-11/40具有r0-r7共8個通用寄存器。
其中r6為2個,分別對應(yīng)用戶模式和內(nèi)核模式,在切換psw的當前模式時,r6在硬件上自動切換。
r5位幀指針或環(huán)境指針;
r6稱為棧指針,它指向各進程所擁有的棧的頂端。
r7稱為程序計數(shù)器,處理器從r7指示的內(nèi)存地址讀取指令執(zhí)行。
4. MMU
PDP-11/40以長度為8kb的段或頁為單位,對進程所需的內(nèi)存進行管理。
MMU通過稱為APR(頁寄存器)的寄存器對各段進行設(shè)定,并將虛擬地址轉(zhuǎn)換為物理地址。
PDP-11/40的MMU具有2個狀態(tài)寄存器,SR0和SR2。
SR0用于保存出錯信息和內(nèi)存管理的有效標志,SR2用于保存目標指令的16位虛擬地址,可用來確定引起錯誤的指令。
5. 內(nèi)存
內(nèi)存以8比特(1字節(jié))為單位賦予地址。地址長度為18比特,因此內(nèi)存容量為218=256KB。
PDP-11/40將周邊設(shè)備的寄存器映射到內(nèi)存高位地址的8kb空間。
轉(zhuǎn)載于:https://www.cnblogs.com/licongyu/p/4952339.html
總結(jié)
以上是生活随笔為你收集整理的UNIX V6内核源码剖析——unix v6 全貌的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端基础-html-音频标签的介绍
- 下一篇: 闲心之谈之虚拟货币系列:1、KDJ图实用