- 博客(13)
- 收藏
- 关注
原创 qemu 跑 kvm-unit-test
Compling process:git clone https://github.com/rhdrjones/kvm-unit-tests.git./configuremakeAfter compiling successful, you will find there has a lot of *.elf file in the x86/ directory, each fil...
2019-11-03 13:45:03 764
原创 mmu小页代码
粗页和小页都是由于COARSE_PAGE_TABLE 来管理的,所以这次的小页代码就是把昨天的代码修改了部分,然后之后重新映射上去,每个页对应4KB大小,昨天的大页则是每个页面对应64KB大小。/////////////////////////////////////////////////////////// .equ MMU_COARSE_DOMAIN,( (0)
2015-04-05 19:55:33 325
原创 MMU粗页代码
最近几天稍微打算再把MMU的一些粗页代码写下,这个代码和上一次的段页映射都一样,都是一一映射,其他的映射关系也一样,区别就是这边用了二级映射关系,页面全部换成粗页,1024*4096个large page我也是醉了,不过我打算之后再弄得更细点,而且结构层次这次也分得不好,整个汇编代码冗余度也很高,感觉自己用汇编写个通用的函数还是太累了,不想把时间花在一个实验例程上。0x0000 0000
2015-04-05 19:53:59 365
原创 MMU笔记
MMU段映射方式:Section base address:段基地址AP:ACESS PERMISSION 访问控制位 Domain: 访问控制寄存器的索引。Domain与AP配合使用,对访问权限进行检查C:当C被置1时为write-through (WT)模式B: 当B被置1时为write-back (WB)模式(C,B两个位在同一时刻只能有一个被置1)
2015-04-05 19:51:17 395
原创 phony的用法
避免和同名文件冲突。例如clean: rm *.o由于make的时候解决依赖问题,如果该目录下没有clean,则始终执行,不过一旦有了clean文件,则不会执行rm指令了。.phony:clean 的作用则是无视clean文件是否存在.
2015-04-05 19:49:06 1171
原创 s3c2440按键程序
==================================VECTOR.S由于抖动的原因,所以我这里进行了2次加法=================================== b resetb undefb softb resstopb datstop.word 0x00.equ SUBSRCPND,0x4a000018
2015-04-05 19:48:39 366
原创 watchdog汇编程序
=========================================================IRQ程序注意:INTMSK的设置必须为32位,否则会出现异常=========================================================.equ SRCPND,0X4A000000.equ INTMOD,0X4
2015-04-05 19:46:20 278
原创 ARM2440中断
CPSR中的F和I位,分别对应的是FIRQ和IRQ,如果被置为1,CPU不会接受对应的请求,可以通过设置对应的位为0,并设置MASK,分别允许对应的请求. INT_MODE,分别为IRQ和FIRQ模式,是对应中断的触发方式,0=IRQ,1=FIRQ.中断优先级每个仲裁器可以处理基于 1 位仲裁器模式控制(ARB_MODE)和选择控制信号(ARB_SEL)的 2 位的 6 个中断
2015-04-05 19:45:27 382
原创 pid命名空间
这几天看pid命名空间,一开始还是有点晕的,不过后来还是理解了。下图就是我用画图板画出来的,PID命名空间的大部分结构基本上在图上显示出来。首先得注意的是,因为有PID命名空间的存在,所以一个PID资源可以被好几个进程共同享用(task_struct),所以一个进程可以有好多不同的ID,由于正常的机器上,只有一个命名空间,所以资源都是全局的,并且是唯一的。命名空间我没有详细画出来,毕竟
2015-04-05 19:42:01 567
原创 ELF去壳
gcc -c -static a.c -o a.old -Ttext=0×0000 -nostdlib a.o -o a (Ttext代码段开始,nostdlib无标准库)objcopy -I elf32 -O binary a a.bin如果要去头,得把代码段的加载地址给赋值了,默认的Ttext是共享库加载的.gcc -e 段名 指链接时手动指向从哪个地方开始
2015-04-05 19:39:27 1129
转载 linux 同步IO: sync、fsync与fdatasync
传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队首时,才进行实际的I/O操作。这种输出方式被称为延迟写(delayed write)(Bach
2013-11-29 10:42:02 441
翻译 ext4文件系统翻译之第二篇
Extents tree扩展树Up to 3 extents could stored in inode i_data body directly最多可以有3个扩展能被直接存储在inode i_数据区躯干(这个i_data我估计是数据区吧)Use a inode flag to mark extents file vs ext3 indirect block file用一个
2013-09-24 16:31:02 1059
翻译 ext文件系统(我的翻译【本人英语不咋滴】)
why fork ext4为什么fork ext4?(这个fork英文翻译为叉子,但是我觉得不是这么翻译的,首先fork是linux的一个创建进程的函数,所以我认为,fork还是保留吧)Many features require on-disk format changes许多特征需要在磁盘上改变格式Keep large ext3 user community unaffec
2013-09-24 16:05:23 709
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人