自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 问答 (11)
  • 收藏
  • 关注

原创 Linux 系统调用简析

Release log:2021-06-02 三: 完成初版原文地址参考《庖丁解牛 Linux 内核分析》用户态、内核态和中断现代 CPU 一般都有几种不同的指令执行级别,在高的执行级别下,代码可以执行特权指令,访问任意的物理内存。Intel x86 CPU 有 4 种不同的执行级别,分别是 0、1、2、3,数字越小,权限越高。Linux 操作系统中只采用了其中的 0 和 3 两种特权级别,分别对应内核态和用户态。用户态和内核态很显著的区分方法就是 CS:EIP 的指向范围。在 32 位 x

2021-06-02 09:55:52 142

原创 并发与竞态——除了锁之外的办法

Release log:2021-05-30 日: 完成初版原文地址在某些情况下,原子的访问可以不需要完整的锁免锁算法经常用于免锁的生产者/消费者任务的数据结构之一是循环缓冲区。内核中有一个通用的循环缓冲区实现,参阅<linux/kfifo.h>原子变量如果共享的资源是一个简单的整数值,则可以使用原子变量 atomic_t一个 atomic_t 变量可以用来保存一个 int 值,但它不能记录大于 24 位的整数对应的函数// 初始化原子变量void atomic_se.

2021-05-30 17:37:25 197

原创 并发与竞态——completion

Release log:2021-05-10 一: 完成初版原文地址内核编程中常见的一种模式是,在当前线程之外初始化某个活动,然后等待该活动的结束。这个活动可能是,创建一个新的内核线程或者新的用户空间进程、对一个已有进程的某个请求,或者某种类型的硬件动作,等等。在这种情况下,我们可以使用信号量来同步这两个任务。然而,内核中提供了另外一种机制—— completion 接口。completion 是一种轻量级的机制,他允许一个线程告诉另一个线程某个工作已经完成。completion 的初始化为了

2021-05-10 21:26:13 182

原创 并发与竞态——自旋锁

Release log:2021-05-07 五: 完成初版2021-05-10 一: 添加自旋锁和信号量的对比原文地址Linux 内核中自旋锁的使用在 Linux 内核中,要使用自旋锁需要包含的文件 <linux/spinlock.h>,锁的数据类型为 spinlock_t。自旋锁的声明以及初始化void spin_lock_init(spinlock_t *lock);自旋锁的获取以及释放void spin_lock(spinlock_t *lock);void s

2021-05-10 20:54:52 120

原创 git 知识整理

Release log:2021-04-26 一: 完成初版原文地址前言使用 git,经常有一些命令,偶尔会用到,但是又不常用到,这就造成每次用的时候都需要百度。所以干脆对这些命令做一下整理,方便后续查阅全局配置与当前项目配置git 的全局配置一般保存在 ~/.gitconfig 中,而当前项目配置一般保存在 .git/config 中使用 git config 命令查看或设置配置信息,–global 表示全局配置,否则为本地配置查看当前配置信息: git config [--glob

2021-04-26 21:36:12 93

原创 并发与竞态——信号量与互斥体

说明前一段时间学习了《LINUX 设备驱动程序》中的“并发与竞态”章节,没过多久在阅读代码时,看到了 spin_lock_bh 这个函数,然后一脸瞢逼,这个函数后缀有啥意义来着?所以决定对这一章节做一个简单整理,一是为了加深印象,二是为了后续的快速回顾以及查找未完待续。。。哈哈...

2021-04-24 22:02:22 133

原创 问题记录: 在内核模块中拦截报文并保存到文件

Release log:2021-04-24 六: 完成初版原文地址背景介绍最近在跟进一个网络相关的问题,需要查看经过 __netif_receive_skb 的报文是否有异常。如果打印所有的包,由于打印太多会影响性能,并且打印的内容也不会太详细。所以决定,把监听到的报文全部保存到 pcap 文件中,然后通过 wireshark 查看这里对需要用到的知识做一个整理知识点分析怎么在内核模块中读写文件pcap 的文件格式是怎样的怎么在内核中读写文件一段简单的实例代码如下://

2021-04-24 21:39:54 932

原创 gdb 使用方法整理(基础篇)

Release log:2021-04-18 日: 完成初版原文地址本文参考: https://blog.csdn.net/niyaozuozuihao/article/details/91802994在此基础上有些删减最近想要学习 Linux 内核,但是如果单纯的通过看书和代码来学习,会显得很枯燥,并且有些地方不容易理解。所以决定使用 qemu + gdb 的方式来跟进内核代码流程。关于怎么使用 qemu + gdb,可以 点击这里为了能够更高效的使用 gdb 跟进代码,需要重新整理一下

2021-04-18 20:08:45 181

原创 如何使用 qemu + gdb 分析 Linux 内核代码

Release log:2021-04-18 日: 完成初版原文地址如何使用 qemu + gdb 分析 Linux 内核代码环境说明操作系统: Ubuntu 20.04.2 LTS(lsb_release -a)内核版本: 5.4.0-58-generic(uname -a)qemu 版本: QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.15)linux 源码: linux-3.18.6qemu 简介以及安装

