LINUX内核完全剖析
文章平均质量分 52
A1157599735
重庆一学生
展开
-
编译Linux-0.11内核
make[1]:正在离开目录 `/home/guang/temp/h/linux-0.11/lib'kernel/kernel.o: In function `number':/home/guang/temp/h/linux-0.11/kernel/vsprintf.c:92: undefined reference to `__stack_chk_fail'fs/fs.o: In func原创 2012-09-26 22:52:54 · 2115 阅读 · 0 评论 -
as86
0.12内核的bootsect.S,setup.S都是由as86编译,虽然他的语法接近intel汇编的语法,但是还是遇到了一些麻烦。下载as86,ld86:sudo apt-get install bin86(ubuntu10.04lts desktop 默认没有安装)!boot.s.text.globl startentry startstart: jmpi go,0x07c原创 2012-09-25 22:04:08 · 4053 阅读 · 0 评论 -
bochs运行a.img
接《as86》这一篇,系统环境ubuntu 10.04。遇到的问题:1.Message: dlopen failed for module 'x': file not found原因:少安装了bochs-x包解决方法:sudo apt-get install bochs-x2.PANIC原因:第4行语法错了,(PANIC有提示)解决:floppya: image="原创 2012-09-25 22:49:27 · 2212 阅读 · 0 评论 -
保护模式下ldt使用
;kernel.s[BITS 16]ORG 0lgdt [GDT]start:mov ax,0x18lldt axjmp 4:0;犯过错,写成3:0,结果13异常,cs==0jmp startGDT:DW 31;犯过错,写成30,结果13号异常,index>xxxxDW gdt,0gdt:DW 0,0,0,0DW 0xffffDW 0X0原创 2012-10-03 12:35:54 · 803 阅读 · 0 评论 -
保护模式下显示字符
[BITS 16]jmp startstart:climov al,1mov ah,2mov bx,0x1000mov es,bxmov bx,0mov cx,0x0002mov dx,0x0int 0x13jnc ok_loaddie:jmp dieok_load:mov ax,0x1000mov ds,axmov si,0原创 2012-10-03 11:30:12 · 1569 阅读 · 0 评论 -
进入保护模式总结
1.最主要的就是那个jmp dword,一切都是为了Jmp做准备2.int 13h读取扇区,既可以读硬盘,又可以读软盘,应该是两个的驱动器号不同(这个还没搞清楚,现在只会读软盘)。用硬盘映像的时候,总是说找不到引导设备,不知道是哪儿的参数错了。一些细节:>cl是读取的扇区号,1就是第1个扇区,并不是从0算起。>kernel.s生成的就只有16B,所以只读取16字节。(其他的好像是0原创 2012-10-01 15:21:33 · 1204 阅读 · 0 评论 -
boot.s进入保护模式
;kernel.sstart:mov ah,9mov bh,0mov al,'o'mov bl,0x1emov cx,10int 0x10jmp start;boot.s[BITS 16]jmp startstart:climov al,1mov ah,2mov bx,0x1000mov es,bxmov原创 2012-10-01 14:16:56 · 1187 阅读 · 0 评论 -
nasm写hello.s
NASM是一个为可移植性与模块化而设计的一个80x86的汇编器,以前在windows下用的,没想到还能在Linux下用,比as86亲切多了。转载:http://people.cs.nctu.edu.tw/~huangmc/works/web/Boot_x86/Boot_x86.html [BITS 16] ORG 0 jmp START START:; code lo原创 2012-09-27 20:36:14 · 1460 阅读 · 0 评论 -
as86中文手册
http://www.360doc.com/content/07/0110/08/8309_324695.shtml转载 2012-09-27 20:24:32 · 1290 阅读 · 0 评论 -
bochs调试器安装
首先下载最新版本到Bochs: http://bochs.sourceforge.net/getcurrent.html下载的版本是bochs-2.4.6.tar.gz,那么安装过程差不多是这样的:$ tar zxvf bochs-2.4.6.tar.gz$ cd bochs-2.4.6.$ ./configure --enable-debugger --enable-disasm$原创 2012-09-27 22:34:54 · 1606 阅读 · 0 评论 -
Ubuntu Linux 查看、编辑、比较二进制文件
Ubuntu Linux 查看、编辑、比较二进制文件原文地址:http://hi.baidu.com/widebright/item/0cb894b44e749c96194697d0想根据gdb的反汇编来修改一个内核模块的汇编,没发现上面方便的工具,就直接用二进制编辑器来改了一下,还好是个简单的整型参数,该起来还比较简单。下面是用到的命令。 1. 这两个命转载 2012-09-25 22:08:24 · 1763 阅读 · 0 评论