悲剧就是把美好的东西撕碎给人看

或许是因为这种黑暗的剧情看的少了,在看完恶魔人之后,我基本是呆滞的,我不知道该说些什么,但是我在心里觉得我必须得写下点什么。 悲剧就是把美好的东西撕碎给人看 这句话在这部动漫中得到了很好的体现。 明的父母每年都会在国外给他寄来一双鞋子,明穿着最新的鞋子去见父母,等来的却是恶魔化的父亲,在明不得不杀死自己的父亲的时候,还给了一个鞋子的特写。 害怕的人们拿起武器杀人,不害怕的人手无寸铁,反遭其害。 在了爆出明是恶魔人的时候,他的朋友最后仍然接受了他,他的泪水与执着仍然感动了一部分人。但那有怎么样,然而这些所有象征着善良的人物,在第9集全部死光了。被肢解的尸体被人们高举着,在美树家燃烧的火焰中欢舞。 整部动漫给我印象最深刻的地方,无异于爱与希望的传递。第9集美子为美树殿后希望美树跑起来,传递着生的希望,美树跑向明,想将信任与希望传递给明,但是没跑多久,就被“善良”的人们带着朋友的尸体拦下,被一刀从肩撕到腰。迟来的明抱着美树的头,尝试说服了,最后还是反目成仇。在第10集中,反复出现的接力,在明与了之间的掉棒一开始让我十分困惑,但是和这里联系起来,一切都说的…

保护模式大坑——特权级详解

终于看懂系列………… 本菜鸡这次主要讲的内容是对三个特权级DPL,CPL,RPL在x86下的理解,如果大佬想看的不是这个就请关上这个标签页。 一些自我理解与背景 负责任地说,操作系统是一个死循环,其间有很多确定和与不确定的中断与调用,最后再被不确定地break掉。在中断与调用中,我们作为用户自然是不可能随意触碰,因为用户不都是满怀好意并且是极其细心的。因此操作系统需要对资源进行保护,而特权级就是保护模式最大的体现。 特权级简介 特权级使用两位4个级别,特权级0通常赋予内核,特权级1,2则是一些系统级服务,常见的就是外设,而我们的应用程序全都在特权级3。 值得注意的是,任何对段寄存器的修改都会触发CPU进行特权级检测,以防任务越权访问。 特权级字段有以下4个: DPL: 段描述符特权级,最好理解的特权级,位于段描述符的高32位,表示的是这个段描述符所表示的段的特权级。 RPL: 请求特权级。位于选择子的最后两位。字面意思,表示请求时的特权级。这里强调,选择子可以保存在任意段寄存器中。 CPL: 当前特权级。当前任务/cpu/系统所处的特权级,永远位于当…

红黑树入门

刚看完网易公开课上算法导论中的平衡搜索树,传送门,讲的真的炒鸡好,这里就稍微总结一下。 另一方面,视频是英文板书,在一些地方讲述有点慢,这时候就凸显了文章的优势了。 红黑树性质 红黑树的性质判定红黑树的充要条件,性质见下: 1. 每个节点不是红色就是黑色。 2. 根节点和叶子节点必须为黑色。 3. 每个红色节点的父亲节点必须为黑色节点。 4. 对于每个节点,在它到每一个子树的叶子节点的所有路径中,所经过的黑色节点数量相同。并定义这个数量为黑高(black height)。 补充一条推论,由性质3易得,一颗红黑树的红色节点不会超过总节点数的一半。 而对于第2条性质,我们一般会使最后指向的空节点染色成黑色即可。 红黑树的树高 先说结论,红黑树的树高 height 不会超过 $ 2log_2{(n+1)} $,即 $ height \leq 2 log_2{(n+1)} $。 证明如下: 将所有红色节点合并到其父亲节点,同时使该节点的孩子节点也合并成为其父亲节点的孩子节点。 这时候我们会得到一棵特别的树,…

Photon 也许能成为你最喜爱的容器操作系统

