和Steve之间的通信--关于《UNIX技术内幕》的勘误及遇到的问题_3

简介: From: quntmec@hotmail.comTo: qf.hao@hotmail.comSubject: 关于《UNIX技术内幕》的勘误及遇到的问题_3Date: Thu, 6 Oct 2011 19:24:10 +0800 郝先生,对于启动模块这一章...


From: quntmec@hotmail.com
To: qf.hao@hotmail.com
Subject: 关于《UNIX技术内幕》的勘误及遇到的问题_3
Date: Thu, 6 Oct 2011 19:24:10 +0800

郝先生,

对于启动模块这一章,我有一些疑问,如下:

1、61页,代码第12~16句,其中第16句的意思如下:

(1)r3=r3-1
(2)判断r3是否为0,如果不等于0,则跳转至12句

如果上面的理解没错,那书里16页最下面处对于指令sob的解释似乎不太对(即 PC=PC-2 * offset,应改为跳转至

offset)
:sob r3,1b这条指令中的1b会被汇编器翻译成和第12行之间的偏移除2. 这和其他指令如br, beq等一样。


 
2、61页,代码第20句,

bic $!1777, r2

我猜测该句的意思是先将8进制数1777按位取反,然后再进行bic运算。是这样吗?
:是。

3、61页,代码第22句,

mov $USIZE-1\
我猜测该句的意思是先将($USIZE-1)左移8位,然后与数字6进行或运算。是这样吗?另,在PDP11/40里,\ 和 \是转义,把\

4、根据64页图4-5,图4-6,可知KISA0本身代表的是[0~8K-1],KISA1本身代表的是[8k~16K-1],KISA2本身代表的是[16~24K-1].....
此外,根据32页对PAR,PDR的描述可知,虚拟内存中的每一页对应的物理内存的起始(PAF)和大小(PLF)都是可以设定的。

那我就比较疑惑:

(1)假设每个虚拟页都是8KB,那为何一定是KISA1对应[8k~16K-1],KISA2对应[16~24K-1];而不是反过来,KISA2对应[8k~16K-1],KISA1对应[16~24K-1]?这是否是由PDP11/40系统本身决定的?
这里对应的[8k~16K-1]是虚拟地址,这是固定的。由寄存器本身特性决定。

(2)在PDP11/40中,假设内存大小是64KB,如果每个页的大小设置为2KB(在PLF中设置),那该如何设置KISA0~KISA7?KISA0对应的是[0~8K-1]还是[0~2K-1]?
:KISA0~7可以随意设定,KISA0对应[0~2K-1]。需要理解虚拟地址和物理地址的区别。
PDP11/40中一个物理块是64字节,可以把它想象成4K页面。

个 人感觉书里的例子有些特殊,是以每页8KB为例的,对于64KB的内存刚好8页(KISA0~7)。此外,就我的理解而言,KISA0对应的应该是 [0~2K-1],因为在X86中虚拟页与物理框是大小一致的(例如要么都是4KB),缺多少页也就调多少物理框。不知道这PDP11/40中是否也是这 样?

此外,勘误如下:

内容
16     倒数第2行(sob指令),时钟应为“始终”
:对

Steve


《返璞归真--UNIX技术内幕》

目录
相关文章
|
4月前
|
网络协议 Unix Go
Go unix domain socket通信
Go unix domain socket通信
|
Unix
《返璞归真--UNIX技术内幕》--第14章 多线程的实现
14.1  概述 现代操作系统引入了线程的概念。线程是CPU执行的最小单元,相对于进程而言,它具有轻捷、高效、开销小等优点。 14.2  线程和经典进程的比较 线程和经典进程的主要区别如下。
847 0
|
Unix
《返璞归真--UNIX技术内幕》-- 第11章 UNIX可执行文件
11.1  .out文件 本版UNIX的可执行文件是.out格式,如果你在UNIX下用gcc编译程序,它默认会生成一个名为“a.out”的可执行文件。
839 0
|
Unix C语言
《返璞归真--UNIX技术内幕》--第6章 中断处理过程
6.4  PDP 11/40的中断类型 系统中的中断主要有下面几种。 6.4.1  电传终端接口输入中断 电传终端接口用于链接PDP 11/40的总线和主要的输入、输出终端,当时该终端是电传打字机,这也是UNIX中用tty(teletypewriter)表示进程所使用的终端类型的原因,事实上电传接口还可以连接彩色显示器(CRT)等。
877 0
|
存储 缓存 Unix
《返璞归真--UNIX技术内幕》--第9章 字符设备驱动
本系统中的输入输出设备都是字符设备,它们包括:KL-11/DL-11A——电传串行接口、PC-11——纸带打孔机和LP-11——行打印机。其中KL-11用于连接终端(terminal),作为用户键盘输入和显示输出的交互接口。
916 0
|
Unix
《返璞归真--UNIX技术内幕》--源代码
本源代码经宁希波帮助整理,去除了''和'&'符号,在此表示诚挚的谢意!源码中除/usr/personal目录外,均由Bell Labs(贝尔实验室)开发。
657 0
|
Unix
《UNIX技术内幕》--第3章 虚拟内存
Normal 0 false false false MicrosoftInternetExplorer4 /* Style Definitions */ table.
595 0
|
Unix Linux 调度
《UNIX技术内幕》勘误及问题解答_26
From: quntmec@hotmail.com To: qf.hao@hotmail.com Subject: 关于《UNIX技术内幕》的勘误及遇到的问题_26 Date: Sun, 26 Feb 2012 16:34:18 +0800 郝先生, 线程方面碰到的问题如下: 1、689页,倒数第2、3行,里面提到第14章所实现的线程在退出时只会将线程栈释放、而不会释放该线程所分配的堆空间,这是否会造成内存泄漏?[郝]:如果用户线程在每次调用malloc后,都会调用free来释放它,那么就不会有内存泄漏。
918 0
|
Unix
《UNIX技术内幕》勘误及问题解答_25
From: quntmec@hotmail.com To: qf.hao@hotmail.com Subject: RE: 关于《UNIX技术内幕》的勘误及遇到的问题_25 Date: Fri, 17 Feb 2012 11:08:10 +0800 郝先生, 对...
779 0
|
4月前
|
缓存 网络协议 Unix
Linux(UNIX)五种网络I/O模型与IO多路复用
Linux(UNIX)五种网络I/O模型与IO多路复用
108 0