UNIX V6内核源码剖析——unix v6 全貌
1. UNIX V6 運(yùn)行硬件環(huán)境——PDP-11/40
PDP-11/40指令和數(shù)據(jù)都是以16比特為單位。對(duì)它而言,一個(gè)字的寬度為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個(gè)通用寄存器。
其中r6為2個(gè),分別對(duì)應(yīng)用戶模式和內(nèi)核模式,在切換psw的當(dāng)前模式時(shí),r6在硬件上自動(dòng)切換。
r5位幀指針或環(huán)境指針;
r6稱為棧指針,它指向各進(jìn)程所擁有的棧的頂端。
r7稱為程序計(jì)數(shù)器,處理器從r7指示的內(nèi)存地址讀取指令執(zhí)行。
4. MMU
PDP-11/40以長度為8kb的段或頁為單位,對(duì)進(jìn)程所需的內(nèi)存進(jìn)行管理。
MMU通過稱為APR(頁寄存器)的寄存器對(duì)各段進(jìn)行設(shè)定,并將虛擬地址轉(zhuǎn)換為物理地址。
PDP-11/40的MMU具有2個(gè)狀態(tài)寄存器,SR0和SR2。
SR0用于保存出錯(cuò)信息和內(nèi)存管理的有效標(biāo)志,SR2用于保存目標(biāo)指令的16位虛擬地址,可用來確定引起錯(cuò)誤的指令。
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图实用