会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
geshifei
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
下一页
2021年8月27日
linux block layer第一篇bio 子系统数据结构及初始化
摘要: 介绍: block layer在内核中起着承上(文件系统层)启下(设备驱动层)的作用,struct bio是block层的基本数据结构,可以理解成将bio输入block层,由block layer对其加工处理,然后再由block层输出给底层。与bio相关的代码涉及bio内存管理、提交、合并拆分、完成
阅读全文
posted @ 2021-08-27 22:01 geshifei
阅读(800)
评论(0)
推荐(0)
2021年8月23日
ubuntu20.04 搭建kernel调试环境第三篇--kernel编译及运行
摘要: 一、编译内核 内核源码:linux-5.10.3 root@linux:/home/gsf/linux-5.10.3# export ARCH="x86_64" root@linux:/home/gsf/linux-5.10.3# make x86_64_defconfig root@linux:/
阅读全文
posted @ 2021-08-23 21:17 geshifei
阅读(221)
评论(0)
推荐(0)
ubuntu20.04 搭建kernel调试环境第二篇--制作rootfs
摘要: rootfs是linux的根文件系统,就是我们看到的 /目录及其中一些重要的子目录,比如/etc ,/lib,/sbin等等,在linux中,一切都是文件,一切都是从/目录开始的,没有rootfs,linux就没法运行。 可以通过buildroot制作rootfs(比较方便,建议用这种方式),也可以
阅读全文
posted @ 2021-08-23 15:36 geshifei
阅读(269)
评论(0)
推荐(0)
2021年1月1日
ubuntu20.04 搭建kernel调试环境第一篇--安装系统
摘要: ubuntu官网下载ubuntu-20.04.1-desktop-amd64.iso,系统安装完成后,更新Software Update,然后按下面步骤配置环境。 由于Ubuntu官网的iso会升级,建议从网盘下载本文用的版本(https://pan.baidu.com/s/1v0804hVqQNT
阅读全文
posted @ 2021-01-01 10:48 geshifei
阅读(137)
评论(0)
推荐(0)
2020年12月11日
基于netfilter抓包
摘要: 背景 本文介绍一种抓取网络数据包的方法,基本思想是通过netfilter/iptables在TCP /IP网络层过滤出网络报文,然后将数据压缩、加密后,上传至云端服务器分析。 过滤出的数据为上行的原始的TCP报文,包括MAC首部、PPP首部(如果是PPPOE连接), IP首部、TCP首部以及部分或全
阅读全文
posted @ 2020-12-11 21:01 geshifei
阅读(522)
评论(0)
推荐(0)
2019年6月30日
linux trace point机制1---原理描述(linux5.1.6)
摘要: 一、引入trace point的背景 当需要获取内核的debug信息时,通常你会通过以下printk的方式打印信息: void trace_func() { …… printk输出信息 …… } 缺点: 内核中printk是统一控制的,各个模块的printk都会被打印,无法只打印需要关注的模块。如果
阅读全文
posted @ 2019-06-30 22:34 geshifei
阅读(260)
评论(0)
推荐(0)
2019年2月14日
系统启动流程
摘要: 问题: 1)加电后CPU从哪里执行代码? 2)boot loader如何加载到RAM? 3)内核镜像如何加载到RAM并运行的?注意分两次加载,需要解压。 4)protect mode何时开启?分页模式何时开启? 5)0号进程、1号进程何时创建的? 一、流程 CPU加电复位后处于real mode且C
阅读全文
posted @ 2019-02-14 10:56 geshifei
阅读(24)
评论(0)
推荐(0)
2019年2月11日
inode的i_nlink(linux4.0.4)
摘要: 一、背景 1)通过命令ln a b创建硬链接b->a后(a是一个普通文件),stat a命令看到Links值是多少? gsf@ubuntu:~$ stat a File: 'a' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device:
阅读全文
posted @ 2019-02-11 23:58 geshifei
阅读(60)
评论(0)
推荐(0)
2018年8月21日
buddy找伙伴块算法(linux 3.10.102)
摘要: 背景 本文描述内核找伙伴块的算法,根据给定order及page_idx(buddy块中第一个page的index),找到伙伴块的page_idx。如果需要查阅buddy的原理知识,请参考其他资料。 算法分析 内核找伙伴块的代码如下: mm/page_alloc.c /* * Locate the s
阅读全文
posted @ 2018-08-21 20:50 geshifei
阅读(41)
评论(0)
推荐(0)
2018年8月7日
rename代码阅读(linux 3.10.104)
摘要: 前言 本文通过分析rename的代码,让读者对rename流程有清晰的认识。对于文中涉及的dentry、inode、ext3 disk layout、rcu锁、dcache等基础知识,请参考其他博文。 为避免用大篇篇幅介绍dentry lookup过程,我们假设路径名中各级分量的dentry存在dc
阅读全文
posted @ 2018-08-07 16:34 geshifei
阅读(165)
评论(0)
推荐(0)
上一页
1
2
3
4
下一页
公告