上一页 1 ··· 8 9 10 11 12 13 14 15 下一页

2012年11月4日

转:linux文件读写

摘要: 读写文件,是作为一个操作系统所提供的最基本接口之一。我们就从写文件过程:open,write,close这几个接口来说起,描述写文件的那些事儿。平时,我们做应用程序的时候,常常用到读写文件的函数接口,就拿写文件来说,我们用C/C++编写时,用到了以下的函数接口:1>FILE* fopen(const char* restrict filename,const char* restrict mode);2>size_t fwrite(const void* restrict buffer,size_t size,size_t n,FILE * restrict fp);3>in 阅读全文

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

2012年11月1日

ctags的使用

摘要: [/home/brimmer/src]$ctags-R"-R"表示递归创建,也就包括源代码根目录下的所有子目录下的源程序。"tags"文件中包括这些对象的列表:l用#define定义的宏l枚举型变量的值l函数的定义、原型和声明l名字空间(namespace)l类型定义(typedefs)l变量(包括定义和声明)l类(class)、结构(struct)、枚举类型(enum)和联合(union)l类、结构和联合中成员变量或函数VIM用这个"tags"文件来定位上面这些做了标记的对象,下面介绍一下定位这些对象的方法:1)用命令行。在运行vi 阅读全文

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

apue3.14节的一个例子

摘要: #include "apue.h"#include <fcntl.h>intmain(int argc, char *argv[]){ int val; if (argc != 2) err_quit("usage: a.out <descriptor#>"); if ((val = fcntl(atoi(argv[1]), F_GETFL, 0)) < 0) err_sys("fcntl error for fd %d", atoi(argv[1])); switch (val & O_ACCM 阅读全文

posted @ 2012-11-01 20:14 追寻前人的脚步 阅读(289) 评论(0) 推荐(0) 编辑

2012年10月27日

《Orange’s 一个操作系统的实现》3.保护模式5----特权级概述(转)

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

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

2012年10月20日

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 追寻前人的脚步 阅读(460) 评论(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 追寻前人的脚步 阅读(539) 评论(0) 推荐(0) 编辑

2012年10月19日

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 追寻前人的脚步 阅读(1530) 评论(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 追寻前人的脚步 阅读(575) 评论(0) 推荐(0) 编辑

2012年10月18日

cscope的使用

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

posted @ 2012-10-18 22:25 追寻前人的脚步 阅读(1146) 评论(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 追寻前人的脚步 阅读(769) 评论(0) 推荐(1) 编辑

上一页 1 ··· 8 9 10 11 12 13 14 15 下一页

导航