自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DevX's brew

programming yourself and life

  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 god damn CPU_LOOP 1(done)

在调试内核重建idt模块的时候,就是一个简单的内存write操作,会出现一个CPU_LOOP 1的异常,目前暂未找到合理的解释和解决办法: Next at t=5544195(0) [0x000067d5] 0008:000067d5 (unk. ctxt): mov dword ptr ds:[edx], eax ; 3e8902 info cpueax:0x000867f0, eb

2014-02-16 22:29:21 894

原创 gdb混合c和nasm调试记录

留个底,继续debug!qTStatus: Target returns error code 'NN'.root@dev-linux:/home/devx/KernelEaterPrj/boot# gdb systemGNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08Copyright (C) 2011 Free Software Foun

2014-01-07 21:50:33 1334

原创 updated--介于setup和head之间的一个混杂地段

几个问题困扰着我,在我脑子里绕绕绕:1.elf格式需要再研究下,elf头是不是固定长的,就目前从文档上记录,是52字节?Elf格式:#define EI_NIDENT 16typedef struct {unsigned char e_ident[EI_NIDENT]; 16Elf32_Half e_type; 2Elf32_Half e_machine; 2

2013-10-20 23:10:08 751

原创 ubuntu+bochs2.2.1+gdb+gcc3.4.1+linux0.11=内核雏形研究神器

差不多半个多月的折腾,啥代码也没写,唯一捣鼓出来的就是那么一句话:ubuntu+bochs2.2.1+gdb+gcc3.4.1+linux0.11=内核雏形研究神器有了这个调试环境,后续的EATER应该可以顺风顺水点了吧~

2013-10-19 21:08:33 782

原创 DEV环境切换memo:从win环境切换到linux(ubuntu11.10)

由于后续开发需要,准备将kernel开发的环境从win系统切换linux系统中,之前尝试过一次,不过卡在磁盘文件IO出错作罢,这次重新整了一遍,最后成功了,遂记录下,作为memo:原开win开发环境:win7+bochs+vim7+hexviewer+vhdwriter,使用的虚拟磁盘为vhd格式,使用vhdwriter写nasm编译生成的bin文件后续linux下的开发环

2013-07-30 22:12:24 1020

原创 page机制学习最初理解总结

需要首先理解的概念:1、引入page后,原有的段基址保持不变,不过段做了“虚拟化”处理,所谓的虚拟化即对于32位系统,一个任务具有4G的段寻址空间(虚拟空闲),其特点是每个段都是连续的;相比较,page是分散的,一般以4K为一个单位。2、page的概念的精髓是将物理内存格式化成一页一页,4k一页。page关注物理内存的分配与管理。段(虚拟段)侧重用户程序的逻辑分配,互不干扰,分离的好处

2013-07-02 21:32:07 1680

原创 链接器和装载器算是kernel的一部分吗?

今天不做代码细节的研究,只是抛出一个问题 “链接器和装载器算是kernel的一部分吗?”。难者不会,会者不难,之所以会有这个疑问,因为最近在看有关RM模式以及PM模式资料,目前进行的kernel demo也是非常实诚的从轮子开始造起,kernel坑此坑次的同时负担了起loader的作用,也负担了起linker的重任。一个萦绕很久的问题也很不自觉的浮上心头:当前流行的os,用

2013-05-05 20:40:40 675

原创 不对称的push&pop引发的bug

之前已经完成了最基本的从实模式-》保护模式,跳出了512字节限制,开始走向了kernel的跳转之路。但是,问题也出来了,先贴出一个最最基础的kernel原型:; DD's kernel. @2013-04-29 ;以下常量定义部分。内核的大部分内容都应当固定 core_code_seg_sel equ 0x38 ;内核代码段选择子

2013-04-30 16:26:45 2694

原创 有关stack的异常

今天说第二件事情。那就是stack异常然后导致程序终止的问题。到目前来说,我还是用这种模糊的方式描述,那是因为,我们可爱的bochs提示的信息总是那么的点到为止,不留一点更多的信息。执行了一遍代码,每次当我要call那个readfromharddisk过程的时候,它总是打印如下错误异常: s00035650269e[CPU0 ] stackPrefetch(4): access

2013-04-21 13:03:13 2176

原创 push,你到底做了啥事情????

