畏天
码龄7年
求更新 关注
提问 私信
  • 博客:140,121
    140,121
    总访问量
  • 160
    原创
  • 23
    粉丝
  • 4
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:美国
加入CSDN时间: 2018-10-25

个人简介:心之所向,身之所往

博客简介:

The_perfect_world的博客

查看详细资料
个人成就
  • 获得62次点赞
  • 内容获得18次评论
  • 获得148次收藏
  • 代码片获得183次分享
  • 博客总排名29,951名
  • 原力等级
    原力等级
    3
    原力分
    227
    本月获得
    2
创作历程
  • 3篇
    2025年
  • 3篇
    2024年
  • 2篇
    2022年
  • 15篇
    2021年
  • 24篇
    2020年
  • 116篇
    2019年
  • 1篇
    2018年
成就勋章
TA的专栏
  • 运维
    20篇
  • git
    13篇
  • bpf
    1篇
  • C语言
    19篇
  • kernel
    3篇
  • OS
    2篇
  • tool
    1篇
  • autohotkey
    2篇
  • 算法
    5篇
  • LeetCode
    3篇
  • 软工
  • shell
    1篇
  • 协议
    1篇
  • tempClass
  • linux
    93篇
  • tcp
    1篇
  • qt
    12篇
  • UNIX环境高级编程
    83篇
  • Zigbee
    4篇
  • excel
    1篇
  • C++
    3篇

TA关注的专栏 2

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

创作活动更多

新星杯·14天创作挑战营·第13期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛!注: 1、参赛者可以进入活动群进行交流、互相鼓励与支持(开卷),虚竹哥会分享创作心得和涨粉心得,答疑及活动群请见:https://bbs.csdn.net/topics/619781944 【进活动群,得奖概率会更大,因为有辅导】 2、文章质量分查询:https://www.csdn.net/qc

89人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

vmcore分析锁问题实例(x86-64)

可以看到owner为0xff27411f3bd0df01,最后的1不是task_struct的地址,是在获得锁的时候或的,实际的task_struct地址是0xff27411f3bd0df00。lock->wait_lock就是lock的值,在调用_raw_spin_unlock_irq的时候把rbp传给参数寄存器,也就是说rbq当中存的就是lock的值。并未发现对%rbp的操作,可能是编译器进行了优化,因为schedule_rtlock并未改变寄存器%rbq的值,所以并未进行压栈。
原创
博文更新于 2025.04.17 ·
377 阅读 ·
8 点赞 ·
0 评论 ·
3 收藏

使用crash分析vmcore

可以运行一个docker,目前(2025/03/19)fedora:latest的crash版本是8.0.5的,比较新,也可以在https://snapshot.debian.org/package/crash/ 上面找到合适自己的版本在debian-derived的系统上面自行安装,但是依赖问题解决起来很麻烦。vmcore分析的时候需要与kernel对应的带有符号表的vmlinux。
原创
博文更新于 2025.03.24 ·
178 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

git log --stat显示全部文件路径

--stat[=<width>[,<name-width>[,<count>]]] Generate a diffstat. By default, as much space as necessary will be used for the filename part, and the rest for the graph part. Maximum width defaults to terminal width, or 80 columns if not
原创
博文更新于 2025.01.20 ·
3149 阅读 ·
5 点赞 ·
1 评论 ·
3 收藏

grub打开调试打印开关

可以通过查看grub源码来判断打开哪些选项,如 set debug=mm,mmap ,也可以通过改源码来自定义debug选项。注意:将调试开关全部打开会导致grub运行变慢,可能进而触发一些watchdog使设备重启。若命令无效,可以将下列内容添加到 /boot/grub/grub.cfg 当中。
原创
博文更新于 2025.01.06 ·
217 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

为何一些包的Priority在apt-cache和deb文件当中的不一样

Debian存在一个override的机制,会覆盖掉deb文件里面的部分值,具体细节可参考: https://wiki.debian.org/FtpMaster/Override
原创
博文更新于 2024.09.06 ·
291 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

rt kernel原理简介

RT 的基本原理是分解主线内核中任意长的抢占/中断禁用部分
翻译
博文更新于 2024.08.14 ·
204 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

bcc,bpftrace和libbpf的关系

ref:
原创
博文更新于 2024.08.05 ·
254 阅读 ·
2 点赞 ·
1 评论 ·
0 收藏

C语言以科学计数法的格式打印

