保护模式下中断门描述符格式 #
保护模式下的中断要权限检查,还有特权级的切换,所以就需要扩展中断向量表的信息,即每个中断用一个中断门描述符来表示,也可以简称为中断门,中断门描述符依然有自己的格式,如下图所示。
同样的,保护模式要实现中断,也必须在内存中有一个中断向量表,同样是由
IDTR 寄存器指向,只不过中断向量表中的条目变成了中断门描述符。
段寄存器CS、DS、ES、SS、FS、GS 是由影子寄存器、段描述符索引、描述符表索引、权限级别组成的。如下图所示:
上图中影子寄存器是靠硬件来操作的,对系统程序员不可见,是硬件为了减少性能损耗而设计的一个段描述符的高速缓存,不然每次内存访问都要去内存中查表,那性能损失是巨大的,影子寄存器也正好是 64 位,里面存放了 8 字节段描述符数据。
通常情况下,CS 和 SS 中 RPL 就组成了 CPL(当前权限级别),所以常常是 RPL=CPL,进而 CPL 就表示发起访问者要以什么权限去访问目标段,当 CPL 大于目标段 DPL 时,则 CPU 禁止访问,只有 CPL 小于等于目标段 DPL 时才能访问。
当selector的值为0000H到0003H时,这个selector是Null selector,它指向 GDT的第0项,第0项的Descriptor是unused。Null selector的作用类似于C指针中的NULL值,用于防止代码对unused segment register进行访问。
13位的段描述符索引的取值范围是0-1FFFH(0-8191),表示selector可以寻址 8192个descriptor。
用于指示该段是否在存在于内存当中。若P位为0,操作系统可将使用下图中标识为Available的位置,比如用来存放加载该段所需的信息。