事情要一件一件来说,就像吃饭要一口一口吃一样。一共有两件事情,这节就先讲push的事情。问一句,push, what the hell are u doing?启动bochs,开始push stack之旅。截取一部分源码:protect: ;[7].进入到保护模式后,为了给予内核最大的访问内存能力,ds段寄存器使用4G段描述符 ;初始化ds mov eax, 0x000

2013-04-21 00:27:10 4408

原创 分享如何快速定位代码在哪里崩掉了(bochs+NASM汇编)

调试汇编代码是一场艰辛晦涩的旅程,幸好有bochs,幸好有各种提示信息,为这场旅行带来了一丝的光明:今天分分享如何快速定位代码在哪里崩掉了: u /1000007cb3: ( ): mov ebx, 0x00040000 ; bb0000040000007cb8: ( ): mov di, 0x

2013-04-18 21:24:19 1704 1

原创 混乱不统一的ds布置方法,是程序内存读写的万恶之源!

debug bootloader,最方便简单直观的办法就是print into console。所以在hacking kernel歇业一个月后,重拾老代码,准备重新改造一番,今天就从增加printf函数开始吧:;function:在是模式下,打印一串字符串;@1 input: 要打印的字符串的物理地址, 低位:ax, 高位 dx;@2 input: 打印的字符长度: cx;output:

2013-03-31 21:42:55 1115

原创 2013-02-23 -一个简单的实模式跳转到保护模式程序(无loader功能)

写一个最简单的从实模式跳转到保护模式的程序。顺便学习温故下各个基本寄存的设置。总的来说,实模式跳转到保护模式的基本思路和流程是:1、准备好保护模式下的代码段以及数据段(通俗的说就是从实模式跳转到保护模式后,你到底要cpu做些啥。当然了,只是单纯的跳转一下玩玩也无妨,不过好歹跳转了下,总要留下点“在此一游”之类的豪情壮志吧~)这里具体要做的第一件事情其实就是分配好内存吧。

2013-02-23 20:31:05 757

原创 2013-02-13 -loader

目前已经成功将100扇区的512bytes内容拷贝到物理地址0x10000上,详见下面memory dump:磁盘上hex:memory dump: xp /512bx 0x10000[bochs]:0x0000000000010000 : 0xbe 0x01 0x00 0x00 0x00 0x00 0x10 0

2013-02-13 13:29:29 1044

原创 2013-2-12 - loader代码调试心得记录。

在ubuntu的环境下,使用dd命令进行磁盘文件的拷贝,貌似与bochs交互有问题(很有可能需要额外配置什么),目前存在的障碍是使用LBA28模式进行读数据的时候,会出现一直读不出来的问题,导致一直在等待读数据。代码走读后感觉没有问题,最大的嫌疑就是dd命令使用与bochs的交互上存在问题。该问题阻塞了2天,无解,holly shit 转战在win系统下,使用一个叫做vhd-w

2013-02-12 23:44:58 701

原创 2013-2-2 - simple-loader

目标:把主引导扇区改造成一个loader,从硬盘中将用户程序加载到内存中,之后将cpu处理权分配给用户程序。1.NASM编译器使用汇编指令定义段:SECTION 段名称SEGMENT 段名称2.intel 要求段在起始物理内存中的起始地址16字节对齐: align=163.db: 1个字节  dw: 2个字节 dw:4个字节4.磁盘中

2013-02-10 21:36:38 447

原创 new start this year!

BACK TO the Programming life!就像5年所立志的那样,programming,programming your life!你迷失太久了!川!

2012-05-06 11:18:49 409

转载 转 Ubuntu下使用Bochsdbg

<br />转<br />在Windows下作用bochsdbg习惯了,在Ubuntu下,发现bochs包里竟然没有bochsdbg,要自己编译<br />$ apt-get source bochs<br />$ cd bochs-2.3.7<br />$ ./configure --enable-debugger --enable-disasm --prefix=/usr<br />$ make<br />$ sudo cp bochs /usr/bin/bochsdbg

2010-06-19 23:02:00 1933

原创 How long is the way to the Architect?

RT.........                           

2010-03-06 22:24:00 658

原创 阅读有的时候是一种无以名状的痛苦

特别是阅读源码。有时候,不仅仅是一种享受这么简单。 

2010-01-10 23:49:00 524

原创 A team called capture...

  来这个team也快半年了。看着这个team慢慢的长大,老人慢慢的转到别的team,有的checkout,自己却依旧不死不活的坚挺着。想想还是蛮搞的。  这是一支太年轻的team,是一支典型的80后的team。怎么样组织好这个team? 这也成为了各个function members和leader头疼的事情。  在这段难忘的岁月中,我会记得你们的,leader老吕,owner qian,

