文件及文件系统相关
文章平均质量分 86
关于文件结构,及文件系统结构等相关话题
hjjdebug
西方用26个字母表示世界,计算机用0,1两个数字表示世界,大道至简!
人类用6号元素碳来思考, 计算机用14号元素硅来演算,精妙绝伦!
展开
-
从fread 到 磁盘驱动
1. linux 内核调用栈 2. 读中断服务程序. 3. 何时计算的柱面,磁头,扇区号? 现代磁盘还有柱面,磁头,扇区概念吗? 4. 固定的dev,block, 是不是每次都能找到固定的buffer缓冲区 bh ?原创 2024-03-28 16:55:47 · 934 阅读 · 0 评论 -
磁盘文件系统实际操练,解释到bit
0. 为什么需要磁盘文件系统. 1. 磁盘文件系统的任务是什么? 2. 空白磁盘是什么? 空白磁盘数据长什么样? 3. 格式化磁盘都干了什么? 格式化后的磁盘长什么样? 3.1 先找一个空设备 3.2 然后后把这个文件与伪设备关联. (相当于你把磁盘放入了驱动器) 3.3 然后格式化磁盘 , 3.4 格式化后的磁盘长什么样? 如下图:原创 2024-03-26 09:04:27 · 1038 阅读 · 0 评论 -
elf 文件信息的用途
1. 检查程序头, 判定重定位信息是否是只读的.2. 检查是否存在符号表3. canary 检测(金丝雀检测), 检查符号表中是否存在__stack_chk_fail函数调用4. 查看执行文件中有多少个函数调用了libc中的函数原创 2023-10-10 15:25:32 · 137 阅读 · 0 评论 -
怎样判定一个可执行文件是否是PIE 格式的文件
执行文件是PIE 需要两个条件:1. 其文件头类型是 DYN 类型2. 其动态节中有 DEBUG 符号名存在原创 2023-10-10 11:10:32 · 366 阅读 · 0 评论 -
linux可执行文件格式
1. 可执行文件的任务:可执 行文件的创建: 编译(compile): 源程序文件被编译成目标文件,连接(link): 多个目标文件 被连接成一个最终的可执行文件,可执行文件的运行: 可执行文件被加载(load)到内存中执行。2. a.out assembler and link editor output汇编器和链接编辑器的输出格式(简述)a.out 是一种古老的文件格式,简单,紧凑,原创 2017-05-24 23:27:05 · 13226 阅读 · 0 评论 -
elf动态链接实例
问题: 当运行文件调用动态连接库的函数时, 它是怎样找到函数的地址的呢? 下面就来研究一下:1.创建测试文件创建文件common.cint val = 1; int func(void) { return (val+10); } 创建文件test.cextern int val; extern int func(void); int main() { val = 10原创 2017-06-03 19:08:55 · 1720 阅读 · 0 评论 -
大话 elf 格式! -- 可连接elf 格式
生成一个bin文件,一个连接elf, 一个共享elf文件elf 格式,网上内容介绍的不少, 能不能结合一种实际的,简单的练习来说明事情. 这里,我需要一个魔法棒,变出一个简单的可连接elf文件 和一个简单的可共享elf文件! 练习: echo1234|xxd−r−ps>1.bin echo 1234 |xxd -r -ps > 1.bin objcopy -I binary -O elf原创 2017-06-30 12:26:36 · 696 阅读 · 0 评论 -
大话 elf 格式! -- 共享elf 格式
魔棒生成三个文件还copy 到这里! echo1234|xxd−r−ps>1.bin echo 1234 |xxd -r -ps > 1.bin objcopy -I binary -O elf64-x64-64 -B i386 1.bin 1.o $ gcc -shared -o 1.so 1.oshared object elf 格式研究.共享对象是可以加载到内原创 2017-06-30 16:28:12 · 888 阅读 · 0 评论 -
zip 文件格式分析: 附实例介绍
zip 文件格式分析: 附实例介绍ZIP format Byte order: Little-endianOverall zipfile format:[Local file header + Compressed data [+ Extended local header]?]* [Central directory]* [End of central directory record]1.原创 2017-05-19 18:32:16 · 13438 阅读 · 0 评论 -
linux 为什么要用硬连接
linux 为什么要用硬连接----------------------------------------author:hjjdebugdate: 2017年 12月 15日 星期五 09:46:44 CST----------------------------------------软连接是符号,是路径.硬连接是别名.看的懂吗? 看的懂就不用看了,看不懂继续.原创 2017-12-15 09:53:18 · 1584 阅读 · 0 评论 -
gcc的-fPIC对elf文件的影响
written by hjjdebug. 例子还是用以前的例子, 很简单的. 参考1 参考21. 执行文件访问动态连接库的变量执行文件访问动态连接库中的变量, 变量的地址竟然在bss节区中. 因而用的是相对寻址, 见test中的代码:读反汇编代码: val = 10; 4006d1: c7 05 65 09 20 00 0a movl $0xa,0x200965原创 2017-06-05 19:58:03 · 850 阅读 · 0 评论 -
elf静态链接实例
非我原创, 但因喜欢而重新整理!, 代码已重新校验!(1)创建文件创建文件common.cint val = 1; int func(void) { return (val+10); } 创建文件test.cextern int val; extern int func(void); int main() { val = 10; func(); r原创 2017-06-01 17:36:43 · 1062 阅读 · 0 评论 -
创建, 读取,修改img文件 (以ext4 为例)
创建, 读取,修改img文件 (以ext4 为例)1. 创建 (10M 空文件) dd if=/dev/zero of=XXX.img bs=1024 count=102402. 格式化关联loop设备 sudo losetup /dev/loop1 XXX.img建立分区: sudo fdisk /dev/loop1 …格式化 sudo mkfs -t ext4 /dev原创 2017-05-19 14:53:51 · 13288 阅读 · 0 评论 -
设计一个新文件系统。
设计一个新文件系统。文件系统设计牵扯到 代码阅读,编译,gdb调试。 排错。 设计等很多方面。不仅要有扎实的功底, 还要有灵活的思路和解决问题的能力。有一个linux2.4 kernel 下uxfs 的设计代码, 说实话,里面代码不少微小的考虑不周到的地方。不像是一个经典的作品。 但就拿它当靶子吧。 将这个代码移植到linux2.6.32 内核下。由于内核接口的变动,原创 2013-09-04 12:10:36 · 2072 阅读 · 0 评论 -
romfs 文件系统学习
--------------------------------------------------------------------------------1. romfs 文件组织-------------------------------------------------------------------------------- +---+---+---+---+原创 2013-09-27 14:29:35 · 2247 阅读 · 0 评论 -
linux 下 软raid 操作实例。
磁盘阵列软RAID实例.前言:raid0, 容量倍增,加速。 raid1, 安全镜像备份。 raid5, 奇偶数据校验保证安全,磁盘利用率(n-1)。****************************************1. 准备硬盘分区。**************************************** raid5 至少需要3快硬盘,我手上只有一块原创 2013-11-07 15:55:07 · 2853 阅读 · 0 评论 -
杂项
--------------------------------------------------------------------------------smb 文件系统, 文件传输速度500K/s, 好慢啊, 5G 文件, 要近3个小时才能传输完。5 * 1000 * 1000 * 1000/ 500 * 1000 = 1000 * 10 秒, 3 小时, 1 万秒 一旦开原创 2013-10-12 18:24:31 · 982 阅读 · 0 评论 -
linux buffer 与 cache 的区别
linux buffer 与 cache 的区别。A buffer is something that has yet to be "written" to disk.A cache is something that has been "read" from the disk and stored for later use.两者都是RAM中的数据。简单来说,buffer(缓冲)是即原创 2013-09-30 16:26:52 · 5555 阅读 · 0 评论 -
minix 文件系统学习.
minix 文件系统学习.----------------------------------------1. 创建一个minix 磁盘。----------------------------------------a. 创建一个360K,空白映像 dd if=/dev/zero of=image_360 count=720b. 与loop 设备相关联 sudo los...原创 2016-08-25 22:43:31 · 2001 阅读 · 0 评论 -
elf 格式快速掌握
*********************************************title: elf 格式的快速掌握author: hjjdebugdate: 2015年 01月 18日 星期日 22:26:21 CST*********************************************看了网上的一些介绍,决定自己动手,并配以代码测试,实例原创 2015-01-18 22:31:23 · 957 阅读 · 0 评论 -
最简单的elf文件分析
1. 简单的elf 汇编程序, 用它直接生成二进制文件 cat asm2.s BITS 32 org 0x08048000 ehdr: ; Elf32_Ehdr db 0x7F, "ELF", 1,原创 2016-09-26 17:57:46 · 4016 阅读 · 0 评论 -
reiser4progs 的 configure 问题及解决方法。
reiser4progs 运行 ./configure 时 遇到 libaal version 1.0.5 = No 后, 停止了运行。 此时我从网上下载了很多libaal 源码测试, 均通不过。 此时用 ldconfig 查看, 好像libaal 也对。哪问题到底出在哪里呢? 我甚至阅读了些configue 的一些代码, 一头雾水, 不过也猜到可能不是libaal 本身问题,而是其它原创 2013-11-06 13:57:33 · 3454 阅读 · 0 评论