zoukankan      html  css  js  c++  java
  • 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空间。

  • 相关阅读:
    读完此文让你了解各个queue的原理
    借汇编之力窥探String背后的数据结构奥秘
    汇编高手带你玩转字符串,快上车!
    语雀调研
    产品技能一:抽象能力
    我所认知的敏捷开发
    产品经理需要的技能,我有吗?
    孙正义采访:接下来的30年,一切将被重新定义
    5G小白鼠
    goto语句为啥不受待见
  • 原文地址:https://www.cnblogs.com/licongyu/p/4952339.html
Copyright © 2011-2022 走看看