精华内容
下载资源
问答
  • 一个操作系统的实现读书笔记

    千次阅读 2012-11-21 00:36:50
    环境搭建 centos6.2(不推荐) bochs > ./configure --anable-debugger --enable-disasm nasm 推荐用RadAsm搭建环境,用vim也可以 ...TYPE 值 数据段和代码段描述符 系统段和描述符 ...3 /写,已访问 忙的

    环境搭建

    centos6.2(不推荐)

    bochs  

    > ./configure --anable-debugger --enable-disasm

    nasm 推荐用RadAsm搭建环境,用vim也可以

    保护模式

    描述符属性

    TYPE 值 数据段和代码段描述符 系统段和门描述符
    0 只读 <未定义>
    1 只读,已访问 可用286TSS
    2 读/写 LDT
    3 读/写,已访问 忙的286TSS
    4 只读,向下扩展 286调用门
    5 只读,向下扩展,已访问 任务门
    6 读/写,向下扩展 286中断门
    7 读/写,向下扩展,已访问 286陷阱门
    8 只执行 <未定义>
    9 只执行、已访问 可用386TSS
    A 执行/读 <未定义>
    B 执行/读、已访问 忙的386TSS
    C 只执行、一致码段 386调用门
    D 只执行、一致码段、已访问 <未定义>
    E 执行/读、一致码段 386中断门
    F 执行/读、一致码段、已访问 386陷阱门

    一致的意思是这样的,当转 移的目标是一个特权级更高的一致代码段,当前的特权级会被延续下去,而 向特权级更高的非一致代码段的转移会引起常规保护错误(general-protection exception, #GP),除非使用调用门或者任务门。如果系统代码不访问受保护的 资源和某些类型的异常处理(比如,除法错误或溢出铕误),它可以被放在一 致代码段中。为避免低特权级的程序访问而被保护起来的系统代码则应放到非 一致代码段中。
    要注意的是,如果目标代码的特权级低的话,无论它是不是一致代码段, 都不能通过cal 1或者jmp转移进去,尝试这样的转移将会导致常规保护错误。
    所有的数据段都是非一致的,这意味着不可能被低特权级的代码访问到。 然而,与代码段不同的是,数据段可以被更高特权级的代码访问到,而不需要 使用特定的门。
    总之,通过call和jmp的转移遵从表3.3所示的规则。

    表 3.3 —S

     

     

    特权级

    低-离

    特权级

    髙—低

    相同特权 级之间

    适用于何种代码

    -致代码段

    Yes

    No

    Yes

    不访问受保护的资源和某些 类型的异常处理的系统代码

    非一致代码段

    No

    No

    Yes

    避免低特权级的程序访问而 被保护起来的系统代码

    数据段

    (总是非一致)

    No

    Yes

    Yes

     


    jap dword SelectorCode32 :0

    前期准备GDT 32位代码段 16位代码段 跳回地址

    ;其正逬入保护棋式
    jmp dword SelectorCode32 :0

    处理器通过识别CPL、DPL、RPL这3种特权级进行特权级检验。
    1. CPL (Current Privilege Level)
    CPL是当前执行的程序或任务的特权级。它被存储在cs和ss的第0位和 第1位上。在通常情况下,CPL等于代码所在的段的特权级^当程序转移 到不同特权级的代码段时,处理器将改变CPL。
    在遇到一致代码段时,情况稍稍有点特殊,一致代码段可以被相同或者更 低特权级的代码访问。当处理盔访问一个与CPL特权级不同的一致代码 段时,CPL不会被改变。
    2. DPL (Descriptor Privilege Level)
    DPL表示段或者门的特权级。它被存储在段描述符或者门描述符的DPL 字段中,正如我们先前所看到的那样。当当前代码段试图访问一个段或者 门时,DPL将会和CPL以及段或门选择子的RPL相比较,根据段或者门 类型的不同,DPL将会被区别对待,下面介绍一下各种类型的段或者门的 情况。
    数据段:DPL规定了可以访问此段的最低特权级。比如,一个数据 段的DPL是1,那么只有运行在CPL为0或者I的程序才有权访问 它。
    非一致代码段(不使用调用门的情况下):DPL规定访问此段的特权
    级。比如,一个非一致代码段的特权级为0,那么只有CPL为0的程 序才可以访问它。
    调用门:DPL规定了当前执行的程序或任务可以访问此调用门的最 低特权级(这与数据段的规则是一致的)。
    —致代码段和通过调用门访问的非一致代码段:DPL规定了访问此
    段的最高特权级。比如,一个一致代码段的DPL是2,那么CPL为0 和1的程序将无法访问此段。
    TSS: DPL规定了可以访问此TSS的最低特权级(这与数据段的规 则是一致的h
    3. RPL (Requested Privilege Level)
    RPL是通过段选择子的第0位和第1位表现出来的。处理器通过检査RPL 和CPL来确认一个访问请求是否合法。即便提出访问请求的段有足够的 特权级,如果RPL不够也是不行的。也就是说,如果RPL的数字比CPL 大(数字越大特权级越低),那么RPL将会起决定性作用,反之亦然。 操作系统过程往往用RPL来避免低特权级应用程序访问高特权级段内的 数据。当操作系统过程(被调用过程)从一个应用程序(调用过程)接收 到一个选择子时,将会把选择子的RPL设成调用者的特权级。于是,当操 作系统用这个选择子去访问相应的段时,处理器将会用调用过程的特权级 (已经被存到RPL中),而不是更高的操作系统过程的特权级(CPL)进行 特权检验。这样,RPL就保证了操作系统不会越俎代庖地代表一个程序去 访问一个段,除非这个程序本身是有权限的。


    不同特权级代码段之间的转移
    程序从一个代码段转移到另一个代W段之前,目标代码段的选择子会被加 栽到cs中。作为加载过程的一部分,处理器将会检査描述符的界限、类型、特 权级等内容。如果检验成功,CS将被加载,程序控制将转移到新的代码段中, 从eip指示的位置开始执行。
    程序控制转移的发生,可以是由指令jmp、call、ret、sysenter、 sysexit、int n或iret引起的,也可以由中断和异常机制引起。
    使用jmp或call指令可以实现下列4种转移:
    1.目标操作数包含目标代码段的段选择子。
    2-目标操作数指向一个包含目标代码段选择子的调用门描述符。
    3. 目标操作数指向一个包含目标代码段选择子的TSS。
    4. 目标操作数指向一个任务门,这个任务门指向一个包含目标代码段选择子
    的 TSS。
    这4种方式可以看做是两大类,一类是通过jmp和call的直接转移(上述 第1种),另一类是通过某个描述符的间接转移(上述第2、3、4种)。下面就来
    分别看一下。

    特权级跳转

    1. 根据目标代码段的DPL (新的CPL)从TSS中选择应'该切换至哪个ss和 esp
    2- 从TSS中读取新的ss和esp。在这过程中如果发现ss、esp或者TSS界限 错误都会导致无效TSS异啬(#TS)o
    3- 对日3描述符进行检验,如果发生错误,同样产4#TS异常。
    4- 暂时性地保存当前ss和esp的值。
    5.加载新的ss和esp。
    6-将刚刚保存起来的ss和esp的值压入新栈。 
    7. 从调用者堆栈中将参数复制到被调用者堆栈(新堆栈)中,复制参数的数 目由调用门中Param Count—项来决定。如果Param Count是零的话,将 不会复制参数。
    8. 将当前的cs和eip压栈。
    9. 加载调用门中指定的新的cs和eip,开始执行被调用者过程。
    在第7步中,我们终于明白了调用门中Param Count的作用,至此,调用门 中各个部分的作用不再留有疑问。要说明的是,Param Count只有5位,也就是 说,最多只能复制31个参数。如果参数多于31个该怎么办呢?这时可以让其 中的某个参数变成指向一个数据结构的指针,或者通过保存在新堆栈里的ss 和esp来访问旧堆栈中的参数。
    好了,此刻如果你结合图3.20和上述步骤,一定可以理解通过调用门进行 由外层到内层调用的全过程。那么,正如call指令对应ret,调用门也面临返 回的问题。通过图3.15和图3.16、图3.17和图3.18这两组对比,我们发现,ret基 本上是call的反过程,只是带参数的ret指令会同时释放事先被压栈的参数。
    实际上,ret这个指令不仅可以实现短返回和长返回,而且可以实现带有 特权级变换的长返回。由被调用者到调用者的返回过程中,处理器的工作包含 以下步骤:
    1. 检査保存的cs中的RPL以判断返回时是否要变换特权级。
    2. 加载被调用者堆桟上的cs和eip (此时会进行代码段描述符和选择子类型 和特权级检验)。
    3. 如果ret指令含有参数,则增加esp的值以跳过参数,然后esp将指向被 保存过的调用者ss和esp。注意,ret的参数必须对应调用门中的Param Count的值。
    4. 加载ss和esp,切换到调用者堆栈,被调用者的ss和esp被丢弃。在这里 将会进行ss描述符、esp以及ss段描述符的检验。
    5. 如果ret指令含有参数,增加esp的值以跳过参数(此时已经在调用者堆 栈中)•
    6-检査ds、es、fs、gs的值,如果其中哪一个寄存器指向的段的DPL小于 CPL (此规则不适用于一致代码段),那么一个空描述符会被加载到该寄 存器。


    boot载入loader loader加载kernel复制GDT


    ELF文件格式

    内核雏形

    C和汇编混用

    global和extern用法

    添加终端处理

    增加软中断号,给系统调用中断添加终端号,建立系统调用表,分配系统调用

    建立进程,(进程表)进程控制块,存放进程寄存器信息,内核到ring3的跳转,TTS的使用

    进程总数的限制,任务的实现,进程的调度,时钟中断的使用


    输入输出的实现

    读取键盘输入的驱动,tty的实现,与用户的交互


    进程间通信

    通过消息的机制,微内核的原理及实现


    文件系统

    磁盘驱动的实现,文件系统的设计 文件的读写


    内存管理

    fork的实现,动态进程的创建和执行,shell的实现



    ;其正逬jp dword SelectorCode32 :0;其正逬入保护棋式
    jap dword SelectorCode32 :0

    展开全文
  •  最近抽闲暇时间了一下自考科目的《信息系统开发与管理》这课程,为我初步的解决了这样那样的系列问题,也让我从理论上开始接触信息系统的开发、管理等内容。  此课本分为九章内容,根据大致内容我把这本书...

        作为一个程序员,平常似乎很轻易得就会说出做个系统,我们也会用到这样的那样的系统,我们不禁会问这里的

    系统到底是个什么东东?这里的系统究竟是个什么系统?

        最近抽闲暇时间读了一下自考科目的《信息系统开发与管理》这门课程,为我初步的解决了这样那样的一系列问题,也让我从理论上开始接触信息系统的开发、管理等内容。

        此课本分为九章内容,根据大致内容我把这本书分成了两部分附加第九章的一个综合实例,第一部分一至三章,为导言、基础知识部分,它主要介绍了信息系统的一些相关概念,以及其发展、开发方法的一些概括性描述,基础知识可以说讲的还很全面,看上去貌似很多的内容,却给我解决了许多问题,以及以前不知道的专业术语;第二部分四至八章,为开发管理内容的具体过程,针对系统生命周期中的每个阶段的工作以及管理等各方面所做的描述很具体详细,同样看上去很多的内容。

        针对于只是第一遍看课本,简单概括的一下其大致内容,为今后的细致学习打个铺垫,如图所示:

        小小心得:要想做出一个好的信息管理系统,是一个长期而复杂的工作,需要有完善的理论指导,宏观上把控整个过程,运筹帷幄之中才能把工作做得更好。俗话说不想做好系统的裁缝不是好司机,为了当好这个司机,从事信息系统开发管理的工作要有相当高的前瞻性意识,对整个系统统筹兼顾,所以最后得出结论:学习这门课程对我们还是很必要的,既然必要何乐而不为!

    展开全文
  • 千次阅读 2018-12-17 21:09:32
    什么态指其输出既可以是一般二值逻辑电路,即正常的高电平(逻辑1)或低电平(逻辑0),又可以保持特有的高阻抗状态。高阻态相当于隔断状态(电阻很大,相当于开路)。   内存里面的一个存储单元,...

    三态门是什么?

    三态指其输出既可以是一般二值逻辑电路,即正常的高电平(逻辑1)或低电平(逻辑0),又可以保持特有的高阻抗状态。高阻态相当于隔断状态(电阻很大,相当于开路)。

     

    内存里面的一个存储单元,读写控制线处于低电位时,存储单元被打开,可以向里面写入;当处于高电位时,可以读出,但是不读不写,就要用高电阻态,此时的节点处于悬空(不被拉到VDD或者GND)的状态,没有电路驱动他。高电平,低电平可以由内部电路拉高和拉低。而高阻态时引脚对地电阻无穷,此时读引脚电平时可以读到真实的电平值。

    应用:

    如果你的设备端口要挂在一个总线上,必须通过三态缓冲器。因为在一个总线上同时只能有一个端口作输出,这时其他端口必须在高阻态,同时可以输入这个输出端口的数据。所以你还需要有总线控制管理,访问到哪个端口,那个端口的三态缓冲器才可以转入输出状态。这是典型的三态门应用。

    展开全文
  • LSTM 网络中几个门的理解

    千次阅读 2018-05-20 11:42:51
    GRU,RNN这些模型,对于LSTM的印象只是知道它用来解决梯度消失梯度爆炸问题,对于长距离的句子的学习效果不好的问题,而且大概知道里面是加了一些参数,加了单元来选择忘记和记住一些信息。但是具体公式没有推过,...

    个人认为下面这篇博文非常适合初学或者学的很浅的朋友。 
    转自http://www.jianshu.com/p/9dc9f41f0b29

    经常接触LSTM,GRU,RNN这些模型,对于LSTM的印象只是知道它用来解决梯度消失梯度爆炸问题,对于长距离的句子的学习效果不好的问题,而且大概知道里面是加了一些参数,加了门单元来选择忘记和记住一些信息。但是具体公式没有推过,所以理解的不够深。

    但是上面这篇长博文,作者真心花了很多心血来创作,写的详细,易懂,对于学习lstm有很大的帮助。

    读完后我觉得要理解几个门的作用,文中作者提到的三个例子恰到好处。个人认为这三个例子是弄明白lstm的关键。

    忘记门: 
    作用对象:细胞状态 
    作用:将细胞状态中的信息选择性的遗忘 
    让我们回到语言模型的例子中来基于已经看到的预测下一个词。在这个问题中,细胞状态可能包含当前主语的类别,因此正确的代词可以被选择出来。当我们看到新的主语,我们希望忘记旧的主语。 
    例如,他今天有事,所以我。。。当处理到‘’我‘’的时候选择性的忘记前面的’他’,或者说减小这个词对后面词的作用。

    输入层门: 
    作用对象:细胞状态 
    作用:将新的信息选择性的记录到细胞状态中 
    在我们语言模型的例子中,我们希望增加新的主语的类别到细胞状态中,来替代旧的需要忘记的主语。 
    例如:他今天有事,所以我。。。。当处理到‘’我‘’这个词的时候,就会把主语我更新到细胞中去。

    输出层门: 
    作用对象:隐层ht 
    在语言模型的例子中,因为他就看到了一个 代词,可能需要输出与一个 动词 相关的信息。例如,可能输出是否代词是单数还是负数,这样如果是动词的话,我们也知道动词需要进行的词形变化。 
    例如:上面的例子,当处理到‘’我‘’这个词的时候,可以预测下一个词,是动词的可能性较大,而且是第一人称。 
    会把前面的信息保存到隐层中去。

    Gated Recurrent Unit (GRU)就是lstm的一个变态,这是由 Cho, et al. (2014) 提出。它将忘记门和输入门合成了一个单一的 更新门。同样还混合了细胞状态和隐藏状态,和其他一些改动。最终的模型比标准的 LSTM 模型要简单,也是非常流行的变体。

    以上的观点纯属个人通过学习这篇博文后的一些理解,有错误的地方请大家见谅。


    展开全文
  • 万春 《Orange’S 一个操作系统的实现》有感本文由 “碟中碟”虚拟光驱软件开发者——万春 提供 我经常遇到一些朋友,他们熟悉8086汇编语言,并且喜欢汇编语言.(很多这样的朋友)他们在日常使用汇编语言上,一般是...
  • 一个普通专科生,拿什么拯救你的未来?(精简版)

    万次阅读 多人点赞 2021-03-09 17:05:00
    一个普通专科生,拿什么拯救你的未来?(精简版) 总有人要赢,为什么不能是我!————— 科比-布莱恩特 原文地址:www.dushunchang.top 此文为小Du博客原创出品 转载,复制请注明原文出处 近来看到一则知乎头条,...
  • 一个人做饭有哪些推荐?

    万次阅读 2016-07-13 15:19:32
    Chen Sam ,一个空号。 355 人赞同 ...如果开一个微信公众号什么的有人会想看吗? 第一次认认真真地在知乎回答问题。在美帝了两年书,除了学术最多的时间就花在做饭上了。回答里有很多很多图..大约
  • 让读书成为种习惯

    万次阅读 多人点赞 2012-02-05 14:17:01
    阅读的重要性我想每个人都知道,往小的方面说,阅读能让人思考,给人快乐,让人发现书中的一片新天地,一部武侠小说就是一个世界,读书的时候能够让人流连其中,体会到生活中不曾感受到的乐趣。往大的方面说
  • C#为什么读作C Sharp

    千次阅读 2019-08-31 19:19:00
    笔者这学期有课程是《C#程序设计》,于是就百度了一下困惑已久的问题:C#是怎么命名的,它到底怎么,为什么有人作C Sharp。 百度百科有热心网友做了如下回答: 微软给它起名字的时候,因为C/C++在先,就起名字...
  • 研究生读什么

    千次阅读 2010-09-17 09:06:00
    最近也快要保研成功了,于是有一个问题一直缠绕在心头,研究生到底读什么?是用年的时间拼命地追求技术上的卓越吗?是用年时间掌握更牛的技术吗?其实如果把思路放远一点,就会想到很多值得自己注意的地方。...
  •  本文由@浅墨_毛星云 出品,首发于知乎专栏,转载请注明出处  ...文章盘点、提炼和总结了《GPU Gems 3》全书总计28章的核心内容。 同时这篇文章,也是【GPU精粹与Shader编程】系列文章对GPU精粹...
  • 同时希望【3天征集50条建议100个支持】,如果您对这个计划感兴趣,请花一分钟(1)点击“第一慕课计划——在广东海洋大学推广MOOC学习”,(2)使用“QQ帐号”登录果壳网,(3)...如果说自己有一个梦想,那就是成
  • 3、DPL、RPL、CPL分别代表的含义,存储在什么位置,以及它们之间的关系 4、不同特权级数据段之间的访问规则 5、不同特权级代码段之间的转移 6、代码段之间的转移对堆栈的影响 7、结合pmtest5.asm来见证不同特权级...
  • #includeint main(){ int average(float *p,int n); int search(float(*p)[4],int n); float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}}; average(*score,12); search(sco
  • 01 Preface 一切与自学相关的技巧都是老生常谈。 因为啊,历史上留下来的所有关于自学的技巧,都是...千万不要不小心就把自己搭进去…… 02 Proof-of-work git学习之Progit: https://git-scm.com/book/zh/v2 ...
  • 通过调用进行控制转移 1.关于堆栈切换 2.通过调用进行控制转移和返回的具体过程
  • 也很难,因为该课程使用过程评价方法,每完成一个任务,就获得期末总成绩中相应的分数。 (2)好玩不? 非常有趣。怎么证明,直接下载课程详细介绍(百度网盘);或者加入到“创业与MOOC交流群
  • JavaEE 从入门到放弃():Java EE 是个什么东西

    万次阅读 多人点赞 2018-07-09 19:34:09
    感兴趣的小伙伴可以戳下面的连接—— JavaEE 从入门到放弃(二):一文懂 Servlet JavaEE 从入门到放弃():为什么要用 JSP? JavaEE 从入门到放弃(四):MVC 模式 JavaEE 从入门到放弃(五):如何理解 ...
  • 从生源上讲,美国没有哪个学校可以把全国各省的理科状元和前十名大半收入囊中。...从优秀学生的聚集程度上讲,大概MIT加上Stanford都不足以与清华拼。 托福TOEFL和GRE毕竟没白考,上课能听懂百分之八九十。本
  • 课:一文懂马尔科夫过程

    万次阅读 多人点赞 2018-07-14 00:57:29
    1.马尔科夫决策过程(MDPs)简介 ... 赌博机问题是只有一个状态的MDPs; 注:虽然大部分DL问题都能转化为MDPs,但是以下所描述的MDPs是全观测的情况。 强化学习中的表述符号: 2.马尔科夫性 只要知...
  • 仔细想一想,在每天之中,大脑主动或被动的接受了太多的信息,如果没有给信息分出轻重缓急,整理归类,熵值就会不停的增加,进而更加混乱,12月份的时候,经朋友推荐,看了《最重要的事,只有件》这本书,曾持续...
  • 《人人都是产品经理》后感

    千次阅读 2015-02-02 09:14:00
    首先,做为产品经理,一定要喜欢做产品,看到一个玩意会自然而然的分析其背后的门道,分析其每一项设计对用户体验的影响。知道为什么很多麦当劳的是没有把手的吗?那是为了让用户明白,这个只能推。 其次,产品...
  • 《给教师的百条建议》后感3500字: 初苏霍姆林斯基的《给教师的百条建议》这本书,是因为招聘考试中经常会涉及到苏联著名教育家苏霍姆林斯基相关知识点。说来惭愧,当时我只为应付考试死记知识点而未能深入...
  • 《RUBY语言入门教程》读书笔记()

    千次阅读 2007-06-04 12:49:00
    读书笔记序Ruby是我在一年前看到一门新编程语言,...在开始这本书之前我按照网上的一个文档作了一个ruby on rails的一个简单信息系统的例子。让我觉得ruby on rails真是非常神奇。千里之行,始于足下。2007年6月2日我
  • 下面以pmtest2.asm为例,来讲述“实模式--保护模式--实模式”的转换过程。...、“实模式--保护模式--实模式”的转换过程 1、“实模式--保护模式”的跳转 (1)关中断 (2)打开地址线A20 (3)置cr0寄存器的末位为1
  • 曾国藩:盖士人读书,第要有志,第二要有识,第要有恒。 盖士人读书,第要有志,第二要有识,第要有恒。有志则断不甘为下流;有识则知学问无尽,不敢以一得自足,如河伯之观海,如井蛙之窥天,皆无识者也;...
  • 的概念

    千次阅读 2016-07-20 19:34:31
    都有一个EN控制使能端,来控制电路的通断。可以具备这种状态的器件就叫做态(,总线,......).   C=1,Y=A C=0,Y高阻     计算机里面用 1和0表示是,非两种逻辑,但是,有时候,这是不够的, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 130,452
精华内容 52,180
关键字:

一个门一个三读什么