linux内核
文章平均质量分 92
明故宫的记忆
吾生也有涯,而知也无涯。以有涯随无涯,殆已……
展开
-
Linux文件系统:minix文件系统二进制分析4(rm删除)
系列博文Linux文件系统:minix文件系统二进制分析1Linux文件系统:minix文件系统二进制分析2Linux文件系统:minix文件系统二进制分析3(硬链接与软链接)目录结构上一章节最后保持的目录结构删除file.txt文件 rm file.txt现在的目录结构二进制dumphexdump -C /dev/sdb > chapter4.hex 二进制内容如下:00000000 00 00 00 00 00 00 00 00 00 00 00 00 00原创 2021-12-10 11:15:20 · 1459 阅读 · 0 评论 -
Linux文件系统:minix文件系统二进制分析3(硬链接与软链接)
文章目录硬链接与软链接当前minix文件系统目录结构创建filelevel2.txt的硬链接文件创建filelevel2.txt的软链接文件当前minix文件系统目录结构hexdump文件系统二进制分析硬链接文件技术参考硬链接与软链接当前minix文件系统目录结构 在上一章中,我们创建了minix如下的目录结构,并且进行了二进制的分析,本篇将在上一篇文章的基础上,继续对文件系统的硬链接和软链接进行二进制分析。创建filelevel2.txt的硬链接文件ln dirdemo/filelevel2原创 2021-12-08 21:50:42 · 1163 阅读 · 1 评论 -
深入剖析MMU二级页表
文章目录1. 深入剖析MMU二级页表1.1页表映射1.1.1 不同分页的情况下,虚拟地址的拆分1.1.2 粗细页表大小极小页映射图1.1.3 粗页表与细页表1.1.3.1 最小单位映射1.1.3.2 以1K为最小映射单元1.1.3.3 以4K为最小映射单元1.2 为何要用到二级页表?1. 深入剖析MMU二级页表 如果使用页面映射的方式,段映射表就变成了一级映射表(First Level table,在linux内核中成为PGD),其表项提供的不再是物理段地址,而是二级页表的基地址。32bit虚拟地原创 2021-12-08 10:54:01 · 1662 阅读 · 1 评论 -
深入剖析MMU段映射
文章目录深入剖析MMU段映射1. MMU和页表1.1 MMU1.2 页表1.2.1 一级描述符2. 完成虚拟地址到物理地址的段映射2.1 页表基地址寄存器2.2 一级描述符所在的物理地址2.3 完成虚拟地址到物理地址的段映射2.4 再补充一张段映射的系统框图深入剖析MMU段映射 在ARM32中,MMU主要完成虚拟地址到物理地址的映射,并且能够控制内存的访问权限,而页表是实现上述功能的主要手段。页表又分为一级页表、二级页表,在ARM64中甚至还有三级页表。为了便于理解,本章主要讲述一级页表完成段映射的详原创 2021-12-08 10:51:28 · 1448 阅读 · 3 评论 -
Linux文件系统:minix文件系统二进制分析2
文章目录前言创建目录和文件hexdump硬盘为16进制文本二进制分析超级块s_state属性inode bitmapdata block bitmapinode表根目录inode节点第二个inode节点依次类推file.txt文件技术参考前言 在上一篇文章里,我们对一个刚刚格式化后的minix硬盘的各个属性模块进行了二进制分析,但遗憾的是刚刚格式化的硬盘里并没有任何文件,所以对文件在硬盘里的存储不免还是有些抽象,因此补充本篇文章,让我们深刻理解文件和目录是如何在存储介质中存储的创建目录和文件 首原创 2021-12-05 11:40:02 · 1438 阅读 · 0 评论 -
手把手教你在Linux内核中添加一个系统调用
文章目录实现一个专属系统调用实现专属系统调用实现系统调用谈一谈SYSCALL_DEFINE2宏将专属系统调用添加到Linux内核修改arch/arm/kernel/calls.S文件CALL宏的第一次声明CALL宏的第二次声明与sys_call_table数组修改sys_ni.c修改include/linux/syscalls.h修改arch/arm/include/asm/unistd.hC应用程序使用系统调用通过syscall函数访问sys_pang运行汇编程序使用系统调用通过swi指令陷入内核态编译链原创 2021-12-04 20:44:53 · 1655 阅读 · 0 评论 -
Linux文件系统:minix文件系统二进制分析1(格式化)
文章目录minix文件系统二进制分析1:刚刚格式化后的文件系统创建硬盘添加一个16M的块设备格式化块设备minix文件系统的存储结构超级块linux中超级块数据结构inode节点内核数据结构万物之源No1节点—根目录第一个数据块技术参考minix文件系统二进制分析1:刚刚格式化后的文件系统 工作几年来,用过不少文件系统,甚至手把手移植和裁剪过Fatfs文件系统,但是却对文件系统内部的存储方式和玩儿法一直一无所知,正巧最近翻阅Linux0.12源码注释这本书,里面专门为文件系统章节写了100余页,不过原创 2021-12-04 09:12:58 · 848 阅读 · 0 评论 -
task_struct结构体的优先级参数详解:prio、static_prio、normal_prio、rt_priority
文章目录task_struct 结构体prio 调度优先级normal_prio 正常优先级static_prio 静态优先级rt_priority 实时优先级应用编程修改调度策略SCHED_NORMAL CFS调度策略SCHED_FIFO 和 SCHED_RR 实时调度策略相关的系统调用获取优先级范围sched_get_priority_min(int policy) 获取优先级最小值sched_get_priority_max(int policy) 获取优先级最大值policy传参修改线程的调度策略i原创 2021-12-03 22:10:30 · 2139 阅读 · 0 评论