翻译

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

Posted on

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

学习笔记

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

Posted on

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

宅技术

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

Posted on

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

学习笔记

《汇编语言》的一些小结

Posted on

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

学习笔记

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

Posted on

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

心情随笔

退役了……

Posted on

2017年10月22号第三届CCPC哈尔滨站,第二次代表学校出去比赛并且第二次打铁…… 即便是现在了,我依然是心如刀割…… 许颂嘉卡题卡了4个半小时,说句心里话,我无法完全掐灭她的失常发挥间接导致比赛打崩的想法。 但理性的我还是很清楚,这也并不能完全怪她 因为我对数学不是很敏感,没想到素因子,如果我能对了解一点数学就好了,尽管只是一点…… 因为我们的团队配合有问题,我一直在怼我的题,要是我能抽出点时间一直帮许颂嘉解决这个问题就好了…… 因为比赛前我并没有把许颂嘉的一些问题指出来,她写代码会写的很长很乱我在很早之前就知道了,但是当初都A了再加上她自己手速挺快我也没有说什么,现场赛让我帮她看代码就真的很致命…… 因为没有正确发挥陈雨情的作用,老实说,陈雨情虽然菜,特么的经常读错题让我白写,但是在考虑问题方面往往比我们两个都全面。这场也是的……打到一半才让她看…… 因为我太菜了,要是我能先比她出 […]

思维

UVALive 7505 Hungry Game of Ants

Posted on

老实说,这题我在现场赛大概写不出来。 感觉还是比较需要脑洞。 题意: 一排不同重量的蚂蚁按重量排成一排玩饥饿游戏,每只蚂蚁最开始选择一个方向,左或者右,大蚂蚁吃小蚂蚁,并且使自己增加小蚂蚁的重量,如果重量相同,左吃右。 问 n 只蚂蚁,第 k 只活到最后的方案数。 思路: 直接切入正解。 首先第k只蚂蚁必须选择左边,不然只能被吃。( $n \neq k $ ) 如果想要第 k 只蚂蚁获胜,必须满足以下两个条件 $ weight[ max(p_1), k ] > weight[ 0, max(p_1) ) $ $ weight[ 1, min(p_2) ] <= weight( min(p_2), n ] $ 其中,$ max(p_1) $ 是指,满足第一条不等式的最大的 $p_1$ 同理,$ max(p_2) $ 是指,满足第二条不等式的最小的 $p_2$ 而其中,只要满足第一条不等 […]