2009-12-28 23:34:00 916 1

原创 咬咬牙,咬咬牙。

咬咬牙,咬咬牙。这是人生必经的一个历程,这是我人生的一场迁徙。IT 这个让人不由畏惧的行业,而我则越陷越深...........的确是有很多的选择, 但是每一个选择背后除了期望还参杂着危险。矛盾和患得患失纠结的一个夜啊! 但愿明天会更好.............

2009-10-14 23:59:00 888 1

原创 轮子和车子

从南方不得已的回到北平。只因为明天又开始新的征程。或许老徐和徐老应该是对的...... 学习的过程到底应该先用轮子组装最optimized的车子呢还是先重新研究轮子的制造工艺?曾今,I was quite puzzled。 或许, 老徐和徐老是对的。先给自己造一辆足够支撑我一个寒冬的保暖车子吧~ 轮子,慢慢啃也罢!!!

2009-10-08 16:27:00 933 2

原创 一场新的迁徙

搬到微创了, 又是一场新的迁徙和适应。 1.RTFSC2.OS internal programming3.Algo4.c/c++ Thats it.  

2009-09-03 21:09:00 735 2

原创 day day day upupupup

最不愿意发生的事情发生了,明天就要搬去viva了,感觉很复杂。傍晚下班和遥去逛了下二手车店,买了辆清一色全黑的旧车,没想太多,直接就买了。活只会越来越重,活只会越来越难,are u ready boy?        当我慢慢的习惯托管的代码, 我是否还会想念malloc 和 free的青涩年代?devx

2009-06-09 19:28:00 905 1

原创 hard code & hard working & hard night

明天又是周五了。这一周过的相当的辛苦,我知道自己在透支生命,但是大家不都也是吗,需要我去透支生命的人不也在透支自己的吗。一群人聚在一起,为了这个那个,不停的磨损自己...这就是现在,这就是生活,这就是工作。生命的意义是什么,好久没有思考这个问题了。这个问题应该在小学的时候就让大家讨论的,到现在讨论,有点晚了.... 下午在viva#20开了一个视频培训,coding guide

2009-06-04 22:32:00 929 1

原创 又到月末

又快到月末了,感觉这个月突然的忙起来。感觉有些慌张,没别的,就是因为自己给自己的暗示以及自己向来的自虐倾向,呵呵.... stack team不是盖的,做底层类库的你必须精通很多:协议本身,网络基本原理,设计模式,当然了还有最重要的看家本领c#。对于从c++转过来的我来说,感觉最头疼不在于他繁杂的framework,还有一些莫名其妙的语法。而是在于它“引用”等颠覆性的概念以及一些繁杂的花哨

2009-05-28 17:13:00 844 1

原创 wii - another hacking toy

   晚上兴致勃勃的将taobao上淘得的硬盘盒换上,利用wii homebrew上国外牛人自制的“UsbLoader” hacking程序,我非常成功的将d版的wii game dumping到了移动硬盘上,将光盘抽出,运行硬盘镜像,速度比光驱读盘快非常多。很爽很舒畅。  猛然间,情景将仿佛将我拉回到了dev hook的hacking psp年代。  向伟大的team Twi

2009-05-07 23:24:00 701

原创 C#的“属性”封装

   C#的“属性”封装 C#和delphi一样,拥有“属性”这一个概念。使用惯了c/c++,刚开始接触类型属性还真有点不是很适应。C#中“属性”具体的用法如下:class Employee     {        private int empID;        private float currPay;        private string empN

2009-05-05 11:48:00 4032 1

原创 4.30雜感 最青春的时候 我们在一起

最青春的时候 我们在一起。很快就進入5月份了,新項目應該也快起航了,一頭是公司的活,c#是一定要搞通的。另一邊是我深深熱愛和癡迷的底層技術。應該不矛盾的吧。《不高興》說,中國要有大目標,一個自然人不也如此嗎?從事自己喜歡的事業是一件幸福的事情,在我感性的新鮮感和激情尚未退去之前,請讓我不羈的前沖吧。25歲,老了嗎?呵呵,可能吧,畢竟,最青春的時候,我們在一起。畢竟我們哥們幾

2009-04-30 21:44:00 758

转载 程序学习--如何阅读别人的代码

