util-linux代码解析(笔记勿拍)
mkfs.
等格式化文件系统命令源码解析。
刘仕豪
操作系统行业从业者,开源精神,希望可以推动科技进步。
展开
-
mkfs.minix.c之minix_super_block.s_nzones获取解析
先看结构体: struct minix_super_block { uint16_t s_ninodes; //i节点数 uint16_t s_nzones; //区块数 uint16_t s_imap_blocks; //i节点位图所占块数 uint16_t s_zmap_blocks; //区块位图所占块数 uint16_t s_firstdatazone; //数据区中第一个逻辑块块号 uint16_t s_log_zone_size; //磁盘块数/区块数 uint32_t原创 2021-10-19 11:17:12 · 181 阅读 · 0 评论 -
mkfs.minix.c之minix_super_block.s_ninodes获取解析
struct minix_super_block { uint16_t s_ninodes; //i节点数 uint16_t s_nzones; //区块数 uint16_t s_imap_blocks; //i节点位图所占块数 uint16_t s_zmap_blocks; //区块位图所占块数 uint16_t s_firstdatazone; //数据区中第一个逻辑块块号 uint16_t s_log_zone_size; //磁盘块数/区块数 uint32_t s_max_原创 2021-10-18 21:22:09 · 172 阅读 · 0 评论 -
util-linux中的setbit函数解析
先看如下代码: 如果分析代码时嫌麻烦。 可以直接运行调试,查看结果是否符合预期结果。 如果符合预期结果,就没有必要查看过程。 从函数名猜测该宏定义为给某个比特位置位。 然后调试, 编写测试代码,将2位置位。 调试时查看值是否正确。 如下,给第二位置位时,二进制表示为:100, 转换成10机制为4. 猜想正确。 /** * setbit宏定义解析实验 */ static char *inode_map; #define CHAR_BIT __CHAR_BIT__ //获得一个字符对象的比特的原创 2021-10-18 16:53:43 · 384 阅读 · 0 评论 -
minix v1文件系统结构
minix v1文件系统结构介绍原创 2021-10-01 13:23:23 · 239 阅读 · 0 评论 -
mkfs.minix.c代码解析
int main(int argc, char ** argv) { struct fs_control ctl = { .fs_namelen = 30, /* keep in sync with DEFAULT_FS_VERSION */ 0 }; int i; struct stat statbuf; char * listfile = NULL; enum { OPT_LOCK = CHAR_MAX + 1 }; static const struct option lo原创 2021-10-01 13:11:38 · 364 阅读 · 0 评论