UNIX V6内核源码剖析——unix v6 全貌
1. UNIX V6 运行硬件环境——PDP-11/40
PDP-11/40指令和数据都是以16比特为单位。对它而言,一个字的宽度为16比特。
PDP-11/40以及周边设备的寄存器被映射到内存最高位的8K空间(内存映射IO)。
利用内存映射IO,可以通过操作内存来访问寄存器。如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
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 全貌相关推荐
- Go内核源码剖析 一 程序执行启动过程
go内核源码剖析 一 这篇是看雨痕大佬的书所做练习的笔记,(其实后面部分基本都是抄的,但是都实践了) 由于电脑抽风,使用的是win10的Linux子系统,功能不完善,很多跟踪支持性不好(可以算是抄的原 ...
- Linux内核深度解析epub,Unix内核源码剖析 高清pdf版 含epub+mobi
本书是一本Unix内核源代码的阅读指南.作者结合UNIX V6已公开的相关文档,对其内核源码进行详细剖析,旨在让读者更深入地理解进程.中断.块I/O系统.文件系统.字符I/O系统.启动系统等操作系统的 ...
- 【Linux内核源码剖析】内核源码的组织结构
文章目录 前言 一.Linux内核的特征 二.为什么要学Linux内核 三.Linux操作系统结构 1. Linux内核在系统中的位置 2. Linux内核子系统之间的关系 3. 系统主要的数据结构 ...
- Yarn 源码 | 分布式资源调度引擎 Yarn 内核源码剖析
曾有人调侃:HBase 没有资源什么事情也做不了,Spark 占用了资源却没有事情可做? 那 YARN了解一下? 01 YARN! 伴随着Hadoop生态的发展,不断涌现了多种多样的技术组件 Hive ...
- Linux内核剖析-----IO复用函数epoll内核源码剖析
本文参考董浩博客 http://donghao.org/uii/ epoll内核实现 (1)内核为epoll做准备工作 这个模块在内核初始化时(操作系统启动)注册了一个新的文件系统,叫" ...
- linux内核源码剖析 博客,【Linux内存源码分析】页面迁移
页面迁移其实是伙伴管理算法中的一部分,鉴于其特殊性,特地另行分析.它是2007年的时候,2.6.24内核版本开发时,新增碎片减少策略(the fragmentation reduction strat ...
- I/O复用 poll的内核源码剖析
一:I/O 复用技术 I/O复用技术是:把我们关注的描述符组成一个描述符表(通常不止一个描述符),调用I/O复用函数(select/poll/epoll),当描述符表中有可进行非阻塞I/O操作的描述符 ...
- chinaunix 内核源码分析精贴
1. 内核学习方法,编译.调试等常见问题 1.1 关于编译升级内核到2.6.0的一些问题 作者:ommm http://linux.chinaunix.net/bbs/thread-2 ...
- 把nc v6的源码看懂
看懂nc v6的源码! 碧桂园全部的正式环境的补丁都在我手里. 2015-11-18 2:33 谢谢两位一起努力的兄弟 谢谢超哥,谢谢祈冰哥,谢谢连老师,陈明大哥,谢谢龙哥,珍玉,谢谢廖生哥,谢谢林春 ...
最新文章
- Linux学习笔记6——文本处理相关命令
- Springmvc的handler method参数绑定常用的注解
- [云炬商业计划书阅读分享] 养生保健
- wampserver3.0.6 外网 不能访问
- 知识图谱入门知识(二)事件抽取(EE)详细介绍
- oracle 11g r2版本号,Oracle 11g r2新增版本功能(二)
- Windows核心编程_重绘ListBox样式(仿QQListBox)
- html使表格位于页面的右下方,在HTML表格的右下角显示一个数字以显示齐平
- Android基础入门教程——4.5.1 Intent的基本使用
- python开源bi_推荐一套开源BI工具?
- coverity java_coverityamp;fortify1--Poor Error Handling: Overly Broad Catch
- oracle的number类型
- 绿色债券数据集2016.01-2021.11年
- 链接预测(Link Prediction)
- iframe语法小结
- 决策树和K近邻分类随堂笔记(一)
- 序文 【IT圈是个什么玩意儿 1 】
- 电视看板实现原理_拉萨公交看板广告投放公司价格_【狼界】全国点位覆盖
- idea中@SpringBootApplication报红
- GLSL内置变量和内置函数