程序学习--如何阅读别人的代码 转载自http://hi.baidu.com/nineninemu/blog/item/e274e94532774285b2b7dc91.html2008-11-10 22:20++++++++++++第一章: 导论++++++++++++1.要养成一个习惯, 经常花时间阅读别人编写的高品质代码.2.要有选择地阅读代码, 同时, 还要

2009-04-28 15:38:00 2353

转载 什么是野指针?

 什么是野指针? 转载野指针,也就是指向不可用内存区域的指针。通常对这种指针进行操作的话,将会使程序发生不可预知的错误。 “野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种: 一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省

2009-04-28 14:17:00 946

原创 关于c++中一些指针问题的思考

 昨天为了对c#的一些机制做更深的理解,特别用了c++的实现与之作对比。这不,c#没搞出大名堂,c++却揪出了一块烦心的事情:还是昨天那个代码  原本设计SendPersonByReference函数的功能就是传进一个对象的引用(指针和&引用都算,泛化的引用),改变该引用引用的对象。像上面那样设计好,自我感觉还挺良好,先造个辅存tmp,记录原对象的地址,接着析构delete,再

2009-04-28 13:24:00 750 1

转载 C++中的浅复制与深复制

转载自 天之痕 C++中的浅复制与深复制收藏  默认构造函数将作为参数传入的对象的每个成员变量复制到新对象的成员变量中,这被称为成员浅复制。这虽然对大多数成员变量可行,但对于指向自由存储区中对象的指针成员变量不可行。  成员浅复制只是将对象成员变量的值复制到另一个对象中,两个成员变量的指针最后指向同一个内存块,当其中任何一个指针被delete时,将生成一个迷途指针,程序将处于危

2009-04-27 12:48:00 875

原创 4.26 心得

今日心得:1.遙想當年在面ptf team的時候,被leader批得蠻悲慘的,當面指出我的函數設計上的問題。既然有問題,既然是我與他們要求的函數風格不符,那就學唄。那就看win32 api的設計,那就學don net framework 好了。笨死了,怎麼今天才想到,之前還一直在google和csdn上瘋狂的找資料,卻忘記了現成的"好貨"。2. 一直覺得:計算機的問題(尤其是軟體/程序

2009-04-26 20:39:00 459

转载 (轉)函数返回设计以及错误处理

本文属spanzhang(张友邦)原创,发布地址为:http://blog.csdn.net/spanzhang。  今天在闲逛的时候发现一篇文章,zhuweisky写的《函数设计之美--函数需要返回错误码吗(一)?》(http://blog.csdn.net/zhuweisky/archive/2005/09/08/475355.aspx)。文章主要对函数返回错误码一事进行了讨论,作者最后给

2009-04-26 20:32:00 666

原创 4月雜談

  4月的北京很陽光。喜歡這個城市的陽光,沒有南方的陰冷和潮濕。  昨天去西單簡單的逛了下下:到圖書大廈買了本民族主義旺盛的《不高興》,看了一部份后甚是“不高興”,裏面的一些觀點和我一直以來的情緒有著一些些的謀和。憤懣主義,過多的文藝花花腔,還有那令人生嘔的嬉皮主義、無厘頭文化,腦殘主義,我全tmd呸。就不能平平靜靜的做些社會主義建設性的事情么?搞得自己很非主流、很另類玩世不恭的樣子。 

2009-04-26 17:26:00 882

原创 linkers and loaders,complier,以及一些杂感。

   始终觉得自己很发虚,很简单的原因,你离真谛还是那么的远。   在SC这边久了,被眼花缭乱的技术、框架搞得一头雾水。   好怀念本科时候用最纯正原生win32API写框架,用openGL做绘制的日子啊!   必须明了自己的志向以及兴趣,别忘记了你的归属:底层!底层!   今天穿梭88时候,在c++板块上看到了一段印象很深的话:.......   CPU体系结构、汇编、C

2009-02-23 20:22:00 594

原创 nit_cs --> zju_cst --> ??

和梦想总是有一段距离。如何去填补? nit_cs --> zju_cst --> ?? 我的zju_cs

2008-06-19 16:05:00 1043 1

原创 psp-2000

PSP2000,再度被破解。可以软刷到3.60 M33。玩ISO。  很强。

2007-09-12 11:09:00 797

simduck的c++代码

设计模式中,simduck的c++代码。 原先是用java描述的,现在用c++进行描述

2008-11-29

空空如也

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

TA关注的人

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