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 全貌相关推荐

  1. Go内核源码剖析 一 程序执行启动过程

    go内核源码剖析 一 这篇是看雨痕大佬的书所做练习的笔记,(其实后面部分基本都是抄的,但是都实践了) 由于电脑抽风,使用的是win10的Linux子系统,功能不完善,很多跟踪支持性不好(可以算是抄的原 ...

  2. Linux内核深度解析epub,Unix内核源码剖析 高清pdf版 含epub+mobi

    本书是一本Unix内核源代码的阅读指南.作者结合UNIX V6已公开的相关文档,对其内核源码进行详细剖析,旨在让读者更深入地理解进程.中断.块I/O系统.文件系统.字符I/O系统.启动系统等操作系统的 ...

  3. 【Linux内核源码剖析】内核源码的组织结构

    文章目录 前言 一.Linux内核的特征 二.为什么要学Linux内核 三.Linux操作系统结构 1. Linux内核在系统中的位置 2. Linux内核子系统之间的关系 3. 系统主要的数据结构 ...

  4. Yarn 源码 | 分布式资源调度引擎 Yarn 内核源码剖析

    曾有人调侃:HBase 没有资源什么事情也做不了,Spark 占用了资源却没有事情可做? 那 YARN了解一下? 01 YARN! 伴随着Hadoop生态的发展,不断涌现了多种多样的技术组件 Hive ...

  5. Linux内核剖析-----IO复用函数epoll内核源码剖析

    本文参考董浩博客 http://donghao.org/uii/   epoll内核实现 (1)内核为epoll做准备工作 这个模块在内核初始化时(操作系统启动)注册了一个新的文件系统,叫" ...

  6. linux内核源码剖析 博客,【Linux内存源码分析】页面迁移

    页面迁移其实是伙伴管理算法中的一部分,鉴于其特殊性,特地另行分析.它是2007年的时候,2.6.24内核版本开发时,新增碎片减少策略(the fragmentation reduction strat ...

  7. I/O复用 poll的内核源码剖析

    一:I/O 复用技术 I/O复用技术是:把我们关注的描述符组成一个描述符表(通常不止一个描述符),调用I/O复用函数(select/poll/epoll),当描述符表中有可进行非阻塞I/O操作的描述符 ...

  8. chinaunix 内核源码分析精贴

    1. 内核学习方法,编译.调试等常见问题 1.1 关于编译升级内核到2.6.0的一些问题 作者:ommm         http://linux.chinaunix.net/bbs/thread-2 ...

  9. 把nc v6的源码看懂

    看懂nc v6的源码! 碧桂园全部的正式环境的补丁都在我手里. 2015-11-18 2:33 谢谢两位一起努力的兄弟 谢谢超哥,谢谢祈冰哥,谢谢连老师,陈明大哥,谢谢龙哥,珍玉,谢谢廖生哥,谢谢林春 ...

最新文章

  1. Linux学习笔记6——文本处理相关命令
  2. Springmvc的handler method参数绑定常用的注解
  3. [云炬商业计划书阅读分享] 养生保健
  4. wampserver3.0.6 外网 不能访问
  5. 知识图谱入门知识(二)事件抽取(EE)详细介绍
  6. oracle 11g r2版本号,Oracle 11g r2新增版本功能(二)
  7. Windows核心编程_重绘ListBox样式(仿QQListBox)
  8. html使表格位于页面的右下方,在HTML表格的右下角显示一个数字以显示齐平
  9. Android基础入门教程——4.5.1 Intent的基本使用
  10. python开源bi_推荐一套开源BI工具?
  11. coverity java_coverityamp;fortify1--Poor Error Handling: Overly Broad Catch
  12. oracle的number类型
  13. 绿色债券数据集2016.01-2021.11年
  14. 链接预测(Link Prediction)
  15. iframe语法小结
  16. 决策树和K近邻分类随堂笔记(一)
  17. 序文 【IT圈是个什么玩意儿 1 】
  18. 电视看板实现原理_拉萨公交看板广告投放公司价格_【狼界】全国点位覆盖
  19. idea中@SpringBootApplication报红
  20. GLSL内置变量和内置函数

热门文章

  1. Unix平台上OUI启动常见问题
  2. [ 搞笑 ] 疯狂的石头与张柏芝
  3. counterfactual
  4. competition in a limited resource
  5. XJTLU Outstanding Student for 2017-2018!
  6. 关于研究生申请的心态:submitted之后就等一下结果,不要着急
  7. RHEL4下 squid-2.7.STABLE9安装配置
  8. Linux 第71天 mariadb backup and recovery
  9. 实际应用中git(合并本地与服务器项目)
  10. Elasticsearch 快速入门