linux
sfz200809242719
这个作者很懒,什么都没留下…
展开
-
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 · 829 阅读 · 0 评论 -
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 · 734 阅读 · 0 评论 -
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 · 1078 阅读 · 0 评论 -
linux 同步IO: sync、fsync与fdatasync
传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队首时,才进行实际的I/O操作。这种输出方式被称为延迟写(delayed write)(Bach转载 2013-11-29 10:42:02 · 459 阅读 · 0 评论 -
pid命名空间
这几天看pid命名空间,一开始还是有点晕的,不过后来还是理解了。下图就是我用画图板画出来的,PID命名空间的大部分结构基本上在图上显示出来。首先得注意的是,因为有PID命名空间的存在,所以一个PID资源可以被好几个进程共同享用(task_struct),所以一个进程可以有好多不同的ID,由于正常的机器上,只有一个命名空间,所以资源都是全局的,并且是唯一的。命名空间我没有详细画出来,毕竟原创 2015-04-05 19:42:01 · 590 阅读 · 0 评论 -
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 · 1174 阅读 · 0 评论 -
phony的用法
避免和同名文件冲突。例如clean: rm *.o由于make的时候解决依赖问题,如果该目录下没有clean,则始终执行,不过一旦有了clean文件,则不会执行rm指令了。.phony:clean 的作用则是无视clean文件是否存在.原创 2015-04-05 19:49:06 · 1210 阅读 · 0 评论