Phonton OS 专注于容器,是一个非常出色的平台。 —— Jack Wallen 容器在当下的火热,并不是没有原因的。正如之前讨论的,容器可以使您轻松快捷地将新的服务与应用部署到您的网络上,而且并不耗费太多的系统资源。比起专用硬件和虚拟机,容器都是更加划算的,除此之外,他们更容易更新与重用。 更重要的是,容器喜欢 Linux(反之亦然)。不需要太多时间和麻烦,你就可以启动一台 Linux 服务器,运行Docker,然后部署容器。但是,哪种 Linux 发行版最适合部署容器呢?我们的选择很多。你可以使用标准的 Ubuntu 服务器平台(更容易安装 Docker 并部署容器)或者是更轻量级的发行版 —— 专门用于部署容器。 Photon 就是这样的一个发行版。这个特殊的版本是由 VMware 于 2005 年创建的,它包含了 Docker 的守护进程,并可与容器框架(如…

《真象》第四章 保护模式入门

回过头来看以前写的代码居然有点看不懂了,还是应该写一下笔记啊……顺便吧第四章复习一下。 《真象》是指《操作系统真象还原》这是第四章笔记,保护模式入门。 1. 保护模式起于80286,为16位的CPU,兴起于80386,32位的CPU。保护模式下一般都是32位及以上。 2. CPU有三种模式:实模式,虚拟8086模式,保护模式。严格意义上32位CPU无实模式。 3. 制定运行模式编译:使用法 [bits] 16/32 4. 运行模式反转:指运行模式在16位实模式,操作数为32位;或者当前运行模式是32为保护模式,操作数为16位。操作系统兼容两种运行模式,所以支持两种操作,一般临时的反转会在指令前自动加上’66’或者’67’。(不过这实际上是编译器的工作,我们只需要知道就好了 5. 在保护模式下,必须用ecx表示循环次数,其他都兼容。 6. 对于段寄存器的入栈,无论指定在哪种模式下运行,都是按照当前模式的默认操作数大小压入的。而对于通用寄存器和内存,入栈是sp移动大小有操作数决定。…

Linux下学习王爽老师的汇编语言

王爽的汇编语言是基于windows下的dos和masm………… 这个让我很无语,因为我平时根本不会去用windows,而且在Linux下也没有masm…… masm与nasm区别开的m应该就是微软的意思。 更让人无语的是,两个编译器的语法还有很大差别…… 因为编译器不同导致语法差别我还是第一次碰到…… 不过汇编作为第一门语言,除了指令以外的伪指令有所不同还是可以理解的。 开始正文。 freedos fochs官网有提供freedos的镜像,所以十分方便。 只要下载这个镜像,再用模拟器去模拟加载就可以了,在解压目录下运行bochs即可自动加载。 bochs镜像 传送门 找第一个就是freedos的镜像。 界面是这样的 之后的操作就完全跟书上的一样了………… 突然发现没办法用masm……这是最僵硬的………… dosemu 没办法,用了dosemu。 dosemu的一个优点在于默认会在它的d盘,挂载你的用户根目录,这就免去修改镜像或者无从挂载的麻烦。 界面是这样的 比起bochs来速度很快,感觉bochs用来模拟dos有点牛…

《汇编语言》的一些小结

今天汇编终于到了,马买皮,早知道这么慢就去京东上买了。 我为什么要学汇编 关于汇编,以前看《深入理解计算机系统》的时候就大致看了一蛤,当然是远远不够的,而且这本书我从大二看到现在也还没看完…… 而我稍微浏览了一下我们这学期的教科书,跟那个煞笔老师一样让我感到很遗憾的是,书上也完全没有汇编。 要是真的学得这么浅的话,就不止是让人遗憾,更是让人觉得失望了。 是的,我已经很自然的认为学习操作系统就需要学并用到汇编,比如MBR还想用什么写,那是直接接触硬件的部分,除了汇编没有其他选择。emmmmm,据说汇编还有其他在debug等追根溯源上作为终极武器有很强的功能,据说啦,据说。不过看了一点之后发现汇编和操作系统在一些部分是很通用的。 另外,在《操作系统真象还原》其实最基础的假设就是读者都已经学了汇编。 顺便吐槽一句,王爽的《汇编语言》居然平台居然是Windows的,醉了。 正文 2017-10-28 00:37:44 星期六 1. 对于一串01字符串,既可以表示命令,也可以表示数据,CPU区分的方式是通过寄存器分割开来。比如说固定让这个寄存器访问命令,让那个寄存器…

《操作系统真象还原》的一些笔记

终于有时间开始搞我的OS Demo了。 希望能在元旦之前搞完。 这里不定时更新记录我在《操作系统真象还原》的一些笔记。以此督促和勉励自己。 很早之前就想看这本书了,之前在一个腾讯员工的书单上看到的,虽然貌似没什么名气,但看了一部分觉得还是挺有趣的,是我能非常乐意看下去的类型。那种带着程序员的幽默而不乏真实技术的书籍。 2017-10-24 23:50:14 星期二 1. 编译器提供库函数,库函数封装了系统调用,这样的代码集合称之为运行库。 2. 用户进程永远不会因为进入了内核态而变身为操作系统。 3. cs: ip。 汇编指令,表示当前执行的指令。cs是代码段寄存器,ip是指令指针寄存器,指令指针计算为 $ cs \times 16 + ip $ 4. DRAM,动态随机访问内存。物理内存,也就是内存条就属于DRAM。其动态并不是内容变化的意思,而是保存时间短,需要顶起的刷新。 5. 地址总线宽度决定可以访问的内存空间容量。书中所说是决定内存空间大小,我觉得应该是容量,或者说是上限,更为合适。…