UNIX V6内核源码剖析——unix v6 全貌
生活随笔
收集整理的這篇文章主要介紹了
UNIX V6内核源码剖析——unix v6 全貌
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. UNIX V6 運行硬件環境——PDP-11/40
PDP-11/40指令和數據都是以16比特為單位。對它而言,一個字的寬度為16比特。
PDP-11/40以及周邊設備的寄存器被映射到內存最高位的8K空間(內存映射IO)。
利用內存映射IO,可以通過操作內存來訪問寄存器。如下:
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個,分別對應用戶模式和內核模式,在切換psw的當前模式時,r6在硬件上自動切換。
r5位幀指針或環境指針;
r6稱為棧指針,它指向各進程所擁有的棧的頂端。
r7稱為程序計數器,處理器從r7指示的內存地址讀取指令執行。
4. MMU
PDP-11/40以長度為8kb的段或頁為單位,對進程所需的內存進行管理。
MMU通過稱為APR(頁寄存器)的寄存器對各段進行設定,并將虛擬地址轉換為物理地址。
PDP-11/40的MMU具有2個狀態寄存器,SR0和SR2。
SR0用于保存出錯信息和內存管理的有效標志,SR2用于保存目標指令的16位虛擬地址,可用來確定引起錯誤的指令。
5. 內存
內存以8比特(1字節)為單位賦予地址。地址長度為18比特,因此內存容量為218=256KB。
PDP-11/40將周邊設備的寄存器映射到內存高位地址的8kb空間。
轉載于:https://www.cnblogs.com/licongyu/p/4952339.html
總結
以上是生活随笔為你收集整理的UNIX V6内核源码剖析——unix v6 全貌的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端基础-html-音频标签的介绍
- 下一篇: 闲心之谈之虚拟货币系列:1、KDJ图实用