设立该标志位,主要是为了能够在32 位处理器上兼容运行16 位保护模式的程序。 32位的程序中,该位都应设置为1。16位的程序中应设置为0。该位在不同段里有不同的含义:
在做最关键的工作的同时记笔记,如果做得好,二者能够相辅相成。写,无疑是我们思考、阅读、学习、理解和产生想法的最佳催化剂。如果手中随时拿着笔,你在思考、阅读、理解和产生想法的同时,笔记也就写好了,所以无论如何,如果你想好好地思考、阅读、理解和产生想法,你手里必须有一支笔。如果你想长期学习某样东西,就必须把它写下来。如果你想真正理解某件事情,你就必须把它转化为自己的语言。思考既要在自己的脑子里进行,也要在纸上进行。神经科学家尼尔·利维(Neil Levy)在《牛津神经伦理学手册》(Oxford Handbook of Neuroethics)的导言中这样总结几十年的研究:“纸上的笔记,或电脑屏幕上的笔记并没有让当代物理学或其他种类的智力活动变得更容易,而是让它成为可能。”神经科学家、心理学家和其他思维专家对我们大脑的工作原理有着截然不同的想法,但是,正如利维所写的那样:“无论内部过程是如何实施的,你都需要了解思维对外部框架的依赖程度”(2011)。如果有一件事是专家们一致同意的,那就是你必须将你的想法外显化,必须把它们写下来。理查德·费曼和本杰明·富兰克林同样强调这一点。写作使我们更有可能理解所读到的东西,记住所学到的东西,并让我们的想法变得有意义。而既然我们无论如何都要写,为什么不利用写笔记为我们未来的出版物积累资源呢?
随时记笔记,做重要工作时更要记笔记。想法要外显化,思维其实依赖于写下来的外部框架。
《卡片笔记写作法:如何实现从阅读到写作》 申克·阿伦斯
撰写论文的步骤
你手边需要随时有记笔记的工具,以捕捉脑海中闪现的每一个想法。不必多虑如何写或者写什么。这些都是闪念笔记,仅仅是你脑海中想法的备忘录,不用想太多其他东西。可以把它们放到一个你定义为“收集箱”的地方,稍后统一处理。我通常会随身携带一个小本,但如果碰巧没带,我也会用餐巾纸或收据来写,有时候我也会用手机留下必要语音记录。如果你已经整理好自己的想法,而且时间比较宽裕,也可以跳过这一步,直接把想法写下来,作为一条已完成的永久笔记放在你的卡片盒里。
无论你读什么,都要做笔记,写下你不想忘记的内容,或者你认为可能会在自己的思考或写作中使用的内容。文献笔记要非常简短,精心选择,并使用自己语言记录,对引文要格外挑剔,不要只是抄写,而不去真正理解其含义。最后把这些笔记和参考书目的细节一起保存在你的文献管理系统中。
现在打开你的卡片盒,仔细阅读你在第一步或第二步所做的笔记(最好每天一次,以及在你开始遗忘为什么记它之前),并思考它们与你自己的研究、思考或兴趣所在的相关内容有何关联。因为这里面只包含你感兴趣的东西,所以翻阅卡片盒很快就可以完成。这种笔记上的思想不是为了收集,而是为了衍生想法、论点和讨论。新的信息是否与你卡片盒里或脑海里已有的信息相互矛盾、相互一致、相互印证或相互补充?是否能把已有的想法结合起来产生新的想法?这些想法又引发了什么问题?你可以为每一个想法准确地写下一条笔记,并像为别人写作一样,使用完整的句子,标注来源,提供参考资料,并尽量做到精确、清晰和简短。此时,扔掉第一步的闪念笔记,把第二步的文献笔记放入你的文献管理系统。待所有重要的内容都进入卡片盒后,你就可以忘记它们了。
你可以看看目前有什么,缺什么,出现了什么问题。通过广泛阅读来挑战和加强自己的论点,并根据了解到的新信息改变和发展自己的论点。多做笔记,进一步发展思路,看看事情的发展方向。自己跟着兴趣走,一直选择有望获得最深刻见解的那条路。以你所拥有的东西为基础,即使你的卡片盒里还没有任何东西,你也永远不会从零开始,因为你的脑海里已经有了需要检验的想法、需要挑战的观点和需要回答的问题。不要为一个主题进行头脑风暴,而是要看一下卡片盒,看看哪里已经形成了笔记链,哪里已经建立了想法群;如果另一个更有希望的想法已经成型,就不要执着于前一个想法。你对某件事情越感兴趣,就会阅读得越多,思考得越多,进而收集的笔记越多,最终越有可能从中提出问题和想法。它可能正是你一开始就感兴趣的东西,但更有可能是你的兴趣已经发生了变化,这就是洞见的作用。
这时,你的主题是基于你所拥有的素材,而不是基于即将阅读的文献可能提供的未知想法。思考一下这个主题的内在联系,收集所有与之相关的笔记(大部分的相关笔记已经有了一定顺序),把它们复制到大纲软件中[3],并把它们按顺序排列好。看看哪些还不够,哪些是多余的。不要等着所有的东西都集齐,而是要积极思考,给自己足够的时间去阅读和记笔记,以改进你的想法、论点和架构。
不要简单地把笔记复制到手稿里,要把它们转化成连贯的内容,并将它们嵌入到你论点的上下文中,同时从笔记中得出你的论点。检查论点中的漏洞,想办法完善或改变论点。
拍拍自己的肩膀,然后开始写下一篇文稿。
不同阶段会写出很多不同想法,可以天马行空地思考多个问题。不浪费好的想法。
《卡片笔记写作法:如何实现从阅读到写作》 申克·阿伦斯
里面有文献和对文献内容的简要说明。每个想法只用一张卡片。
针对所阅读的内容收集和产生的想法。并不照抄他所读过的文章中的观点或引文,而是将其从一个语境转化到另一个语境。这很像翻译,不同的语境用不同的词描述,但要尽量真实地保持愿意。记下“作者在某一章详细证明了他的方法”,比引用文中任何词句都更能充分地描述这一章的内容。
思考这些笔记与自己思考和写作的相关性,然后转向主卡片盒,有新的索引卡片上写下想法、评论和思想。
一条新的笔记会直接跟进另一条笔记,并成为一个较长笔记链的一部分。孤立存在的笔记很少。
自下而上地开发主题,然后在卡片盒中不断地添加笔记,基于这个卡片盒,通过排序相关笔记的链接,来对一个主题进行整理。
《卡片笔记写作法:如何实现从阅读到写作》 申克·阿伦斯
假设我们有一个立体声的 PCM 音乐文件。它记录了 1 分 40 秒的采样率为 48kHz 的音频。如果这个文件的采样位深是 16bit,那么这个立体声文件应该占用多大的存储空间呢?如果不经过压缩实时传输播放,又至少需要多少的带宽呢?
有了前面的知识我们就可以知道,一个 PCM 音频文件的存储大小就是采样位深、采样率、通道数和持续时间的累乘。即:
存储空间=采样位深×采样率×通道数×时长=16×48000×2×100=1.53∗108bit=18.31MB
而它实时传输所需的带宽就是它每秒所需的比特带宽。这可以用采样位深、采样率和通道数来得到。即:
比特带宽=采样位深×采样率×通道数=16×48000×2=1.53∗106bps=1500kbps
什么是采样位深?
采样位深也就是每个采样点用多少 bit 来表示。比如位深是 16 就代表每个采样点需要 16bit 来进行存储。从物理意义上来说,位深代表的是振动幅度的表达精确程度或者说粒度。假设数字信号是一个 1 到 -1 的区间,如果位深为 16bit,那么第 1 个 bit 表示正负号,并且剩下的 15 个 bit 可以表征 0~32767 个数,那么振幅就可以精确到 1/32768 的粒度了。我们一般在网络电话中用的就是 16bit 的位深,这样不太会影响听感,并且存储和传输的耗费也不是很大。而在做音乐或者更高保真度要求的场景中则可以使用 32bit 甚至 64bit 的位深来减少失真。 8bit 时失真就比较严重了。早期受到音频技术条件限制,很多音频都是 8bit 的,声音会显得比较模糊,如今也只有一些电话和对讲机等设备还有使用。但有趣的是,有的音乐就追求这种模糊感,所以“8bit”有的时候也代表一种听感朦胧的音乐艺术类型。
对声音采样时,根据不同的场景,应如何选择采样的频率?
那么采样率是不是越高越好呢?其实选用什么样的采样率是根据具体用途来决定的。
如果只是为了听见人声、听懂对方在说什么,那么为了节省传输码率我们可以把采样率降到 8kHz(比如打电话)。而在网络音视频会议场景需要平衡音质和传输带宽消耗,我们一般可以使用 16kHz 或者 32kHz 的采样率。如果是开线上音乐会或者音乐直播,我们通常会用较高的采样率来保证音质,比如 44.1kHz 或者 48kHz。更极端一点,在音乐制作录音的时候,我们会采用 96kHz 甚至更高的采样率来方便后续的调音和制作。
采样率与保留的声音频率之间有着什么样的关系?
根据奈奎斯特采样定理在进行模拟 / 数字信号的转换过程中,当采样频率 fs 大于信号中最高频率 fmax 的 2 倍时(fs > 2fmax),采样之后的数字信号才可以完整地保留原始信号中的信息。也就是说采样率和保留的声音频率基本上是 2 倍的关系。我们可以看看下图的频谱图来对比一下 16kHz 采样率和 48kHz 采样率的音频。
不同采样率( 48kHz(上)和16kHz(下) )的频谱能量分布由图我们可以看到,16kHz 采样率的音频在 8kHz 以上的频谱基本是没有能量的(黑色),也就是说这部分高频的信息由于采样率不够已经丢失了。从听感上来说人耳可以听到的频率范围大概是 50~20kHz 之间。如果采样率不够,那么和实际听感比起来声音就会显得“低沉”或者说“闷”。