2021-04-18 03:02:13 228

转载 u-boot-2016.09 make 工具之 fixdep

u-boot-2016.09 make 工具之 fixdep本文转载自: u-boot-2016.09 make工具之fixdep概述fixdep 工具的源码位于 scripts/basic/fixdep.c,代码本身并不复杂。但作用是什么?哪里调用,如何调用,输入和输出是什么?咋一看却不甚清楚。本文废话太多,如果只想看结论,请直接跳转到文末查看“TL;DR”一节。哪里调用?到底哪里调...

2018-10-14 19:58:00 869

原创 Ubuntu 简单配置

Ubuntu 简单配置由于手贱,几次搞坏 Ubuntu 系统,不得不重装但每次重装之后,都要重新配置系统,然后就是不停的百度操作方法这次根据个人的使用习惯,把 Ubuntu 的配置过程记录下来关闭 ALT 快捷键由于使用 vim,许多功能映射都需要 alt 键来完成然而 alt 已经被系统定义为了 HUD 快捷键那么怎么关闭掉系统的 alt 快捷键呢System Settings ...

2018-10-13 00:00:49 217

转载 U-Boot-2016.09 make 配置过程分析

U-Boot-2016.09 make 配置过程分析本文转载自: u-boot-2016.09 make配置过程分析概述本文基于 U-Boot 树莓派 3 代配置过程进行分析,环境如下:编译环境:Ubuntu 14.04 LTS编译工具:arm-linux-gnueabi-gcc代码版本:U-Boot v2016.09配置文件:rpi_3_32b_defconfigU-Boot 自...

2018-10-12 23:42:19 359

转载 iptables详解(1): iptables概念

iptables详解(1): iptables概念以下内容转载自: 朱双印博客 | iptables详解系列:iptables概念 原文地址:http://www.zsythink.net/archives/1199这篇文章会尽量以通俗易懂的方式描述iptables的相关概念,请耐心的读完它。防火墙相关概念此处先描述一些相关概念。 从逻辑上讲。防火墙可以大体分为主机防火...

2018-03-14 22:12:25 353

原创 CMake学习笔记——基础篇

最近看到好多开源项目的编译配置文件都是使用CMake写的,于是花些时间学习,并做备忘整理 这篇文档以一个简单的项目为例,对CMake的常用命令进行介绍 主要包括了包含头文件路径、生成库、生成二进制文件等功能。不包括安装、测试等功能一些语法规则变量使用${ }方式取值command(arg1 arg2 …) 指令参数使用括弧括起来,参数之间使用空格或分号分开指令大小写无关,参数

2018-02-03 12:33:24 293

原创 Ubuntu 使用 xkb 修改按键映射

Ubuntu使用xkb修改按键映射目的由于使用vim时,经常要用到ESC键。奈何ESC键距离太远,操作起来很不方便,所以想把ESC键映射到CAPS键,而以前的CAPS则映射到右CTRL 最初的想法是使用xmodmap,但配置好了之后才发现xmodmap与fcitx有兼容性问题(ibus也有同样的问题)。 关于这一点还专门到fcitx的github上提了issue,但得到的回复是, 不

2018-02-01 23:45:17 1362

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除