前几日工作中有以科学计数法输出的需要,当时不知道库函数就有对应的格式,还自己写了一个,昨日经理说库函数自带,发现库函数的确支持。linux执行man 3 printf,可以在手册中看到如下描述e, EThe double argument is rounded and converted in the style [-]d.ddde±dd where there is one digit before the decimal-point character and the number of dig
原创
博文更新于 2022.04.21 ·
3532 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

为什么一些宏不用{}而用do{}while(0)

自从工作依赖偶尔会在代码里见到一些do{}while(0)形式的宏定义,但是当初并不知道这样做的目的是什么,总觉得单单用一下{}就可以实现相同的功能了。最近在看linux内核源码,里面有一堆do{}while(0)的宏,于是查了一下,发现有的情况只能用do{}while(0)的形式来定义宏,用单纯的{}会导致报错。实验代码如下:#include <stdio.h>#define MACRO_DO_WHILE_ZERO(enable, fmt, args...)do { if (enab
原创
博文更新于 2022.03.31 ·
569 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Object.zip

发布资源 2019.08.03 ·
zip

qt实现简易计算器

发布资源 2019.04.25 ·
zip

3门问题以及N门问题模拟(C语言)

C语言模拟三门问题,付源码及运行结果。
原创
博文更新于 2021.12.31 ·
1474 阅读 ·
1 点赞 ·
0 评论 ·
7 收藏

linux kernel学习笔记(打印所有进程部分信息)

//task_struct.c#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/init_task.h>#include <linux/sched.h>MODULE_LICENSE("GPL");static int __init print_pid(void){ int task_cnt = 0;
原创
博文更新于 2021.12.15 ·
721 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

文件截取小工具

最近工作上有从整个flash镜像中截取某一段的需求,在网上找了一圈没找到好用的工具,于是自己写了一个小工具,在linux上编译一下即可使用,源码如下,使用方法见文章末尾。#include <stdio.h>#include <stdlib.h>unsigned long simple_strtoul(const char *cp,char **endp,unsigned int base){ unsigned long result = 0,value; if (*c
原创
博文更新于 2021.11.05 ·
343 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mt7621芯片更换ram

最近公司设备的内存占用率过高,经常性的导致设备挂掉,于是准备换一个ram。解决方案:在openwrt目录下,进入target/linux/ramips/dts目录,找到设备使用的CPU型号对应的dts文件,然后修改其中内容。将memory的reg的值改成对应的ram大小,然后重新编译即可。...
原创
博文更新于 2021.08.20 ·
1314 阅读 ·
0 点赞 ·
6 评论 ·
3 收藏

git stash指定文件

示例:stash单个文件temp.cgit stash push temp.cgit stash -- temp.cgit stash push -m "test" temp.c注意:部分git版本无法stash,我在Windows上面用的git版本是git version 2.10.0.windows.1。这个版本是无法执行上述命令的,在这个版本上,stash的用法如下:usage: git stash list [<options>] or: git stash show
原创
博文更新于 2021.07.06 ·
20487 阅读 ·
4 点赞 ·
0 评论 ·
15 收藏

《操作系统概念精要》实践题答案

答案链接
原创
博文更新于 2021.06.15 ·
1137 阅读 ·
4 点赞 ·
0 评论 ·
5 收藏

c语言覆盖文件指定内容

偶尔会有覆盖文件的某一部分的需求,用c写了一个小工具,这是工具的功能实现的主要细节。代码功能:将现存的temp.txt文件的0x100到0x200地址全部填充成0xff。#include <stdio.h>int main(int argc, char **argv){ FILE *fp = NULL; int write_size = 0x100; int offset = 0x100; fp = fopen("temp.txt"
原创
博文更新于 2021.02.21 ·
5206 阅读 ·
3 点赞 ·
0 评论 ·
14 收藏

linux更改使用者 shell 设定

chsh或者usermod命令chsh -s /bin/bash tempuserusermod -s /bin/bash tempuser
原创
博文更新于 2021.01.25 ·
335 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《精通git》笔记之九(重置揭密)

三棵树理解 reset 和 checkout 的最简方法,就是以 Git 的思维框架(将其作为内容管理器)来管理三棵不同的树。“树” 在我们这里的实际意思是 “文件的集合”,而不是指特定的数据结构。(在某些情况下索引看起来并不像一棵树,不过我们现在的目的是用简单的方式思考它。)Git 作为一个系统,是以它的一般操作来管理并操纵这三棵树的:树用途HEAD上一次提交的快照,下一次提交的父结点Index预期的下一次提交的快照Working Directory沙盒HE
原创
博文更新于 2021.01.19 ·
243 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多