10 2012 档案

《Orange’s 一个操作系统的实现》3.保护模式5----特权级概述(转)
摘要:学习过程中遇到一个对保护模式总结很好的Blog,转来分享一下。先说下特权级的概念,在保护模式下,系统依靠特权级来实施代码和数据的保护,相当于权限啦。特权级共有4个级别,0,1,2,3,数字越小表示权限越高。如图:较为核心的代码和数据放在较高(靠内)的层级中,处理器用此来防止较低特权的任务在不被允许的情况下访问处于高特权级的段。为了防止概念混淆,我们不用特权级大小来说明,改为内层(高),外层(低)来讲。特权级有3种:CPL,DPL和RPL,每个都是有4个等级。我对他们的关系理解是这样:一般来说,CPL代表当前代码段的权限,如果它想要去访问一个段或门,首先要看看对方的权限如何,也就是检查对方的DP 阅读全文

posted @ 2012-10-27 23:26 追寻前人的脚步 阅读(437) 评论(0) 推荐(0) 编辑

bochs的调试
摘要:bochs调试FAQ:1.Q:如何从引导扇区开始设置断点?A: BIOS被载入内存中运行,其引导扇区的地址一般都是在0x7c00,因为在实模式下,逻辑地址和物理地址是一一对应的,所以我们可以在启动bochs调试的命令行下输入pb 0x7c00或者vb 0:0x7c00就着输入cbochs就会在0x7c00处停下2.Q:我想在单步执行(s)后看到寄存器的变化情况,该怎么设置?A:输入trace-reg on后,再执行单步调试的时候都会显示寄存器的当前状态了.3.Q:在单步调试的时候,遇到一个调用子程序的指令,输入s会把调试跳进子程序中,如何只执行子程序而不要陷进去调试?A:在调试子程序的指令处, 阅读全文

posted @ 2012-10-20 16:46 追寻前人的脚步 阅读(463) 评论(0) 推荐(0) 编辑

linux内核学习---boot.s
摘要:! boot.s!! It then loads the system at 0x10000, using BIOS interrupts. Thereafter! it disables all interrupts, changes to protected mode, and calls the BOOTSEG = 0x07c0SYSSEG = 0x1000 ! system loaded at 0x10000 (65536).SYSLEN = 17 ! sectors occupied.entry startstart: jmpi go,#BOOTSEGgo: mov a... 阅读全文

posted @ 2012-10-20 09:15 追寻前人的脚步 阅读(546) 评论(0) 推荐(0) 编辑

linux内核学习---as86语法
摘要:as86(1) 名称as86 - as86-8086..80386处理器的汇编程序概要格式 as86 [-0123agjuw] [-lm[list]] [-n name] [-o obj] [-b[bin]] [-s sym] [-t textseg] src as86_encap prog.s prog.v [prefix_] [as86 options]描述 as86是8086..80386处理器下的汇编程序,它所采用的语法与Intel/MS采取的语法类似,而不同于广泛运用于UNIX下的汇编语法(译注,gas中的语法,... 阅读全文

posted @ 2012-10-19 16:22 追寻前人的脚步 阅读(1565) 评论(0) 推荐(0) 编辑

内核源代码阅读工具介绍
摘要:跳转在源代码阅读过程中,最常用的就是跳转到一个指定的函数的代码块中。下面我们先介绍最常用的跳转功能首选在内核源代码目录中,运行vim,然后输入::tj start_kernel如果tags文件中只有一个标号为start_kernel的索引,就会直接跳转到这个start_kernel函数的定义中,如果有多个标号为 start_kernel的索引,vim会列出各个start_kernel和它所在的文件的对应关系,用户可以通过数字键来选择需要浏览的是哪一个文件中的start_kernel。跳转快捷键每一次通过tj xxx来跳转不方便,把光标移动到某个函数上,然后输入:CTRL-]假设光标所在的位置是 阅读全文

posted @ 2012-10-19 08:10 追寻前人的脚步 阅读(585) 评论(0) 推荐(0) 编辑

cscope的使用
摘要:Cscope 是一个非常灵巧的工具,但是它仍然需要使用您最顺手的编辑器去发挥它强大的功能。 幸运的是,Vim 已经包含了 Cscope 支持。这篇指导主要介绍了 Vim 内在的 Cscope 支持,以及如何更好的通过已配置的 Map(a set of maps)实现搜索功能。下面假设您有基本的使用类 vi 编辑器的技能 - 不过并不需要 Vim 更特殊和高深的功能(熟悉 ViM 的一些高级功能,比如多窗口等需要一定的精力和时间)。您不需要了解有关 Cscope 的任何信息:这就是我们下面要阐述的。万变不离其宗,如果您使用类似功能的软件,比如 Vim 的ctags,您会发现 Cscope 与其非 阅读全文

posted @ 2012-10-18 22:25 追寻前人的脚步 阅读(1184) 评论(0) 推荐(0) 编辑

ctags查看内核源码
摘要:先说说ctags吧!其实它只是用来生成一个tags文件,也就是把源代码中的对象找到、并记录下来,放到tags文件里。其他的工作就交给VIM来完成了。“tags” 文件中包括这些对象的列表:① 用#define定义的宏② 枚举型变量的值③ 函数的定义、原型和声明④名字空间(namespace)⑤ 类型定义(typedefs)⑥变量(包括定义和声明)⑦ 类(class)、结构(struct)、枚举类型(enum)和联合(union)类、结构和联合中成员变量或函数下面开始如何用VIM+ctags查看源码:首先,要安装ctags。wuting@wuting-desktop:~$ sudo apt-ge 阅读全文

posted @ 2012-10-18 21:54 追寻前人的脚步 阅读(778) 评论(0) 推荐(1) 编辑

关于lseek()
摘要:#include "apue.h"int main(){ int flag=lseek(STDIN_FILENO,0,SEEK_CUR); if(flag==-1) { printf("can't seek\n"); } else { printf("seek ok\n"); printf("%d\n",flag); } return 0;}测试证明,lseek()返回为0,即文件的偏移值默认为0 阅读全文

posted @ 2012-10-16 21:53 追寻前人的脚步 阅读(181) 评论(0) 推荐(0) 编辑

运行apue下的第一个程序
摘要:PUE中的代码不是download下来就可以直接编译执行的。由于头文件的问题,需要做相关的设置,修改一下相关的文件。首先从http://www.apuebook.com/src.tar.gz下载源码压缩包,解压到相应目录,例如:mkdir /home/Rockics/srccd /home/Rockics/src/wget http://www.apuebook.com/src.tar.gztar zxvf src.tar.gz解压以后得到文件夹apue.2e。按照以下步骤完成设置,则可以编译相关代码:1.进入相应目录:cd apue.2e;2.修改文件Make.defines.linux:将 阅读全文

posted @ 2012-10-11 19:35 追寻前人的脚步 阅读(453) 评论(0) 推荐(0) 编辑

cygwin安装man帮助手册
摘要:在 Cygwin 安裝 Man PagesCygwin 里面的 man page 资料很少,经常 man 不到。找了许久,才发现The Linux Documentation Project有 man pages 可以下載。连接:http://tldp.org/manpages/man.php安裝方法如下:下载man-pages-3.42.tar.bz2或更新的版本把文件解压到 /usr/share/man/man-pages-3.42编辑 /etc/man.conf,加入以下MANPATH /usr/share/man/man-pages-3.42这样应该就能 OK 啦。注意:解压的时候ma 阅读全文

posted @ 2012-10-10 16:02 追寻前人的脚步 阅读(1470) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示