[0]写在前面 0.1)我们讲 CPU的保护机制,它是可靠的多任务运行环境所必须的: 0.2) CPU保护机制:分为段级保护 + 页级保护: 0.2.1)段级保护分为:段限长 limit 检查.段类型 type 检查.特权级检查.等等-- 0.3)我们着重讲 段特权级检查(bit 6~5): 特权级检查又分为:访问数据段时的特权级检查 + 代码段之间转移控制时的特权级检查:(这里,我们着重讲 代码段间转移控制时的特权级检查) 0.4)版权声明:本文部分内容图片总结于李炯的"Linux内核完全剖析…
[0]写在前面 0.1)本代码旨在演示 从 ring0 转移到 ring3(即,从高特权级 转移到 低特权级) 0.2)本文 只对 与 门相关的 代码进行简要注释,言简意赅: 0.3)文末的个人总结是干货,前面代码仅供参考的,且source code from orange's implemention of a os. ; ========================================== ; pmtest5a.asm ; 编译方法:nasm pmtest5a.asm -o…
[0]概念定义 0.1)一致代码段: 简单理解,就是操作系统拿出来被共享的代码段,可以被低特权级的用户直接调用访问的代码, 但是特权级高的程序不允许访问特权级低的数据. 通常这些共享代码,是"不访问"受保护的资源和某些类型异常处理.比如一些数学计算函数库,为纯粹的数学运算计算, 被作为一致代码段. 一致代码段的限制作用 1.特权级高的程序不允许访问特权级低的数据:核心态不允许调用用户态的数据. 2.特权级低的程序可以访问到特权级高的数据.但是特权级不会改变:用户态还是用户态. 0.2)…
好的文章顶一个 回到顶部按钮 通过使用 jQuery 中的 animate 和 scrollTop 方法,你无需插件便可创建一个简单地回到顶部动画: 1 // Back to top 2 $('a.top').click(function (e) { 3 e.preventDefault(); 4 $(document.body).animate({scrollTop: 0}, 800); 5 }); 1 <!-- Create an anchor tag --> 2 <a class=…
十五个常用的jquery代码段 回到顶部按钮 通过使用 jQuery 中的 animate 和 scrollTop 方法,你无需插件便可创建一个简单地回到顶部动画: 1 // Back to top 2 $('a.top').click(function (e) { 3 e.preventDefault(); 4 $(document.body).animate({scrollTop: 0}, 800); 5 }); 1 <!-- Create an anchor tag --> 2 <…
i. Ctrl-M-O   折叠所有方法 ii. Ctrl-M-P   展开所有方法并停止大纲显示(不可以再折叠了) iii. Ctrl-M-M   折叠或展开当前方法 iv. Ctrl-M-L展开所有方法 其他的快捷方式: 1. 怎样跳转到指定的某一行?两种方法:Ⅰ. Ctrl+G Ⅱ. 双击状态栏中的行号 2.. 怎样创建矩形选区?两种方法:Ⅰ. 摁住alt键,然后拖动鼠标即可.Ⅱ. 按住Shift+Alt点击矩形的左上和右下位置即可. 3.怎样快速隐藏或显示当前代码段?Ctrl+MM 4.…
在前端开发中我们经常会输入相同的一些基本代码,例如常用的jquery引用,bootstrap框架,cssreset等等,如果每次使用时在复制粘贴感觉很麻烦,这里介绍一种更为简洁的方法 利用sublime的snippet功能快速创建代码段 打开Tools->New snippet我们能看到如图所示内容 要是没有一点英语基础,就有点抓瞎了,今天就来介绍一下如何使用这超级功能 首先简要介绍一下snippet的组成部分: content:其中必须包含<![CDATA[…]]>,否则无法工作, 里…
配置YouCompleteMe 1. 安装vundle vundle是一个管理vim插件的工具,使用vundle安装YouCompleteMe比较方便. 按照作者在https://github.com/gmarik/Vundle.vim#about提供的方法安装好vundle.(主要是下载解压,病略微修改 .vimrc) 2. 使用vundle安装YouCompleteMe 主要根据作者自己的建议整理 https://github.com/Valloric/YouCompleteMe 在.vim…
序1:30段简单代码段(有删减) 1 . 区分 IE 和 非 IE 浏览器 if(!+[1,]){ console.log('ie浏览器'); }else{ console.log('非ie浏览器'); } 2. 将日期直接转换为数值. 3. 最简单的选择运算符 || var a = 0 || 3; console.log(3); 4. 单链式运算 ( 如:a++ - 1 ) var a = 10; console.log(a++ - 1); // 先执行 a - 1, 在执行 a = a +…
进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等.不过进程对这些内存的管理方式因内存用 途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的.对任何一个普通进程来讲,它都会涉及到5种不同的数据段. Linux进程的五个段 下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区都是干什么的. BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.B…