自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

陈莉君的专栏

仰空冥思

  • 博客(125)
  • 收藏
  • 关注

转载 Linux内核源码分析方法

以下是刚接触内核三个月的同学,通过对一个内核特性的分析,总结出一套分析内核的方法。一、内核源码之我见Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径。我们都知道,想成为优秀的程序员,需要大量的实践和代码的编写。编程固然重要,但是往往只编程的人很容易把自己局

2013-03-22 09:21:55 4451

原创 5 基于IntelVt技术的Linux内核调试器主要问题以及解决

在开发基于虚拟化的调试器时遇到了很多问题,有些问题看似简单,但是解决起来很不容易。这是因为我们的调试器工作在VMXroot模式,而在这种模式下引发的崩溃性BUG,没有任何软件调试器可以对其进行跟踪分析,除非这个调试器同样运行在VMXroot模式。专业的虚拟机开发人员可以使用硬件调试器来解决开发中遇到的问题。x86架构是支持外接硬件调试器的,类似于JTAG接口,这种调试器价格昂贵,大概两万美

2012-09-20 14:12:09 3557

原创 4 基于IntelVt技术的Linux内核调试器- 调试器设计与实现(2):调试核心

4.1反汇编引擎如果说调试框架是一个调试器的灵魂,那么接口与反汇编引擎就是一个调试器的身体。我们在调试过程中是要阅读指令代码的,而反汇编引擎则提供将二进制元指令翻译成可阅读的汇编代码这个功能。设计并实现一个初级的反汇编引擎很简单,但是计算机指令系统并不简单,将这个反汇编引擎实现到可以实际应用的级别需要不断地调试与修复Bugs,这个过程需要耗费大量精力。所以我选择了开源反汇编引擎。虽

2012-09-20 14:02:35 3858

原创 3.基于IntelVt技术的Linux内核调试器- 调试器设计与实现(1):基本框架

本内核调试器拥有如下几个主要模块:虚拟化框架(调试框架)、接口模块、反汇编引擎、键盘驱动模块、符号表模块、调试控制台模块等。以下内容为各个模块的设计与实现。3.1虚拟化框架虚拟化框架实现的主要功能就是创建一个虚拟CPU,并将在当前物理CPU上运行的操作系统转移到虚拟CPU上,而调试器则运行在当前CPU上。实际上就是CPU控制权的转移,或者说是CPU上下文的转移。这样在虚拟CPU

2012-09-20 13:49:05 4094

原创 2.基于IntelVt技术的Linux内核调试器- 调试器主要原理与环境搭建

2.1 传统调试器原理传统的内核调试器在实现断点功能时,都是修改中断向量表,捕获CPU的单步异常和断点异常来实现的。被调试软件只要检测中断向量表是否被修改就可以判断当前是否运行了内核调试器。图2-1-1原理图:操作系统正常的CPU异常处理图2-1-2原理图:传统调试器2.2 硬件虚拟化技术的调试器原理基于VT-x技术的内核调试器主要原理是创建一个虚拟机,

2012-09-20 13:42:09 4266

原创 1. 基于IntelVt技术的Linux内核调试器- 引言与IntelVT-x 技术简介

<!--@page {margin:0.79in}h1 {margin-top:0.08in; margin-bottom:0.22in; direction:ltr; color:#000000; line-height:0.28in; page-break-inside:avoid; widows:0; orphans:0}h1.western

2012-09-20 13:32:01 7352

原创 开源项目-基于Intel VT技术的Linux内核调试器

本开源项目将硬件虚拟化技术应用在内核调试器上,使内核调试器成为VMM,将操作系统置于虚拟机中运行,即操作系统成为GuestOS,以这样的一种形式进行调试,最主要的好处就是调试器对操作系统完全透明。如下图:       图1 虚拟化调试器框架    传统的内核调试器的工作原理是接管中断向量表中的INT1和INT3处理程序。前者对应的是 #DB异常,通常是设置了单步标志后引发的

2012-08-09 09:11:58 5147 2

原创 弹性云存计算平台CloudXY新人学习汇报

在cloudxy邮件列表中,有一位新成员bin yin发来如下邮件:    诸位,我很幸运的发现了CloudXY,对它简单了解后突然激动起来,感觉昏暗混沌的生活猛的被一缕阳光刺中,我预感到一个新纪元将要来临。  于是告诉自己应该去为之做些什么,去追求开源带来的快乐,到技术的前沿摘取硕果,提高自己的同时奉献社区。   于是12月14日我联系康哥,请求参与到Cl

2011-12-26 10:20:34 3924

原创 新一代弹性云计算平台cloudxy发布0.1版

从年初到现在,经过大半年的奋战,康华(博客)在工作之余,带领西邮兴趣小组的同学进行弹性云存储项目的开发,目前终于完成了第一个版本,取名cloudxy,其中的xy意味着,任何感兴趣者都可以加入进来,或许因为您的加入,这个xy就有了未知的扩展。 Cloudxy 立足于实现虚拟子网(以太网)的弹性云计算平台 该项目主要包含有两个子项目: HLFS - 虚拟机分布式镜像存储 (类似于亚马逊

2011-11-27 21:19:33 3937

原创 虚拟内存实践

<br /><br /> <br /> <br /> <br /> <br /><br />实现目的: 通过实验了解虚拟内存<br /> <br /> 实验内容:在proc 文件系统下,我们建立一个文件,每次向这个文件写人字符时,调用相应的虚拟内存处理函数/* mtest_dump_vma_list():打印出当前进程的各个VMA,这个功能我们简称"listvma" mtest_find_vma(): 找出某个虚地址所在的VMA,这个功能我们简称“findvma" my_follow_page( ):根据页

2010-11-04 11:07:00 5905 1

原创 LKD第三版翻译时

<br />  Linux Kernel Development第三版英文版已经出版,目前有几个学生在做两个版本之间文字差异的校对,并插入到第二版译文中,此事繁琐而枯燥。与此同时,我们翻译组正在翻译。合作者康华和张波,是99年分析Linux内核源代码时带的第一届学生。现在的康华,已经属于大牛的行列。作为老师,不仅为他们欣慰,也为他们对Linux的默默贡献而自豪。本书在业界如雷贯耳,其原作者Robert Love,更是一个传奇人物,写作本书时还是在校大学生,追寻他的足迹,或许对我们有所启发,在网上找到早年对他

2010-08-10 10:02:00 4684 5

原创 Google失败的产品

<br />   当今天看到google对其两款所谓失败的产品的处置之后,感到Google对中国文化“欲进则退”的现实应用。   第一条消息:Google将用Nexus One作为赠送开发者机型-“Google宣布停售Nexus One手机后,这么多剩下来的硬件将会去哪里?不要担心,开发者们需要它,Android开发博客今天宣布Nexus One将完全被解锁,并取代G1成为Google合作开发者的测试机型,Google不但会为它安装最新的系统,还配备了开发所需要的各种套件。”  第二条消息:谷歌Wave

2010-08-06 16:26:00 3941

原创 心急吃不了热豆腐

<br />  “心急吃不了热豆腐”这个耳熟能详的词无人不知晓,但且慢,知道归知道,能否做到,那是另一码事。     随便进入一个领地,都是庞大而复杂,让围观者总有老虎吃天无从下口的感觉,而虎视眈眈者又群聚而来,谁不想心急如焚地占一块地盘呢,市场的确是这样的。可是,到了学习和工作这块地盘,如此的心态往往把自己造就成一直不断扳棒的猴子。不信你可以试试,在IT这个庞大的天地,眼花缭乱的东西太多,每一件几乎都是诱人的,但当你拿到手上,又发现那不是你所能掌控的...    Linux的学习也莫过如此,想一口吃个

2010-08-06 15:56:00 3887 2

原创 学生助教领你入门Linux

<br />   又有新的研究生9月份要入学了,暑假是补基础的好空挡。可我手上已经有不少要带的本科生:Linux兴趣小组和Linux3+1班,大约60~70人,大家水平各不一样。这给业余时间的带领增添不少麻烦。于是,在学生中挖掘出助教,也许他更适合学生的口味。这个任务给胖兔子后,他的负责和执行力与我所想几乎吻合,看看他发给大家的第一封邮件“暑假我们一起学习linux吧!”  暑假期间由我来组织大家学习linux 下C语言基础。不管我们每个人身处那里,我们的目标都一致:掌握好linux C基础。具体教材就

2010-08-06 15:55:00 5264 1

原创 嵌入式系统联谊会-桥梁搭起时

   成为嵌入式系统联谊会的一员,觉得自己像闯进大象园中的一只小鹿,脖子长只是虚高,整体实力与大象是难以比拟的,但脖子长自然可以东张西望,东家西家的优势尽收眼底。   本次联谊会的主题为“嵌入式系统新技术论坛http://www.esbf.org.cn/index.asp”,演讲者给出的话题是否就是新技术,听众可能各有自己的看法。实际上,联谊会只是一个民间组织,因为两位何老师的自我奉献和一些其他委员和工作人员的协助,才使这样一个中立组织有每年四次的主题讨论,并在委员之间搭起交流的桥梁。   每位委员是一本书

2010-08-06 15:53:00 3006

原创 移动终端引起的平台之争

创造一个无线帝国,这是众多IT商家的梦想。“硅谷海盗”乔布斯所创造的苹果帝国,羡煞了本在各自领域独领风骚的大佬们。谷歌在推出其Android系统时,其实,那绝不仅仅是一个手机操作系统或软件商店而已。它的野心,是想通过这个入口把用户引向谷歌的网站,利用自己在互联网的优势形成新的模式。Intel在推出Moblin时,其实,那也绝不仅仅是在移动操作系统市场分一杯粥。它的野心,是想通过这个入口把自己的“芯”贯穿于各种移动设备。诺基亚收购Symbian并将其开源,其实,那也绝不仅仅是对Symbian的拥有,而是开放的

2010-07-09 11:42:00 3249 4

原创 点燃的激情

<br /> 《Linux内核分析》课程上机验收的场面混乱而热闹,只因为上周我扔出一把火苗,所有学生必须背上装有Linux的笔记本来实验室,一个个单独演示编写的内核模块程序!严格检查是学生所反感的,但在学生只在乎分数的情况下,严格和公平验收又是点燃大家睡眠惰性的一种有效方式。 <br />  1对100多名学生,所谓的一个个验收显然不现实,这使我想起了操作系统中惯常用的索引方式。因为软专业有10多名学生在Linux兴趣小组,他们对Linux内核有一年左右的接触和钻研,把他们升级到助手的级别显然可以降低我的工

2010-06-29 20:42:00 3359 2

原创 基础的多米诺骨牌

  关于“基础”之重要的话题引起一片争议,这似乎是一个无尽的话题。而实际上,观点之不同在于出发点和向往之终点的差别。     “兴趣”是落地有声的借口,在兴趣的背后似乎就可以省却枯燥和艰辛,而把兴趣要坚持到成为习惯,这中间付出的艰辛和为枯燥而抓狂的段段落落,很可能被成功的光环所遮掩。 依然记得二十年多前在西电的操场每天下午跑十圈的训练,4000米不是一个小数,现在即使从0数到4000,也缺乏这个耐心。但当一步步往前跑时,那些过往的脚步被时间的流逝踩在脚下。在看似毫无意义的一步步脚印中,为未来N年打下的基础不

2010-06-04 22:58:00 4084 4

原创 在每一条错误的道路上成长

  在操作系统的课程的实践环节,给学生给出了Linux下关于进程,线程和死锁的部分程序,然后让大家补充完整,并回答后面的问题,例如,关于线程:<br />--------------------------------------------------------------------------------------------------------------------------<br />  通读下列代码:<br />/* <br />* POSIX 下线程控制的

2010-06-02 22:36:00 5709 8

原创 为什么是基本功

 前面两篇“试炼基本功”读者的留言让我反思,说明我没有把问题说清楚。<br />不管学任何东西,基本功的重要性是不言而喻的。大家之所以不愿意练基本功,因为其枯燥并看不到其实用价值何在。实际上,这又涉及到另一个问题,如何练基本功,是死练还是灵活应用?是在一个水平面上往前走还是在一个稍有陡度的陂上往上爬?是在思考中不断修订还是出手后就不知修订的空间在哪里?<br />比如,求最大数的问题:1)求两个数的最大数2)求n个确定数的最大数3)求不确定数的最大数4)...<br />第一个问题仅仅用条件语

2010-05-31 21:49:00 3792 1

原创 试炼基本功(二)

在上文中提到strlen()函数,最简单的实现应当如下:size_t strlen(const char *psrc){     size_t  length ;    for (length = 0; *psrc; ++length);       psrc++;    return length;}而实际上,根据指针和字符串的特性,可以写出更简洁的代码: size_t strlen(con

2010-05-27 21:45:00 1859 5

原创 试炼基本功

<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">有谁不知道万丈高楼平地起?但那个基地打起来实在无聊和费劲。一座高楼,几乎要用一半时间打基地,搞建筑的人来不得半点疏忽,可我们局外人,急于看到的是,第一层何时能升起,第二层..

2010-05-24 22:52:00 1515

原创 《Linxu内核修炼之道》转载之前言

  《Linux内核修炼之道》本是fudan_abc发表在自己博客上的系列文章,因点击率的不断提升,得到出版社的青睐。曾经读过部分内容,觉得有趣通俗,出版社希望就此写几句推荐语,也就把自己的感受写出: “ “<span style="font-size:10.5pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-f

2010-05-12 16:16:00 1467 1

原创 那些十年前毕业的学生

   两千年毕业的学生,五一期间毕业十周年聚会,我们几位老师被邀请参加。2000<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">年,这个跨世纪的年头,在今天看来,普通如2010<span style="font-f

2010-05-03 10:43:00 1826

原创 面对实际的系统-Linux内核时

“编译模块,报错了!” “内核函数找不到了!” “模块无法插入!” ”2.6.23之前与之后的代码,很不兼容!“   在Linux内核源代码分析与应用的实验课上,各种问题扑面而来,有的同学畏缩了,”为什么会有那么多问题?为什么没有现成的答案?为什么难以抓到主线?为什么例子中的函数编译时又找不到了?”  一般课程的教学,习惯于在一个实验系统上去做,系统是稳

2010-04-20 14:49:00 1211 1

原创 安得倚天抽宝剑——搭建自己的Linux实验系统(二)

创建root文件系统基本要求我们这里着手搭建的root文件系统,不必包含太多内容,仅仅提供最基本的目录结构、系统命令就可以了。并且配置文件也应该尽量修改得简洁明了。root文件系统必须包含的内容如下:n 包含/dev 、/proc、/bin 、/sbin 、/etc 、/lib 、/usr 、/root 等目录。n 包含一组基本命令,如ls这样的文件管理命令,insmod这样的系统管理命令。 

2010-03-30 17:30:00 1969 1

原创 安得倚天抽宝剑——搭建自己的Linux实验系统(一)

当你对操作系统已经有了基本的把握;而且对Linux也有了初步的了解,可是,如果你是一个程序员,你肯定还是会觉得惴惴不安:Linux到底是怎么回事?求知和求实是程序员的天性,我们当然有义务满足自己的天性,所以,相关的实践必需在此展开。可是,我们到底要实践些什么呢?不如从搭建Linux系统开始。在搭建的时候,我们需要制作一个root文件系统:你很清楚了,所有必须的软件和数据都在上面,只要我们选定的

2010-03-28 21:44:00 2352 1

原创 Linux系统启动的标准流程

系统的启动是指从计算机加电到显示用户登陆提示的整个过程。我们将在这里对整个流程以及关系到的一些内容做讨论。过程主要可以分为两个阶段:载入内核和准备运行环境,我们分别进行讨论。本部分的讨论只基于i386硬件架构,但大部分内容是有共通性的。图一 启动过程综述载入内核(将内核载入内存,并将控制权传递给它)    计算机加电到Boot Loader开始工作,硬件含量远大于软件含量,所以这里暂不提及,如

2010-03-27 15:03:00 1317

原创 抓取内核信息(三)-找到入口点

<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">  如果你深思一下语言中的任何一种数据类型,是否是一种抽象?比如,C<span style="font-family:宋体;mso-ascii-font-family:"Ti

2010-03-20 22:42:00 1252

原创 抓取内核信息(二)-遍历数据结构

        观察一个不断变化的事物,难,因为每个瞬间的信息可能 都有不同。但,在这些不同的背后,又有诸多的相似,因此 抽象就是认识事物本质的一种途径。      <span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">与任

2010-03-14 11:23:00 2116 1

原创 抓取内核信息(一)-从简单入手

<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman""> 当Linux<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";ms

2010-03-13 16:05:00 1543 1

原创 操作系统第二课(二)—数据结构基础

<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">人类的繁衍是永恒的话题,“我从哪里来,要到哪里去”,没有人能回答这个问题。如果把人类的衍生过程画出一颗树,这是一颗找不到根而叶子无尽长下去的树。计算机,或叫者电脑,虽然远比不

2010-03-07 23:17:00 3247 5

原创 操作系统第二课(一)—追寻历史的足迹

     <span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">历史对于价值的判断,不言而喻。可是,面对眼前的某个事情,我们常常以自己的主观认识推测这件事的来龙去脉,其中的偏差可想而见。  <span style="font-f

2010-03-05 21:43:00 1245 2

原创 操作系统第一课

<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman""> 每学期都要讲授操作系统课程,于我,就是陈年旧饭,在一遍遍的翻炒中,能不烦么?怎么才能为之不烦?于学生,是一门抽象的无法触手可摸的云朵,仰望云端,但无法喊雨滴下来。   <s

2010-03-03 23:25:00 1514 3

原创 Meego 与其他手机操作系统PK

  <span style="font-size:12.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">看到Meego<span style="font-size:12.0pt;font-family:宋体;ms

2010-02-18 16:07:00 2254 15

转载 Meego登场

MeeGo是一个基于Linux的开源手机操作系统计划,将结合诺基亚Maemo中基于Qt的用户界面及英特尔Moblin的核心软件平台。它于2010年2月的全球行动通讯大会中宣布。兼容性方面,MeeGo将支援英特尔的AppUp及诺基亚的Ovi数位发行平台。MeeGo将同时支援ARM和x86的处理器。MeeGo是一个由Linux基金会于1999年注册的域名。• MeeGo

2010-02-17 11:38:00 1641 1

原创 虚拟化下的进程演变(三)—繁衍

在Unix/Linux的世界,除init进程外,没有进程是从石头缝蹦出来的,也就是Init进程承担着祖师爷的角色。一个进程PID命名空间的诞生也遵循繁衍的规则,只是这种繁衍不是克隆一个进程,而是克隆一个小国,因此,clone()这<span style="font-size:12.0pt;font-family:楷体_GB2312;mso-hansi-font-family:楷体

2010-02-10 23:45:00 1330

原创 虚拟化下的进程演变(二)—命名空间

虚拟化下的进程演变(二)—命名空间“虚拟化下的进程演变(一)—移民问题”一文中,所述的身份号的唯一性是相对概念,也就是说需指明其所处范畴。这就引出计算机科学中的一个术语-命名空间(namespace)。  <span style="font-size:12.0pt;font-family:楷体_GB2312">命名空间-表示标识符(identi

2010-02-09 22:15:00 3011

原创 虚拟化下的进程演变(一)-移民问题

 在现实世界中,“人”是一个名词,显然,这样的名词无以描述每时每刻都在动态变化着的人,那我就造一个词-“行人”,此行人非行走着的人,意指动态变化着的人。不管这个人呆在家里,走在路上,还是坐在飞机上,标识他唯一身份的就是身份证号。在计算机的世界中,“程序”是一个名词,是一堆代码的集合,如果它只是静静的躺在磁盘上,即使代码堆积如山也毫无意义,运行起来的程序才能如愿以偿,由此也给它起

2010-02-08 23:38:00 1412 1

原创 学习和掌握一种RTOS

 “学习和掌握一种RTOS”是何小庆老师在顶嵌杯C竞赛颁奖上的发言稿。  此何老师非上篇介绍到的何立民老师,但两何的确都是为嵌入式的发展默默尽自己的力量。何小庆老师也是在嵌入式行业驰骋20多年,从“我和单片机及嵌入式系统20年”一文就可窥见一斑。  在我眼里,Linux操作系统涵盖一切,从服

2010-02-07 11:57:00 1570

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除